(57)【要約】【課題】音声パケットの受信時刻を参照する必要のない音声パケット再生装置を提供する。【解決手段】本発明の音声パケット再生装置は、少なくともパケット受信部と受信バッファ部と蓄積パケット数検出部と揺らぎ観測部と音声パケット復号部と制御部とを含み、揺らぎ観測部が、一定時間毎の受信バッファの残量の増減についての予め定められた統計的規則に基づいて吸収すべき揺らぎ値を求め、音声パケット復号部が、音声パケット中の音声符号を復号し、制御部が、その吸収すべき揺らぎ値とそれに対する受信バッファ部の最適蓄積パケット数の対応規則を保持し、受信バッファの残量を、最適蓄積パケット数に近づけるように制御する。【選択図】図１
2015076741.tif 000002
【特許請求の範囲】
【請求項１】
音声データ列のフレーム毎の符号化により生成された音声符号を収容して送信された一連の音声パケットを受信し、上記音声符号の復号音声データ列に基づいて再生音声データを出力する音声パケット再生装置において、
上記音声パケットをパケット通信網から受信するパケット受信部と、
受信した上記音声パケットを一時的に蓄積し、転送要求に応じて上記一連の順に上記音声パケットを出力する受信バッファ部と、
上記受信バッファ部に蓄積されている音声パケットの数を、受信バッファの残量として出力する蓄積パケット数検出部と、
一定時間毎の上記受信バッファの残量の増減についての予め定められた統計的規則に基づいて吸収すべき揺らぎ値を求めて出力する揺らぎ観測部と、
上記受信バッファ部から読み出された音声パケット中の音声符号を復号して復号音声データ列として出力する音声パケット復号部と、
上記吸収すべき揺らぎ値とそれに対する上記受信バッファ部の最適蓄積パケット数の対応規則を保持し、上記受信バッファの残量を上記最適蓄積パケット数に近づけるように制御する制御部と、
を含むことを特徴とする音声パケット再生装置。
【請求項２】
請求項１に記載した音声パケット再生装置において、
上記揺らぎ観測部は、上記一定時間を第一の観測時間と当該第一の観測時間よりも長い第二の観測時間との組として、当該第二の観測時間の間観測した揺らぎの短時間最大値の時系列から上記吸収すべき揺らぎ値を求めるものであり、
上記揺らぎの短時間最大値は、上記第一の観測時間に含まれる上記フレームの数の上記受信バッファの残量の最大値と最小値の差である、
ことを特徴とする音声パケット再生装置。
【請求項３】
請求項２に記載した音声パケット再生装置において、
上記制御部は、上記復号音声データ列を伸張するか、短縮するか、あるいは変更しないかを制御する波形伸縮指示情報を出力するものであり、
更に、修正バッファ残量計算部を備え、
上記修正バッファ残量計算部は、上記波形伸縮指示情報から波形伸縮量の蓄積値Ｄを求め、当該蓄積値Ｄを、上記受信バッファの残量から差し引いて修正バッファ残量として出力するものであり、
上記揺らぎ観測部は、上記修正バッファ残量の最大値と最小値の差を揺らぎの短時間最大値とするものである、
ことを特徴とする音声パケット再生装置。
【請求項４】
請求項２又は３に記載した音声パケット再生装置において、
上記揺らぎ観測部における上記統計的規則は、
上記揺らぎの短時間最大値の平均値をａ、その標準偏差をσ、パラメータをｎとした時に、ａ＋ｎσより大きな上記揺らぎの短時間最大値を除外して上記吸収すべき揺らぎ値を求める統計的規則であることを特徴とする音声パケット再生装置。
【請求項５】
請求項４に記載した音声パケット再生装置において、
上記パラメータｎの値が、上記受信バッファの残量の増減を観測する観測時間が過去であるほど小さくなるように複数の値が設定されていることを特徴とする音声パケット再生装置。
【請求項６】
音声データ列のフレーム毎の符号化により生成された音声符号を収容して送信された一連の音声パケットを受信し、上記音声符号の復号音声データ列に基づいて再生音声データを出力する音声パケット再生方法において、
パケット受信部が、上記音声パケットをパケット通信網から受信するパケット受信過程と、
受信バッファ部が、受信した上記音声パケットを一時的に蓄積し、転送要求に応じて上記一連の順に上記音声パケットを出力する受信バッファ過程と、
蓄積パケット数検出部が、上記受信バッファ部に蓄積されている音声パケットの数を、受信バッファの残量として出力する蓄積パケット数検出過程と、
揺らぎ観測部が、一定時間毎の上記受信バッファの残量の増減についての予め定められた統計的規則に基づいて吸収すべき揺らぎ値を求めて出力する揺らぎ観測過程と、
音声パケット復号部が、上記受信バッファ部から読み出された音声パケット中の音声符号を復号して復号音声データ列として出力する音声パケット復号過程と、
制御部が、上記吸収すべき揺らぎ値とそれに対する上記受信バッファ部の最適蓄積パケット数の対応規則を保持し、上記受信バッファの残量を上記最適蓄積パケット数に近づけるように制御する制御過程と、
を含むことを特徴とする音声パケット再生方法。
【請求項７】
請求項１乃至５の何れかに記載した音声パケット再生装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディジタル化された音声、音楽などの音響信号（以下総称して音声信号）を、インターネットをはじめとするパケット通信網を介して送信する際に、受信側において安定した品質で音声信号を再生するために用いる音声パケット再生装置とその方法とプログラムに関する。
【背景技術】
【０００２】
音声信号をVoice over IP技術（音声パケット通信）を利用して送受信するサービスが広く利用されるようになった。図９にその概要を示す。入力音声信号は音声信号送信装置５で音声パケットに変換され、パケット通信網６に送出される。音声信号受信装置７は自己宛に送られて来る音声パケットを識別して受信し、音声パケットを復号して音声を出力する。
【０００３】
図１０に送信すべき音声データ列と音声パケットの関係を示す。図１０Ａは送信すべき音声データ列を示す。送信すべき音声データ列は一般にＰＣＭディジタルサンプル列で構成される。このディジタル音声データ列をフレームと呼ばれる一定の時間単位（以下、フレーム長と称する。一般的には１０ミリ秒〜２０ミリ秒程度）に区切って音声符号化し、音声符号に送信時刻を表すタイムスタンプ等を付加して音声パケットとして送信される。音声パケットは図１０Ｂに示すように時間軸方向に圧縮された間欠信号とされ、間欠信号の空き時間は他のパケット通信に利用される。音声信号送信装置５から送り出される音声パケットの送り出しの時間の間隔（パケット化周期とも呼ばれる）は音声データ列のフレーム長に該当し、フレーム長に相当する時間間隔で音声パケットがパケット通信網６に送り出される。
【０００４】
音声信号受信装置７はフレーム長に相当する時間間隔で到来する音声パケットを受信し、音声パケットを復号することにより図１０Ｃに示すように１音声パケットが１フレーム長の音声データ列に復号され、１フレーム長に相当する時間間隔で音声パケットを受信することにより、音声信号受信装置７は連続した音声を再生することができる。ところで、パケット通信網６の状態によっては音声パケットの到来時間に大きな揺らぎが生じ、その結果、制限時間内（フレーム長に相当する時間内）に音声パケットが届かない現象が発生し、再生する音声が途切れるという問題がある。この問題に対して、揺らぎ吸収バッファと呼ばれる受信バッファを設け、常に一定量のパケットを受信バッファに溜めておく方式が知られている。なお、到来時間の揺らぎとは、パケット通信網６の状態によって、音声信号送信装置５から音声パケットが送り出されてから音声信号受信装置７が音声パケットを受信するまでの所要時間が変動すること、又はその変動量のことである。到来時間の揺らぎのため、音声信号受信装置７が音声パケットを受信する間隔がフレーム長に相当する時間間隔よりも長くなったり短くなったりする。
【０００５】
この方法において、受信バッファに溜めておく音声パケットの量を多くすると、パケットの到来時間の大きな揺らぎには強いが、音声パケットを受信してから音声が再生されるまでの遅延、すなわち通話の遅延も大きくなり、双方向で話しづらいという問題がある。逆に、受信バッファに溜めておく音声パケットの量を少なくすると、通話の遅延は少ないが、音声パケットの到来時間の揺らぎが発生したときに、音声が途切れ易いという問題がある。つまり、通話の遅延と音声の途切れ易さはトレードオフの関係にある。
【０００６】
この問題に対して、受信バッファに溜める音声パケット量を動的に制御する方法が特許文献１に開示されている。図１１に、特許文献１の音声パケット再生装置９００の機能構成を示して、その動作を簡単に説明する。
【０００７】
音声パケット再生装置９００は、パケット受信部１１、受信バッファ１２、音声パケット復号部１３、状態検出部１４、音声分析部１５、制御部１６、消費量調整部２０、サウンドデバイス１８、とで構成される。パケット受信部１１は、通信網から音声パケットを受信して受信バッファ１２に蓄積すると共に、音声パケットの受信時刻と当該音声パケットのタイムスタンプを状態検出部１４に出力する。
【０００８】
受信バッファ１２は、受信した音声パケットを蓄積し、音声パケット復号部１３からの転送要求がある毎に、蓄積した音声パケットをタイムスタンプの順番に出力する。音声パケット復号部１３は、音声パケットに含まれる音声符号を復号した音声データ列を消費量調整部２０と音声分析部１５に出力する。
【０００９】
状態検出部１４は、音声パケットの受信時刻と当該音声パケットのタイムスタンプを入力として、到来時間の揺らぎを求め、その到来時間の揺らぎの値を一定時間過去（例えば２秒間）に遡って保持し、現パケットの受信時点（到着時点）における過去一定時間内の到来時間の揺らぎの最大値である最大到来時間揺らぎを検出する。そして、現時点のその最大到来時間揺らぎと受信バッファ１２の蓄積パケット数を、制御部１６に出力する。
【００１０】
音声分析部１５は、音声パケット復号部１３が出力する復号音声データ列を分析して、各フレームが音声区間であるか非音声区間であるかを判定し、音声／非音声信号を制御部１６に出力する。制御部１６は、最大到来時間揺らぎと受信バッファ１２の最適蓄積パケット数との関係を予め定めたテーブル１６Ｔを有しており、状態検出部１４から入力される最大到来時間揺らぎの値からそのテーブル１６Ｔを参照して最適蓄積パケット数Ｂを求める。そして、状態検出部１４から入力される受信バッファ１２の蓄積パケット数Ｓと最適蓄積パケット数Ｂとの差（Ｓ−Ｂ）と、音声分析部１５から入力される音声／非音声判定結果に基づいて、音声パケット復号部１３が出力する現フレームの音声データ列に対して、伸張するか、短縮するか、あるいは変更しないかを決め、その決定による制御信号（切替制御）を消費量調整部２０に出力する。
【００１１】
消費量調整部２０は、制御部１６の出力する制御信号に従って、音声パケット復号部１３の出力する音声データ列をそのまま出力するか、伸張して出力するか、短縮して出力する。音声データ列を伸張すれば、音声パケット復号部１３の受信バッファ１２に対する次の音声パケットの転送要求が遅れることになり、単位時間当たりの音声パケットの消費量が少なくなる。逆に、音声データ列を短縮すれば、単位時間当たりの音声パケットの消費量が多くなる。その結果、音声パケット再生装置９００は全体として、受信バッファ１２の蓄積パケット数Ｓが、最適蓄積パケット数Ｂの値に近づくように制御される。サウンドデバイス１８は、ディジタル信号である音声データ列を、スピーカを駆動するアナログ信号に変換するものである。
【００１２】
このようにパケット受信部１１が、音声パケットの受信時刻と音声パケットのタイムスタンプを状態検出部１４に出力し、状態検出部１４で過去一定時間内の到来時間の揺らぎの最大値である最大到来時間揺らぎを検出することで、受信バッファ１２に蓄積される音声パケットの数を最適な値に制御することができる。ここでは、このように音声パケットの受信時刻を参照して最適蓄積パケット数を決める方式を「アクティブ方式」と称することにする。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特許第４１４６４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
従来技術の「アクティブ方式」は、無線回線などの揺らぎの大きいネットワークを利用する場合でも、また、光回線などの揺らぎが小さいネットワークを利用する場合でも、再生音声が途切れるのを防ぎつつ、ネットワークの揺らぎに応じて通話遅延を必要最低限に抑えることが可能な優れた方法である。
【００１５】
しかしながら、受信する音声パケットの受信時刻を元に揺らぎを観測するために、ミリ秒単位で時間計測が可能な時計（タイマー）が必要で、かつソフトウェアプログラムからその時計を参照する必要がある。したがって、受信バッファに蓄積すべき音声パケット数を予め定めた固定値で制御している音声パケット再生装置を、「アクティブ方式」に変更するためには、時計等のハードウェアの追加が必要になる、又は、ソフトウェアプログラムを広範囲に改造する必要がある。
【００１６】
周知のようにVoice over IPプログラムはマルチスレッド（並列処理）で動作している。このVoice over IPプログラムに、「アクティブ方式」を適用しようとすると、並列処理の間の変数の受け渡しや処理タイミングの同期の設計などが複雑化する。特に、受信時刻を基準に処理する必要から処理タイミングの同期には注意を払う必要があり、複雑なバグが発生する要因にもなっていた。
【００１７】
この発明は、このような課題に鑑みてなされたものであり、揺らぎの観測に時計（タイマー）の参照を不要とし、処理タイミングの同期に特別な注意を払う必要が無くてもネットワークの揺らぎに対応できる音声パケット再生装置とその方法とプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の音声パケット再生装置は、音声データ列のフレーム毎の符号化により生成された音声符号を収容して送信された一連の音声パケットを受信し、音声符号の復号音声データ列に基づいて再生音声データを出力する音声パケット再生装置において、パケット受信部と、受信バッファ部と、蓄積パケット数検出部と、揺らぎ観測部と、音声パケット復号部と、制御部と、を含むものである。パケット受信部は、音声パケットをパケット通信網から受信する。受信バッファ部は、受信した音声パケットを一時的に蓄積し、転送要求に応じて上記一連の順に音声パケットを出力する。蓄積パケット数検出部は、受信バッファ部に蓄積されている音声パケットの数を、受信バッファの残量として出力する。揺らぎ観測部は、一定時間毎の受信バッファの残量の増減についての予め定められた統計的規則に基づいて吸収すべき揺らぎ値を求めて出力する。音声パケット復号部は、受信バッファ部から読み出された音声パケット中の音声符号を復号して復号音声データ列として出力する。制御部は、吸収すべき揺らぎ値とそれに対する受信バッファ部の最適蓄積パケット数の対応規則を保持し、受信バッファの残量を最適蓄積パケット数に近づけるように制御する。
【発明の効果】
【００１９】
本発明の音声パケット再生装置によれば、一定時間毎の受信バッファ部に蓄積されている音声パケットの数の増減を観測して揺らぎを推定する。つまり、受信バッファの残量の時系列から揺らぎを推定するので、音声パケットの受信時刻を参照する必要が無い。また、ミリ秒単位を問題にする受信時刻を観測の対象にしないため、Voice over IPプログラムの並列処理間の同期に注意を払う必要が無くなり、ソフトウェアの実装を容易にする等の効果を奏する。
【図面の簡単な説明】
【００２０】
【図１】この発明の音声パケット再生装置１００の機能構成例を示す図。
【図２】音声パケット再生装置１００の動作フローを示す図。
【図３】この発明の音声パケット再生装置２００の機能構成例を示す図。
【図４】揺らぎ観測部２１３の動作フローを示す図。
【図５】この発明の音声パケット再生装置３００の機能構成例を示す図。
【図６】この発明の音声パケット再生装置４００の機能構成例を示す図。
【図７】揺らぎ観測部４１３の動作フローを示す図。
【図８】この発明の音声パケット再生装置５００の揺らぎ観測部５１３における観測時間とパラメータｎの関係を示す図。
【図９】音声信号をVoice over IP技術を利用して送受信する概要を示す図。
【図１０】送信すべき音声データ列と音声パケットの関係を示す図。
【図１１】特許文献１の音声パケット再生装置９００の機能構成を示す図。
【発明を実施するための形態】
【００２１】
以下、この発明の実施の形態を図面を参照して説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
【実施例１】
【００２２】
図１に、この発明の音声パケット再生装置１００の機能構成例を示す。その動作フローを図２に示す。音声パケット再生装置１００は、従来技術で説明した音声パケット再生装置９００と同じように、入力音声データ列のフレーム毎の符号化により生成された音声信号を収容して送信された一連の音声パケットを受信し、当該受信した音声パケットを一時的に蓄積（Buffering）すると共に、一時的に蓄積するパケット量を動的に制御して再生音声データを出力するものである。音声パケット再生装置１００は、例えばＲＯＭ、ＲＡＭ、ＣＰＵ等で構成されるコンピュータに所定のプログラムが読み込まれて、ＣＰＵがそのプログラムを実行することで実現される。
【００２３】
音声パケット再生装置１００は、パケット受信部１１０と、受信バッファ部１１１と、蓄積パケット数検出部１１２と、揺らぎ観測部１１３と、音声パケット復号部１３と、制御部１１４と、を含む。音声パケット再生装置９００（図１１）と同じ参照符号が付与されている各機能構成部は同じものである。同じ機能構成部である、例えば音声パケット復号部１３、又は図のみに記載している音声分析部１５等についての説明は簡単にする。
【００２４】
パケット受信部１１０は、通信網から音声パケットを受信し、その音声パケットを受信バッファ部１１１に蓄積する（ステップＳ１１１）。パケット受信部１１０は、受信した音声パケットの受信時刻を参照しない点で新しい。
【００２５】
音声パケットには、フレーム長に区切った音声信号を音声符号化の手法によって変換した音声符号と、送信側における音声パケット作成の時間順序を示すタイムスタンプ（フレーム番号に対応）が含まれている。代表的な音声符号化手段としては、ITU-T（国際電気通信連合）の標準であるG.711方式があるが、G.729やG.722，G.711.1などの他の任意の方式でも良い。また、特段の音声符号化手段を利用せず、ＰＣＭ信号がそのままフレーム毎に音声パケットに収容されていても良い。ＰＣＭ信号も一種の音声符号であると見做すことができるので、本発明における音声符号化には、ＰＣＭ信号も含むものとする。フレーム長は一般に１０ミリ秒〜２０ミリ秒を用いるが、５，４０，６０，８０ミリ秒を用いることもある。
【００２６】
受信バッファ部１１１は、受信した音声パケットを一時的に蓄積し、転送要求に応じて上記一連の順に音声パケットを音声パケット復号部１３に出力する（ステップＳ１１１）。受信バッファ部１１１は、受信した音声パケットを蓄積し、音声パケット復号部１３から転送要求がある度に、音声パケットをタイムスタンプ順に音声パケット復号部１３に出力する。受信バッファ部１１１から音声パケットが音声パケット復号部１３に転送される毎に、受信バッファ部１１１からその音声パケットは削除される。
【００２７】
音声パケット復号部１３は、受信バッファ部１１１から読み出されたフレームに対応する音声パケット中の音声符号を復号した復号音声データ列を消費量調整部２０と音声分析部１５に出力する（ステップＳ１３）。ここで復号音声データ列とは、ディジタル音声サンプル列であり、一般的にはＰＣＭフォーマットで扱われることが多い。なお、音声パケットに収容されている音声符号がＰＣＭ信号の場合には、音声パケット復号手段１３は厳密には復号処理を行わないで単に音声パケットに含まれる音声符号を抜き出すだけの処理であるが、ここでは広義の解釈として復号手段と称している。
【００２８】
蓄積パケット数検出部１１２は、受信バッファ部１１１に蓄積されている音声パケットの数を、上記転送要求の毎に数えて受信バッファの残量として出力する（ステップＳ１１２）。
【００２９】
揺らぎ観測部１１３は、一定時間毎の受信バッファの残量の増減を観測し、予め定められた統計的規則に基づいて吸収すべき揺らぎ値を求めて出力する（ステップＳ１１３）。ここで、一定時間毎の一定時間とは例えば１秒間であり、フレーム長の整数倍の一定時間である。この実施例では、吸収すべき揺らぎ値の単位をフレーム数分として説明する。
【００３０】
受信バッファの残量について説明する。音声信号送信装置は、フレーム長の時間間隔で規則正しく音声パケットを送信する。しかし、音声パケットがネットワークを通ると到来時間の揺らぎ（以下、揺らぎ）が発生し、音声パケットの間隔が等間隔でなくなる。
【００３１】
もし、揺らぎが無く等間隔が維持されるか、揺らぎがフレーム長の時間未満であれば、受信バッファ部１１１の音声パケットの残量は一定に保たれる。しかし、揺らぎが発生して音声パケットの受信間隔がフレーム長の時間を超えると、受信バッファ部１１１の残量は減少する。逆に受信間隔がフレーム長よりも短くなると受信バッファ部１１１の残量は増加する。つまり、受信バッファ部１１１の音声パケットの残量は、時々刻々増加と減少を繰り返している。
【００３２】
この音声パケットの残量が変化する過程において、バッファ残量が一時的に０になりバッファが枯渇すると、音声パケット復号部１３から転送要求があっても音声パケットを送ることが出来ないので再生音声が途切れる。一方、バッファ残量の最小値が大きすぎると、過剰に音声パケットを蓄積することになり、無駄な音声遅延を生じることになる。
【００３３】
したがって、バッファ残量の最小値は１、すなわち、音声パケット復号部１３から転送要求があった時にバッファ残量が０にならない範囲で出来るだけ小さい値が理想である。しかし、ネットワークの揺らぎは一定では無く、トラフィックの混雑具合によって時々刻々変化するため、観測した揺らぎの変動から吸収すべき揺らぎ値を決定し、受信バッファ部１１１に蓄積する音声パケットの数を決定する必要がある。
【００３４】
音声分析部１５は、音声パケット復号部１３が出力する復号音声データ列を分析して現フレームが音声区間であるか非音声区間であるかを判定し、判定した結果を音声／非音声情報として制御部１１４に出力する（ステップＳ１５）。音声分析部１５は、参照符号から明らかなように音声パケット再生装置９００（図１０）と同じものである。以降、音声パケット再生装置９００と同じ機能構成部の説明は、必要最小限に止める。
【００３５】
なお、音声分析部１５が消費量調整部２０に出力するＬｐは、音声波形にスペクトル包絡の逆特性を持つフィルタをかけた信号の自己相関係数を計算することで得られるピッチ長である。ピッチ長Ｌｐは、破線で示すように消費量調整部２０において利用しなくても良い。ピッチ長Ｌｐを計算する方法は、特許文献１に記載されているように周知である。また、図１の消費量調整部２０において、波形伸張用バッファ２３（図１１）の表記は省略している。
【００３６】
制御部１１４は、揺らぎ観測部１１３が出力する吸収すべき揺らぎ値を入力として、当該吸収すべき揺らぎ値とそれに対する受信バッファ部１１１の最適蓄積パケット数の対応規則を保持し、受信バッファの残量が増加した後に減少に転じる時の受信バッファの残量の最大値を、最適蓄積パケット数に近づけるように音声パケット復号部１３が出力する復号音声波形データを伸張するか、短縮するか、あるいは変更しないかを制御する波形伸縮指示情報を出力する（ステップＳ１１４）。この波形伸縮指示情報は、音声分析部１５が出力する音声／非音声情報を参照して生成される。ここで、最適蓄積パケット数の対応規則とは、最適蓄積パケット数を吸収すべき揺らぎ値以上とする規則である。
【００３７】
復号音声波形データの伸縮は、音声区間で行うよりも非音声区間で行う方が、利用者は波形伸縮に伴う音質劣化や不自然さの増加に気が付き難い。そこで、バッファが枯渇して音切れが発生する可能性が低い場合、又は、音声パケットが溜まり過ぎて通話に支障が出るほど遅延が増加する可能性が低い場合は、音声／非音声情報を参照して非音声区間に波形伸縮指示信号を出力する。
【００３８】
消費量調整部２０は、復号音声波形データに基づいて再生音声データを出力するものであり、制御部１１４の出力する波形伸縮指示情報に従ってＳＷ１とＳＷ２を切り替えて、音声パケット復号部１３が出力する復号音声波形データを、そのまま出力するか、伸張して出力するか、短縮して出力する（ステップＳ２０）。消費量調整部２０は、復号音声波形データを伸縮した再生音声データをサウンドデバイス１８に出力する。
【００３９】
サウンドデバイス１８は、図示していないＤ／Ａ変換器を有しており、再生音声データをアナログ信号に変換して、スピーカを駆動する出力音声を出力する（ステップＳ１８）。消費量調整部２０とサウンドデバイス１８は、参照符号から明らかなように音声パケット再生装置９００（図１０）と同じものである。
【００４０】
パケット受信部１１０が音声パケットを受信してから、サウンドデバイス１８が出力音声を出力するまでの一連の動作は、音声パケットが一定時間以上の間入力されない場合、又は、図示しない動作停止信号が制御部１１４に入力されるまで繰り返される（ステップＳ１１５のＮｏ）。この動作終了の制御は制御部１１４が行う。
【００４１】
受信バッファ部１１１と音声パケット復号部１３と消費量調整部２０とサウンドデバイス１８は、縦続接続され、各部はデータの送信先からの転送要求があるたび、又は転送先が受け取り可能な状態になる毎にデータを送信する。したがって、消費量調整部２０が復号音声波形データを伸張すれば、音声パケット復号部１３の受信バッファ部１１１に対する次の音声パケットの転送要求が遅れることになり、一定時間当たりの音声パケットの消費量が減少しバッファ残量を増加させることになる。逆に、復号音声波形データを短縮すれば、次の音声パケットの転送要求が早くなり、一定時間当たりの音声パケットの消費量が増加しバッファ残量を減少させることになる。その結果、音声パケット再生装置１００は、受信バッファ部１１１の音声パケットの数が、吸収すべき揺らぎ値から決定した最適蓄積パケット数に近づくように動作する。
【００４２】
以上説明したように音声パケット再生装置１００は、一定時間毎の受信バッファ部に蓄積されている音声パケットの数の増減を観測して揺らぎを推定する。よって、音声パケットの受信時刻を参照する必要が無い。音声パケットの受信時刻を参照する方式を「アクティブ方式」と称したが、その必要の無いこの発明の方法は「パッシブ方式」と称しても良い。「パッシブ方式」は、ミリ秒単位を問題にする受信時刻を観測の対象にしないため、Voice over IPプログラムの並列処理間の同期に注意を払う必要が無くなり、ソフトウェアの実装を容易にすることが出来る。
【００４３】
なお、実施例１は、吸収すべき揺らぎ値をフレーム数分とする例で説明を行ったが、吸収すべき揺らぎ値をミリ秒単位としても良い。その場合は、吸収すべき揺らぎ値と最適蓄積パケット数との関係を予め定めたテーブルを用意し、そのテーブルを参照して最適蓄積パケット数を求める。
【実施例２】
【００４４】
図３に、この発明の音声パケット再生装置２００の機能構成例を示す。音声パケット再生装置２００は、吸収すべき揺らぎ値の求め方をより具体的に示したものであり、音声パケット再生装置１００に対して揺らぎ観測部２１３の機能構成部のみが異なる。
【００４５】
揺らぎ観測部２１３は、上記一定時間を、第一の観測時間と当該第一の観測時間よりも長い第二の観測時間との組とし、第一の観測時間に含まれるフレーム数の受信バッファの残量の数を数え、その受信バッファの残量の最大値と最小値の差をフレーム長を単位とする揺らぎの短時間最大値とする。そして、吸収すべき揺らぎ値を、第二の観測時間の間観測したＮ個の揺らぎの短時間最大値の時系列から予め決められた統計的規則に基づいて求めるものである。
【００４６】
図４に示す揺らぎ観測部２１３の動作フローを参照してその動作を説明する。揺らぎ観測部２１３は、動作を開始すると、先ず内部に持つメモリ２をクリアする（ステップＳ２１３ａ）。そして、メモリ１をクリアし、第一の観測時間の計時を開始する（ステップＳ２１３ｂ）。
【００４７】
例えば、第一の観測時間を１秒、フレーム長を２０ミリ秒とすると、第一の観測時間は５０フレームに相当し、その間の受信バッファの残量がメモリ１に格納される（ステップＳ２１３ｃ）。次に揺らぎ観測部２１３は、第一の観測時間の経過後、メモリ１に格納された受信バッファの残量の最大値Ｓmaxと最小値Ｓminを求める（ステップＳ２１３ｆ）。
【００４８】
そして、受信バッファの残量の最大値Ｓmaxから最小値Ｓminを減じて、揺らぎの短時間最大値Ｊを計算する（ステップＳ２１３ｇ）。揺らぎの短時間最大値Ｊは、第二の観測時間の間計算され、その値はメモリ２に格納される（ステップＳ２１３ｈ）。第二の観測時間を、例えば３０秒とすると、３０個（上記したＮ個）の揺らぎの短時間最大値Ｊが得られる。
【００４９】
次に、揺らぎ観測部２１３は、３０個の揺らぎの短時間最大値Ｊの時系列から、予め決められた統計的規則に基づいて吸収すべき揺らぎ値を決定する（ステップＳ２１３ｊ）。予め決められた統計的規則としては、例えば最大値を抽出する規則や、平均、分散、標準偏差などの統計量に基づいて決定する規則、その他、短時間最大値Ｊの分布に基づく規則が考えられる。そうして決定された吸収すべき揺らぎ値は、制御部１１４へ出力される（ステップＳ２１３ｋ）。この吸収すべき揺らぎ値の決定は、第二の観測時間の単位で、音声パケットが一定時間以上の間入力されなくなるまで、又は、図示しない動作停止信号が制御部１１４に入力されるまで繰り返される（ステップＳ１１５のＮｏ）。
【００５０】
以上説明したように、受信バッファの残量の最大値と最小値の差をフレーム長を単位とする揺らぎの短時間最大値として求め、その揺らぎの短時間最大値の時系列から吸収すべき揺らぎ値を求めるようにしても良い。
【実施例３】
【００５１】
図５に、この発明の音声パケット再生装置３００の機能構成例を示す。音声パケット再生装置３００は、修正バッファ残量計算部３１９を備える点で音声パケット再生装置２００と異なる。
【００５２】
実施例２（図３）において、第一の観測時間毎の受信バッファの残量の最大値Ｓmaxと最小値Ｓminの差を、揺らぎの短時間最大値Ｊとして求める例を説明した。この方法では、バッファ残量の観測をして揺らぎを推定し、復号音声データ列を伸縮することでバッファ残量を制御し、その制御された結果のバッファ残量を観測して揺らぎを推定する。この一連の処理は自己回帰型の閉ループになる。よって、単純に第一の観測時間毎のバッファ残量の最大値Ｓmaxと最小値Ｓminの差Ｊを求めるだけでは正確に揺らぎを推定することができない。
【００５３】
そこで、音声パケット再生装置３００は、仮に復号音声データ列を波形伸縮するバッファ制御が行われなかったと仮定したバッファ残量を、修正バッファ残量と称して定義し、第一の観測時間毎の修正バッファ残量の最大値Ｓ′maxと最小値Ｓ′minの差Ｊ′を当該観測時間におけるフレーム長を単位とする揺らぎの短時間最大値とするものである。
【００５４】
ここで、消費量調整部２０の出力波形の長さと入力波形の長さの差をフレーム長の単位で表したものを差分ｄと定義する。消費量調整部２０は、復号音声データ列の波形伸縮をフレーム長の波形を挿入又は削除することによって行うものとすると、消費量調整部２０に入力された１フレーム長の復号音声データ列の波形は伸張時には２フレーム長の波形とされ（ＳＷ１：Ａ１，ＳＷ２：Ａ２）、短縮時には０フレーム長になり波形は出力されない（ＳＷ１：Ｃ１，ＳＷ２：Ｃ２）、又、波形を変更しない場合には１フレーム分の波形がそのまま出力される（ＳＷ１：Ｂ１，ＳＷ２：Ｂ２）。例えば、１フレーム長が入力されて２フレーム長が出力された時は差分ｄ＝１、１フレーム長が入力されて０フレーム長が出力された時は差分ｄ＝−１、波形を変更しない場合はｄ＝０となる。差分ｄは、制御部１１４が消費量調整部２０に出力する波形伸縮指示情報から求めることができる値である。
【００５５】
修正バッファ残量計算部３１９は、波形伸縮指示情報を入力として復号音声データ列の波形伸縮量である差分ｄを求め、その差分ｄを第一の観測時間の開始フレームからバッファ残量の観測フレームの直前まで加算した変数Ｄを求める。つまり、第一の観測時間の開始時を基準とした最初のフレームの上記差分ｄをｄ１、第ｍフレームの差分ｄをｄｍとすると、第ｍフレームの変数Ｄは、次式で定義される波形伸縮量の蓄積値である。
【００５６】
【数１】
2015076741.tif 000003
【００５７】
変数Ｄは、第一の観測時間の開始時ごとに０にリセットされる。その変数Ｄを、蓄積パケット数検出部１１２が出力する受信バッファの残量から差し引いて修正バッファ残量として出力する。
【００５８】
修正バッファ残量は、ある時刻における実際のバッファ残量からその時点での変数Ｄを差し引いた値である。揺らぎ観測部２１３は、受信バッファの残量の代わりに修正バッファ残量を入力とし、修正バッファ残量の最大値Ｓ′maxと最小値Ｓ′minの差Ｊ′を当該観測時間におけるフレーム長を単位とする揺らぎの短時間最大値とする。
【００５９】
このように、復号音声データ列の波形の伸縮量を一定時間の間加算（蓄積）した値を、受信バッファの残量から差し引いた値を修正バッファ残量とすることで、正確な揺らぎを推定することができる。この実施例３の考えは、後述する実施例４と５にも適用することが可能である。
【実施例４】
【００６０】
図６に、この発明の音声パケット再生装置４００の機能構成例を示す。音声パケット再生装置４００は、上記した実施例の統計的規則の一例を示したものである。
【００６１】
音声パケット再生装置４００は、音声パケット再生装置２００の揺らぎ観測部２１３に代えて、揺らぎ観測部４１３を備える点でのみ異なる。揺らぎ観測部４１３は、上記予め定められた統計的規則を、上記揺らぎの短時間最大値が、上記第二の観測時間以上の時間幅では正規分布していると見做して、揺らぎの短時間最大値の平均値ａ、標準偏差σ、パラメータｎとした時に、ａ＋ｎσより大きな揺らぎの短時間最大値を除外して吸収すべき揺らぎ値を求めるようにしたものである。
【００６２】
図７に、音声パケット再生装置４００の動作フローを示す。音声パケット再生装置４００の動作フローは、音声パケット再生装置２００（図３）に対して揺らぎ観測部４１３の動作ステップのみが異なる。揺らぎ観測部４１３は、Ｎ個の揺らぎの短時間最大値Ｊの平均値ａと標準偏差σを計算する（ステップＳ４１３ｊ１）。次に、吸収すべき揺らぎ値の上限ＵをＵ＝ａ＋ｎσで計算して求める（ステップＳ４１３ｊ２）。そして、吸収すべき揺らぎ値の上限Ｕ以下の最大値を吸収すべき揺らぎ値として決定する（ステップＳ４１３ｊ３）。
【００６３】
ここで、パラメータｎが無限大であれば、除外処理を行わないことと等価であり、パラメータｎが０の時は平均値ａよりも大きい揺らぎの短時間最大値Ｊは除外されることになる。パラメータｎ＝１．６５と仮定すると、ａ＋ｎσより大きい揺らぎの短時間最大値Ｊは全体の５％、パラメータｎ＝１．９６とすると、ａ＋ｎσより大きい揺らぎの短時間最大値Ｊは全体の２．５％存在すると考えることができる。
【００６４】
受信バッファの枯渇による音切れを完全に防止するためには、パラメータｎは無限大、すなわち、観測された揺らぎの最大値を吸収すべき揺らぎ値とすべきである。しかし、稀にしか発生しない揺らぎに備えて受信バッファに音声パケットを蓄積すると、音声遅延が大きくなってしまう。
【００６５】
従来の音声パケット再生装置は、観測された揺らぎの最大値を元に最適蓄積パケット数を決定しているため、突発的に大きな揺らぎが発生するとその後の音声遅延が大きくなり通話に支障が出る場合があった。一般に、送話端−受話端の片道遅延が４００ミリ秒を超えると話しづらくなると言われている。パケット通信網では、４００ミリ秒を超える揺らぎが発生することがあり、揺らぎの最大値に基づいて吸収すべき揺らぎ値（最適蓄積パケット数）を決定すると、遅延が４００ミリ秒を超えてしまう場合がある。
【００６６】
音切れの発生頻度を減らそうとすると遅延が大きくなり、遅延を減らすと音切れの発生頻度が増えるというトレードオフの関係がある。そこでこの実施例では、０＜パラメータｎ＜∞の範囲でパラメータｎを定めることによって、音声遅延と音切れ頻度の関係を調整する。
【００６７】
具体的なパラメータｎの値は、実際の音声通話実験を行って、音声遅延と音切れ頻度のバランスが良いと人が主観的に感じる値に設定する。例えば、第一の観測時間を１秒とし、ａ＋ｎσより大きな揺らぎの短時間最大値Ｊが全体の２．５％存在したと仮定すると、４０秒に１回程度の頻度でバッファが枯渇し、プツンというノイズが発生する可能性がある。しかし、４０秒に１回程度であれば、会話には実質的に支障が無いと考えることができる。
【００６８】
パラメータｎの値は、予め揺らぎ観測部４１３に定数として設定しておいても良いし、図６に破線で示すように外部から入力できるようにしておいても良い。パラメータｎを設けることで、音声遅延と音切れ頻度のトレードオフの関係を、その時々に応じてバランス良く調整することが可能になる。
【００６９】
なお、この実施例では、揺らぎの短時間最大値が正規分布していると見做したが、実際の揺らぎの分布は正規分布でなくても良い。例えば、指数分布やポアソン分布等の確率分布の場合でも、本実施例の考えを適用することができる。
【実施例５】
【００７０】
第二の観測時間とパラメータｎの値は、複数設定することもできる。音声パケット再生装置４００の揺らぎ観測部４１３を、パラメータｎの値が、受信バッファの残量の増減を観測する観測時間が過去であるほど小さくなるように複数の値が設定されるようにした揺らぎ観測部５１３とした音声パケット再生装置５００（図示は省略）も考えられる。
【００７１】
リアルタイムの通信システムでは、第二の観測時間は過去の時刻になり、揺らぎの短時間最大値Ｊは過去の揺らぎの時間変動となる。そこで例えば、揺らぎ観測部５１３は、第二の観測時間の時刻よりも、更に過去の時刻に第三の観測時間を定め、第三の観測時間に含まれる第一の観測時間毎のＮ３個の揺らぎの短時間最大値Ｊの値の平均値ａ３と標準偏差σ３を求め、Ｎ３個の揺らぎの短時間最大値Ｊから、ａ３＋ｎ３σ３より大きいものを除外することによって、Ｎ３′個の揺らぎの短時間最大値Ｊを選択し、第二の観測時間から得られるＮ′個の揺らぎの短時間最大値Ｊと、第三の観測時間から得られるＮ３′個の揺らぎの短時間最大値Ｊの内、大きい方を吸収すべき揺らぎ値として出力する。このとき、パラメータｎ３は、第二の観測時間で揺らぎの短時間最大値Ｊの値を除外するためのパラメータｎよりも小さい値に設定する。例えばｎ＝１．９６、ｎ３＝１．６５といった具合である。ｎ＝２．５８、ｎ３＝１．９５の組み合わせでも良い。
【００７２】
また、第三の観測時間は第二の観測時間よりも長く設定しても良い。例えば、第二の観測時間を１０秒、第三の観測時間を６０秒などにしても良い。図８に、揺らぎ観測部５１３における観測時間とパラメータｎの関係を示す。横軸はフレーム数で経過時間を表す。縦軸はパラメータｎである。図８Ａに、第三の観測時間を第二の観測時間よりも長く設定した例を示す。
【００７３】
揺らぎはネットワークのトラフィックに起因するため、過去に発生した揺らぎから今後発生する揺らぎを正確に予測することは現実には難しい。長時間にわたって過去に発生した揺らぎと同等の揺らぎが発生することに備えると、トラフィックが改善しても音声遅延が大きな状態が続いてしまう。そのため、直近の過去に発生した揺らぎは重視し、揺らぎの発生から時間が経過するにしたがって、その揺らぎを、揺らぎの予測に徐々に利用しないようにしたアルゴリズムが適当である。
【００７４】
図８Ｂに示すように、パラメータｎの値が、受信バッファの残量の増減を観測する観測時間が過去であるほど小さくなるように複数の値を設定するようにしても良い。図８Ｂに示すようなパラメータｎの値は、過去に遡るフレーム数の数で、所定の定数を除算することで得ることができる。
【００７５】
このように、過去である程、パラメータｎの値を小さくする考えは、過去に発生した揺らぎは重視しない考えである。この考えによれば音声遅延と音切れの関係を適切に制御することが可能になる。
【００７６】
以上説明したようにこの発明の音声パケット再生装置１００〜５００は、一定時間毎の受信バッファ部に蓄積されている音声パケットの数の増減を観測して揺らぎを推定するので、音声パケットの受信時刻を参照する必要が無い。そのため、Voice over IPプログラムの並列処理間の同期に注意を払う必要が無く、ソフトウェアの実装を容易にする効果を奏する。
【００７７】
なお、音声パケット再生装置４００は、音声パケット再生装置２００の揺らぎ観測部１１３を揺らぎ観測部４１３に代える構成で説明を行ったが、音声パケット再生装置４００と５００の考えは、音声パケット再生装置３００と組み合わせることも可能である。
【００７８】
また、統計的規則の具体例としてａ＋ｎσの例を示したが、統計的規則は発生頻度の少ない大きな値を除外できる規則であれば何でも良い。要するにａ＋ｎσでパラメータｎを変えるように、除外範囲をパラメータｎで広くしたり狭くしたり出来る規則であれば良いので、他にも統計的規則は考えられる。例えば、Ｎ個の揺らぎの短時間最大値Ｊの内、値を大きい順に並べて上位からｘ％の割合（０≦ｘ＜１００）を除外する方法でも良い。なお、その場合は、時刻が過去になるほどｘを大きくする。
【００７９】
このように、この発明の「パッシブ方式」の音声パケット再生装置とその方法は、幾つかの変形が可能であり、上記した実施例に限定されるものでは無い。この発明の、受信した音声パケットの受信時刻を参照しないで、一定時間毎の受信バッファ部に蓄積されている音声パケットの数の増減を観測して揺らぎを推定する考えを含むものは、本願発明の技術範囲に含まれる。
【００８０】
上記装置における処理手段をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における処理手段がコンピュータ上で実現される。
【００８１】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記録装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００８２】
また、各手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2015076741.tif 000004
【図２】
2015076741.tif 000005
【図３】
2015076741.tif 000006
【図４】
2015076741.tif 000007
【図５】
2015076741.tif 000008
【図６】
2015076741.tif 000009
【図７】
2015076741.tif 000010
【図８】
2015076741.tif 000011
【図９】
2015076741.tif 000012
【図１０】
2015076741.tif 000013
【図１１】
2015076741.tif 000014