Codec 2 + neuronales Netzwerk = ganzer Podcast auf einer Diskette

In einem früheren Artikel haben wir den Opus-Codec besprochen, der mit sehr niedrigen Bitraten läuft. Ein anderer Codec zielt jedoch darauf ab, noch niedrigere Bitraten zu erzielen - dies ist Codec 2 .

Codec 2 dient nur zum Codieren von Sprache. Und obwohl die Bitrate beeindruckend ist, ist der Klang nicht so hochwertig wie im Fall von Opus, was in Audiobeispielen zu hören ist. In Kombination mit dem neuronalen Netzwerk ( WaveNet ) zeigt der Codec jedoch beeindruckende Ergebnisse .


Schichten eines neuronalen Netzwerks WaveNet

Einführung


Codec 2 ist Open Source und für die Sprachcodierung konzipiert. Es konzentriert sich auf Bitraten von 700 bis 3200 Bit / s.

Entwickler - David Rowe , ein derzeit in Südaustralien lebender Elektronikingenieur. Er startete das Projekt im September 2009 mit dem Ziel, die kostengünstige Funkkommunikation für Menschen in abgelegenen Gebieten der Welt zu verbessern. Zu diesem Zweck wollte er einen Codec entwickeln, der die Anforderungen an Dateigröße und Bandbreite für das Streaming erheblich reduzieren würde.

Eine weitere Motivation laut David war die Schaffung eines patentfreien Codecs als Alternative zu proprietären Codecs, die seiner Meinung nach „teure und ungeschickte Lizenzen erfordern und Innovationen ersticken“. Er glaubt, dass Sie auf patentierte Codecs verzichten können, und verteilt alle Arbeiten unter einer kostenlosen Lizenz.

Mögliche Anwendung


Der Autor nennt verschiedene Anwendungen des Codecs, einschließlich VoIP, Sprachkommunikation über ein schmales Band von digitalem HF / UHF-Radio (insbesondere für Amateurfunk, um Probleme mit proprietären Codecs zu vermeiden), Kommunikation in Entwicklungsländern und abgelegenen Regionen, einschließlich Armee, Polizei und Rettungsdiensten .

Bei Auphonic sind wir an der möglichen Verwendung eines Codecs zur besseren Komprimierung von Podcasts, Präsentationen und Hörbüchern interessiert, wodurch der Platzbedarf verringert und die Auswirkungen schlechter Netzwerkverbindungen minimiert werden.

Wie funktioniert es?


Um die Bitrate zu verringern, ist es notwendig, die Sprache auf das Minimum möglicher Informationen / Daten zu reduzieren, dh die Menge übermäßig übertragener Informationen zu minimieren.

Zu diesem Zweck verwendet Codec 2 eine harmonische sinusförmige Sprachcodierung . Er unterteilt die Sprache in Segmente von 10 bis 30 ms, die als Frames bezeichnet werden. Jeder Rahmen wird dann auf einen Grundpegel (Tonhöhe) und die Anzahl der Harmonischen analysiert, die in die 4-kHz-Bandbreite passen. Ferner werden für jede Harmonische im Bereich von 4 kHz die Amplitude und Phase aufgezeichnet.

Diese Informationen werden dann codiert und der Decoder stellt den Ton basierend auf diesen Daten wieder her.


Codec 2-Flussdiagramme: Codierer (links) und Decodierer (rechts). Illustration von Rowtel

Audiobeispiele und Vergleich mit anderen Codecs


Das alles klingt zwar theoretisch großartig, aber was in Wirklichkeit? Lass uns zuhören. Hier ist eine kurze WAV-Sounddatei:

intro-orig.wav - 1,3 MB

Wir wenden Codec 2 (ohne WaveNet-Decoder) mit verschiedenen verfügbaren Bitraten an: 3200 Bit / s , 2400 Bit / s , 1600 Bit / s , 1200 Bit / s und 700 Bit / s .

Diese Beispiele zeigen eine signifikante Reduzierung der Dateigröße.

Schauen wir uns die Dateien hinsichtlich ihrer Lautstärke an, um 1 Stunde Sound zu speichern :

  • Bei 3200 Bit / s benötigt eine Stunde Sound nur 1,37 MB (passt auf eine alte 3½-Zoll-Diskette!)
  • Bitrate 2400 bps entspricht 1,03 MB / h
  • Die Bitrate von 1600 Bit / s beträgt 0,68 MB / h (oder ungefähr zwei Stunden Sound auf einer Diskette! )
  • 1200 bps - bis zu 0,51 MB / h
  • 700 bps - bis zu 0,3 MB / h

