Ogg Speex oder einfach nur Speex ist ein offener, freier Audiokomprimierungscodec, der speziell für Sprache optimiert ist. Oder wie es auf der Homepage so schön formuliert ist: "ein freier Codec für freie Rede". Im Gegensatz zu OggVorbis ist Speex auch für Aufnahmen mit sehr geringer Qualität (weniger Bit pro Sekunde) ausgelegt.

Dieser Codec wird zum Beispiel in Programmen zur Internet-Telefonie (VoiceOverIp) eingesetzt. LinPhone, OpenH323 und GnomeMeeting sind Programme, in denen Speex verwendet wird.

Man kann Speex aber auch zur platzsparenden Archivierung von Sprachaufnahmen verwenden, oder um Programme mit Sprachausgabe zu versehen. Darauf geht dieser Artikel später genauer ein.

Der "Ogg"-Container wird nur bei der Speicherung als Datei verwendet.

Homepage: http://www.speex.org/

Wiki: http://wiki.xiph.org/index.php/Speex

Lizenz: Xiph.org Lizenz (ähnlich der modifizierten BSD Lizenz)

Speex ist ein offizielles GNU-Projekt.

Tipps & Tricks

Das Programm "speexdec" kann nicht nur Speex-Dateien in unkomprimierte Formate konvertieren, es ist auch ein Player. Man kann Speex-Dateien einfach mit "speexdec <Dateiname>" abspielen.

Das Programm speexdec kann man natürlich auch von Skripten oder Programmen aus aufrufen, um diese mit Sprachausgabe auszustatten.

Mini-Howto

Der Speex Algorithmus ist für bestimmte Samplingraten optimiert. Man sollte seine Aufnahmen vor dem Kodieren also in eine dieser Samplingraten umwandeln:

Man kann eine Aufnahme zum Beispiel mit sox resamplen:

sox Aufnahme.wav -r 16000 Aufnahme-wideband.wav resample

Um diese Datei nun mit Speex zu kodieren, empfehle ich folgende Vorgehensweise (wenn es nicht gestreamt, sondern als Datei gespeichert werden soll.)

speexenc --quality 5 --vbr --dtx --comp 10 --title "Testaufnahme" --author "Theo Tester" --comment "speaker=Ludwig Laberkopp" Aufnahme-wideband.wav Aufnahme.spx

(Alles in einer Zeile einzugeben)

Erklärung:

--quality 5
Stellt die Qualität ein. Es sind Werte zwischen 0 und 10 einschließlich erlaubt. Ein kleinerer Wert führt zu kleineren Dateien mit geringerer Qualität
--vbr

variable bitrate: führt zu optimaleren Ergebnissen bei gespeichterten Dateien, ist aber nicht für Daten geeignet, die gestreamt werden sollen.

--dtx
Discontinuous Transmission: Stille Sequenzen werden mit nur ganz wenigen Bit pro Sekunde kodiert. Dies ist auch nur verwendbar, wenn das Ergebnis als Datei gespeichert werden soll.
--comp 10
Wie rechenintensiv das Kodieren sein darf. 10 ist der höchste Wert. Dadurch dauert das Kodieren länger, es kommt aber ein besseres Ergebnis bei raus. Das Dekodieren wird dadurch übrigens nicht komplizierter.
--title
Der Titel der Aufnahme als Text
--author
Der Autor des Textes
--comment
Damit können beliebige Informationen gespeichert werden. Es muss immer als "Bezeichner=Text" angegeben werden. Diesen Parameter kann man mehrfach angeben. Die Bezeichner sollten immer in Englisch sein.

Beispiele


KategorieLinuxMultimedia KategorieAudio

OggSpeex (zuletzt geändert am 2007-12-23 22:46:40 durch localhost)