音声信号をVoice over IP技術(音声パケット通信)を利用して送受信するサービスが広く利用されるようになった。図9にその概要を示す。入力音声信号は音声信号送信装置5で音声パケットに変換され、パケット通信網6に送出される。音声信号受信装置7は自己宛に送られて来る音声パケットを識別して受信し、音声パケットを復号して音声を出力する。
図10に送信すべき音声データ列と音声パケットの関係を示す。図10Aは送信すべき音声データ列を示す。送信すべき音声データ列は一般にPCMディジタルサンプル列で構成される。このディジタル音声データ列をフレームと呼ばれる一定の時間単位(以下、フレーム長と称する。一般的には10ミリ秒〜20ミリ秒程度)に区切って音声符号化し、音声符号に送信時刻を表すタイムスタンプ等を付加して音声パケットとして送信される。音声パケットは図10Bに示すように時間軸方向に圧縮された間欠信号とされ、間欠信号の空き時間は他のパケット通信に利用される。音声信号送信装置5から送り出される音声パケットの送り出しの時間の間隔(パケット化周期とも呼ばれる)は音声データ列のフレーム長に該当し、フレーム長に相当する時間間隔で音声パケットがパケット通信網6に送り出される。
音声信号受信装置7はフレーム長に相当する時間間隔で到来する音声パケットを受信し、音声パケットを復号することにより図10Cに示すように1音声パケットが1フレーム長の音声データ列に復号され、1フレーム長に相当する時間間隔で音声パケットを受信することにより、音声信号受信装置7は連続した音声を再生することができる。ところで、パケット通信網6の状態によっては音声パケットの到来時間に大きな揺らぎが生じ、その結果、制限時間内(フレーム長に相当する時間内)に音声パケットが届かない現象が発生し、再生する音声が途切れるという問題がある。この問題に対して、揺らぎ吸収バッファと呼ばれる受信バッファを設け、常に一定量のパケットを受信バッファに溜めておく方式が知られている。なお、到来時間の揺らぎとは、パケット通信網6の状態によって、音声信号送信装置5から音声パケットが送り出されてから音声信号受信装置7が音声パケットを受信するまでの所要時間が変動すること、又はその変動量のことである。到来時間の揺らぎのため、音声信号受信装置7が音声パケットを受信する間隔がフレーム長に相当する時間間隔よりも長くなったり短くなったりする。
この方法において、受信バッファに溜めておく音声パケットの量を多くすると、パケットの到来時間の大きな揺らぎには強いが、音声パケットを受信してから音声が再生されるまでの遅延、すなわち通話の遅延も大きくなり、双方向で話しづらいという問題がある。逆に、受信バッファに溜めておく音声パケットの量を少なくすると、通話の遅延は少ないが、音声パケットの到来時間の揺らぎが発生したときに、音声が途切れ易いという問題がある。つまり、通話の遅延と音声の途切れ易さはトレードオフの関係にある。
この問題に対して、受信バッファに溜める音声パケット量を動的に制御する方法が特許文献1に開示されている。図11に、特許文献1の音声パケット再生装置900の機能構成を示して、その動作を簡単に説明する。
音声パケット再生装置900は、パケット受信部11、受信バッファ12、音声パケット復号部13、状態検出部14、音声分析部15、制御部16、消費量調整部20、サウンドデバイス18、とで構成される。パケット受信部11は、通信網から音声パケットを受信して受信バッファ12に蓄積すると共に、音声パケットの受信時刻と当該音声パケットのタイムスタンプを状態検出部14に出力する。
受信バッファ12は、受信した音声パケットを蓄積し、音声パケット復号部13からの転送要求がある毎に、蓄積した音声パケットをタイムスタンプの順番に出力する。音声パケット復号部13は、音声パケットに含まれる音声符号を復号した音声データ列を消費量調整部20と音声分析部15に出力する。
状態検出部14は、音声パケットの受信時刻と当該音声パケットのタイムスタンプを入力として、到来時間の揺らぎを求め、その到来時間の揺らぎの値を一定時間過去(例えば2秒間)に遡って保持し、現パケットの受信時点(到着時点)における過去一定時間内の到来時間の揺らぎの最大値である最大到来時間揺らぎを検出する。そして、現時点のその最大到来時間揺らぎと受信バッファ12の蓄積パケット数を、制御部16に出力する。
音声分析部15は、音声パケット復号部13が出力する復号音声データ列を分析して、各フレームが音声区間であるか非音声区間であるかを判定し、音声/非音声信号を制御部16に出力する。制御部16は、最大到来時間揺らぎと受信バッファ12の最適蓄積パケット数との関係を予め定めたテーブル16Tを有しており、状態検出部14から入力される最大到来時間揺らぎの値からそのテーブル16Tを参照して最適蓄積パケット数Bを求める。そして、状態検出部14から入力される受信バッファ12の蓄積パケット数Sと最適蓄積パケット数Bとの差(S−B)と、音声分析部15から入力される音声/非音声判定結果に基づいて、音声パケット復号部13が出力する現フレームの音声データ列に対して、伸張するか、短縮するか、あるいは変更しないかを決め、その決定による制御信号(切替制御)を消費量調整部20に出力する。
消費量調整部20は、制御部16の出力する制御信号に従って、音声パケット復号部13の出力する音声データ列をそのまま出力するか、伸張して出力するか、短縮して出力する。音声データ列を伸張すれば、音声パケット復号部13の受信バッファ12に対する次の音声パケットの転送要求が遅れることになり、単位時間当たりの音声パケットの消費量が少なくなる。逆に、音声データ列を短縮すれば、単位時間当たりの音声パケットの消費量が多くなる。その結果、音声パケット再生装置900は全体として、受信バッファ12の蓄積パケット数Sが、最適蓄積パケット数Bの値に近づくように制御される。サウンドデバイス18は、ディジタル信号である音声データ列を、スピーカを駆動するアナログ信号に変換するものである。
このようにパケット受信部11が、音声パケットの受信時刻と音声パケットのタイムスタンプを状態検出部14に出力し、状態検出部14で過去一定時間内の到来時間の揺らぎの最大値である最大到来時間揺らぎを検出することで、受信バッファ12に蓄積される音声パケットの数を最適な値に制御することができる。ここでは、このように音声パケットの受信時刻を参照して最適蓄積パケット数を決める方式を「アクティブ方式」と称することにする。
以下、この発明の実施の形態を図面を参照して説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
図1に、この発明の音声パケット再生装置100の機能構成例を示す。その動作フローを図2に示す。音声パケット再生装置100は、従来技術で説明した音声パケット再生装置900と同じように、入力音声データ列のフレーム毎の符号化により生成された音声信号を収容して送信された一連の音声パケットを受信し、当該受信した音声パケットを一時的に蓄積(Buffering)すると共に、一時的に蓄積するパケット量を動的に制御して再生音声データを出力するものである。音声パケット再生装置100は、例えばROM、RAM、CPU等で構成されるコンピュータに所定のプログラムが読み込まれて、CPUがそのプログラムを実行することで実現される。
音声パケット再生装置100は、パケット受信部110と、受信バッファ部111と、蓄積パケット数検出部112と、揺らぎ観測部113と、音声パケット復号部13と、制御部114と、を含む。音声パケット再生装置900(図11)と同じ参照符号が付与されている各機能構成部は同じものである。同じ機能構成部である、例えば音声パケット復号部13、又は図のみに記載している音声分析部15等についての説明は簡単にする。
パケット受信部110は、通信網から音声パケットを受信し、その音声パケットを受信バッファ部111に蓄積する(ステップS111)。パケット受信部110は、受信した音声パケットの受信時刻を参照しない点で新しい。
音声パケットには、フレーム長に区切った音声信号を音声符号化の手法によって変換した音声符号と、送信側における音声パケット作成の時間順序を示すタイムスタンプ(フレーム番号に対応)が含まれている。代表的な音声符号化手段としては、ITU-T(国際電気通信連合)の標準であるG.711方式があるが、G.729やG.722,G.711.1などの他の任意の方式でも良い。また、特段の音声符号化手段を利用せず、PCM信号がそのままフレーム毎に音声パケットに収容されていても良い。PCM信号も一種の音声符号であると見做すことができるので、本発明における音声符号化には、PCM信号も含むものとする。フレーム長は一般に10ミリ秒〜20ミリ秒を用いるが、5,40,60,80ミリ秒を用いることもある。
受信バッファ部111は、受信した音声パケットを一時的に蓄積し、転送要求に応じて上記一連の順に音声パケットを音声パケット復号部13に出力する(ステップS111)。受信バッファ部111は、受信した音声パケットを蓄積し、音声パケット復号部13から転送要求がある度に、音声パケットをタイムスタンプ順に音声パケット復号部13に出力する。受信バッファ部111から音声パケットが音声パケット復号部13に転送される毎に、受信バッファ部111からその音声パケットは削除される。
音声パケット復号部13は、受信バッファ部111から読み出されたフレームに対応する音声パケット中の音声符号を復号した復号音声データ列を消費量調整部20と音声分析部15に出力する(ステップS13)。ここで復号音声データ列とは、ディジタル音声サンプル列であり、一般的にはPCMフォーマットで扱われることが多い。なお、音声パケットに収容されている音声符号がPCM信号の場合には、音声パケット復号手段13は厳密には復号処理を行わないで単に音声パケットに含まれる音声符号を抜き出すだけの処理であるが、ここでは広義の解釈として復号手段と称している。
蓄積パケット数検出部112は、受信バッファ部111に蓄積されている音声パケットの数を、上記転送要求の毎に数えて受信バッファの残量として出力する(ステップS112)。
揺らぎ観測部113は、一定時間毎の受信バッファの残量の増減を観測し、予め定められた統計的規則に基づいて吸収すべき揺らぎ値を求めて出力する(ステップS113)。ここで、一定時間毎の一定時間とは例えば1秒間であり、フレーム長の整数倍の一定時間である。この実施例では、吸収すべき揺らぎ値の単位をフレーム数分として説明する。
受信バッファの残量について説明する。音声信号送信装置は、フレーム長の時間間隔で規則正しく音声パケットを送信する。しかし、音声パケットがネットワークを通ると到来時間の揺らぎ(以下、揺らぎ)が発生し、音声パケットの間隔が等間隔でなくなる。
もし、揺らぎが無く等間隔が維持されるか、揺らぎがフレーム長の時間未満であれば、受信バッファ部111の音声パケットの残量は一定に保たれる。しかし、揺らぎが発生して音声パケットの受信間隔がフレーム長の時間を超えると、受信バッファ部111の残量は減少する。逆に受信間隔がフレーム長よりも短くなると受信バッファ部111の残量は増加する。つまり、受信バッファ部111の音声パケットの残量は、時々刻々増加と減少を繰り返している。
この音声パケットの残量が変化する過程において、バッファ残量が一時的に0になりバッファが枯渇すると、音声パケット復号部13から転送要求があっても音声パケットを送ることが出来ないので再生音声が途切れる。一方、バッファ残量の最小値が大きすぎると、過剰に音声パケットを蓄積することになり、無駄な音声遅延を生じることになる。
したがって、バッファ残量の最小値は1、すなわち、音声パケット復号部13から転送要求があった時にバッファ残量が0にならない範囲で出来るだけ小さい値が理想である。しかし、ネットワークの揺らぎは一定では無く、トラフィックの混雑具合によって時々刻々変化するため、観測した揺らぎの変動から吸収すべき揺らぎ値を決定し、受信バッファ部111に蓄積する音声パケットの数を決定する必要がある。
音声分析部15は、音声パケット復号部13が出力する復号音声データ列を分析して現フレームが音声区間であるか非音声区間であるかを判定し、判定した結果を音声/非音声情報として制御部114に出力する(ステップS15)。音声分析部15は、参照符号から明らかなように音声パケット再生装置900(図10)と同じものである。以降、音声パケット再生装置900と同じ機能構成部の説明は、必要最小限に止める。
なお、音声分析部15が消費量調整部20に出力するLpは、音声波形にスペクトル包絡の逆特性を持つフィルタをかけた信号の自己相関係数を計算することで得られるピッチ長である。ピッチ長Lpは、破線で示すように消費量調整部20において利用しなくても良い。ピッチ長Lpを計算する方法は、特許文献1に記載されているように周知である。また、図1の消費量調整部20において、波形伸張用バッファ23(図11)の表記は省略している。
制御部114は、揺らぎ観測部113が出力する吸収すべき揺らぎ値を入力として、当該吸収すべき揺らぎ値とそれに対する受信バッファ部111の最適蓄積パケット数の対応規則を保持し、受信バッファの残量が増加した後に減少に転じる時の受信バッファの残量の最大値を、最適蓄積パケット数に近づけるように音声パケット復号部13が出力する復号音声波形データを伸張するか、短縮するか、あるいは変更しないかを制御する波形伸縮指示情報を出力する(ステップS114)。この波形伸縮指示情報は、音声分析部15が出力する音声/非音声情報を参照して生成される。ここで、最適蓄積パケット数の対応規則とは、最適蓄積パケット数を吸収すべき揺らぎ値以上とする規則である。
復号音声波形データの伸縮は、音声区間で行うよりも非音声区間で行う方が、利用者は波形伸縮に伴う音質劣化や不自然さの増加に気が付き難い。そこで、バッファが枯渇して音切れが発生する可能性が低い場合、又は、音声パケットが溜まり過ぎて通話に支障が出るほど遅延が増加する可能性が低い場合は、音声/非音声情報を参照して非音声区間に波形伸縮指示信号を出力する。
消費量調整部20は、復号音声波形データに基づいて再生音声データを出力するものであり、制御部114の出力する波形伸縮指示情報に従ってSW1とSW2を切り替えて、音声パケット復号部13が出力する復号音声波形データを、そのまま出力するか、伸張して出力するか、短縮して出力する(ステップS20)。消費量調整部20は、復号音声波形データを伸縮した再生音声データをサウンドデバイス18に出力する。
サウンドデバイス18は、図示していないD/A変換器を有しており、再生音声データをアナログ信号に変換して、スピーカを駆動する出力音声を出力する(ステップS18)。消費量調整部20とサウンドデバイス18は、参照符号から明らかなように音声パケット再生装置900(図10)と同じものである。
パケット受信部110が音声パケットを受信してから、サウンドデバイス18が出力音声を出力するまでの一連の動作は、音声パケットが一定時間以上の間入力されない場合、又は、図示しない動作停止信号が制御部114に入力されるまで繰り返される(ステップS115のNo)。この動作終了の制御は制御部114が行う。
受信バッファ部111と音声パケット復号部13と消費量調整部20とサウンドデバイス18は、縦続接続され、各部はデータの送信先からの転送要求があるたび、又は転送先が受け取り可能な状態になる毎にデータを送信する。したがって、消費量調整部20が復号音声波形データを伸張すれば、音声パケット復号部13の受信バッファ部111に対する次の音声パケットの転送要求が遅れることになり、一定時間当たりの音声パケットの消費量が減少しバッファ残量を増加させることになる。逆に、復号音声波形データを短縮すれば、次の音声パケットの転送要求が早くなり、一定時間当たりの音声パケットの消費量が増加しバッファ残量を減少させることになる。その結果、音声パケット再生装置100は、受信バッファ部111の音声パケットの数が、吸収すべき揺らぎ値から決定した最適蓄積パケット数に近づくように動作する。
以上説明したように音声パケット再生装置100は、一定時間毎の受信バッファ部に蓄積されている音声パケットの数の増減を観測して揺らぎを推定する。よって、音声パケットの受信時刻を参照する必要が無い。音声パケットの受信時刻を参照する方式を「アクティブ方式」と称したが、その必要の無いこの発明の方法は「パッシブ方式」と称しても良い。「パッシブ方式」は、ミリ秒単位を問題にする受信時刻を観測の対象にしないため、Voice over IPプログラムの並列処理間の同期に注意を払う必要が無くなり、ソフトウェアの実装を容易にすることが出来る。
なお、実施例1は、吸収すべき揺らぎ値をフレーム数分とする例で説明を行ったが、吸収すべき揺らぎ値をミリ秒単位としても良い。その場合は、吸収すべき揺らぎ値と最適蓄積パケット数との関係を予め定めたテーブルを用意し、そのテーブルを参照して最適蓄積パケット数を求める。
図3に、この発明の音声パケット再生装置200の機能構成例を示す。音声パケット再生装置200は、吸収すべき揺らぎ値の求め方をより具体的に示したものであり、音声パケット再生装置100に対して揺らぎ観測部213の機能構成部のみが異なる。
揺らぎ観測部213は、上記一定時間を、第一の観測時間と当該第一の観測時間よりも長い第二の観測時間との組とし、第一の観測時間に含まれるフレーム数の受信バッファの残量の数を数え、その受信バッファの残量の最大値と最小値の差をフレーム長を単位とする揺らぎの短時間最大値とする。そして、吸収すべき揺らぎ値を、第二の観測時間の間観測したN個の揺らぎの短時間最大値の時系列から予め決められた統計的規則に基づいて求めるものである。
図4に示す揺らぎ観測部213の動作フローを参照してその動作を説明する。揺らぎ観測部213は、動作を開始すると、先ず内部に持つメモリ2をクリアする(ステップS213a)。そして、メモリ1をクリアし、第一の観測時間の計時を開始する(ステップS213b)。
例えば、第一の観測時間を1秒、フレーム長を20ミリ秒とすると、第一の観測時間は50フレームに相当し、その間の受信バッファの残量がメモリ1に格納される(ステップS213c)。次に揺らぎ観測部213は、第一の観測時間の経過後、メモリ1に格納された受信バッファの残量の最大値Smaxと最小値Sminを求める(ステップS213f)。
そして、受信バッファの残量の最大値Smaxから最小値Sminを減じて、揺らぎの短時間最大値Jを計算する(ステップS213g)。揺らぎの短時間最大値Jは、第二の観測時間の間計算され、その値はメモリ2に格納される(ステップS213h)。第二の観測時間を、例えば30秒とすると、30個(上記したN個)の揺らぎの短時間最大値Jが得られる。
次に、揺らぎ観測部213は、30個の揺らぎの短時間最大値Jの時系列から、予め決められた統計的規則に基づいて吸収すべき揺らぎ値を決定する(ステップS213j)。予め決められた統計的規則としては、例えば最大値を抽出する規則や、平均、分散、標準偏差などの統計量に基づいて決定する規則、その他、短時間最大値Jの分布に基づく規則が考えられる。そうして決定された吸収すべき揺らぎ値は、制御部114へ出力される(ステップS213k)。この吸収すべき揺らぎ値の決定は、第二の観測時間の単位で、音声パケットが一定時間以上の間入力されなくなるまで、又は、図示しない動作停止信号が制御部114に入力されるまで繰り返される(ステップS115のNo)。
以上説明したように、受信バッファの残量の最大値と最小値の差をフレーム長を単位とする揺らぎの短時間最大値として求め、その揺らぎの短時間最大値の時系列から吸収すべき揺らぎ値を求めるようにしても良い。
図5に、この発明の音声パケット再生装置300の機能構成例を示す。音声パケット再生装置300は、修正バッファ残量計算部319を備える点で音声パケット再生装置200と異なる。
実施例2(図3)において、第一の観測時間毎の受信バッファの残量の最大値Smaxと最小値Sminの差を、揺らぎの短時間最大値Jとして求める例を説明した。この方法では、バッファ残量の観測をして揺らぎを推定し、復号音声データ列を伸縮することでバッファ残量を制御し、その制御された結果のバッファ残量を観測して揺らぎを推定する。この一連の処理は自己回帰型の閉ループになる。よって、単純に第一の観測時間毎のバッファ残量の最大値Smaxと最小値Sminの差Jを求めるだけでは正確に揺らぎを推定することができない。
そこで、音声パケット再生装置300は、仮に復号音声データ列を波形伸縮するバッファ制御が行われなかったと仮定したバッファ残量を、修正バッファ残量と称して定義し、第一の観測時間毎の修正バッファ残量の最大値S′maxと最小値S′minの差J′を当該観測時間におけるフレーム長を単位とする揺らぎの短時間最大値とするものである。
ここで、消費量調整部20の出力波形の長さと入力波形の長さの差をフレーム長の単位で表したものを差分dと定義する。消費量調整部20は、復号音声データ列の波形伸縮をフレーム長の波形を挿入又は削除することによって行うものとすると、消費量調整部20に入力された1フレーム長の復号音声データ列の波形は伸張時には2フレーム長の波形とされ(SW1:A1,SW2:A2)、短縮時には0フレーム長になり波形は出力されない(SW1:C1,SW2:C2)、又、波形を変更しない場合には1フレーム分の波形がそのまま出力される(SW1:B1,SW2:B2)。例えば、1フレーム長が入力されて2フレーム長が出力された時は差分d=1、1フレーム長が入力されて0フレーム長が出力された時は差分d=−1、波形を変更しない場合はd=0となる。差分dは、制御部114が消費量調整部20に出力する波形伸縮指示情報から求めることができる値である。
修正バッファ残量計算部319は、波形伸縮指示情報を入力として復号音声データ列の波形伸縮量である差分dを求め、その差分dを第一の観測時間の開始フレームからバッファ残量の観測フレームの直前まで加算した変数Dを求める。つまり、第一の観測時間の開始時を基準とした最初のフレームの上記差分dをd1、第mフレームの差分dをdmとすると、第mフレームの変数Dは、次式で定義される波形伸縮量の蓄積値である。
変数Dは、第一の観測時間の開始時ごとに0にリセットされる。その変数Dを、蓄積パケット数検出部112が出力する受信バッファの残量から差し引いて修正バッファ残量として出力する。
修正バッファ残量は、ある時刻における実際のバッファ残量からその時点での変数Dを差し引いた値である。揺らぎ観測部213は、受信バッファの残量の代わりに修正バッファ残量を入力とし、修正バッファ残量の最大値S′maxと最小値S′minの差J′を当該観測時間におけるフレーム長を単位とする揺らぎの短時間最大値とする。
このように、復号音声データ列の波形の伸縮量を一定時間の間加算(蓄積)した値を、受信バッファの残量から差し引いた値を修正バッファ残量とすることで、正確な揺らぎを推定することができる。この実施例3の考えは、後述する実施例4と5にも適用することが可能である。
図6に、この発明の音声パケット再生装置400の機能構成例を示す。音声パケット再生装置400は、上記した実施例の統計的規則の一例を示したものである。
音声パケット再生装置400は、音声パケット再生装置200の揺らぎ観測部213に代えて、揺らぎ観測部413を備える点でのみ異なる。揺らぎ観測部413は、上記予め定められた統計的規則を、上記揺らぎの短時間最大値が、上記第二の観測時間以上の時間幅では正規分布していると見做して、揺らぎの短時間最大値の平均値a、標準偏差σ、パラメータnとした時に、a+nσより大きな揺らぎの短時間最大値を除外して吸収すべき揺らぎ値を求めるようにしたものである。
図7に、音声パケット再生装置400の動作フローを示す。音声パケット再生装置400の動作フローは、音声パケット再生装置200(図3)に対して揺らぎ観測部413の動作ステップのみが異なる。揺らぎ観測部413は、N個の揺らぎの短時間最大値Jの平均値aと標準偏差σを計算する(ステップS413j1)。次に、吸収すべき揺らぎ値の上限UをU=a+nσで計算して求める(ステップS413j2)。そして、吸収すべき揺らぎ値の上限U以下の最大値を吸収すべき揺らぎ値として決定する(ステップS413j3)。
ここで、パラメータnが無限大であれば、除外処理を行わないことと等価であり、パラメータnが0の時は平均値aよりも大きい揺らぎの短時間最大値Jは除外されることになる。パラメータn=1.65と仮定すると、a+nσより大きい揺らぎの短時間最大値Jは全体の5%、パラメータn=1.96とすると、a+nσより大きい揺らぎの短時間最大値Jは全体の2.5%存在すると考えることができる。
受信バッファの枯渇による音切れを完全に防止するためには、パラメータnは無限大、すなわち、観測された揺らぎの最大値を吸収すべき揺らぎ値とすべきである。しかし、稀にしか発生しない揺らぎに備えて受信バッファに音声パケットを蓄積すると、音声遅延が大きくなってしまう。
従来の音声パケット再生装置は、観測された揺らぎの最大値を元に最適蓄積パケット数を決定しているため、突発的に大きな揺らぎが発生するとその後の音声遅延が大きくなり通話に支障が出る場合があった。一般に、送話端−受話端の片道遅延が400ミリ秒を超えると話しづらくなると言われている。パケット通信網では、400ミリ秒を超える揺らぎが発生することがあり、揺らぎの最大値に基づいて吸収すべき揺らぎ値(最適蓄積パケット数)を決定すると、遅延が400ミリ秒を超えてしまう場合がある。
音切れの発生頻度を減らそうとすると遅延が大きくなり、遅延を減らすと音切れの発生頻度が増えるというトレードオフの関係がある。そこでこの実施例では、0<パラメータn<∞の範囲でパラメータnを定めることによって、音声遅延と音切れ頻度の関係を調整する。
具体的なパラメータnの値は、実際の音声通話実験を行って、音声遅延と音切れ頻度のバランスが良いと人が主観的に感じる値に設定する。例えば、第一の観測時間を1秒とし、a+nσより大きな揺らぎの短時間最大値Jが全体の2.5%存在したと仮定すると、40秒に1回程度の頻度でバッファが枯渇し、プツンというノイズが発生する可能性がある。しかし、40秒に1回程度であれば、会話には実質的に支障が無いと考えることができる。
パラメータnの値は、予め揺らぎ観測部413に定数として設定しておいても良いし、図6に破線で示すように外部から入力できるようにしておいても良い。パラメータnを設けることで、音声遅延と音切れ頻度のトレードオフの関係を、その時々に応じてバランス良く調整することが可能になる。
なお、この実施例では、揺らぎの短時間最大値が正規分布していると見做したが、実際の揺らぎの分布は正規分布でなくても良い。例えば、指数分布やポアソン分布等の確率分布の場合でも、本実施例の考えを適用することができる。
第二の観測時間とパラメータnの値は、複数設定することもできる。音声パケット再生装置400の揺らぎ観測部413を、パラメータnの値が、受信バッファの残量の増減を観測する観測時間が過去であるほど小さくなるように複数の値が設定されるようにした揺らぎ観測部513とした音声パケット再生装置500(図示は省略)も考えられる。
リアルタイムの通信システムでは、第二の観測時間は過去の時刻になり、揺らぎの短時間最大値Jは過去の揺らぎの時間変動となる。そこで例えば、揺らぎ観測部513は、第二の観測時間の時刻よりも、更に過去の時刻に第三の観測時間を定め、第三の観測時間に含まれる第一の観測時間毎のN3個の揺らぎの短時間最大値Jの値の平均値a3と標準偏差σ3を求め、N3個の揺らぎの短時間最大値Jから、a3+n3σ3より大きいものを除外することによって、N3′個の揺らぎの短時間最大値Jを選択し、第二の観測時間から得られるN′個の揺らぎの短時間最大値Jと、第三の観測時間から得られるN3′個の揺らぎの短時間最大値Jの内、大きい方を吸収すべき揺らぎ値として出力する。このとき、パラメータn3は、第二の観測時間で揺らぎの短時間最大値Jの値を除外するためのパラメータnよりも小さい値に設定する。例えばn=1.96、n3=1.65といった具合である。n=2.58、n3=1.95の組み合わせでも良い。
また、第三の観測時間は第二の観測時間よりも長く設定しても良い。例えば、第二の観測時間を10秒、第三の観測時間を60秒などにしても良い。図8に、揺らぎ観測部513における観測時間とパラメータnの関係を示す。横軸はフレーム数で経過時間を表す。縦軸はパラメータnである。図8Aに、第三の観測時間を第二の観測時間よりも長く設定した例を示す。
揺らぎはネットワークのトラフィックに起因するため、過去に発生した揺らぎから今後発生する揺らぎを正確に予測することは現実には難しい。長時間にわたって過去に発生した揺らぎと同等の揺らぎが発生することに備えると、トラフィックが改善しても音声遅延が大きな状態が続いてしまう。そのため、直近の過去に発生した揺らぎは重視し、揺らぎの発生から時間が経過するにしたがって、その揺らぎを、揺らぎの予測に徐々に利用しないようにしたアルゴリズムが適当である。
図8Bに示すように、パラメータnの値が、受信バッファの残量の増減を観測する観測時間が過去であるほど小さくなるように複数の値を設定するようにしても良い。図8Bに示すようなパラメータnの値は、過去に遡るフレーム数の数で、所定の定数を除算することで得ることができる。
このように、過去である程、パラメータnの値を小さくする考えは、過去に発生した揺らぎは重視しない考えである。この考えによれば音声遅延と音切れの関係を適切に制御することが可能になる。
以上説明したようにこの発明の音声パケット再生装置100〜500は、一定時間毎の受信バッファ部に蓄積されている音声パケットの数の増減を観測して揺らぎを推定するので、音声パケットの受信時刻を参照する必要が無い。そのため、Voice over IPプログラムの並列処理間の同期に注意を払う必要が無く、ソフトウェアの実装を容易にする効果を奏する。
なお、音声パケット再生装置400は、音声パケット再生装置200の揺らぎ観測部113を揺らぎ観測部413に代える構成で説明を行ったが、音声パケット再生装置400と500の考えは、音声パケット再生装置300と組み合わせることも可能である。
また、統計的規則の具体例としてa+nσの例を示したが、統計的規則は発生頻度の少ない大きな値を除外できる規則であれば何でも良い。要するにa+nσでパラメータnを変えるように、除外範囲をパラメータnで広くしたり狭くしたり出来る規則であれば良いので、他にも統計的規則は考えられる。例えば、N個の揺らぎの短時間最大値Jの内、値を大きい順に並べて上位からx%の割合(0≦x<100)を除外する方法でも良い。なお、その場合は、時刻が過去になるほどxを大きくする。
このように、この発明の「パッシブ方式」の音声パケット再生装置とその方法は、幾つかの変形が可能であり、上記した実施例に限定されるものでは無い。この発明の、受信した音声パケットの受信時刻を参照しないで、一定時間毎の受信バッファ部に蓄積されている音声パケットの数の増減を観測して揺らぎを推定する考えを含むものは、本願発明の技術範囲に含まれる。
上記装置における処理手段をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における処理手段がコンピュータ上で実現される。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記録装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、各手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。