Speex(スピークス)は、
VoIPアプリケーションや
ポッドキャストなどで広く利用されていた、オープンソースの音声圧縮
コーデックです。
特許による制限がなく、三条項
BSDライセンスの下で自由に利用できる点が特徴です。
Oggコンテナフォーマットと組み合わせて利用したり、UDP/RTP上で直接転送したりすることも可能です。
Speexは、汎用的な音声圧縮プロジェクトであった
Vorbisを補完する目的で開発されました。しかし、
非可逆圧縮方式であるため、圧縮によって
音質は劣化し、元の
音質に完全に復元することはできません。開発元のXiph.Orgは、Speexの開発を既に終了しており、後継として、より性能の高いOpus
コーデックを推奨しています。
Speexの概要
Speexは、携帯電話ではなく、
VoIPやファイル圧縮を主なターゲットとして開発されました。高品質な音声と低ビットレートの両立を目指し、複数のビットレートに対応しており、超広帯域(32kHz)、広帯域(16kHz)、狭帯域(8kHz)といった様々な
サンプリング周波数をサポートしています。
VoIP向けであるため、パケット損失に強い設計がされていますが、パケットの破損には比較的弱いという特徴があります。
符号化技術には、
Code Excited Linear Prediction (CELP)が採用されています。CELPは、低ビットレートから高ビットレートまで幅広く対応できるため、Speexの用途に適していました。
主な特徴としては、以下のような点が挙げられます。
オープン標準であり、特許やロイヤルティが不要
狭帯域と広帯域を同一のビットストリームに統合
広範囲なビットレートに対応(2kbit/sから44kbit/s)
動的なビットレート切り替えと
[可変ビットレート]に対応
発話区間検出(VAD)機能
圧縮率の調整が可能
32kHzでの超広帯域モード(最大48kHz)
インテンシティ
ステレオ符号化オプション
Speexの機能
Speexは、主に3種類の
サンプリング周波数に対応しています。8kHz(狭帯域)、16kHz(広帯域)、32kHz(超広帯域)です。これらはそれぞれ、電話回線品質、高品質音声、高
音質音声の用途に対応しています。
Speexでの符号化は、
[音質]]パラメータによって制御されます。このパラメータは0から10の範囲で設定でき、固定ビットレート]の場合、
[整数で、[[可変ビットレート]の場合は実数で指定します。
可変計算量
エンコーダの計算量を調整できます。計算量を高くすると
音質は向上しますが、
CPU使用率も高くなります。一般的に、計算量2から4がバランスが良いとされています。
音声の複雑さに応じて、ビットレートを動的に変化させる機能です。VBRを使用することで、同じ
音質であればより低いビットレートで、同じビットレートであればより高い
音質を実現できます。しかし、平均ビットレートを保証できないというデメリットもあります。
平均ビットレート (ABR)
VBRの課題を解決するために、平均ビットレートを指定してVBRを調整する機能です。
音質とビットレートをリアルタイムで調整するため、理想的なVBRよりも
音質が若干劣る場合があります。
発話区間検出 (VAD)
音声信号の無音区間を検出する機能です。VBR時に自動的に適用され、無音区間ではノイズを生成するのに十分なビット列に符号化するConfort Noise Generation(CNG)機能と組み合わせて使われます。
不連続転送 (DTX)
無音区間の転送を完全に停止する機能です。ファイル上では、無音フレームをわずか5ビットで表現できます。
知覚改良
デコーダ側の機能で、符号化や復号の過程で生じるノイズを知覚しにくくする処理を行います。
アルゴリズム的遅延
コーデックは、一般的に転送時に遅延を生じさせます。Speexの遅延はフレームサイズに比例し、さらに先読み処理に必要な時間が加算されます。狭帯域では30ms、広帯域では34msの遅延が発生します。
MIME
Speexの
メディアタイプは、
Oggコンテナに格納される場合はaudio/ogg、RTPで転送される場合はaudio/speex、IANA登録前はaudio/x-speexとされています。
Speexの応用
Speexは、遠隔会議やゲーム、音声処理など、幅広い分野で利用されています。具体的な例としては、以下のようなものが挙げられます。
DirectShowフィルタ
Microsoft WindowsのNetMeeting
LinuxのOpenH323(Ekiga)
Winampや
XMMS向けの
プラグイン
foobar2000
Adobe Flash Player(バージョン10.0以降でサポート)
Adobe AIR (バージョン1.5以降で利用可能)
マイクロソフトのXbox Live (ヘッドセットに採用)
Half-Life 1 エンジン(ゲーム内VoIP機能)
アメリカ陸軍のLand Warriorシステム
シド・メイヤーのCivilization IV (ナレーション)
VoIPソフト TeamSpeak
Rockbox (音声インターフェースやファイル再生)
外部リンク
公式ウェブサイト
Speex Codec Manual
JSpeex - Javaプラットフォームへの Speex の JNI wrapper