フリーソフトウェアで使える音声コーデック

先日、私はVoIPソフトフォンに関する記事を書き、その中で特許が絡んだプロプライエタリなコーデックについて触れた。SIP(Session Initiation Protocol)やIAX(Inter-Asterisk EXchange)といったオープン・プロトコルが成功しても、現実の音声データの配信にはクローズドでプロプライエタリなコーデックが標準的に使われているとすれば虚しいことだという主旨だった。こう主張する以上、品質の良いフリーのコーデックの存在を示さなければ論理は完結しない。そこで、フリーのコーデックを紹介することにする。

ソフトフォンのベンダーがプロプライエタリのコーデックだけを採用するなら、Linuxディストリビュータとソフトウェア・ベンダーは特許の所有者に使用料とライセンス料を支払わなければならない。さもなければ、普及している標準をサポートせずにVoIPという囲いの中にユーザーを閉じこめるほかはない――多くのディストリビュータとMP3を巡る今日の状況と実によく似ている。

しかし、非営利のソフトウェア・プロジェクトもまた苦慮しているのである。開発するにしても互換性に乏しいものばかりの上、まるで地雷原のようにいつ訴訟が炸裂するかわからない。しかも、ある仕様に準拠したライブラリをコーディングするには、その仕様がある程度オープンでなければならないが、多くの商用コーデックは完全に只見お断りなのである。

明らかに予防に勝る治療はなく、ほとんどのソフトフォンは複数のコーデックをサポートできる。ならば、フリーのコーデックを広く知らしめ普及させることが、こうした状況を打開する鍵となる。クローズド・ソースのアプリケーションでもフリーのコーデックをサポートできるし、サポートすべきなのだ。ビジネス的にも利点がある――ライセンスも只より安いものはないのである。

しかし、音声コーデックのどれがフリーでどれがフリーでないかを判断するのは、一般に難しい。大方のコーデックは法的状態に関する明確な情報の入手が困難で、入手可能であってもあちこちに散らばっている。そこで、フリーのコーデックをまとめてみたので参考にされたい。

フリーのコーデック

まず初めに紹介するのは完全にフリーと言うべきコーデック、すなわち、特許もなく使用料もなくライセンスの制約もないコーデックである。

SpeexはXiph.orgが開発した音声専用の圧縮形式で、BSD風ライセンスの下で公開されている。サンプリング・レートは8、16、32 kHz、ビットレートは2.2 kbpsから44.2 kbpsまで広範に対応している。SpeexはGNU Projectに公式に所属し、コードの著作権はXiph.org――米国の501(c)3非営利団体で、マルチメディアのオープンな標準とソフトウェアを保護することを目的に設立された――が持っている。

Sun Microsystemsがパブリック・ドメインで公開しているコーデックもある。一例を挙げれば、G.711――ITU(International Telecommunication Union)が認可した古い標準の一つで、サンプリング8 kHz、レート64 kbps。遅延が小さく高品質である――コーデックはフリーである。

Sunは、ADPCM(Adaptive Differential Pulse Code Modulation)コーデックのスイートもパブリック・ドメインで公開している。これは、16、24、32、40 kbpsで動作するITUのG.721、G.723、G.726、G.727標準に対応する。

ほとんどフリーのコーデック

次に、フリーソフトウェア・プロジェクトでも利用可能だが、使用に制約のあるコーデックを紹介する。

Jack Jansenは、Intel/DVIともIMA ADPCMとも呼ばれているアルゴリズムに基づいて自作した高速ADPCM実装を公開している。このアルゴリズムはIntelの機器に初めて搭載され、その後、解散したInteractive Multimedia Associationが標準として採用した。ライセンス上、著作権の表示が必要だが、それ以外の制約はない。JansenによるADPCMの実装は、zip形式のファイルでダウンロード可能である。

OpenLPCという名のLPC(Linear Predictive Coding)コーデックも同様で、配布に際しては著作権の表示が必要である。ただし、その表示に記された企業(Future Dynamics)は廃業したようだ。

