L’IA di Google ricostruisce l’audio di una videochiamata

Con le restrizioni per Covid-19 è aumentato il traffico di rete sia per lo smart working e didattica digitale sia per le numerose videochiamate. Recentemente Google ha dichiarato di aver prodotto un algoritmo di IA per replicare le parti mancanti in una videochiamata.

Ci capita spesso durante una videochiamata di perdere delle parole e chiedere che siano ripetute. Nella rete internet tutto viaggia sottoforma di pacchetti, anche la voce e il video, ognuno a una determinata frequenza. Come si può ben immaginare il pacchetto della voce deve viaggiare più velocemente di altri ma a volte ciò non succede. Il motivo di questo ritardo è dato da molteplici fattori:

  • una larghezza di banda troppo piccola
  • il router non assegna ai pacchetti voce la giusta priorità
  • problemi nell’inserimento dei pacchetti nel buffer in cui viene sbagliato l’ordine di memorizzazione e si cerca il giusto ordine per spedirli
  • perdita di pacchetti per errato reindirizzamento o riconoscimento di errori nel pacchetto stesso
  • fenomeno di jitter ovvero quando la rete è molto lenta nella trasmissione ed è presente un’elevato ritardo nella rete, maggiore rispetto alla velocità dei pacchetti voce che devono essere ridimensionati perdendo dunque delle informazioni
Illustrazione di problemi di rete

Il progetto Google

Google Duo è basato sul progetto open source WebRTC, la tecnologia nata nel 2011 e adottata da numerosi browser e dispositivi per consentire di effettuare videochat in tempo reale. In questo sistema esiste una componente in grado di analizzare il parlato e riprodurre una continuazione fluida del discorso per perdire di circa 20ms. Con perdite superiori a 60ms il discorso diventa robotico e impossibile da recuperare.

Nasce così il nuovo progetto Google che sostituisce il componente NetEQ PLC con una versione modificata di WaveRNN. Quest’ultimo è un modello di rete neurale ricorrente per la sintesi vocale formato da una rete autoregressiva e una rete di condizionamento.
La prima, responsabile della continuità del segnale, fornisce la struttura a breve e medio termine del discorso, così ciascun campione generato dipende dai risultati precedenti della rete.
La seconda, riceve in input i fonemi della previsione del discorso e influenza la rete autoregressiva per produrre audio coerente con le funzioni di input più lente.

Architettura WaveNetEQ

Lo spettrogramma dell’audio è dunque l’input per la rete di condizionamento che in questo modo estre informazioni sull’intonazione e sul contenuto testuale. Queste informazioni sono poi inviate alla rete di autoregressione che le combina con le informazioni del pacchetto appena inviato. Si prevede in questo modo la forma d’onda del prossimo campione.

Il modello di IA Google per la videochiamata viene applicato ai dati nel jitter buffer di Duo. In questo modo, una volta che viene perso il pacchetto, l’audio reale continua unendo perfettamente il flusso di audio sintetico e reale.

Addestramento della rete

WaveNetEQ è stata addestrata su audio di oltre 100 oratori in 48 lingue per poter apprendere caratteristiche del linguaggio umano. Questi dati sono stati poi uniti a rumori di sottofondo per consentire che il modello sia robusto anche in luoghi affollati.

Nella fase di train la rete autoregressiva riceve il campione attuale presente nei dati di addestramento come input per il passaggio successivo. Questo processo, chiamato forzatura dell’insegnante, assicura che il modello apprenda anche in una fase iniziale di formazione dove le previsioni sono ancora di bassa qualità. Una volta che il modello è addestrato e utilizzato in una chiamata audio o video, la forzatura dell’insegnante è utile solo per il primo campione, il cui output è l’input per il passaggio successivo.

Attualmente il modello di IA Google per la videochiamata è in grado solamente di predire una sillaba non parole. Per garantire che non generi sillabe false, i campioni di WaveNetEQ sono stati comparati con NetEQ utilizzando l’API Speech-to-Text di Google Cloud. Non sono state riscontrate differenze significative nel tasso di errore delle parole.

WaveNetEQ è attualmente disponibile per tutte le chiamate Duo sui telefoni Pixel 4 ma sarà presto integrato anche in altri modelli.