Audio-Codec Opus erhält Update mit künstlicher Intelligenz
Der lizenzgebührenfreie Audio-Codec Opus soll dank Maschinenlernen bessere Qualität und eine allgemein verbesserte "Audio-Erfahrung" liefern.
Die neue Version 1.5 respektive 1.5.1 des lizenzgebührenfreien Audio-Codecs Opus hat ein KI-Update erhalten. Durch Maschinenlernen (ML) soll das Encoding so verbessert werden, dass der Datenstrom kompatibel mit den bisherigen Decodern bleibt. Aber auch der Decoder erhält künstliche Intelligenz zur Klangverbesserung.
Die Entwickler schreiben, dass Opus zwar bereits zuvor mittels Maschinenlernen die optimierte Unterscheidung von Sprache und Musik erhalten hat. Mit dem jetzigen Update habe er jedoch Deep-Learning-Techniken zum Verarbeiten oder Generieren der Signale selbst bekommen.
Opus-Codec: Bitstrom bleibt Standard-kompatibel
Dabei bleibe Opus voll kompatibel, anstatt dass die Entwickler einen von Grund auf neuen ML-basierten Codec programmieren. Das stelle sicher, dass Opus weiter auch auf älteren und langsameren Geräten laufe, dennoch einen einfachen Upgrade-Pfad bereitstelle. Während Deep Learning oftmals mit starken GPU-Beschleunigern verknüpft sei, habe das Opus-Projekt alles so optimiert, dass es auf den meisten Prozessoren einschließlich Smartphone-CPUs laufe.
Den meisten Nutzern sollte eine höhere Last nicht auffallen, aber solche, die mehr als fünf Jahre alte Mikroprozessoren oder Smartphones nutzen, könnten das bemerken. Die neuen Funktionen sind daher standardmäßig noch deaktiviert, sie müssen beim Compilieren sowie auch zur Laufzeit etwa mit Kommandozeilenparametern aktiviert werden.
Verbesserungen bei Paketverlusten
Paketverluste führen zu fehlenden Tonschnipseln. Das versuchen Codecs in der Regel, durch Paketverlustverschleierung (Paket Loss Concealment, PLC) zu unterbinden. Dabei handelt es sich in der Regel um eine Art decoderseitige Interpolation mit "plausiblem Audio", das an die Verluststellen eingerechnet wird. Maschinenlernen könne hier besonders stark helfen – die Opus-Entwickler gehen das mit einem Deep Neural Network (DNN) an, das die Binärdatei des Codecs etwa um 1 MByte vergrößert und bei starken Paketverlusten auf einem Laptop-CPU-Kern zu einem Prozent mehr Last führe.
Deep Redundancy (DRED), tiefe Redundanz, soll neben den typischerweise 20ms Sekunden Audio enthaltenen Paketen mit nur 12-32 kbit/s Overhead Pakete mit Redundanzdaten für eine Sekunde übertragen. Auch hier ermöglicht ML die hohe Kompression, die zu deutlich besserer Ausgabe führen soll.
KI für bessere Tonqualität
Eine "Neural Vocoder" genannte Technik soll Sprache besonders effizient komprimieren. Gegenüber dem LPCNet Vocoder soll auf Laptop- oder Smartphone-CPU-Kernen nur etwa ein Prozent Last entstehen. Den Algorithmus nennen die Entwickler Framewise AutoRegressive Generative Adversarial Network (FARGAN). Ein Paper wollen Sie zu einem späteren Zeitpunkt dazu veröffentlichen.
Die Signalverarbeitung optimieren sie mit Linear Adaptive Coding Enhancer (LACE) und einer Non-Linear-Variante (NoLACE). LACE benehme sich wie ein klassischer Post-Filter, bei dem ein Deep Neural Network (DNN) im laufenden Betrieb die Koeffizienten mit allen verfügbaren Daten anpasse – das Audiosignal selbst laufe jedoch nicht durch das DNN. Das ergebe ein kleines DNN mit sehr niedriger Komplexität, das auch auf älteren Telefonen funktioniere. Die NoLACE-Variation benötigt mehr Rechenleistung, sei aber auch wesentlich mächtiger aufgrund nicht linearer Signalverarbeitung. Beide verbessern die Sprachqualität signifikant.
Die Opus-Entwickler schreiben zur weiteren Entwicklung, dass sie in der neu gegründeten mlcodec-Gruppe des IETF daran arbeiten, die Kompatibilität mit dem bestehenden und künftigen Opus sicherzustellen. Etwa für DRED seien weitere Informationen in Opus-Paketen nötig, die ein alter Decoder dennoch verarbeiten können muss. Das sei mit dem bisher für feste Datenraten vorhandenen Padding-Mechanismus zu bewerkstelligen, benötige künftig jedoch offizielle Strukturen.
Weitere Optimierungen betreffen die Unterstützung von SIMD-Prozessor-Befehlserweiterungen. So laufen DNN-Code und SILK-Encoder schneller mit AVX2/FMA-Erweiterungen der x86-Prozessorarchitekturen. NEON-Optimierungen beschleunigen insbesondere das DNN von Opus auf ARM-CPUs (AArch64). Die Entwickler haben noch am selben Tag der Veröffentlichung von Opus 1.5 libopus 1.5.1 nachgeschoben, das den defekten Build-Prozess mit Meson repariert.
Seit zwölf Jahren Standard
Der Audio-Codec Opus wurde 2012 in den RFC-Standard 6716 gegossen und lässt sich ohne Lizenzgebühren nutzen. Er sticht durch niedrige Latenzen und einem breiten Anwendungsspektrum von VoIP (etwa Mono-Audio für Web-Telefonie und -Konferenzen) hin zu musikalischen Mehrspuraufnahmen mit hohen Bitraten vor. Er ging aus Skypes SILK-Codec für Sprachkompression und vom Xiph-Gründer Christopher Montgomery in den Xiph-Codecs umgesetzten CELT-Audio-Kompressor (Constrained-Energy Lapped Transform) hervor. Der Codec erfährt breite Unterstützung, da Entwickler ihn kostenfrei nutzen dürfen.
Neben Opus haben etwa Ciscos Webex-Codecs neue KI-Funktionen erhalten, die nebst automatischer Transkription auch Klangverbesserungen versprechen. Ciscos KI soll Hintergrundgeräusche ausblenden und verbesserten Sprecherfokus liefern. Zudem kommt ein reiner KI-Audio-Codec hinzu, der auch bei geringer Bandbreite und mit Paketverlusten mit lediglich einem 16tel der Opus-Bitrate auskommen soll. Microsoft setzt in Teams bereits seit drei Jahren auf KI-optimierte Audio-Codecs, die ähnlich wie Opus ab 6 kbit/s taugliche Ergebnisse liefern sollen. Sie sollen jedoch keine Vorteile bezüglich der Latenz liefern.
(dmk)