米国国防総省は2.4 kbps版LPCであるLPC-10と4.8 kbpsのハイブリッドであるCode-Excited Linear Prediction(CELP)という2つの音声圧縮法に関する提案を試験実装している。この仕様は公式には連邦標準1015と1016として知られている。どちらも、Tony Robinsonのcomp.speechアーカイブから入手できる。

米国政府はこのコードの著作権を保有しているが、かつて放棄を示唆している。また、制裁あるいは通商禁止措置下にある国については、ソースの入手が禁じられている可能性がある。しかし、技術は特許にならないため、これとは独立に開発された実装にはこうした法的制約は及ばない。

Ramalho G.711 Lossless(RGL)は、Cisco Systemsの一部門であるVovida.orgがVovida Software License(VSL)の下で提供しているG.711実装である。VSLはOpen Source Initiative(OSI)が認定しているオープンソース・ライセンスだが、著作権の表示が必要である。

辛うじてフリーのコーデック

次に、特許の保護下にあるか、あるいはクローズドだが、ある条件を満たせばフリーで使えるコーデックを紹介しよう。

GlobalIPSoundは、自社のInternet Low Bitrate Codec(iLBC)を無償で提供している。多くのプログラムで利用されており、それなりに役立っているが、ライセンスにはGIPSがいつでもこの扱いを変更できる旨定められている。したがって、安心は禁物である。

VoiceAge of Montrealは、自社の3つのコーデック、Open G.729AとOpen AMRとOpen AMR-WB(言っては何だが、皮肉な名称だ)のオブジェクト・コードを非商用目的に限り無償で提供している。利用には、ライセンス契約に同意する必要がある。したがって、利用する場合は細心の注意を払って契約書を読むこと。率直に言って、許されていることは多くない。

フリーの可能性があるコーデック

最後に、ライセンス条件がわかりにくい、あるいは係争中のライセンスの下で提供されているコーデックを紹介する。ひょっとしたら検討対象になるかもしれないので敢えて紹介するが、当面は自己責任で使ってほしい。

典型的なのは、G.728としても知られているCELPの強化版LD-CELP(Low-Delay Code Excitation Linear Prediction)のコーデックである。公開されてはいるが、ライセンスが付属していない。少なくとも、2種類のコードが流通している。Analog DevicesのAlex Zatsmannによるものと、Michael Concannonによるものである。ソースの一部には、所有者としてAnalogical Systemsの名が挙げられている。

GSM6.10は、GSM携帯電話ネットワークで使われているオーディオ・コーデックである。管理の行き届いたフリー実装が利用可能。ただし、Philips Electronicsが特許を争っている。

ライセンス条件の定かでないコーデックを利用する場合は、それに伴って生じうることに十分注意すること。

おわりに

ここに示したサイトのほとんどには、改訂版実装の所在など、音声圧縮一般に関する情報も含まれている。フリーのコーデックには1990年代の初めから中頃に作られたものが多い。しかし、旧式だなどと思ってはならない。

Phil Frisbieは、そうしたフリー音声コーデックの収集に尽力している。FrisbieのHawkVoiceライブラリには、現在15種ほどの音声コーデックがインタフェースを統一して書き直され、LGPL化されて収められている。そのFrisbieが私に言った言葉がある。

GSMが作られたとき、ワークステーションはたった1本の音声ストリームさえ、リアルタイムにエンコードしたりデコードしたりすることはできませんでした。しかし、今では、PDAでも十指に余るGSMストリームを一度にエンコード/デコードできるのです。ですから、最近の知的所有権で守られたコーデックに嫌われたからといって、オープンソースの開発者はくさってはいけません。今利用可能なオープンソース・コーデックにもまだまだ活躍の道はあり、性能の良い音声圧縮の可能なアプリケーションを提供できるのです。

幸いなことに、VoIPの市場はまだ生まれたばかりである。競争は続いており、主流となるべきコーデックはまだ現れていない。フリーでオープンなコーデックが現行のソフトフォンで活躍する時間はまだ残されているのである。Richard Stallmanが言っているではないか。「フリーソフトウェアにとって、大きな障害の一つはフリーではないコーデックの使用です。それを乗り越える方法は、ただ一つ。みんなで後押しすることです」

原文