Speex- Speex

Speex
Speex-Logo 2006.svg
Dateinamenerweiterung
.spx
Internet-Medientyp
Audio/X-Speex, Audio/Speex, Audio/Ogg
Entwickelt von Xiph.Org-Stiftung , Jean-Marc Valin
Formattyp Audio
Enthalten von Ogg
Standard RFC 5574
Offenes Format ? Jawohl
Webseite www .speex .org
libspex
Entwickler Xiph.Org-Stiftung , Jean-Marc Valin
Erstveröffentlichung 1.0 / März 2003
Stabile Version
1.2.0 / 7. Dezember 2016 ; vor 4 Jahren ( 2016-12-07 )
Betriebssystem Plattformübergreifend
Typ Audio-Codec , Referenzimplementierung
Lizenz Lizenz im BSD-Stil
Webseite Xiph.org-Downloads

Speex ist ein speziell auf die Wiedergabe menschlicher Sprache abgestimmter Audiokompressionscodec sowie ein kostenloser Software- Sprachcodec , der für VoIP- Anwendungen und Podcasts verwendet werden kann . Es basiert auf dem CELP- Sprachcodierungsalgorithmus. Speex behauptet, frei von Patentbeschränkungen zu sein und ist unter der überarbeiteten (3-Klausel) BSD-Lizenz lizenziert . Es kann mit dem Ogg- Containerformat verwendet oder direkt über UDP / RTP übertragen werden . Es kann auch mit dem FLV- Containerformat verwendet werden.

Die Speex-Designer sehen ihr Projekt als Ergänzung zum universellen Audiokompressionsprojekt von Vorbis .

Speex ist ein verlustbehaftetes Format, dh die Qualität wird permanent verschlechtert, um die Dateigröße zu reduzieren.

Das Speex-Projekt wurde am 13. Februar 2002 erstellt. Die ersten Entwicklungsversionen von Speex wurden unter der LGPL- Lizenz veröffentlicht, aber ab Version 1.0 Beta 1 wird Speex unter Xiphs Version der (überarbeiteten) BSD-Lizenz veröffentlicht. Speex 1.0 wurde am 24. März 2003 nach einem Jahr Entwicklungszeit angekündigt. Die letzte stabile Version von Speex-Encoder und -Decoder ist 1.2.0.

Xiph.Org betrachtet Speex nun als obsolet; Nachfolger ist der modernere Opus- Codec, der unter Lizenz von Microsoft das SILK- Format verwendet und seine Leistung in den meisten Bereichen außer bei den niedrigsten Abtastraten übertrifft.

Beschreibung

Speex ist auf Voice over IP (VoIP) und dateibasierte Komprimierung ausgerichtet. Die Entwurfsziele bestanden darin, einen Codec herzustellen, der für Sprache hoher Qualität und niedrige Bitrate optimiert ist. Um dies zu erreichen, verwendet der Codec mehrere Bitraten und unterstützt Ultrabreitband (32  kHz Abtastrate ), Breitband (16 kHz Abtastrate) und Schmalband (Telefonqualität, 8 kHz Abtastrate). Da Speex für VoIP und nicht für die Nutzung von Mobiltelefonen entwickelt wurde, muss der Codec robust gegenüber verlorenen Paketen sein, aber nicht gegenüber beschädigten Paketen. All dies führte zur Wahl der Code-angeregten linearen Prädiktion (CELP) als Kodiertechnik für Speex. Einer der Hauptgründe ist, dass CELP seit langem bewiesen hat, dass es seine Aufgabe erfüllen und sowohl auf niedrige Bitraten (wie von DoD CELP @ 4,8 kbit/s belegt) als auch auf hohe Bitraten (wie bei G.728 @ 16 kbit ) gut skalieren kann /S). Die Hauptmerkmale lassen sich wie folgt zusammenfassen:

Merkmale

