Ciao a tutti, sono Vincenzo Lomonaco, ricercatore e docente all’Università di Pisa.
Nella puntata di oggi parliamo di un tema assolutamente centrale nel contesto dell’intelligenza artificiale e specialmente per la creazione di agenti conversazionali, parliamo infatti di sintesi vocale.
O meglio, come è possibile creare una voce per le nostre soluzioni di AI? Quale è lo stato dell’arte in questa direzione? È possibile avere sistemi che, dato un testo scritto, riescono a pronunciarlo in modo naturale e quasi indistinguibile da un essere umano? Scopriamolo insieme in questa puntata di Le Voci dell’AI.
La sintesi vocale, nota anche come Text To Speech – TTS, è una tecnologia che converte il testo scritto in voce artificiale, permettendo di ascoltare contenuti scritti attraverso l’uso di modelli di intelligenza artificiale che generano suoni in modo naturale e fluido.
La sintesi vocale è il processo opposto allo Speech To Text – STT – in cui il software trasforma il parlato umano in un testo scritto, utilizzando algoritmi di riconoscimento vocale per analizzare, trascrivere le parole pronunciate.
Quindi il TTS e lo STT rappresentano due facce della stessa medaglia nel campo dell’elaborazione del linguaggio naturale, facilitando la comunicazione tra esseri umani e macchine.
Oggi ci focalizziamo sul Text To Speech, la sintesi vocale che ha raggiunto risultati strabilianti.
Ricordiamo tutti, fino a qualche anno fa, la sintesi vocale di Google Translate, per esempio, molto robotica, farraginosa e difficile da scambiare per quella prodotta da un essere umano.
Oggi possiamo ascoltare piacevolissime voci virtuali che riescono a modulare molto bene elementi sofisticati del linguaggio parlato, come l’intonazione, il ritmo, la durata e l’accento, tra le tante altre cose che ci fanno percepire il linguaggio come pronunciato da un altro essere umano.
Riuscire a generare il linguaggio parlato di questa qualità in real time rappresenta una pietra miliare nell’interazione uomo macchina e spingerà senz’altro per l’adozione della comunicazione vocale come veicolo principale per l’interazione con il mondo digitale.
In questa immagine vediamo un diagramma di funzionamento ad alto livello delle soluzioni più recenti basate su machine learning per la sintesi vocale.
Quindi, una volta addestrata la nostra rete neurale su milioni di ore di registrazioni audio con trascrizioni allegate, saremo in grado di prendere in pasto un testo proprietario e generare la sintesi vocale corrispondente.
Molti sistemi si basano su un primo modulo di Natural Language Understanding, NLU, che vedete sulla sinistra, che si occupa di generare le caratteristiche linguistiche in funzione della semantica della frase.
E spesso questi elementi servono per istruire un modello prosodico della frase che a sua volta viene utilizzato per generare un Mel spettrogramma.
Ecco di cosa si tratta. Un Mel Spettrogramma è una rappresentazione visiva delle frequenze di un segnale audio nel tempo ed è basato sulla scala Mel che simula la percezione uditiva umana.
A differenza quindi di uno spettrogramma tradizionale che utilizza una scala lineare per le frequenze, il Mel Spettrogramma adotta una scala non lineare con maggior risoluzione alle basse frequenze e una risoluzione più bassa per le alte frequenze.
Questo approccio consente di catturare le caratteristiche più importanti del suono per l’udito umano, rendendolo particolarmente utile in applicazioni di sintesi vocali e riconoscimento del parlato, dove la naturalezza e l’espressività risultano cruciali.
Una volta generato il Mel spettrogramma, possiamo utilizzare questo prodotto parziale per generare una vera e propria onda sonora tramite l’ausilio di un altro modulo, anche chiamato il vocoder.
Ecco, nella letteratura degli ultimi anni, questi passaggi e moduli intermedi sono stati messi in discussione da soluzioni Text To Speech più sofisticate, che riescono a generare audio direttamente a partire dal testo end to end, come si suol dire, ossia senza passaggi incrementali intermedi.
Questo tipo di soluzioni rende il Text To Speech estremamente più efficiente e adatto a soluzioni real time, dove è possibile generare direttamente audio non appena una nuova frase testuale viene prodotta dal sistema in modo assolutamente naturale, quindi migliorando reattività del sistema in delle situazioni conversazionali ad alta velocità.
Tuttavia è bene evidenziare che queste soluzioni a volte producono sintesi vocali meno realistiche naturale di modelli basati sulla generazione del modello spettrogramma.
Quindi la scelta del tipo di sistema di Text To Speech e, come sempre, da valutare in funzione del compito da risolvere.
Lo scenario è quindi il trade off efficienza/efficacia desiderato.
I sistemi di sintesi vocale più comuni basati su deep learning includono TacoTron 2 e FastSpeech 2, tutti progettati per generare audio di alta qualità a partire dal testo.
Tacotron 2 combina modelli chiamati sequence to sequence per convertire il testo in Mel spettrogrammi, che poi vengono trasformati in onde sonore tramite vocoder come WaveNet.
Tra i più famosi FastSpeech e la sua evoluzione FastSpeech 2 utilizzano invece un’architettura non autoregressiva, consentendo una generazione più rapida e parallela dei programmi e ancora oggi rappresentano le soluzioni più efficienti disponibili sul mercato.
FastPitch sviluppato da Nvidia e Voicebox da Meta rappresentano un ulteriore passo in avanti, combinando la generazione del Mel Spettrogramma e della forma d’onda in un’unica rete, rendendo la sintesi vocale ancor più efficiente.
Ecco, in questa schermata su Google Cloud vediamo un esempio dimostrativo di utilizzo di un sistema addestrato di sintesi vocale.
Come vedete possiamo selezionare un numero di opzioni, per esempio la lingua, il tipo di modello utilizzato, la voce, in particolare del personaggio maschile o femminile di nostro interesse, e poi addirittura lo stile di questa voce, per esempio connesso all’uso per l’intrattenimento su una smart TV.
E poi possiamo anche settare un numero di parametri come la velocità e il pitch per regolare meglio la prosodia dell’enunciazione. E questo è il risultato che riusciamo a generare in pochi secondi.
Come abbiamo visto è abbastanza facile oggi utilizzare dei modelli più addestrati per la sintesi vocale con voci neutrali o basate su qualche personaggio pubblico in particolare, ma potremmo addirittura clonare la nostra voce e donarla a una macchina per parlare.
Ebbene sì, clonare la voce di qualcuno per la sintesi vocale è anche abbastanza semplice.
Per esempio, utilizzando un modello open source come Mozilla Text To Speech, si deve solo raccogliere un dataset di registrazioni audio della persona, idealmente contenente almeno una o due ore di parlato di alta qualità, con trascrizioni accurate per ogni registrazione ed effettuare un processo di fine tuning, raffinamento di un modello generale che può prendere dalle 10 alle 30 ore con una CPU di fascia media.
Bene, in questa puntata abbiamo analizzato i sistemi allo stato dell’arte per la sintesi vocale, un modulo ormai fondamentale per l’interazione uomo macchina e qualsiasi applicazione di intelligenza artificiale che si rispetti.
In questo contesto abbiamo visto come mediante tecnologie di deep learning è possibile oggi creare delle voci artificiali davvero naturali e indistinguibili da quelle prodotte dagli esseri umani, che senz’altro arricchiranno le modalità di interazione principalmente testuali, come abbiamo avuto finora con le nostre soluzioni.
D’altra parte urge una riflessione su come meglio regolamentare questi sviluppi al fine di preservare il loro utilizzo senza incappare nel furto di identità e dichiarando magari esplicitamente quando l’interazione sta avvenendo con una macchina piuttosto che un essere umano.
Ciao! Alla prossima puntata di Le Voci dell’AI.