Google ha presentato il codec audio Lyra V2, che utilizza metodi di apprendimento automatico per raggiungere la massima qualità di trasmissione vocale su canali di comunicazione molto lenti. La nuova versione si distingue per il passaggio a una nuova architettura di rete neurale, il supporto per piattaforme aggiuntive, funzionalità avanzate di gestione del bitrate, un aumento delle prestazioni e una qualità del suono superiore. L'implementazione di riferimento del codice è scritta in C++ e distribuita sotto la licenza Apache 2.0.
Per quanto riguarda la qualità dei dati vocali trasmessi a basse velocità, Lyra supera di gran lunga i codec tradizionali che utilizzano metodi di elaborazione digitale dei segnali. Per garantire un'elevata qualità di trasmissione vocale in condizioni di limitata capacità di trasmissione, oltre ai metodi di compressione audio e trasformazione dei segnali convenzionali, Lyra utilizza un modello vocale basato su un sistema di apprendimento automatico, capace di ricreare le informazioni mancanti basandosi sulle caratteristiche tipiche della voce.
Il codec comprende un codificatore e un decodificatore. L'algoritmo di funzionamento del codificatore consiste nell'estrazione dei parametri vocali ogni 20 millisecondi, nella compressione e nella trasmissione al destinatario tramite rete con un bit rate che varia da 3,2 kbps a 9,2 kbps. Sul lato del destinatario, il decodificatore utilizza un modello generativo per ricreare il segnale vocale originale sulla base dei parametri acustici trasmessi, che includono spettrogrammi mel-logaritmici che riflettono le caratteristiche energetiche della voce in diverse bande di frequenza, preparati tenendo conto del modello di percezione uditiva umana.
In Lyra V2, è stata utilizzata un nuovo modello generativo basato sulla rete neurale convoluzionale SoundStream, caratterizzata da basse esigenze in termini di risorse di calcolo, che consente di eseguire la decodifica in tempo reale anche su sistemi a bassa potenza. Il modello utilizzato per la generazione del suono è stato addestrato utilizzando diverse migliaia di ore di registrazioni vocali in oltre 90 lingue. Per l'esecuzione del modello viene utilizzato TensorFlow Lite. Le prestazioni dell'implementazione proposta sono sufficienti per l'encoding e il decoding della voce su smartphone di fascia bassa.
Oltre all'utilizzo di un altro modello generativo, la nuova versione si distingue anche per l'inclusione nell'architettura del codec di collegamenti con il quantizzatore RVQ (Residual Vector Quantizer), eseguito lato mittente prima della trasmissione dei dati e lato destinatario dopo la ricezione. Il quantizzatore trasforma i parametri forniti dal codec in set di pacchetti, codificando le informazioni in relazione al bitrate selezionato. Per garantire diversi livelli di qualità, sono previsti quantizzatori per tre bitrate (3.2 kps, 6 kbps e 9.2 kbps); maggiore è il bitrate, migliore è la qualità, ma più elevate sono le richieste di larghezza di banda.

La nuova architettura ha permesso di ridurre la latenza del segnale da 100 a 20 millisecondi. A titolo di confronto, il codec Opus per WebRTC ha mostrato latenza di 26,5 ms, 46,5 ms e 66,5 ms nei bit rate testati. È inoltre notevolmente aumentata la performance dell'encoding e decoding — rispetto alla versione precedente, si registra un'accelerazione fino a 5 volte. Ad esempio, sullo smartphone Pixel 6 Pro, il nuovo codec esegue l'encoding e il decoding di un campione di 20 millisecondi in 0,57 ms, che è 35 volte più veloce rispetto a quanto necessario per la trasmissione in tempo reale.
Oltre alla performance, si è riusciti anche a migliorare la qualità del recupero del suono — sulla scala MUSHRA, la qualità della voce a bit rate di 3,2 kbps, 6 kbps e 9,2 kbps utilizzando il codec Lyra V2 corrisponde a bit rate di 10 kbps, 13 kbps e 14 kbps utilizzando il codec Opus.
Fonte: opennet.ru