Abtastrate
Speex ist hauptsächlich für drei verschiedene Abtastraten ausgelegt: 8 kHz (die gleiche Abtastrate für die Übertragung von Telefongesprächen ), 16 kHz und 32 kHz. Diese werden jeweils als Schmalband, Breitband und Ultrabreitband bezeichnet.
Qualität
Die Speex-Codierung wird die meiste Zeit durch einen Qualitätsparameter im Bereich von 0 bis 10 gesteuert. Beim Betrieb mit konstanter Bitrate (CBR) ist der Qualitätsparameter eine ganze Zahl , während der Parameter bei variabler Bitrate (VBR) a . ist reelle ( Gleitkomma- ) Zahl.
Komplexität (variabel)
Mit Speex ist es möglich, die für den Encoder zulässige Komplexität zu variieren. Dies geschieht, indem gesteuert wird, wie die Suche mit einer Ganzzahl im Bereich von 1 bis 10 ausgeführt wird, ähnlich wie bei den Optionen -1 bis -9 bei gzip- Komprimierungsdienstprogrammen . Bei normaler Verwendung ist der Rauschpegel bei Komplexität 1 zwischen 1 und 2 dB höher als bei Komplexität 10, aber die CPU- Anforderungen für Komplexität 10 sind etwa fünfmal höher als für Komplexität 1. In der Praxis besteht der beste Kompromiss zwischen Komplexität 2 und 4, obwohl höhere Einstellungen oft nützlich sind, wenn Nicht-Sprache-Sounds wie DTMF- Töne kodiert werden oder wenn die Kodierung nicht in Echtzeit erfolgt.
Variable Bitrate (VBR)
Variable Bitrate (VBR) ermöglicht es einem Codec, seine Bitrate dynamisch zu ändern, um sich an die "Schwierigkeit" des zu kodierenden Audios anzupassen. Im Beispiel von Speex erfordern Klänge wie Vokale und energiereiche Transienten eine höhere Bitrate, um eine gute Qualität zu erreichen, während Frikative (zB s- und f-Laute) mit weniger Bits ausreichend kodiert werden können. Aus diesem Grund kann VBR bei gleicher Qualität eine niedrigere Bitrate oder bei einer bestimmten Bitrate eine bessere Qualität erreichen. Trotz seiner Vorteile hat VBR drei Hauptnachteile: Erstens gibt es keine Garantie für die endgültige durchschnittliche Bitrate, indem nur die Qualität angegeben wird. Zweitens zählt für einige Echtzeitanwendungen wie Voice over IP (VoIP) die maximale Bitrate, die für den Kommunikationskanal niedrig genug sein muss. Drittens stellt die Verschlüsselung von VBR-codierter Sprache möglicherweise keine vollständige Vertraulichkeit sicher, da Phrasen immer noch identifiziert werden können, zumindest in einer kontrollierten Einstellung mit einem kleinen Wörterbuch von Phrasen, indem das Variationsmuster der Bitrate analysiert wird.
Durchschnittliche Bitrate (ABR)
Die durchschnittliche Bitrate löst eines der Probleme von VBR, da sie die VBR-Qualität dynamisch anpasst, um eine bestimmte Zielbitrate zu erreichen. Da die Qualität/Bitrate in Echtzeit (Open-Loop) angepasst wird, ist die globale Qualität etwas niedriger als bei der Codierung in VBR mit genau der richtigen Qualitätseinstellung, um die durchschnittliche Zielbitrate zu erreichen.
Sprachaktivitätserkennung (VAD)
Wenn aktiviert, erkennt die Sprachaktivitätserkennung, ob es sich bei dem codierten Audio um Sprache oder Stille/Hintergrundgeräusche handelt. VAD ist bei der Codierung in VBR immer implizit aktiviert, daher ist die Option nur im Nicht-VBR-Betrieb sinnvoll. In diesem Fall erkennt Speex Nicht-Sprachperioden und codiert sie mit gerade genug Bits, um das Hintergrundrauschen zu reproduzieren. Dies wird als „ Comfort Noise Generation“ (CNG) bezeichnet. Die letzte Version von VAD funktionierte einwandfrei ist 1.1.12, seit v 1.2 wurde sie durch einfache Any Activity Detection ersetzt.
Diskontinuierliche Übertragung (DTX)
Die diskontinuierliche Übertragung ist eine Ergänzung zum VAD/VBR-Betrieb, die es ermöglicht, die Übertragung vollständig einzustellen, wenn das Hintergrundgeräusch stillsteht. In einer Datei werden für jeden fehlenden Frame 5 Bit verwendet (entsprechend 250 Bit/s).
Wahrnehmungsverbesserung
Die Wahrnehmungsverbesserung ist ein Teil des Decoders, der, wenn er eingeschaltet ist, versucht, das durch den Codierungs-/Decodierungsprozess erzeugte Rauschen (die Wahrnehmung davon) zu reduzieren. In den meisten Fällen entfernt die Wahrnehmungsverbesserung den Klang objektiv weiter vom Original (Signal-Rausch-Verhältnis), aber am Ende klingt er immer noch besser (subjektive Verbesserung).
Algorithmische Verzögerung
Jeder Codec führt zu einer Verzögerung bei der Übertragung. Für Speex ist diese Verzögerung gleich der Rahmengröße zuzüglich einer gewissen "Vorausschau", die erforderlich ist, um jeden Rahmen zu verarbeiten. Im Schmalbandbetrieb (8 kHz) beträgt die Verzögerung 30 ms, bei Breitband (16 kHz) beträgt die Verzögerung 34 ms. Diese Werte berücksichtigen nicht die CPU-Zeit, die zum Codieren oder Decodieren der Frames benötigt wird.

