Eine Audiocodierung bezeichnet die Art und Weise, in der Audiodaten gespeichert und übertragen werden. Auf der Seite wird beschrieben, wie solche Codierungen in Bezug auf die Cloud Speech-to-Text API funktionieren.
Richtlinien zur Auswahl der besten Codierung für Ihre Anwendung finden Sie in unserem Leitfaden mit Best Practices.
Audioformate im Vergleich zu Audiocodierungen
Ein Audioformat ist nicht dasselbe wie eine Audiocodierung. WAV-Audiodateien definieren beispielsweise das Format des Headers einer Audiodatei, sind aber selbst keine Audiocodierung. Bei WAV-Dateien wird häufig, aber nicht immer, eine lineare PCM-Codierung verwendet. Sie können nicht davon ausgehen, dass eine -Datei eine bestimmte Codierung aufweist. Dazu müssen Sie den Header prüfen.
FLAC ist jedoch sowohl ein Dateiformat als auch eine Codierung, was gelegentlich zu einer gewissen Verwirrung führt. Eine FLAC-Datei muss die Abtastrate im Header enthalten, damit sie an die Cloud Speech-to-Text API gesendet werden kann. FLAC ist die einzige Codierung, bei der Audiodaten einen Header haben müssen. Alle anderen Audiocodierungen geben Audiodaten ohne Header an. Wenn wir in der Cloud Speech-to-Text API auf FLAC verweisen, beziehen wir uns immer auf den Codec. Beim Verweis auf ein FLAC-Dateiformat verwenden wir die Formulierung „eine FLAC-Datei“.
Unterstützte Audiocodierungen für Cloud Speech-to-Text
Die Cloud Speech-to-Text API unterstützt verschiedene Codierungen. In der nachstehenden Tabelle sind die unterstützten Audio-Codecs aufgelistet:
| Codec | Name | Verlustfrei | Hinweise zur Verwendung |
|---|---|---|---|
| MP3 | MPEG Audio Layer III | Nein | Die MP3-Codierung ist ein Beta-Feature, das nur in v1p1beta1 verfügbar ist. Weitere Informationen finden Sie in der Referenzdokumentation zu RecognitionConfig. |
FLAC |
Free Lossless Audio Codec | Ja | 16 Bit oder 24 Bit für Streams |
LINEAR16 |
Linear PCM | Ja | 16-Bit-Codierung mit linearer Pulscodemodulation (PCM) Der Header muss die Abtastrate enthalten. |
MULAW |
μ-law | Nein | 8-Bit-PCM-Codierung |
AMR |
Adaptive Multi-Rate Narrowband | Nein | Abtastrate muss 8.000 Hz sein |
AMR_WB |
Adaptive Multi-Rate Wideband | Nein | Abtastrate muss 16.000 Hz sein |
OGG_OPUS |
Opus-codierte Audioframes in einem Ogg-Container | Nein | Abtastrate muss 8.000 Hz, 12.000 Hz, 16.000 Hz, 24.000 Hz oder 48.000 Hz sein. |
SPEEX_WITH_HEADER_BYTE |
Speex wideband | Nein | Abtastrate muss 16.000 Hz sein |
WEBM_OPUS |
WebM Opus | Nein | Abtastrate muss 8.000 Hz, 12.000 Hz, 16.000 Hz, 24.000 Hz oder 48.000 Hz sein. |
Cloud Speech-to-Text unterstützt WAV-Dateien mit LINEAR16- oder MULAW-codierten Audiodaten.
Weitere Informationen zu den Audio-Codecs von Cloud Speech-to-Text finden Sie in der Referenzdokumentation zu AudioEncoding.
Wenn Sie bei der Codierung des Quellmaterials eine Wahl haben, verwenden Sie eine verlustfreie Codierung wie FLAC oder LINEAR16 für eine bessere Spracherkennung. Richtlinien für die Auswahl eines Codecs, der für Ihre Aufgabe am besten geeignet ist, finden Sie unter Best Practices.
Warum muss Audio codiert werden?
Audiodaten bestehen aus den Wellenformen unterschiedlicher Frequenzen und Amplituden. Um diese Wellenformen in digitalen Medien darzustellen, müssen die Wellenformen mit Raten abgetastet werden, die zumindest Töne der höchsten Frequenz darstellen können, die Sie replizieren möchten. Zudem muss auch eine ausreichende Bittiefe gespeichert werden, um die richtige Amplitude der Wellenformen, d. h. die lauten und leisen Passagen, im gesamten Tonsample darzustellen.
Die Fähigkeit eines Audiogeräts, Frequenzen wiederzugeben, wird als Frequenzgang bezeichnet. Die Fähigkeit, laute und leise Passagen wiederzugeben, wird als Aussteuerungsbereich bezeichnet. Diese beiden Fähigkeiten zusammen bilden die Fidelity eines Audiogeräts. Die Codierung ist vereinfacht ausgedrückt ein Mittel, mit dem Ton unter Verwendung dieser beiden Grundprinzipien rekonstruiert werden kann. Eine Codierung bietet auch die Möglichkeit, diese Daten effizient zu speichern und zu übertragen.
Abtastraten
Der Ton liegt in Form einer analogen Wellenform vor. Ein Segment einer digitalen Audioaufnahme nähert sich dieser analogen Wellenform an, indem die Amplitude dieser analogen Welle mit einer ausreichend hohen Rate abgetastet wird, um die Frequenzen dieser Welle nachzubilden. Die Abtastrate eines digitalen Audiosegments gibt die Anzahl der Samples wieder, die aus dem Audioquellmaterial entnommen werden können. Die Zahl der Samples pro Sekunde wird Abtastrate genannt. Eine hohe Abtastrate erhöht die Fähigkeit der digitalen Audiodateien, hohe Frequenzen originalgetreu wiederzugeben.
Das Nyquist-Shannon-Abtasttheorem besagt, dass für eine digitale Erfassung mehr als das Doppelte der höchsten Frequenz jeder Schallwelle abgetastet werden muss. Um Audioaufnahmen im Bereich des menschlichen Gehörs (20-20.000 Hz) wiedergeben zu können, muss ein digitales Audioformat mindestens 40.000 Mal pro Sekunde abtasten. Aus diesem Grund verwenden Audio-CDs eine Abtastrate von 44.100 Hz.
Bittiefen
Die Bittiefe beeinflusst den Aussteuerungsbereich jeden Tonsamples. Eine höhere Bittiefe ermöglicht eine genauere Darstellung der Amplituden. Wenn eine Audioaufnahme viele laute und leise Töne enthält, benötigen Sie eine höhere Bittiefe für die korrekte Wiedergabe der Töne.
Höhere Bittiefen reduzieren auch den Signal-Rausch-Abstand innerhalb eines Audiosamples. Audio-CDs mit Musik haben eine Bittiefe von 16 Bit. Das DVD Audio-Format verwendet eine Bittiefe von 24 Bit, während die meisten Telefoniegeräte eine Bittiefe von 8 Bit aufweisen. Bestimmte Kompressionstechniken kompensieren geringere Bittiefen, sind dann aber oft verlustbehaftet.
Nicht komprimierte Audiodaten
Die meisten digitalen Audioverarbeitungstechnologien nutzen diese beiden Methoden, Abtastrate und Bittiefe, um Audiodaten auf einfache Weise zu speichern. Eine der am häufigsten verwendeten digitalen Audiotechnologien wird als Pulscodemodulation (Pulse Code Modulation = PCM) bezeichnet. Diese Technologie wurde durch die Compact Disc bekannt. Dabei werden Audiodaten in festgelegten Intervallen abgetastet und die Amplitude der abgetasteten Welle wird an diesem Punkt als digitaler Wert mit der Bittiefe des Samples gespeichert.
Die lineare PCM, d. h. eine gleichbleibende Amplitudenantwort über das gesamte Sample hinweg, ist der Standard, der bei CDs verwendet wird. Auch bei der LINEAR16-Codierung der Cloud Speech-to-Text API wird er verwendet. Beide Codierungen produzieren einen nicht komprimierten Stream von Bytes, der den Audiodaten direkt entspricht. Beide Standards verwenden eine Bittiefe von 16 Bit. Die lineare PCM verwendet eine Abtastrate von 44.100 Hz für CDs, die für die Wiedergabe von Musik geeignet ist. Eine Abtastrate von 16.000 Hz ist dagegen eher für die Wiedergabe von Sprache geeignet.
Die lineare PCM (LINEAR16) ist ein Beispiel für die nicht komprimierte Audioaufnahme, da die digitalen Daten genau so gespeichert werden, wie es die oben erläuterten Standards vorsehen. Beim Lesen eines einkanaligen Streams von Bytes, der mit linearer PCM codiert wurde, können Sie alle 16 Bit (2 Byte) abzählen, um beispielsweise einen weiteren Amplitudenwert der Wellenform zu erhalten. Fast alle Geräte können digitale Daten nativ bearbeiten. Sie als Nutzer können lineare PCM-Audiodateien sogar in einem Texteditor zuschneiden. Aber nicht komprimierte Audioformate sind nicht besonders gut für die effiziente Übertragung oder Speicherung digitaler Audiodaten geeignet. Aus diesem Grund verwenden die meisten Audioanwendungen digitale Komprimierungstechniken.
Komprimierte Audiodaten
Wie alle anderen Daten sind auch Audiodaten meistens komprimiert. Dies vereinfacht ihre Übertragung und Speicherung. Die Kompression von Audiocodierungen kann verlustfrei oder verlustbehaftet erfolgen. Eine verlustfreie Komprimierung lässt sich entpacken und stellt die digitalen Daten in ihrer ursprünglichen Form wieder her. Eine verlustbehaftete Komprimierung entfernt während der Komprimierung und Dekomprimierung notwendigerweise einige dieser Informationen. Sie ist parametrisiert, um anzugeben, wie viel Toleranz dem Komprimierungsverfahren bei der Entfernung von Daten eingeräumt werden soll.
Verlustfreie Komprimierung
Eine verlustfreie Kompression komprimiert digitale Audiodaten unter Verwendung komplexer Umordnungen der gespeicherten Daten, führt jedoch zu keiner Verschlechterung der Qualität des ursprünglichen digitalen Samples. Bei einer verlustfreien Komprimierung findet beim Entpacken der Daten in ihre ursprüngliche digitale Form kein Informationsverlust statt.
Warum verfügen verlustfreie Komprimierungstechniken manchmal über Optimierungsparameter? Häufig definieren diese Parameter Kompromisse zwischen Dateigröße und Dekompressionszeit. FLAC verwendet beispielsweise Komprimierungsstufenparameter zwischen 0 (am schnellsten) und 8 (kleinste Dateigröße). Höhere FLAC-Kompressionsstufen verlieren ebenso wie niedrigere keinerlei Informationen. Bei den höheren Kompressionsstufen erfordert der Kompressionsalgorithmus allerdings mehr Rechenleistung bei der Zusammenstellung oder bei der Rekonstruktion der ursprünglichen digitalen Audiodaten.
Die Cloud Speech-to-Text API unterstützt zwei verlustfreie Codierungen: FLAC und LINEAR16. Technisch gesehen ist LINEAR16 keine „verlustfreie Komprimierung”, da keine Komprimierung stattfindet. Wenn die Dateigröße oder Datenübertragung für Sie wichtig ist, verwenden Sie FLAC.
Verlustbehaftete Kompression
Die verlustbehaftete Kompression komprimiert Audiodaten, indem bestimmte Informationen bei der Zusammenstellung der komprimierten Daten entfernt oder reduziert werden. Die Cloud Speech-to-Text API unterstützt mehrere verlustbehaftete Formate. Diese sollten Sie aber vermeiden, wenn Sie mit Audiodaten arbeiten, da der Datenverlust die Erkennungsgenauigkeit beeinträchtigen kann.
Der beliebte Codec MP3 ist ein Beispiel für eine verlustbehaftete Codierung. Alle MP3-Komprimierungstechniken entfernen Audiosignale, die außerhalb des normalen menschlichen Hörbereichs liegen, und passen den Grad der Komprimierung an, indem sie die effektive Bitrate des MP3-Codecs oder die Anzahl der Bit pro Sekunde für das Speichern der Audiodaten anpassen.
Zum Beispiel hat eine Stereo-CD mit linearer PCM von 16 Bit eine effektive Bitrate von:
44100 * 2 channels * 16 bits = 1411200 bits per second (bps) = 1411 kbps
Die MP3-Kompression entfernt solche digitalen Daten mit Bitraten wie beispielsweise 320 kbit/s, 128 kbit/s oder 96 kbit/s, was zu einer Verschlechterung der Tonqualität führt. MP3 unterstützt auch variable Bitraten, wodurch Audiodaten noch weiter komprimiert werden können. Beide Techniken entfernen Informationen und können die Qualität beeinträchtigen. Viele Menschen erkennen beispielsweise den Unterschied zwischen mit 96 kbit/s und 128 kbit/s codierter MP3-Musik.
Andere Kompressionsformen parametrisieren einige andere Beschränkungen.
MULAW (auch als μ-law oder uLaw bezeichnet) ist eine 8-Bit-PCM-Codierung, bei der die Amplitude des Samples logarithmisch anstatt von linear moduliert wird. Als Ergebnis verringert uLaw den effektiven Aussteuerungsbereich der so komprimierten Audiodaten. Obwohl uLaw eingeführt wurde, um die Codierung von Sprache gegenüber anderen Audiotypen zu optimieren, ist das nicht komprimierte 16-Bit-PCM der 8-Bit-uLaw-Komprimierung noch weit überlegen.
AMR und AMR_WB führen die Modulation von codierten Audiosamples aus, indem sie eine variable Bitrate auf das Audioquellsample anwenden.
Obwohl die Cloud Speech-to-Text API mehrere verlustbehaftete Formate unterstützt, sollten Sie deren Verwendung vermeiden, wenn Sie mit Audioquelldaten arbeiten. Obwohl die Entfernung von Daten durch eine verlustbehaftete Kompression vom menschlichen Ohr möglicherweise nicht hörbar ist, kann sie die Genauigkeit der Spracherkennung von digitalen Systemen deutlich verschlechtern.