IP電話でかなめとなるのは,社内や家庭内のLAN,インターネットといったIPネットワークで音声信号をやりとりするための技術である。まず最初にこの部分をキチンと理解しておこう。

 そこでまず,IP電話のシステムで重要な役割を担うVoIPゲートウエイにスポットを当てて,IP電話を実現するのに必要となる機能を確認する。

電話の世界とIPの世界をつなぐ

 IP電話を実現するには,アナログの音声信号をディジタル信号に変えてIPネットワークに送り出すしくみが必要だ。普通の電話機とIPネットワークの間につないでその役割を果たすのがVoIPゲートウエイである。

図2 VoIPゲートウエイの役割は大きく三つある
IP電話ソフトをインストールしたパソコンや専用のIP電話機も同じ機能を備える。
 VoIPゲートウエイは普通,図2[拡大表示]に示すようなボックス型の形状をしている。背面に,アナログの電話機やボタン電話,あるいはPBXなどをつなぐための電話用インタフェースと,イーサネット(10BASE-Tテンベースティーや100BASE-TXヒャクベースティーエックス)などのLANインタフェースを備えている。これらのポートに,電話機とルーターをつなげばIP電話を使う準備が整う。

 ただし,単にLANなどのIPネットワークと電話機を物理的に接続しただけでは,電話はかけられない。アナログの電話機をIP電話の端末として使うには,(1)アナログの音声信号をディジタル信号に変換し,(2)ディジタル化した音声信号をIPパケットに詰め込んであて先に送り出さなければならない。ほかにも,(3)電話をかけるときの電話番号をパケットのあて先のIPアドレスに変換する――といった仕事もある。これらの役割を果たすのがVoIPゲートウエイなのである(図2[拡大表示])。

 この連載では,これら三つの機能のうち,(1)の音声符号化と(2)のIPパケット化について解説する。さらに,音声パケットを転送するときにIPネットワークに求められる条件を見ていく。

音声符号化――声の波形をディジタル・データで表現

 では,VoIPゲートウエイの基本機能の一つである音声符号化から見ていこう。

 音声符号化とは,電話機が音から作り出したアナログの電気信号をディジタル形式のデータに変換することである。もともと音は空気の振動で,電話機が作り出す信号はその振動をそのまま電気信号に変換した格好になっている。その電気信号の波形を数値に置き換え,最終的に0か1で表すディジタル・データに変えるのが音声符号化の役割である。

図3 電話の音声を符号化する
IP電話の音声符号化方式として代表的なのはPCM方式とCELP方式の2種類だ。
 音声信号をディジタル・データに変える符号化の方式にはさまざまな種類があるが,IP電話で使われるのは大きく2種類。一つはPCM(ピーシーエム),もう一つはCELP(セルプ)である(図3[拡大表示])。

 どちらの方式も最初の処理は同じ。まず,音声の波形を正しく再現できるように数値に換えて読み込むことである。そのためにはまず,「サンプリング」という処理を行う。

 サンプリングは,日本語でいうと「標本化」。短い時間間隔で電気信号の信号レベル(電圧値)を次々と読み取ることである。信号レベルを読み取る時間の間隔を短くすればするほど音声の信号波形を正確に測れる。

 信号を読み取る間隔は8000分の1秒と決まっている。これは,人の声はおよそ,周波数が300~3.4kHzの範囲の音になることに関係している。サンプリングについては,「元のアナログ信号の最高周波数(もっとも高い音)の2倍の周波数でサンプリングすれば,波形を忠実に再現できる」という基本原理があるからだ。つまり,音声の最高周波数を余裕を持って約4kHzに設定し,その2倍の8kHzでサンプリングするわけだ。

音声波形をそのまま伝えるPCM

 ここから先は,音声符号化の方式別に説明していこう。

 PCMではサンプリングで読み取った信号レベルを,数値に置き換えていく。これを「量子化」という。サンプリングで得た信号レベルにものさしを当てて,その数値を読み取っていくわけだ。一定の時間間隔で読み取った信号レベルの値を直線でつないでいくと元の音声信号に近い波形を再現できる。つまり,PCMは音の波形を忠実にディジタル・データにする技術といえる。そのため,電話以外にも,CDなどの音楽データの符号化にも使われている

 音声を対象としたPCM方式の国際標準であるITU-T(アイティーユーティー)勧告G.711では,信号レベルを256段階(8ビット)で量子化する。256の基準値を用意しておき,実際の信号レベルに一番近い基準値を選ぶのである

 8000分の1秒でサンプリングしたあとに8ビットで量子化するので,音声を送るために必要となるデータ量(ビットレート)は,8ビット×8000回で64kビット/秒になる。

音声をモデル化しデータ量を圧縮

 一方のCELP方式は,PCM方式とはまったく異なるアイデアに基づいている。ここではVoIPでよく使われるCS-ACELP(シーエス・エーセルプ:G.729)を例にそのしくみを簡単に見ていこう(図3[拡大表示])。

 CELP方式の基本原理は,音声をあらかじめ用意しておいたパターンに置き換えることで音声をディジタル・データに変換しようというもの。G.729では,10ミリ秒分の音声信号を,波形のパターンを集めた「コードブック」と見比べる。そして,音声の波形に最も近いパターンのコードを選び出して,そのコードを送るというものだ。

 ただし,波形のパターンだけでは複雑な人間の音声を忠実に表現できないので,元の音声信号を解析して,音の大きさや話者の特徴を表す情報をデータ化し,これらを合わせて80ビット分のディジタル信号として送る。つまりG.729では,10ミリ秒の音声信号が80ビットで送れるので,音声伝送に必要なデータ量は,80ビット×100回で8kビット/秒と,G.711の8分の1になる。

 ただ,符号化するときには,少なくとも10ミリ秒待たないとコードブックのパターンと見比べられないので,10ミリ秒以上の遅延が生じる。これは,G.711の0.125ミリ秒(8000分の1秒)と比べるととても大きい。

 このように,それぞれ一長一短あるので,実際にIP電話でPCMとCELPのどちらを使うかは,通信回線の速度などを基に判断することになる