Anwendungen

Vergleich von Audio-Codecs für Sprache.

Es gibt eine große Basis von Anwendungen, die den Speex-Codec unterstützen. Beispiele beinhalten:

Die meisten davon basieren auf dem DirectShow- Filter oder OpenACM-Codec (zB Microsoft NetMeeting ) unter Microsoft Windows oder Xiph.orgs Referenzimplementierung libvorbis unter Linux (zB Ekiga ). Es gibt auch Plugins für viele Audioplayer. Weitere Informationen finden Sie auf der Plugin- und Software-Seite auf der Website speex.org.

Der Medientyp für Speex ist Audio/Ogg, solange es in Ogg enthalten ist, und Audio/Speex (früher Audio/x-Speex), wenn es über RTP oder ohne Container transportiert wird.

Die US - Armee ‚s Land Warrior System, entworfen von General Dynamics , verwendet auch Speex für VoIP auf einem EPLRS Radio entworfen von Raytheon .

Der Ear Bible ist ein Einohr-Kopfhörer mit integriertem Speex-Player mit 1 GB Flash-Speicher, auf dem eine Aufnahme der New American Standard Bible vorinstalliert ist .

Die Linux-basierte VIPA OS-Software von ASL Safety & Security, die in Langleitungs-Beschallungssystemen und Sprachalarmierungssystemen an großen internationalen Luftverkehrsknotenpunkten und Schienennetzen verwendet wird.

Das Rockbox- Projekt verwendet Speex für seine Sprachschnittstelle. Es kann auch Speex-Dateien auf unterstützten Playern wie dem Apple iPod oder dem iRiver H10 abspielen.

Das tragbare Datenerfassungsgerät Vernier LabQuest für den naturwissenschaftlichen Unterricht verwendet Speex für Sprachanmerkungen, die von Schülern und Lehrern entweder über das eingebaute oder ein externes Mikrofon erstellt werden.

Die Google Mobile App für iPhone enthält derzeit Speex. Es hat sich auch , dass die neue vorgeschlagen Google Sprachsuche iPhone App Speex zu Sendesprach an Google - Server für die Interpretation verwendet.

Adobe Flash Player unterstützt Speex ab Flash Player 10.0.12.36, veröffentlicht im Oktober 2008. Aufgrund einiger Fehler in Flash Player wird die erste empfohlene Version für Speex-Unterstützung 10.0.22.87 und höher. Speex im Flash Player kann für beide Kommunikationsarten verwendet werden, über Flash Media Server oder P2P . Speex kann im Gegensatz zu Nellymoser Audio, das in früheren Versionen von Flash Player das einzige Sprachformat war, in jedes beliebige Format dekodiert oder konvertiert werden . Speex kann ab Version 10 der Video File Format Specification (veröffentlicht im November 2008) auch im Flash-Video- Containerformat (.flv) verwendet werden.

Der JavaSonics ListenUp Voice Recorder verwendet Speex, um Sprachnachrichten zu komprimieren, die in einem Browser aufgezeichnet und dann auf einen Webserver hochgeladen werden. Hauptanwendungen sind Sprachtraining, Transkription und soziale Netzwerke.

Speex wird als Sprachkompressionsalgorithmus in der Siri- Sprachunterstützung auf dem iPhone 4S verwendet . Da Text-to-Speech auf den Servern von Apple stattfindet, wird der Speex-Codec verwendet, um die Netzwerkbandbreite zu minimieren.

Siehe auch

Quellen

Dieser Artikel verwendet Material aus dem Speex-Codec-Handbuch, das dem Copyright © Jean-Marc Valin unterliegt und unter den Bedingungen der GFDL lizenziert ist .

Verweise

Externe Links