音声ネットワークにおいては、通話の際に自分の声が遅れて聞こえてくる
エコーが問題になる場合があります。VoIPによる音声ネットワークの場合、
音声のパケット化による遅延が大きいため、エコーによる音声品質の劣化が
より顕著になります。この問題に対処するため、IP Phone、Voice GW等の
VoIP 機器には、エコーキャンセラーが搭載されています。
このドキュメントでは、一般的なエコーキャンセラーの動作の仕組みに
ついて解説します。また、エコーキャンセラー機能の一部であるNLP
(Non Linear Processor)によって発生する音切れ問題についての
説明を行います。
1.エコーキャンセラーの動作について

上図は一般的なエコーキャンセラーの動作の概念図です。
電話網(PBX、電話機、受話器)から帰ってくるエコーの大きさと
遅延時間は、コールの接続先により変動します。
Adaptive Filterは、電話網から帰ってくるエコーの予測を行い、
元の信号からエコーを打ち消すための逆位相の波形をを生成し、
電話網からの波形に合成してエコーを減少させます。
元の信号からの減衰レベル、遅延時間等のパラメータを調整する
時間は、コンバージェンス時間と呼ばれます。コンバージェンスは
コール開始時に行われます。減衰レベル等の条件が変動した場合は、
再度コンバージェンスが行われますが、通常、1つのコール内では
条件は変動せずに安定しています。
エコーの波形は、伝送路、マイク・スピーカー等の特性により
歪みが生じるため、Adaptive Filterだけでエコーを完全に消去する
ことはできません。エコーキャンセラーには、この残留エコーを
消去するために、NLP(non-linear processor)の機能が搭載されています。
VoIP網からのシングルトークの状態において、NLPは電話網からの音声
を抑制し、残留エコーを消去します。電話網側からの音声が完全に
無音になると、VoIP側の通話者が不自然に感じる場合があります。
エコーキャンセラーは、NLPの動作時にコンフォートノイズを生成し、
この不自然さを緩和します。

上図は、コールの状態に依存したNLPの動作の変化を表しています。
ダブルトーク(VoIP網と電話網の両側で話している場合)の状態では
NLP機能はオフの状態です。残留エコーは存在しますが、電話網側からの
音声が残留エコーより大きいため、エコーは目立ちません。
シングルトーク(VoIP側でのみ話している場合)の状態では残留エコーが
目立つため、NLPが機能して電話網側からの音声を抑制します。

電話機が環境音の比較的大きな場所(マシンルーム、屋外、BGMの流れている
部屋)等に設置されている場合を考えます。
シングルトークの状態でNLPが動作すると、環境音が急になくなるため、
通話者は音切れが発生していると感じます。
NLPは残留エコーを防ぐための有用な機能ですが、NLPによる無音(音切れ)を
不快に感じる場合、NLPの機能を停止した方が良い場合もあります。
備考:Cisco Voice GWでは、"no non-linear" コマンドを設定することにより
NLP機能を停止できます。
Cisco IP Phoneに関しては、NLPを停止する機能はありません。
また、IP Phoneの機種により、DSPファームウェアの実装が異なり、
NLPによる音切れの発生度合いが異なります。
TACでは、IP Phoneを購入する際、事前にIP Phoneの音声品質を
確認することを推奨しています。
2.NLPによる音切れ問題の考え方
VoIPシステムにおける音切れの事象は、様々な原因で発生します。
(音切れ問題の発生要因)
- VoIP網の品質劣化(RTPパケットのドロップ・遅延・ジッタ)
- VAD (Voice activity detection) 機能の動作
- 電話網側の音切れ(携帯電話、IP電話サービスの普及により増加)
- NLP (Nonlinear processor) 機能の動作
音切れの原因を特定するには、ユーザへのヒアリングを行い
発生状況を出来るだけ正確に把握する必要があります。
(音切れの発生状況による原因の推定)
音切れがランダムに発生する場合、VoIP網の品質劣化が疑われます。
通話相手からの音量の変化に関連している場合は、VAD機能が疑われます。
特定の携帯電話網、IP電話サービスとの通話で発生する場合は、電話網側の
問題である可能性が高くなります。
自分が話したタイミングで相手からの音声が途切れる場合は、NLP機能が
疑われます。電話網(IP電話サービス等)側にVoIP機器が使用されている場合、
電話網側でNLPによる音切れが発生する可能性もあります。
備考:厳密に調査を行う場合、VoIP側のパケットキャプチャ、Voice GWのログ・
PCMキャプチャ、IP Phoneのログ等を取得して解析する必要があります。
(NLPによる音切れが発生した時の被疑箇所の推定)



上図は、一般的なVoIPのシステム構成でNLPによる音切れが発生する
パターンを表しています。
IP Phone間の通話または Voice GW 間の通話においてNLPによる音切れが
発生した場合、リモート側の IP Phone または Voice GW 機器上の
NLPの動作が関与しています。
同様にIP Phone とVoice GW間の通話の場合、IP Phone側で音切れが
発生する場合はVoice GWのNLPが、電話網側で音切れが発生する場合は
IP Phone側のNLPが関与しています。
備考:音切れ問題にCisco Voice GWのNLPの関与が疑われる場合、
切り分け手段として、一時的にNLP機能を停止させる方法が
考えられます。Voice GWに "no non-linear" コマンドを設定して
事象が改善する場合は、NLPによる音切れであると考えられます。
NLP機能を停止し状態で、VoIPシステムを運用する場合、
"input gain"、 "output attenuation" コマンドを使用して
音声レベルを調整し、必要な通話音量を維持しながら、
残留エコーができるだけ目立たないように調整します。
まとめ
音声通話において音切れの発生は、通話品質に大きな影響を与えます。
音切れの問題は、エコーキャンセラーのNLPの機能が原因で発生する
場合があります。
この問題に対処するため、エコーキャンセラーの動作原理とNLPによる
音切れの発生する仕組みを理解することが重要になります。