Die Komprimierung ist sehr stark, aber das Ergebnis klingt eindeutig unnatürlich.

Zum Vergleich ist der gleiche Sound in MP3 mit 8 Kbit / s .

Die Dateigröße ist erheblich größer als die von Codec 2, und die Qualität ist wahrscheinlich immer noch nicht akzeptabel. Sie können gut hören, was manchmal als Zischen bezeichnet wird - die seltsamen Metallklänge, die MP3s mit geringer Qualität innewohnen.

Es gibt den letzten Codec, mit dem verglichen werden kann. Es scheint, dass es beide Welten vereint, das heißt, es bietet akzeptable Qualität bei niedriger Bitrate: Opus .

Dank seiner überzeugenden Leistung bei niedrigen Bitraten bietet Auphonic Benutzern bereits Opus-Codierungen mit bis zu 6 Kbit / s, die niedrigste Bitrate, die der Codec unterstützt.

Mit 6 kbit / s scheint der Opus-Codec deutlich besser zu sein als MP3 mit 8 kbit / s. Die Stimme ist etwas gedämpft, klingt aber immer noch natürlich .

Kehren wir aus Interesse zu Codec 2 zurück und hören wir uns an, wie er Musik codiert ! (Beachten Sie, dass Codec 2 nicht zum Codieren von Musik gedacht ist, sondern nur zum Sprechen).

Quelldatei
MP3 8 kbps

Persönlich kann ich MP3 nicht mit einer solchen Bitrate hören. Schauen wir uns also die Ergebnisse von Codec 2 an! Also 3200 Bit / s , 2400 Bit / s , 1600 Bit / s , 1200 Bit / s , 700 Bit / s .

Es ist leicht zu verstehen, dass es für diesen Zweck überhaupt nicht geeignet ist!

Codec 2 und WaveNet


Wie wir bereits gehört haben, ist das Ergebnis trotz der beeindruckenden Komprimierung kein sehr natürlicher Klang.

Aber hier wird die Sache interessanter, wenn Sie sich die Arbeit von Bastian Klein aus der Cornell University Library ansehen. Er verwendete Codec 2 mit einer Bitrate von 2400 Bit / s für die Codierung, ersetzte jedoch den Codec 2-Decoder durch ein generatives WaveNet-Deep-Learning-Modell (weitere Informationen finden Sie im Artikel „Wavenet-basierte Low-Bitrate-Codierung“ ).

Hier einige Beispiele der Autoren :

Männerstimme
Quelldatei
Codec 2
Mit WaveNet Decoder

Weibliche Stimme
Quelldatei
Codec 2
Mit WaveNet Decoder

Im Vergleich zu Codec 2 stellen wir eine signifikante Qualitätsverbesserung fest , und im Vergleich zum Original gibt es keine signifikante Qualitätsminderung.

David Rowe selbst sagte, er betrachte das Ergebnis als "eine dramatische Verbesserung der Sprachcodierung bei niedrigen Bitraten" und "einen guten 8000-Bit / s-Breitband-Sprachcodec".

Fazit


Obwohl der (ursprüngliche) Codec 2-Codec eine sehr interessante Aufgabe ist, ist sein Umfang begrenzt und das Endergebnis ist nicht für Podcasts geeignet. Aus Audiobeispielen geht auch hervor, dass damit nur Sprache, nicht aber Musik komprimiert werden kann.

Trotzdem verbessert Codec 2 in Kombination mit dem WaveNet-Decoder die Qualität erheblich, und die niedrige Bitrate (2400 Bit / s) wird für die Verteilung von Podcasts und Hörbüchern äußerst interessant sein: Für eine Stunde Sound werden nur 1,03 MB Speicherplatz benötigt!

Auphonic fügt den Ausgabedateien Codec 2-Unterstützung hinzu, wenn der WaveNet-Decoder in einer verwendbaren Form angezeigt wird. Bisher haben wir die Unterstützung für Codec 2 nur für Eingabedateien hinzugefügt.

Source: https://habr.com/ru/post/de415557/


All Articles