(57)【特許請求の範囲】
【請求項１】
入力音声データ列のフレーム毎の符号化により生成された音声符号を収容して送信された一連の音声パケットを受信して再生する音声パケットの再生方法であり、以下のステップを含む：
(a) 受信パケットを受信バッファに蓄積し、
(b) 上記受信パケットの到着時間のゆらぎを一定期間又は一定受信パケット数観測して得られるゆらぎの最大値、以下最大遅延ゆらぎと呼ぶ、と上記受信バッファに蓄積されているパケット数であるバッファ蓄積パケット数とを検出し、
(c) 上記最大遅延ゆらぎから、最大遅延ゆらぎが大きいほど上記受信バッファに蓄積すべき最適なパケット数、以下最適蓄積パケット数と呼ぶ、が多くなるように予め決めた関係を用いて最適蓄積パケット数を求め、
(d) 上記検出したバッファ蓄積パケット数と上記最適蓄積パケット数との相違の程度を複数の段階で判定し、
(e) 上記受信バッファから現フレームに対応するパケットを取り出し、そのパケット中の音声符号を復号して現フレームの復号音声データ列を得て、
(f)上記相違の程度が大きいほど処理の頻度が高くなるように予め定めた規則に基づいて、上記バッファ蓄積パケット数を上記最適蓄積パケット数に近づけるように、上記復号音声データ列に対しその波形の伸張、短縮又は現状維持のいずれかの処理を行い、現フレームの再生音声データとして出力する。
【請求項２】
請求項１記載の音声パケット再生方法において、上記ステップ(f) は、
(f-1) 上記復号音声データ列についてのピッチ長を求めるステップと、
(f-2) 上記音声データ列を分析して音声区間であるか非音声区間であるかを判定する音声非音声判定ステップと、
(f-3) 上記音声非音声判定結果と、上記相違の程度の段階の判定結果とに基づいて、上記復号音声データ列に対し上記ピッチ長に対応する波形を挿入又は削除するか又は上記復号音声データ列を変更しないことにより伸張、短縮又は現状維持の処理を行うステップ、とを含む。
【請求項３】
請求項２記載の音声パケット再生方法において、
上記ステップ(d) は、上記相違の程度の段階が、上記バッファ蓄積パケット数を緊急に増加又は減少させるべき状況である緊急度大であるか、上記バッファ蓄積パケット数を緩やかに増加又は減少させるべき状況である緊急度小であるかを判定し、
上記ステップ(f-3) は、上記段階が緊急度大の場合は、上記音声区間又は非音声区間にかかわらず上記復号音声データ列の波形の伸張又は短縮を実行し、上記段階が緊急度小の場合は、上記復号音声データ列が非音声区間の場合にのみ上記復号音声データ列の波形の伸張又は短縮を実行するステップを含む。
【請求項４】
請求項２記載の音声パケット再生方法において、
上記ステップ(d) は、上記相違の程度の段階が、上記バッファ蓄積パケット数を緊急に増加又は減少させるべき状況である緊急度大であるか、上記バッファ蓄積パケット数を緩やかに増加又は減少させるべき状況である緊急度小であるかを判定し、
上記ステップ(f-3) は、上記段階が緊急度大の場合は、上記音声区間又は非音声区間にかかわらず上記復号音声データ列の波形の伸張又は短縮を実行し、上記段階が緊急度小の場合は、上記復号音声データ列が音声区間の場合には予め決めたフレーム数N1毎に１回の割合で上記復号音声データ列の波形の伸張又は短縮を実行し、上記復号音声データ列が非音声区間の場合には予め決めたフレーム数N2ごとに１回の割合で上記音声復号データ列の波形の伸張又は短縮を実行するステップを含み、上記N1及びN2は１以上の整数であり、かつN2はN1より小である。
【請求項５】
請求項１記載の音声パケット再生方法において、上記ステップ(f) は、
(f-1) 上記復号音声データ列についてのピッチ長を求めるステップと、
(f-2) 上記復号音声データ列を分析して有声音区間、無声音区間、背景雑音区間、無音区間のいずれであるか区間判定するステップと、
(f-3) 上記区間判定結果と、上記相違の程度の段階の判定結果とに基づいて、上記復号音声データ列に対し上記ピッチ長に対応する波形を挿入又は削除するか又は上記復号音声データ列を変更しないことにより伸張、短縮又は現状維持の処理を行うステップ、
とを含む。
【請求項６】
請求項５記載の音声パケット再生方法において、
上記ステップ(d) は、上記相違の程度の段階が、上記バッファ蓄積パケット数を緊急に増加又は減少させるべき状況である緊急度大であるか、上記バッファ蓄積パケット数を緩やかに増加又は減少させるべき状況である緊急度小であるかを判定し、
上記ステップ(f-3) は、上記段階が緊急度大の場合は、上記区間判定結果にかかわらず上記復号音声データ列の波形の伸張又は短縮を実行し、上記段階が緊急度小の場合は、上記有声音区間、上記無声音区間、上記背景雑音区間、上記無音区間に対しそれぞれ予め決めたフレーム数N1, N2, N3, N4毎に１回の割合で上記復号音声データ列の波形の伸張又は短縮を実行するステップを含み、上記N1, N2, N3, N4は正の整数であり、それらのうち少なくとも１つは２以上でかつ他の３つとは異なる値である。
【請求項７】
入力音声データ列のフレーム毎の符号化により生成された音声符号を収容して送信された一連の音声パケットを受信して再生する音声パケットの再生装置であり、
音声パケットをパケット通信網から受信するパケット受信部と、
受信したパケットを一時的に蓄積し、要求に応じてパケットを読み出す受信バッファと、
上記受信パケットの到着時間のゆらぎを一定期間又は一定受信パケット数観測して得られるゆらぎの最大値、以下最大遅延ゆらぎと呼ぶ、と上記受信バッファに蓄積されているパケット数であるバッファ蓄積パケット数を検出する状態検出部と、
上記最大遅延ゆらぎから、最大遅延ゆらぎが大きいほど上記受信バッファに蓄積すべき最適なパケット数、以下最適蓄積パケット数と呼ぶ、が多くなるように予め決めた関係を用いて最適蓄積パケット数を求め、上記検出したバッファ蓄積パケット数と上記最適パケット数との相違の程度を複数の段階で判定し、上記相違の程度が大きいほど処理の頻度が高くなるように予め定めた規則に基づいて、上記バッファ蓄積パケット数を上記最適蓄積パケット数に近づけるように波形の伸張、短縮、又は現状維持を指示する制御信号を生成する制御部と、
上記受信バッファから取り出された現フレームに対応するパケット中の音声符号を復号して現フレームの復号音声データ列を得る音声パケット復号部と、
上記制御信号に従って、上記現フレームの復号音声データ列に対し、その波形の伸張、短縮又は現状維持のいずれかの処理を行い、現フレームの再生音声データとして出力する消費量調整部、
とを含む。
【請求項８】
請求項７記載の音声パケット再生装置において、
上記復号音声データ列を分析して音声区間であるか非音声区間であるか判定してその判定結果を上記制御部に与えると共に、上記復号音声データ列についてのピッチ長を求めて上記消費量調整部に与える音声分析部が更に設けられており、
上記制御部は上記判定結果と、上記相違の程度の段階の判定結果とに基づいて上記消費量調整部に対し、現フレームの上記復号音声データ列の伸張、短縮又は現状維持の制御を与えるようにされており、
上記消費量調整部は上記制御に従って上記ピッチ長に対応する波形を上記復号音声データ列に対し挿入又は削除するか又は上記復号音声データ列を変更しないようにされている。
【請求項９】
請求項８記載の音声パケット再生装置において、
上記制御部は、上記相違の程度の段階が、上記バッファ蓄積パケット数を緊急に増加又は減少させるべき状況である緊急度大であるか、上記バッファ蓄積パケット数を緩やかに増加又は減少させるべき状況である緊急度小であるかを判定し、上記消費量調整部に対し、上記段階が緊急度大の場合は、上記音声区間又は非音声区間にかかわらず上記復号音声データ列の波形の伸張又は短縮を実行させる制御を与え、上記段階が緊急度小の場合は、上記復号音声データ列が非音声区間の場合にのみ上記復号音声データ列の波形の伸張又は短縮を実行させる制御を与えるようにされている。
【請求項１０】
請求項８記載の音声パケット再生装置において、
上記制御部は上記相違の程度の段階が、上記バッファ蓄積パケット数を緊急に増加又は減少させるべき状況である緊急度大であるか、上記バッファ蓄積パケット数を緩やかに増加又は減少させるべき状況である緊急度小であるかを判定し、上記段階が緊急度大の場合は、上記音声区間又は非音声区間にかかわらず上記消費量調整部に対し上記復号音声データ列の波形の伸張又は短縮を実行させる制御を与え、上記段階が緊急度小の場合は、上記消費量調整部に対し、上記復号音声データ列が音声区間の場合には予め決めたフレーム数N1毎に１回の割合で上記復号音声データ列の波形の伸張又は短縮を実行させ、上記復号音声データ列が非音声区間の場合には予め決めたフレーム数N2ごとに１回の割合で上記音声復号データ列の波形の伸張又は短縮を実行させる制御を与えるようにされており、上記N1及びN2は１以上の整数であり、かつN2はN1より小である。
【請求項１１】
請求項７記載の音声パケット再生装置において、上記音声分析部は上記復号音声データ列を分析して有声音区間、無声音区間、背景雑音区間、無音区間のいずれであるか区間判定してその判定結果を制御部に与えると共に、上記復号音声データ列についてのピッチ長を求めて上記消費量調整部に与えるようにされており、
上記制御部は、上記区間判定結果と、上記相違の程度の段階の判定結果とに基づいて、上記消費量調整部に対し、現フレームの上記復号音声データ列の伸張、短縮又は現状維持の処理を実行させる制御を与えるようにされており、
上記消費量調整部は、上記制御に従って上記ピッチ長に対応する波形を上記復号音声データ列に対し挿入又は削除するか又は上記復号音声データ列を変更しないようにされている。
【請求項１２】
請求項１１記載の音声パケット再生装置において、上記制御部は上記相違の程度の段階が、上記バッファ蓄積パケット数を緊急に増加又は減少させるべき状況である緊急度大であるか、上記バッファ蓄積パケット数を緩やかに増加又は減少させるべき状況である緊急度小であるかを判定し、上記消費量調整部に対し、上記段階が緊急度大の場合は上記区間判定結果にかかわらず上記復号音声データ列の波形の伸張又は短縮を実行させる制御を与え、上記段階が緊急度小の場合は、上記有声音区間、上記無声音区間、上記背景雑音区間
、上記無音区間に対しそれぞれ予め決めたフレーム数N1, N2, N3, N4毎に１回の割合で上記復号音声データ列の波形の伸張又は短縮を実行させる制御を与えるようにされており、上記N1, N2, N3, N4のうち、少なくとも１つは２以上の整数であり、かつ他の３つとは異なる値である。
【請求項１３】
コンピュータが解読可能なプログラム言語によって記述され、コンピュータに請求項１記載の音声パケット再生方法を実施させる音声パケット再生プログラム。
【請求項１４】
コンピュータが読取り可能な記録媒体によって構成され、この記録媒体に請求項１３記載の音声パケット再生プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、デジタル化された音声、音楽などの音響信号（以下総称して音声信号）をインターネットをはじめとするパケット通信網を介して送信する際に、受信側において安定した品質で音声信号を再生するために用いる音声パケット再生方法、音声パケット再生装置、音声パケット再生プログラム及びこのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
音声信号をVoice over IP技術（以下単に音声パケット通信と称す）を利用して送信し受信するサービスが普及しつつある。図１はその概要を示す。入力音声信号は音声信号送信装置５で音声パケットに変換され、パケット通信網６に送出される。音声信号受信装置７は自己宛に送られて来る音声パケットを識別して受信し、音声パケットを復号して音声を出力する。
図２に送信すべき音声データ列と音声パケットの関係を示す。図２Ａは送信すべき音声データ列を示す。送信すべき音声データ列は一般にＰＣＭデジタルサンプル列で構成される。このディジタル音声データ列をフレームと呼ばれる一定の時間単位（一般的には１０ミリ秒〜２０ミリ秒程度）に区切って音声符号化し、音声符号に送信時刻を表わすタイムスタンプ等を付加して音声パケットとして送信される。音声パケットは図２Ｂに示すように時間軸方向に圧縮された間欠信号とされ、間欠信号の空き時間は他のパケット通信に利用される。音声信号送信装置５から送り出される音声パケットの送り出しの時間の間隔は音声データ列のフレーム長に該当し、フレーム長に相当する時間間隔でパケット通信網６に送り出される。
【０００３】
音声信号受信装置７はフレーム長に相当する時間間隔で到来する音声パケットを受信し、音声パケットを復号することにより図２Ｃに示すように１音声パケットが１フレーム長の音声データ列に復号され、１フレーム長に相当する時間間隔で音声パケットを受信することにより、音声信号受信装置７は連続した音声を再生することができる。
ところで、通信網の状態によってはパケットの到来時間に大きなゆらぎが生じ、その結果、制限時間内（フレーム長に相当する時間内）にパケットが届かない現象が発生し、再生する音声が途切れるという問題がある。この問題に対して、ゆらぎ吸収バッファとも呼ばれる受信バッファを設けて、常に一定量のパケットを受信バッファに溜めておく方法が知られている。このとき、受信バッファに溜めておくパケットの量を多くすると、パケットの到着遅延の大きなゆらぎには強いが、パケットを受信してから音声が再生されるまでの遅延、即ち通話の遅延も大きくなり、双方向で話しづらいという問題がある。逆に、受信バッファに溜めておくパケットの量を少なくすると、通話の遅延は少ないが、パケットの到着遅延のゆらぎが発生したときに、音声が途切れやすいという問題がある。つまり、通話の遅延と音声の途切れやすさはトレードオフの関係にある。
【０００４】
この問題に対して、受信バッファに溜めるパケット量をダイナミックにコントロールする方法が知られている。これは、通話開始時は受信バッファに溜めるパケット量を少なくして、通話遅延を小さくするが、通話中にバッファに溜めたパケットが枯渇すると、通話途中で一旦音声再生処理を中止して受信バッファに溜めるパケット量を一定量増加させ、以降において通話音声が途切れにくくするものである。
人間が発声する音声を１０ミリ秒〜２０ミリ秒の時間単位に区切って見ると、通常の発声では発声時間の数十パーセント程度は非音声区間（背景雑音区間及び無音区間）であると言われている。そこで、受信バッファ中の受信パケット数が第１の閾値を超えた場合、復号音声中の非音声区間を削除することによりフレーム長を短縮して受信バッファ中の音声再生のための次のパケットへのアクセス時点を早め、受信バッファ中の受信パケット数が第１の閾値より小さい第２の閾値より小さくなった場合は、復号音声信号中の非音声区間を伸張し、それによって受信バッファ中の音声再生のための次のパケットへのアクセス時点を遅延させることにより遅延ゆらぎに対処することができる。この方法は、非音声区間の発生頻度が著しく小さくなったり、長時間にわたって非音声区間が無かったりすると、受信バッファによる調整ができなくなってしまう。
【０００５】
一方、音声区間（有声音区間及び無声音区間）において、ピッチ波形を単位として挿入、削除すれば、聴覚的な品質劣化をほとんど生じさせることなく、時間長の伸縮が可能であることが非特許文献１に記載されている。この方法を用いて前記非音声区間だけでは十分な受信バッファの調整ができない問題を解決するため、受信バッファ内の蓄積パケット量が下限値より下がると音声区間においてピッチ長の補間音声波形を追加し、上限値を超えると音声区間においてピッチ長の音声波形を間引くことが特許文献１に示されている。しかしながら、ピッチ長の波形を挿入あるいは間引くことにより音質劣化を低減しているものの、このピッチ長の波形の挿入又は間引きは、バッファ内の蓄積パケット量が上限閾値と下限閾値の間になるまで一連のフレームに対し実施されるため、再生音声に望ましくない程度の音質劣化を与える可能性がある。また、下限値及び上限値は固定されているため、遅延ゆらぎの急激な変化に対応できず、パケットロスが生じてしまう場合もある。
【特許文献１】日本国特許出願公開2003-050598号公報
【非特許文献１】森田、板倉、“ポインター移動量制御による重複加算法（PICOLA）を用いた音声の時間軸での伸張圧縮とその評価”、日本音響学会講演論文集、1-4-14．1986年10月
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、ピッチ波形を単位とした挿入、削除処理を応用して、より高性能な音声パケット再生方法、及び装置を提案しようとするものである。
【課題を解決するための手段】
【０００７】
この発明によれば、入力音声データ列のフレーム毎の符号化により生成された音声符号を収容して送信された一連の音声パケットを受信して再生する音声パケットの再生方法は、以下のステップを含む：
(a) 受信パケットを受信バッファに蓄積し、
(b) 上記受信パケットの到着時間のゆらぎを一定期間又は一定受信パケット数観測して得られるゆらぎの最大値、以下最大遅延ゆらぎと呼ぶ、と上記受信バッファに蓄積されているパケット数であるバッファ蓄積パケット数とを検出し、
(c) 上記最大遅延ゆらぎから、最大遅延ゆらぎが大きいほど上記受信バッファに蓄積すべき最適なパケット数、以下最適蓄積パケット数と呼ぶ、が多くなるように予め決めた関係を用いて最適蓄積パケット数を求め、
(d) 上記検出したバッファ蓄積パケット数と上記最適蓄積パケット数との相違の程度を複数の段階で判定し、
(e) 上記受信バッファから現フレームに対応するパケットを取り出し、そのパケット中の音声符号を復号して現フレームの復号音声データ列を得て、
(f)上記相違の程度が大きいほど処理の頻度が高くなるように予め定めた規則に基づいて、上記バッファ蓄積パケット数を上記最適蓄積パケット数に近づけるように、上記復号音声データ列に対しその波形の伸張、短縮又は現状維持のいずれかの処理を行い、現フレームの再生音声データとして出力する。
【０００８】
この発明によれば、入力音声データ列のフレーム毎の符号化により生成された音声符号を収容して送信された一連の音声パケットを受信して再生する音声パケットの再生装置は、
音声パケットをパケット通信網から受信するパケット受信部と、
受信したパケットを一時的に蓄積し、要求に応じてパケットを読み出す受信バッファと、
上記受信パケットの到着時間のゆらぎを一定期間又は一定受信パケット数観測して得られるゆらぎの最大値、以下最大遅延ゆらぎと呼ぶ、と上記受信バッファに蓄積されているパケット数であるバッファ蓄積パケット数を検出する状態検出部と、
上記最大遅延ゆらぎから、最大遅延ゆらぎが大きいほど上記受信バッファに蓄積すべき最適なパケット数、以下最適蓄積パケット数と呼ぶ、が多くなるように予め決めた関係を用いて最適蓄積パケット数を求め、上記検出したバッファ蓄積パケット数と上記最適パケット数との相違の程度を複数の段階で判定し、上記相違の程度が大きいほど処理の頻度が高くなるように予め定めた規則に基づいて、上記バッファ蓄積パケット数を上記最適蓄積パケット数に近づけるように波形の伸張、短縮、又は現状維持を指示する制御信号を生成する制御部と、
上記受信バッファから取り出された現フレームに対応するパケット中の音声符号を復号して現フレームの復号音声データ列を得る音声パケット復号部と、
上記制御信号に従って、上記現フレームの復号音声データ列に対し、その波形の伸張、短縮又は現状維持のいずれかの処理を行い、現フレームの再生音声データとして出力する消費量調整部、
とを含むように構成される。
【発明の効果】
【０００９】
パケット到着時間の遅延ゆらぎの大きいパケット通信網によってリアルタイムに音声信号を通信する場合に、本発明を適用することによって、音声の有無を問わずに定常的に音声データ列の消費量を制御し、受信バッファ内のパケット量を調整するから通信網の状態（ゆらぎ時間）の変化に追随して、受信バッファの最適コントロールが可能となる。この結果、音声の途切れがなく、かつ通話遅延を必要最小限に抑えた音声通話が実現される。また、パケット通信網はコストを抑えるために、ある程度のゆらぎを許容するように設計するのが一般的であり、本発明の利用によって、回線自体のゆらぎが少ない高品質ネットワークを利用しなくても音声の途切れが発生しないため、ネットワークの利用に関するコスト削減にも効果がある。
【発明を実施するための最良の形態】
【００１０】
本発明は、コンピュータ本体とコンピュータプログラムによって実行することが可能であるし、デジタルシグナルプロセッサや専用LSIに実装して実現することも可能である。特に切替スイッチはプログラムの条件分岐として実装することができる。
第１実施例
図３は、本発明における音声信号受信部の構成例であり、パケット受信部１１と、受信バッファ１２と、音声パケット復号部１３と、状態検出部１４と、音声分析部１５と、制御部１６と、消費量調整部２０と、サウンドデバイス１８とから構成されている。パケット受信部１１は、通信網から音声パケットを受信し、その受信バッファ１２に蓄積すると共に、そのパケットの到着時刻とそのパケットのタイムスタンプを状態検出部１４に与える。音声パケットには、フレームと呼ばれる一定の時間単位（一般的には１０ミリ秒〜２０ミリ秒程度）に区切った音声信号を音声符号化の手法によって変換した音声符号と、送信側におけるパケット作成の時間順序を示すタイムスタンプ（フレーム番号に対応）が含まれている。代表的な音声符号化手段としては、ITU-T（国際電気通信連合）の標準であるG.711方式があるが、その他任意の方式でもよい。
【００１１】
受信バッファ１２は、受信音声パケットを蓄積し、音声パケット復号部１３から転送要求がある毎に、音声パケットを音声パケット復号部１３にタイムスタンプ順に送る。受信バッファ１２から音声パケットが音声パケット復号部１３に転送されるごとに、受信バッファ１２内のその音声パケットは破棄される。
音声パケット復号部１３は、音声パケットに含まれる音声符号を復号して、音声データ列を出力し、消費量調整部２０と音声分析部１５に与える。ここでいう音声データ列とはデジタル音声サンプル列であり、一般的にはＰＣＭフォーマットで扱われることが多い。以下、特に音声信号がアナログかデジタルかの表記はしないが、最終的に人間の耳で聞く音がアナログ信号である以外の処理途中の信号はデジタル信号である。
【００１２】
また、送信側ではＰＣＭ信号をフレームごとに符号化してからパケットに収容して送信する場合と、ＰＣＭ信号をそのままフレームごとにパケットに収容して送信する場合がある。前者の場合、受信側において受信パケットから取り出した音声符号を復号する手段を必要とするが、後者の場合は必要としない。しかしながら、ＰＣＭ信号も一種の符号であると考えれば、受信側においてパケットから取り出したＰＣＭ信号をディジタルオーディオ信号に変換する復号化手段を必要とする。図３に示したこの発明の音声パケット再生装置における音声パケット復号部１３はいずれの場合であってもよい。
【００１３】
状態検出部１４はパケット受信部１１で受信されたパケットの到着時刻とタイムスタンプが与えられ、遅延ゆらぎを検出すると共に、受信バッファ１２に蓄積されているパケット数を検出して制御部１６に与える。ここで簡単のため現パケットのタイムスタンプをフレーム番号Fn(n=0, 1, 2, ...)と同じとし、到着時刻をTnとし、直前のパケットのタイム
スタンプをFn-mとし、その到着時刻をTn-mとする。信号伝送路の遅延量の変動が小さければ通常はm=1であるが、遅延量が大きく変動すると到着パケットの順番の逆転が生じる可能性があるので一般にはm=1とは限らない。フレーム長をLfとし、遅延ゆらぎjnを例えばjn=(Tn-Tn-m)-m×Lf又はその絶対値で表すことにする。遅延ゆらぎjnの定義はゆらぎの程度を数値で表すことができれば他の定義式を用いてもよい。
【００１４】
状態検出部１４は前回のパケットの到着時刻Tn-mとタイムスタンプFn-mを内部の情報記憶部１４Ｍに保持すると共に、一定期間（例えば２秒間）過去に遡って受信された各パケットについて計算した遅延ゆらぎjn, jn-1, ...を保持している。現パケット（タイムスタンプFn）の受信時点における過去一定期間（２秒）内の遅延ゆらぎの最大値又は統計値（以下最大遅延ゆらぎと呼ぶ）をＪと表すことにする。あるいは一定期間の代わりに、一定数（例えば１００）の受信されたパケットに対する最大遅延ゆらぎをＪとしてもよい。状態検出部１４は、パケット受信部１１からパケットの到着時刻TnとタイムスタンプFnが与えられる毎に最大遅延ゆらぎＪを求め、現時点の受信バッファ１２の蓄積パケット数（バッファ量）Ｓと共に制御部１６に与える。
【００１５】
音声分析部１５は、まず音声パケット復号部１３から出力された復号音声データ列を分析して、当該フレームが音声区間であるか非音声区間であるかを判定する。なお、ここで言う音声区間とは、人間の発声した音声信号が含まれる区間、非音声区間とは音声信号が含まれない区間と定義する。音声区間は有声音区間又は無声音区間のいずれかであり、非音声区間は音声区間以外の区間、即ち、背景雑音区間又は無音区間のいずれかである。その判定方法としては、例えば、フレーム内の音声信号のパワーを計算し、パワーが閾値以上であれば音声フレーム（音声区間）、閾値未満であれば非音声フレーム（非音声区間）と決めることにする。
【００１６】
当該フレームが音声区間と判定された場合には、ピッチ長の分析が行なわれる。ピッチ長は、例えば、音声波形又は音声波形にスペクトル包絡の逆特性を持つフィルタをかけた信号の自己相関係数を計算することによって得られる。当該フレームが非音声区間と判定された場合には、ピッチ長の分析は行なわず、ピッチ長Lpとして一定値、例えばフレーム長Lfの1/2を設定する。後述するように、ピッチ長Lpはフレーム長Lfの1/2以下が以後の処理に都合がよいためである。フレーム長Lfの1/4、1/6といった1/2以下の任意の値でもよい。
【００１７】
当該フレームが音声区間と判定された場合であっても、その音声が有声音の場合と無声音の場合がある。無声音の場合にはピッチという音声の物理的特徴量は存在しない。その場合でも、ピッチ分析の手法を用いて得られた値をピッチ長として以後の処理に利用して差し支えないし、非音声区間と同様にピッチ長として一定値に設定してしまっても本発明の効果に大差はない。
背景雑音がある場合の背景雑音区間（音声区間以外）では、音声区間と同様にピッチ分析の手法を用いてピッチ長を算出する。このとき得られるピッチ長は、音声の物理的特徴量としてのピッチとは異なるが、信号に含まれる主要な基本周波数に対応する周期として利用する。なお、音声の符号化方法によっては音声符号中にピッチに関する情報が含まれている場合があり、その場合には音声符号中のピッチ情報を用いてピッチ長を求めればよい。
【００１８】
制御部１６は予め実験により最大遅延ゆらぎとそれに対する受信バッファ１２の最適蓄積パケット数を決めた例えば図４に示す表１６Ｔを有している。図４に示す表１６Ｔは、フレーム長Lfが20msecの場合であり、従って、隣接パケットとの理想的な受信間隔も20msecである。制御部１６は、状態検出部１４から与えられた最大遅延ゆらぎＪから表１６Ｔを参照して求めた最適パケット数Ｂと現在の受信バッファ１２の蓄積パケット数Ｓとの差
Ｓ−Ｂに基づいて、受信バッファ１２に必要とされるバッファ量の調整の緊急度を判定する。なお、表１６Ｔを用いる代わりに、例えば最大遅延ゆらぎＪと最適蓄積パケット数Ｂの関係を近似的に表す式を予め決め、それを使用してもよい。即ち、最大遅延ゆらぎＪと最適蓄積パケット数Ｂの予め決めた関係を使用するのであればどのような方法でもよい。
【００１９】
制御部１６は判定した緊急度と、音声分析部１５から与えられた音声／非音声判定結果に基づいて、音声パケット復号部１３からの現フレームの復号音声波形データに対し、伸張するか、短縮するか、あるいは変更しないかを決め、その決定による制御を消費量調整部２０に与える。
消費量調整部２０は制御部１６の制御に従って、音声パケット復号部１３からの復号音声波形データをそのまま出力するか、伸張して出力するか、短縮して出力する。復号音声波形を伸張すれば音声パケット復号部１３の受信バッファ１２に対する次のパケットの転送要求が遅れることになり、単位時間当たりのパケット消費量が少なくなる。逆に、復号音声波形を短縮すれば、単位時間当たりのパケット消費量が多くなる。即ち音声信号として出力するための単位時間当たりの処理フレーム数を制御することにより受信バッファ１２からのパケットの読み出し量を制御する。
【００２０】
サウンドデバイス１８は図示してないＤ／Ａ変換器を有しており、音声データ列をアナログ信号に変換し実際にスピーカで再生する。消費量調整部２０からデジタルの音声信号がサウンドデバイス１８に送られると、アナログ音響信号である出力音声が再生される。サウンドデバイス１８は受け取った時間長（１フレームに相当する時間）の信号の再生が終わると、次のパケットの復号音声データ列を受け取る。サウンドデバイス１８の中にもサウンドデバイス用のバッファを持つのが一般的で、ダブルバッファと呼ばれる方法がよく知られている。ダブルバッファとは、２つのバッファを持ち、一方が再生中は他方は次の再生のための信号を受け取って準備する方法である。バッファが満杯のときは、一方の再生が終了するまでは次の信号は受け取らない。バッファ内に次の信号を格納できる空き領域が発生すると、直ちに次の信号の読み込みが実行される。
【００２１】
図５Ａ及び図５Ｂは図３に示したこの発明による音声パケット再生装置におけるパケット受信部１１と受信バッファ１２と、状態検出部１４による上述した受信パケットの処理手順と、それ以外の構成部による音声データ列の再生処理手順を示す。
図５Ａの処理では、ステップＳ１Ａでパケット受信部１１により音声パケットが受信されると、ステップＳ２Ａで受信パケットのタイムスタンプと到着時刻とを状態検出部１４に保存する。
ステップＳ３Ａで、状態検出部１４により受信パケットの到着時刻とタイムスタンプから直前の受信パケットに対する遅延ゆらぎを求め、到着時刻、タイムスタンプと共に保存し、過去一定時間内の最大遅延ゆらぎＪを求め、受信バッファ１２の現時点の蓄積パケット数（バッファ量）Ｓを検出し、制御部１６に最大遅延ゆらぎＪとバッファ量Ｓを与える。
【００２２】
ステップＳ４Ａで、受信パケットを受信バッファ１２に蓄積し、ステップＳ１Ａに戻って次のパケットを待つ。
図５Ｂの処理では、ステップＳ１Ｂで音声パケット復号部１３からの要求により受信バッファ１２から再生処理における現フレームに対応するパケットを読み出し、ステップＳ２Ｂで音声パケット復号部１３によりパケット中の音声符号を復号化して音声データ列を得る。
ステップＳ３Ｂで、音声分析部１５により復号音声データ列が音声区間であるか非音声声区間であるか判別し、ステップＳ４Ｂで制御部１６により最大遅延ゆらぎＪに対する最適バッファ量Ｂを図４の表から決定する。
【００２３】
ステップＳ５Ｂで、制御部１６によりさらに最適バッファ量Ｂと検出バッファ量Ｓに基づいてバッファ量の調整の緊急度を判定する。
ステップＳ６Ｂで、判定された緊急度に応じて消費量調整部２０により現フレームの復号音声データ列に対し波形伸張／短縮処理を行う。
ステップＳ７Ｂで、波形伸張／短縮処理された音声データ列を出力し、ステップＳ１Ｂに戻って次のパケットの再生処理に移る。
以下、図３に示したこの発明による音声パケット再生装置の要部を詳細に説明する。
【００２４】
図６は音声分析部１５の機能構成例を示す。ここでは、音声分析部１５は、高域通過フィルタ１５１と、分析用バッファ１５２と、フレーム内パワー計算部１５３と、区間判定部１５４と、ピッチ抽出部１５Ａとから構成されている。音声パケット復号部１３からのフレームごとの復号音声データは高域通過フィルタ１５１により直流分や、本来音声に含まれていない極端に低い周波数（例えば５０Ｈｚ以下）の成分が除去された後、以降の処理のために分析用バッファ１５２に一時保持され、フレーム内パワー計算部１５３によりフレーム内のパワーPfが計算される。区間判定部１５４は予め決めたパワー閾値Pthよりもフレーム内パワーPfが大きければ音声区間、Pth以下であれば非音声区間と判定し、判定結果を出力する。
【００２５】
ピッチ抽出部１５Ａは区間判定部１５４の判定結果が音声区間と判定した場合に復号音声データ列からピッチ抽出処理を実行する。ピッチ抽出部１５Ａは線形予測分析部１５５と、逆フィルタ係数算出部１５６と、逆フィルタ１５７と、ピッチ相関計算部１５８とから構成されている。線形予測分析部１５５は分析用バッファ１５２に保持されている１フレーム分の復号音声データ列を線形予測分析し、線形予測係数を得て逆フィルタ係数算出部１５６に与える。逆フィルタ係数算出部１５６は線形予測係数から、復号音声信号のスペクトル包絡を平坦化するような逆フィルタ係数を算出し、線形フィルタで構成された逆フィルタ１５７の係数として設定する。従って、逆フィルタ１５７は与えられた復号音声データ列を逆フィルタ処理し、それによってスペクトル包絡が平坦化された音声データ列がピッチ相関計算部１５８に与えられる。ピッチ相関計算部１５８は与えられた音声データの自己相関値をサンプル点を順次ずらしてそれぞれ計算し、得られた一連の相関値のピークの間隔をピッチ長Lpとして検出し、消費量調整部２０に与える。
【００２６】
尚、ピッチ長の分析には、当該フレームの信号だけでなく、過去のフレームの信号も利用することが多い。その場合には分析用バッファ１５２のサイズを２フレーム以上とし、現フレームと過去のフレームの復号音声データ列を保持し、過去から現在に渡る複数フレームの音声データ列に対するピッチ長分析を行えばよい。音声／非音声の判定結果は制御部１６に、ピッチ長Lpは音声データ列の消費量を調整する消費量調整部２０に送られる。
図３に戻って、消費量調整部２０は、フレーム波形伸張部２１と、フレーム波形短縮部２２と、波形伸張用バッファ２３と、スルーパス２４と、スイッチＳＷ１、ＳＷ２とによって構成される。スイッチＳＷ１は３つの切替端子Ａ１、Ｂ１、Ｃ１を持ち、スイッチＳＷ２は３つの切替端子Ａ２，Ｂ２，Ｃ２を持ち、これら切替端子の組Ａ１，Ａ２；Ｂ１，Ｂ２；Ｃ１，Ｃ２間にそれぞれフレーム波形伸張部２１、スルーパス２４、フレーム波形短縮部２２が接続されており、制御部１６の制御に従ってこれらのいずれかを選択するように連動して切り替えられる。スイッチＳＷ２により選択された音声波形データ列はサウンドデバイス１８に与えられると共に、波形伸張用バッファ２３に書き込まれる。波形伸張用バッファ２３から読み出された音声信号はフレーム波形伸張部２１に与えられる。
【００２７】
フレーム波形伸張部２１の機能構成例を図７に、フレーム波形伸張部２１による波形伸張処理の例を図８に示す。
フレーム波形伸張部２１は、波形処理用バッファ21-0と、波形挿入処理部21-1と、第１波形切出し部21-2と、ピッチ波形生成部21-3と、第２波形切出し部21-4とから構成されて
いる。第２波形切出し部21-4は音声分析部１５からのピッチ長Lpを使って、波形伸張用バッファ２３に蓄積されている１フレーム過去の出力音声信号波形WF1から、図８，行Ａに示すピッチ長Lpの区間の波形Ｘを切り出す。即ち、バッファ２３内の最後のサンプル点から、過去の時間方向に向かって１ピッチ長Lpの波形Ｘを切り出す。
【００２８】
第１波形切出し部21-2は、波形処理用バッファ21-0内の現フレームの音声信号波形WF0から、図８の行Ａにおけるピッチ長Lpの区間の波形Ｙを切り出す。即ち、入力された現フレームの音声信号波形WF0の先頭サンプル点から正の時間方向に向かって１ピッチ長Lpの波形を切り出す。
ピッチ波形生成部21-3は、前記切り出した波形Ｘと波形Ｙにそれぞれ三角窓の重み付けを行なった後、互いに加算して、図８の行Ｂに示す波形Ｚを作成する。ここで利用する重み付け三角窓は、非特許文献１に記載されている三角窓と同様のものを利用することができる。即ち、波形区間の始点から終点に向かって、重みが波形Ｘでは０から１に、波形Ｙでは１から０に直線的に変化する形状を利用できる。
【００２９】
波形挿入処理部21-1は、図８の行Ｃに示すように現フレームの音声波形の先頭に付加した１ピッチ長Lpの区間に、行Ｄに示すように前記波形Ｚを挿入する。
図８、行Ａでは、波形Ｘは波形伸張用バッファ２３内の１フレーム前の信号から切り出し、波形Ｙは波形処理用バッファ21-0内の現フレームの信号から切り出しているが、ピッチ長Lpがフレーム長Lfの1/2以下の場合には、現フレームの音声波形のみを使って挿入波形を作成してもよい。例えば、図９、行Ａ中に示すように、図８、行Ａの波形Ｘ、波形Ｙに対応する波形Ｘ’、Ｙ’を現フレームの先頭から連続して２ピッチ長の区間から切り出し、切り出した波形Ｘ′、Ｙ′に三角窓をかけて互いに加算して波形Ｚ′（図９、行Ｂ）を作成し、現フレームの波形Ｘ′とＹ′の間（図９、行Ｃ）に波形Ｚ′を挿入して長さLf+Lpの波形とすれば（図９、行Ｄ）、図８の手法と同様の効果が得られる。
【００３０】
図９の手法では、図８の手法で使用した波形伸張用バッファ２３は不要になるメリットがある反面、ピッチ長Lpがフレーム長Lfの1/2以下である制限がある。しかしながら、波形処理用バッファ21-0のサイズを例えば２フレーム分として現フレームとその直前のフレームの波形を保持するようにし、伸張処理を２フレーム分の音声信号に対して行うことにより、ピッチ長LpがLf/2を超えても波形伸張処理を行うことができる。
フレーム波形伸張部２１の処理によって、長さLfの現フレームの音声信号波形は、図８、行Ｄ及び図９、行Ｄに示すように長さがLf+Lpに伸張された信号波形となって出力される。
【００３１】
図３におけるフレーム波形短縮部２２の機能構成例を図１１に、フレーム波形短縮部２２による波形短縮処理の例を図１２に示す。フレーム波形短縮部２２は、波形処理用バッファ22-0と、波形置換処理部22-1と、第３波形切出し部22-2と、ピッチ波形生成部22-3と、第４波形切出し部22-4とから構成されている。
第３波形切出し部22-2は、図１２の行Ａに示すように、波形処理用バッファ22-0に保持されている現フレームの音声信号波形の先頭サンプルから１ピッチ長Lpの区間の波形Ｄを切り出す。第４波形切出し部22-4は現フレームの音声信号波形の波形Ｄに続く１ピッチ長Lpの区間の波形Ｅを切出す。
【００３２】
ピッチ波形生成部22-3は、前記切り出した波形Ｄと波形Ｅにそれぞれ三角窓の重み付けを行った後加算して、図１２の行Ｂに示す波形Ｆを作成する。ここで利用する重み付け三角窓としては、やはり非特許文献１に記載されているが、波形区間の始点から終点に向かって、波形Ｄでは１から０に、波形Ｅでは０から１に直線的に変化する形状を使用できる。
波形置換処理部22-1は、行Ａに示す現フレームの連続する計２ピッチ長の波形Ｄ、Ｅの
区間を行Ｃに示すように１ピッチ長の区間に短縮して、１ピッチ長の前記波形Ｆで置換する（行Ｄ）。
【００３３】
フレーム波形短縮部２２の処理によって、フレーム長Lfの入力音声信号は、Lf-Lpに短縮された信号となって出力される。
フレーム波形短縮部２２において、ピッチ長Lpがフレーム長Lfの1/2を超えることがある場合は、前記短縮処理を行なうことができない。つまり波形Ｅがフレーム内から切り出せないためである。例えば、フレーム長Lfを２０ミリ秒とすると、ピッチ長Lpは１０ミリ秒以下でなくてはならず、これはピッチ周波数が１００Ｈｚ以上でなくてはならないことを意味する。男性音声では、ピッチ周波数が１００Ｈｚ未満である場合もある。このようにピッチ長Lpがフレーム長Lfの1/2を超える場合は、フレーム波形短縮部２２の波形処理用バッファ22-0のサイズを２フレーム分とし、現フレームとその直前のフレームの連続する２フレーム長の音声信号に対し、上述の短縮処理を行えばよい。
【００３４】
ピッチ長Lpがフレーム長Lfよりも長い場合には、前記２フレーム分の入力音声信号に対する短縮処理も、前記フレーム波形伸張部２１の処理も、ともに行なうことができないが、ピッチ長が２０ミリ秒より大きい、即ちピッチ周波数が５０Ｈｚよりも低いことは滅多にありえないことから、仮に入力されたピッチ長Lpがフレーム長Lfよりも長い場合には、フレーム波形伸張処理、フレーム波形短縮処理とも無処理のまま入力信号をそのまま出力すればよい。
再び図３に戻って、制御部１６は状態検出部１４からの最大遅延ゆらぎＪと受信バッファ１２の蓄積パケット数（バッファ量）Ｓとに基づいて、受信バッファ１２に蓄積するパケットの量を増やすべきか、減らすべきか、そのまま維持するのかの判断を行う。
【００３５】
蓄積するパケットの量を増加すべきと判断する状況の例としては次の場合が考えられる。
(a) 受信バッファに蓄積されている音声パケットの量が減少傾向にある場合。
(b) 受信バッファに蓄積されている音声パケットの数が所定値より少なくなった場合。
(c) 受信パケットの到着時間の間隔が増加傾向にある場合。
蓄積するパケットの量を減少すべきと判断する状況の例としては次の場合が考えられる。
【００３６】
(a) 受信バッファに蓄積されている音声パケットの量が増加傾向にある場合。
(b) 受信バッファに蓄積されている音声パケットの数が所定値以上に達した場合。
(c) 受信パケットの到着時間の間隔が短縮傾向にある場合。
それ以外で、パケット到着時点の最大遅延ゆらぎに対して、その時点で蓄積しているパケット量が適切であると判断されるときは、そのまま維持という判断をする。尚、実際の遅延ゆらぎが何ミリ秒の時にパケット蓄積量はいくらが最適であるかについては図４に例を示したが、一定期間（例えば２秒間）内のパケット受信部１１へのパケット到着間隔の最大値よりも、蓄積されたパケットの数Ｓで算出されるフレームの長さの合計時間Ｓ×Lfが少し長い程度がよいと考えられる。
【００３７】
制御部１６は、蓄積するパケットの量を増やすべきであると判断した場合、スイッチＳＷ１、ＳＷ２をそれぞれ端子Ａ１、Ａ２に切り替える。蓄積するパケットの量を減らすべきであると判断した場合には、スイッチＳＷ１、ＳＷ２をそれぞれ端子Ｃ１、Ｃ２に切り替える。蓄積するパケットの量をそのまま維持すべきであると判断した場合には、スイッチＳＷ１、ＳＷ２をそれぞれ端子Ｂ１、Ｂ２に切り替え、各切り替え位置により消費量調整部２０の消費量が設定される。
波形伸張用バッファ２３は、スイッチＳＷ２の出力側の音声データ列を蓄積し、蓄積された音声データ列は、前述のように、フレーム波形伸張部２１で利用される。
【００３８】
音声データ列がサウンドデバイス１８に送られると、所定速度のクロックに同期して出力音声が再生される。サウンドデバイス１８は受け取った時間長の音声データ列の再生が終わると、次のパケットから復号した音声データ列を受け取る。
前述のように、サウンドデバイス１８の中にもサウンドデバイス用のバッファを持つのが一般的で、ダブルバッファと呼ばれる方法がよく用いられる。ダブルバッファの両方のバッファが満杯のときは、一方のバッファの再生が終了し、そのバッファが空になるまでは次の音声データ列は受け取らない。
【００３９】
スイッチＳＷ１、ＳＷ２がそれぞれ端子Ｃ１、Ｃ２側、即ちフレーム波形短縮部２２側にセットされると、もとの１フレーム長に満たない長さの信号がスイッチＳＷ２より出力される。１フレーム長に満たない長さの信号をそのままサウンドデバイス１８に送ると、サウンドデバイスのオーバーヘッドが大きくなって、時に音声の途切れが発生することがある。サウンドデバイス１８の仕様としてフレーム長の許容最低値がある場合には、スイッチＳＷ２とサウンドデバイス１８の間に中間のバッファを設けるのがよい。
スイッチＳＷ１、ＳＷ２を端子Ａ１、Ａ２側に切り替えると、音声パケット復号部１３から出力された復号音声データ列は、フレーム波形伸張部２１を通ってサウンドデバイス１８に送られる。長さLfの復号音声データ列がフレーム波形伸張部２１を通ることによって、長さLf＋Lpのデータ列に伸張されるので、サウンドデバイス１８での再生時間もLf＋Lpになる。即ち、通常、サウンドデバイス１８が音声データ列を受け取る時間間隔がLfであったのが、Lf＋Lpの信号の再生時には音声データ列を受け取る時間間隔はLf＋Lpになる。
【００４０】
音声パケット復号部１３は、サウンドデバイス１８が音声データ列を受け取らないと受信バッファ１２に対して次の送信要求を出さないので、パケット受信部１１が一定の間隔でパケットを受信していれば、受信バッファ１２に蓄積されるパケット量は平均として増えることになる。平均として増えるとは、Lp＜Lfであるので、１回のフレーム波形伸張処理では、受信バッファに蓄積されるパケット量の増分は１フレーム分には満たない。復号音声信号に対し複数フレーム（Ｎとする）にわたってフレーム波形伸張部２１の伸張処理を行うと、Ｎよりも小さいＭフレーム分だけ受信バッファ１２に蓄積されるパケット量が増加する。
【００４１】
図１３を用いてその様子を説明する。図１３の行Ａは受信バッファ１２に順次蓄積されるパケットP1, P2, P3, ...を、また図１３の行Ｂは定常の音声フレームF1, F2, F3, ...の消費状態を示す。つまり、スイッチＳＷ１とＳＷ２が端子Ｂ１、Ｂ２にセットされている場合は受信バッファ１２に格納されているパケットを１個ずつ取り出して音声パケット復号部１３で１フレーム長Lf毎の音声データ列に復号し、圧縮、伸張の処理を受けずにスルーパス２４を通ってサウンドデバイス１８に与えられる。サウンドデバイス１８では１フレーム長Lf毎の音声データ列を音声に再生する。従って、この状態では１パケットを消費する毎に１フレーム長の音声が再生され、１パケット分の音声が再生されると、次のパケットが受信バッファ１２から取り出され、音声パケット復号部１３で音声データ列の復号が行われる。
【００４２】
これに対し、図１３の行Ｃに示す消費量小の状態では、スイッチＳＷ１とＳＷ２は端子Ａ１とＡ２に接続され、復号音声データ列は伸張処理を受けるので、サウンドデバイス１８に与えられる音声データ列の時間長はLf＋Lpとなる。従って、行Ｃに示すように伸張されたフレームF’1, F’2, F’3, ...がサウンドデバイス１８に与えられることになる。サウンドデバイス１８は１パケットから復号した各フレーム長Lfの音声データ列をLf＋Lpの時間を掛けて音声を再生することになるからサウンドデバイス１８側から音声パケット復号部１３に復号音声データ列を出力することを要求するタイミングはLf＋Lpの周期とな
る。図１３、行Ｂに示した定常消費状態の例では時間ＴＭ内に６個のパケットを消費したが、図１３、行Ｃに示す受信バッファ１２からパケットを取り出す周期がLf＋Lpの消費状態例ではパケットを４個消費することになる。これによりパケットの消費量を定常の消費状態より少なくすることができる。
【００４３】
スイッチＳＷ１、ＳＷ２を端子Ｃ１、Ｃ２側に切り替えると、音声パケット復号部１３から出力された復号音声データ列は、フレーム波形短縮部２２を通ってサウンドデバイス１８に送られる。長さLfの復号音声データ列がフレーム波形短縮部２２を通ることによって、長さLf−Lpの音声データ列に短縮されるので、図１３、行Ｄに示すように短縮されたフレームF”1, F”2, F”3, ...がサウンドデバイス１８に与えられることになる。そのため、サウンドデバイス１８での各短縮フレームの再生時間もLf−Lpになる。即ち、通常、サウンドデバイス１８が音声データ列を受け取る時間間隔がLfであったのが、Lf−Lpの信号の再生時には間隔がLf−Lpになる。この結果、音声パケット復号部１３も、通常１フレーム長Lfの時間間隔よりも短い間隔で受信バッファ１２に対して次の送信要求を出すので、パケット受信部１１が一定の間隔でパケットを受信していれば、受信バッファに蓄積されるパケット量は平均として減ることになる。平均として減るとは、Lp＜Lfであるので、１回のフレーム波形短縮処理では、受信バッファに蓄積されるパケット量の減少分は１フレーム分には満たない。複数フレーム（Ｎとする）にわたってフレーム波形短縮部２２を通ると、Ｎよりも小さいＭフレーム分受信バッファに蓄積されるパケット量が減少する。
【００４４】
図１３の行Ｄに示す例では、フレーム短縮部２２を通すことにより、同じ時間ＴＭの間にパケットを１０個消費することを表わしている。このようにパケットの消費量を大きくすることにより、受信バッファ１２に蓄えられるパケットの数を少なくすることができる。
制御部１６により、より高度なバッファ量制御が可能である。例えば、状態検出部１４からのバッファ量Ｓと最大遅延ゆらぎＪに基づいて、受信バッファに蓄積するパケットの量を増やすべき、減らすべきと判断する際に、緊急に増やすべき／ゆるやかに増やすべき、緊急に減らすべき／ゆるやかに減らすべき、という増減速度を判断に加えることができる。具体的には、通信網の状態が突然悪化したときに、受信バッファに蓄積するパケットの量をゆるやかに増やしていたのでは、音声の途切れが発生してしまうかもしれない。通信網の状態変化が急激であれば、バッファに蓄積するパケット量の制御も緊急に行うべきである。逆に、一般にドリフトと言われる、送信側と受信側のクロックずれやタイミングのわずかなずれの蓄積により、バッファに蓄積するパケット量が徐々に所望の量より増えてきてしまった、あるいは減ってきてしまったという場合には、ゆるやかに増減すればよい。
【００４５】
緊急に増減が必要な場合は、音声区間、非音声区間にかかわらず、消費量調整部２０のスイッチＳＷ１、ＳＷ２をそれぞれ端子Ａ１、Ａ２側、あるいは端子Ｃ１、Ｃ２側にセットして、迅速な波形伸縮を行うことによって、パケット蓄積量の増減も迅速に制御することができる。逆に、ゆるやかな増減でよい場合は、音声分析部１５における音声／非音声判定の結果、非音声フレームにおいてのみスイッチＳＷ１、ＳＷ２をそれぞれ端子Ａ１、Ａ２側、あるいは端子Ｃ１、Ｃ２側にセットするという方法でもよい。さらに、非音声フレームの場合には、ピッチ長を実際にピッチ分析した値ではなく、フレーム長Lfの1/2以下の任意の値に設定してよいので、よりゆるやかな増減の場合には、任意に設定するピッチ長を短い値にするとよい。
【００４６】
図１４は図３の構成において図６に示した音声分析部１５による音声／非音声判定結果と、状態検出部１４により検出した現受信パケットに対し過去Ｔ秒間（例えば２秒間）における最大遅延ゆらぎＪと、受信バッファ１２内の蓄積パケット数Ｓとに基づいて、バッ
ファ量の調整が緊急を要するかその緊急度を判定する手順の例を示す。
ステップＳ１：状態検出部１４における最大遅延ゆらぎＪを受信バッファ１２内の各パケットの受信時刻から求める。
ステップＳ２：制御部１６により最大遅延ゆらぎＪに対応する最適バッファ量Ｂを図４の表１６Ｔを参照して決める。
ステップＳ３：状態検出部１４により現時点における受信バッファ１２のバッファ量（蓄積されているパケット数）Ｂを求める。
ステップＳ４：制御部１６により決定した最適バッファ量Ｂと状態検出部１４により検出した実際のバッファ量Ｓとの差の絶対値｜Ｓ−Ｂ｜が予め決めた正の値Ｅより小であるか判定し、小であればバッファ量の調整は必要ないものと判断し、現状を維持する（これを緊急度０と定義する）。
ステップＳ５：差の絶対値｜Ｓ−Ｂ｜がＥより小でない場合は、バッファ量の調整が必要であることを意味し、差Ｓ−Ｂが−Ｅ以下であるが判定する。−Ｅ以下であることはバッファ量を増大する必要があることを意味し、以下のステップＳ６，Ｓ７を実行してバッファ量を増大する緊急度を判定する。Ｓ−Ｂが−Ｅ以下でない場合はＳ−ＢがＥ以上であり、バッファ量を減少する必要があることを意味し、以下のステップＳ８，Ｓ９を実行してバッファ量を減少する緊急度を判定する。
ステップＳ６：現時点のバッファ量Ｓが０以上でかつ最適バッファ量Ｂの２０％以下であるか判定し、もしそうであればバッファ量の調整（ここでは増大）の緊急度が大であると判定する。なお、Ｂが１以上でＳが０のとき、即ちバッファが枯渇して音切れの危険がある状態もこのステップで緊急度が大であると判定される。
ステップＳ７：現時点のバッファ量Ｓが最適バッファ量Ｂの２０％より大で、かつ５０％以下であるか判定する。そうであればバッファ量調整の緊急度は中と判定し、そうでなければ緊急度は小と判定する。
ステップＳ８：Ｓ−Ｂ＜−Ｅの場合はバッファ量を増加する必要があり、現時点のバッファ量Ｓが最適バッファ量Ｂの２００％以上であるか判定する。もしそうであれば、緊急度大と判定する。
ステップＳ９：ＳがＢの２００％以上でない場合は、ＳがＢの２００％より小で、かつ１５０％以上であるか判定し、もしそうであれば、緊急度は中であると判定し、そうでなければ緊急度は小であると判定する。
制御例１
図１５に示す表１は、図１４の手順により判定した緊急度（大、中、小、０）と、音声／非音声判定結果に基づいて制御部１６が実行する消費量調整部２０の第１の制御例を示す。
【００４７】
判定結果が緊急度大の場合、音声信号の音声／非音声判定結果にかかわらず、スイッチＳＷ１，ＳＷ２を、バッファ量を増すべきときは端子Ａ１，Ａ２側に、バッファ量を減らすべきときは端子Ｃ１，Ｃ２側に制御して現フレームの復号音声データ列に対し、伸張／短縮処理を必ず行う。判定結果が緊急度中の場合も緊急度大の場合と同じ制御を行う。
判定結果が緊急度小の場合は、現フレームの復号音声データ列が音声区間であればスイッチＳＷ１，ＳＷ２を端子Ｂ１，Ｂ２に固定して伸張／短縮を行わず、非音声区間であれば、スイッチＳＷ１，ＳＷ２を、バッファ量を増すべきときは端子Ａ１，Ａ２側に、バッファ量を減らすべきときはＣ１，Ｃ２側にセットする。
制御例２
図１６に示す表２は、図１４の手順により判定した緊急度（大、中、小、０）と、音声／非音声判定結果に基づいて制御部１６が実行する消費量調整部２０の第２の制御例を示す。この制御例は第１の制御例に比べて、緊急度が小のときの音声区間でN1フレームに１回の割合でＡ１，Ａ２側又はＣ１，Ｃ２側にスイッチＳＷ１，ＳＷ２をセットし、それ以外のフレームではＢ１，Ｂ２側にセットしている。これは音声の状態（通話環境）によっては、非音声区間がまったく検出されない場合が想定されるため、非音声区間が検出され
ない場合でも、バッファ量を変更できるようにしたものである。N1の値は１以上の整数であるが、例えばN1=5とする。その他は第１の制御例と同様である。
制御例３
図１７に示す表３は、制御部１６が実行する消費量調整部２０の第３の制御例を示す。この例は、図１６に示した第２の制御例における緊急度が中の制御を緊急度が大の制御と異ならしており、音声区間ではN2フレームに１回の割合でＡ１，Ａ２側又はＣ１，Ｃ２側にスイッチＳＷ１，ＳＷ２をセットし、それ以外のフレームではＢ１，Ｂ２側にセットする。N2の値は１以上の整数であるが、N1より小さい（即ちＡ１，Ａ２側又はＣ１，Ｃ２側にセットする頻度が制御例２の対応する制御より小さい）例えばN2=2とするのが好ましい。その他は第２の制御例と同様である。
制御例４
図１８に示す表４は、制御部１６が実行する消費量調整部２０の第４の制御例を示す。この制御例では、緊急度と音声／非音声区のすべての組に対応してそれぞれ予め決めたフレーム数ごとに１回の割合でスイッチＳＷ１，ＳＷ２をＡ１，Ａ２側又はＣ１，Ｃ２側にセットし、それ以外ではＢ１，Ｂ２側にセットする汎用的な手法を定義している。即ち、緊急度が小と大の場合の音声区間での制御は図１７の第３制御例と同様であるが、さらに緊急度が大の場合には音声区間／非音声区間にかかわらずN3フレームごとに１回の割合でスイッチＳＷ１，ＳＷ２をＡ１，Ａ２側又はＣ１，Ｃ２側にセットする。また、緊急度が中の場合は、非音声区間においてN4フレームごとに１回の割合でスイッチＳＷ１，ＳＷ２をＡ１，Ａ２側又はＣ１，Ｃ２側にセットし、それ以外のフレームではＢ１，Ｂ２側にセットし、緊急度が小の場合は、非音声区間においてN5フレームごとに１回の割合でスイッチＳＷ１，ＳＷ２をＡ１，Ａ２側又はＣ１，Ｃ２側にセットし、それ以外のフレームではＢ１，Ｂ２側にセットする。
【００４８】
N3の値は１以上の整数であり、例えばN3=1とする。N4の値は１以上の整数であり、例えばN4=1とする。N5の値は１以上の整数であり、例えばN5=2とする。これらの値N1〜N5を適切に選ぶことにより、音質の低下（違和感の増加）とバッファ量の変更速度のバランスを調整することができる。
第２実施例
図６に示した音声分析部１５では、固定の閾値PthとフレームパワーPfを比較することにより現フレームの復号音声信号が音声区間であるか非音声区間であるかの判定を行っている。この構成は簡便でよいが、復号音声信号にレベルの高い背景雑音（空調騒音やオフィスのざわつき、街頭騒音など）が含まれている場合に、音声区間／非音声区間を正確に判定できない場合がある。音声／非音声判定に背景雑音を考慮することによりこの点を改善した構成を図１９に示す。
【００４９】
図１９に示す音声分析部１５の構成は、図６の構成に対しさらに動的パワー閾値計算部１５０が設けられ、ピッチ相関計算部１５８においてはピッチ分析を行ってピッチ長Lpを求めると共にピッチ相関値（相関ピーク値）ｒを求める。動的パワー閾値計算部１５０は所定時間（例えば数秒乃至数十秒）過去に遡った範囲内のそれぞれのフレームのパワーPfの系列とそれぞれのフレームについて求めたピッチ相関値ｒを用いてパワー閾値Pdを動的に決定する。例えば、ピッチ相関ｒが高いフレーム、例えばｒ≧0.7のフレームはほぼ確実に音声区間であるとみなしてそれらのフレームのパワーの長時間平均Pav1を計算することにより音声信号レベルが推定される。
【００５０】
一方、ピッチ相関ｒが低いフレーム、例えばｒ≦0.4のフレームは、音声区間でない（即ち、背景雑音）か、音声区間の無声音区間（有声音区間でない）と推定される。背景雑音か無声音かの正確な区別は難しいが、無声音区間は相対的に少ないとみなせば、当該背景雑音か無声音区間とみなされるフレームのパワーの長時間平均Pav2を計算することによって、非音声区間の信号レベルが推定される。もちろん、背景雑音と無声音を区別して、
背景雑音のフレームのみでパワーの長時間平均を計算できるほうが好ましいので、ピッチ相関値ｒが低いフレームでも、フレームパワーの時系列の定常性を観測して、定常性の低い区間は無声音区間とみなし、上記パワーの長時間平均の計算から除外してもよい。
【００５１】
動的パワー閾値計算部１５０では、推定された音声信号レベルPav1と、非音声区間（即ち、背景雑音区間）の信号レベルPav2に基づいて、動的パワー閾値Pdを動的に決定、更新する。例えば、動的パワー閾値PdはレベルPav1とPav2の間の値に選ぶが、好ましくは非音声区間のレベル値Pav2よりわずかに大きい値に決めるのがよい。区間判定部１５４は、フレームのパワーPfが動的パワー閾値Pdよりも大きければそのフレームを音声区間と判定し、そうでなければ非音声区間と判定する。
上述の第２実施例による判定結果は、前述の図１５〜１８に示した第１乃至第４制御例のいずれに適用してもよい。
第３実施例
前述の第１及び第２実施例では各フレームが音声区間か非音声区間かの２通りに判定していたが、この実施例では音声区間が有声音区間であるか無声音区間であるか区別し、非音声区間が背景雑音区間であるか無音区間であるか区別する。従って、各フレームを、有声音、無声音、背景雑音、無音の４通りに判定し、その判定に基づいて消費量調整部２０を制御する。そのための音声分析部１５の構成を図２０に示す。
【００５２】
図２０に示す音声分析部１５の構成は、図１９に示した構成において区間判定部１５４にもピッチ相関値ｒを与え、区間判定部１５４においてパワー閾値として動的パワー閾値Pdと固定パワー閾値Pthの両方を使用し、フレームパワーPfとピッチ相関値ｒからフレームが上記４通りのいずれの区間かを判定する。
図２１は区間判定の処理手順を示す。
ステップＳ１：フレームのパワーPfが固定閾値Pth以下か判定し、そうであれば無音区間と判定する。
ステップＳ２：PfがPth以下でない場合は、フレームパワーPfが動的パワー閾値Pd以下か判定し、そうであれば背景雑音区間と判定する。
ステップＳ３：PfがPd以下でない場合は、ピッチ相関値ｒが予め決めた正の値Rc以下か判定し、そうであれば音声区間の無声音区間と判定し、そうでなければ音声区間の有声音区間と判定する。
【００５３】
図２２に示す表５は、図１４の手順により判定した緊急度（大、中、小、０）と、図２１の処理による区間判定結果に基づいて制御部１６が実行する消費量調整部２０の制御例を示す。この制御例では、緊急度が大と判定された場合は、区間判定結果に関係なく無条件で消費量調整部２０のスイッチＳＷ１，ＳＷ２を端子Ａ１，Ａ２側又はＣ１，Ｃ２側にセットする。
緊急度が中と判定された場合は、判定結果が有声音、無声音、背景雑音、無音、に対しそれぞれ予め決めた整数値N6, N7, N8, N9のフレーム数ごとに１フレームの割合でスイッチＳＷ１，ＳＷ２を端子Ａ１，Ａ２側又はＣ１，Ｃ２側にセットする。予め決めた整数値としては例えばN6=2, N7=2, N8=1, N9=1を使用することができるが、これらに限定されるものでない。
【００５４】
緊急度が小と判定された場合も同様に、判定結果が有声音、無声音、背景雑音、無音、に対しそれぞれ決めた整数値N10, N11, N12, N13のフレーム数ごとに１フレームの割合でスイッチＳＷ１，ＳＷ２を端子Ａ１，Ａ２側又はＣ１，Ｃ２側にセットする。予め決めた整数値としては例えばN10=5, N11=4, N12=4, N13=2を使用することができるが、これらに限定されるものでない。
整数値N6〜N13を適切に選択することにより、音質の低下（違和感の増加）とバッファ量の変化速度のバランスを調整することができる。
【００５５】
尚、上述の各実施例ではサウンドデバイス１８を終段に接続した実施例を説明したが、受信した音声データ列を蓄積するだけの場合もあり、必ずしも音声を再生しない場合もある。
以上説明した本発明の音声パケット再生方法はコンピュータに本発明による音声パケット再生プログラムを実行させることにより実現することができ、またコンピュータに本発明による音声パケット再生プログラムをインストールし、ＣＰＵに解読させて実行させることにより、コンピュータによって本発明の音声パケット再生装置を構築することができる。本発明による音声パケット再生プログラムはコンピュータが解読可能なプログラム言語によって記述され、コンピュータが読み取り可能な例えば磁気ディスク或はＣＤ−ＲＯＭのような記録媒体に記録され、これらの記録媒体からコンピュータにインストールするか、或は通信回線を通じてコンピュータにインストールされ、コンピュータに備えられたＣＰＵに解読されて音声パケット再生動作を実行する。
【産業上の利用可能性】
【００５６】
ＩＰ通信網上で音声通信を行う利用形態が普及してきており、本発明を適用することによって、安価で信頼性の高い音声通信が実現できる。
【図面の簡単な説明】
【００５７】
【図１】パケット通信の概要を説明するためのブロック図。
【図２】パケット通信の概要を説明するためのタイミングチャート。
【図３】本発明の音声パケット再生装置の一実施例を説明するためのブロック図。
【図４】最大遅延ゆらぎに対する最適バッファ量を示す表。
【図５】図５Ａは受信パケットの処理手順を示し、図５Ｂはパケットの読み出し、復号、波形処理の手順を示す。
【図６】図３における音声分析部１５の構成例を示すブロック図。
【図７】図３におけるフレーム波形伸張部２１の機能構成例を示すブロック図。
【図８】図７に示したフレーム波形伸張部２１による波形伸張処理を模式的に説明するための波形図。
【図９】図７に示したフレーム波形伸張部２１による波形伸張処理の他の例を説明するための波形図。
【図１０】図３におけるフレーム波形伸張部２１の他の構成を説明するためのブロック図。
【図１１】図３に示したフレーム波形短縮部２２の内部を構成を説明するためのブロック図。
【図１２】図１１に示したフレーム波形短縮部２２の動作を説明するための波形図。
【図１３】図３に示した消費量調整部２０の動作を説明するためのタイミングチャート。
【図１４】バッファ調整の緊急度を判定する手順を示すフローチャート。
【図１５】緊急度に対する消費量調整部２０の制御例を示す表１。
【図１６】緊急度に対する消費量調整部２０の制御例を示す表２。
【図１７】緊急度に対する消費量調整部２０の制御例を示す表３。
【図１８】緊急度に対する消費量調整部２０の制御例を示す表４。
【図１９】図３における音声分析部１５の第２の実施例を示すブロック図。
【図２０】図３における音声分析部１５の第３の実施例を示すブロック図。
【図２１】図２０における音声フレームの区間の判定手順を示すフローチャート。
【図２２】図２１による判定結果の音声フレームに対する消費量調整部２０の制御例を示す表５。
【図１】
0004146489.tif 000002
【図２】
0004146489.tif 000003
【図３】
0004146489.tif 000004
【図４】
0004146489.tif 000005
【図５】
0004146489.tif 000006
【図６】
0004146489.tif 000007
【図７】
0004146489.tif 000008
【図８】
0004146489.tif 000009
【図９】
0004146489.tif 000010
【図１０】
0004146489.tif 000011
【図１１】
0004146489.tif 000012
【図１２】
0004146489.tif 000013
【図１３】
0004146489.tif 000014
【図１４】
0004146489.tif 000015
【図１５】
0004146489.tif 000016
【図１６】
0004146489.tif 000017
【図１７】
0004146489.tif 000018
【図１８】
0004146489.tif 000019
【図１９】
0004146489.tif 000020
【図２０】
0004146489.tif 000021
【図２１】
0004146489.tif 000022
【図２２】
0004146489.tif 000023