(57)【特許請求の範囲】
【請求項１】
音声信号フレームを符号化する方法であって、
前記フレームの残差のピークエネルギーを計算することと、
前記残差の平均エネルギーを計算することと、
前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、方法。
【請求項２】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項１に記載の方法。
【請求項３】
前記方法が、前記フレーム中のピッチパルスピークの数を計算することを含み、
前記選択することが、前記フレーム中のピッチパルスピークの前記計算された数に基づく、請求項１に記載の方法。
【請求項４】
前記方法が、前記フレーム中のピッチピークの前記計算された数をしきい値と比較することを含み、
前記選択することが、前記比較することの結果に基づく、請求項３に記載の方法。
【請求項５】
前記選択することが、前記フレームの少なくとも一部分の信号対雑音比に基づく、請求項１に記載の方法。
【請求項６】
前記選択することが、前記フレームのローバンド部分の信号対雑音比に基づく、請求項５に記載の方法。
【請求項７】
前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断することと、
前記選択することが無声コーディングスキームを選択する場合、前記判断することに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
を備える、請求項１に記載の方法。
【請求項８】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを含み、
前記第３のフレームに対して差分符号化演算を前記実行することが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、請求項７に記載の方法。
【請求項９】
音声信号フレームを符号化するための装置であって、
前記フレームの残差のピークエネルギーを計算するための手段と、
前記残差の平均エネルギーを計算するための手段と、
前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択するための手段と、
前記選択されたコーディングスキームに従って前記フレームを符号化するための手段とを備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、装置。
【請求項１０】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項９に記載の装置。
【請求項１１】
前記フレーム中のピッチパルスピークの数を計算するための手段を含み、
選択するための前記手段が、前記フレーム中のピッチパルスピークの前記計算された数に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、請求項９に記載の装置。
【請求項１２】
選択するための前記手段が、前記フレームのローバンド部分の信号対雑音比に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、請求項９に記載の装置。
【請求項１３】
前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すための手段と、
（Ａ）選択するための前記手段による無声コーディングスキームの選択と（Ｂ）示すための前記手段による前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化するための手段と
を備える、請求項９に記載の装置。
【請求項１４】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するための手段を含み、
前記第３のフレームに対して差分符号化演算を実行するための前記手段が、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、請求項１３に記載の装
置。
【請求項１５】
音声信号のフレームの残差のピークエネルギーを計算することと、
前記残差の平均エネルギーを計算することと、
前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を前記プロセッサに実行させるためのプログラムを記憶し、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することを前記プロセッサに実行させるための前記プログラムが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを前記プロセッサに実行させるためのプログラムを備える、コンピュータ可読記憶媒体。
【請求項１６】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記フレーム中のピッチパルスピークの数を計算することを前記プロセッサに行わせるプログラムを記憶し、
選択することを前記プロセッサに実行させるための前記プログラムが、前記フレーム中のピッチパルスピークの前記計算された数に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択することを前記プロセッサにプログラムを備える、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
選択することを前記プロセッサに実行させるための前記プログラムが、前記フレームのローバンド部分の信号対雑音比に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択することを前記プロセッサに実行させるためのプログラムを備える、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すことと、
（Ａ）選択することを前記プロセッサに実行させるための前記プログラムによる無声コーディングスキームの選択と（Ｂ）示すことを前記プロセッサに実行させるための前記プログラムによる前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
を前記プロセッサに実行させるためのプログラムを記憶する、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを前記プロセッサに行わせるプログラムを記憶し、
前記第３のフレームに対して差分符号化演算を実行することを前記プロセッサに実行させるための前記プログラムが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを前記プロセッサに実行させるためのプログラムを備える、請求項１９に記載のコンピュータ可読記憶媒体。
【請求項２１】
音声信号フレームを符号化するための装置であって、
前記フレームの残差のピークエネルギーを計算するように構成されたピークエネルギー計算器と、
前記残差の平均エネルギーを計算するように構成された平均エネルギー計算器と、
雑音励振コーディングスキームに従って前記フレームを符号化するように選択可能に構成された第１のフレームエンコーダと、
非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化するように選択可能に構成された第２のフレームエンコーダと、
選択可能に、前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの１つに前記フレームを符号化させるように構成されたコーディングスキームセレクタと
を備え、
前記第２のフレームエンコーダが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成するように構成された、装置。
【請求項２２】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項２１に記載の装置。
【請求項２３】
前記フレーム中のピッチパルスピークの数を計算するように構成されたピッチパルスピークカウンタを含み、
前記コーディングスキームセレクタが、前記フレーム中のピッチパルスピークの前記計算された数に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの前記１つを選択するように構成された、請求項２１に記載の装置。
【請求項２４】
前記コーディングスキームセレクタが、前記フレームのローバンド部分の信号対雑音比に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの前記１つを選択するように構成された、請求項２１に記載の装置。
【請求項２５】
前記コーディングスキームセレクタが、前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断するように構成され、
前記コーディングスキームセレクタが、（Ａ）選択可能に、前記フレームを符号化することを前記第１のフレームエンコーダに行わせることと、（Ｂ）前記第２のフレームが有声であることの前記判断とに応答して、前記第２のフレームを符号化することを前記第２のフレームエンコーダに行わせるように構成された、請求項２１に記載の装置。
【請求項２６】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するように構成された第３のフレームエンコーダを含み、
前記第３のフレームエンコーダが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成するように構成された、請求項２５に記載の装置。
【請求項２７】
音声信号フレームを符号化する方法であって、
前記フレームのピッチ周期を推定することと、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算することと、
前記計算された値に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、方法。
【請求項２８】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項２７に記載の方法。
【請求項２９】
他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
前記計算することが、前記第１の値と前記第２の値とを比較することを備える、請求項２７に記載の方法。
【請求項３０】
前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
前記計算することが、前記第１の値と前記第２の値とを比較することを備える、請求項２７に記載の方法。
【請求項３１】
前記フレームの端末ピッチパルスの位置を計算することと、
前記フレームの複数の他のピッチパルスの位置を特定することと、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて、複数のピッチパルス位置を計算することと
を備え、
値を前記計算することが、（Ａ）前記位置を特定されたピッチパルスの前記位置と、（Ｂ）前記計算されたピッチパルス位置とを比較することを備える、請求項２７に記載の方法。
【請求項３２】
前記選択することが、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づく、請求項２７に記載の方法。
【請求項３３】
前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断することと、
前記選択することが無声コーディングスキームを選択する場合、前記判断することに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
を備える、請求項２７に記載の方法。
【請求項３４】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを含み、
前記第３のフレームに対して差分符号化演算を前記実行することが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、請求項３３に記載の方法。
【請求項３５】
音声信号フレームを符号化するための装置であって、
前記フレームのピッチ周期を推定するための手段と、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算するための手段と、
前記計算された値に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択するための手段と、
前記選択されたコーディングスキームに従って前記フレームを符号化するための手段とを備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、装置。
【請求項３６】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項３５に記載の装置。
【請求項３７】
他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
計算するための前記手段が、前記第１の値と前記第２の値とを比較するように構成された、請求項３５に記載の装置。
【請求項３８】
前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
計算するための前記手段が、前記第１の値と前記第２の値とを比較するように構成された、請求項３５に記載の装置。
【請求項３９】
前記フレームの端末ピッチパルスの位置を計算するための手段と、
前記フレームの複数の他のピッチパルスの位置を特定するための手段と、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて、複数のピッチパルス位置を計算するための手段と
を備え、
値を計算するための前記手段が、（Ａ）前記位置を特定されたピッチパルスの前記位置を（Ｂ）前記計算されたピッチパルス位置と比較するように構成された、請求項３５に記載の装置。
【請求項４０】
選択するための前記手段が、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、請求項３５に記載の装置。
【請求項４１】
前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すための手段と、
（Ａ）選択するための前記手段による無声コーディングスキームの選択と（Ｂ）示すための前記手段による前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化するための手段と
を備える、請求項３５に記載の装置。
【請求項４２】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するための手段を含み、
前記第３のフレームに対して差分符号化演算を実行するための前記手段が、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、請求項４１に記載の装置。
【請求項４３】
フレームのピッチ周期を推定することと、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算することと、
前記計算された値に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を前記プロセッサに実行させるためのプログラムを記憶し、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することを前記プロセッサに実行させるための前記プログラムが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記推定ピッチ周期の表現とを含む、符号化フレームを生成することをプロセッサによって実行されたとき前記プロセッサに実行させるためのプログラムを含む、コンピュータ可読記憶媒体。
【請求項４４】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４５】
他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
計算することを前記プロセッサに実行させるための前記プログラムが、前記第１の値と前記第２の値とを比較することを前記プロセッサに実行させるためのプログラムを含む、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４６】
前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
計算することを前記プロセッサに実行させるための前記プログラムが、前記第１の値と前記第２の値とを比較することを前記プロセッサに実行させるための命令プログラムを含む、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４７】
前記フレームの端末ピッチパルスの位置を計算することと、
前記フレームの複数の他のピッチパルスの位置を特定することと、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて、複数のピッチパルス位置を計算することと
を前記プロセッサに実行させるためのプログラムを記憶し、
値を計算することを前記プロセッサに実行させるための前記プログラムが、（Ａ）前記位置を特定されたピッチパルスの前記位置を（Ｂ）前記計算されたピッチパルス位置と比較することを前記プロセッサに実行させるためのプログラムを前記記憶媒体が含む、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４８】
選択することを前記プロセッサに実行させるための前記プログラムが、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択することを前記プロセッサに実行させるためのプログラムを含む、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４９】
前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すことと、
（Ａ）選択することを前記プロセッサに実行させるための前記プログラムによる無声コーディングスキームの選択と（Ｂ）示すことを前記プロセッサに実行させるための前記プログラムによる前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
を前記プロセッサに実行させるためのプログラムを前記記憶媒体が記憶する、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項５０】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを前記プロセッサに実行させるためのプログラムを記憶し、
前記第３のフレームに対して差分符号化演算を実行することを前記プロセッサに実行させるための前記プログラムが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを前記プロセッサに実行させるためのプログラムを含む、請求項４９に記載のコンピュータ可読記憶媒体。
【請求項５１】
音声信号フレームを符号化するための装置であって、
前記フレームのピッチ周期を推定するように構成されたピッチ周期推定器と、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算するように構成された計算器と、
雑音励振コーディングスキームに従って前記フレームを符号化するように選択可能に構成された第１のフレームエンコーダと、
非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化するように選択可能に構成された第２のフレームエンコーダと、
選択可能に、前記計算された値に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの１つに前記フレームを符号化させるように構成されたコーディングスキームセレクタと
を備え、
前記第２のフレームエンコーダが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成するように構成された、装置。
【請求項５２】
前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、請求項５１に記載の装置。
【請求項５３】
他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
前記計算器が、前記第１の値と前記第２の値とを比較するように構成された、請求項５１に記載の装置。
【請求項５４】
前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
前記計算器が、前記第１の値と前記第２の値とを比較するように構成された、請求項５１に記載の装置。
【請求項５５】
前記フレームの端末ピッチパルスの位置を計算するように構成された第１のピッチパルス位置計算器と、
前記フレームの複数の他のピッチパルスの位置を特定するように構成されたピッチパルスロケータと、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて複数のピッチパルス位置を計算するように構成された第２のピッチパルス位置計算器と
を備え、
前記計算器が、（Ａ）前記位置を特定されたピッチパルスの前記位置を（Ｂ）前記計算されたピッチパルス位置と比較するように構成された、請求項５１に記載の装置。
【請求項５６】
前記コーディングスキームセレクタが、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、請求項５１に記載の装置。
【請求項５７】
前記コーディングスキームセレクタが、前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断するように構成され、
前記コーディングスキームセレクタが、（Ａ）選択可能に、前記フレームを符号化することを前記第１のフレームエンコーダに行わせることと、（Ｂ）前記第２のフレームが有声であることの前記判断とに応答して、前記第２のフレームを符号化することを前記第２のフレームエンコーダに行わせるように構成された、請求項５１に記載の装置。
【請求項５８】
前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するように構成された第３のフレームエンコーダを含み、
前記第３のフレームエンコーダが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成するように構成された、請求項５７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
米国特許法第１２０条に基づく優先権の主張
本特許出願は、２００８年６月２０日に出願された「ロービットレートのアップリケ―ションのための過渡的な音声フレームのコーディング（ＣＯＤＩＮＧ  ＯＦ  ＴＲＡＮＳＩＴＩＯＮＡＬ  ＳＰＥＥＣＨ  ＦＲＡＭＥＳ  ＦＯＲ  ＬＯＷ−ＢＩＴ−ＲＡＴＥ  ＡＰＰＬＩＣＡＴＩＯＮＳ）」と題する特許出願第１２／１４３，７１９号（代理人整理番号第０７１３２１号）の一部継続出願である、譲受人に譲渡された、２００８年１０月３０日に出願された「ロービットレートのアップリケ―ションのための過渡的な音声フレームのコーディング（ＣＯＤＩＮＧ  ＯＦ  ＴＲＡＮＳＩＴＩＯＮＡＬ  ＳＰＥＥＣＨ  ＦＲＡＭＥＳ  ＦＯＲ  ＬＯＷ−ＢＩＴ−ＲＡＴＥ  ＡＰＰＬＩＣＡＴＩＯＮＳ）」と題する係属中の特許出願第１２／２６１，８１５号（代理人整理番号第０７１３２３号）の一部継続出願である。
【０００２】
本開示は、音声信号の処理に関する。
【背景技術】
【０００３】
デジタル技法による声および音楽などのオーディオ信号の伝送は、特に長距離電話方式、ボイスオーバーＩＰ（ＶｏＩＰとも呼ばれ、ＩＰはインターネットプロトコルを示す）などのパケット交換電話方式、およびセルラー電話方式などのデジタル無線電話方式において普及してきた。そのような普及により、再構成された音声の知覚品質を維持しながら、伝送チャネルによってボイス通信を転送するために使用される情報量を低減することに関心が生じている。たとえば、利用可能なワイヤレスシステム帯域幅を最も良く使用することが望ましい。システム帯域幅を効率的に使用する１つの方法は、信号圧縮技法を採用することである。音声信号を搬送するワイヤレスシステムの場合、通常、音声圧縮（または「音声コーディング」）技法がこの目的のために採用される。
【０００４】
人間音声発生のモデルに関係するパラメータを抽出することによって音声を圧縮するように構成されたデバイスは、しばしば、ボコーダ、「オーディオコーダ」、または「音声コーダ」と呼ばれる。（ここでは、これらの３つの用語を互換的に使用する。）音声コーダは、一般にエンコーダとデコーダとを含む。エンコーダは、一般に、着信音声信号（オーディオ情報を表すデジタル信号）を「フレーム」と呼ばれる時間の区間に分割し、各フレームを分析して、いくつかの関係するパラメータを抽出し、それらのパラメータを符号化フレームに量子化する。符号化フレームは、伝送チャネル（すなわち、ワイヤードまたはワイヤレスネットワーク接続）を介して、デコーダを含む受信機に送信される。デコーダは、符号化フレームを受信し、処理し、逆量子化して、パラメータを生成し、逆量子化されたパラメータを使用して音声フレームを再現する。
【０００５】
典型的な会話では、各話者は、その時間の約６０パーセントの間は沈黙状態である。音声エンコーダは、通常、音声を含んでいる音声信号のフレーム（「アクティブフレーム」）を、無音または背景雑音のみを含んでいる音声信号のフレーム（「非アクティブフレーム」）と区別するように構成される。そのようなエンコーダは、様々なコーディングモードおよび／またはレートを使用して、アクティブおよび非アクティブフレームを符号化するように構成できる。たとえば、音声エンコーダは、一般に、アクティブフレームを符号化する場合よりも、非アクティブフレームを符号化する場合のほうが、使用するビットが少なくなるように構成される。音声コーダは、知覚される品質損失がほとんどない、より低い平均ビットレートでの音声信号の転送をサポートするために、非アクティブフレームに対してより低いビットレートを使用する。
【０００６】
アクティブフレームを符号化するために使用されるビットレートの例は、１フレーム当たり１７１ビット、１フレーム当たり８０ビット、および１フレーム当たり４０ビットを含む。非アクティブフレームを符号化するために使用されるビットレートの例は、１フレーム当たり１６ビットを含む。セルラー電話方式システム（特に、電話通信工業会（Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｉｎｄｕｓｔｒｙ  Ａｓｓｏｃｉａｔｉｏｎ）（バージニア州アーリントン）によって公表された暫定標準（ＩＳ）−９５、または同様の業界標準に準拠するシステム）のコンテキストでは、これらの４つのビットレートは、それぞれ「フルレート」、「ハーフレート」、「１／４レート」、および「１／８レート」とも呼ばれる。
【発明の概要】
【０００７】
一構成による音声信号フレームを符号化する方法は、フレームの残差のピークエネルギーを計算することと、残差の平均エネルギーを計算することとを含む。本方法は、計算されたピークエネルギーと計算された平均エネルギーとの間の関係に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、選択されたコーディングスキームに従ってフレームを符号化することとを含む。本方法では、非差分ピッチプロトタイプコーディングスキームに従ってフレームを符号化することは、フレームのピッチパルスの時間領域形状の表現と、フレームのピッチパルスの位置の表現と、フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む。
【０００８】
別の構成による音声信号フレームを符号化する方法は、フレームのピッチ周期を推定することと、（Ａ）推定ピッチ周期に基づく第１の値と、（Ｂ）フレームの別のパラメータに基づく第２の値との間の関係の値を計算することとを含む。本方法は、計算された値に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、選択されたコーディングスキームに従ってフレームを符号化することとを含む。本方法では、非差分ピッチプロトタイプコーディングスキームに従ってフレームを符号化することは、フレームのピッチパルスの時間領域形状の表現と、フレームのピッチパルスの位置の表現と、推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む。
【０００９】
また、そのような方法を実行するように構成された装置および他の手段と、プロセッサによって実行されたとき、プロセッサにそのような方法の要素を実行させる命令を有するコンピュータ可読媒体とを明確に企図し、ここで開示される。
【図面の簡単な説明】
【００１０】
【図１】図１は、音声信号の有声区間の例を示す。
【図２Ａ】図２Ａは、音声区間の時間に対する振幅の例を示す。
【図２Ｂ】図２Ｂは、ＬＰＣ残差の時間に対する振幅の例を示す。
【図３Ａ】図３Ａは、一般的構成による音声符号化の方法Ｍ１００のフローチャートを示す。
【図３Ｂ】図３Ｂは、符号化タスクＥ１００の実装Ｅ１０２のフローチャートを示す。
【図４】図４は、フレーム中の特徴の概略を示す。
【図５Ａ】図５Ａは、符号化タスクＥ２００の実装Ｅ２０２の図を示す。
【図５Ｂ】図５Ｂは、方法Ｍ１００の実装Ｍ１１０のフローチャートを示す。
【図５Ｃ】図５Ｃは、方法Ｍ１００の実装Ｍ１２０のフローチャートを示す。
【図６Ａ】図６Ａは、一般的構成に従う装置ＭＦ１００のブロック図を示す。
【図６Ｂ】図６Ｂは、手段ＦＥ１００の実装ＦＥ１０２のブロック図を示す。
【図７Ａ】図７Ａは、一般的構成による、音声信号の励振信号を復号する方法Ｍ２００のフローチャートを示す。
【図７Ｂ】図７Ｂは、復号タスクＤ１００の実装Ｄ１０２のフローチャートを示す。
【図８Ａ】図８Ａは、一般的構成に従う装置ＭＦ２００のブロック図を示す。
【図８Ｂ】図８Ｂは、復号するための手段ＦＤ１００の実装形態ＦＤ１０２のフローチャートを示す。
【図９Ａ】図９Ａは、音声エンコーダＡＥ１０および対応する音声デコーダＡＤ１０を示す。
【図９Ｂ】図９Ｂは、音声エンコーダＡＥ１０のインスタンスＡＥ１０ａ、ＡＥ１０ｂおよび音声デコーダＡＤ１０のインスタンスＡＤ１０ａ、ＡＤ１０ｂを示す。
【図１０Ａ】図１０Ａは、一般的構成による、音声信号Ａ１００のフレームを符号化するための装置のブロック図を示す。
【図１０Ｂ】図１０Ｂは、エンコーダ１００の実装１０２のブロック図を示す。
【図１１Ａ】図１１Ａは、一般的構成による、音声信号Ａ２００の励振信号を復号するための装置のブロック図を示す。
【図１１Ｂ】図１１Ｂは、第１のフレームデコーダ３００の実装形態３０２のブロック図を示す。
【図１２Ａ】図１２Ａは、音声エンコーダＡＥ１０のマルチモード実装形態ＡＥ２０のブロック図を示す。
【図１２Ｂ】図１２Ｂは、音声デコーダＡＤ１０のマルチモード実装形態ＡＤ２０のブロック図。
【図１３】図１３は、残差発生器Ｒ１０のブロック図を示す。
【図１４】図１４は、衛星通信のためのシステムの概略図を示す。
【図１５Ａ】図１５Ａは、一般的構成に従う方法Ｍ３００のフローチャートを示す。
【図１５Ｂ】図１５Ｂは、タスクＬ１００の実装Ｌ１０２のブロック図を示す。
【図１５Ｃ】図１５Ｃは、タスクＬ２００の実装Ｌ２０２のフローチャートを示す。
【図１６Ａ】図１６Ａは、タスクＬ１２０による探索の例を示す。
【図１６Ｂ】図１６Ｂは、タスクＬ１３０による探索の例を示す。
【図１７Ａ】図１７Ａは、タスクＬ２１０の実装Ｌ２１０ａのフローチャートを示す。
【図１７Ｂ】図１７Ｂは、タスクＬ２２０の実装Ｌ２２０ａのフローチャートを示す。
【図１７Ｃ】図１７Ｃは、タスクＬ２３０の実装Ｌ２３０ａのフローチャートを示す。
【図１８Ａ】図１８ＡはタスクＬ２１２の反復の探索動作を示す。
【図１８Ｂ】図１８Ｂは、タスクＬ２１２の反復の探索動作を示す。
【図１８Ｃ】図１８Ｃは、タスクＬ２１２の反復の探索動作を示す。
【図１８Ｄ】図１８Ｄは、タスクＬ２１２の反復の探索動作を示す。
【図１８Ｅ】図１８Ｅは、タスクＬ２１２の反復の探索動作を示す。
【図１８Ｆ】図１８Ｆは、タスクＬ２１２の反復の探索動作を示す。
【図１９Ａ】図１９Ａは、タスクＬ２１４のテスト条件のテーブルを示す。
【図１９Ｂ】図１９Ｂは、タスクＬ２２２の反復の探索動作を示す。
【図１９Ｃ】図１９Ｃは、タスクＬ２２２の反復の探索動作を示す。
【図２０Ａ】図２０Ａは、タスクＬ２３２の探索動作を示す。
【図２０Ｂ】図２０Ｂは、タスクＬ２３４の探索動作を示す。
【図２０Ｃ】図２０Ｃは、タスクＬ２３２の反復の探索動作を示す。
【図２１】図２１は、タスクＬ３００の実装Ｌ３０２のフローチャートを示す。
【図２２Ａ】図２２Ａは、タスクＬ３２０の探索動作を示す。
【図２２Ｂ】図２２Ｂは、タスクＬ３２０の代替探索動作を示す。
【図２２Ｃ】図２２Ｃは、タスクＬ３２０の代替探索動作を示す。
【図２３】図２３は、タスクＬ３３０の実装Ｌ３３２のフローチャートを示す。
【図２４Ａ】図２４Ａは、タスクＬ３３４の実装によって使用されるテスト条件の４つの異なるセットを示す。
【図２４Ｂ】図２４Ｂは、タスクＬ３３８の実装Ｌ３３８ａのフローチャートを示す。
【図２５】図２５は、タスクＬ３００の実装Ｌ３０４のフローチャートを示す。
【図２６】図２６は、音声エンコーダＡＥ１０の実装のさまざまな符号化スキームのためのビット割振りのテーブルを示す。
【図２７Ａ】図２７Ａは、一般的構成に従う装置ＭＦ３００のブロック図を示す。
【図２７Ｂ】図２７Ｂは、一般的構成に従う装置Ａ３００のブロック図を示す。
【図２７Ｃ】図２７Ｃは、一般的構成に従う装置ＭＦ３５０のブロック図を示す。
【図２７Ｄ】図２７Ｄは、一般的構成に従う装置Ａ３５０のブロック図を示す。
【図２８】図２８は、一般的構成に従う方法Ｍ５００のフローチャートを示す。
【図２９Ａ】図２９Ａは、１６０ビットフレームの様々な領域を示す。
【図２９Ｂ】図２９Ｂは、１６０ビットフレームの様々な領域を示す。
【図２９Ｃ】図２９Ｃは、１６０ビットフレームの様々な領域を示す。
【図２９Ｄ】図２９Ｄは、１６０ビットフレームの様々な領域を示す。
【図３０Ａ】図３０Ａは、一般的構成による方法Ｍ４００のフローチャートを示す。
【図３０Ｂ】図３０Ｂは、方法Ｍ４００の実装Ｍ４１０のフローチャートを示す。
【図３０Ｃ】図３０Ｃは、方法Ｍ４００の実装Ｍ４２０のフローチャートを示す。
【図３１Ａ】図３１Ａは、パケットテンプレートＰＴ１０の一例を示す。
【図３１Ｂ】図３１Ｂは、別のパケットテンプレートＰＴ２０の一例を示す。
【図３１Ｃ】図３１Ｃは、部分的にインターリーブされたビットロケーションの２つの独立セットを示す。
【図３２Ａ】図３２Ａは、方法Ｍ４００の実装Ｍ４３０のフローチャートを示す。
【図３２Ｂ】図３２Ｂは、方法Ｍ４００の実装Ｍ４４０のフローチャートを示す。
【図３２Ｃ】図３２Ｃは、方法Ｍ４００の実装Ｍ４５０のフローチャートを示す。
【図３３Ａ】図３３Ａは、一般的構成による装置ＭＦ４００のブロック図を示す。
【図３３Ｂ】図３３Ｂは、装置ＭＦ４００の実装ＭＦ４１０のブロック図を示す。
【図３３Ｃ】図３３Ｃは、装置ＭＦ４００の実装ＭＦ４２０のブロック図を示す。
【図３４Ａ】図３４Ａは、装置ＭＦ４００の実装ＭＦ４３０のブロック図を示す。
【図３４Ｂ】図３４Ｂは、装置ＭＦ４００の実装ＭＦ４４０のブロック図を示す。
【図３４Ｃ】図３４Ｃは、装置ＭＦ４００の実装ＭＦ４５０のブロック図を示す。
【図３５Ａ】図３５Ａは、一般的構成に従う装置Ａ４００のブロック図を示す。
【図３５Ｂ】図３５Ｂは、装置Ａ４００の実装Ａ４０２のブロック図を示す。
【図３５Ｃ】図３５Ｃは、装置Ａ４００の実装Ａ４０４のブロック図を示す。
【図３５Ｄ】図３５Ｄは、装置Ａ４００の実装Ａ４０６のブロック図を示す。
【図３６Ａ】図３６Ａは、一般的構成による方法Ｍ５５０のフローチャートを示す。
【図３６Ｂ】図３６Ｂは、一般的構成による装置Ａ５６０のブロック図を示す。
【図３７】図３７は、一般的構成に従う方法Ｍ５６０のフローチャートを示す。
【図３８】図３８は、方法Ｍ５６０の実装Ｍ５７０のフローチャートを示す。
【図３９】図３９は、一般的構成に従う装置ＭＦ５６０のブロック図を示す。
【図４０】図４０は、装置ＭＦ５６０の実装ＭＦ５７０のブロック図を示す。
【図４１】図４１は、一般的構成に従う方法Ｍ６００のフローチャートを示す。
【図４２Ａ】図４２Ａは、ビンへのラグレンジの均一分割の一例を示す。
【図４２Ｂ】図４２Ｂは、ビンへのラグレンジの不均一分割の一例を示す。
【図４３Ａ】図４３Ａは、一般的構成に従う方法Ｍ６５０のフローチャートを示す。
【図４３Ｂ】図４３Ｂは、方法Ｍ６５０の実装Ｍ６６０のフローチャートを示す。
【図４３Ｃ】図４３Ｃは、方法Ｍ６５０の実装Ｍ６７０のフローチャートを示す。
【図４４Ａ】図４４Ａは、一般的構成に従う装置ＭＦ６５０のブロック図を示す。
【図４４Ｂ】図４４Ｂは、装置ＭＦ６５０の実装ＭＦ６６０のブロック図を示す。
【図４４Ｃ】図４４Ｃは、装置ＭＦ６５０の実装ＭＦ６７０のブロック図を示す。
【図４５Ａ】図４５Ａは、一般的構成に従う装置Ａ６５０のブロック図を示す。
【図４５Ｂ】図４５Ｂは、装置Ａ６５０の実装Ａ６６０のブロック図を示す。
【図４５Ｃ】図４５Ｃは、装置Ａ６５０の実装Ａ６７０のブロック図を示す。
【図４６Ａ】図４６Ａは、方法Ｍ６５０の実装Ｍ６８０のフローチャートを示す。
【図４６Ｂ】図４６Ｂは、装置ＭＦ６５０の実装ＭＦ６８０のブロック図を示す。
【図４６Ｃ】図４６Ｃは、装置Ａ６５０の実装Ａ６８０のブロック図を示す。
【図４７Ａ】図４７Ａは、一般的構成による方法Ｍ８００のフローチャートを示す。
【図４７Ｂ】図４７Ｂは、方法Ｍ８００の実装Ｍ８１０のフローチャートを示す。
【図４８Ａ】図４８Ｂは、方法Ｍ８００の実装Ｍ８２０のフローチャートを示す。
【図４８Ｂ】図４８Ｂは、一般的構成による装置ＭＦ８００のブロック図を示す。
【図４９Ａ】図４９Ａは、装置ＭＦ８００の実装ＭＦ８１０のブロック図を示す。
【図４９Ｂ】図４９Ｂは、装置ＭＦ８００の実装ＭＦ８２０のブロック図を示す。
【図５０Ａ】図５０Ａは、一般的構成に従う装置Ａ８００のブロック図を示す。
【図５０Ｂ】図５０Ｂは、装置Ａ８００の実装Ａ８１０のブロック図を示す。
【図５１】図５１は、フレーム分類スキームで使用される特徴のリストを示す。
【図５２】図５２は、ピッチベースの正規化自己相関関数を計算するためのプロシージャのフローチャートを示す。
【図５３】図５３は、ハイレベルでのフレーム分類スキームを示すフローチャートである。
【図５４】図５４は、フレーム分類方式での状態間の可能な遷移を示す状態図である。
【図５５】図５５は、フレーム分類方式の図５７〜図５９および図６０〜図６３とは異なるプロシージャのコードリストを示す。
【図５６】図５６は、フレーム分類スキームの図５７〜図５９および図６０〜図６３とは異なるプロシージャのコードリストを示す。
【図５７】図５７は、フレーム分類スキームの図５５〜図５６および図６０〜図６３とは異なるプロシージャのコードリストを示す。
【図５８】図５８は、フレーム分類スキームの図５５〜図５６および図６０〜図６３とは異なるプロシージャのコードリストを示す。
【図５９】図５９は、フレーム分類スキームの図５５〜図５６および図６０〜図６３とは異なるプロシージャのコードリストを示す。
【図６０】図６０は、フレーム分類スキームの図５５〜図５６および図５７〜図５９とは異なるプロシージャのコードリストを示す。
【図６１】図６１は、フレーム分類スキームの図５５〜図５６および図５７〜図５９とは異なるプロシージャのコードリストを示す。
【図６２】図６２は、フレーム分類スキームの図５５〜図５６および図５７〜図５９とは異なるプロシージャのコードリストを示す。
【図６３】図６３は、フレーム分類スキームの図５５〜図５６および図５７〜図５９とは異なるプロシージャのコードリストを示す。
【図６４】図６４は、フレーム再分類の条件を示す。
【図６５】図６５は、フレーム再分類の条件を示す。
【図６６】図６６は、フレーム再分類の条件を示す。
【図６７】図６７は、フレーム再分類の条件を示す。
【図６８】図６８は、フレーム再分類の条件を示す。
【図６９】図６９は、フレーム再分類の条件を示す。
【図７０】図７０は、フレーム再分類の条件を示す。
【図７１Ａ】図７１Ａは、フレーム再分類の条件を示す。
【図７１Ｂ】図７１Ｂは、フレーム再分類の条件を示す。
【図７２】図７２は、音声エンコーダＡＥ２０の実装ＡＥ３０のブロック図を示す。
【図７３Ａ】図７３Ａは、音声エンコーダＡＥ１０の実装ＡＥ４０のブロック図を示す。
【図７３Ｂ】図７３Ｂは、周期フレームエンコーダＥ７０の実装形態Ｅ７２のブロック図を示す。
【図７４】図７４は、周期フレームエンコーダＥ７２の実装形態Ｅ７４のブロック図を示す。
【図７５Ａ】図７５Ａは、遷移フレームコーディングモードの使用が望ましい、いくつかの典型的なフレームシーケンスを示す。
【図７５Ｂ】図７５Ｂは、遷移フレームコーディングモードの使用が望ましい、いくつかの典型的なフレームシーケンスを示す。
【図７５Ｃ】図７５Ｃは、遷移フレームコーディングモードの使用が望ましい、いくつかの典型的なフレームシーケンスを示す。
【図７５Ｄ】図７５Ｄは、遷移フレームコーディングモードの使用が望ましい、いくつかの典型的なフレームシーケンスを示す。
【図７６】図７６は、コードリストを示す。
【図７７】図７７は、遷移フレームコーディングを使用するという決定をキャンセルするための４つの異なる条件を示す。
【図７８】図７８は、一般的構成に従う方法Ｍ７００の図を示す。
【図７９Ａ】図７９Ａは、一般的構成による方法Ｍ９００のフローチャートを示す。
【図７９Ｂ】図７９Ｂは、方法Ｍ９００の実装Ｍ９１０のフローチャートを示す。
【図８０Ａ】図８０Ａは、方法Ｍ９００の実装Ｍ９２０のフローチャートを示す。
【図８０Ｂ】図８０Ｂは、一般的構成に従う装置ＭＦ９００のブロック図を示す。
【図８１Ａ】図８１Ａは、装置ＭＦ９００の実装ＭＦ９１０のブロック図を示す。
【図８１Ｂ】図８１Ｂは、装置ＭＦ９００の実装ＭＦ９２０のブロック図を示す。
【図８２Ａ】図８２Ａは、一般的構成に従う装置Ａ９００のブロック図を示す。
【図８２Ｂ】図８２Ｂは、装置Ａ９００の実装Ａ９１０のブロック図を示す。
【図８３Ａ】図８３Ａは、装置Ａ９００の実装Ａ９２０のブロック図を示す。
【図８３Ｂ】図８３Ｂは、一般的構成による方法Ｍ９５０のフローチャートを示す。
【図８４Ａ】図８４Ａは、方法Ｍ９５０の実装Ｍ９６０のフローチャートを示す。
【図８４Ｂ】図８４Ｂは、方法Ｍ９５０の実装Ｍ９７０のフローチャートを示す。
【図８５Ａ】図８５Ａは、一般的構成による装置ＭＦ９５０のブロック図を示す。
【図８５Ｂ】図８５Ｂは、装置ＭＦ９５０の実装ＭＦ９６０のブロック図を示す。
【図８６Ａ】図８６Ａは、装置ＭＦ９５０の実装ＭＦ９７０のブロック図を示す。
【図８６Ｂ】図８６Ｂは、一般的構成に従う装置Ａ９５０のブロック図を示す。
【図８７Ａ】図８７Ａは、装置Ａ９５０の実装Ａ９６０のブロック図を示す。
【図８７Ｂ】図８７Ｂは、装置Ａ９５０の実装Ａ９７０のブロック図を示す。
【００１１】
参照ラベルは、同じ構造を示すために２つ以上の図中に出現することがある。
【詳細な説明】
【００１２】
ここで説明されるシステム、方法、および装置（たとえば、方法Ｍ１００、Ｍ２００、Ｍ３００、Ｍ４００、Ｍ５００、Ｍ５５０、Ｍ５６０、Ｍ６００、Ｍ６５０、Ｍ７００、Ｍ８００、Ｍ９００、および／またはＭ９５０）を使用して、２キロビット毎秒などの低い固定ビットレートまたは低い最大ビットレートでの音声コーディングをサポートすることができる。そのような制約付きビットレート音声コーディングの適用例は、セルラーまたはワイヤラインテレフォニーのための通信インフラストラクチャがないリモートエリアにおける電話サービスをサポートするために使用できる、（「ボイスオーバーサテライト」とも呼ばれる）衛星リンクを介したボイステレフォニーの伝送を含む。衛星テレフォニーを使用して、車両フリートなどのモバイル受信機のための連続ワイドエリアカバレージをサポートすることもでき、プッシュツートークなどのサービスが可能になる。より一般的には、そのような制約付きビットレート音声コーディングの適用例は、衛星を必要とする適用例に限定されず、電力制限されたチャネルに拡張することができる。
【００１３】
文脈によって明確に限定されない限り、「信号」という用語は、ワイヤ、バス、または他の伝送媒体上に表されたメモリ位置（またはメモリ位置のセット）の状態を含む、その通常の意味のいずれをも示すのにここで使用される。文脈によって明確に限定されない限り、「発生（ｇｅｎｅｒａｔｉｎｇ）」という用語は、ここでは、計算（ｃｏｍｐｕｔｉｎｇ）または別様の生成（ｐｒｏｄｕｃｉｎｇ）など、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「計算（ｃａｌｃｕｌａｔｉｎｇ）」という用語は、ここでは、値のセットから計算（ｃｏｍｐｕｔｉｎｇ）すること、評価（ｅｖａｌｕａｔｉｎｇ）すること、発生（ｇｅｎｅｒａｔｉｎｇ）すること、および／または選択することなど、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「得る（ｏｂｔａｉｎｉｎｇ）」という用語は、計算、導出、（たとえば、外部デバイスからの）受信、および／または（たとえば、記憶要素のアレイからの）検索など、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「推定（ｅｓｔｉｍａｔｉｎｇ）」という用語は、計算（ｃｏｍｐｕｔｉｎｇ）および／または評価など、その通常の意味のいずれをも示すのに使用される。「備える（ｃｏｍｐｒｉｓｉｎｇ）」または「含む（ｉｎｃｌｕｄｉｎｇ）」という用語は、この記載および特許請求の範囲において使用される場合、他の要素または動作を除外するものではない。「に基づく」（「ＡはＢに基づく」など）という用語は、（ｉ）「少なくとも〜に基づく」（たとえば、「Ａは少なくともＢに基づく」）、および特定の文脈で適当な場合に、（ｉｉ）「と等しい」（たとえば、「ＡはＢと等しい」）という場合を含む、その通常の意味のいずれをも示すのに使用される。文書の一部の参照によるいかなる組込みも、そのような定義が文書中の他の場所に現れた場合、その部分内で言及された用語または変数の定義を組み込んでいることをも理解されたい。
【００１４】
別段の指示がない限り、特定の特徴を有する音声エンコーダのいかなる開示も、類似の特徴を有する音声符号化の方法を開示する（その逆も同様）ことをも明確に意図し、特定の構成による音声エンコーダのいかなる開示も、類似の構成による音声符号化の方法を開示する（その逆も同様）ことをも明確に意図する。別段の指示がない限り、音声信号のフレームに対して演算を実行するための装置のいかなる開示も、音声信号のフレームに対して演算を実行するための対応する方法を開示する（その逆も同様）ことをも明確に意図する。別段の指示がない限り、特定の特徴を有する音声デコーダのいかなる開示も、類似の特徴を有する音声復号の方法を開示する（その逆も同様）ことをも明確に意図し、特定の構成による音声デコーダのいかなる開示も、類似の構成による音声復号の方法を開示する（その逆も同様）ことをも明確に意図する。「コーダ」、「コーデック」、および「コーディングシステム」という用語は、（場合によっては知覚的重み付けおよび／または他のフィルタ処理演算などの１つまたは複数の前処理演算の後に）音声信号のフレームを受信するように構成された少なくとも１つのエンコーダと、フレームの復号表現を生成するように構成された対応するデコーダとを含むシステムを示すのに互換的に使用される。
【００１５】
音声コーディングを目的として、音声信号は、一般に、サンプルのストリームを得るためにデジタル化（または量子化）される。デジタル化プロセスは、たとえば、パルス符号変調（ＰＣＭ）、圧伸μ−ｌａｗ  ＰＣＭ、および圧伸Ａ−ｌａｗ  ＰＣＭを含む、当技術分野で知られている様々な方法のいずれかに従って実行できる。狭帯域音声エンコーダは、一般に、８ｋＨｚのサンプリングレートを使用するが、広帯域音声エンコーダは、一般に、より高いサンプリングレート（たとえば、１２ｋＨｚまたは１６ｋＨｚ）を使用する。
【００１６】
音声エンコーダは、デジタル化された音声信号をフレームの連続として処理するように構成される。この連続は、通常、重複しない連続として実装されるが、フレームまたは（サブフレームとも呼ばれる）フレームの区間を処理する演算は、その入力中に１つまたは複数の隣接フレームの区間を含むこともできる。音声信号のフレームは、一般に、信号のスペクトルエンベロープがそのフレームにわたって比較的固定のままであることが予想できるほど十分に短い。フレームは、一般に、音声信号の５ミリ秒と３５ミリ秒との間（または約４０サンプルから２００サンプルまで）に対応し、１０ミリ秒、２０ミリ秒、および３０ミリ秒が一般的なフレームサイズである。符号化フレームの実際のサイズは、コーディングビットレートとともにフレームごとに変化することがある。
【００１７】
２０ミリ秒のフレーム長は、７キロヘルツ（ｋＨｚ）のサンプリングレートで１４０サンプルに対応し、８ｋＨｚのサンプリングレートで１６０サンプルに対応し、１６ｋＨｚのサンプリングレートで３２０サンプルに対応するが、特定の適用例に好適と考えられる任意のサンプリングレートを使用することができる。音声コーディングに使用できるサンプリングレートの別の例は１２．８ｋＨｚであり、さらなる例には１２．８ｋＨｚから３８．４ｋＨｚまでの範囲の他のレートがある。
【００１８】
一般に、すべてのフレームは同じ長さを有し、ここで説明される特定の例では、均一フレーム長を仮定する。ただし、不均一フレーム長を使用することも明確に企図され、ここで開示される。たとえば、ここで説明される様々な装置および方法の実装は、アクティブおよび非アクティブフレームならびに／あるいは有声および無声フレームに対して異なるフレーム長を採用する適用例においても使用できる。
【００１９】
上記のように、様々なコーディングモードおよび／またはレートを使用して、アクティブフレームおよび非アクティブフレームを符号化するように音声エンコーダを構成することが望ましい。アクティブフレームを非アクティブフレームと区別するために、音声エンコーダは、一般に、（ボイスアクティビティ検出器またはＶＡＤと一般に呼ばれる）音声アクティビティ検出器を含むか、あるいは音声アクティビティを検出する方法を実行する。そのような検出器または方法は、フレームエネルギー、信号対雑音比、周期性、およびゼロ交差レートなど、１つまたは複数のファクタに基づいてフレームをアクティブまたは非アクティブに分類するように構成できる。そのような分類は、そのようなファクタの値または絶対値をしきい値と比較すること、および／またはそのようなファクタの変化の絶対値をしきい値と比較することを含むことができる。
【００２０】
音声アクティビティ検出器または音声アクティビティを検出する方法はまた、アクティブフレームを、（たとえば、母音を表す）有声、（たとえば、摩擦音を表す）無声、または（たとえば、ワードの始端または終端を表す）遷移など、２つ以上の異なるタイプのうちの１つとして分類するように構成できる。そのような分類は、音声および／または残差の自己相関、ゼロ交差レート、第１の反射係数などのファクタ、および／または（たとえば、コーディングスキームセレクタＣ２００および／またはフレーム再分類器ＲＣ１０に関して）ここでより詳細に説明される他の特徴に基づくことができる。音声エンコーダが、様々なコーディングモードおよび／またはビットレートを使用して、様々なタイプのアクティブフレームを符号化することが望ましい。
【００２１】
有声音声のフレームは、長期であり（すなわち、２フレーム周期以上の間継続し）、ピッチに関係する、周期構造を有する傾向がある。一般に、この長期スペクトル特徴の記述を符号化するコーディングモードを使用して有声フレーム（または有声フレームのシーケンス）を符号化するのがより効率的である。そのようなコーディングモードの例には、符号励振線形予測（ｃｏｄｅ−ｅｘｃｉｔｅｄ  ｌｉｎｅａｒ  ｐｒｅｄｉｃｔｉｏｎ：ＣＥＬＰ）、およびプロトタイプ波形補間（ｐｒｏｔｏｔｙｐｅ  ｗａｖｅｆｏｒｍ  ｉｎｔｅｒｐｏｌａｔｉｏｎ：ＰＷＩ）などの波形補間技法がある。ＰＷＩコーディングモードの一例はプロトタイプピッチ周期（ｐｒｏｔｏｔｙｐｅ  ｐｉｔｃｈ  ｐｅｒｉｏｄ：ＰＰＰ）と呼ばれる。一方、無声フレームおよび非アクティブフレームには、通常、著しい長期スペクトル特徴がなく、音声エンコーダは、そのような特徴を記述しようと試みないコーディングモードを使用して、これらのフレームを符号化するように構成できる。雑音励振線形予測（ｎｏｉｓｅ−ｅｘｃｉｔｅｄ  ｌｉｎｅａｒ  ｐｒｅｄｉｃｔｉｏｎ：ＮＥＬＰ）は、そのようなコーディングモードの一例である。
【００２２】
音声エンコーダまたは音声符号化の方法は、ビットレートと（「コーディングスキーム」とも呼ばれる）コーディングモードとの様々な組合せの中から選択するように構成できる。たとえば、音声エンコーダは、有声音声を含んでいるフレームおよび遷移フレームにはフルレートＣＥＬＰスキームを使用し、無声音声を含んでいるフレームにはハーフレートＮＥＬＰスキームを使用し、非アクティブフレームには１／８レートＮＥＬＰスキームを使用するように構成できる。そのような音声エンコーダの他の例は、フルレートおよびハーフレートＣＥＬＰスキームならびに／あるいはフルレートおよび１／４レートＰＰＰスキームなど、１つまたは複数のコーディングスキームに対して複数のコーディングレートをサポートする。
【００２３】
音声エンコーダまたは音声符号化の方法によって生成された符号化フレームは、一般に、音声信号の対応するフレームを再構成することができる値を含んでいる。たとえば、符号化フレームは、周波数スペクトルにわたるフレーム内でのエネルギーの分布の記述を含むことができる。エネルギーのそのような分布はフレームの「周波数エンベロープ」または「スペクトルエンベロープ」とも呼ばれる。符号化フレームは、一般に、フレームのスペクトルエンベロープを記述する値の順序付きシーケンスを含む。場合によっては、順序付きシーケンスの各値は、対応する周波数における信号または対応するスペクトル領域にわたる信号の振幅または絶対値を示す。そのような記述の一例はフーリエ変換係数の順序付きシーケンスである。
【００２４】
他の場合には、順序付きシーケンスはコーディングモデルのパラメータの値を含む。そのような順序付きシーケンスの１つの典型的な例は線形予測コーディング（ｌｉｎｅａｒ    ｐｒｅｄｉｃｔｉｏｎ  ｃｏｄｉｎｇ：ＬＰＣ）分析の係数の値のセットである。これらのＬＰＣ係数値は、符号化音声の共振（「ホルマント」とも呼ばれる）を符号化し、フィルタ係数または反射係数として構成できる。たいていの現代の音声コーダの符号化部分は、各フレームのＬＰＣ係数値のセットを抽出する分析フィルタを含む。（通常、１つまたは複数のベクトルとして構成される）セット中の係数値の数はＬＰＣ分析の「次数」とも呼ばれる。（セルラー電話などの）通信デバイスの音声エンコーダによって実行されるＬＰＣ分析の典型的な次数の例には、４、６、８、１０、１２、１６、２０、２４、２８、および３２がある。
【００２５】
音声コーダは、一般に、（たとえば、対応するルックアップテーブルまたは「コードブック」への１つまたは複数のインデックスとして）量子化された形態で伝送チャネル上でスペクトルエンベロープの記述を送信するように構成される。したがって、音声エンコーダが、線スペクトル対（ｌｉｎｅ  ｓｐｅｃｔｒａｌ  ｐａｉｒ：ＬＳＰ）、線スペクトル周波数（ｌｉｎｅ  ｓｐｅｃｔｒａｌ  ｆｒｅｑｕｅｎｃｙ：ＬＳＦ）、イミッタンススペクトル対（ｉｍｍｉｔｔａｎｃｅ  ｓｐｅｃｔｒａｌ  ｐａｉｒ：ＩＳＰ）、イミッタンススペクトル周波数（ｉｍｍｉｔｔａｎｃｅ  ｓｐｅｃｔｒａｌ  ｆｒｅｑｕｅｎｃｙ：ＩＳＦ）、ケプストラム係数、または対数面積比の値のセットなどのＬＰＣ係数値のセットを効率的に量子化できる形態で計算することが望ましい。音声エンコーダはまた、変換および／または量子化の前に値の順序付きシーケンスに対して知覚的重み付けなどの他の演算を実行するように構成できる。
【００２６】
場合によっては、フレームのスペクトルエンベロープの記述はまた、（たとえば、フーリエ変換係数の順序付きシーケンスの場合のように）フレームの時間的情報の記述を含む。他の場合には、符号化フレームの音声パラメータのセットはフレームの時間的情報の記述をも含むことができる。時間的情報の記述の形態は、フレームを符号化するために使用される特定のコーディングモードに依存する。いくつかのコーディングモード（たとえば、ＣＥＬＰコーディングモード）の場合、時間的情報の記述はＬＰＣ分析の残差の記述（励振信号の記述とも呼ばれる）を含む。対応する音声デコーダは、励振信号を使用して、（たとえば、スペクトルエンベロープの記述によって定義された）ＬＰＣモデルを励振する。励振信号の記述は、一般に、（たとえば、対応するコードブックへの１つまたは複数のインデックスとして）量子化された形態で符号化フレーム中に現れる。
【００２７】
時間的情報の記述はまた、励振信号のピッチ成分に関係する情報を含むことができる。ＰＰＰコーディングモードの場合、たとえば、符号化された時間的情報は、音声デコーダが励振信号のピッチ成分を再生するために使用するプロトタイプの記述を含むことができる。ピッチ成分に関係する情報の記述は、一般に、（たとえば、対応するコードブックへの１つまたは複数のインデックスとして）量子化された形態で符号化フレーム中に現れる。他のコーディングモード（たとえば、ＮＥＬＰコーディングモード）の場合、時間的情報の記述は、（フレームの「エネルギーエンベロープ」または「利得エンベロープ」とも呼ばれる）フレームの時間エンベロープの記述を含むことができる。
【００２８】
図１に、（母音などの）有声音声区間の時間にわたる振幅の一例を示す。有声フレームの場合、励振信号は、一般に、ピッチ周波数において周期的であるパルスの連続に似ており、無声フレームの場合、励振信号は一般に白色ガウス雑音と同様である。ＣＥＬＰまたはＰＷＩコーダは、より良い符号化効率を達成するために、有声音声区間の特性である、より高い周期を利用することができる。図２Ａに、背景雑音から有声音声に遷移する音声区間の時間にわたる振幅の例を示し、図２Ｂに、背景雑音から有声音声に遷移する音声区間のＬＰＣ残差の時間にわたる振幅の例を示す。ＬＰＣ残差のコーディングが符号化信号ストリームの大部分を占めるので、残差を符号化するために必要なビットレートを低減するために様々なスキームが開発されてきた。そのようなスキームは、ＣＥＬＰ、ＮＥＬＰ、ＰＷＩ、およびＰＰＰを含む。
【００２９】
トール品質（ｔｏｌｌ−ｑｕａｌｉｔｙ）の復号された信号を与える方法で音声信号の制約付きビットレート符号化を低ビットレート（たとえば、２キロビット毎秒）で実行することが望ましい。トール品質は、一般に、約２００〜３２００Ｈｚの帯域幅と３０ｄＢよりも大きい信号対雑音比（ｓｉｇｎａｌ−ｔｏ−ｎｏｉｓｅ  ｒａｔｉｏ：ＳＮＲ）とを有するものとして特徴づけられる。場合によっては、トール品質はまた、２または３パーセント未満の高調波ひずみを有するものとして特徴づけられる。残念ながら、一般に２キロビット毎秒に近いビットレートで音声を符号化するための既存の技法は、人工的（たとえば、ロボット的）で、雑音が多く、および／または過度に高調波的（たとえば、バズ）に聞こえる合成音声を生成する。
【００３０】
無音および無声フレームなどの非有声フレームの高品質の符号化は、通常、雑音励振線形予測（ＮＥＬＰ）コーディングモードを使用して低ビットレートで実行できる。しかしながら、有声フレームの高品質の符号化を低ビットレートで実行することはより困難である。低い平均ビットレートを達成するために、（オンセットフレームまたは立上り過渡フレームとも呼ばれる）無声から有声音声への遷移を含むフレームなどの困難なフレームにはより高いビットレートを使用し、後続の有声フレームにはより低いビットレートを使用することによって良好な結果が得られた。しかしながら、制約付きビットレートボコーダの場合、困難なフレームに対してより高いビットレートを使用するオプションは利用可能でないことがある。
【００３１】
エンハンスド・バリアブル・レート・コーデック（Ｅｎｈａｎｃｅｄ  Ｖａｒｉａｂｌｅ  Ｒａｔｅ  Ｃｏｄｅｃ：ＥＶＲＣ）などの既存の可変レートボコーダは、一般に、ＣＥＬＰなどの波形コーディングモードを使用して、そのような困難なフレームをより高いビットレートで符号化する。低ビットレートでの有声音声区間の記憶または送信のために使用できる他のコーディングスキームは、ＰＰＰコーディングスキームなどのＰＷＩコーディングスキームを含む。そのようなＰＷＩコーディングスキームは、残差信号中の１つのピッチ周期の長さを有するプロトタイプ波形の位置を周期的に特定する。デコーダにおいて、残差信号は、元の高度に周期的な残差信号の近似値を得るために、プロトタイプ間のピッチ周期にわたって補間される。ＰＰＰコーディングのいくつかの適用例は、高ビットレート符号化フレームが１つまたは複数の後続の低ビットレート符号化フレームに基準を与えるように、混合ビットレートを使用する。そのような場合、低ビットレートフレーム中の情報の少なくともいくつかは差分符号化できる。
【００３２】
シーケンス中の後続のフレームの差分ＰＷＩ（たとえば、ＰＰＰ）符号化に良好なプロトタイプ（すなわち、良好なピッチパルス形状基準）および／またはピッチパルス位相基準を与える非差分方法で、オンセットフレームなどの遷移フレームを符号化することが望ましい。
【００３３】
ビットレート制約付きコーディングシステムにおいてオンセットフレームおよび／または他の遷移フレームのためのコーディングモードを与えることが望ましい。たとえば、低い固定ビットレートまたは低い最大ビットレートを有するように制限されたコーディングシステムにおいて、そのようなコーディングモードを与えることが望ましい。そのようなコーディングシステムの適用例の典型的な例は（たとえば、図１４を参照しながらここで説明される）衛星通信リンクである。
【００３４】
上述のように、音声信号のフレームは、有声、無声、または無音として分類できる。有声フレームは一般に高度に周期的であり、無声および無音フレームは一般に非周期的である。他の可能なフレーム分類は、オンセット、過渡、および立下り過渡を含む。（立上り過渡フレームとも呼ばれる）オンセットフレームは、一般に、ワードの始端において生じる。オンセットフレームは、図２Ｂ中の４００サンプルと６００サンプルとの間の領域の場合のように、フレームの始端では非周期的（たとえば、無声）であり、フレームの終端までに周期的（たとえば、有声）になることがある。過渡クラスは、有声であるが、周期的ではない音声を有するフレームを含む。過渡フレームは、ピッチの変化および／または周期性の低減を示し、一般に、（たとえば、音声信号のピッチが変化している）有声区間の中間または終端において生じる。典型的な立下り過渡フレームは、低エネルギー有声音声を有し、ワードの終端において生じる。オンセット、過渡、および立下り過渡フレームは「遷移」フレームと呼ばれることもある。
【００３５】
音声エンコーダが非差分方法でパルスのロケーション、振幅、および形状を符号化することが望ましい。たとえば、符号化フレームが後続の符号化フレームの励振信号に良好な基準プロトタイプを与えるように、オンセットフレーム、または有声フレームの連続の第１のフレームを符号化することが望ましい。そのようなエンコーダは、フレームの最終ピッチパルスの位置を特定し、最終ピッチパルスに隣接するピッチパルスの位置を特定し、ピッチパルスのピーク間の距離に従ってラグ値を推定し、最終ピッチパルスのロケーションと推定されたラグ値とを示す符号化フレームを生成するように構成できる。この情報は、位相情報なしに符号化された後続のフレームを復号する際に位相基準として使用できる。エンコーダはまた、（たとえばＱＰＰＰコーディングスキームを使用して）差分符号化された後続のフレームを復号する際に基準として使用されるピッチパルスの形状の指示を含む符号化フレームを生成するように構成できる。
【００３６】
遷移フレーム（たとえば、オンセットフレーム）をコーディングする際、フレームの正確な再生を達成することよりも、後続のフレームの良好な基準を与えることのほうが重要である。そのような符号化フレームを使用して、ＰＰＰまたは他の符号化スキームを使用して符号化される後続の有声フレームの良好な基準を与えることができる。たとえば、符号化フレームが、（たとえば、良好な形状基準を与えるための）ピッチパルスの形状の記述と、（たとえば、良好なラグ基準を与えるための）ピッチラグの指示と、（たとえば、良好な位相基準を与えるための）フレームの最終ピッチパルスのロケーションの指示とを含むことが望ましく、オンセットフレームの他の特徴を、より少数のビットを使用して符号化するか、または無視することさえできる。
【００３７】
図３Ａに、符号化タスクＥ１００およびＥ２００を含む構成による音声符号化の方法Ｍ１００のフローチャートを示す。タスクＥ１００は、音声信号の第１のフレームを符号化し、タスクＥ２００は、音声信号の第２のフレームを符号化し、第２のフレームは第１のフレームの後に続く。タスクＥ１００は、第１のフレームを非差分符号化する基準コーディングモードとして実装でき、タスクＥ２００は、第１のフレームに対して第２のフレームを符号化する相対コーディングモード（たとえば、差分コーディングモード）として実装できる。一例では、第１のフレームはオンセットフレームであり、第２のフレームはオンセットフレームの直後に続く有声フレームである。第２のフレームはまた、オンセットフレームの直後に続く連続する有声フレームの連続の１番目のフレームとすることができる。
【００３８】
符号化タスクＥ１００は、励振信号の記述を含む第１の符号化フレームを生成する。この記述は、時間領域におけるピッチパルスの形状（すなわち、ピッチプロトタイプ）と、ピッチパルスが繰り返されるロケーションとを示す値のセットを含む。ピッチパルスロケーションは、フレームの端末ピッチパルスの位置など、基準点とともにラグ値を符号化することによって示される。この記載において、ピッチパルスの位置はそのピークの位置を使用して示されるが、本開示の範囲は、その第１または最後のサンプルなど、パルスの別の特徴の位置によってピッチパルスの位置が同等に示されるコンテキストを明確に含む。第１の符号化フレームは、フレームのスペクトルエンベロープの記述（たとえば、１つまたは複数のＬＳＰインデックス）など、他の情報の表現を含むこともできる。タスクＥ１００を、テンプレートに準拠するパケットとして符号化フレームを生成するように構成することができる。たとえば、タスクＥ１００は、ここで説明されるパケット発生タスクＥ３２０、Ｅ３４０および／またはＥ４４０の実例を含むことができる。
【００３９】
タスクＥ１００は、第１のフレームの少なくとも１つのピッチパルスからの情報に基づいて、時間領域ピッチパルス形状のセットのうちの１つを選択するサブタスクＥ１１０を含む。フレームにおける最も高いピークを有するピッチパルスに（たとえば、最小２乗方向に）最も厳密に一致する形状を選択するように、タスクＥ１１０を構成することができる。代替的に、フレームにおける最も高いエネルギー（たとえば、２乗サンプル値の最も高い和）を有するピッチパルスに最も厳密に一致する形状を選択するように、タスクＥ１１０を構成することができる。代替的に、フレームの２つ以上のピッチパルス（たとえば、最も高いピークおよび／またはエネルギーを有するパルス）の平均に最も厳密に一致する形状を選択するように、タスクＥ１１０を構成することができる。タスクＥ１１０は、ピッチパルス形状（「形状ベクトル」とも呼ばれる）のコードブック（すなわち、量子化テーブル）による探索を含むように実装できる。たとえば、タスクＥ１１０は、ここで説明されるパルス形状ベクトル選択タスクＴ６６０またはＥ４３０のインスタンスとして実装できる。
【００４０】
符号化タスクＴ１００は、フレームの端末ピッチパルスの位置（たとえば、フレームの初期ピッチピークまたはフレームの最終ピッチピークの位置）を計算するサブタスクＥ１２０をも含む。端末ピッチパルスの位置は、フレームの始端に対して、フレームの終端に対して、またはフレーム内の別の基準ロケーションに対して示すことができる。（たとえば、サンプルの振幅またはサンプル値の２乗として一般に計算されるサンプルのエネルギーと、フレーム平均との間の関係に基づいて）フレーム境界の近くのサンプルを選択し、このサンプルの次のエリア内で最大値を有するサンプルを探索することによって端末ピッチパルスピークを発見するように、タスクＥ１２０を構成することができる。たとえば、タスクＥ１２０は、以下で説明する端末ピッチピーク位置特定タスクＬ１００の構成のいずれかに従って実装できる。
【００４１】
符号化タスクＥ１００は、フレームのピッチ周期を推定するサブタスクＥ１３０をも含む。（「ピッチラグ値」、「ラグ値」、「ピッチラグ」、または単に「ラグ」とも呼ばれる）ピッチ周期は、ピッチパルス間の距離（すなわち、隣接するピッチパルスのピーク間の距離）を示す。典型的なピッチ周波数は、男性話者の約７０〜１００Ｈｚから女性話者の約１５０〜２００Ｈｚまで変動する。８ｋＨｚのサンプリングレートの場合、これらのピッチ周波数範囲は、典型的な女性話者の約４０〜５０サンプルおよび典型的な男性話者の約９０〜１００サンプルのラグ範囲に対応する。これらの範囲外にピッチ周波数を有する話者に適応するために、約５０〜６０Ｈｚから約３００〜４００Ｈｚまでのピッチ周波数範囲をサポートすることが望ましい。８ｋＨｚのサンプリングレートの場合、この周波数範囲は約２０〜２５サンプルから約１３０〜１６０サンプルまでのラグ範囲に対応する。
【００４２】
ピッチ周期推定タスクＥ１３０は、（たとえば、以下で説明するラグ推定タスクＬ２００の実装のインスタンスとして）任意の好適なピッチ推定プロシージャを使用してピッチ周期を推定するように実装できる。そのようなプロシージャは一般に、端末ピッチピークに隣接するピッチピークを発見すること（あるいは少なくとも２つの隣接するピッチピークを発見すること）と、ピーク間の距離としてラグを計算することとを含む。そのエネルギーの測度（たとえば、サンプルエネルギーとフレーム平均エネルギーとの間の比率）、および／またはサンプルの近傍が、確認されたピッチピーク（たとえば、端末ピッチピーク）の同様の近傍とどのくらい相関するかという測度に基づいて、サンプルをピッチピークとして識別するように、タスクＥ１３０を構成することができる。
【００４３】
符号化タスクＥ１００は、タスクＥ１１０によって選択された時間領域ピッチパルス形状、タスクＥ１２０によって計算された端末ピッチパルス位置、およびタスクＥ１３０によって推定されたラグ値など、第１のフレームについて励振信号の特徴の表現を含む第１の符号化フレームを生成する。一般にタスクＥ１００は、ピッチ周期推定タスクＥ１３０の前にピッチパルス位置計算タスクＥ１２０を実行し、ピッチパルス形状選択タスクＥ１１０の前にピッチ周期推定タスクＥ１３０を実行するように構成される。
【００４４】
第１の符号化フレームは、推定されたラグ値を直接示す値を含むことができる。代替的に、符号化フレームが最小値に対するオフセットとしてラグ値を示すことが望ましい。２０サンプルの最小ラグ値の場合、たとえば、２０〜１４７（すなわち、２０＋０〜２０＋１２７）サンプルの範囲中の任意の可能な整数ラグ値を示すために７ビット数を使用できる。２５サンプルの最小ラグ値の場合、２５〜１５２（すなわち、２５＋０〜２５＋１２７）サンプルの範囲中の可能な整数ラグ値を示すために７ビット数を使用できる。そのような方法で、最小値に対するオフセットとしてラグ値を符号化することは、予想されるラグ値の範囲のカバレージを最大にし、値の範囲を符号化するために必要とされるビット数を最小限に抑えるために使用できる。非整数ラグ値の符号化をサポートするように、他の例を構成することができる。また、第１の符号化フレームは、第２のラグ値または他の場合はフレームの一方の側（たとえば、フレームの始端または終端）から他方へのラグ値の変化を示す値など、ピッチラグに関係する２つ以上の値を含むことが可能である。
【００４５】
フレームのピッチパルスの振幅が互いに異なる可能性がある。たとえば、オンセットフレームでは、フレームの終端の近くのピッチパルスがフレームの始端の近くのピッチパルスよりも大きい振幅を有するように、エネルギーが時間とともに増加する。少なくともそのような場合、第１の符号化フレームが、ピッチパルスの相対振幅の記述など、（「利得プロファイル」とも呼ばれる）時間にわたるフレームの平均エネルギーの変動の記述を含むことが望ましい。
【００４６】
図３Ｂに、サブタスクＥ１４０を含む符号化タスクＥ１００の実装Ｅ１０２のフローチャートを示す。タスクＥ１４０は、第１のフレームの異なるピッチパルスに対応する利得値のセットとしてフレームの利得プロファイルを計算する。たとえば、利得値の各々は、フレームの異なるピッチパルスに対応することができる。タスクＥ１４０は、利得プロファイルのコードブック（たとえば、量子化テーブル）による探索と、フレームの利得プロファイルに（たとえば、最小２乗方向に）最も厳密に一致するコードブックエントリの選択とを含むことができる。符号化タスクＥ１０２は、タスクＥ１１０によって選択された時間領域ピッチパルス形状と、タスクＥ１２０によって計算された端末ピッチパルス位置と、タスクＥ１３０によって推定されたラグ値と、タスクＥ１４０によって計算された利得値のセットとの表現を含む第１の符号化フレームを生成する。図４に、ラベル「１」が端末ピッチパルス位置を示し、ラベル「２」が推定されたラグ値を示し、ラベル「３」が選択された時間領域ピッチパルス形状を示し、ラベル「４」が利得プロファイル（たとえば、ピッチパルスの相対振幅）において符号化された値を示す、フレーム中のこれらの特徴の概略図を示す。一般にタスクＥ１０２は、ピッチパルス形状選択タスクＥ１１０と直列に、または平行して実行できる利得値計算タスクＥ１４０の前にピッチ周期推定タスクＥ１３０を実行するように構成される。（図２６のテーブルに示すように）一例では、符号化タスクＥ１０２は、基準パルス位置を示す７ビットと、基準パルス形状を示す７ビットと、基準ラグ値を示す７ビットと、利得プロファイルを示す４ビットと、１つまたは複数のＬＳＰインデックスを搬送する１３ビットと、フレームのコーディングモードを示す２ビット（たとえば、ＮＥＬＰなどの無声コーディングモードを示す「００」、ＱＰＰＰなどの相対コーディングモードを示す「０１」、および基準コーディングモードＥ１０２を示す「１０」）とを含む４０ビット符号化フレームを生成するように１／４レートで動作する。
【００４７】
第１の符号化フレームは、フレーム中のピッチパルス（またはピッチピーク）の数の明示的指示を含むことができる。代替的に、フレーム中のピッチパルスまたはピッチピークの数は、暗示的に符号化できる。たとえば、第１の符号化フレームは、ピッチラグおよび端末ピッチパルスの位置（たとえば、端末ピッチピークの位置）のみを使用してフレーム中のすべてのピッチパルスの位置を示すことができる。ラグ値および端末ピッチパルスの位置からピッチパルスの潜在的な位置を計算し、利得プロファイルから潜在的なパルス位置ごとの振幅を得るように、対応するデコーダを構成できる。フレームが潜在的なパルス位置よりも少数のパルスを含んでいる場合、利得プロファイルは、潜在的なパルス位置のうちの１つまたは複数について０の利得値（または他の極めて小さい値）を示すことができる。
【００４８】
ここに示すように、オンセットフレームは無声として開始し、有声として終了することができる。対応する符号化フレームは、全オンセットフレームの正確な再生をサポートするよりも、後続のフレームに良好な基準を与えることが望ましく、方法Ｍ１００は、そのようなオンセットフレームの初期無声部分を符号化するための限定されたサポートのみを行うように実装できる。たとえば、無声部分内の任意のピッチパルス周期について０の（または０に近い）利得値を示す利得プロファイルを選択するように、タスクＥ１４０を構成することができる。代替的に、無声部分内のピッチ周期について０でない利得値を示す利得プロファイルを選択するように、タスクＥ１４０を構成することができる。そのような一例では、タスクＥ１４０は、０、または０の近くで開始し、フレームの有声部分の第１のピッチパルスの利得レベルに単調に上昇する一般的な利得プロファイルを選択する。
【００４９】
利得ベクトル量子化（ＶＱ）テーブルのセットのうちの１つへのインデックスとして利得値のセットを計算し、異なる数のパルスに対して異なる利得ＶＱテーブルが使用されるように、タスクＥ１４０を構成することができる。各利得ＶＱテーブルが同じ数のエントリを含んでおり、異なる利得ＶＱテーブルが異なる長さのベクトルを含んでいるように、テーブルのセットを構成することができる。そのようなコーディングシステムでは、タスクＥ１４０は、端末ピッチパルスのロケーションとピッチラグとに基づいてピッチパルスの推定された数を計算し、この推定された数は、利得ＶＱテーブルのセットのうちの１つを選択するために使用される。この場合、符号化フレームを復号する対応する方法によって類似した演算を実行することもできる。ピッチパルスの推定された数がフレーム中のピッチパルスの実際の数よりも大きい場合、タスクＥ１４０はまた、上記で説明したように、フレーム中の追加のピッチパルス周期ごとに利得を小さい値、または０に設定することによってこの情報を搬送することができる。
【００５０】
符号化タスクＥ２００は、第１のフレームの後に続く音声信号の第２のフレームを符号化する。タスクＥ２００は、第１のフレームの対応する特徴に対して第２のフレームの特徴を符号化する相対コーディングモード（たとえば、差分コーディングモード）として実装できる。タスクＥ２００は、現在のフレームのピッチパルス形状と前のフレームのピッチパルス形状との間のピッチパルス形状差を計算するサブタスクＥ２１０を含む。たとえば、第２のフレームからピッチプロトタイプを抽出し、抽出されたプロトタイプと第１のフレームのピッチプロトタイプ（すなわち、選択されたピッチパルス形状）との間の差としてピッチパルス形状差を計算するように、タスクＥ２１０を構成することができる。タスクＥ２１０によって実行できるプロトタイプ抽出演算の例は、２００４年６月２２日に発行された米国特許第６，７５４，６３０号（Ｄａｓら）、および２００６年１１月１４日に発行された米国特許第７，１３６，８１２号（Ｍａｎｊｕｎａｔｈら）に記載されているものを含む。
【００５１】
周波数領域中の２つのプロトタイプ間の差としてピッチパルス形状差を計算するようにタスクＥ２１０を構成することが望ましい。図５Ａに、ピッチパルス形状差計算タスクＥ２１０の実装Ｅ２１２を含む符号化タスクＥ２００の実装Ｅ２０２の図を示す。タスクＥ２１２は、現在のフレームの周波数領域ピッチプロトタイプを計算するサブタスクＥ２１４を含む。たとえば、抽出されたプロトタイプに対して高速フーリエ変換演算を実行するか、または他の場合は抽出されたプロトタイプを周波数領域に変換するように、タスクＥ２１４を構成することができる。また、周波数領域プロトタイプをいくつかの周波数ビン（たとえば、重複しないビンのセット）に分割し、要素が各ビンにおける平均絶対値である対応する周波数絶対値ベクトルを計算し、プロトタイプの周波数絶対値ベクトルと前のフレームのプロトタイプの周波数絶対値ベクトルとの間のベクトル差としてピッチパルス形状差を計算することによってピッチパルス形状差を計算するように、タスクＥ２１２のそのような実装を構成することができる。そのような場合、対応する符号化フレームが量子化差を含むようにピッチパルス形状差をベクトル量子化するように、タスクＥ２１２を構成することもできる。
【００５２】
符号化タスクＥ２００は、現在のフレームのピッチ周期と前のフレームのピッチ周期との間のピッチ周期差を計算するサブタスクＥ２２０をも含む。たとえば、現在のフレームのピッチラグを推定し、前のフレームのピッチラグ値を減算してピッチ周期差を得るように、タスクＥ２２０を構成することができる。そのような一例では、タスクＥ２２０は、ピッチ周期差を（現在のラグ推定値−前のラグ推定値＋７）として計算するように構成される。ピッチラグを推定するために、上述のピッチ周期推定タスクＥ１３０のインスタンス、以下で説明するラグ推定タスクＬ２００のインスタンス、または上記で参照した、そのセクションが一例として参照によりここに組み込まれる、ＥＶＲＣ文書Ｃ．Ｓ００１４−Ｃのセクション４．６．３（ｐｐ．４−４４〜４−４９）に記載されているプロシージャなど、任意の好適なピッチ推定技法を使用するように、タスクＥ２２０を構成することができる。前のフレームの非量子化ピッチラグ値が前のフレームの逆量子化ピッチラグ値と異なる場合、タスクＥ２２０は、現在のラグ推定値から逆量子化値を減算することによってピッチ周期差を計算することが望ましい。
【００５３】
符号化タスクＥ２００は、１／４レートＰＰＰ（ＱＰＰＰ）などの限定された時間同期性を有するコーディングスキームを使用して実装できる。ＱＰＰＰの実装は、「Ｅｎｈａｎｃｅｄ  Ｖａｒｉａｂｌｅ  Ｒａｔｅ  Ｃｏｄｅｃ，Ｓｐｅｅｃｈ  Ｓｅｒｖｉｃｅ  Ｏｐｔｉｏｎｓ  ３，６８，ａｎｄ  ７０  ｆｏｒ  Ｗｉｄｅｂａｎｄ  Ｓｐｒｅａｄ  Ｓｐｅｃｔｒｕｍ  Ｄｉｇｉｔａｌ  Ｓｙｓｔｅｍｓ」と題する第三世代パートナーシッププロジェクト２（Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ  ２：３ＧＰＰ２）文書Ｃ．Ｓ００１４−Ｃ、ｖ１．０のセクション４．２．４（ｐｐ．４−１０〜４−１７）および４．１２．２８（ｐｐ．４−１３２〜４−１３８）、２００７年１月（ｗｗｗ−ｄｏｔ−３ｇｐｐ−ｄｏｔ−ｏｒｇでオンライン入手可能）に記載されており、そのセクションは一例として参照によりここに組み込まれる。このコーディングスキームは、その帯域幅が周波数とともに増加する２１個の周波数ビンの不均一セットを使用してプロトタイプの周波数絶対値ベクトルを計算する。ＱＰＰＰを使用して生成された符号化フレームの４０ビットは、（図２６のテーブルに示すように）１つまたは複数のＬＳＰインデックスを搬送する１６ビットと、デルタラグ値を搬送する４ビットと、フレームの振幅情報を搬送する１８ビットと、モードを示す１ビットと、予約済みの１ビットとを含む。相対コーディングスキームのこの例は、パルス形状についてのビットも、位相情報についてのビットも含まない。
【００５４】
上記のように、タスクＥ１００において符号化されるフレームは、オンセットフレームとすることができ、タスクＥ２００において符号化されるフレームは、オンセットフレームの直後に続く連続する有声フレームの連続の１番目のフレームとすることができる。図５Ｂに、サブタスクＥ３００を含む方法Ｍ１００の実装Ｍ１１０のフローチャートを示す。タスクＥ３００は、第２のフレームの後に続く第３のフレームを符号化する。たとえば、第３のフレームは、オンセットフレームの直後に続く連続する有声フレームの連続の２番目のフレームとすることができる。符号化タスクＥ３００は、（たとえば、ＱＰＰＰ符号化のインスタンスとして）ここで説明されるタスクＥ２００の実装のインスタンスとして実装できる。そのような一例では、タスクＥ３００は、第３のフレームのピッチプロトタイプと第２のフレームのピッチプロトタイプとの間のピッチパルス形状差を計算するように構成された（たとえば、タスクＥ２１２の）タスクＥ２１０のインスタンスと、第３のフレームのピッチ周期と第２のフレームのピッチ周期との間のピッチ周期差を計算するように構成されたタスクＥ２２０のインスタンスとを含む。別のそのような例では、タスクＥ３００は、第３のフレームのピッチプロトタイプと第１のフレームの選択されたピッチパルス形状との間のピッチパルス形状差を計算するように構成された（たとえば、タスクＥ２１２の）タスクＥ２１０のインスタンスと、第３のフレームのピッチ周期と第１のフレームのピッチ周期との間のピッチ周期差を計算するように構成されたタスクＥ２２０のインスタンスとを含む。
【００５５】
図５Ｃに、サブタスクＴ１００を含む方法Ｍ１００の実装Ｍ１２０のフローチャートを示す。タスクＴ１００は、（立上り過渡またはオンセットフレームとも呼ばれる）無声音声から有声音声への遷移を含むフレームを検出する。（たとえば、コーディングスキームセレクタＣ２００に関して）以下で説明するＥＶＲＣ分類スキームに従ってフレーム分類を実行するようにタスクＴ１００を構成することができ、また、（たとえば、フレーム再分類器ＲＣ１０に関して以下で説明するように）フレームを再分類するようにタスクＴ１００を構成することができる。
【００５６】
図６Ａに、音声信号のフレームを符号化するように構成された装置ＭＦ１００のブロック図を示す。装置ＭＦ１００は、音声信号ＦＥ１００の第１のフレームを符号化するための手段と、音声信号ＦＥ２００の第２のフレームを符号化するための手段とを含み、第２のフレームは第１のフレームの後に続く。手段ＦＥ１００は、（たとえば、タスクＥ１１０の様々な実装に関して上記で説明したように）第１のフレームの少なくとも１つのピッチパルスからの情報に基づいて、時間領域ピッチパルス形状のセットのうちの１つを選択するための手段ＦＥ１１０を含む。手段ＦＥ１００は、（たとえば、タスクＥ１２０の様々な実装に関して上記で説明したように）第１のフレームの端末ピッチパルスの位置を計算するための手段ＦＥ１２０をも含む。手段ＦＥ１００は、（たとえば、タスクＥ１３０の様々な実装に関して上記で説明したように）第１のフレームのピッチ周期を推定するための手段ＦＥ１３０をも含む。図６Ｂに、（たとえば、タスクＥ１４０の様々な実装に関して上記で説明したように）第１のフレームの異なるピッチパルスに対応する利得値のセットを計算するための手段ＦＥ１４０をも含む手段ＦＥ１００の実装ＦＥ１０２のブロック図を示す。
【００５７】
手段ＦＥ２００は、（たとえば、タスクＥ２１０の様々な実装に関して上記で説明したように）第２のフレームのピッチパルス形状と、第１のフレームのピッチパルス形状との間のピッチパルス形状差を計算するための手段ＦＥ２１０を含む。手段ＦＥ２００は、（たとえば、タスクＥ２２０の様々な実装に関して上記で説明したように）第２のフレームのピッチ周期と、第１のフレームのピッチ周期との間のピッチ周期差を計算するための手段ＦＥ２２０をも含む。
【００５８】
図７Ａに、一般的構成による、音声信号の励振信号を復号する方法Ｍ２００のフローチャートを示す。方法Ｍ２００は、第１の励振信号を得るために第１の符号化フレームの部分を復号するタスクＤ１００を含み、その部分は時間領域ピッチパルス形状と、ピッチパルス位置と、ピッチ周期との表現を含む。タスクＤ１００は、ピッチパルス位置に従って第１の励振信号内に時間領域ピッチパルス形状の第１のコピーを構成するサブタスクＤ１１０を含む。タスクＤ１００は、ピッチパルス位置とピッチ周期とに従って第１の励振信号内に時間領域ピッチパルス形状の第２のコピーを構成するサブタスクＤ１２０をも含む。一例では、タスクＤ１１０とタスクＤ１２０とは、（たとえば、時間領域ピッチパルス形状を表す第１の符号化フレームからのインデックスに従って）コードブックから時間領域ピッチパルス形状を得て、それを励振信号バッファにコピーする。タスクＤ１００および／または方法Ｍ２００はまた、（たとえば、第１の符号化フレームから１つまたは複数の量子化ＬＳＰベクトルを逆量子化し、結果を逆変換することによって）第１の符号化フレームからＬＰＣ係数値のセットを得て、ＬＰＣ係数値のセットに従って合成フィルタを構成し、第１の復号フレームを得るために第１の励振信号を構成された合成フィルタに適用するタスクを含むように実装できる。
【００５９】
図７Ｂに、復号タスクＤ１００の実装Ｄ１０２のフローチャートを示す。この場合、第１の符号化フレームの部分は、利得値のセットの表現をも含む。タスクＤ１０２は、利得値のセットのうちの１つを時間領域ピッチパルス形状の第１のコピーに適用するサブタスクＤ１３０を含む。タスクＤ１０２は、利得値のセットのうちの異なる１つを時間領域ピッチパルス形状の第２のコピーに適用するサブタスクＤ１４０をも含む。一例では、タスクＤ１３０は、その利得値をタスクＤ１１０中での形状に適用し、タスクＤ１４０は、その利得値をタスクＤ１２０中での形状に適用する。別の例では、タスクＤ１１０が実行された後に、タスクＤ１３０は、その利得値を励振信号バッファの対応する部分に適用し、タスクＤ１２０が実行された後に、タスクＤ１４０は、その利得値を励振信号バッファの対応する部分に適用する。タスクＤ１０２を含む方法Ｍ２００の実装は、第１の復号フレームを得るために得られた利得調整された励振信号を構成された合成フィルタに適用するタスクを含むように構成できる。
【００６０】
方法Ｍ２００は、第２の励振信号を得るために第２の符号化フレームの部分を復号するタスクＤ２００をも含み、その部分はピッチパルス形状差とピッチ周期差との表現を含む。タスクＤ２００は、時間領域ピッチパルス形状とピッチパルス形状差とに基づいて第２のピッチパルス形状を計算するサブタスクＤ２１０を含む。タスクＤ２００は、ピッチ周期とピッチ周期差とに基づいて第２のピッチ周期を計算するサブタスクＤ２２０をも含む。タスクＤ２００は、ピッチパルス位置と第２のピッチ周期とに従って第２の励振信号内に第２のピッチパルス形状の２つ以上のコピーを構成するサブタスクＤ２３０をも含む。タスクＤ２３０は、ピッチパルス位置からの対応するオフセットとして第２の励振信号内のコピーの各々のための位置を計算することを含むことができ、各オフセットは、第２のピッチ周期の整数倍である。タスクＤ２００および／または方法Ｍ２００はまた、（たとえば、第２の符号化フレームから１つまたは複数の量子化ＬＳＰベクトルを逆量子化し、結果を逆変換することによって）第２の符号化フレームからＬＰＣ係数値のセットを得て、ＬＰＣ係数値のセットに従って合成フィルタを構成し、第２の復号フレームを得るために第２の励振信号を構成された合成フィルタに適用するタスクを含むように実装できる。
【００６１】
図８Ａに、音声信号の励振信号を復号するための装置ＭＦ２００のブロック図を示す。装置ＭＦ２００は、第１の励振信号を得るために第１の符号化フレームの部分を復号するための手段ＦＤ１００を含み、その部分は時間領域ピッチパルス形状と、ピッチパルス位置と、ピッチ周期との表現を含む。手段ＦＤ１００は、ピッチパルス位置に従って第１の励振信号内に時間領域ピッチパルス形状の第１のコピーを構成するための手段ＦＤ１１０を含む。手段ＦＤ１００は、ピッチパルス位置とピッチ周期とに従って第１の励振信号内に時間領域ピッチパルス形状の第２のコピーを構成するための手段ＦＤ１２０をも含む。一例では、手段ＦＤ１１０と手段ＦＤ１２０とは、（たとえば、時間領域ピッチパルス形状を表す第１の符号化フレームからのインデックスに従って）コードブックから時間領域ピッチパルス形状を得て、それを励振信号バッファにコピーするように構成される。手段ＦＤ２００および／または装置ＭＦ２００はまた、（たとえば、第１の符号化フレームから１つまたは複数の量子化ＬＳＰベクトルを逆量子化し、結果を逆変換することによって）第１の符号化フレームからＬＰＣ係数値のセットを得るための手段と、ＬＰＣ係数値のセットに従って合成フィルタを構成するための手段と、第１の復号フレームを得るために第１の励振信号を構成された合成フィルタに適用するための手段とを含むように実装できる。
【００６２】
図８Ｂに、復号するための手段ＦＤ１００の実装ＦＤ１０２のフローチャートを示す。この場合、第１の符号化フレームの部分は、利得値のセットの表現をも含む。手段ＦＤ１０２は、利得値のセットのうちの１つを時間領域ピッチパルス形状の第１のコピーに適用するための手段ＦＤ１３０を含む。手段ＦＤ１０２は、利得値のセットのうちの異なる１つを時間領域ピッチパルス形状の第２のコピーに適用するための手段ＦＤ１４０をも含む。一例では、手段ＦＤ１３０は、その利得値を手段ＦＤ１１０内での形状に適用し、手段ＦＤ１４０はその利得値を手段ＦＤ１２０内での形状に適用する。別の例では、手段ＦＤ１３０は、その利得値を、手段ＦＤ１１０が第１のコピーを構成した励振信号バッファの部分に適用し、手段ＦＤ１４０は、その利得値を、手段ＦＤ１２０が第２のコピーを構成した励振信号バッファの部分に適用する。手段ＦＤ１０２を含む装置ＭＦ２００の実装は、第１の復号フレームを得るために得られた利得調整された励振信号を構成された合成フィルタに適用するための手段を含むように構成できる。
【００６３】
装置ＭＦ２００は、第２の励振信号を得るために第２の符号化フレームの部分を復号するための手段ＦＤ２００をも含み、その部分はピッチパルス形状差とピッチ周期差との表現を含む。手段ＦＤ２００は、時間領域ピッチパルス形状とピッチパルス形状差とに基づいて第２のピッチパルス形状を計算するための手段ＦＤ２１０を含む。手段ＦＤ２００は、ピッチ周期とピッチ周期差とに基づいて第２のピッチ周期を計算するための手段ＦＤ２２０をも含む。手段ＦＤ２００は、ピッチパルス位置と第２のピッチ周期とに従って第２の励振信号内に第２のピッチパルス形状の２つ以上のコピーを構成するための手段ＦＤ２３０をも含む。手段ＦＤ２３０は、ピッチパルス位置からの対応するオフセットとして第２の励振信号内のコピーの各々のための位置を計算するように構成でき、各オフセットは、第２のピッチ周期の整数倍である。手段ＦＤ２００および／または装置ＭＦ２００はまた、（たとえば、第２の符号化フレームから１つまたは複数の量子化ＬＳＰベクトルを逆量子化し、結果を逆変換することによって）第２の符号化フレームからＬＰＣ係数値のセットを得るための手段と、ＬＰＣ係数値のセットに従って合成フィルタを構成するための手段と、第２の復号フレームを得るために第２の励振信号を構成された合成フィルタに適用するための手段とを含むように実装できる。
【００６４】
図９Ａに、（たとえば、フレームの連続として）デジタル化音声信号Ｓ１００を受信し、通信チャネルＣ１００（たとえば、ワイヤード、光、および／またはワイヤレス通信リンク）上で音声デコーダＡＤ１０に送信するための（たとえば、対応する符号化フレームの連続として）対応する符号化信号Ｓ２００を生成するように構成された音声エンコーダＡＥ１０を示す。音声デコーダＡＤ１０は、符号化音声信号Ｓ２００の受信したバージョンＳ３００を復号し、対応する出力音声信号Ｓ４００を合成するように構成される。音声エンコーダＡＥ１０は、装置ＭＦ１００のインスタンスを含み、および／または方法Ｍ１００の実装を実行するように実装できる。音声デコーダＡＤ１０は、装置ＭＦ２００のインスタンスを含み、および／または方法Ｍ２００の実装を実行するように実装できる。
【００６５】
上述のように、音声信号Ｓ１００は、パルス符号変調（ＰＣＭ）、圧伸μ−ｌａｗ、またはＡ−ｌａｗなど、当技術分野で知られている様々な方法のいずれかに従ってデジタル化および量子化された（たとえば、マイクロフォンによってキャプチャされる）アナログ信号を表す。信号は、雑音抑圧、知覚的重み付け、および／または他のフィルタ処理演算など、アナログおよび／またはデジタル領域における他の前処理演算をも受けることができる。追加または代替として、そのような演算は、音声エンコーダＡＥ１０内で実行できる。音声信号Ｓ１００のインスタンスは、デジタル化および量子化された（たとえば、マイクロフォンのアレイによってキャプチャされる）アナログ信号の組合せをも表すことができる。
【００６６】
図９Ｂに、デジタル化音声信号Ｓ１００の第１のインスタンスＳ１１０を受信し、通信チャネルＣ１００の第１のインスタンスＣ１１０上で音声デコーダＡＤ１０の第１のインスタンスＡＤ１０ａに送信するための符号化信号Ｓ２００の対応するインスタンスＳ２１０を生成するように構成された音声エンコーダＡＥ１０の第１のインスタンスＡＥ１０ａを示す。音声デコーダＡＤ１０ａは、符号化音声信号Ｓ２１０の受信したバージョンＳ３１０を復号し、出力音声信号Ｓ４００の対応するインスタンスＳ４１０を合成するように構成される。
【００６７】
図９Ｂに、デジタル化音声信号Ｓ１００の第２のインスタンスＳ１２０を受信し、通信チャネルＣ１００の第２のインスタンスＣ１２０上で音声デコーダＡＤ１０の第２のインスタンスＡＤ１０ｂに送信するための符号化信号Ｓ２００の対応するインスタンスＳ２２０を生成するように構成された音声エンコーダＡＥ１０の第２のインスタンスＡＥ１０ｂをも示す。音声デコーダＡＤ１０ｂは、符号化音声信号Ｓ２２０の受信したバージョンＳ３２０を復号し、出力音声信号Ｓ４００の対応するインスタンスＳ４２０を合成するように構成される。
【００６８】
音声エンコーダＡＥ１０ａおよび音声デコーダＡＤ１０ｂ（同様に、音声エンコーダＡＥ１０ｂおよび音声デコーダＡＤ１０ａ）は、たとえば、図１４に関して後述するユーザ端末、地上局、またはゲートウェイを含む、音声信号を送信および受信するための任意の通信デバイス中で一緒に使用できる。ここで説明されるように、音声エンコーダＡＥ１０は多くの異なる方法で実装でき、音声エンコーダＡＥ１０ａおよびＡＥ１０ｂは、音声エンコーダＡＥ１０の異なる実装のインスタンスとすることができる。同様に、音声デコーダＡＤ１０は多くの異なる方法で実装でき、音声デコーダＡＤ１０ａおよびＡＤ１０ｂは、音声デコーダＡＤ１０の異なる実装のインスタンスとすることができる。
【００６９】
図１０Ａに、音声信号の第１のフレームを第１の符号化フレームとして符号化するように構成された第１のフレームエンコーダ１００と、音声信号の第２のフレームを第２の符号化フレームとして符号化するように構成された第２のフレームエンコーダ２００とを含み、第２のフレームは第１のフレームの後に続く、一般的構成による音声信号Ａ１００のフレームを符号化するための装置のブロック図を示す。音声エンコーダＡＥ１０は、装置Ａ１００のインスタンスを含むように実装できる。第１のフレームエンコーダ１００は、（たとえば、タスクＥ１１０の様々な実装に関して上記で説明したように）第１のフレームの少なくとも１つのピッチパルスからの情報に基づいて、時間領域ピッチパルス形状のセットのうちの１つを選択するように構成されたピッチパルス形状セレクタ１１０を含む。エンコーダ１００は、（たとえば、タスクＥ１２０の様々な実装に関して上記で説明したように）第１のフレームの端末ピッチパルスの位置を計算するように構成されたピッチパルス位置計算器１２０をも含む。エンコーダ１００は、（たとえば、タスクＥ１３０の様々な実装に関して上記で説明したように）第１のフレームのピッチ周期を推定するように構成されたピッチ周期推定器１３０をも含む。エンコーダ１００を、テンプレートに準拠するパケットとして符号化フレームを生成するように構成することができる。たとえば、エンコーダ１００は、ここで説明されるパケットジェネレータ１７０および／または５７０のインスタンスを含むことができる。図１０Ｂに、（たとえば、タスクＥ１４０の様々な実装に関して上記で説明したように）第１のフレームの異なるピッチパルスに対応する利得値のセットを計算するように構成された利得値計算器１４０をも含むエンコーダ１００の実装１０２のブロック図を示す。
【００７０】
第２のフレームエンコーダ２００は、（たとえば、タスクＥ２１０の様々な実装に関して上記で説明したように）第２のフレームのピッチパルス形状と、第１のフレームのピッチパルス形状との間のピッチパルス形状差を計算するように構成されたピッチパルス形状差計算器２１０を含む。エンコーダ２００は、（たとえば、タスクＥ２２０の様々な実装に関して上記で説明したように）第２のフレームのピッチ周期と、第１のフレームのピッチ周期との間のピッチ周期差を計算するように構成されたピッチパルス差計算器２２０をも含む。
【００７１】
図１１Ａに、第１のフレームデコーダ３００と第２のフレームデコーダ４００とを含む一般的構成による、音声信号Ａ２００の励振信号を復号するための装置のブロック図を示す。デコーダ３００は、第１の励振信号を得るために第１の符号化フレームの部分を復号するように構成され、その部分は時間領域ピッチパルス形状と、ピッチパルス位置と、ピッチ周期との表現を含む。デコーダ３００は、ピッチパルス位置に従って第１の励振信号内に時間領域ピッチパルス形状の第１のコピーを構成するように構成された第１の励振信号発生器３１０を含む。励振発生器３１０はまた、ピッチパルス位置とピッチ周期とに従って第１の励振信号内に時間領域ピッチパルス形状の第２のコピーを構成するように構成される。たとえば、発生器３１０は、ここで説明されるタスクＤ１１０およびＤ１２０の実装を実行するように構成できる。この例では、デコーダ３００は、（たとえば、第１の符号化フレームから１つまたは複数の量子化ＬＳＰベクトルを逆量子化し、結果を逆変換することによって）第１の符号化フレームからデコーダ３００によって得られたＬＰＣ係数値のセットに従って構成され、第１の復号フレームを得るために励振信号をフィルタ処理するように構成された合成フィルタ３２０をも含む。
【００７２】
図１１Ｂに、第１の符号化フレームの部分が利得値のセットの表現をも含む場合、第１の乗算器３３０と第２の乗算器３４０とを含む第１の励振信号発生器３１０の実装３１２のブロック図を示す。第１の乗算器３３０は、利得値のセットのうちの１つを時間領域ピッチパルス形状の第１のコピーに適用するように構成される。たとえば、第１の乗算器３３０は、ここで説明されるタスクＤ１３０の実装を実行するように構成できる。第２の乗算器３４０は、利得値のセットのうちの異なる１つを時間領域ピッチパルス形状の第２のコピーに適用するように構成される。たとえば、第２の乗算器３４０は、ここで説明されるタスクＤ１４０の実装を実行するように構成できる。発生器３１２を含むデコーダ３００の実装では、合成フィルタ３２０は、第１の復号フレームを得るために得られた利得調整された励振信号をフィルタ処理するように構成できる。第１の乗算器３３０と第２の乗算器３４０とは、異なる時間に異なる構造を使用するか、または同じ構造を使用して実装できる。
【００７３】
第２のフレームデコーダ４００は、第２の励振信号を得るために第２の符号化フレームの部分を復号するように構成され、その部分はピッチパルス形状差とピッチ周期差との表現を含む。デコーダ４００は、ピッチパルス形状計算器４１０とピッチ周期計算器４２０とを含む第２の励振信号発生器４４０を含む。ピッチパルス形状計算器４１０は、時間領域ピッチパルス形状とピッチパルス形状差とに基づいて第２のピッチパルス形状を計算するように構成される。たとえば、ピッチパルス形状計算器４１０は、ここで説明されるタスクＤ２１０の実装を実行するように構成できる。ピッチ周期計算器４２０は、ピッチ周期とピッチ周期差とに基づいて第２のピッチ周期を計算するように構成される。たとえば、ピッチ周期計算器４２０は、ここで説明されるタスクＤ２２０の実装を実行するように構成できる。励振発生器４４０は、ピッチパルス位置と第２のピッチ周期とに従って第２の励振信号内に第２のピッチパルス形状の２つ以上のコピーを構成するように構成される。たとえば、発生器４４０は、ここで説明されるタスクＤ２３０の実装を実行するように構成できる。この例では、デコーダ４００は、（たとえば、第１の符号化フレームから１つまたは複数の量子化ＬＳＰベクトルを逆量子化し、結果を逆変換することによって）第１の符号化フレームからデコーダ４００によって得られたＬＰＣ係数値のセットに従って構成され、第２の復号フレームを得るために第２の励振信号をフィルタ処理するように構成された合成フィルタ４３０をも含む。合成フィルタ３２０と合成フィルタ４３０とは、異なる時間に異なる構造を使用するか、または同じ構造を使用して実装できる。音声デコーダＡＤ１０は、装置Ａ２００のインスタンスを含むように実装できる。
【００７４】
図１２Ａに、音声エンコーダＡＥ１０のマルチモード実装ＡＥ２０のブロック図を示す。エンコーダＡＥ２０は、第１のフレームエンコーダ１００の実装（たとえば、エンコーダ１０２）と、第２のフレームエンコーダ２００の実装と、無声フレームエンコーダＵＥ１０（たとえば、ＱＮＥＬＰエンコーダ）と、コーディングスキームセレクタＣ２００とを含む。コーディングスキームセレクタＣ２００は、セレクタ５０ａ、５０ｂを介してフレームごとにエンコーダ１００、２００、およびＵＥ１０のうちの適切な１つを選択するために（たとえば、後述する変更されたＥＶＲＣフレーム分類スキームに従って）音声信号Ｓ１００の着信フレームの特性を分析するように構成される。１／４レートＰＰＰ（ＱＰＰＰ）コーディングスキームを適用するために第２のフレームエンコーダ２００を実装し、１／４レートＮＥＬＰ（ＱＮＥＬＰ）コーディングスキームを適用するために無声フレームエンコーダＵＥ１０を実装することが望ましい。図１２Ｂに、第１のフレームデコーダ３００の実装（たとえば、デコーダ３０２）と、第２のフレームエンコーダ４００の実装と、無声フレームデコーダＵＤ１０（たとえば、ＱＮＥＬＰデコーダ）と、コーディングスキーム検出器Ｃ３００とを含む音声エンコーダＡＤ１０の類似したマルチモード実装ＡＤ２０のブロック図を示す。コーディングスキーム検出器Ｃ３００は、セレクタ９０ａ、９０ｂを介して符号化フレームごとにデコーダ３００、４００、およびＵＤ１０のうちの適切な対応する１つを選択するために（たとえば、第１および／または最後のビットなど符号化フレームの１つまたは複数のモードビットに従って）受信した符号化音声信号Ｓ３００の符号化フレームのフォーマットを判断するように構成される。
【００７５】
図１３に、音声エンコーダＡＥ１０の実装内に含めることができる残差発生器Ｒ１０のブロック図を示す。発生器Ｒ１０は、音声信号Ｓ１００の現在のフレームに基づいてＬＰＣ係数値のセットを計算するように構成されたＬＰＣ分析モジュールＲ１１０を含む。変換ブロックＲ１２０は、ＬＰＣ係数値のセットをＬＳＦのセットに変換するように構成され、量子化器Ｒ１３０は、（たとえば、１つまたは複数のコードブックインデックスとして）ＬＳＦを量子化してＬＰＣパラメータＳＬ１０を生成するように構成される。逆量子化器Ｒ１４０は、量子化されたＬＰＣパラメータＳＬ１０から復号されたＬＳＦのセットを得るように構成され、逆変換ブロックＲ１５０は、復号されたＬＳＦのセットから復号されたＬＰＣ係数値のセットを得るように構成される。復号されたＬＰＣ係数値のセットに従って構成された（分析フィルタとも呼ばれる）白色化フィルタＲ１６０は、音声信号Ｓ１００を処理して、ＬＰＣ残差ＳＲ１０を生成する。残差発生器Ｒ１０はまた、特定の適用例に好適であると考えられる他の設計に従ってＬＰＣ残差を発生するように実装できる。残差発生器Ｒ１０のインスタンスは、フレームエンコーダ１０４、２０４、およびＵＥ１０のうちのいずれか１つまたは複数内で実装でき、および／またはそれらの間で共有できる。
【００７６】
図１４に、衛星１０、地上局２０ａ、２０ｂ、およびユーザ端末３０ａ、３０ｂを含む衛星通信のためのシステムの概略図を示す。衛星１０は、場合によっては１つまたは複数の他の衛星を介して、地上局２０ａと２０ｂとの間、ユーザ端末３０ａと３０ｂとの間、または地上局とユーザ端末との間で半二重または全二重チャネル上でボイス通信を中継するように構成できる。ユーザ端末３０ａ、３０ｂの各々は、ワイヤレスモデムを備えた携帯電話またはポータブルコンピュータなどワイヤレス衛星通信のためのポータブルデバイス、地上または宇宙ビークル内に取り付けられた通信ユニット、あるいは衛星ボイス通信のための別のデバイスとすることができる。地上局２０ａ、２０ｂの各々は、それぞれのネットワーク４０ａ、４０ｂにボイス通信チャネルをルーティングするように構成され、ネットワーク４０ａ、４０ｂは、アナログまたはパルス符号変調（ｐｕｌｓｅ  ｃｏｄｅ  ｍｏｄｕｌａｔｉｏｎ：ＰＣＭ）ネットワーク（たとえば、公衆交換電話網つまりＰＳＴＮ）および／またはデータネットワーク（たとえば、インターネット、ローカルエリアネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）、キャンパスエリアネットワーク（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＣＡＮ）、メトロポリタンエリアネットワーク（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＭＡＮ）、ワイドエリアネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＡＮ）、リング型ネットワーク、スター型ネットワーク、および／またはトークンリングネットワーク）とすることができる。地上局２０ａ、２０ｂの一方または両方は、別の形態（たとえば、アナログ、ＰＣＭ、より高いビットレートコーディングスキームなど）におよび／またはそれからボイス通信信号をトランスコードするように構成されたゲートウェイをも含むことができる。ここで説明される方法のうちの１つまたは複数は、図１４に示すデバイス１０、２０ａ、２０ｂ、３０ａ、および３０ｂのうちのいずれか１つまたは複数によって実行でき、ここで説明される装置のうちの１つまたは複数は、そのようなデバイスのうちのいずれか１つまたは複数中に含めることができる。
【００７７】
ＰＷＩ符号化中に抽出されるプロトタイプの長さは一般に、フレームごとに変化することができるピッチラグの現在の値に等しい。したがって、デコーダに送信するためのプロトタイプを量子化することが、次元が可変であるベクトルを量子化するという問題を提示することがある。従来のＰＷＩおよびＰＰＰコーディングスキームでは、可変次元プロトタイプベクトルの量子化は、（たとえば、離散時間フーリエ変換（ｄｉｓｃｒｅｔｅ−ｔｉｍｅ  Ｆｏｕｒｉｅｒ  ｔｒａｎｓｆｏｒｍ：ＤＴＦＴ）演算を使用して）時間領域ベクトルを複素数値周波数領域ベクトルに変換することによって一般に実行される。そのような演算は、ピッチパルス形状差計算タスクＥ２１０に関して上記で説明した。次いで、この複素数値可変次元ベクトルの振幅をサンプリングして、固定次元のベクトルを得る。振幅ベクトルのサンプリングは不均一でもよい。たとえば、高周波よりも低周波でより高い分解能をもつベクトルをサンプリングすることが望ましい。
【００７８】
オンセットフレームの後に続く有声フレームの差分ＰＷＩ符号化を実行することが望ましい。フルレートＰＰＰコーディングモードでは、周波数領域ベクトルの位相を、振幅と同様にしてサンプリングして、固定次元ベクトルを得る。しかしながら、ＱＰＰＰコーディングモードでは、そのような位相情報をデコーダに搬送するために利用可能なビットがない。この場合、ピッチラグは、（たとえば、前のフレームのピッチラグに対して）差分的に符号化され、位相情報はまた、１つまたは複数の前のフレームからの情報に基づいて推定されなければならない。たとえば、遷移フレームコーディングモード（たとえば、タスクＥ１００）を使用してオンセットフレームを符号化するとき、後続のフレームのための位相情報はピッチラグとパルスロケーション情報とから導出できる。
【００７９】
オンセットフレームを符号化するために、フレーム内のすべてのピッチパルスを検出することが予想できるプロシージャを実行することが望ましい。たとえば、ロバストなピッチピーク検出演算の使用は、後続のフレームにより良いラグ推定値および／または位相基準を与えることが予想できる。後続のフレームが差分コーディングスキーム（たとえば、タスクＥ２００）などの相対コーディングスキームを使用して符号化される場合、そのようなスキームは一般に誤り伝搬を受けやすいので、確実な基準値が特に重要であることがある。上記のように、本明細書では、ピッチパルスの位置はそのピークの位置によって示されるが、別のコンテキストでは、ピッチパルスの位置は、その第１または最後のサンプルなど、パルスの別の特徴の位置によって同等に示すことができる。
【００８０】
図１５Ａに、タスクＬ１００と、Ｌ２００と、Ｌ３００とを含む一般的構成による方法Ｍ３００のフローチャートを示す。タスクＬ１００は、フレームの端末ピッチピークの位置を特定する。特定の実装では、タスクＬ１００は、（Ａ）サンプル振幅に基づく量と（Ｂ）フレームの量の平均との間の関係に従って、サンプルを端末ピッチピークとして選択するように構成される。１つのそのような例では、量はサンプルの大きさ（ｓａｍｐｌｅ  ｍａｇｎｉｔｕｄｅ）（すなわち、絶対値（ａｂｓｏｌｕｔｅ  ｖａｌｕｅ））であり、この場合、フレーム平均は次のように計算できる。
【数１】
0005248681.tif 000002
【００８１】
式中、ｓはサンプル値（すなわち、振幅）を示し、Ｎはフレーム中のサンプルの数を示し、ｉはサンプルインデックスである。別のそのような例では、量はサンプルエネルギー（すなわち、振幅２乗）であり、この場合、フレーム平均は次のように計算できる。
【数２】
0005248681.tif 000003
【００８２】
以下の説明では、エネルギーが使用される。
【００８３】
タスクＬ１００を、フレームの初期ピッチピークとして、またはフレームの最終ピッチピークとして端末ピッチピークの位置を特定するように構成することができる。初期ピッチピークの位置を特定するために、タスクＬ１００を、フレームの第１のサンプルにおいて開始し、時間的に前方に動作するように構成することができる。最終ピッチピークの位置を特定するために、タスクＬ１００を、フレームの最後のサンプルにおいて開始し、時間的に後方に動作するように構成することができる。後述する特定の例では、タスクＬ１００を、フレームの最終ピッチピークとして端末ピッチピークの位置を特定するように構成する。
【００８４】
図１５Ｂに、サブタスクＬ１１０と、Ｌ１２０と、Ｌ１３０とを含むタスクＬ１００の実装Ｌ１０２のブロック図を示す。タスクＬ１１０は、端末ピッチピークとして適格であるフレーム中の最後のサンプルの位置を特定する。この例では、タスクＬ１１０は、フレーム平均に対するエネルギーが対応するしきい値ＴＨ１を超える（代替的に、しきい値以上である）最後のサンプルの位置を特定する。一例では、ＴＨ１の値は６である。フレーム中にそのようなサンプルが発見されない場合、方法Ｍ３００は終了され、別のコーディングモード（たとえば、ＱＰＰＰ）がそのフレームに使用される。他の場合は、タスクＬ１２０は、（図１６Ａに示すように）このサンプルより前にウィンドウ内を探索して最も大きい振幅を有するサンプルを発見し、このサンプルを仮ピーク候補として選択する。タスクＬ１２０における探索ウィンドウが、最小許容ラグ値に等しい幅ＷＬ１を有することが望ましい。一例では、ＷＬ１の値は２０サンプルである。探索ウィンドウ中の２つ以上のサンプルが最も大きい振幅を有する場合、タスクＬ１２０は、第１のそのようなサンプル、最後のそのようなサンプル、または他のそのようなサンプルを選択するように様々に構成できる。
【００８５】
タスクＬ１３０は、（図１６Ｂに示すように）仮ピーク候補より前にウィンドウ内で最も大きい振幅を有するサンプルを発見することによって、最終ピッチピーク選択を検証する。タスクＬ１３０における探索ウィンドウが、初期ラグ推定値の５０％と１００％との間、または５０％と７５％との間である幅ＷＬ２を有することが望ましい。初期ラグ推定値は、（すなわち、前のフレームから）最も最近のラグ推定値に一般に等しい。一例では、ＷＬ２の値は、初期ラグ推定値の５／８に等しい。新しいサンプルの振幅が仮ピーク候補の振幅よりも大きい場合、タスクＬ１３０は、新しいサンプルを最終ピッチピークとして代わりに選択する。別の実装では、新しいサンプルの振幅が仮ピーク候補の振幅よりも大きい場合、タスクＬ１３０は、新しいサンプルを新しい仮ピーク候補として選択し、そのようなサンプルが発見されなくなるまで、新しい仮ピーク候補より前に幅ＷＬ２のウィンドウ内の探索を繰り返す。
【００８６】
タスクＬ２００は、フレームのための推定されたラグ値を計算する。タスクＬ２００は、端末ピッチピークに隣接しているピッチパルスのピークの位置を特定し、これらの２つのピーク間の距離としてラグ推定値を計算するように一般に構成される。フレーム境界内のみを探索する、および／または端末ピッチピークと隣接するピッチピークとの間の距離が最小許容ラグ値（たとえば、２０サンプル）よりも大きい（代替的に、最小許容ラグ値以上である）ことを必要とするようにタスクＬ２００を構成することが望ましい。
【００８７】
初期ラグ推定値を使用して、隣接するピークを発見するようにタスクＬ２００を構成することが望ましい。ただし、最初に、タスクＬ２００が、（ピッチ３倍および／またはピッチ４倍誤差を含むことができる）ピッチ２倍誤差について初期ラグ推定値を検査することが望ましい。一般に、初期ラグ推定値は、相関ベースの方法を使用して判断されている。ピッチ２倍誤差は、ピッチ推定の相関ベースの方法に共通であり、一般にかなり可聴である。図１５Ｃに、タスクＬ２００の実装Ｌ２０２のフローチャートを示す。タスクＬ２０２は、ピッチ２倍誤差について初期ラグ推定値を検査する、随意であるが推奨されるサブタスクＬ２１０を含む。タスクＬ２１０は、端末ピッチピークから、たとえば１／２、１／３、および１／４ラグの距離の狭いウィンドウ内でピッチピークを探索するように構成され、以下で説明するように反復することができる。
【００８８】
図１７Ａに、サブタスクＬ２１２と、Ｌ２１４と、Ｌ２１６とを含むタスクＬ２１０の実装Ｌ２１０ａのフローチャートを示す。検査すべき最小ピッチ分数（たとえば、ｌａｇ／４）の場合、タスクＬ２１２は、（たとえば、振幅、絶対値、またはエネルギーに関して）最大値を有するサンプルを発見するために、中心が、ピッチ分数に実質的に等しい距離（たとえば、打ち切りまたは丸め誤差内）だけ端末ピッチピークからオフセットされる小さいウィンドウ（たとえば、５サンプル）内で探索する。図１８Ａに、そのような動作を示す。
【００８９】
タスクＴ２１４は、最大値サンプル（すなわち、「候補」）の１つまたは複数の特徴を評価し、これらの値をそれぞれのしきい値と比較する。評価された特徴は、候補のサンプルエネルギー、平均フレームエネルギーに対する候補エネルギーの比（たとえば、ピーク対ＲＭＳエネルギー）、および／または端末ピークエネルギーに対する候補エネルギーの比を含むことができる。タスクＬ２１４を、任意の順序でそのような評価を実行するように構成することができ、評価は互いに直列および／または並列に実行できる。
【００９０】
タスクＬ２１４が、候補の近傍を端末ピッチピークの同様の近傍と相関させることが望ましい。この特徴評価の場合、タスクＬ２１４は、候補を中心とする長さＮ１サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように一般に構成される。一例では、Ｎ１の値は１７サンプルに等しい。（たとえば、０から１までの範囲内の結果を有する）正規化相関を実行するようにタスクＬ２１４を構成することが望ましい。（たとえば、タイミングオフセットおよび／またはサンプリング誤差をなくすために）たとえば、候補の前および後の１サンプルを中心とする長さＮ１の区間について相関を繰り返し、最大相関結果を選択するようにタスクＬ２１４を構成することが望ましい。相関ウィンドウがフレーム境界を越えて延びる場合、相関ウィンドウをシフトまたは打ち切ることが望ましい。（相関ウィンドウが打ち切られる場合、すでに正規化されているのでなければ、相関結果を正規化することが望ましい。）一例では、しきい値Ｔが６に等しいとすることができる、図１９Ａ中の列として示される条件の３つのセットのいずれかが満たされる場合、候補は隣接するピッチピークとして受け付けられる。
【００９１】
タスクＴ２１４が隣接するピッチピークを発見した場合、タスクＬ２１６は、端末ピッチピークと隣接するピッチピークとの間の距離として現在のラグ推定値を計算する。他の場合は、タスクＬ２１０ａは、（図１８Ｂに示すように）端末ピークの反対側に反復し、次いで、（図１８Ｃ〜図１８Ｆに示すように）隣接するピッチピークが発見されるまで、最小から最大まで、検査すべき他のピッチ分数について端末ピークの両側間で交互に行う。端末ピッチピークと、最も近接したフレーム境界との間で隣接するピッチピークが発見された場合、その端末ピッチピークは隣接するピッチピークとして再標示され、その新しいピークは端末ピッチピークとして標示される。代替実装では、タスクＬ２１０は、立上り側の前に端末ピッチピークの立下り側（すなわち、タスクＬ１００においてすでに探索された側）を探索するように構成される。
【００９２】
分数ラグテストタスクＬ２１０がピッチピークの位置を特定しなかった場合、タスクＬ２２０は、（たとえば、初期ラグ推定値だけ端末ピーク位置からオフセットされるウィンドウ内で）初期ラグ推定値に従って端末ピッチピークに隣接するピッチピークを探索する。図１７Ｂに、サブタスクＬ２２２と、Ｌ２２４と、Ｌ２２６と、Ｌ２２８とを含むタスクＬ２２０の実装Ｌ２２０ａのフローチャートを示す。タスクＬ２２２は、（白丸が端末ピッチピークを示す図１９Ｂに示すように）最終ピークの左側に１つのラグの距離を中心とする幅ＷＬ３のウィンドウ内で候補（たとえば、振幅または絶対値に関して最大値を有するサンプル）を発見する。一例では、ＷＬ３の値は初期ラグ推定値の０．５５倍に等しい。タスクＬ２２４は候補サンプルのエネルギーを評価する。たとえば、タスクＬ２２４を、候補のエネルギーの測度（たとえば、ピーク対ＲＭＳエネルギーなど、フレーム平均エネルギーに対するサンプルエネルギーの比）が対応するしきい値ＴＨ３よりも大きい（代替的に、しきい値以上）かどうかを判断するように構成することができる。ＴＨ３の例示的な値は、１、１．５、３、および６を含む。
【００９３】
タスクＬ２２６は、候補の近傍を端末ピッチピークの同様の近傍と相関させる。タスクＬ２２６は、候補を中心とする長さＮ２サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように一般に構成される。Ｎ２の値の例は、１０、１１、および１７サンプルを含む。正規化相関を実行するようにタスクＬ２２６を構成することが望ましい。（たとえば、タイミングオフセットおよび／またはサンプリング誤差をなくすために）たとえば、候補の前および後の１サンプルを中心とする区間について相関を繰り返し、最大相関結果を選択するようにタスクＬ２２６を構成することが望ましい。相関ウィンドウがフレーム境界を越えて延びる場合、相関ウィンドウをシフトまたは打ち切ることが望ましい。（相関ウィンドウが打ち切られる場合、すでに正規化されているのでなければ、相関結果を正規化することが望ましい。）タスクＬ２２６はまた、相関結果が対応するしきい値ＴＨ４よりも大きい（代替的に、しきい値以上）かどうかを判断する。ＴＨ４の例示的な値は、０．７５、０．６５、および０．４５を含む。タスクＬ２２４およびタスクＬ２２６のテストを、ＴＨ３およびＴＨ４の値の異なるセットに従って組み合わせることができる。そのような一例では、値のセット、すなわちＴＨ３＝１およびＴＨ４＝０．７５、ＴＨ３＝１．５およびＴＨ４＝０．６５、ＴＨ３＝３およびＴＨ４＝０．４５、ＴＨ３＝６（この場合、タスクＬ２２６の結果は正とみなされる）のいずれかが正の結果を生成する場合、Ｌ２２４およびＬ２２６の結果は正である。
【００９４】
タスクＬ２２４およびＬ２２６の結果が正の場合、候補は、隣接するピッチピークとして受け付けられ、タスクＴ２２８は、このサンプルと端末ピッチピークとの間の距離として現在のラグ推定値を計算する。タスクＬ２２４およびＬ２２６は、いずれかの順序でおよび／または互いに並列に実行することができる。タスクＬ２２０はまた、タスクＬ２２４およびタスクＬ２２６のうちの１つのみを含むように実装できる。タスクＬ２２０が隣接するピッチピークを発見することなしに終わる場合、（白丸が端末ピッチピークを示す、図１９Ｃに示すように）端末ピッチピークの立下り側でタスクＬ２２０を反復することが望ましい。
【００９５】
タスクＬ２１０およびＬ２２０のいずれもピッチピークの位置を特定しなかった場合、タスクＬ２３０は、端末ピッチピークの立上り側でピッチピークのオープンウィンドウ探索を実行する。図１７Ｃに、サブタスクＬ２３２と、Ｌ２３４と、Ｌ２３６と、Ｌ２３８とを含むタスクＬ２３０の実装Ｌ２３０ａのフローチャートを示す。端末ピッチピークから離れた例示的なある距離Ｄ１において開始し、タスクＬ２３２は、平均フレームエネルギーに対するエネルギーがしきい値（たとえば、ＴＨ１）を超える（代替的に、しきい値以下である）サンプルを発見する。図２０Ａに、そのような動作を示す。一例では、Ｄ１の値は、２０サンプルなど、最小許容ラグ値である。タスクＬ２３４は、（図２０Ｂに示すように）このサンプルの幅ＷＬ４のウィンドウ内で候補（たとえば、振幅または絶対値に関して最大値を有するサンプル）を発見する。一例では、ＷＬ４の値は２０サンプルに等しい。
【００９６】
タスクＬ２３６は、候補の近傍を端末ピッチピークの同様の近傍と相関させる。タスクＬ２３６は、候補を中心とする長さＮ３サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように一般に構成される。一例では、Ｎ３の値は１１サンプルに等しい。正規化相関を実行するようにタスクＬ３２６を構成することが望ましい。（たとえば、タイミングオフセットおよび／またはサンプリング誤差をなくすために）たとえば、候補の前および後の１サンプルを中心とする区間について相関を繰り返し、最大相関結果を選択するようにタスクＬ３２６を構成することが望ましい。相関ウィンドウがフレーム境界を越えて延びる場合、相関ウィンドウをシフトまたは打ち切ることが望ましい。（相関ウィンドウが打ち切られる場合、すでに正規化されているのでなければ、相関結果を正規化することが望ましい。）タスクＴ３２６は、相関結果がしきい値ＴＨ５を超える（代替的に、しきい値以上である）かどうかを判断する。一例では、ＴＨ５の値は０．４５に等しい。タスクＬ２３６の結果が正の場合、候補は、隣接するピッチピークとして受け付けられ、タスクＴ２３８は、このサンプルと端末ピッチピークとの間の距離として現在のラグ推定値を計算する。他の場合は、タスクＬ２３０ａは、ピッチピークを発見するか、または探索し尽くすまで、（たとえば、図２０Ｃに示すように、前の探索ウィンドウの左側で開始する）フレームにわたって反復する。
【００９７】
ラグ推定タスクＬ２００が終わったとき、タスクＬ３００は、フレーム中の他のピッチパルスの位置を特定することを実行する。タスクＬ３００は、相関および現在のラグ推定値を使用してより多くのパルスの位置を特定するように実装できる。たとえば、タスクＬ３００を、相関およびサンプル対ＲＭＳエネルギー値などの基準を使用して、ラグ推定値の周りの狭いウィンドウ内で最大値サンプルをテストするように構成することができる。ラグ推定タスクＬ２００に比較して、特に端末ピッチピークに隣接するピークがすでに発見された場合、タスクＬ３００を、より小さい探索ウィンドウおよび／または緩和基準（たとえば、より低いしきい値）を使用するように構成することができる。たとえば、オンセットまたは他の遷移フレームでは、パルス形状は、フレーム内のいくつかのパルスが強相関されないように変化することができ、パルスの振幅が十分に高く、（たとえば、現在のラグ値に従って）ロケーションが補正されている限り、第２のパルスの後のパルスの相関基準を緩和するか、さらには無視することが望ましい。有効なパルスを消失する確率を最小限に抑えることが望ましく、特に大きいラグ値について、フレームの有声部分は極めて尖っていなくてもよい。一例では、方法Ｍ３００は、フレーム当たり最高８つのピッチパルスを可能にする。
【００９８】
タスクＬ３００は、次のピッチピークのための２つ以上の異なる候補を計算し、これらの候補のうちの１つに従ってピッチピークを選択するように実装できる。たとえば、タスクＬ３００を、サンプル値に基づいて候補サンプルを選択し、相関結果に基づいて候補距離を計算するように構成することができる。図２１に、サブタスクＬ３１０と、Ｌ３２０と、Ｌ３３０と、Ｌ３４０と、Ｌ３５０とを含むタスクＬ３００の実装Ｌ３０２のフローチャートを示す。タスクＬ３１０は、候補探索のためのアンカー位置を初期化する。たとえば、最も最近受け付けられたピッチピークの位置を初期アンカー位置として使用するように、タスクＬ３１０を構成することができる。タスクＬ３０２の第１の反復では、たとえば、アンカー位置は、タスクＬ２００によって端末ピッチピークに隣接したピッチピークの位置が特定された場合、そのようなピークの位置、または他の場合は端末ピッチピークの位置とすることができる。また、タスクＬ３１０が、（たとえば、１の値に）ラグ乗数ｍを初期化することが望ましい。
【００９９】
タスクＬ３２０は、候補サンプルを選択し、候補距離を計算する。タスクＬ３２０を、図２２Ａに示すウィンドウ内でこれらの候補を探索するように構成することができ、図２２Ａでは、大きい有界な横線が現在のフレームを示し、左側の大きい垂直線はフレーム始端を示し、右側の大きい垂直線はフレーム終端を示し、ドットはアンカー位置を示し、影つき枠は探索ウィンドウを示す。この例では、ウィンドウは、アンカー位置からの距離が現在のラグ推定値とラグ乗数ｍの積であるサンプルを中心とし、ウィンドウは、左側（すなわち、時間的に後方）にＷＳサンプル、右側（すなわち、時間的に前方）に（ＷＳ−１）サンプル延びる。
【０１００】
ウィンドウサイズパラメータＷＳを、現在のラグ推定値の１／５の値に初期化するように、タスクＬ３２０を構成することができる。ウィンドウサイズパラメータＷＳが、１２サンプルなど少なくとも最小値を有することが望ましい。代替的に、端末ピッチピークに隣接したピッチピークがまだ発見されていない場合、タスクＬ３２０が、ウィンドウサイズパラメータＷＳを現在のラグ推定値の１／２など、場合によってはより大きい値に初期化することが望ましい。
【０１０１】
候補サンプルを発見するために、タスクＬ３２０は、ウィンドウを探索して最大値を有するサンプルを発見し、このサンプルのロケーションおよび値を記録する。タスクＬ３２０を、値が探索ウィンドウ内で最も高い振幅を有するサンプルを選択するように構成することができる。代替的に、タスクＬ３２０を、探索ウィンドウ内で、値が最も大きい絶対値または最も高いエネルギーを有するサンプルを選択するように構成することができる。
【０１０２】
候補距離は、アンカー位置との相関が最も高い探索ウィンドウ内のサンプルに対応する。このサンプルを発見するために、タスクＬ３２０は、ウィンドウ中の各サンプルの近傍をアンカー位置の同様の近傍と相関させ、最大相関結果と対応する距離とを記録する。タスクＬ３２０は、各テストサンプルを中心とする長さＮ４サンプルの区間を、アンカー位置を中心とする等しい長さの区間と相関させるように一般に構成される。一例では、Ｎ４の値は１１サンプルである。タスクＬ３２０が正規化相関を実行することが望ましい。
【０１０３】
上述のように、タスクＴ３２０を、同じ探索ウィンドウを使用して、候補サンプルと候補距離とを発見するように構成することができる。ただし、タスクＴ３２０を、これらの２つの動作について異なる探索ウィンドウを使用するように構成することもできる。図２２Ｂに、タスクＬ３２０が、サイズパラメータＷＳ１を有するウィンドウにわたって候補サンプルの探索を実行する一例を示し、図２２Ｃに、タスクＬ３２０の同じインスタンスが、異なる値のサイズパラメータＷＳ２を有するウィンドウにわたって候補距離の探索を実行する一例を示す。
【０１０４】
タスクＬ３０２は、候補サンプルと、候補距離に対応するサンプルとのうちの１つをピッチピークとして選択するサブタスクＬ３３０を含む。図２３に、サブタスクＬ３３４と、Ｌ３３６と、Ｌ３３８とを含むタスクＬ３３０の実装Ｌ３３２のフローチャートを示す。
【０１０５】
タスクＬ３３４は、候補距離をテストする。タスクＬ３３４は、相関結果をしきい値と比較するように一般に構成される。また、タスクＬ３３４が、対応するサンプルのエネルギーに基づく測度（たとえば、フレーム平均エネルギーに対するサンプルエネルギーの比）をしきい値と比較することが望ましい。ただ１つのピッチパルスが識別された場合、タスクＬ３３４を、候補距離が少なくとも最小値（たとえば、２０サンプルなどの最小許容ラグ値）に等しいことを検証するように構成することができる。図２４Ａのテーブルの列は、候補距離に対応するサンプルをピッチピークとして受け付けるべきかどうかを判断するためにタスクＬ３３４の実装によって使用できるそのようなパラメータの値に基づく、テスト条件の４つの異なるセットを示す。
【０１０６】
タスクＬ３３４が候補距離に対応するサンプルをピッチピークとして受け付けた場合、そのサンプルの振幅がより高い（代替的に、絶対値がより大きい）場合にピークロケーションを（たとえば、１サンプルだけ）左側または右側に調整することが望ましい。代替または追加として、そのような場合、タスクＬ３３４が、タスクＬ３００のさらなる反復のために、ウィンドウサイズパラメータＷＳの値をより小さい値（たとえば、１０サンプル）に設定する（またはパラメータＷＳ１およびＷＳ２のうちの一方または両方をそのような値に設定する）ことが望ましい。また、新しいピッチピークがフレームについて確認された第２のピッチピークのみである場合、タスクＬ３３４が、アンカー位置とピークロケーションとの間の距離として現在のラグ推定値を計算することが望ましい。
【０１０７】
タスクＬ３０２は、候補サンプルをテストするサブタスクＬ３３６を含む。タスクＬ３３６を、サンプルエネルギーの測度（たとえば、フレーム平均エネルギーに対するサンプルエネルギーの比）がしきい値を超える（代替的に、しきい値以上である）かどうかを判断するように構成することができる。フレームについていくつのピッチピークが確認されたかに応じて、しきい値を変更することが望ましい。たとえば、フレームについてただ１つのピッチピークが確認された場合、タスクＬ３３６が、より低いしきい値（たとえば、Ｔ−３）を使用し、フレームについて２つ以上のピッチピークがすでに確認されている場合、より高いしきい値（たとえば、Ｔ）を使用することが望ましい。
【０１０８】
また、タスクＬ３３６が、候補サンプルを第２の確認されたピッチピークとして選択した場合、タスクＬ３３６が、端末ピッチピークとの相関の結果に基づいて、ピークロケーションを（たとえば、１サンプルだけ）左側または右側に調整することが望ましい。そのような場合、タスクＬ３３６を、各そのようなサンプルを中心とする長さＮ５サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように構成することができる（一例では、Ｎ５の値は１１サンプルである）。代替または追加として、そのような場合、タスクＬ３３６が、タスクＬ３００のさらなる反復のために、ウィンドウサイズパラメータＷＳの値をより小さい値（たとえば、１０サンプル）に設定する（またはパラメータＷＳ１およびＷＳ２のうちの一方または両方をそのような値に設定する）ことが望ましい。
【０１０９】
テストタスクＬ３３４とテストタスクＬ３３６の両方が不合格になった、およびフレームについてただ１つのピッチピークが確認された場合、タスクＬ３０２を、（タスクＬ３５０を介して）ラグ推定値乗数ｍの値を増分し、ｍの新しい値でタスクＬ３２０を反復して、新しい候補サンプルと新しい候補距離とを選択し、新しい候補についてタスクＬ３３２を繰り返すように構成することができる。
【０１１０】
図２３に示すように、タスクＬ３３６を、候補距離テストタスクＬ３３４の不合格のときに実行するように構成することができる。タスクＴ３３２の別の実装では、候補距離テストタスクＬ３３４がタスクＬ３３６の不合格のときにのみ実行するように、候補サンプルテストタスクＬ３３６を最初に実行するように構成することができる。
【０１１１】
タスクＬ３３２は、サブタスクＬ３３８をも含む。テストタスクＬ３３４とテストタスクＬ３３６の両方が不合格になった、およびフレームについて２つ以上のピッチピークがすでに確認されている場合、タスクＬ３３８は、候補の一方または両方の、現在のラグ推定値との一致をテストする。
【０１１２】
図２４Ｂに、タスクＬ３３８の実装Ｌ３３８ａのフローチャートを示す。タスクＬ３３８ａは、候補距離をテストするサブタスクＬ３６２を含む。候補距離と現在のラグ推定値との間の絶対差がしきい値未満（代替的に、しきい値以下）である場合、タスクＬ３６２は候補距離を受け付ける。一例では、しきい値は３サンプルである。また、タスクＬ３６２が、相関結果および／または対応するサンプルのエネルギーが受付け可能な程度に高いことを検証することが望ましい。そのような一例では、相関結果が０．３５以上であり、フレーム平均エネルギーに対するサンプルエネルギーの比が０．５以上である場合、タスクＬ３６２は、しきい値未満（代替的に、しきい値以下）である候補距離を受け付ける。また、タスクＬ３６２が候補距離を受け付けた場合、そのサンプルの振幅がより高い（代替的に、絶対値がより大きい）場合にタスクＬ３６２がピークロケーションを（たとえば、１サンプルだけ）左側または右側に調整することが望ましい。
【０１１３】
タスクＬ３３８ａはまた、候補サンプルのラグ一致をテストするサブタスクＬ３６４を含む。（Ａ）候補サンプルと最も近接したピッチピークとの間の距離と（Ｂ）現在のラグ推定値との間の絶対差がしきい値未満（代替的に、しきい値以下）である場合、タスクＬ３６４は候補サンプルを受け付ける。一例では、しきい値は、２サンプルなどの低い値である。また、タスクＬ３６４が、候補サンプルのエネルギーが受付け可能な程度に高いことを検証することが望ましい。そのような一例では、候補サンプルがラグ一致テストに合格した場合、およびフレーム平均エネルギーに対するサンプルエネルギーの比が（Ｔ−５）以上である場合、タスクＬ３６４は、その候補サンプルを受け付ける。
【０１１４】
図２４Ｂに示すタスクＬ３３８ａの実装はまた、タスクＬ３６４の低いしきい値よりもゆるい限界に対して候補サンプルのラグ一致をテストする別のサブタスクＬ３６６を含む。（Ａ）候補サンプルと最も近接した確認されたピークとの間の距離と（Ｂ）現在のラグ推定値との間の絶対差がしきい値未満（代替的に、しきい値以下）である場合、タスクＬ３６６は候補サンプルを受け付ける。一例では、しきい値は（０．１７５＊ラグ）である。また、タスクＬ３６６が、候補サンプルのエネルギーが受付け可能な程度に高いことを検証することが望ましい。そのような一例では、フレーム平均エネルギーに対するサンプルエネルギーの比が（Ｔ−３）以上である場合、タスクＬ３６６は候補サンプルを受け付ける。
【０１１５】
候補サンプルと候補距離の両方がすべてのテストに不合格になった場合、タスクＴ３０２は、（タスクＴ３５０を介して）ラグ推定値乗数ｍを増分し、新しい候補サンプルと新しい候補距離とを選択するために新しい値ｍにおいてタスクＬ３２０を反復し、フレーム境界に到達するまで、新しい候補に対してタスクＬ３３０を繰り返す。新しいピッチピークが確認されると、フレーム境界に到達するまで、同じ方向に別のピークを探索することが望ましい。この場合、タスクＬ３４０は、アンカー位置を新しいピッチピークに移動し、ラグ推定値乗数ｍの値を１にリセットする。フレーム境界に到達したとき、アンカー位置を端末ピッチピーク位置に初期化し、タスクＬ３００を反対方向に繰り返すことが望ましい。
【０１１６】
１つのフレームから次のフレームへのラグ推定値の大きい低減は、ピッチオーバーフローエラーを示すことがある。そのようなエラーは、現在のフレームのラグ値が最大許容ラグ値を超えるように、ピッチ周波数の降下によって引き起こされる。方法Ｍ３００は、（たとえば、新しいラグ推定値を計算するとき、または方法の終了時に）前のラグ推定値と現在のラグ推定値との間の絶対差または相対差をしきい値と比較し、エラーが検出された場合、フレームの最も大きいピッチピークのみを保持することが望ましい。一例では、しきい値は、前のラグ推定値の５０％に等しい。
【０１１７】
大きい絶対値２乗比をもつ２つのパルスを有する過渡として分類されるフレーム（たとえば、一般にワードの終端に向かって、大きいピッチ変化を有するフレーム）の場合、より小さいピークをピッチピークとして受け付ける前に、ごく小さいウィンドウにわたってではなく、現在のラグ推定値全体にわたって相関することが望ましい。そのような場合は、小さいウィンドウにわたってメインピークとよく相関する２次ピークを一般に有する男性ボイスの場合に発生する。タスクＬ２００とＬ３００の一方または両方を、そのような動作を含むように実装することができる。
【０１１８】
方法Ｍ３００のラグ推定タスクＬ２００は、方法Ｍ１００のラグ推定タスクＥ１３０と同じタスクとすることができることに明確に留意されたい。方法Ｍ３００の端末ピッチピークロケーションタスクＬ１００は、方法Ｍ１００の端末ピッチピーク位置計算タスクＥ１２０と同じタスクとすることができることに明確に留意されたい。方法Ｍ１００とＭ３００の両方が実行される適用例の場合、ピッチパルス形状選択タスクＥ１１０を方法Ｍ３００の終結時に実行するように構成することが望ましい。
【０１１９】
図２７Ａに、音声信号のフレームのピッチピークを検出するように構成された装置ＭＦ３００のブロック図を示す。装置ＭＦ３００は、（たとえば、タスクＬ１００の様々な実装に関して上記で説明したように）フレームの端末ピッチピークの位置を特定するための手段ＭＬ１００を含む。装置ＭＦ３００は、（たとえば、タスクＬ２００の様々な実装に関して上記で説明したように）フレームのピッチラグを推定するための手段ＭＬ２００を含む。装置ＭＦ３００は、（たとえば、タスクＬ３００の様々な実装に関して上記で説明したように）フレームの追加のピッチピークの位置を特定するための手段ＭＬ３００を含む。
【０１２０】
図２７Ｂに、音声信号のフレームのピッチピークを検出するように構成された装置Ａ３００のブロック図を示す。装置Ａ３００は、（たとえば、タスクＬ１００の様々な実装に関して上記で説明したように）フレームの端末ピッチピークの位置を特定するように構成された端末ピッチピークロケータＡ３１０を含む。装置Ａ３００は、（たとえば、タスクＬ２００の様々な実装に関して上記で説明したように）フレームのピッチラグを推定するように構成されたピッチラグ推定器Ａ３２０を含む。装置Ａ３００は、（たとえば、タスクＬ３００の様々な実装に関して上記で説明したように）フレームの追加のピッチピークの位置を特定するように構成された追加のピッチピークロケータＡ３３０を含む。
【０１２１】
図２７Ｃに、音声信号のフレームのピッチピークを検出するように構成された装置ＭＦ３５０のブロック図を示す。装置ＭＦ３５０は、（たとえば、タスクＬ１００の様々な実装に関して上記で説明したように）フレームのピッチピークを検出するための手段ＭＬ１５０を含む。装置ＭＦ３５０は、（たとえば、タスクＬ３２０およびＬ３２０ｂの様々な実装に関して上記で説明したように）候補サンプルを選択するための手段ＭＬ２５０を含む。装置ＭＦ３５０は、（たとえば、タスクＬ３２０およびＬ３２０ａの様々な実装に関して上記で説明したように）候補距離を選択するための手段ＭＬ２６０を含む。装置ＭＦ３５０は、（たとえば、タスクＬ３３０の様々な実装に関して上記で説明したように）候補サンプルと候補距離に対応するサンプルとのうちの１つをフレームのピッチピークとして選択するための手段ＭＬ３５０を含む。
【０１２２】
図２７Ｄに、音声信号のフレームのピッチピークを検出するように構成された装置Ａ３５０のブロック図を示す。装置Ａ３５０は、（たとえば、タスクＬ１００の様々な実装に関して上記で説明したように）フレームのピッチピークを検出するように構成されたピーク検出器１５０を含む。装置Ａ３５０は、（たとえば、タスクＬ３２０およびＬ３２０ｂの様々な実装に関して上記で説明したように）候補サンプルを選択するように構成されたサンプルセレクタ２５０を含む。装置Ａ３５０は、（たとえば、タスクＬ３２０およびＬ３２０ａの様々な実装に関して上記で説明したように）候補距離を選択するように構成された距離セレクタ２６０を含む。装置Ａ３５０は、（たとえば、タスクＬ３３０の様々な実装に関して上記で説明したように）候補サンプルと候補距離に対応するサンプルとのうちの１つをフレームのピッチピークとして選択するように構成されたピークセレクタ３５０を含む。
【０１２３】
フレームの端末ピッチパルスの位置を一意に示す符号化フレームを生成するために音声エンコーダＡＥ１０、タスクＥ１００、第１のフレームエンコーダ１００、および／または手段ＦＥ１００を実装することが望ましい。端末ピッチパルスの位置は、ラグ値と組み合わせられて、そのような時間同期性情報がないことがある後続のフレーム（たとえば、ＱＰＰＰなどのコーディングスキームを使用して符号化されたフレーム）を復号するために重要な位相情報を与える。また、そのような位置情報を搬送するために必要なビット数を最小限に抑えることが望ましい。通常、１６０ビット（概して、Ｎビット）フレーム中の一意の位置を表すために８ビット（概して、
【数３】
0005248681.tif 000004
【０１２４】
ビット）が必要になるが、ここで説明される方法を使用して、７ビット（概して、
【数４】
0005248681.tif 000005
【０１２５】
ビット）のみで端末ピッチパルスの位置を符号化することができる。本方法は、ピッチパルス位置モード値として使用するために７ビット値（たとえば、１２７（概して、
【数５】
0005248681.tif 000006
【０１２６】
））のうちの１つを予約する。本明細書では、「モード値」という用語は、パラメータ（たとえば、ピッチパルス位置または推定ピッチ周期）の実効値の代わりに動作モードの変更を示すために取り込まれる、そのパラメータの可能な値を示す。
【０１２７】
最後のサンプルに対する端末ピッチパルスの位置（すなわち、フレームの最終境界）が与えられた状況では、フレームは、以下の３つのケースのうちの１つに一致することになる。
【０１２８】
ケース１：フレームの最後のサンプルに対する端末ピッチパルスの位置は
【数６】
0005248681.tif 000007
【０１２９】
未満（たとえば、図２９Ａに示す１６０ビットフレームの場合、１２７未満）であり、フレームは２つ以上のピッチパルスを含んでいる。この場合、端末ピッチパルスの位置は
【数７】
0005248681.tif 000008
【０１３０】
ビット（７ビット）に符号化され、ピッチラグも（たとえば、７ビットで）送信される。
【０１３１】
ケース２：フレームの最後のサンプルに対する端末ピッチパルスの位置は
【数８】
0005248681.tif 000009
【０１３２】
未満（たとえば、図２９Ａに示す１６０ビットフレームの場合、１２７未満）であり、フレームは１つのピッチパルスのみを含んでいる。この場合、端末ピッチパルスの位置は
【数９】
0005248681.tif 000010
【０１３３】
ビット（たとえば、７ビット）に符号化され、ピッチラグはラグモード値（この例では
【数１０】
0005248681.tif 000011
【０１３４】
（たとえば、１２７））に設定される。
【０１３５】
ケース３：フレームの最後のサンプルに対する端末ピッチパルスの位置が
【数１１】
0005248681.tif 000012
【０１３６】
よりも大きい（たとえば、図２９Ｂに示す１６０ビットフレームの場合、１２６よりも大きい）場合、フレームが２つ以上のピッチパルスを含んでいる可能性はない。１６０ビットフレームおよび８ｋＨｚのサンプリングレートの場合、これは、フレームの最初の約２０パーセントにおいて少なくとも２５０Ｈｚのピッチにおけるアクティビティがあり、フレームの残りにおいてピッチパルスがないことを暗示するであろう。そのようなフレームがオンセットフレームとして分類される可能性はないであろう。この場合、ピッチパルス位置モード値（たとえば、
【数１２】
0005248681.tif 000013
【０１３７】
または上記のように１２７）が実際のパルス位置の代わりに送信され、ラグビットは、フレームの第１のサンプルに関する端末ピッチパルスの位置（すなわち、フレームの初期境界）を搬送するために使用される。符号化フレームの位置ビットがピッチパルス位置モード値（たとえば、
【数１３】
0005248681.tif 000014
【０１３８】
のパルス位置）を示すかどうかをテストするように、対応するデコーダを構成することができる。そうであれば、デコーダは、符号化フレームのラグビットからフレームの第１のサンプルに関する端末ピッチパルスの位置を代わりに得ることができる。
【０１３９】
１６０ビットフレームに適用されるケース３では、３３個のそのような位置（すなわち、０〜３２）が考えられる。その位置のうちの１つを別の位置に丸めることによって（たとえば、位置１５９を位置１５８に丸めることによって、または位置１２７を位置１２８に丸めることによって）、実際の位置を５つのビットのみで送信することができ、符号化フレームの７つのラグビットのうちの２つは他の情報を自由に搬送することができるようになる。また、ピッチパルス位置のうちの１つまたは複数を他のピッチパルス位置に丸めるそのようなスキームを、他の長さのフレームに対して使用して、（たとえば、符号化のために隣接する位置の各ペアを単一の位置に丸めることによって）符号化すべき一意のピッチパルス位置の総数を、場合によっては１／２だけ、またはさらに多く低減することができる。
【０１４０】
図２８に、上記の３つのケースに従って動作する方法Ｍ５００の一般的構成によるフローチャートを示す。方法Ｍ５００は、ｑビットフレーム中の端末ピッチパルスの位置をｒビットを使用して符号化するように構成され、ｒはｌｏｇ2ｑ未満である。上述の一例では、ｑは１６０に等しく、ｒは７に等しい。方法Ｍ５００は、音声エンコーダＡＥ１０の実装内で（たとえば、タスクＥ１００の実装、第１のフレームエンコーダ１００の実装、および／または手段ＦＥ１００の実装内で）実行できる。そのような方法は、概して、１よりも大きい任意の整数値ｒに対して適用できる。音声適用例の場合、ｒは、通常（６５〜１０２３のｑの値に対応する）６から９までの範囲内の値を有する。
【０１４１】
方法Ｍ５００は、タスクＴ５１０、Ｔ５２０、およびＴ５３０を含む。タスクＴ５１０は、（フレームの最後のサンプルに対する）端末ピッチパルス位置が（２r−２）よりも大きい（たとえば、１２６よりも大きい）かどうかを判断する。その結果が真である場合、フレームは上記のケース３に一致する。この場合、タスクＴ５２０は、（たとえば、符号化フレームを搬送するパケットの）端末ピッチパルス位置ビットをピッチパルス位置モード値（たとえば、２r−１、または上記のように１２７）に設定し、（たとえば、パケットの）ラグビットを、フレームの第１のサンプルに対する端末ピッチパルスの位置に等しく設定する。
【０１４２】
タスクＴ５１０の結果が偽である場合、タスクＴ５３０は、フレームが１つのピッチパルスのみを含んでいるかどうかを判断する。タスクＴ５３０の結果が真である場合、フレームは上記のケース２に一致し、ラグ値を送信する必要はない。この場合、タスクＴ５４０は、（たとえば、パケットの）ラグビットをラグモード値（たとえば、２r−１）に設定する。
【０１４３】
タスクＴ５３０の結果が偽である場合、フレームは２つ以上のピッチパルスを含んでおり、フレームの終端に対する端末ピッチパルスの位置は（２r−２）以下（たとえば、１２６以下）である。そのようなフレームは上記のケース１に一致し、タスクＴ５５０は、その位置をｒビットで符号化し、ラグ値をラグビットに符号化する。
【０１４４】
第１のサンプルに対する端末ピッチパルスの位置（すなわち、初期境界）が与えられた状況では、フレームは、以下の３つのケースのうちの１つに一致することになる。
【０１４５】
ケース１：フレームの第１のサンプルに対する端末ピッチパルスの位置は
【数１４】
0005248681.tif 000015
【０１４６】
よりも大きく（たとえば、図２９Ｃに示す１６０ビットフレームの場合、３２よりも大きく）、フレームは２つ以上のピッチパルスを含んでいる。この場合、端末ピッチパルスの位置−
【数１５】
0005248681.tif 000016
【０１４７】
は、
【数１６】
0005248681.tif 000017
【０１４８】
ビット（たとえば、７ビット）に符号化され、ピッチラグも（たとえば、７ビットで）送信される。
【０１４９】
ケース２：フレームの第１のサンプルに対する端末ピッチパルスの位置は
【数１７】
0005248681.tif 000018
【０１５０】
よりも大きく（たとえば、図２９Ｃに示す１６０ビットフレームの場合、３２よりも大きく）、フレームは１つのピッチパルスのみを含んでいる。この場合、端末ピッチパルスの位置−
【数１８】
0005248681.tif 000019
【０１５１】
は、
【数１９】
0005248681.tif 000020
【０１５２】
ビット（たとえば、７ビット）に符号化され、ピッチラグは、ラグモード値（この例では、
【数２０】
0005248681.tif 000021
【０１５３】
（たとえば、１２７））に設定される。
【０１５４】
ケース３：端末ピッチパルスの位置が
【数２１】
0005248681.tif 000022
【０１５５】
以下（たとえば、図２９Ｄに示す１６０ビットフレームの場合、３２以下）である場合、フレームが２つ以上のピッチパルスを含んでいる可能性はない。１６０ビットフレームおよび８ｋＨｚのサンプリングレートの場合、これは、フレームの最初の約２０パーセントにおいて少なくとも２５０Ｈｚのピッチにおけるアクティビティがあり、フレームの残りにおいてピッチパルスがないことを暗示するであろう。そのようなフレームがオンセットフレームとして分類される可能性はないであろう。この場合、ピッチパルス位置モード値（たとえば、
【数２２】
0005248681.tif 000023
【０１５６】
または１２７）が実際のパルス位置の代わりに送信され、ラグビットは、フレームの第１のサンプルに関する端末ピッチパルスの位置（すなわち、初期境界）を送信するために使用される。符号化フレームの位置ビットがピッチパルス位置モード値（たとえば、
【数２３】
0005248681.tif 000024
【０１５７】
のパルス位置）を示すかどうかをテストするように、対応するデコーダを構成することができる。そうであれば、デコーダは、符号化フレームのラグビットからフレームの第１のサンプルに関する端末ピッチパルスの位置を代わりに得ることができる。
【０１５８】
１６０ビットフレームに適用されるケース３では、３３個のそのような位置（０〜３２）が考えられる。その位置のうちの１つを別の位置に丸めることによって（たとえば、位置０を位置１に丸めることによって、または位置３２を位置３１に丸めることによって）、実際の位置を５つのビットのみで送信することができ、符号化フレームの７つのラグビットのうちの２つは他の情報を自由に搬送することができるようになる。また、パルス位置のうちの１つまたは複数を他のパルス位置に丸めるそのようなスキームを、他の長さのフレームに対して使用して、（たとえば、符号化のために隣接する位置の各ペアを単一の位置に丸めることによって）符号化すべき一意の位置の総数を、場合によっては１／２だけ、またはさらにより多く低減することができる。第１のサンプルに対する端末ピッチパルスの位置が与えられた状況では、方法Ｍ５００を変更することができることを当業者は認識されよう。
【０１５９】
図３０Ａに、タスクＥ３１０およびＥ３２０を含む、一般的構成による音声信号フレームを処理する方法Ｍ４００のフローチャートを示す。方法Ｍ４００は、音声エンコーダＡＥ１０の実装内で（たとえば、タスクＥ１００の実装、第１のフレームエンコーダ１００の実装、および／または手段ＦＥ１００の実装内で）実行できる。タスクＥ３１０は、第１の音声信号フレーム内の位置（「第１の位置」）を計算する。第１の位置は、フレームの最後のサンプルに関する（代替的に、フレームの第１のサンプルに関する）フレームの端末ピッチパルスの位置である。タスクＥ３１０は、ここで説明されるパルス位置計算タスクＥ１２０またはＬ１００のインスタンスとして実装できる。タスクＥ３２０は、第１の音声信号フレームを搬送し、第１の位置を含む第１のパケットを発生する。
【０１６０】
方法Ｍ４００は、タスクＥ３３０およびＥ３４０をも含む。タスクＥ３３０は、第２の音声信号フレーム内の位置（「第２の位置」）を計算する。第２の位置は、（Ａ）フレームの第１のサンプルと（Ｂ）フレームの最後のサンプルとのうちの一方に関するフレームの端末ピッチパルスの位置である。タスクＥ３３０は、ここで説明されるパルス位置計算タスクＥ１２０のインスタンスとして実装できる。タスクＥ３４０は、第２の音声信号フレームを搬送し、フレーム内に第３の位置を含む第２のパケットを発生する。第３の位置は、フレームの第１のサンプルとフレームの最後のサンプルとのうちの他方に関する端末ピッチパルスの位置である。言い換えれば、タスクＴ３３０が最後のサンプルに関する第２の位置を計算する場合、第３の位置は第１のサンプルに関し、その逆も同様である。
【０１６１】
１つの特定の例では、第１の位置は、フレームの最終サンプルに関する第１の音声信号フレームの最終ピッチパルスの位置であり、第２の位置は、フレームの最終サンプルに関する第２の音声信号フレームの最終ピッチパルスの位置であり、第３の位置は、フレームの第１のサンプルに関する第２の音声信号フレームの最終ピッチパルスの位置である。
【０１６２】
方法Ｍ４００によって処理される音声信号フレームは、一般にＬＰＣ残差信号のフレームである。第１および第２の音声信号フレームは、同じボイス通信セッションからのものか、または異なるボイス通信セッションからのものとすることができる。たとえば、第１および第２の音声信号フレームは、１人の人によって話された音声信号からのものか、または異なる人によってそれぞれ話された２つの異なる音声信号からのものとすることができる。音声信号フレームは、ピッチパルス位置が計算される前および／または後に、他の処理演算（たとえば、知覚的重み付け）を受けることができる。
【０１６３】
第１のパケットと第２のパケットの両方が、情報の様々なアイテムについてパケット内の対応するロケーションを示す（パケットテンプレートとも呼ばれる）パケット記述に準拠することが望ましい。パケットを発生する（たとえば、タスクＥ３２０およびＥ３４０によって実行される）動作は、そのようなパケットテンプレートに従って情報の様々なアイテムをバッファに書き込むことを含むことができる。（たとえば、パケットによって搬送される値を、パケット内の値のロケーションに従って対応するパラメータに関連付けることによって）パケットの復号を可能にするために、そのようなテンプレートに従ってパケットを発生することが望ましい。
【０１６４】
パケットテンプレートの長さは、符号化フレームの長さ（たとえば、１／４レートコーディングスキームの場合、４０ビット）に等しいとすることができる。そのような一例では、パケットテンプレートは、ＬＳＰ値と符号化モードとを示すために使用される１７ビットの領域と、端末ピッチパルスの位置を示すために使用される７ビットの領域と、推定ピッチ周期を示すために使用される７ビットの領域と、パルス形状を示すために使用される７ビットの領域と、利得プロファイルを示すために使用される２ビットの領域とを含む。他の例では、ＬＳＰ値のための領域がより小さく、利得プロファイルのための領域が相応してより大きいテンプレートを含む。代替的に、パケットテンプレートは、（たとえば、パケットが２つ以上の符号化フレームを搬送する場合には）符号化フレームよりも長いことがある。また、パケット発生動作、またはそのような動作を実行するように構成されたパケットジェネレータは、（たとえば、あるフレーム情報が他のフレーム情報よりも少ない頻度で符号化される場合）異なる長さのパケットを生成するように構成できる。
【０１６５】
１つの一般的な場合には、方法Ｍ４００は、ビットロケーションの第１および第２のセットを含むパケットテンプレートを使用するように実装される。そのような場合、第１の位置がビットロケーションの第１のセットを占めるように、第１のパケットを発生するようにタスクＥ３２０を構成し、第３の位置がビットロケーションの第２のセットを占めるように、第２のパケットを発生するようにタスクＥ３４０を構成することができる。ビットロケーションの第１および第２のセットが独立している（すなわち、パケットのビットが両方のセット中にないようにする）ことが望ましい。図３１Ａに、独立しているビットロケーションの第１および第２のセットを含むパケットテンプレートＰＴ１０の一例を示す。この例では、第１および第２のセットの各々は、ビットロケーションの連続する連続である。ただし、概して、セット内のビットロケーションが互いに隣接している必要はない。図３１Ｂに、独立しているビットロケーションの第１および第２のセットを含む別のパケットテンプレートＰＴ２０の一例を示す。この例では、第１のセットは、互いから１つまたは複数の他のビットロケーションだけ分離されたビットロケーションの２つの連続を含む。たとえば、図３１Ｃに示すように、パケットテンプレート中のビットロケーションの２つの独立セットを少なくとも部分的にインターリーブすることさえできる。
【０１６６】
図３０Ｂに、方法Ｍ４００の実装Ｍ４１０のフローチャートを示す。方法Ｍ４１０は、第１の位置をしきい値と比較するタスクＥ３５０を含む。タスクＥ３５０は、第１の位置がしきい値未満のときに第１の状態を有し、第１の位置がしきい値よりも大きいときに第２の状態を有する結果を生成する。そのような場合、第１の状態を有するタスクＥ３５０の結果に応答して第１のパケットを発生するようにタスクＥ３２０を構成することができる。
【０１６７】
一例では、タスクＥ３５０の結果は、第１の位置がしきい値未満のときに第１の状態を有し、他の場合（すなわち、第１の位置がしきい値以上であるときに）第２の状態を有する。別の例では、タスクＥ３５０の結果は、第１の位置がしきい値以下のときに第１の状態を有し、他の場合（すなわち、第１の位置がしきい値よりも大きいときに）第２の状態を有する。タスクＥ３５０は、ここで説明されるタスクＴ５１０のインスタンスとして実装できる。
【０１６８】
図３０Ｃに、方法Ｍ４１０の実装Ｍ４２０のフローチャートを示す。方法Ｍ４２０は、第２の位置をしきい値と比較するタスクＥ３６０を含む。タスクＥ３６０は、第２の位置がしきい値未満のときに第１の状態を有し、第２の位置がしきい値よりも大きいときに第２の状態を有する結果を生成する。そのような場合、第２の状態を有するタスクＥ３６０の結果に応答して第２のパケットを発生するように、タスクＥ３４０を構成することができる。
【０１６９】
一例では、タスクＥ３６０の結果は、第２の位置がしきい値未満のときに第１の状態を有し、他の場合（すなわち、第２の位置がしきい値以上であるときに）第２の状態を有する。別の例では、タスクＥ３６０の結果は、第２の位置がしきい値以下のときに第１の状態を有し、他の場合（すなわち、第２の位置がしきい値よりも大きいときに）第２の状態を有する。タスクＥ３６０は、ここで説明されるタスクＴ５１０のインスタンスとして実装できる。
【０１７０】
方法Ｍ４００は、第２の位置に基づいて第３の位置を得るように一般に構成される。たとえば、方法Ｍ４００は、フレーム長から第２の位置を減算し、結果を減分することによって、またはフレーム長未満の値である値から第２の位置を減算することによって、または第２の位置とフレーム長とに基づく別の演算を実行することによって、第３の位置を計算するタスクを含むことができる。ただし、場合によっては、（たとえば、タスクＥ１２０に関して）ここで説明されるピッチパルス位置計算演算のいずれかに従って第３の位置を得るように、方法Ｍ４００を構成することができる。
【０１７１】
図３２Ａに、方法Ｍ４００の実装Ｍ４３０のフローチャートを示す。方法Ｍ４３０は、フレームのピッチ周期を推定するタスクＥ３７０を含む。タスクＥ３７０は、ここで説明されるピッチ周期推定タスクＥ１３０またはＬ２００のインスタンスとして実装できる。この場合、パケット発生タスクＥ３２０は、第１のパケットが、推定ピッチ周期を示す符号化ピッチ周期値を含むように実装される。たとえば、符号化ピッチ周期値がパケットのビットロケーションの第２のセットを占めるように、タスクＥ３２０を構成することができる。符号化ピッチ周期値が、推定ピッチ周期を最小ピッチ周期値（たとえば、２０）に対するオフセットとして示すように、（たとえば、タスクＥ３７０内で）符号化ピッチ周期値を計算するように、方法Ｍ４３０を構成することができる。たとえば、推定ピッチ周期から最小ピッチ周期値を減算することによって符号化ピッチ周期値を計算するように、方法Ｍ４３０（たとえば、タスクＥ３７０）を構成することができる。
【０１７２】
図３２Ｂに、ここで説明される比較タスクＥ３５０をも含む方法Ｍ４３０の実装Ｍ４４０のフローチャートを示す。図３２Ｃに、ここで説明される比較タスクＥ３６０をも含む方法Ｍ４４０の実装Ｍ４５０のフローチャートを示す。
【０１７３】
図３３Ａに、音声信号フレームを処理するように構成された装置ＭＦ４００のブロック図を示す。装置ＭＦ１００は、（たとえば、タスクＥ３１０、Ｅ１２０、および／またはＬ１００の様々な実装に関して上記で説明したように）第１の位置を計算するための手段ＦＥ３１０と、（たとえば、タスクＥ３２０の様々な実装に関して上記で説明したように）第１のパケットを発生するための手段ＦＥ３２０とを含む。装置ＭＦ１００は、（たとえば、タスクＥ３３０、Ｅ１２０、および／またはＬ１００の様々な実装に関して上記で説明したように）第２の位置を計算するための手段ＦＥ３３０と、（たとえば、タスクＥ３４０の様々な実装に関して上記で説明したように）第２のパケットを発生するための手段ＦＥ３４０とを含む。装置ＭＦ４００はまた、（たとえば、方法Ｍ４００に関して上記で説明したように）第３の位置を計算するための手段を含むことができる。
【０１７４】
図３３Ｂに、（たとえば、タスクＥ３５０の様々な実装に関して上記で説明したように）第１の位置をしきい値と比較するための手段ＦＥ３５０をも含む装置ＭＦ４００の実装ＭＦ４１０のブロック図を示す。図３３Ｃに、（たとえば、タスクＥ３６０の様々な実装に関して上記で説明したように）第２の位置をしきい値と比較するための手段ＦＥ３６０をも含む装置ＭＦ４１０の実装ＭＦ４２０のブロック図を示す。
【０１７５】
図３４Ａに、装置ＭＦ４００の実装ＭＦ４３０のブロック図を示す。装置ＭＦ４３０は、（たとえば、タスクＥ３７０、Ｅ１３０、および／またはＬ２００の様々な実装に関して上記で説明したように）第１のフレームのピッチ周期を推定するための手段ＦＥ３７０を含む。図３４Ｂに、手段ＦＥ３７０を含む装置ＭＦ４３０の実装ＭＦ４４０のブロック図を示す。図３４Ｃに、手段ＦＥ３６０を含む装置ＭＦ４４０の実装ＭＦ４５０のブロック図を示す。
【０１７６】
図３５Ａは、ピッチパルス位置計算器１６０とパケットジェネレータ１７０とを含む、一般的構成による音声信号フレームを処理するための装置（たとえば、フレームエンコーダ）Ａ４００のブロック図を示す。ピッチパルス位置計算器１６０は、（たとえば、タスクＥ３１０、Ｅ１２０、および／またはＬ１００に関して上記で説明したように）第１の音声信号フレーム内の第１の位置を計算し、（たとえば、タスクＥ３３０、Ｅ１２０、および／またはＬ１００に関して上記で説明したように）第２の音声信号フレーム内の第２の位置を計算するように構成される。たとえば、ピッチパルス位置計算器１６０は、ここで説明されるピッチパルス位置計算器１２０または端末ピークロケータＡ３１０のインスタンスとして実装できる。パケットジェネレータ１７０は、（たとえば、タスクＥ３２０に関して上記で説明したように）第１の音声信号フレームを表し第１の位置を含む第１のパケットを発生し、（たとえば、タスクＥ３４０に関して上記で説明したように）第２の音声信号フレームを表し第２の音声信号フレーム内の第３の位置を含む第２のパケットを発生するように構成される。
【０１７７】
パケットジェネレータ１７０は、符号化モード、パルス形状、１つまたは複数のＬＳＰベクトル、および／または利得プロファイルなど、符号化フレームの他のパラメータ値を示す情報を含むようにパケットを発生するように構成できる。パケットジェネレータ１７０は、装置Ａ４００の他の要素から、および／または装置Ａ４００を含むデバイスの他の要素からそのような情報を受信するように構成できる。たとえば、装置Ａ４００は、（たとえば、音声信号フレームを発生するために）ＬＰＣ分析を実行するか、または残差発生器ＲＧ１０のインスタンスなどの別の要素からＬＰＣ分析パラメータ（たとえば、１つまたは複数のＬＳＰベクトル）を受信するように構成できる。
【０１７８】
図３５Ｂに、コンパレータ１８０をも含む装置Ａ４００の実装Ａ４０２のブロック図を示す。コンパレータ１８０は、（たとえば、タスクＥ３５０の様々な実装に関して上記で説明したように）第１の位置をしきい値と比較し、第１の位置がしきい値未満のときに第１の状態を有し、第１の位置がしきい値よりも大きいときに第２の状態を有する第１の出力を生成するように構成される。この場合、パケットジェネレータ１７０は、第１の状態を有する第１の出力に応答して第１のパケットを発生するように構成できる。
【０１７９】
また、コンパレータ１８０は、（たとえば、タスクＥ３６０の様々な実装に関して上記で説明したように）第２の位置をしきい値と比較し、第２の位置がしきい値未満のときに第１の状態を有し、第２の位置がしきい値よりも大きいときに第２の状態を有する第２の出力を生成するように構成できる。この場合、パケットジェネレータ１７０は、第２の状態を有する第２の出力に応答して第２のパケットを発生するように構成できる。
【０１８０】
図３５Ｃは、（たとえば、タスクＥ３７０、Ｅ１３０、および／またはＬ２００に関して上記で説明したように）第１の音声信号フレームのピッチ周期を推定するように構成されたピッチ周期推定器１９０を含む装置Ａ４００の実装Ａ４０４のブロック図を示す。たとえば、ピッチ周期推定器１９０は、ここで説明されるピッチ周期推定器１３０またはピッチラグ推定器Ａ３２０のインスタンスとして実装できる。この場合、パケットジェネレータ１７０は、推定ピッチ周期を示すビットのセットがビットロケーションの第２のセットを占めるように、第１のパケットを発生するように構成される。図３５Ｄに、ピッチ周期推定器１９０を含む装置Ａ４０２の実装Ａ４０６のブロック図を示す。
【０１８１】
音声エンコーダＡＥ１０は、装置Ａ４００を含むように実装できる。たとえば、音声エンコーダＡＥ２０の第１のフレームエンコーダ１０４は、ピッチパルス位置計算器１２０が計算器１６０としても働く（場合によっては、ピッチ周期推定器１３０が推定器１９０としても働く）ように装置Ａ４００のインスタンスを含むように実装できる。
【０１８２】
図３６Ａは、一般的構成による、符号化フレーム（たとえば、パケット）を復号する方法Ｍ５５０のフローチャートを示す。方法Ｍ５５０は、タスクＤ３０５、Ｄ３１０、Ｄ３２０、Ｄ３３０、Ｄ３４０、Ｄ３５０、およびＤ３６０を含む。タスクＤ３０５は、符号化フレームから値ＰおよびＬを抽出する。符号化フレームがここで説明されるパケットテンプレートに準拠する場合、符号化フレームのビットロケーションの第１のセットからＰを抽出し、符号化フレームのビットロケーションの第２のセットからＬを抽出するようにタスクＤ３０５を構成することができる。タスクＤ３１０は、Ｐをピッチ位置モード値と比較する。Ｐがピッチ位置モード値に等しい場合、タスクＤ３２０は、復号フレームの第１および最後のサンプルのうちの一方に対するパルス位置をＬから得る。タスクＤ３２０はまた、フレーム中のパルスの数Ｎに値１を割り当てる。Ｐがピッチ位置モード値に等しくない場合、タスクＤ３３０は、復号フレームの第１および最後のサンプルのうちの他方に対するパルス位置をＰから得る。タスクＤ３４０は、Ｌをピッチ周期モード値と比較する。Ｌがピッチ周期モード値に等しい場合、タスクＤ３５０は、フレーム中のパルスの数Ｎに値１を割り当てる。他の場合は、タスクＤ３６０は、Ｌからピッチ周期値を得る。一例では、タスクＤ３６０は、最小ピッチ周期値をＬに追加することによってピッチ周期値を計算するように構成される。ここで説明されるフレームデコーダ３００または手段ＦＤ１００は、方法Ｍ５５０を実行するように構成できる。
【０１８３】
図３７に、タスクＤ４１０、Ｄ４２０、およびＤ４３０を含む、一般的構成によるパケットを復号する方法Ｍ５６０のフローチャートを示す。タスクＤ４１０は、（たとえば、方法Ｍ４００の実装によって生成された）第１のパケットから第１の値を抽出する。第１のパケットがここで説明されるテンプレートに準拠する場合、パケットのビットロケーションの第１のセットから第１の値を抽出するように、タスクＤ４１０を構成することができる。タスクＤ４２０は、第１の値をピッチパルス位置モード値と比較する。第１の値がピッチパルス位置モード値に等しいときに第１の状態を有し、他の場合は第２の状態を有する結果を生成するようにタスクＤ４２０を構成することができる。タスクＤ４３０は、第１の値に従って第１の励振信号内のピッチパルスを構成する。タスクＤ４３０は、ここで説明されるタスクＤ１１０のインスタンスとして実装でき、第２の状態を有するタスクＤ４２０の結果に応答して実行するように構成できる。第１および最後のサンプルのうちの一方に対するそのピークのロケーションが第１の値と一致するように、第１の励振信号内のピッチパルスを構成するように、タスクＤ４３０を構成することができる。
【０１８４】
方法Ｍ５６０はまた、タスクＤ４４０、Ｄ４５０、Ｄ４６０、およびＤ４７０を含む。タスクＤ４４０は、第２のパケットから第２の値を抽出する。第２のパケットがここで説明されるテンプレートに準拠する場合、パケットのビットロケーションの第１のセットから第２の値を抽出するように、タスクＤ４４０を構成することができる。タスクＤ４７０は、第２のパケットから第３の値を抽出する。パケットがここで説明されるテンプレートに準拠する場合、パケットのビットロケーションの第２のセットから第３の値を抽出するように、タスクＤ４７０を構成することができる。タスクＤ４５０は、第２の値をピッチパルス位置モード値と比較する。第２の値がピッチパルス位置モード値に等しいときに第１の状態を有し、他の場合は第２の状態を有する結果を生成するようにタスクＤ４５０を構成することができる。タスクＤ４６０は、第３の値に従って第２の励振信号内のピッチパルスを構成する。タスクＤ４６０は、ここで説明されるタスクＤ１１０の別のインスタンスとして実装でき、第１の状態を有するタスクＤ４５０の結果に応答して実行するように構成できる。
【０１８５】
第１および最後のサンプルのうちの他方に対するそのピークのロケーションが第３の値と一致するように、第２の励振信号内のピッチパルスを構成するように、タスクＤ４６０を構成することができる。たとえば、タスクＤ４３０が、第１の励振信号の最後のサンプルに対するそのピークのロケーションが第１の値と一致するように、第１の励振信号内のピッチパルスを構成する場合、タスクＤ４６０は、第２の励振信号の第１のサンプルに対するそのピークのロケーションが第３の値と一致するように、第２の励振信号内のピッチパルスを構成するように構成でき、その逆も同様である。ここで説明されるフレームデコーダ３００または手段ＦＤ１００は、方法Ｍ５６０を実行するように構成できる。
【０１８６】
図３８に、タスクＤ４８０およびＤ４９０を含む方法Ｍ５６０の実装Ｍ５７０のフローチャートを示す。タスクＤ４８０は、第１のパケットから第４の値を抽出する。第１のパケットがここで説明されるテンプレートに準拠する場合、パケットのビットロケーションの第２のセットから第４の値（たとえば、符号化ピッチ周期値）を抽出するように、タスクＤ４８０を構成することができる。第４の値に基づいて、タスクＤ４９０は、第１の励振信号内の別のピッチパルス（「第２のピッチパルス」）を構成する。第１の値に基づいて第１の励振信号内の第２のピッチパルスを構成するように、タスクＤ４９０を構成することもできる。たとえば、第１の構成されたピッチパルスに対する第１の励振信号内の第２のピッチパルスを構成するように、タスクＤ４９０を構成することができる。タスクＤ４９０は、ここで説明されるタスクＤ１２０のインスタンスとして実装できる。
【０１８７】
２つのピッチピーク間の距離が、第４の値に基づくピッチ周期値に等しくなるように第２のピッチピークを構成するように、タスクＤ４９０を構成することができる。そのような場合、ピッチ周期値を計算するようにタスクＤ４８０またはタスクＤ４９０を構成することができる。たとえば、最小ピッチ周期値を第４の値に加算することによってピッチ周期値を計算するように、タスクＤ４８０またはタスクＤ４９０を構成することができる。
【０１８８】
図３９に、パケットを復号するための装置ＭＦ５６０のブロック図を示す。装置ＭＦ５６０は、（たとえば、タスクＤ４１０の様々な実装に関して上記で説明したように）第１のパケットから第１の値を抽出するための手段ＦＤ４１０と、（たとえば、タスクＤ４２０の様々な実装に関して上記で説明したように）第１の値をピッチパルス位置モード値と比較するための手段ＦＤ４２０と、（たとえば、タスクＤ４３０の様々な実装に関して上記で説明したように）第１の値に従って第１の励振信号内のピッチパルスを構成するための手段ＦＤ４３０とを含む。手段ＦＤ４３０は、ここで説明される手段ＦＤ１１０のインスタンスとして実装できる。装置ＭＦ５６０はまた、（たとえば、タスクＤ４４０の様々な実装に関して上記で説明したように）第２のパケットから第２の値を抽出するための手段ＦＤ４４０と、（たとえば、タスクＤ４７０の様々な実装に関して上記で説明したように）第２のパケットから第３の値を抽出するための手段ＦＤ４７０と、（たとえば、タスクＤ４５０の様々な実装に関して上記で説明したように）第２の値をピッチパルス位置モード値と比較するための手段ＦＤ４５０と、（たとえば、タスクＤ４６０の様々な実装に関して上記で説明したように）第３の値に従って第２の励振信号内のピッチパルスを構成するための手段ＦＤ４６０とを含む。手段ＦＤ４６０は、手段ＦＤ１１０の別のインスタンスとして実装できる。
【０１８９】
図４０に、装置ＭＦ５６０の実装ＭＦ５７０のブロック図を示す。装置ＭＦ５７０は、（たとえば、タスクＤ４８０の様々な実装に関して上記で説明したように）第１のパケットから第４の値を抽出するための手段ＦＤ４８０と、（たとえば、タスクＤ４９０の様々な実装に関して上記で説明したように）第４の値に基づいて第１の励振信号内の別のピッチパルスを構成するための手段ＦＤ４９０とを含む。手段ＦＤ４９０は、ここで説明される手段ＦＤ１２０のインスタンスとして実装できる。
【０１９０】
図３６Ｂに、パケットを復号するための装置Ａ５６０のブロック図を示す。装置Ａ５６０は、（たとえば、タスクＤ４１０の様々な実装に関して上記で説明したように）第１のパケットから第１の値を抽出するように構成されたパケットパーサ５１０と、（たとえば、タスクＤ４２０の様々な実装に関して上記で説明したように）第１の値をピッチパルス位置モード値と比較するように構成されたコンパレータ５２０と、（たとえば、タスクＤ４３０の様々な実装に関して上記で説明したように）第１の値に従って第１の励振信号内のピッチパルスを構成するように構成された励振信号発生器５３０とを含む。パケットパーサ５１０はまた、（たとえば、タスクＤ４４０の様々な実装に関して上記で説明したように）第２のパケットから第２の値を抽出し、（たとえば、タスクＤ４７０の様々な実装に関して上記で説明したように）第２のパケットから第３の値を抽出するように構成される。コンパレータ５２０はまた、（たとえば、タスクＤ４５０の様々な実装に関して上記で説明したように）第２の値をピッチパルス位置モード値と比較するように構成される。励振信号発生器５３０はまた、（たとえば、タスクＤ４６０の様々な実装に関して上記で説明したように）第３の値に従って第２の励振信号内のピッチパルスを構成するように構成される。励振信号発生器５３０は、ここで説明される第１の励振信号発生器３１０のインスタンスとして実装できる。
【０１９１】
装置Ａ５６０の別の実装では、パケットパーサ５１０はまた、（たとえば、タスクＤ４８０の様々な実装に関して上記で説明したように）第１のパケットから第４の値を抽出するように構成され、励振信号発生器５３０はまた、（たとえば、タスクＤ４９０の様々な実装に関して上記で説明したように）第４の値に基づいて第１の励振信号内の別のピッチパルスを構成するように構成される。
【０１９２】
音声エンコーダＡＤ１０は、装置Ａ５６０を含むように実装できる。たとえば、音声デコーダＡＤ２０の第１のフレームデコーダ３０４は、第１の励振信号発生器３１０が励振信号発生器５３０としても働くように、装置Ａ５６０のインスタンスを含むように実装できる。
【０１９３】
１／４レートはフレーム当たり４０ビットを可能にする。符号化タスクＥ１００、エンコーダ１００、または手段ＦＥ１００の実装によって適用される遷移フレームコーディングフォーマットの一例（たとえば、パケットテンプレート）では、１７ビットの領域を使用してＬＳＰ値と符号化モードとを示し、７ビットの領域を使用して端末ピッチパルスの位置を示し、７ビットの領域を使用してラグを示し、７ビットの領域を使用してパルス形状を示し、２ビットの領域を使用して利得プロファイルを示す。他の例では、ＬＳＰ値のための領域がより小さく、利得プロファイルのための領域が相応してより大きいフォーマットを含む。
【０１９４】
示されたパルス形状ベクトルを、端末ピッチパルスロケーションとラグ値とによって示されるロケーションの各々にコピーし、得られた信号を利得ＶＱテーブル出力に従ってスケーリングすることによって、パルス形状ＶＱテーブル出力から励振信号を構成するように、対応するデコーダ（たとえば、デコーダ３００もしくは５６０の実装、または手段ＦＤ１００もしくはＭＦ５６０の実装、あるいは、復号方法Ｍ５５０もしくはＭ５６０または復号タスクＤ１００の実装を実行しているデバイス）を構成することができる。示されたパルス形状ベクトルがラグ値よりも長い場合、隣接するパルス間の重複を、重複した値の各ペアを平均化することによって、各ペアのうちの一方の値（たとえば、最高値もしくは最低値、または左側のパルスもしくは右側のパルスに属する値）を選択することによって、あるいは単にラグ値を越えるサンプルを廃棄することによって処理することができる。同様に、（たとえば、ピッチパルスピークロケーションおよび／またはラグ推定値に従って）励振信号の第１または最後のピッチパルスを構成するとき、フレーム境界外に出る任意のサンプルを、隣接するフレームの対応するサンプルで平均化するか、または単に廃棄することができる。
【０１９５】
励振信号のピッチパルスは単にインパルスまたはスパイクではない。そうではなく、ピッチパルスは、典型的に、話者依存である時間にわたる振幅プロファイルまたは形状を有し、この形状を保持することが話者認識にとって重要である。後続の有声フレームのための基準（たとえば、プロトタイプ）として役立つようにピッチパルス形状の良好な表現を符号化することが望ましい。
【０１９６】
ピッチパルスの形状は、話者特定および認識にとって知覚的に重要な情報を与える。この情報をデコーダに与えるために、（たとえば、タスクＥ１００、エンコーダ１００、または手段ＦＥ１００の実装によって実行される）遷移フレームコーディングモードを、ピッチパルス形状情報を符号化フレーム中に含めるように構成することができる。ピッチパルス形状を符号化することが、次元が可変であるベクトルを量子化するという問題を提示することがある。たとえば、残差中のピッチ周期の長さ、したがってピッチパルスの長さは、広範囲にわたって変化することがある。上記で説明した一例では、許容ピッチラグ値は２０サンプルから１４６サンプルまで変動する。
【０１９７】
ピッチパルスを周波数領域に変換することなしに、そのパルスの形状を符号化することが望ましい。図４１に、第１のフレームエンコーダ１００の実装によって、および／または手段ＦＥ１００の実装によってタスクＥ１００の実装内で実行できる、一般的構成によるフレームを符号化する方法Ｍ６００のフローチャートを示す。方法Ｍ６００は、タスクＴ６１０、Ｔ６２０、Ｔ６３０、Ｔ６４０、およびＴ６５０を含む。タスクＴ６１０は、フレームが単一のピッチパルスを有するか、または複数のピッチパルスを有するかに応じて、２つの処理経路のうちの一方を選択する。タスクＴ６１０を実行する前に、フレームが単一のピッチパルスを有するか、または複数のピッチパルスを有するかを判断するためにピッチパルスを検出するための方法（たとえば、方法Ｍ３００）を少なくとも十分に実行することが望ましい。
【０１９８】
単一パルスフレームの場合、タスクＴ６２０は、異なる単一パルスベクトル量子化（ＶＱ）テーブルのセットのうちの１つを選択する。この例では、タスクＴ６２０は、（たとえば、タスクＥ１２０またはＬ１００、手段ＦＥ１２０またはＭＬ１００、ピッチパルス位置計算器１２０、あるいは端末ピークロケータＡ３１０によって計算される）フレーム内のピッチパルスの位置に従ってＶＱテーブルを選択するように構成される。次いで、タスクＴ６３０は、選択されたＶＱテーブルのベクトルを選択することによって（たとえば、選択されたＶＱテーブル内で最良の一致を発見し、対応するインデックスを出力することによって）パルス形状を量子化する。
【０１９９】
一致すべきパルス形状にエネルギーが最も近接しているパルス形状ベクトルを選択するように、タスクＴ６３０を構成することができる。一致すべきパルス形状は、フレーム全体、またはピークを含むフレームの若干より小さい部分（たとえば、フレーム長の１／４など、ピークのある距離内の区間）とすることができる。一致演算を実行する前に、一致すべきパルス形状の振幅を正規化することが望ましい。
【０２００】
一例では、タスクＴ６３０は、一致すべきパルス形状と選択されたテーブルの各パルス形状ベクトルとの間の差を計算し、最小エネルギーをもつ差に対応するパルス形状ベクトルを選択するように構成される。別の例では、タスクＴ６３０は、エネルギーが一致すべきパルス形状のエネルギーに最も近接しているパルス形状ベクトルを選択するように構成される。そのような場合、（ピッチパルスまたは他のベクトルなどの）サンプルのシーケンスのエネルギーは、２乗サンプルの和として計算できる。タスクＴ６３０は、ここで説明されるパルス形状選択タスクＥ１１０のインスタンスとして実装できる。
【０２０１】
単一パルスＶＱテーブルのセット中の各テーブルは、フレームの長さ（たとえば、１６０サンプル）と同じ大きさとすることができるベクトル次元を有する。各テーブルが、そのテーブル中のベクトルに一致すべきパルス形状と同じベクトル次元を有することが望ましい。１つの特定の例では、単一パルスＶＱテーブルのセットは３つのテーブルを含み、パルス形状が７ビットインデックスとして符号化できるように、各テーブルが最高１２８個のエントリを有する。
【０２０２】
（たとえば、ここで説明される抽出タスクＤ３０５またはＤ４４０、手段ＦＤ４４０、あるいはパケットパーサ５１０によって判断された）符号化フレームのパルス位置値がピッチパルス位置モード値（たとえば、（２r−１）または１２７）に等しい場合にフレームを単一パルスとして識別するように、対応するデコーダ（たとえば、デコーダ３００、ＭＦ５６０、またはＡ５６０の実装、あるいは手段ＦＤ１００、あるいは復号タスクＤ１００または方法Ｍ５６０の実装を実行しているデバイス）を構成することができる。そのような決定は、ここで説明される比較タスクＤ３１０またはＤ４５０、手段ＦＤ４５０、あるいはコンパレータ５２０の出力に基づくことができる。代替または追加として、ラグ値がピッチ周期モード値（たとえば、（２r−１）または１２７）に等しい場合にフレームを単一パルスとして識別するように、そのようなデコーダを構成することができる。
【０２０３】
タスクＴ６４０は、複数のパルスフレームから一致すべき少なくとも１つのピッチパルスを抽出する。たとえば、最大利得をもつピッチパルス（たとえば、最高のピークを含んでいるピッチパルス）を抽出するようにタスクＴ６４０を構成することができる。抽出されたピッチパルスの長さが（たとえば、タスクＥ３７０、Ｅ１３０、またはＬ２００によって計算された）推定ピッチ周期に等しいことが望ましい。パルスを抽出したとき、ピークが、１つまたは複数の重要なサンプルの不連続および／または欠損をもたらすことがある、抽出されたパルスの第１のサンプルまたは最後のサンプルではないことを確認することが望ましい。場合によっては、ピーク後の情報はピーク前の情報よりも音声品質にとって重要であり、したがってピークが始端の近くになるようにパルスを抽出することが望ましい。一例では、タスクＴ６４０は、ピッチピークより２サンプル前に開始するピッチ周期から形状を抽出する。そのような手法により、ピーク後に発生し、重要な形状情報を含んでいる可能性があるサンプルをキャプチャすることが可能になる。別の例では、同じく重要な情報を含んでいる可能性がある、ピーク前のより多くのサンプルをキャプチャすることが望ましい。さらなる一例では、タスクＴ６４０は、ピークを中心とするピッチ周期を抽出するように構成される。タスクＴ６４０は、フレームから２つ以上のピッチパルスを抽出し（たとえば、最高のピークを有する２つのピッチパルスを抽出し）、抽出されたピッチパルスから一致すべき平均パルス形状を計算することが望ましい。タスクＴ６４０および／またはタスクＴ６６０は、パルス形状ベクトル選択を実行する前に、一致すべきパルス形状の振幅を正規化することが望ましい。
【０２０４】
複数パルスフレームの場合、タスクＴ６５０は、ラグ値（または、抽出されたプロトタイプの長さ）に基づいてパルス形状ＶＱテーブルを選択する。複数パルスフレームを符号化するために９個または１０個のパルス形状ＶＱテーブルのセットを与えることが望ましい。セット中のＶＱテーブルの各々は、異なるベクトル次元を有し、異なるラグ範囲または「ビン」に関連する。そのような場合、タスクＴ６５０は、どのビンが（たとえば、タスクＥ３７０、Ｅ１３０、またはＬ２００によって計算された）現在の推定ピッチ周期を含んでいるかを判断し、そのビンに対応するＶＱテーブルを選択する。現在の推定ピッチ周期が１０５サンプルに等しい場合、たとえば、タスクＴ６５０は、１０１サンプルから１１０サンプルまでのラグ範囲を含むビンに対応するＶＱテーブルを選択することができる。一例では、パルス形状が７ビットインデックスとして符号化できるように、複数パルスパルス形状ＶＱテーブルの各々は最高１２８個のエントリを有する。一般に、ＶＱテーブル中のパルス形状ベクトルのすべては同じベクトル次元を有することになるが、ＶＱテーブルの各々は、一般に（たとえば、対応するビンのラグ範囲中の最大値に等しい）異なるベクトル次元を有することになる。
【０２０５】
タスクＴ６６０は、選択されたＶＱテーブルのベクトルを選択することによって（たとえば、選択されたＶＱテーブル内で最良の一致を発見し、対応するインデックスを出力することによって）パルス形状を量子化する。量子化すべきパルス形状の長さはテーブルエントリの長さに正確に一致しないので、テーブルから最良の一致を選択する前に、対応するテーブルベクトルサイズに一致するように、パルス形状を（たとえば、終端において）ゼロパディングするように、タスクＴ６６０を構成することができる。代替または追加として、テーブルから最良の一致を選択する前に、対応するテーブルベクトルサイズに一致するように、パルス形状の端を打ち切るように、タスクＴ６６０を構成することができる。
【０２０６】
可能な（許容）ラグ値の範囲を均一な様式でまたは不均一な様式でビンに分割することができる。図４２Ａに示す均一な分割の一例では、２０〜１４６サンプルのラグ範囲は、２０〜３３、３４〜４７、４８〜６１、６２〜７５、７６〜８９、９０〜１０３、１０４〜１１７、１１８〜１３１、および１３２〜１４６サンプルの９つのビンに分割される。この例では、最後のビンを除くすべてのビンは１４サンプルの幅を有し、最後のビンは１５サンプルの幅を有する。
【０２０７】
上記の均一な分割では、低いピッチ周波数における品質に比較して、高いピッチ周波数における品質が低くなることがある。上記の例では、タスクＴ６６０が、長さが２０サンプルのピッチパルスを一致の前に６５％だけ延長する（たとえば、ゼロパディングする）ように構成できるが、長さが１３２サンプルのピッチパルスは、わずか１１％だけ延長され得る（たとえば、ゼロパディングされ得る）。不均一な分割を使用することの１つの潜在的な利点は、異なるラグビン間で最大相対延長を等化することである。図４２Ｂに示す不均一な分割の一例では、２０〜１４６サンプルのラグ範囲は、２０〜２３、２４〜２９、３０〜３７、３８〜４７、４８〜６０、６１〜７６、７７〜９６、９７〜１２０、および１２１〜１４６サンプルの９つのビンに分割される。この場合、長さが２０サンプルのピッチパルスを一致の前に１５％だけ延長し（たとえば、ゼロパディングし）、長さが１２１サンプルのピッチパルスを２１％だけ延長する（たとえば、ゼロパディングする）ように、タスクＴ６６０を構成することができる。この分割スキームでは、２０〜１４６サンプルの範囲中のピッチパルスの最大延長は２５％にすぎない。
【０２０８】
符号化フレームからラグ値とパルス形状インデックス値とを得、ラグ値を使用して適切なパルス形状ＶＱテーブルを選択し、パルス形状インデックス値を使用して選択されたパルス形状ＶＱテーブルから所望のパルス形状を選択するように、対応するデコーダ（たとえば、デコーダ３００、ＭＦ５６０、もしくはＡ５６０、または手段ＦＤ１００の実装、あるいは復号タスクＤ１００または方法Ｍ５６０の実装を実行するデバイス）を構成することができる。
【０２０９】
図４３Ａに、タスクＥ４１０、Ｅ４２０およびＥ４３０を含む、一般的構成によるピッチパルスの形状を符号化する方法Ｍ６５０のフローチャートを示す。タスクＥ４１０は、音声信号フレーム（たとえば、ＬＰＣ残差のフレーム）のピッチ周期を推定する。タスクＥ４１０は、ここで説明されるピッチ周期推定タスクＥ１３０、Ｌ２００、および／またはＥ３７０のインスタンスとして実装できる。推定ピッチ周期に基づいて、タスクＥ４２０は、パルス形状ベクトルの複数のテーブルのうちの１つを選択する。タスクＥ４２０は、ここで説明されるタスクＴ６５０のインスタンスとして実装できる。音声信号フレームの少なくとも１つのピッチパルスからの情報に基づいて、タスクＥ４３０は、パルス形状ベクトルの選択されたテーブル中のパルス形状ベクトルを選択する。タスクＥ４３０は、ここで説明されるタスクＴ６６０のインスタンスとして実装できる。
【０２１０】
推定ピッチ周期に基づく値を複数の異なる値の各々と比較するように、テーブル選択タスクＥ４２０を構成することができる。ここで説明されるラグ範囲ビンのセットのうちのどれが推定ピッチ周期を含むかを判断するために、たとえば、推定ピッチ周期を、ビンのセットのうちの２つ以上の各々のより高い範囲（または、より低い範囲）と比較するように、タスクＥ４２０を構成することができる。
【０２１１】
パルス形状ベクトルの選択されたテーブル中で、一致すべきピッチパルスにエネルギーが最も近接しているパルス形状ベクトルを選択するように、ベクトル選択タスクＥ４３０を構成することができる。一例では、タスクＥ４３０は、一致すべきピッチパルスと選択されたテーブルの各パルス形状ベクトルとの間の差を計算し、最小エネルギーをもつ差に対応するパルス形状ベクトルを選択するように構成される。別の例では、タスクＥ４３０は、エネルギーが一致すべきピッチパルスのエネルギーに最も近接しているパルス形状ベクトルを選択するように構成される。そのような場合、（ピッチパルスまたは他のベクトルなどの）サンプルのシーケンスのエネルギーは、２乗サンプルの和として計算できる。
【０２１２】
図４３Ｂに、タスクＥ４４０を含む方法Ｍ６５０の実装Ｍ６６０のフローチャートを示す。タスクＥ４４０は、（Ａ）推定ピッチ周期に基づく第１の値と、（Ｂ）選択されたテーブル中で選択されたパルス形状ベクトルを識別する第２の値（たとえば、テーブルインデックス）とを含むパケットを発生する。第１の値は、最小ピッチ周期値（たとえば、２０）に対するオフセットとして、推定ピッチ周期を示すことができる。たとえば、推定ピッチ周期から最小ピッチ周期値を減算することによって第１の値を計算するように、方法Ｍ６６０（たとえば、タスクＥ４１０）を構成することができる。
【０２１３】
第１および第２の値をビットロケーションのそれぞれの独立セット中に含むようにパケットを発生するように、タスクＥ４４０を構成することができる。たとえば、ここで説明される、ビット位置の第１のセットとビット位置の第２のセットとを有するテンプレートに従ってパケットを発生するように、タスクＥ４４０を構成することができ、第１および第２のセットは独立している。そのような場合、タスクＥ４４０は、ここで説明されるパケット発生タスクＥ３２０のインスタンスとして実装できる。タスクＥ４４０のそのような実装は、ビットロケーションの第１のセット中のピッチパルス位置と、ビットロケーションの第２のセット中の第１の値と、第１および第２のセットとは独立しているビットロケーションの第３のセット中の第２の値とを含むようにパケットを発生するように構成できる。
【０２１４】
図４３Ｃに、タスクＥ４５０を含む方法Ｍ６５０の実装Ｍ６７０のフローチャートを示す。タスクＥ４５０は、音声信号フレームの複数のピッチパルスの中からピッチパルスを抽出する。タスクＥ４５０は、ここで説明されるタスクＴ６４０のインスタンスとして実装できる。エネルギー測度に基づいてピッチパルスを選択するようにタスクＥ４５０を構成することができる。たとえば、ピークが最高のエネルギーを有するピッチパルス、または最高のエネルギーを有するピッチパルスを選択するように、タスクＥ４５０を構成することができる。方法Ｍ６７０では、抽出されたピッチパルスにとって（または、抽出されたピッチパルスと別の抽出されたピッチパルスとの平均など、抽出されたピッチパルスに基づくパルス形状にとって）最良の一致であるパルス形状ベクトルを選択するように、ベクトル選択タスクＥ４３０を構成することができる。
【０２１５】
図４６Ａに、タスクＥ４６０、Ｅ４７０、およびＥ４８０を含む方法Ｍ６５０の実装Ｍ６８０のフローチャートを示す。タスクＥ４６０は、第２の音声信号フレーム（たとえば、ＬＰＣ残差のフレーム）のピッチパルスの位置を計算する。第１および第２の音声信号フレームは、同じボイス通信セッションからのものか、または異なるボイス通信セッションからのものとすることができる。たとえば、第１および第２の音声信号フレームは、１人の人によって話された音声信号からのものか、または異なる人によってそれぞれ話された２つの異なる音声信号からのものとすることができる。音声信号フレームは、ピッチパルス位置が計算される前および／または後に、他の処理演算（たとえば、知覚的重み付け）を受けることができる。
【０２１６】
計算されたピッチパルス位置に基づいて、タスクＥ４７０は、パルス形状ベクトルの複数のテーブルのうちの１つを選択する。タスクＥ４７０は、ここで説明されるタスクＴ６２０のインスタンスとして実装できる。タスクＥ４７０は、第２の音声信号フレームが１つのピッチパルスのみを含んでいるという（たとえば、タスクＥ４６０による、または場合によっては方法Ｍ６８０による）判断に応答して実行できる。第２の音声信号フレームからの情報に基づいて、タスクＥ４８０は、パルス形状ベクトルの選択されたテーブル中のパルス形状ベクトルを選択する。タスクＥ４８０は、ここで説明されるタスクＴ６３０のインスタンスとして実装できる。
【０２１７】
図４４Ａに、ピッチパルスの形状を符号化するための装置ＭＦ６５０のブロック図を示す。装置ＭＦ６５０は、（たとえば、タスクＥ４１０、Ｅ１３０、Ｌ２００、および／またはＥ３７０の様々な実装に関して上記で説明したように）音声信号フレームのピッチ周期を推定するための手段ＦＥ４１０と、（たとえば、タスクＥ４２０および／またはＴ６５０の様々な実装に関して上記で説明したように）パルス形状ベクトルのテーブルを選択するための手段ＦＥ４２０と、（たとえば、タスクＥ４３０および／またはＴ６６０の様々な実装に関して上記で説明したように）選択されたテーブル中のパルス形状ベクトルを選択するための手段ＦＥ４３０とを含む。
【０２１８】
図４４Ｂに、装置ＭＦ６５０の実装ＭＦ６６０のブロック図を示す。装置ＭＦ６６０は、（たとえば、タスクＥ４４０に関して上記で説明したように）（Ａ）推定ピッチ周期に基づく第１の値と、（Ｂ）選択されたテーブル中で選択されたパルス形状ベクトルを識別する第２の値と含むパケットを発生するための手段ＦＥ４４０を含む。図４４Ｃに、（たとえば、タスクＥ４５０に関して上記で説明したように）音声信号フレームの複数のピッチパルスの中からピッチパルスを抽出するための手段ＦＥ４５０を含む装置ＭＦ６５０の実装ＭＦ６７０のブロック図を示す。
【０２１９】
図４６Ｂに、装置ＭＦ６５０の実装ＭＦ６８０のブロック図を示す。装置ＭＦ６８０は、（たとえば、タスクＥ４６０に関して上記で説明したように）第２の音声信号フレームのピッチパルスの位置を計算するための手段ＦＥ４６０と、（たとえば、タスクＥ４７０に関して上記で説明したように）計算されたピッチパルス位置に基づいてパルス形状ベクトルの複数のテーブルのうちの１つを選択するための手段ＦＥ４７０と、（たとえば、タスクＥ４８０に関して上記で説明したように）第２の音声信号フレームからの情報に基づいてパルス形状ベクトルの選択されたテーブル中でパルス形状ベクトルを選択するための手段ＦＥ４８０とを含む。
【０２２０】
図４５Ａに、ピッチパルスの形状を符号化するための装置Ａ６５０のブロック図を示す。装置Ａ６５０は、（たとえば、タスクＥ４１０、Ｅ１３０、Ｌ２００、および／またはＥ３７０の様々な実装に関して上記で説明したように）音声信号フレームのピッチ周期を推定するように構成されたピッチ周期推定器５４０を含む。たとえば、ピッチ周期推定器５４０は、ここで説明されるピッチ周期推定器１３０、１９０、またはＡ３２０のインスタンスとして実装できる。装置Ａ６５０はまた、（たとえば、タスクＥ４２０および／またはＴ６５０の様々な実装に関して上記で説明したように）推定ピッチ周期に基づいて、パルス形状ベクトルのテーブルを選択するように構成されたベクトルテーブルセレクタ５５０を含む。装置Ａ６５０はまた、（たとえば、タスクＥ４３０および／またはＴ６６０の様々な実装に関して上記で説明したように）音声信号フレームの少なくとも１つのピッチパルスからの情報に基づいて、選択されたテーブル中でパルス形状ベクトルを選択するように構成されたパルス形状ベクトルセレクタ５６０を含む。
【０２２１】
図４５Ｂに、（たとえば、タスクＥ４４０に関して上記で説明したように）（Ａ）推定ピッチ周期に基づく第１の値と、（Ｂ）選択されたテーブル中で選択されたパルス形状ベクトルを識別する第２の値と含むパケットを発生するように構成されたパケットジェネレータ５７０を含む装置Ａ６５０の実装Ａ６６０のブロック図を示す。パケットジェネレータ５７０は、ここで説明されるパケットジェネレータ１７０のインスタンスとして実装できる。図４５Ｃに、（たとえば、タスクＥ４５０に関して上記で説明したように）音声信号フレームの複数のピッチパルスの中からピッチパルスを抽出するように構成されたピッチパルス抽出器５８０を含む装置Ａ６５０の実装ＭＦ６７０のブロック図を示す。
【０２２２】
図４６Ｃに、装置Ａ６５０の実装Ａ６８０のブロック図を示す。装置Ａ６８０は、（たとえば、タスクＥ４６０に関して上記で説明したように）第２の音声信号フレームのピッチパルスの位置を計算するように構成されたピッチパルス位置計算器５９０を含む。たとえば、ピッチパルス位置計算器５９０は、ここで説明されるピッチパルス位置計算器１２０または１６０、あるいは端末ピークロケータＡ３１０のインスタンスとして実装できる。この場合、ベクトルテーブルセレクタ５５０はまた、（たとえば、タスクＥ４７０に関して上記で説明したように）計算されたピッチパルス位置に基づいてパルス形状ベクトルの複数のテーブルのうちの１つを選択するように構成され、パルス形状ベクトルセレクタ５６０はまた、（たとえば、タスクＥ４８０に関して上記で説明したように）第２の音声信号フレームからの情報に基づいてパルス形状ベクトルの選択されたテーブル中でパルス形状ベクトルを選択するように構成される。
【０２２３】
音声エンコーダＡＥ１０は、装置Ａ６５０を含むように実装できる。たとえば、音声エンコーダＡＥ２０の第１のフレームエンコーダ１０４は、ピッチ周期推定器１３０が推定器５４０としても働くように、装置Ａ６５０のインスタンスを含むように実装できる。第１のフレームエンコーダ１０４のそのような実装はまた、装置Ａ４００のインスタンス（たとえば、パケットジェネレータ１７０がパケットジェネレータ５７０としても働くように、装置Ａ４０２のインスタンス）を含むことができる。
【０２２４】
図４７Ａに、一般的構成によるピッチパルスの形状を復号する方法Ｍ８００のブロック図を示す。方法Ｍ８００は、タスクＤ５１０、Ｄ５２０、Ｄ５３０、およびＤ５４０を含む。タスクＤ５１０は、（たとえば、方法Ｍ６６０の実装によって生成された）符号化音声信号のパケットから符号化ピッチ周期値を抽出する。タスクＤ５１０は、ここで説明されるタスクＤ４８０のインスタンスとして実装できる。符号化ピッチ周期値に基づいて、タスクＤ５２０は、パルス形状ベクトルの複数のテーブルのうちの１つを選択する。タスクＤ５３０は、パケットからインデックスを抽出する。インデックスに基づいて、タスクＤ５４０は、選択されたテーブルからパルス形状ベクトルを得る。
【０２２５】
図４７Ｂに、タスクＤ５５０およびＤ５６０を含む方法Ｍ８００の実装Ｍ８１０のブロック図を示す。タスクＤ５５０は、パケットからピッチパルス位置インジケータを抽出する。タスクＤ５５０は、ここで説明されるタスクＤ４１０の実例として実装できる。ピッチパルス位置インジケータに基づいて、タスクＤ５６０は、励振信号内でパルス形状ベクトルに基づくピッチパルスを構成する。タスクＤ５６０は、ここで説明されるタスクＤ４３０の実例として実装できる。
【０２２６】
図４８Ａに、タスクＤ５７０、Ｄ５７５、Ｄ５８０、およびＤ５８５を含む方法Ｍ８００の実装Ｍ８２０のブロック図を示す。タスクＤ５７０は、第２のパケットからピッチパルス位置インジケータを抽出する。第２のパケットは、第１のパケットと同じボイス通信セッションからのものか、または異なるボイス通信セッションからのものとすることができる。タスクＤ５７０は、ここで説明されるタスクＤ４１０のインスタンスとして実装できる。第２のパケットからのピッチパルス位置インジケータに基づいて、タスクＤ５７５は、パルス形状ベクトルの第２の複数のテーブルのうちの１つを選択する。タスクＤ５８０は、第２のパケットからインデックスを抽出する。第２のパケットからのインデックスに基づいて、タスクＤ５８５は、第２の複数のテーブルのうちの選択されたテーブルからパルス形状ベクトルを得る。方法Ｍ８２０はまた、得られたパルス形状ベクトルに基づいて励振信号を発生するように構成できる。
【０２２７】
図４８Ｂに、ピッチパルスの形状を復号するための装置ＭＦ８００のブロック図を示す。装置ＭＦ８００は、（たとえば、タスクＤ５１０の様々な実装に関してここで説明されたように）パケットから符号化ピッチ周期値を抽出するための手段ＦＤ５１０と、（たとえば、タスクＤ５２０の様々な実装に関してここで説明されたように）パルス形状ベクトルの複数のテーブルのうちの１つを選択するための手段ＦＤ５２０と、（たとえば、タスクＤ５３０の様々な実装に関してここで説明されたように）パケットからインデックスを抽出するための手段ＦＤ５３０と、（たとえば、タスクＤ５４０の様々な実装に関してここで説明されたように）選択されたテーブルからパルス形状ベクトルを得るための手段ＦＤ５４０とを含む。
【０２２８】
図４９Ａに、装置ＭＦ８００の実装ＭＦ８１０のブロック図を示す。装置ＭＦ８１０は、（たとえば、タスクＤ５５０の様々な実装に関してここで説明されたように）パケットからピッチパルス位置インジケータを抽出するための手段ＦＤ５５０と、（たとえば、タスクＤ５６０の様々な実装に関してここで説明されたように）励振信号内でパルス形状ベクトルに基づくピッチパルスを構成するための手段ＦＤ５６０とを含む。
【０２２９】
図４９Ｂに、装置ＭＦ８００の実装ＭＦ８２０のブロック図を示す。装置ＭＦ８２０は、（たとえば、タスクＤ５７０の様々な実装に関してここで説明されたように）第２のパケットからピッチパルス位置インジケータを抽出するための手段ＦＤ５７０と、（たとえば、タスクＤ５７５の様々な実装に関してここで説明されたように）第２のパケットからの位置インジケータに基づいてパルス形状ベクトルの第２の複数のテーブルのうちの１つを選択するための手段ＦＤ５７５とを含む。装置ＭＦ８２０はまた、（たとえば、タスクＤ５８０の様々な実装に関してここで説明されたように）第２のパケットからインデックスを抽出するための手段ＦＤ５８０と、（たとえば、タスクＤ５８５の様々な実装に関してここで説明されたように）第２のパケットからのインデックスに基づいて第２の複数のテーブルのうちの選択されたテーブルからパルス形状ベクトルを得るための手段ＦＤ５８５とを含む。
【０２３０】
図５０Ａに、ピッチパルスの形状を復号するための装置Ａ８００のブロック図を示す。装置Ａ８００は、（たとえば、タスクＤ５１０の様々な実装に関してここで説明されたように）パケットから符号化ピッチ周期値を抽出し、（たとえば、タスクＤ５３０の様々な実装に関してここで説明されたように）パケットからインデックスを抽出するように構成されたパケットパーサ６１０を含む。パケットパーサ６２０は、ここで説明されるパケットパーサ５１０のインスタンスとして実装できる。装置Ａ８００はまた、（たとえば、タスクＤ５２０の様々な実装に関してここで説明されたように）パルス形状ベクトルの複数のテーブルのうちの１つを選択するように構成されたベクトルテーブルセレクタ６２０と、（たとえば、タスクＤ５４０の様々な実装に関してここで説明されたように）選択されたテーブルからパルス形状ベクトルを得るように構成されたベクトルテーブルリーダ６３０とを含む。
【０２３１】
パケットパーサ６１０はまた、（たとえば、タスクＤ５７０およびＤ５８０の様々な実装に関してここで説明されたように）第２のパケットからパルス位置インジケータとインデックスとを抽出するように構成できる。ベクトルテーブルセレクタ６２０はまた、（たとえば、タスクＤ５７５の様々な実装に関してここで説明されたように）第２のパケットからの位置インジケータに基づいてパルス形状ベクトルの複数のテーブルのうちの１つを選択するように構成できる。ベクトルテーブルリーダ６３０はまた、（たとえば、タスクＤ５８５の様々な実装に関してここで説明されたように）第２のパケットからのインデックスに基づいて第２の複数のテーブルのうちの選択されたテーブルからパルス形状ベクトルを得るように構成できる。図５０Ｂに、（たとえば、タスクＤ５６０の様々な実装に関してここで説明されたように）励振信号内にパルス形状ベクトルに基づくピッチパルスを構成するように構成された励振信号発生器６４０を含む装置Ａ８００の実装Ａ８１０のブロック図を示す。励振信号発生器６４０は、ここで説明される励振信号発生器３１０および／または５３０のインスタンスとして実装できる。
【０２３２】
音声エンコーダＡＥ１０は、装置Ａ８００を含むように実装できる。たとえば、音声エンコーダＡＥ２０の第１のフレームエンコーダ１０４は、装置Ａ８００のインスタンスを含むように実装できる。第１のフレームエンコーダ１０４のそのような実装はまた、装置Ａ５６０のインスタンスを含むことができ、その場合、パケットパーサ５１０はパケットパーサ６２０としても働くことができ、および／または、励振信号発生器５３０は励振信号発生器６４０としても働くことができる。
【０２３３】
一構成による音声エンコーダは、（たとえば、音声エンコーダＡＥ２０の実装によれば）上述の１／４レートＮＥＬＰ（ＱＮＥＬＰ）コーディングスキーム、１／４レートＰＰＰ（ＱＰＰＰ）コーディングスキーム、および遷移フレームコーディングスキームの３つまたは４つのコーディングスキームを使用して、異なるクラスのフレームを符号化する。ＱＮＥＬＰコーディングスキームは、無声フレームおよび立下り過渡フレームを符号化するために使用される。ＱＮＥＬＰコーディングスキーム、または１／８レートＮＥＬＰコーディングスキームは、無音フレーム（たとえば、背景雑音）を符号化するために使用される。ＱＰＰＰコーディングスキームは、有声フレームを符号化するために使用される。遷移フレームコーディングスキームは、立上り過渡（すなわち、オンセット）フレームおよび過渡フレームを符号化するために使用される。図２６のテーブルに、これらの４つのコーディングスキームの各々に対するビット割振りの例を示す。
【０２３４】
現代のボコーダは、一般に音声フレームの分類を実行する。たとえば、そのようなボコーダは、無音、無声、有声、過渡、立下り過渡、および立上り過渡の、上述した６つの異なるクラスのうちの１つとしてフレームを分類するスキームに従って動作することができる。そのようなスキームの例が米国特許出願公開第２００２／０１１１７９８号（Ｈｕａｎｇ）に記載されている。また、そのような分類スキームの一例が、３ＧＰＰ２（Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ  ２）文書「Ｅｎｈａｎｃｅｄ  Ｖａｒｉａｂｌｅ  Ｒａｔｅ  Ｃｏｄｅｃ，Ｓｐｅｅｃｈ  Ｓｅｒｖｉｃｅ  Ｏｐｔｉｏｎｓ  ３，６８，ａｎｄ  ７０  ｆｏｒ  Ｗｉｄｅｂａｎｄ  Ｓｐｒｅａｄ  Ｓｐｅｃｔｒｕｍ  Ｄｉｇｉｔａｌ  Ｓｙｓｔｅｍｓ」（３ＧＰＰ２  Ｃ．Ｓ００１４−Ｃ、２００７年１月、ｗｗｗ−ｄｏｔ−３ｇｐｐ２−ｄｏｔ−ｏｒｇでオンライン入手可能）のセクション４．８（ｐｐ．４−５７〜４−７１）に記載されている。このスキームは、図５１のテーブル中に記載された特徴を使用してフレームを分類しており、このセクション４．８は、ここで説明される「ＥＶＲＣ分類スキーム」の一例として参照によりここに組み込まれる。ＥＶＲＣ分類スキームの同様の例について、図５５〜図６３のコードリストに記載する。
【０２３５】
図５１のテーブル中に出現するパラメータＥ、ＥＬ、およびＥＨは（１６０ビットフレームの場合）次のように計算できる。
【数２４】
0005248681.tif 000025
【０２３６】
上式で、ｓL（ｎ）およびｓH（ｎ）は、それぞれ入力音声信号の（１２次極零型低域フィルタを使用して）低域フィルタ処理されたバージョンおよび入力音声信号の（１２次極零型高域フィルタを使用して）高域フィルタ処理されたバージョンである。ＥＶＲＣ分類スキームにおいて使用できる他の特徴は、前のフレームモード決定（「ｐｒｅｖ＿ｍｏｄｅ」）と、前のフレーム中の固定有声音声の存在（「ｐｒｅｖ＿ｖｏｉｃｅｄ」）と、現在のフレームのボイスアクティビティ検出結果（「ｃｕｒｒ＿ｖａ」）とを含む。
【０２３７】
分類スキームにおいて使用される重要な特徴は、ピッチベースの正規化自己相関関数（ＮＡＣＦ）である。図５２に、ピッチベースのＮＡＣＦを計算するためのプロシージャのフローチャートを示す。最初に、現在のフレームと（ルックアヘッドフレームとも呼ばれる）次のフレームとのＬＰＣ残差を、約１００Ｈｚにおいて３ｄＢカットオフ周波数を有する３次高域フィルタを通してフィルタ処理する。非量子化ＬＰＣ係数値を使用して、この残差を計算することが望ましい。次いで、フィルタ処理された残差を、長さ１３の有限インパルス応答（ＦＩＲ）フィルタを用いて低域フィルタ処理し、ファクタ２でデシメートする。デシメートした信号をｒd（ｎ）によって示す。
【０２３８】
現在のフレームの２つのサブフレームに対するＮＡＣＦを、ｋ＝１，２の場合、
【数２５】
0005248681.tif 000026
【０２３９】
のように計算し、
【数２６】
0005248681.tif 000027
【０２４０】
のように、最大化をすべての整数ｉにわたって行う。上式で、ｌａｇ（ｋ）はピッチ推定ルーチン（たとえば、相関ベースの技法）によって推定されるサブフレームｋに対するラグ値である。また、現在のフレームの第１および第２のサブフレームに対するこれらの値を、それぞれｎａｃｆ＿ａｔ＿ｐｉｔｃｈ［２］（「ｎａｃｆ＿ａｐ［２］」とも書かれる）およびｎａｃｆ＿ａｐ［３］として参照する。前のフレームの第１および第２のサブフレームに対して上式に従って計算したＮＡＣＦ値を、それぞれｎａｃｆ＿ａｐ［０］およびｎａｃｆ＿ａｐ［１］として参照する。
【０２４１】
ルックアヘッドフレームに対するＮＡＣＦを、
【数２７】
0005248681.tif 000028
【０２４２】
のように計算し、
【数２８】
0005248681.tif 000029
【０２４３】
のように、最大化をすべての整数ｉにわたって行う。また、この値をｎａｃｆ＿ａｐ［４］として参照する。
【０２４４】
図５３は、ハイレベルでのＥＶＲＣ分類スキームを示すフローチャートである。モード決定は、前のモード決定とＮＡＣＦなどの特徴とに基づく状態間の遷移として考えられ、状態は、異なるフレーム分類である。図５４は、ＥＶＲＣ分類スキームでの状態間の可能な遷移を示す状態図であり、ラベルＳ、ＵＮ、ＵＰ、ＴＲ、Ｖ、およびＤＯＷＮは、それぞれ無音、無声、立上り過渡、過渡、有声、および立下り過渡のフレーム分類を示す。
【０２４５】
（現在のフレームの第２のサブフレームのＮＡＣＦで、「ｎａｃｆ＿ａｐ［２］」とも書かれる）ｎａｃｆ＿ａｔ＿ｐｉｔｃｈ［２］と、しきい値ＶＯＩＣＥＤＴＨおよびＵＮＶＯＩＣＥＤＴＨとの間の関係に応じて、３つの異なるプロシージャのうちの１つを選択することによってＥＶＲＣ分類スキームを実装することができる。図５５および図５６にわたるコードリストに、ｎａｃｆ＿ａｐ［２］＞ＶＯＩＣＥＤＴＨのときに使用することができるプロシージャを記載する。図５７〜図５９にわたるコードリストに、ｎａｃｆ＿ａｐ［２］＜ＵＮＶＯＩＣＥＤＴＨのときに使用することができるプロシージャを記載する。図６０〜図６３にわたるコードリストに、ｎａｃｆ＿ａｐ［２］≧ＵＮＶＯＩＣＥＤＴＨおよびｎａｃｆ＿ａｐ［２］≦ＶＯＩＣＥＤＴＨのときに使用することができるプロシージャを記載する。
【０２４６】
特徴ｃｕｒｒ＿ｎｓ＿ｓｎｒ［０］の値に従ってしきい値ＶＯＩＣＥＤＴＨ、ＬＯＷＶＯＩＣＥＤＴＨ、およびＵＮＶＯＩＣＥＤＴＨの値を変化させることが望ましい。たとえば、ｃｕｒｒ＿ｎｓ＿ｓｎｒ［０］の値がＳＮＲしきい値２５ｄＢ以上である場合、明瞭な音声に対するしきい値ＶＯＩＣＥＤＴＨ＝０．７５、ＬＯＷＶＯＩＣＥＤＴＨ＝０．５、ＵＮＶＯＩＣＥＤＴＨ＝０．３５を適用し、ｃｕｒｒ＿ｎｓ＿ｓｎｒ［０］の値がＳＮＲしきい値２５ｄＢ未満である場合、雑音が多い音声に対するしきい値ＶＯＩＣＥＤＴＨ＝０．６５、ＬＯＷＶＯＩＣＥＤＴＨ＝０．５、ＵＮＶＯＩＣＥＤＴＨ＝０．３５を適用することができる。
【０２４７】
フレームの正確な分類は、低レートボコーダの良好な品質を保証するのに特に重要である。たとえば、オンセットフレームが少なくとも１つの別個のピークまたはパルスを有する場合のみ、ここで説明される遷移フレームコーディングモードを使用することが望ましい。そのような特徴は確実なパルス検出にとって重要であり、それがなければ、遷移フレームコーディングモードは歪められた結果を生成することがある。ＰＰＰまたは遷移フレームコーディングスキームではなくＮＥＬＰコーディングスキームを使用して、少なくとも１つの別個のピークまたはパルスがないフレームを符号化することが望ましい。たとえば、そのような過渡フレームまたは立上り過渡フレームを無声フレームとして再分類することが望ましい。
【０２４８】
そのような再分類は、１つまたは複数の正規化自己相関関数（ＮＡＣＦ）値および／または他の特徴に基づくことができる。再分類はまた、フレームのピーク対ＲＭＳエネルギー値（「最大サンプル／ＲＭＳエネルギー」）および／またはフレーム中のピッチパルスの実際の数（「ピーク数」）など、ＥＶＲＣ分類スキームに使用されない特徴に基づくことができる。図６４のテーブルに示す８個の条件のうちのいずれか１つまたは複数、および／または図６５のテーブルに示す１０個の条件のうちのいずれか１つまたは複数は、立上り過渡フレームを無声フレームとして再分類するために使用される。図６６のテーブルに示す１１個の条件のうちのいずれか１つまたは複数、および／または図６７のテーブルに示す１１個の条件のうちのいずれか１つまたは複数は、過渡フレームを無声フレームとして再分類するために使用される。図６８のテーブルに示す４つの条件のうちのいずれか１つまたは複数は、有声フレームを無声フレームとして再分類するために使用される。また、そのような再分類をローバンド雑音が比較的ないフレームに限定することが望ましい。たとえば、図６５、図６７、または図６８の条件のいずれかに従って、あるいは、ｃｕｒｒ＿ｎｓ＿ｓｎｒ［０］の値が２５ｄＢ以上である場合のみ、図６６の７つの右端の条件のいずれかに従って、フレームを再分類することが望ましい。
【０２４９】
逆に、少なくとも１つの別個のピークまたはパルスを含む無声フレームを立上り過渡フレームまたは過渡フレームとして再分類することが望ましい。そのような再分類は、１つまたは複数の正規化自己相関関数（ｎｏｒｍａｌｉｚｅｄ  ａｕｔｏｃｏｒｒｅｌａｔｉｏｎ：ＮＡＣＦ）値および／または他の特徴に基づくことができる。また、再分類は、フレームのピーク対ＲＭＳエネルギー値および／またはピーク数など、ＥＶＲＣ分類スキームにおいて使用されない特徴に基づくことができる。図６９のテーブルに示す７つの条件のうちのいずれか１つまたは複数は、無声フレームを立上り過渡フレームとして再分類するために使用される。図７０のテーブルに示す９つの条件のうちのいずれか１つまたは複数は、無声フレームを過渡フレームとして再分類するために使用される。図７１Ａのテーブルに示す条件は、立下り過渡フレームを有声フレームとして再分類するために使用される。図７１Ｂのテーブルに示す条件は、立下り過渡フレームを過渡フレームとして再分類するために使用される。
【０２５０】
フレーム再分類の代替として、ＥＶＲＣ分類スキームなどのフレーム分類の方法は、ＥＶＲＣ分類スキームと、上述したおよび／または図６４〜図７１Ｂに示す再分類条件のうちの１つまたは複数との組合せに等しい分類結果を生成するように変更できる。
【０２５１】
図７２に、音声エンコーダＡＥ２０の実装ＡＥ３０のブロック図を示す。図５５〜図６３のコードリストで説明するＥＶＲＣ分類スキームなどの分類スキームを適用するように、コーディングスキームセレクタＣ２００を構成することができる。音声エンコーダＡＥ３０は、上述したおよび／または図６４〜図７１Ｂに示す条件のうちの１つまたは複数に従って、フレームを再分類するように構成されたフレーム再分類器ＲＣ１０を含む。フレーム分類、および／またはコーディングスキームセレクタＣ２００からの他のフレーム特徴の値を受信するように、フレーム再分類器ＲＣ１０を構成することができる。また、追加のフレーム特徴（たとえば、ピーク対ＲＭＳエネルギー値、ピーク数）の値を計算するように、フレーム再分類器ＲＣ１０を構成することができる。代替的に、ＥＶＲＣ分類スキームと、上述したおよび／または図６４〜図７１Ｂに示す再分類条件のうちの１つまたは複数との組合せに等しい分類結果を生成するコーディングスキームセレクタＣ２００の実装を含むように、音声エンコーダＡＥ３０を実装することができる。
【０２５２】
図７３Ａに、音声エンコーダＡＥ１０の実装ＡＥ４０のブロック図を示す。音声エンコーダＡＥ４０は、周期フレームを符号化するように構成された周期フレームエンコーダＥ７０と、非周期フレームを符号化するように構成された非周期フレームエンコーダＥ８０とを含む。たとえば、音声エンコーダＡＥ４０は、有声、過渡、立上り過渡、または立下り過渡として分類されたフレームの場合は周期フレームエンコーダＥ７０を選択し、無声または無音として分類されたフレームの場合は非周期フレームエンコーダＥ８０を選択するように、セレクタ６０ａ、６０ｂに指示するように構成されたコーディングスキームセレクタＣ２００の実装を含むことができる。音声エンコーダＡＥ４０のコーディングスキームセレクタＣ２００は、ＥＶＲＣ分類スキームと、上述したおよび／または図６４〜図７１Ｂに示す再分類条件のうちの１つまたは複数との組合せに等しい分類結果を生成するように実装できる。
【０２５３】
図７３Ｂに、周期フレームエンコーダＥ７０の実装Ｅ７２のブロック図を示す。エンコーダＥ７２は、ここで説明される第１のフレームエンコーダ１００の実装と、第２のフレームエンコーダ２００の実装とを含む。エンコーダＥ７２はまた、コーディングスキームセレクタＣ２００からの分類結果に従って現在のフレームに対して、エンコーダ１００および２００のうちの１つを選択するように構成されたセレクタ８０ａ、８０ｂを含む。第２のフレームエンコーダ２００（たとえば、ＱＰＰＰエンコーダ）を周期フレームに対するデフォルトのエンコーダとして選択するように、周期フレームエンコーダＥ７２を構成することが望ましい。無声フレームエンコーダ（たとえば、ＱＮＥＬＰエンコーダ）と無音フレームエンコーダ（たとえば、１／８レートＮＥＬＰエンコーダ）とのうちの１つを選択するように、非周期フレームエンコーダＥ８０を同様に実装することができる。代替的に、非周期フレームエンコーダＥ８０を無声フレームエンコーダＵＥ１０のインスタンスとして実装することができる。
【０２５４】
図７４に、周期フレームエンコーダＥ７２の実装Ｅ７４のブロック図を示す。エンコーダＥ７４は、上述したおよび／または図６４〜図７１Ｂに示す条件のうちの１つまたは複数に従ってフレームを再分類し、再分類の結果に従って現在のフレームに対してエンコーダ１００および２００のうちの１つを選択するようにセレクタ８０ａ、８０ｂを制御するように構成されたフレーム再分類器ＲＣ１０のインスタンスを含む。さらなる一例では、フレーム再分類器ＲＣ１０を含むか、あるいは、ＥＶＲＣ分類スキームと、上述したおよび／または図６４〜図７１Ｂに示す再分類条件のうちの１つまたは複数との組合せに等しい分類スキームを実行し、そのような分類または再分類によって示される第１のフレームエンコーダ１００を選択するように、コーディングスキームセレクタＣ２００を構成することができる。
【０２５５】
上述の遷移フレームコーディングモードを使用して、過渡フレームおよび／または立上り過渡フレームを符号化することが望ましい。図７５Ａ〜図７５Ｄに、ここで説明される遷移フレームコーディングモードの使用が望ましい、いくつかの典型的なフレームシーケンスを示す。これらの例では、遷移フレームコーディングモードの使用を、典型的に輪郭を太く描いたフレームとして示す。そのようなコーディングモードは典型的に、比較的一定のピッチ周期およびシャープなパルスを有する完全な有声フレーム、または、部分的な有声フレームに対して適切に機能する。ただし、フレームにシャープなパルスがないとき、またはフレームが発声の実際のオンセットに先行するとき、復号された音声の品質が低くなることがある。場合によっては、遷移フレームコーディングモードの使用をスキップまたはキャンセルするか、あるいは、さもなければこのコーディングモードの使用を後のフレーム（たとえば、後続のフレーム）まで遅延させることが望ましい。
【０２５６】
パルス検出失敗が、ピッチ誤差、パルスの消失、および／または外来パルスの挿入を引き起こすことがある。そのような誤差が、復号された音声中にポップ、クリックおよび／または他の不連続などのひずみをもたらすことがある。したがって、フレームが遷移フレームコーディングに好適であることを検証することが望ましく、フレームが好適でないとき、遷移フレームコーディングモードの使用をキャンセルすることがそのような問題を低減するのに役立つ。
【０２５７】
過渡フレームまたは立上り過渡フレームが遷移フレームコーディングモードに好適でないことが判断されることがある。たとえば、フレームに、別個のシャープなパルスがないことがある。そのような場合、遷移フレームコーディングモードを使用して、好適でないフレームの後に続く第１の好適な有声フレームを符号化することが望ましい。たとえば、オンセットフレームに別個のシャープなパルスがない場合、後に続く第１の好適な有声フレームに対して遷移フレームコーディングを実行することが望ましい。そのような技法は、後続の有声フレームに対する良好な基準を保証するのに役立つ。
【０２５８】
場合によっては、遷移フレームコーディングモードの使用は、パルス利得不一致問題および／またはパルス形状不一致問題をもたらす。限られた数のビットしかこれらのパラメータを符号化するために利用可能ではなく、遷移フレームコーディングが別様に示されているが、現在のフレームが良好な基準を与えないことがある。遷移フレームコーディングモードの不要な使用をキャンセルすることが、そのような問題を低減するのに役立つ。したがって、遷移フレームコーディングモードが現在のフレームにとって別のコーディングモードよりも好適であることを検証することが望ましい。
【０２５９】
遷移フレームコーディングの使用をスキップまたはキャンセルした場合、遷移フレームコーディングモードを使用して後に続く第１の好適なフレームを符号化する行為が、後続の有声フレームに良好な基準を与えるのに役立つので、そのような行為を行うことが望ましい。たとえば、まさにその次のフレームが少なくとも部分的に有声である場合、そのフレームに対して遷移フレームコーディングを強制することが望ましい。
【０２６０】
遷移フレームコーディングのニーズ、および／または遷移フレームコーディングに対するフレームの適合性は、現在のフレーム分類、前のフレーム分類、（たとえば、本明細書で参照した３ＧＰＰ２文書Ｃ．Ｓ００１４−Ｃのセクション４．６．３に記載されている一例で、相関ベースの技法などのピッチ推定ルーチンによって判断された）初期ラグ値、（たとえば、方法Ｍ３００などのパルス検出動作によって判断された）変更されたラグ値、前のフレームのラグ値、および／またはＮＡＣＦ値などの基準に基づいて判断できる。
【０２６１】
良好な基準なしにＱＰＰＰを使用した結果は予測不可能になることがあるので、有声区間の始端の近くで遷移フレームコーディングモードを使用することが望ましい。ただし、場合によっては、ＱＰＰＰは、遷移フレームコーディングモードよりも良好な結果を与えることが予想される。たとえば、場合によっては、遷移フレームコーディングモードの使用は、不良基準を生じるか、またはＱＰＰＰを使用することよりも好ましくない結果を引き起こすことさえ予想される。
【０２６２】
遷移フレームコーディングが現在のフレームに不要である場合、遷移フレームコーディングをスキップすることが望ましい。そのような場合、（たとえば、ＱＰＰＰの連続性を保持するために）ＱＰＰＰなどの有声コーディングモードにデフォルト設定されることが望ましい。遷移フレームコーディングモードの不要な使用は、（たとえば、これらの特徴に対する限定されたビットバジェットにより）後のフレームにおけるパルス利得および／またはパルス形状の不一致の問題をもたらすことがある。ＱＰＰＰなど、限定された時間同期性を有する有声コーディングモードは、特にそのような誤差に反応することができる。
【０２６３】
遷移フレームコーディングスキームを使用してフレームを符号化した後、符号化結果を検査し、符号化結果が不良である場合、フレームに対する遷移フレームコーディングの使用を除去することが望ましい。大部分が無声であり、終端の近くでのみ有声になるフレームの場合、遷移コーディングモードを、パルスなしに無声部分を（たとえば、０または低い値として）符号化するように構成するか、または遷移コーディングモードを、無声部分の少なくとも一部をパルスで充填するように構成することができる。無声部分がパルスなしに符号化された場合、フレームは、復号された信号中に可聴クリックまたは不連続を生成することがある。そのような場合、ＮＥＬＰコーディングスキームをフレームに対して代わりに使用することが望ましい。ただし、ひずみを引き起こすことがある有声区間に対するＮＥＬＰの使用を避けることが望ましい。遷移コーディングモードがフレームに対してキャンセルされた場合、たいていの場合、無声コーディングモード（たとえば、ＱＮＥＬＰ）ではなく有声コーディングモード（たとえば、ＱＰＰＰ）を使用してフレームを符号化することが望ましい。上述のように、遷移コーディングモードを使用するという選択を、遷移コーディングモードと有声コーディングモードとの間の選択として実装することができる。良好な基準なしにＱＰＰＰを使用した結果は予測不可能である（たとえば、フレームの位相は、先行する無声フレームから導出できる）が、復号された信号中にクリックまたは不連続を生成する可能性はない。そのような場合、遷移コーディングモードの使用は、次のフレームまで延期されることがある。
【０２６４】
フレーム間のピッチ不連続が検出されたとき、フレームに対して遷移コーディングモードを使用するという決定をオーバーライドすることが望ましい。一例では、タスクＴ７１０は、前のフレームとのピッチ連続性について検査する（たとえば、ピッチ２倍誤差について検査する）。フレームが有声または過渡として分類され、パルス検出ルーチンによって現在のフレームに対して示されたラグ値が、パルス検出ルーチンによって前のフレームに対して示されたラグ値よりもはるかに小さい（たとえば、その約１／２、１／３、または１／４である）場合、タスクは、遷移コーディングモードを使用するという決定をキャンセルする。
【０２６５】
別の例では、タスクＴ７２０は、前のフレームに比較してピッチオーバーフローについて検査する。音声が最大許容ラグよりも高いラグ値を生じる極めて低いピッチ周波数を有するとき、ピッチオーバーフローが発生する。前のフレームに対するラグ値が大きく（たとえば、１００サンプルよりも多く）、ピッチ推定ルーチンとパルス検出ルーチンとによって現在のフレームに対して示されたラグ値が、両方とも前のピッチよりもはるかに小さい（たとえば、その５０％よりも小さい）場合、遷移コーディングモードを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。そのような場合、また、フレームの最も大きいピッチパルスのみを単一パルスとして保持することが望ましい。代替的に、前のラグ推定値と、有声および／または相対コーディングモード（たとえば、タスクＥ２００、ＱＰＰＰ）とを使用してフレームを符号化することができる。
【０２６６】
２つの異なるルーチンからの結果の間の不整合が検出されたとき、フレームに対して遷移コーディングモードを使用するという決定をオーバーライドすることが望ましい。一例では、タスクＴ７３０は、強いＮＡＣＦの存在下での、ピッチ推定ルーチン（たとえば、本明細書で参照した３ＧＰＰ２文書Ｃ．Ｓ００１４−Ｃのセクション４．６．３に記載されている、たとえば相関ベースの技法）からのラグ値と、パルス検出ルーチン（たとえば、方法Ｍ３００）からの推定ピッチ周期との間の整合性について検査する。検出された第２のパルスのピッチにおける極めて高いＮＡＣＦが良好なピッチ推定値を示すので、２つのラグ推定値間の不整合が予期しないものとなる。パルス検出ルーチンからのラグ推定値がピッチ推定ルーチンからのラグ推定値とは極めて異なる（たとえば、その１．６倍、または１６０パーセントよりも大きい）場合、遷移コーディングモードを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。
【０２６７】
別の例では、タスクＴ７４０は、ラグ値と端末パルスの位置との間の一致について検査する。（ピーク間の距離の平均とすることができる）ラグ推定値を使用して符号化された、ピーク位置のうちの１つまたは複数が、対応する実際のピーク位置とはあまりに異なるとき、遷移フレームコーディングモードを使用するという決定をキャンセルすることが望ましい。端末パルスの位置とパルス検出ルーチンによって計算されたラグ値とを使用して、再構成されたピッチパルス位置を計算し、再構成された位置の各々をパルス検出アルゴリズムによって検出された実際のピッチピーク位置と比較し、差のいずれかが大きすぎる（たとえば、８サンプルよりも大きい）場合、遷移フレームコーディングを使用するという決定をキャンセルするように、タスクＴ７４０を構成することができる。
【０２６８】
さらなる一例では、タスクＴ７５０は、ラグ値とパルス位置との間の一致について検査する。最終ピッチピークが最終フレーム境界から２つ以上のラグ周期だけ離れている場合、遷移フレームコーディングを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。たとえば、最終ピッチパルスの位置とフレームの終端との間の距離が最終ラグ推定値（たとえば、ラグ推定タスクＬ２００および／または方法Ｍ３００によって計算されたラグ値）よりも大きい場合、遷移フレームコーディングを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。そのような条件は、パルス検出失敗、またはまだ安定していないラグを示すことができる。
【０２６９】
現在のフレームが２つのパルスを有し、過渡フレームとして分類された場合、および２つのパルスのピークの２乗絶対値の比が大きい場合、ラグ値全体にわたって２つのパルスを相関させ、相関結果が対応するしきい値よりも大きくなければ（代替的に、しきい値以上でなければ）より小さいピークを除去することが望ましい。また、より小さいピークが除去された場合、フレームに対して遷移フレームコーディングモードを使用するという決定をキャンセルすることが望ましい。
【０２７０】
図７６に、フレームに対して遷移フレームコーディングを使用するという決定をキャンセルするために使用できる２つのルーチンのコードリストを示す。このリストで、ｍｏｄ＿ｌａｇは、パルス検出ルーチンからのラグ値を示し、ｏｒｉｇ＿ｌａｇは、ピッチ推定ルーチンからのラグ値を示し、ｐｄｅｌａｙ＿ｔｒａｎｓｉｅｎｔ＿ｃｏｄｉｎｇは、前のフレームに対するパルス検出ルーチンからのラグ値を示し、ＰＲＥＶ＿ＴＲＡＮＳＩＥＮＴ＿ＦＲＡＭＥ＿Ｅは、遷移コーディングモードが前のフレームに対して使用されたかどうかを示し、ｌｏｃ［０］は、フレームの最終ピッチピークの位置を示す。
【０２７１】
図７７に、遷移フレームコーディングを使用するという決定をキャンセルするために使用できる４つの異なる条件を示す。このテーブルで、ｃｕｒｒ＿ｍｏｄｅは、現在のフレーム分類を示し、ｐｒｅｖ＿ｍｏｄｅは、前のフレームに対するフレーム分類を示し、ｎｕｍｂｅｒ＿ｏｆ＿ｐｕｌｓｅｓは、現在のフレーム中のパルスの数を示し、ｐｒｅｖ＿ｎｏ＿ｏｆ＿ｐｕｌｓｅｓは、前のフレーム中のパルスの数を示し、ｐｉｔｃｈ＿ｄｏｕｂｌｉｎｇは、ピッチ２倍誤差が現在のフレーム中で検出されたかどうかを示し、ｄｅｌｔａ＿ｌａｇ＿ｉｎｔｒａは、ピッチ推定ルーチン（たとえば、本明細書で参照した３ＧＰＰ２文書Ｃ．Ｓ００１４−Ｃのセクション４．６．３に記載されている、たとえば相関ベースの技法）からのラグ値と、たとえば方法Ｍ３００などのパルス検出ルーチンからのラグ値との間の差の（たとえば、整数の）絶対値（または、ピッチ２倍が検出された場合、ピッチ推定ルーチンからのラグ値の半分と、パルス検出ルーチンからのラグ値との間の差の絶対値）を示し、ｄｅｌｔａ＿ｌａｇ＿ｉｎｔｅｒは、前のフレームの最終ラグ値と、現在のフレームに対するピッチ推定ルーチンからのラグ値（またはピッチ２倍が検出された場合、そのラグ値の半分）との間の差の（たとえば、浮動小数点の）絶対値を示し、ＮＥＥＤ＿ＴＲＡＮＳは、現在のフレームに対する遷移フレームコーディングモードの使用が前のフレームのコーディング中に示されたかどうかを示し、ＴＲＡＮＳ＿ＵＳＥＤは、遷移コーディングモードが前のフレームを符号化するために使用されたかどうかを示し、ｆｕｌｌｙ＿ｖｏｉｃｅｄは、端末ピッチパルスの位置と反対側のフレームの終端との間の距離を最終ラグ値によって除算した整数部分がｎｕｍｂｅｒ＿ｏｆ＿ｐｕｌｓｅｓ−１に等しいかどうかを示す。しきい値の例には、Ｔ１Ａ＝［０．１＊（パルス検出ルーチンからのラグ値）＋０．５］、Ｔ１Ｂ＝［０．０５＊（パルス検出ルーチンからのラグ値）＋０．５］、Ｔ２Ａ＝［０．２＊（前のフレームに対する最終ラグ値）］、およびＴ２Ｂ＝［０．１５＊（前のフレームに対する最終ラグ値）］がある。
【０２７２】
タスクＴ７１０〜Ｔ７５０、図７６のコードリスト、および図７７に示す条件など、遷移コーディングモードを使用するという決定をキャンセルするための上述の設定のうちの１つまたは複数を含むように、フレーム再分類器ＲＣ１０を実装することができる。たとえば、図７８に示す方法Ｍ７００を実行し、テストタスクＴ７１０〜Ｔ７５０のいずれかが不合格になった場合、遷移コーディングモードを使用するという決定をキャンセルするように、フレーム再分類器ＲＣ１０を実装することができる。
【０２７３】
図７９Ａに、タスクＥ５１０、Ｅ５２０、Ｅ５３０、およびＥ５４０を含む、一般的構成による音声信号フレームを符号化する方法Ｍ９００のフローチャートを示す。タスクＥ５１０は、フレームの残差（たとえば、ＬＰＣ残差）のピークエネルギーを計算する。最も大きい振幅を有するサンプル（代替的に、最も大きい絶対値を有するサンプル）の値を２乗することによってピークエネルギーを計算するように、タスクＥ５１０を構成することができる。タスクＥ５２０は、残差の平均エネルギーを計算する。サンプルの２乗値を合計し、その合計をフレーム中のサンプル数で除算することによって平均エネルギーを計算するように、タスクＥ５２０を構成することができる。計算されたピークエネルギーと計算された平均エネルギーとの間の関係に基づいて、タスクＥ５３０は、雑音励振コーディングスキーム（たとえば、ここで説明されたＮＥＬＰスキーム）、または（たとえば、タスクＥ１００に関してここで説明された）非差分ピッチプロトタイプコーディングスキームのいずれかを選択する。タスクＥ５４０は、タスクＥ５３０によって選択されたコーディングスキームに従ってフレームを符号化する。タスクＥ５３０が非差分ピッチプロトタイプコーディングスキームを選択する場合、タスクＥ５４０は、フレームのピッチパルスの時間領域形状の表現と、フレームのピッチパルスの位置の表現と、フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む。たとえば、タスクＥ５４０は、ここで説明されるタスクＥ１００のインスタンスを含むように実装できる。
【０２７４】
典型的に、タスクＥ５３０が基づく計算されたピークエネルギーと計算された平均エネルギーとの間の関係は、ピーク対ＲＭＳエネルギーの比である。そのような比は、タスクＥ５３０によって、または方法Ｍ９００の別のタスクによって計算できる。コーディングスキーム選択決定の一部として、この比を、１つまたは複数の他のパラメータの現在値に従って変化することがあるしきい値と比較するように、タスクＥ５３０を構成することができる。たとえば、図６４〜図６７、図６９、および図７０に、他のパラメータの値に従って、異なる値（たとえば、１４、１６、２４、２５、３５、４０、または６０）がこのしきい値に使用される例を示す。
【０２７５】
図７９Ｂに、方法Ｍ９００の実装Ｍ９１０のフローチャートを示す。この場合、タスクＥ５３０は、ピークと平均エネルギーとの間に関係に基づいて、同様に１つまたは複数の他のパラメータ値に基づいてコーディングスキームを選択するように構成される。方法Ｍ９１０は、フレーム中のピッチピークの数（タスクＥ５５０）および／またはフレームのＳＮＲ（タスクＥ５６０）などの追加のパラメータの値を計算する１つまたは複数のタスクを含む。コーディングスキーム選択決定の一部として、そのようなパラメータ値を、１つまたは複数の他のパラメータの現在値に従って変化することがあるしきい値と比較するように、タスクＥ５３０を構成することができる。図６５および図６６に、異なるしきい値（たとえば、４または５）が、タスクＥ５５０によって計算された現在のピーク数の値を評価するために使用される例を示す。タスクＥ５５０は、ここで説明された方法Ｍ３００のインスタンスとして実装できる。フレームのＳＮＲ、あるいはローバンド部分またはハイバンド部分（たとえば、図５１に示すｃｕｒｒ＿ｎｓ＿ｎｓｒ［０］またはｃｕｒｒ＿ｎｓ＿ｓｎｒ［１］）などのフレームの部分のＳＮＲを計算するように、タスクＥ５６０を構成することができる。たとえば、ｃｕｒｒ＿ｎｓ＿ｓｎｒ［０］（すなわち、０〜２ｋＨｚ帯域のＳＮＲ）を計算するように、タスクＥ５６０を構成することができる。１つの特定の例では、タスクＥ５３０は、図６５または図６７の条件のいずれかに従って、あるいは、ｃｕｒｒ＿ｎｓ＿ｓｎｒ［０］の値がしきい値（たとえば、２５ｄＢ）以上である場合のみ、図６６の７つの右端の条件のいずれかに従って、雑音励振コーディングスキームを選択するように構成される。
【０２７６】
図８０Ａに、タスクＥ５７０およびＥ５８０を含む方法Ｍ９００の実装Ｍ９２０のフローチャートを示す。タスクＥ５７０は、音声信号の次のフレーム（「第２のフレーム」）が有声である（たとえば、高度に周期的である）ことを判断する。たとえば、タスクＥ５７０は、第２のフレームに対してここで説明されたＥＶＲＣ分類のバージョンを実行するように構成できる。タスクＥ５３０が第１のフレーム（すなわち、タスクＥ５４０において符号化されたフレーム）に対して雑音励振コーディングスキームを選択した場合、タスクＥ５８０は、非差分ピッチプロトタイプコーディングスキームに従って第２のフレームを符号化する。タスクＥ５８０は、ここで説明されたタスクＥ１００のインスタンスとして実装できる。
【０２７７】
方法Ｍ９２０はまた、第２のフレームの直後に続く第３のフレームに対して差分符号化演算を実行するタスクを含むように実装できる。そのようなタスクは、（Ａ）第３のフレームのピッチパルス形状と第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）第３のフレームのピッチ周期と第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含むことができる。ここで説明されるタスクＥ２００のインスタンスとしてそのようなタスクを実装することができる。
【０２７８】
図８０Ｂに、音声信号フレームを符号化するための装置ＭＦ９００のブロック図を示す。装置ＭＦ９００は、（たとえば、タスクＥ５１０の様々な実装に関して上記で説明したように）ピークエネルギーを計算するための手段ＦＥ５１０と、（たとえば、タスクＥ５２０の様々な実装に関して上記で説明したように）平均エネルギーを計算するための手段ＦＥ５２０と、（たとえば、タスクＥ５３０の様々な実装に関して上記で説明したように）コーディングスキームを選択するための手段ＦＥ５３０と、（たとえば、タスクＥ５４０の様々な実装に関して上記で説明したように）フレームを符号化するための手段ＦＥ５４０とを含む。図８１Ａに、（たとえば、タスクＥ５５０の様々な実装に関して上記で説明したように）フレームのピッチパルスピークの数を計算するための手段ＦＥ５５０、および／または（たとえば、タスクＥ５６０の様々な実装に関して上記で説明したように）フレームのＳＮＲを計算するための手段ＦＥ５６０など、１つまたは複数の追加の手段を含む装置ＭＦ９００の実装ＭＦ９１０のブロック図を示す。図８１Ｂに、（たとえば、タスクＥ５７０の様々な実装に関して上記で説明したように）音声信号の第２のフレームが有声であることを示すための手段ＦＥ５７０と、（たとえば、タスクＥ５８０の様々な実装に関して上記で説明したように）第２のフレームを符号化するための手段ＦＥ５８０とを含む装置ＭＦ９００の実装ＭＦ９２０のブロック図を示す。
【０２７９】
図８２Ａに、一般的構成による、音声信号フレームを符号化するための装置Ａ９００のブロック図を示す。装置Ａ９００は、（たとえば、タスクＥ５１０に関して上記で説明したように）フレームのピークエネルギーを計算するように構成されたピークエネルギー計算器７１０と、（たとえば、タスクＥ５２０に関して上記で説明したように）フレームの平均エネルギーを計算するように構成された平均エネルギー計算器７２０とを含む。装置Ｍ９００は、雑音励振コーディングスキーム（たとえば、ＮＥＬＰコーディングスキーム）に従ってフレームを符号化するように選択可能に構成された第１のフレームエンコーダ７４０を含む。エンコーダ７４０は、ここで説明される無声フレームエンコーダＵＥ１０または非周期フレームエンコーダＥ８０のインスタンスとして実装できる。装置Ａ９００はまた、非差分ピッチプロトタイプコーディングスキームに従ってフレームを符号化するように選択可能に構成された第２のフレームエンコーダ７５０を含む。エンコーダ７５０は、フレームのピッチパルスの時間領域形状の表現と、フレームのピッチパルスの位置の表現と、フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成するように構成される。エンコーダ７５０は、ここで説明されるフレームエンコーダ１００、装置Ａ４００、または装置Ａ６５０の実例として実装でき、ならびに／あるいは計算器７１０および／または７２０を含むように実装できる。装置Ａ９００はまた、選択可能にフレームエンコーダ７４０および７５０のうちの１つにフレームを符号化させるように構成されたコーディングスキームセレクタ７３０を含み、その選択は、（たとえば、タスクＥ５３０の様々な実装に関して上記で説明したように）計算されたピークエネルギーと計算された平均エネルギーとの間に関係に基づく。コーディングスキームセレクタ７３０は、ここで説明されるコーディングスキームセレクタＣ２００またはＣ３００のインスタンスとして実装でき、ここで説明されるフレーム再分類器ＲＣ１０のインスタンスを含むことができる。
【０２８０】
音声エンコーダＡＥ１０は、装置Ａ９００を含むように実装できる。たとえば、音声エンコーダＡＥ２０、ＡＥ３０、またはＡＥ４０のコーディングスキームセレクタＣ２００は、ここで説明されるコーディングスキームセレクタ７３０のインスタンスを含むように実装できる。
【０２８１】
図８２Ｂに、装置Ａ９００の実装Ａ９１０のブロック図を示す。この場合、コーディングスキームセレクタ７３０は、（たとえば、方法Ｍ９１０に実装されるタスクＥ５３０に関してここで説明されたように）ピークと平均エネルギーとの間に関係に基づいて、同様に１つまたは複数の他のパラメータ値に基づいてコーディングスキームを選択するように構成される。装置Ａ９１０は、追加のパラメータの値を計算する１つまたは複数の要素を含む。たとえば、装置Ａ９１０は、（たとえば、タスクＥ５５０または装置Ａ３００に関して上記で説明したように）フレーム中のピッチピークの数を計算するように構成されたピッチパルスピークカウンタ７６０を含むことができる。追加または代替として、装置Ａ９１０は、（たとえば、タスクＥ５６０に関して上記で説明したように）フレームのＳＮＲを計算するように構成されたＳＮＲ計算器７７０を含むことができる。コーディングスキームセレクタ７３０は、カウンタ７６０および／またはＳＮＲ計算器７７０を含むように実装できる。
【０２８２】
便宜のために、ここで、装置Ａ９００に関して上記で説明した音声信号フレームを「第１のフレーム」と呼び、音声信号中の第１のフレームに続くフレームを「第２のフレーム」と呼ぶ。コーディングスキームセレクタ７３０は、（たとえば、方法Ｍ９２０に実装されるタスクＥ５７０に関してここで説明されたように）第２のフレームに対してフレーム分類演算を実行するように構成できる。たとえば、コーディングスキームセレクタ７３０は、第１のフレームに対して雑音励振コーディングスキームを選択し、第２のフレームが有声であると判断したことに応答して、（すなわち、非差分ピッチプロトタイプコーディングスキームに従って）第２のフレームエンコーダ７５０に第２のフレームを符号化させるように構成できる。
【０２８３】
図８３Ａに、（たとえば、タスクＥ２００に関してここで説明されたように）フレームに対して差分符号化演算を実行するように構成された第３のフレームエンコーダ７８０を含む装置Ａ９００の実装Ａ９２０のブロック図を示す。言い換えれば、エンコーダ７８０は、（Ａ）現在のフレームのピッチパルス形状と前のフレームのピッチパルス形状との間の差の表現と、（Ｂ）現在のフレームのピッチ周期と前のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成するように構成される。エンコーダ７８０が音声信号中の第２のフレームの直後に続く第３のフレームに対して差分符号化演算を実行するように、装置Ａ９２０を実装することができる。
【０２８４】
図８３Ｂに、タスクＴ６１０、Ｅ６２０、Ｅ６３０、およびＴ６４０を含む、一般的構成による音声信号フレームを符号化する方法Ｍ９５０のフローチャートを示す。タスクＥ６１０は、フレームのピッチ周期を推定する。タスクＥ６１０は、ここで説明されるタスクＥ１３０、Ｌ２００、Ｅ３７０、またはＥ４１０のインスタンスとして実装できる。タスクＥ６２０は、第１の値と第２の値との間の関係の値を計算し、第１の値は推定ピッチ周期に基づき、第２の値はフレームの別のパラメータに基づく。計算値に基づいて、タスクＥ６３０は、雑音励振コーディングスキーム（たとえば、ここで説明されるＮＥＬＰスキーム）または（たとえば、タスクＥ１００に関してここで説明されたように）非差分ピッチプロトタイプコーディングスキームのいずれかを選択する。タスクＥ６４０は、タスクＥ６３０によって選択されたコーディングスキームに従ってフレームを符号化する。タスクＥ６３０が非差分ピッチプロトタイプコーディングスキームを選択する場合、タスクＥ６４０は、フレームのピッチパルスの時間領域形状の表現と、フレームのピッチパルスの位置の表現と、フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む。たとえば、タスクＥ６４０は、ここで説明されるタスクＥ１００のインスタンスを含むように実装できる。
【０２８５】
図８４Ａに、方法Ｍ９５０の実装Ｍ９６０のフローチャートを示す。方法Ｍ９６０は、フレームの他のパラメータを計算する１つまたは複数のタスクを含む。方法Ｍ９６０は、フレームの端末ピッチパルスの位置を計算するタスクＥ６５０を含むことができる。タスクＥ６５０は、ここで説明されるタスクＥ１２０、Ｌ１００、Ｅ３１０、またはＥ４６０のインスタンスとして実装できる。端末ピッチパルスがフレームの最終ピッチパルスである場合、タスクＥ６２０を、端末ピッチパルスとフレームの最後のサンプルとの間の距離が推定ピッチ周期以下であることを確認するように構成することができる。タスクＥ６５０が最後のサンプルに対するパルス位置を計算する場合、この確認は、パルス位置の値と推定ピッチ周期の値とを比較することによって実行できる。たとえば、そのようなパルス位置から推定ピッチ周期を減算することが少なくとも０に等しい結果を残す場合、その状態が確認される。端末ピッチパルスがフレームの最初のピッチパルスである場合、タスクＥ６２０を、端末ピッチパルスとフレームの第１のサンプルとの間の距離が推定ピッチ周期以下であることを確認するように構成することができる。これらの場合のいずれかでは、（たとえば、タスクＴ７５０に関してここで説明されたように）確認が不合格になった場合、雑音励振コーディングスキームを選択するようにタスクＥ６３０を構成することができる。
【０２８６】
端末ピッチパルス位置計算タスクＥ６５０に加えて、方法Ｍ９６０は、フレームの複数の他のピッチパルスの位置を特定するタスクＥ６７０を含むことができる。この場合、タスクＥ６５０は、推定ピッチ周期と計算されたピッチパルス位置とに基づいて複数のピッチパルス位置を計算するように構成でき、タスクＥ６２０は、位置を特定されたピッチパルスの位置が計算されたピッチパルス位置にどのくらい一致するかを評価するように構成できる。たとえば、タスクＥ６２０が、（たとえば、タスクＴ７４０に関して上記で説明したように）８つのサンプルなど、（Ａ）位置を特定されたピッチパルスの位置と、（Ｂ）対応する計算されたピッチパルス位置との間の差のいずれかがしきい値よりも大きいと判断した場合、雑音励振コーディングスキームを選択するようにタスクＥ６３０を構成することができる。
【０２８７】
上記の例のいずれかに加えてまたはその代替として、方法Ｍ９６０は、フレームの残差（たとえば、ＬＰＣ残差）の自己相関値を最大にするラグ値を計算するタスクＥ６６０を含むことができる。そのようなラグ値（または「ピッチ遅延」）の計算は、上記で参照した３ＧＰＰ２文書Ｃ．Ｓ００１４−Ｃのセクション４．６．３（ｐｐ．４−４４〜４−４９）に記載されており、そのセクションは、そのような計算の一例として参照によりここに組み込まれる。この場合、タスクＥ６２０は、推定ピッチ周期が計算されたラグ値の指定された比率（たとえば、１６０パーセント）以下であることを確認するように構成できる。確認が不合格になった場合、雑音励振コーディングスキームを選択するようにタスクＥ６３０を構成することができる。方法Ｍ９６０の関係する実装では、確認が不合格になり、また、（たとえば、タスクＴ７３０に関して上記で説明したように）現在のフレームの１つまたは複数のＮＡＣＦ値が十分に高い場合、雑音励振コーディングスキームを選択するようにタスクＥ６３０を構成することができる。
【０２８８】
上記の例のいずれかに加えてまたはその代替として、タスクＥ６２０は、推定ピッチ周期に基づく値を音声信号の前のフレーム（たとえば、現在のフレームの前の最後のフレーム）のピッチ周期と比較するように構成できる。そのような場合、（たとえば、タスクＴ７１０に関して上記で説明したように）推定ピッチ周期が前のフレームのピッチ周期よりもはるかに小さい（たとえば、約１／２、１／３、または１／４）である場合、雑音励振コーディングスキームを選択するようにタスクＥ６３０を構成することができる。追加または代替として、前のピッチ周期が大きく（たとえば、１００サンプルよりも多い）、（たとえば、タスクＴ７２０に関して上記で説明したように）推定ピッチ周期が前のピッチ周期の半分未満である場合、雑音励振コーディングスキームを選択するようにタスクＥ６３０を構成することができる。
【０２８９】
図８４Ｂに、タスクＥ６８０およびＥ６９０を含む方法Ｍ９５０の実装Ｍ９７０のフローチャートを示す。タスクＥ６８０は、音声信号の次のフレーム（「第２のフレーム」）が有声である（たとえば、高度に周期的である）ことを判断する。（この場合、タスクＥ６４０において符号化されたフレームは、「第１のフレーム」と呼ばれる。）たとえば、タスクＥ６８０は、第２のフレームに対してここで説明されるＥＶＲＣ分類のバージョンを実行するように構成できる。タスクＥ６３０が第１のフレームに対して雑音励振コーディングスキームを選択した場合、タスクＥ６９０は、非差分ピッチプロトタイプコーディングスキームに従って第２のフレームを符号化する。タスクＥ６９０は、ここで説明されるタスクＥ１００の実例として実装できる。
【０２９０】
方法Ｍ９７０はまた、第２のフレームの直後に続く第３のフレームに対して差分符号化演算を実行するタスクを含むように実装できる。そのようなタスクは、（Ａ）第３のフレームのピッチパルス形状と第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）第３のフレームのピッチ周期と第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含むことができる。ここで説明されるタスクＥ２００の実例としてそのようなタスクを実装することができる。
【０２９１】
図８５Ａに、音声信号フレームを符号化するための装置ＭＦ９５０のブロック図を示す。装置ＭＦ９５０は、（たとえば、タスクＥ６１０の様々な実装に関して上記で説明したように）フレームのピッチ周期を推定するための手段ＦＥ６１０と、（たとえば、タスクＥ６２０の様々な実装に関して上記で説明したように）（Ａ）推定ピッチ周期に基づく第１の値と、（Ｂ）フレームの別のパラメータに基づく第２の値との間の関係の値を計算するための手段ＦＥ６２０と、（たとえば、タスクＥ６３０の様々な実装に関して上記で説明したように）計算値に基づいてコーディングスキームを選択するための手段ＦＥ６３０と、（たとえば、タスクＥ６４０の様々な実装に関して上記で説明したように）選択されたコーディングスキームに従ってフレームを符号化するための手段ＦＥ６４０とを含む。
【０２９２】
図８５Ｂに、（たとえば、タスクＥ６５０の様々な実装に関して上記で説明したように）フレームの端末ピッチパルスの位置を計算するための手段ＦＥ６５０、（たとえば、タスクＥ６６０の様々な実装に関して上記で説明したように）フレームの残差の自己相関値を最大にするラグ値を計算するための手段ＦＥ６６０、および／または（たとえば、タスクＥ６７０の様々な実装に関して上記で説明したように）フレームの複数の他のピッチパルスの位置を特定するための手段ＦＥ６７０など、１つまたは複数の追加の手段を含む装置ＭＦ９５０の実装ＭＦ９６０のブロック図を示す。図８６Ａに、（たとえば、タスクＥ６８０の様々な実装に関して上記で説明したように）音声信号の第２のフレームが有声であることを示すための手段ＦＥ６８０と、（たとえば、タスクＥ６９０の様々な実装に関して上記で説明したように）第２のフレームを符号化するための手段ＦＥ６９０とを含む装置ＭＦ９５０の実装ＭＦ９７０のブロック図を示す。
【０２９３】
図８６Ｂに、一般的構成による、音声信号フレームを符号化するための装置Ａ９５０のブロック図を示す。装置Ａ９５０は、フレームのピッチ周期を推定するように構成されたピッチ周期推定器８１０を含む。推定器８１０は、ここで説明される推定器１３０、１９０、Ａ３２０、または５４０のインスタンスとして実装できる。装置Ａ９５０はまた、（Ａ）推定ピッチ周期に基づく第１の値と（Ｂ）フレームの別のパラメータに基づく第２の値との間の関係の値を計算するように構成された計算器８２０を含む。装置Ｍ９５０は、雑音励振コーディングスキーム（たとえば、ＮＥＬＰコーディングスキーム）に従ってフレームを符号化するように選択可能に構成された第１のフレームエンコーダ８４０を含む。エンコーダ８４０は、ここで説明される無声フレームエンコーダＵＥ１０または非周期フレームエンコーダＥ８０のインスタンスとして実装できる。装置Ａ９５０はまた、非差分ピッチプロトタイプコーディングスキームに従ってフレームを符号化するように選択可能に構成された第２のフレームエンコーダ８５０を含む。エンコーダ８５０は、フレームのピッチパルスの時間領域形状の表現と、フレームのピッチパルスの位置の表現と、フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成するように構成される。エンコーダ８５０は、ここで説明されるフレームエンコーダ１００、装置Ａ４００、または装置Ａ６５０のインスタンスとして実装でき、ならびに／あるいは推定器８１０および／または計算器８２０を含むように実装できる。装置Ａ９５０はまた、（たとえば、タスクＥ６３０の様々な実装に関して上記で説明したように）選択可能に、計算値に基づいて、フレームエンコーダ８４０および８５０のうちの１つにフレームを符号化させるように構成されたコーディングスキームセレクタ８３０を含む。コーディングスキームセレクタ８３０は、ここで説明されるコーディングスキームセレクタＣ２００またはＣ３００のインスタンスとして実装でき、ここで説明されるフレーム再分類器ＲＣ１０のインスタンスを含むことができる。
【０２９４】
音声エンコーダＡＥ１０は、装置Ａ９５０を含むように実装できる。たとえば、音声エンコーダＡＥ２０、ＡＥ３０、またはＡＥ４０のコーディングスキームセレクタＣ２００は、ここで説明されるコーディングスキームセレクタ８３０の実例を含むように実装できる。
【０２９５】
図８７Ａに、装置Ａ９５０の実装Ａ９６０のブロック図を示す。装置Ａ９６０は、フレームの他のパラメータを計算する１つまたは複数の要素を含む。装置Ａ９６０は、フレームの端末ピッチパルスの位置を計算するように構成されたピッチパルス位置計算器８６０を含むことができる。ピッチパルス位置計算器８６０は、ここで説明される計算器１２０、１６０、または５９０、あるいはピーク検出器１５０のインスタンスとして実装できる。端末ピッチパルスがフレームの最終ピッチパルスである場合、計算器８２０を、端末ピッチパルスとフレームの最後のサンプルとの間の距離が推定ピッチ周期以下であることを確認するように構成することができる。ピッチパルス位置計算器８６０が最後のサンプルに対するパルス位置を計算する場合、計算器８２０は、この確認を、パルス位置の値と推定ピッチ周期の値とを比較することによって実行することができる。たとえば、そのようなパルス位置から推定ピッチ周期を減算することが少なくとも０に等しい結果を残す場合、その状態が確認される。端末ピッチパルスがフレームの最初のピッチパルスである場合、計算器８２０を、端末ピッチパルスとフレームの第１のサンプルとの間の距離が推定ピッチ周期以下であることを確認するように構成することができる。これらの場合のいずれかでは、（たとえば、タスクＴ７５０に関してここで説明されたように）確認が不合格になった場合、雑音励振コーディングスキームを選択するようにコーディングスキームセレクタ８３０を構成することができる。
【０２９６】
端末ピッチパルス位置計算器８６０に加えて、装置Ａ９６０は、フレームの複数の他のピッチパルスの位置を特定するように構成されたピッチパルスロケータ８８０を含むことができる。この場合、装置Ａ９６０は、推定ピッチ周期と計算されたピッチパルス位置とに基づいて複数のピッチパルス位置を計算するように構成された第２のピッチパルス位置計算器８８５を含むことができ、計算器８２０は、位置を特定されたピッチパルスの位置が計算されたピッチパルス位置にどのくらい一致するかを評価するように構成できる。たとえば、計算器８２０が、（たとえば、タスクＴ７４０に関して上記で説明したように）８つのサンプルなど、（Ａ）位置を特定されたピッチパルスの位置と、（Ｂ）対応する計算されたピッチパルス位置との間の差のいずれかがしきい値よりも大きいと判断した場合、雑音励振コーディングスキームを選択するようにコーディングスキームセレクタ８３０を構成することができる。
【０２９７】
上記の例のいずれかに加えてまたはその代替として、装置Ａ９６０は、（たとえば、タスクＥ６６０に関して上記で説明したように）フレームの残差の自己相関値を最大にするラグ値を計算するように構成されたラグ値計算器８７０を含むことができる。この場合、計算器８２０は、推定ピッチ周期が計算されたラグ値の指定された比率（たとえば、１６０パーセント）以下であることを確認するように構成できる。確認が不成功になった場合、雑音励振コーディングスキームを選択するようにコーディングスキームセレクタ８３０を構成することができる。装置Ａ９６０の関係する実装では、確認が不合格になり、また、（たとえば、タスクＴ７３０に関して上記で説明したように）現在のフレームの１つまたは複数のＮＡＣＦ値が十分に高い場合、雑音励振コーディングスキームを選択するようにコーディングスキームセレクタ８３０を構成することができる。
【０２９８】
上記の例のいずれかに加えてまたはその代替として、計算器８２０は、推定ピッチ周期に基づく値を音声信号の前のフレーム（たとえば、現在のフレームの前の最後のフレーム）のピッチ周期と比較するように構成できる。そのような場合、（たとえば、タスクＴ７１０に関して上記で説明したように）推定ピッチ周期が前のフレームのピッチ周期よりもはるかに小さい（たとえば、約１／２、１／３、または１／４）である場合、雑音励振コーディングスキームを選択するようにコーディングスキームセレクタ８３０を構成することができる。追加または代替として、前のピッチ周期が大きく（たとえば、１００サンプルよりも多い）、（たとえば、タスクＴ７２０に関して上記で説明したように）推定ピッチ周期が前のピッチ周期の半分未満である場合、雑音励振コーディングスキームを選択するようにコーディングスキームセレクタ８３０を構成することができる。
【０２９９】
便宜のために、ここで、装置Ａ９５０に関して上記で説明した音声信号フレームを「第１のフレーム」と呼び、音声信号中の第１のフレームに続くフレームを「第２のフレーム」と呼ぶ。コーディングスキームセレクタ８３０は、（たとえば、方法Ｍ９６０に実装されるタスクＥ６８０に関してここで説明されたように）第２のフレームに対してフレーム分類演算を実行するように構成できる。たとえば、コーディングスキームセレクタ８３０は、第１のフレームに対して雑音励振コーディングスキームを選択し、第２のフレームが有声であると判断したことに応答して、（すなわち、非差分ピッチプロトタイプコーディングスキームに従って）第２のフレームエンコーダ８５０に第２のフレームを符号化させるように構成できる。
【０３００】
図８７Ｂに、（たとえば、タスクＥ２００に関してここで説明されたように）フレームに対して差分符号化演算を実行するように構成された第３のフレームエンコーダ８９０を含む装置Ａ９５０の実装Ａ９７０のブロック図を示す。言い換えれば、エンコーダ８９０は、（Ａ）現在のフレームのピッチパルス形状と前のフレームのピッチパルス形状との間の差の表現と、（Ｂ）現在のフレームのピッチ周期と前のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成するように構成される。エンコーダ８９０が音声信号中の第２のフレームの直後に続く第３のフレームに対して差分符号化演算を実行するように、装置Ａ９７０を実装することができる。
【０３０１】
ここで説明された方法の実装の典型的な適用例（たとえば、方法Ｍ１００、Ｍ２００、Ｍ３００、Ｍ４００、Ｍ５００、Ｍ５５０、Ｍ５６０、Ｍ６００、Ｍ６５０、Ｍ７００、Ｍ８００、Ｍ９００、またはＭ９５０、あるいは別のルーチンまたはコードリスト）では、論理要素のアレイ（たとえば、論理ゲート）は、この方法の様々なタスクのうちの１つ、複数、さらにはすべてを実行するように構成される。タスクの１つまたは複数（場合によってはすべて）は、論理要素のアレイ（たとえば、プロセッサ、マイクロプロセッサ、マイクロコントローラ、または他の有限状態機械）を含む機械（たとえば、コンピュータ）によって読取り可能および／または実行可能であるコンピュータプログラム製品（たとえば、ディスク、フラッシュまたは他の不揮発性メモリカード、半導体メモリチップなどの１つまたは複数のデータ記憶媒体など）に埋め込まれたコード（たとえば、命令の１つまたは複数のセット）として実装することもできる。そのような方法の実装のタスクを、２つ以上のそのようなアレイまたは機械によって実行することもできる。これらのまたは他の実装では、タスクは、モバイルユーザ端末など、ワイヤレス通信用のデバイス、またはそのような通信機能をもつ他のデバイス内で実行することができる。そのようなデバイスは、（たとえば、ＶｏＩＰ（ボイスオーバーインターネットプロトコル（ｖｏｉｃ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ））などの１つまたは複数のプロトコルを使用して）回線交換および／またはパケット交換ネットワークと通信するように構成できる。たとえば、そのようなデバイスは、符号化フレーム（たとえば、パケット）を含む信号を送信し、および／またはそのような信号を受信するように構成されたＲＦ回路を含むことができる。また、そのようなデバイスは、ＲＦ送信の前に符号化フレームもしくはパケットに対して、インターリーブ、パンクチャリング、畳み込み符号化、誤り訂正符号化、および／またはネットワークプロトコルの１つまたは複数のレイヤを適用することなどの１つまたは複数の他の動作を実行する、ならびに／あるいはＲＦ受信後にそのような動作の補完を実行するように構成できる。
【０３０２】
ここで説明された装置（たとえば、装置Ａ１００、Ａ２００、Ａ３００、Ａ４００、Ａ５００、Ａ５６０、Ａ６００、Ａ６５０、Ａ７００、Ａ８００、Ａ９００、音声エンコーダＡＥ２０、音声デコーダＡＤ２０、またはその要素）の実装の様々な要素は、たとえば、チップセット中の同じチップ上にまたは２つ以上のチップの間に常駐する電子および／または光デバイスとして実装できるが、そのような限定なしに他の構成も考えられる。そのような装置の１つまたは複数の要素は、マイクロプロセッサ、組み込みプロセッサ、ＩＰコア、デジタル信号プロセッサ、ＦＰＧＡ（フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ））、ＡＳＳＰ（特定用途向け標準製品（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｓｔａｎｄａｒｄ  ｐｒｏｄｕｃｔ））、およびＡＳＩＣ（特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ―ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ））などの、論理要素（たとえば、トランジスタ、ゲート）の１つまたは複数の固定またはプログラマブルなアレイ上で実行するように構成された命令の１つまたは複数のセットとして全体的にまたは部分的に実装できる。
【０３０３】
そのような装置の実装の１つまたは複数の要素は、装置が組み込まれているデバイスまたはシステムの別の動作に関係するタスクなど、装置の動作に直接関係しないタスクまたは命令の他のセットを実行するために使用することが可能である。また、ここで説明された装置の実装の１つまたは複数の要素は、共通の構造（たとえば、異なる要素に対応するコードの部分を異なる時間に実行するために使用されるプロセッサ、異なる要素に対応するタスクを異なる時間に実施するために実行される命令のセット、あるいは、異なる要素向けの動作を異なる時間に実施する電子デバイスおよび／または光デバイスの構成）を有することが可能である。
【０３０４】
説明した構成の前述の提示は、ここで開示される方法および他の構造を当業者が製造または使用できるように与えたものである。ここで図示および説明されたフローチャートおよび他の構造は例にすぎず、これらの構造の他の変形態も開示の範囲内である。これらの構成に対する様々な変更が可能であり、ここで提示された一般的原理は他の構成にも同様に適用できる。
【０３０５】
ここで説明した構成の各々は、部分的にまたは全体的に、ハードワイヤード回路として、特定用途向け集積回路中に作成された回路構成として、あるいは不揮発性記憶装置にロードされるファームウェアプログラム、またはマイクロプロセッサもしくは他のデジタル信号処理ユニットなどの論理要素のアレイによって実行可能な命令である機械可読コードとしてデータ記憶媒体から、もしくはデータ記憶媒体にロードされるソフトウェアプログラムとして実装できる。データ記憶媒体は、（限定はしないが、ダイナミックもしくはスタティックＲＡＭ（ランダムアクセスメモリ（ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ））、ＲＯＭ（読取り専用メモリ（ｒｅａｄ―ｏｎｌｙ  ｍｅｍｏｒｙ））、および／またはフラッシュＲＡＭを含む）半導体メモリ、または強誘電体メモリ、磁気抵抗メモリ、オボニックメモリ、ポリマーメモリ、もしくは位相変化メモリなどの記憶要素のアレイ、磁気ディスクまたは光ディスクなどのディスク媒体とすることができる。「ソフトウェア」という用語は、ソースコード、アセンブリ言語コード、機械コード、バイナリコード、ファームウェア、マクロコード、マイクロコード、論理要素のアレイによって実行可能な命令の１つまたは複数のセットまたはシーケンス、およびそのような例の任意の組合せを含むことを理解されたい。
【０３０６】
また、ここで開示される方法の各々は、論理要素（たとえば、プロセッサ、マイクロプロセッサ、マイクロコントローラ、または他の有限状態機械）のアレイを含む機械によって読取り可能および／または実行可能な命令の１つまたは複数のセットとして（たとえば、上記に記載する１つまたは複数のデータ記憶媒体中で）有形に実施することができる。
したがって、本開示は、上記に示した構成に限定されるものではなく、原開示の一部をなす、出願した添付の特許請求の範囲を含む、ここにおいて任意の方法で開示した原理および新規の特徴に一致する最も広い範囲が与えられるべきである。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
［１］音声信号フレームを符号化する方法であって、
前記フレームの残差のピークエネルギーを計算することと、
前記残差の平均エネルギーを計算することと、
前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、方法。
［２］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［１］に記載の方法。
［３］前記方法が、前記フレーム中のピッチパルスピークの数を計算することを含み、
前記選択することが、前記フレーム中のピッチパルスピークの前記計算された数に基づく、［１］に記載の方法。
［４］前記方法が、前記フレーム中のピッチピークの前記計算された数をしきい値と比較することを含み、
前記選択することが、前記比較することの結果に基づく、［３］に記載の方法。
［５］前記選択することが、前記フレームの少なくとも一部分の信号対雑音比に基づく、［１］に記載の方法。
［６］前記選択することが、前記フレームのローバンド部分の信号対雑音比に基づく、［５］に記載の方法。
［７］前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断することと、
前記選択することが無声コーディングスキームを選択する場合、前記判断することに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
を備える、［１］に記載の方法。
［８］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを含み、
前記第３のフレームに対して差分符号化演算を前記実行することが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、［７］に記載の方法。
［９］音声信号フレームを符号化するための装置であって、
前記フレームの残差のピークエネルギーを計算するための手段と、
前記残差の平均エネルギーを計算するための手段と、
前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択するための手段と、
前記選択されたコーディングスキームに従って前記フレームを符号化するための手段と
を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、装置。
［１０］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［９］に記載の装置。
［１１］前記フレーム中のピッチパルスピークの数を計算するための手段を含み、
選択するための前記手段が、前記フレーム中のピッチパルスピークの前記計算された数に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、［９］に記載の装置。
［１２］選択するための前記手段が、前記フレームのローバンド部分の信号対雑音比に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、［９］に記載の装置。
［１３］前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すための手段と、
（Ａ）選択するための前記手段による無声コーディングスキームの選択と（Ｂ）示すための前記手段による前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化するための手段と
を備える、［９］に記載の装置。
［１４］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するための手段を含み、
前記第３のフレームに対して差分符号化演算を実行するための前記手段が、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、［１３］に記載の装置。
［１５］音声信号のフレームの残差のピークエネルギーを計算することと、
前記残差の平均エネルギーを計算することと、
前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を前記プロセッサに行わせる命令を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することを前記プロセッサに行わせる前記命令が、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成することをプロセッサによって実行されたときに前記プロセッサに行わせる命令を備える、コンピュータ可読媒体。
［１６］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［１５］に記載のコンピュータ可読媒体。
［１７］前記フレーム中のピッチパルスピークの数を計算することを前記プロセッサに行わせる命令を備え、
選択することを前記プロセッサに行わせる前記命令が、前記フレーム中のピッチパルスピークの前記計算された数に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択することを前記プロセッサに行わせる命令を備える、［１５］に記載のコンピュータ可読媒体。
［１８］選択することを前記プロセッサに行わせる前記命令が、前記フレームのローバンド部分の信号対雑音比に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択することを前記プロセッサに行わせる命令を備える、［１５］に記載のコンピュータ可読媒体。
［１９］前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すことと、
（Ａ）選択することを前記プロセッサに行わせる前記命令による無声コーディングスキームの選択と（Ｂ）示すことを前記プロセッサに行わせる前記命令による前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
をプロセッサによって実行されたときに前記プロセッサに行わせる命令を備える、［１５］に記載のコンピュータ可読媒体。
［２０］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを前記プロセッサに行わせる命令を備え、
前記第３のフレームに対して差分符号化演算を実行することを前記プロセッサに行わせる前記命令が、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを前記プロセッサに行わせる命令を備える、［１９］に記載のコンピュータ可読媒体。
［２１］音声信号フレームを符号化するための装置であって、
前記フレームの残差のピークエネルギーを計算するように構成されたピークエネルギー計算器と、
前記残差の平均エネルギーを計算するように構成された平均エネルギー計算器と、
雑音励振コーディングスキームに従って前記フレームを符号化するように選択可能に構成された第１のフレームエンコーダと、
非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化するように選択可能に構成された第２のフレームエンコーダと、
選択可能に、前記計算されたピークエネルギーと前記計算された平均エネルギーとの間の関係に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの１つに前記フレームを符号化させるように構成されたコーディングスキームセレクタと
を備え、
前記第２のフレームエンコーダが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成するように構成された、装置。
［２２］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［２１］に記載の装置。
［２３］前記フレーム中のピッチパルスピークの数を計算するように構成されたピッチパルスピークカウンタを含み、
前記コーディングスキームセレクタが、前記フレーム中のピッチパルスピークの前記計算された数に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの前記１つを選択するように構成された、［２１］に記載の装置。
［２４］前記コーディングスキームセレクタが、前記フレームのローバンド部分の信号対雑音比に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの前記１つを選択するように構成された、［２１］に記載の装置。
［２５］前記コーディングスキームセレクタが、前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断するように構成され、
前記コーディングスキームセレクタが、（Ａ）選択可能に、前記フレームを符号化することを前記第１のフレームエンコーダに行わせることと、（Ｂ）前記第２のフレームが有声であることの前記判断とに応答して、前記第２のフレームを符号化することを前記第２のフレームエンコーダに行わせるように構成された、［２１］に記載の装置。
［２６］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するように構成された第３のフレームエンコーダを含み、
前記第３のフレームエンコーダが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成するように構成された、［２５］に記載の装置。
［２７］音声信号フレームを符号化する方法であって、
前記フレームのピッチ周期を推定することと、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算することと、
前記計算された値に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、方法。
［２８］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［２７］に記載の方法。
［２９］他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
前記計算することが、前記第１の値と前記第２の値とを比較することを備える、［２７］に記載の方法。
［３０］前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
前記計算することが、前記第１の値と前記第２の値とを比較することを備える、［２７］に記載の方法。
［３１］前記フレームの端末ピッチパルスの位置を計算することと、
前記フレームの複数の他のピッチパルスの位置を特定することと、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて、複数のピッチパルス位置を計算することと
を備え、
値を前記計算することが、（Ａ）前記位置を特定されたピッチパルスの前記位置と、（Ｂ）前記計算されたピッチパルス位置とを比較することを備える、［２７］に記載の方法。
［３２］前記選択することが、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づく、［２７］に記載の方法。
［３３］前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断することと、
前記選択することが無声コーディングスキームを選択する場合、前記判断することに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
を備える、［２７］に記載の方法。
［３４］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを含み、
前記第３のフレームに対して差分符号化演算を前記実行することが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、［３３］に記載の方法。
［３５］音声信号フレームを符号化するための装置であって、
前記フレームのピッチ周期を推定するための手段と、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算するための手段と、
前記計算された値に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択するための手段と、
前記選択されたコーディングスキームに従って前記フレームを符号化するための手段と
を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記推定ピッチ周期の表現とを含む、符号化フレームを生成することを含む、装置。
［３６］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［３５］に記載の装置。
［３７］他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
計算するための前記手段が、前記第１の値と前記第２の値とを比較するように構成された、［３５］に記載の装置。
［３８］前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
計算するための前記手段が、前記第１の値と前記第２の値とを比較するように構成された、［３５］に記載の装置。
［３９］前記フレームの端末ピッチパルスの位置を計算するための手段と、
前記フレームの複数の他のピッチパルスの位置を特定するための手段と、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて、複数のピッチパルス位置を計算するための手段と
を備え、
値を計算するための前記手段が、（Ａ）前記位置を特定されたピッチパルスの前記位置を（Ｂ）前記計算されたピッチパルス位置と比較するように構成された、［３５］に記載の装置。
［４０］選択するための前記手段が、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、［３５］に記載の装置。
［４１］前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すための手段と、
（Ａ）選択するための前記手段による無声コーディングスキームの選択と（Ｂ）示すための前記手段による前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化するための手段と
を備える、［３５］に記載の装置。
［４２］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するための手段を含み、
前記第３のフレームに対して差分符号化演算を実行するための前記手段が、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを含む、［４１］に記載の装置。
［４３］フレームのピッチ周期を推定することと、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算することと、
前記計算された値に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームのセットから１つを選択することと、
前記選択されたコーディングスキームに従って前記フレームを符号化することと
を前記プロセッサに行わせる命令を備え、
前記非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化することを前記プロセッサに行わせる前記命令が、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記推定ピッチ周期の表現とを含む、符号化フレームを生成することをプロセッサによって実行されたとき前記プロセッサに行わせる命令を含む、コンピュータ可読媒体。
［４４］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［４３］に記載のコンピュータ可読媒体。
［４５］他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
計算することを前記プロセッサに行わせる前記命令が、前記第１の値と前記第２の値とを比較することを前記プロセッサに行わせる命令を含む、［４３］に記載のコンピュータ可読媒体。
［４６］前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
計算することを前記プロセッサに行わせる前記命令が、前記第１の値と前記第２の値とを比較することを前記プロセッサに行わせる命令を含む、［４３］に記載のコンピュータ可読媒体。
［４７］前記フレームの端末ピッチパルスの位置を計算することと、
前記フレームの複数の他のピッチパルスの位置を特定することと、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて、複数
のピッチパルス位置を計算することと
を前記プロセッサに行わせる命令を備え、
値を計算することを前記プロセッサに行わせる前記命令が、（Ａ）前記位置を特定されたピッチパルスの前記位置を（Ｂ）前記計算されたピッチパルス位置と比較することをプロセッサによって実行されたときに前記プロセッサに行わせる命令を媒体が含む、［４３］に記載のコンピュータ可読媒体。
［４８］選択することを前記プロセッサに行わせる前記命令が、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択することを前記プロセッサに行わせる命令を含む、［４３］に記載のコンピュータ可読媒体。
［４９］前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを示すことと、
（Ａ）選択することを前記プロセッサに行わせる前記命令による無声コーディングスキームの選択と（Ｂ）示すことを前記プロセッサに行わせる前記命令による前記第２のフレームが有声であることの指示とに応答して、非差分コーディングモードに従って前記第２のフレームを符号化することと
をプロセッサによって実行されたときに前記プロセッサに行わせる命令を媒体が備える、［４３］に記載のコンピュータ可読媒体。
［５０］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行することを前記プロセッサに行わせる命令を含み、
前記第３のフレームに対して差分符号化演算を実行することを前記プロセッサに行わせる前記命令が、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成することを前記プロセッサに行わせる命令を含む、［４９］に記載のコンピュータ可読媒体。
［５１］音声信号フレームを符号化するための装置であって、
前記フレームのピッチ周期を推定するように構成されたピッチ周期推定器と、
（Ａ）前記推定ピッチ周期に基づく第１の値と（Ｂ）前記フレームの別のパラメータに基づく第２の値との間の関係の値を計算するように構成された計算器と、
雑音励振コーディングスキームに従って前記フレームを符号化するように選択可能に構成された第１のフレームエンコーダと、
非差分ピッチプロトタイプコーディングスキームに従って前記フレームを符号化するように選択可能に構成された第２のフレームエンコーダと、
選択可能に、前記計算された値に基づいて、前記第１のフレームエンコーダおよび前記第２のフレームエンコーダのうちの１つに前記フレームを符号化させるように構成されたコーディングスキームセレクタと
を備え、
前記第２のフレームエンコーダが、前記フレームのピッチパルスの時間領域形状の表現と、前記フレームのピッチパルスの位置の表現と、前記フレームの推定ピッチ周期の表現とを含む、符号化フレームを生成するように構成された、装置。
［５２］前記雑音励振コーディングスキームが雑音励振線形予測（ＮＥＬＰ）コーディングスキームである、［５１］に記載の装置。
［５３］他のパラメータが、前記フレームの端末ピッチパルスの位置であり、
前記計算器が、前記第１の値と前記第２の値とを比較するように構成された、［５１］に記載の装置。
［５４］前記他のパラメータが、前記フレームの残差の自己相関関数を最大にするラグ値であり、
前記計算器が、前記第１の値と前記第２の値とを比較するように構成された、［５１］に記載の装置。
［５５］前記フレームの端末ピッチパルスの位置を計算するように構成された第１のピッチパルス位置計算器と、
前記フレームの複数の他のピッチパルスの位置を特定するように構成されたピッチパルスロケータと、
前記推定ピッチ周期と前記端末ピッチパルスの前記計算された位置とに基づいて複数のピッチパルス位置を計算するように構成された第２のピッチパルス位置計算器と
を備え、
前記計算器が、（Ａ）前記位置を特定されたピッチパルスの前記位置を（Ｂ）前記計算されたピッチパルス位置と比較するように構成された、［５１］に記載の装置。
［５６］前記コーディングスキームセレクタが、前記推定ピッチ周期に基づく値を前のフレームのピッチ周期と比較することの結果に基づいて、（Ａ）雑音励振コーディングスキームおよび（Ｂ）非差分ピッチプロトタイプコーディングスキームの前記セットから前記１つを選択するように構成された、［５１］に記載の装置。
［５７］前記コーディングスキームセレクタが、前記音声信号中の前記フレームの直後に続く、前記音声信号の第２のフレームが有声であることを判断するように構成され、
前記コーディングスキームセレクタが、（Ａ）選択可能に、前記フレームを符号化することを前記第１のフレームエンコーダに行わせることと、（Ｂ）前記第２のフレームが有声であることの前記判断とに応答して、前記第２のフレームを符号化することを前記第２のフレームエンコーダに行わせるように構成された、［５１］に記載の装置。
［５８］前記音声信号中の前記第２のフレームの直後に続く、前記音声信号の第３のフレームに対して差分符号化演算を実行するように構成された第３のフレームエンコーダを含み、
前記第３のフレームエンコーダが、（Ａ）前記第３のフレームのピッチパルス形状と前記第２のフレームのピッチパルス形状との間の差の表現と、（Ｂ）前記第３のフレームのピッチ周期と前記第２のフレームのピッチ周期との間の差の表現とを含む、符号化フレームを生成するように構成された、［５７］に記載の装置。
【図１】
0005248681.tif 000030
【図２Ａ】
0005248681.tif 000031
【図２Ｂ】
0005248681.tif 000032
【図３Ａ】
0005248681.tif 000033
【図３Ｂ】
0005248681.tif 000034
【図４】
0005248681.tif 000035
【図５Ａ】
0005248681.tif 000036
【図５Ｂ】
0005248681.tif 000037
【図５Ｃ】
0005248681.tif 000038
【図６Ａ】
0005248681.tif 000039
【図６Ｂ】
0005248681.tif 000040
【図７Ａ】
0005248681.tif 000041
【図７Ｂ】
0005248681.tif 000042
【図８Ａ】
0005248681.tif 000043
【図８Ｂ】
0005248681.tif 000044
【図９Ａ】
0005248681.tif 000045
【図９Ｂ】
0005248681.tif 000046
【図１０Ａ】
0005248681.tif 000047
【図１０Ｂ】
0005248681.tif 000048
【図１１Ａ】
0005248681.tif 000049
【図１１Ｂ】
0005248681.tif 000050
【図１２Ａ】
0005248681.tif 000051
【図１２Ｂ】
0005248681.tif 000052
【図１３】
0005248681.tif 000053
【図１４】
0005248681.tif 000054
【図１５Ａ】
0005248681.tif 000055
【図１５Ｂ】
0005248681.tif 000056
【図１５Ｃ】
0005248681.tif 000057
【図１６Ａ】
0005248681.tif 000058
【図１６Ｂ】
0005248681.tif 000059
【図１７Ａ】
0005248681.tif 000060
【図１７Ｂ】
0005248681.tif 000061
【図１７Ｃ】
0005248681.tif 000062
【図１８Ａ】
0005248681.tif 000063
【図１８Ｂ】
0005248681.tif 000064
【図１８Ｃ】
0005248681.tif 000065
【図１８Ｄ】
0005248681.tif 000066
【図１８Ｅ】
0005248681.tif 000067
【図１８Ｆ】
0005248681.tif 000068
【図１９Ａ】
0005248681.tif 000069
【図１９Ｂ】
0005248681.tif 000070
【図１９Ｃ】
0005248681.tif 000071
【図２０Ａ】
0005248681.tif 000072
【図２０Ｂ】
0005248681.tif 000073
【図２０Ｃ】
0005248681.tif 000074
【図２１】
0005248681.tif 000075
【図２２Ａ】
0005248681.tif 000076
【図２２Ｂ】
0005248681.tif 000077
【図２２Ｃ】
0005248681.tif 000078
【図２３】
0005248681.tif 000079
【図２４Ａ】
0005248681.tif 000080
【図２４Ｂ】
0005248681.tif 000081
【図２５】
0005248681.tif 000082
【図２６】
0005248681.tif 000083
【図２７Ａ】
0005248681.tif 000084
【図２７Ｂ】
0005248681.tif 000085
【図２７Ｃ】
0005248681.tif 000086
【図２７Ｄ】
0005248681.tif 000087
【図２８】
0005248681.tif 000088
【図２９Ａ】
0005248681.tif 000089
【図２９Ｂ】
0005248681.tif 000090
【図２９Ｃ】
0005248681.tif 000091
【図２９Ｄ】
0005248681.tif 000092
【図３０Ａ】
0005248681.tif 000093
【図３０Ｂ】
0005248681.tif 000094
【図３０Ｃ】
0005248681.tif 000095
【図３１Ａ】
0005248681.tif 000096
【図３１Ｂ】
0005248681.tif 000097
【図３１Ｃ】
0005248681.tif 000098
【図３２Ａ】
0005248681.tif 000099
【図３２Ｂ】
0005248681.tif 000100
【図３２Ｃ】
0005248681.tif 000101
【図３３Ａ】
0005248681.tif 000102
【図３３Ｂ】
0005248681.tif 000103
【図３３Ｃ】
0005248681.tif 000104
【図３４Ａ】
0005248681.tif 000105
【図３４Ｂ】
0005248681.tif 000106
【図３４Ｃ】
0005248681.tif 000107
【図３５Ａ】
0005248681.tif 000108
【図３５Ｂ】
0005248681.tif 000109
【図３５Ｃ】
0005248681.tif 000110
【図３５Ｄ】
0005248681.tif 000111
【図３６Ａ】
0005248681.tif 000112
【図３６Ｂ】
0005248681.tif 000113
【図３７】
0005248681.tif 000114
【図３８】
0005248681.tif 000115
【図３９】
0005248681.tif 000116
【図４０】
0005248681.tif 000117
【図４１】
0005248681.tif 000118
【図４２Ａ】
0005248681.tif 000119
【図４２Ｂ】
0005248681.tif 000120
【図４３Ａ】
0005248681.tif 000121
【図４３Ｂ】
0005248681.tif 000122
【図４３Ｃ】
0005248681.tif 000123
【図４４Ａ】
0005248681.tif 000124
【図４４Ｂ】
0005248681.tif 000125
【図４４Ｃ】
0005248681.tif 000126
【図４５Ａ】
0005248681.tif 000127
【図４５Ｂ】
0005248681.tif 000128
【図４５Ｃ】
0005248681.tif 000129
【図４６Ａ】
0005248681.tif 000130
【図４６Ｂ】
0005248681.tif 000131
【図４６Ｃ】
0005248681.tif 000132
【図４７Ａ】
0005248681.tif 000133
【図４７Ｂ】
0005248681.tif 000134
【図４８Ａ】
0005248681.tif 000135
【図４８Ｂ】
0005248681.tif 000136
【図４９Ａ】
0005248681.tif 000137
【図４９Ｂ】
0005248681.tif 000138
【図５０Ａ】
0005248681.tif 000139
【図５０Ｂ】
0005248681.tif 000140
【図５１】
0005248681.tif 000141
【図５２】
0005248681.tif 000142
【図５３】
0005248681.tif 000143
【図５４】
0005248681.tif 000144
【図５５】
0005248681.tif 000145
【図５６】
0005248681.tif 000146
【図５７】
0005248681.tif 000147
【図５８】
0005248681.tif 000148
【図５９】
0005248681.tif 000149
【図６０】
0005248681.tif 000150
【図６１】
0005248681.tif 000151
【図６２】
0005248681.tif 000152
【図６３】
0005248681.tif 000153
【図６４】
0005248681.tif 000154
【図６５】
0005248681.tif 000155
【図６６】
0005248681.tif 000156
【図６７】
0005248681.tif 000157
【図６８】
0005248681.tif 000158
【図６９】
0005248681.tif 000159
【図７０】
0005248681.tif 000160
【図７１Ａ】
0005248681.tif 000161
【図７１Ｂ】
0005248681.tif 000162
【図７２】
0005248681.tif 000163
【図７３Ａ】
0005248681.tif 000164
【図７３Ｂ】
0005248681.tif 000165
【図７４】
0005248681.tif 000166
【図７５Ａ】
0005248681.tif 000167
【図７５Ｂ】
0005248681.tif 000168
【図７５Ｃ】
0005248681.tif 000169
【図７５Ｄ】
0005248681.tif 000170
【図７６】
0005248681.tif 000171
【図７７】
0005248681.tif 000172
【図７８】
0005248681.tif 000173
【図７９Ａ】
0005248681.tif 000174
【図７９Ｂ】
0005248681.tif 000175
【図８０Ａ】
0005248681.tif 000176
【図８０Ｂ】
0005248681.tif 000177
【図８１Ａ】
0005248681.tif 000178
【図８１Ｂ】
0005248681.tif 000179
【図８２Ａ】
0005248681.tif 000180
【図８２Ｂ】
0005248681.tif 000181
【図８３Ａ】
0005248681.tif 000182
【図８３Ｂ】
0005248681.tif 000183
【図８４Ａ】
0005248681.tif 000184
【図８４Ｂ】
0005248681.tif 000185
【図８５Ａ】
0005248681.tif 000186
【図８５Ｂ】
0005248681.tif 000187
【図８６Ａ】
0005248681.tif 000188
【図８６Ｂ】
0005248681.tif 000189
【図８７Ａ】
0005248681.tif 000190
【図８７Ｂ】
0005248681.tif 000191