Google hat den Audiocodec Lyra V2 vorgestellt, der maschinelles Lernen nutzt, um maximale Sprachqualität über sehr langsame Kommunikationskanäle zu erreichen. Die neue Version bietet eine neue neuronale Netzwerkarchitektur, Unterstützung für zusätzliche Plattformen, erweiterte Möglichkeiten zur Bitratensteuerung, verbesserte Leistung und höhere Audioqualität. Die Referenzimplementierung des Codes ist in C++ geschrieben und wird unter der Apache 2.0-Lizenz vertrieben.
In Bezug auf die Qualität der übertragenen Sprachdaten bei niedrigen Geschwindigkeiten übertrifft Lyra herkömmliche Codecs, die digitale Signalverarbeitungsmethoden verwenden, deutlich. Um eine qualitativ hochwertige Sprachübertragung unter Bedingungen mit begrenztem Volumen übertragener Informationen zu erreichen, verwendet Lyra zusätzlich zu herkömmlichen Methoden der Audiokomprimierung und Signalkonvertierung ein auf einem maschinellen Lernsystem basierendes Sprachmodell, das es ermöglicht, fehlende Informationen anhand typischer Sprachmerkmale wiederherzustellen.
Der Codec umfasst einen Encoder und einen Decoder. Der Algorithmus des Encoders extrahiert alle 20 Millisekunden Sprachdatenparameter, komprimiert diese und überträgt sie mit einer Bitrate von 3.2 kbps bis 9.2 kbps über das Netzwerk an den Empfänger. Empfängerseitig verwendet der Decoder ein generatives Modell, um das ursprüngliche Sprachsignal basierend auf den übertragenen Audioparametern wiederherzustellen. Dazu gehören logarithmische Mel-Spektrogramme, die die Eigenschaften der Sprachenergie in verschiedenen Frequenzbereichen berücksichtigen und unter Berücksichtigung des Modells der menschlichen Hörwahrnehmung erstellt werden.
Lyra V2 verwendet ein neues generatives Modell auf Basis des Convolutional Neural Network SoundStream, das geringe Rechenleistung erfordert und so Echtzeit-Dekodierung auch auf stromsparenden Systemen ermöglicht. Das zur Klangerzeugung verwendete Modell wurde anhand von mehreren tausend Stunden Sprachaufnahmen in über 90 Sprachen trainiert. Zur Ausführung des Modells wird TensorFlow Lite verwendet. Die Leistung der vorgeschlagenen Implementierung reicht für die Kodierung und Dekodierung von Sprache auf Low-End-Smartphones aus.
Außer der Verwendung eines anderen generativen Modells zeichnet sich die neue Version auch durch die Einbindung von Links mit einem Quantisierer RVQ (Residual Vector Quantizer) in die Codec-Architektur aus, der auf der Senderseite vor der Datenübertragung und auf der Empfängerseite nach dem Empfang der Daten ausgeführt wird. Der Quantisierer wandelt die vom Codec ausgegebenen Parameter in Paketsätze um und kodiert die Informationen im Verhältnis zur ausgewählten Bitrate. Um unterschiedliche Qualitätsstufen bereitzustellen, stehen Quantisierer für drei Bitraten (3.2 kbit/s, 6 kbit/s und 9.2 kbit/s) zur Verfügung. Je höher die Bitrate, desto besser die Qualität, desto höher jedoch auch die Bandbreitenanforderungen.

Durch die neue Architektur konnten die Verzögerungen bei der Signalübertragung von 100 auf 20 Millisekunden reduziert werden. Zum Vergleich: Der Opus-Codec für WebRTC zeigte bei den getesteten Bitraten Verzögerungen von 26.5 ms, 46.5 ms und 66.5 ms. Auch die Leistungsfähigkeit des Encoders und Decoders wurde deutlich gesteigert – im Vergleich zur Vorgängerversion ist eine Beschleunigung um das bis zu 5-fache gegeben. Beispielsweise kodiert und dekodiert der neue Codec beim Pixel 6 Pro eine 20-ms-Probe in 0.57 ms, was 35-mal schneller ist als für die Echtzeitübertragung erforderlich.
Neben der Leistung konnten wir auch eine Verbesserung der Qualität der Tonwiederherstellung erreichen – laut MUSHRA-Skala entspricht die Sprachqualität bei Bitraten von 3.2 kbps, 6 kbps und 9.2 kbps bei Verwendung des Lyra V2-Codecs Bitraten von 10 kbps, 13 kbps und 14 kbps bei Verwendung des Opus-Codecs.
Source: opennet.ru
