L'azienda Google ha presentato un nuovo codec audio Lyra, ottimizzato per garantire la massima qualità nella trasmissione vocale anche utilizzando canali di comunicazione molto lenti. Il codice sorgente di Lyra è scritto in C++ ed è rilasciato sotto la licenza Apache 2.0, ma tra le dipendenze necessarie per il funzionamento è presente una libreria proprietaria libsparse_inference.so con l'implementazione del core per i calcoli matematici. Si segnala che la libreria proprietaria è temporanea: in seguito, Google promette di sviluppare una sostituzione open source e di garantire supporto per diverse piattaforme.
Per quanto riguarda la qualità dei dati vocali trasmessi a basse velocità, Lyra supera significativamente i codec tradizionali, che utilizzano metodi di elaborazione digitale dei segnali. Per raggiungere un'alta qualità nella trasmissione della voce in condizioni di limitato volume di dati, oltre ai normali metodi di compressione audio e elaborazione dei segnali, Lyra utilizza un modello vocale basato su un sistema di apprendimento automatico, in grado di ricostruire le informazioni mancanti sulla base delle caratteristiche tipiche della voce. Il modello impiegato per la generazione del suono è stato addestrato utilizzando diverse migliaia di ore di registrazioni vocali in oltre 70 lingue.

Il codec comprende un codificatore e un decodificatore. L'algoritmo di funzionamento del codificatore consiste nell'estrazione dei parametri vocali ogni 40 millisecondi, nella loro compressione e nella trasmissione al destinatario tramite rete. Per la trasmissione dei dati è sufficiente una connessione con una velocità di 3 kilobit al secondo. I parametri audio estratti includono spettri mel-logaritmici, che considerano le caratteristiche energetiche della voce in diverse bande di frequenza e sono preparati tenendo conto del modello di percezione uditiva umana.

Nel decodificatore viene utilizzato un modello generativo che ricrea il segnale vocale sulla base dei parametri sonori trasmessi. Per ridurre la complessità dei calcoli, è stato impiegato un modello leggero basato su una rete neurale ricorrente, che rappresenta una variante del modello di sintesi vocale WaveRNN, nel quale viene utilizzata una frequenza di campionamento più bassa, ma vengono generati parallelamente diversi segnali in diverse gamme di frequenze. I segnali ottenuti sono poi sovrapposti per ottenere un unico segnale di uscita corrispondente alla frequenza di campionamento specificata.
Per accelerare ulteriormente, sono state utilizzate istruzioni specializzate per i processori disponibili nei processori ARM a 64 bit. Di conseguenza, nonostante l'uso del machine learning, il codec Lyra può essere utilizzato per la codifica e la decodifica del parlato in tempo reale su smartphone di fascia media, mostrando una latenza di trasmissione del segnale di circa 90 millisecondi.
Fonte: opennet.ru
