(57)【特許請求の範囲】
【請求項１】
オーディオデコーダにおいて実行される方法であって、
符号化されたオーディオ信号を複数のフレームとして受信することと、
前記フレームに関連付けられた線形予測係数を取得することと、
前記フレームに関連付けられた前記線形予測係数に関連付けられた周波数ドメイン係数を取得することと、
前記周波数ドメイン係数の逆数を対数に変換することと、
逆数の対数に変換された前記周波数ドメイン係数の平均値に基づく上限値を超える逆数の対数に変換された周波数ドメイン係数を前記上限値に設定することによって逆数の対数に変換された前記周波数ドメイン係数をクリッピングして、逆数の対数に変換された前記周波数ドメイン係数の逆対数変換された値を前記周波数ドメイン係数におけるスペクトルの谷において減衰させてポストフィルタリング係数を取得することと、
個々のフレームに対する前記ポストフィルタリング係数の時間ドメインの適用に基づいてオーディオ信号を生成することと
を含むことを特徴とする方法。
【請求項２】
前記線形予測係数にゼロをパディングすることをさらに含み、前記周波数ドメイン係数は、前記フレームの前記ゼロがパディングされた線形予測係数に関連付けられていることを特徴とする請求項１に記載の方法。
【請求項３】
前記周波数ドメイン係数を処理して、前記フレームの傾斜補償された線形予測係数の対数に対応する対数スペクトル係数を取得することをさらに含み、前記クリッピングは、前記対数スペクトル係数に適用されることを特徴とする請求項２に記載の方法。
【請求項４】
前記対数スペクトル係数を正規化して、前記フレームの圧縮されたスペクトル係数を取得することをさらに含み、前記クリッピングは、前記正規化された対数スペクトル係数に適用されることを特徴とする請求項３に記載の方法。
【請求項５】
前記正規化することは、受信した複数帯域の符号化オーディオ信号に対する複数帯域の正規化、および受信した全帯域のオーディオ信号に対する全帯域の正規化を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記複数帯域の正規化は、前記対数スペクトル係数と、対数スペクトル係数の最小値との差に基づくことを特徴とする請求項５に記載の方法。
【請求項７】
前記全帯域の正規化は、前記対数スペクトル係数の最大値と最小値との差に対する、前記対数スペクトル係数と対数スペクトル係数の最小値との差の比に基づくことを特徴とする請求項５に記載の方法。
【請求項８】
オーディオデコーダにおいて実行される方法であって、
符号化されたオーディオ信号を複数のフレームとして受信することと、
各フレームについて、
線形予測係数と、該線形予測係数に関連付けられた周波数ドメイン係数を取得することと、
前記周波数ドメイン係数の逆数を対数に変換することと、
フレーム毎に、逆数の対数に変換された前記周波数ドメイン係数の平均値に基づく上限値を超える逆数の対数に変換された周波数ドメイン係数を前記上限値に設定することによって、逆数の対数に変換された前記周波数ドメイン係数をクリッピングして、逆数の対数に変換された前記周波数ドメイン係数の逆対数変換された値を前記周波数ドメイン係数におけるスペクトルの谷において減衰させてポストフィルタリング係数を取得することと、
前記フレームに対する前記ポストフィルタリング係数の適用に基づいてオーディオ信号を生成することと
を含むことを特徴とする方法。
【請求項９】
前記クリッピングすることの前に、前記周波数ドメイン係数に非線形圧縮を適用することをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
フーリエ変換に基づいてポストフィルタリング係数を変換して、時間ドメインのポストフィルタリング係数を取得することをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
符号化されたオーディオ信号を複数のフレームとして受信するように構成された符号化オーディオ入力部と、
前記フレームに関連付けられた線形予測係数を処理し、
各フレームについて、
前記線形予測係数に関連付けられた周波数ドメイン係数を取得し、
前記周波数ドメイン係数の逆数を対数に変換し、
フレーム毎に、逆数の対数に変換された前記周波数ドメイン係数の平均値に基づく上限値を超える逆数の対数に変換された周波数ドメイン係数を前記上限値に設定することによって、逆数の対数に変換された前記周波数ドメイン係数をクリッピングして、逆数の対数に変換された前記周波数ドメイン係数の逆対数変換された値を前記周波数ドメイン係数におけるスペクトルの谷において減衰させてポストフィルタリング係数を取得し、
前記フレームに対する前記ポストフィルタリング係数の適用に基づいてオーディオ信号を生成する
ように構成されたプロセッサと
を備えたことを特徴とするオーディオデコーダデバイス。
【請求項１２】
前記プロセッサは、受信した複数帯域の符号化オーディオ信号に対して複数帯域の正規化を選択し、および受信した全帯域のオーディオ信号に対して全帯域の正規化を選択するように構成され、前記選択した正規化を前記周波数ドメイン係数に適用するように構成されることを特徴とする請求項１１に記載のオーディオデコーダデバイス。
【請求項１３】
前記複数帯域の正規化は、対数スペクトル係数と、対数スペクトル係数の最小値との差に基づくことを特徴とする請求項１２に記載のオーディオデコーダデバイス。
【請求項１４】
前記全帯域の正規化は、対数スペクトル係数の最大値と最小値との差に対する、対数スペクトル係数と対数スペクトル係数の最小値との差の比に基づくことを特徴とする請求項１２に記載のオーディオデコーダデバイス。
【請求項１５】
前記プロセッサは、前記線形予測係数にゼロをパディングするように構成され、前記周波数ドメイン係数は、前記ゼロがパディングされた線形予測係数に関連付けられることを特徴とする請求項１２に記載のオーディオデコーダデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
説明するツールおよび技法は、オーディオコーデックに関し、詳細には、復号された音声の後処理に関する。
【背景技術】
【０００２】
デジタル無線電話網、インターネットを介したストリーミングオーディオ、およびインターネット電話の出現に伴い、音声のデジタル処理および配信はごく一般的なのものになってきている。技術者は、様々な技法を使用して、品質を維持しながらも音声を効率よく処理する。これらの技法を理解するためには、オーディオ情報がコンピュータ内でどのように表され、処理されるかを理解することが有用である。
【０００３】
（Ｉ．コンピュータ内でのオーディオ情報の表現）  
コンピュータは、オーディオ情報を、オーディオを表す一連の数字として処理する。単一の数字は、特定の時点での振幅値である、オーディオサンプルを表している。いくつかの要因が、サンプルデプス（sample depth）およびサンプリングレートを含むオーディオの品質に影響を与える。
【０００４】
サンプルデプス（または精度）は、サンプルを表すために使用される数字の範囲を示す。通常、各サンプルについて可能な値が多いほど、振幅のより微妙な変動を表せることから、より品質の高い出力が得られる。８ビットのサンプルは、２５６の可能な値を有し、１６ビットのサンプルは、６５，５３６の可能な値を有する。
【０００５】
（通常１秒あたりのサンプル数として測定される）サンプリングレートも品質に影響を与える。サンプリングレートが高いほど、より多くの音の周波数を表すことができるため、品質も高い。一般的なサンプリングレートは、８，０００、１１，０２５、２２，０５０、３２，０００、４４，１００、４８，０００、および９６，０００サンプル／秒（Ｈｚ）である。表１は、品質レベルの異なるオーディオのいくつかのフォーマット、ならびに対応するロー（raw）ビットレートコストを示している。
【０００６】
【表１】
0005688852.tif 000002
【０００７】
表１に示されるように、高品質オーディオのコストは高ビットレートである。高品質オーディオ情報は、コンピュータの記憶領域および伝送容量を大量に消費する。多くのコンピュータおよびコンピュータネットワークには、ローデジタルオーディオを処理するためのリソースが欠如している。圧縮（エンコードまたは符号化とも呼ばれる）は、より低いビットレートの形に情報を変換することにより、オーディオ情報の記憶および伝送に要するコストを減少させる。圧縮には、可逆（品質には影響がない）と、不可逆（品質は影響を受けるが、後続の可逆圧縮からのビットレート低下はより劇的である）とが存在し得る。復元（デコードとも呼ばれる）は、オリジナル情報の再構築されたバージョンを圧縮形式から抽出する。コーデックとは、エンコーダ／デコーダシステムのことである。
【０００８】
（ＩＩ．音声エンコーダおよびデコーダ）  
オーディオ圧縮の目的の１つは、所与のビット量に対して最高の信号品質を提供するように、オーディオ信号をデジタル形式で表すことである。言い換えれば、この目的は、所与の品質レベルに対して、オーディオ信号を最も少ないビットで表すことである。いくつかのシナリオでは、伝送エラーに対する弾性、およびエンコード／伝送／デコードによる全体の遅延の制限などの、他の目的が適用される。
【０００９】
異なる種類のオーディオ信号は異なる特徴を有する。音楽は、広範囲の周波数および振幅によって特徴付けられ、しばしば複数のチャネルを含む。他方で、音声は、より狭い範囲の周波数および振幅によって特徴付けられ、一般に単一のチャネルを用いて表される。ある種のコーデックおよび処理技法は、音楽および一般オーディオ用に適合されており、他のコーデックおよび処理技法は、音声用に適合されている。
【００１０】
従来型音声コーデックの１つの種類は、線形予測（「ＬＰ：Linear Prediction」）を使用して圧縮を実現する。音声エンコードはいくつかの段階を含む。エンコーダは、サンプル値を、先行するサンプル値の線形組合せとして予測するために使用される、ある線形予測フィルタに関する係数を見つけ出し、これを量子化する。（「励起（excitation）」信号と表される）残余信号は、オリジナル信号における、フィルタリングによって正確に予測されない部分を示す。いくつかの段階では、異なる種類の音声が異なる特徴を有することから、音声コーデックは、（声帯の振動によって特徴付けられる）有声セグメント、無声セグメント、および無音セグメントに対して、異なる圧縮技法を使用する。有声セグメントは通常、残余ドメインにおいてさえも高度に繰り返される音声パターンを示す。有声セグメントでは、エンコーダは、現在の残余信号と以前の残余サイクルとを比較すること、および以前のサイクルを基準とする遅延またはラグ（lag）情報に関して現在の残余信号をエンコードすることによって、さらなる圧縮を実現する。エンコーダは、特別に設計されたコードブックを使用して、（線形予測および遅延情報からの）予測されエンコードされた表現と、オリジナル信号との間の他の不一致を処理する。
【００１１】
上述したように、音声コーデックは、多くの適用例にとって全体的に良好な性能を有するが、いくつかの欠点もある。例えば、不可逆コーデックは通常、音声信号中の冗長性を削減することによってビットレートを減少させ、その結果、デコードされた音声にノイズまたは他の望ましくない成果物を発生させる。したがってコーデックの中には、品質を向上させるために、デコードされた音声をフィルタリングするものがある。こうしたポストフィルタ（post-filter）には通常、２つの種類、すなわち、時間ドメインポストフィルタと周波数ドメインポストフィルタとがある。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
コンピュータシステムにおいて音声信号を表現するための圧縮および復元の重要性を考えると、再構築された音声のポストフィルタリングが、魅力的な調査対象であることは驚くべきことではない。再構築された音声または他のオーディオの処理に関する従来技法の利点がどのようなものであれ、それらが、本明細書で説明する技法およびツールの利点を有することはない。
【課題を解決するための手段】
【００１３】
要約すると、詳細な説明は、オーディオコーデックに関する様々な技法およびツールを対象とし、具体的には、デコードされた音声のフィルタリングに関するツールおよび技法を対象とする。説明する諸実施形態は、以下のことを含む、説明する技法およびツールのうちの１つまたは複数を実装するが、これらに限定されるものではない。
【００１４】
一側面では、再構築されたオーディオ信号に適用するためのフィルタリング係数のセットが計算される。この計算は、１つまたは複数の周波数ドメイン計算の実行を含む。フィルタリングされたオーディオ信号は、そのフィルタリング係数のセットを使用して、時間ドメイン内の再構築されたオーディオ信号の少なくとも一部をフィルタリングすることによって生成される。
【００１５】
別の側面では、再構築されたオーディオ信号に適用するためのフィルタリング係数のセットが生成される。係数の生成は、１つまたは複数の山（peak）および１つまたは複数の谷（valley）を表す係数値のセットの処理を含む。係数値のセットの処理は、山または谷のうちの１つまたは複数のクリッピング（clipping）を含む。再構築されたオーディオ信号の少なくとも一部は、フィルタリング係数を使用してフィルタリングされる。
【００１６】
別の側面では、複数の再構築された周波数サブ帯域信号から合成された再構築された合成信号が受信される。サブ帯域信号は、第１の周波数帯域に関する再構築された第１の周波数サブ帯域信号と、第２の周波数帯域に関する再構築された第２の周波数サブ帯域信号とを含む。第１の周波数帯域と第２の周波数帯域との交差部分付近の周波数領域で、再構築された合成信号が選択的に拡張される。
【００１７】
様々な技法およびツールは、組み合わせて使用することもできるし、または独立に使用することもできる。
【００１８】
追加の特徴および利点は、添付の図面を参照しながら説明する様々な諸実施形態の以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１９】
【図１】説明する諸実施形態のうちの１つまたは複数を実装可能な、好適なコンピューティング環境を示すブロック図である。
【図２】説明する諸実施形態のうちの１つまたは複数を実装可能な、ネットワーク環境を示すブロック図である。
【図３】サブ帯域エンコードに対して使用することができる１つの可能な周波数サブ帯域構造を示すグラフである。
【図４】説明する諸実施形態のうちの１つまたは複数と共に実装可能な、リアルタイム音声帯域エンコーダを示すブロック図である。
【図５】一実施例における、コードブックパラメータを決定するためのフロー図である。
【図６】説明する諸実施形態のうちの１つまたは複数と共に実装可能な、リアルタイム音声帯域デコーダを示すブロック図である。
【図７】いくつかの実施例において使用可能なポストフィルタリング係数を決定するための技法を示すフロー図である。
【発明を実施するための形態】
【００２０】
説明する諸実施形態は、エンコードおよび／またはデコードにおいてオーディオ情報を処理するための技法およびツールを対象とする。これらの技法を使用すると、リアルタイム音声コーデックなどの音声コーデックから導出される音声の品質が向上する。こうした向上は、様々な技法およびツールを別々に、または組み合わせて使用する結果として生じ得る。
【００２１】
こうした技法およびツールには、周波数ドメインにおいて設計または処理される係数を使用して、時間ドメイン内のデコードされたオーディオ信号に適用される、ポストフィルタを含めることができる。この技法には、こうしたフィルタ、または何らかの他の種類のポストフィルタにおいて使用するための、フィルタリング係数値のクリッピングまたは上限を定めることも含めることができる。
【００２２】
この技法には、周波数帯域への分割によってエネルギが減衰された可能性のある周波数領域で、デコードされたオーディオ信号の大きさを拡張する、ポストフィルタも含めることができる。一例として、フィルタは、隣接帯域の交差部分付近の周波数領域で、信号を拡張することができる。
【００２３】
様々な技法に関する動作について、特に提示のために順番に説明するが、この説明の仕方は、特定の順序で行う必要がない限り、動作順序の多少の並べ替えを含むことを理解されたい。例えば、順番に説明する動作を、場合によっては並べ替えるか、または同時に実行することができる。さらにわかりやすくするために、フローチャートでは、特定の技法を他の技法と共に使用することが可能な様々な方法を示していない場合がある。
【００２４】
特定のコンピューティング環境の機能およびオーディオコーデックの機能について以下で説明するが、ツールおよび技法のうちの１つまたは複数を、様々な異なるタイプのコンピューティング環境および／または様々な異なるタイプのコーデックと共に使用することができる。例えば、ポストフィルタ技法のうちの１つまたは複数を、適応差分パルス符号変調コーデック、変換コーデック、および／または他のタイプのコーデックなどの、ＣＥＬＰ符号化モデルを使用しないコーデックと共に使用することが可能である。他の例として、ポストフィルタ技法のうちの１つまたは複数を、単一帯域コーデックまたはサブ帯域コーデックと共に使用することができる。他の例として、ポストフィルタ技法のうちの１つまたは複数を、複数帯域コーデックの単一帯域に、および／または、複数帯域コーデックの複数帯域の寄与信号（contribution）を含む合成信号またはエンコードされていない信号に適用することができる。
【００２５】
（Ｉ．コンピューティング環境）  
図１は、説明する諸実施形態のうちの１つまたは複数を実装可能な、好適なコンピューティング環境（１００）の一般化された例を示す図である。本発明は、様々な汎用コンピューティング環境または特定用途向けコンピューティング環境において実装可能であるため、このコンピューティング環境（１００）は、本発明の使用または機能の範囲に関していかなる制限をも示唆することを意図するものではない。
【００２６】
図１を参照すると、コンピューティング環境（１００）は、少なくとも１つの処理ユニット（１１０）およびメモリ（１２０）を含む。図１では、この最も基本的な構成（１３０）が破線内に含まれている。処理ユニット（１１０）は、コンピュータ実行可能命令を実行し、実プロセッサまたは仮想プロセッサとすることができる。マルチ処理システムでは、処理能力を上げるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ（１２０）は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ）、または、この２つの何らかの組合せとすることができる。メモリ（１２０）は、音声デコーダに関して本明細書で説明するポストフィルタリング技法のうちの１つまたは複数を実装するソフトウェア（１８０）を記憶する。
【００２７】
コンピューティング環境（１００）は、追加の機能を有することができる。図１では、コンピューティング環境（１００）は、ストレージ（１４０）、１つまたは複数の入力デバイス（１５０）、１つまたは複数の出力デバイス（１６０）、および１つまたは複数の通信接続（１７０）を含む。バス、コントローラ、またはネットワークなどの相互接続機構（図示せず）が、コンピューティング環境（１００）のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア（図示せず）は、コンピューティング環境（１００）において実行される他のソフトウェアに動作環境を提供し、コンピューティング環境（１００）のコンポーネントの動作を調整する。
【００２８】
ストレージ（１４０）は、取り外し可能または取り外し不可能なものとすることができ、ストレージ（１４０）としては、磁気ディスク、磁気テープもしくは磁気カセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、または、情報を記憶するために使用可能であり、かつコンピューティング環境（１００）内でアクセス可能な、任意の他の媒体を挙げることができる。ストレージ（１４０）は、ソフトウェア（１８０）に関する命令を記憶する。
【００２９】
１つまたは複数の入力デバイス（１５０）は、キーボード、マウス、ペン、もしくはトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャンデバイス、ネットワークアダプタ、または、コンピューティング環境（１００）に入力を提供する他のデバイスとすることができる。オーディオの場合、１つまたは複数の入力デバイス（１５０）は、サウンドカード、マイクロフォン、または、アナログもしくはデジタル形式のオーディオ入力を受け入れる他のデバイス、あるいは、コンピューティング環境（１００）にオーディオサンプルを提供するＣＤ／ＤＶＤリーダとすることができる。１つまたは複数の出力デバイス（１６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤ／ＤＶＤライタ、ネットワークアダプタ、または、コンピューティング環境（１００）からの出力を提供する他のデバイスとすることができる。
【００３０】
１つまたは複数の通信接続（１７０）は、通信媒体を介した他のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮音声情報、または変調されたデータ信号内の他のデータなどの情報を搬送する。変調されたデータ信号とは、信号内の情報をエンコードするような方法で設定または変更された特徴のうちの１つまたは複数を有する信号である。例を挙げると、通信媒体には、電気、光、ＲＦ、赤外線、音波、または他の搬送波を用いて実施される有線技法または無線技法が含まれるが、これらに限定されるものではない。
【００３１】
本発明は、コンピュータ読み取り可能な媒体との一般的な関連において説明することができる。コンピュータ読み取り可能な媒体は、コンピューティング環境内でアクセス可能な任意の使用可能な媒体である。例を挙げると、コンピューティング環境（１００）の場合、コンピュータ読み取り可能な媒体には、メモリ（１２０）、ストレージ（１４０）、通信媒体、および、これらのうちのいずれかの組合せが含まれるが、これらに限定されるものではない。
【００３２】
本発明は、コンピューティング環境内のターゲットとなる実プロセッサまたは仮想プロセッサ上で実行されている、プログラムモジュールに含まれるような、コンピュータ実行可能命令との一般的な関連において説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などが含まれる。プログラムモジュールの機能は、様々な実施形態において望ましいように、組み合わせてもよいし、様々なプログラムモジュール間で分離させてもよい。プログラムモジュールに関するコンピュータ実行可能命令は、ローカルコンピューティング環境または分散コンピューティング環境内で実行可能である。
【００３３】
詳細な説明では、提示のために、コンピューティング環境内でのコンピュータ動作を説明する際に、「決定する」、「生成する」、「調整する」、および「適用する」などの用語を使用する場合がある。これらの用語は、コンピュータによって実行される動作に関する高水準の抽象化であり、人間によって実行される動作と混同すべきではない。これらの用語に対応する実際のコンピュータ動作は、実装に応じて変化する。
【００３４】
（ＩＩ．一般化されたネットワーク環境およびリアルタイム音声コーデック）  
図２は、説明する諸実施形態のうちの１つまたは複数を実装可能な、一般化されたネットワーク環境（２００）を示すブロック図である。ネットワーク（２５０）は、様々なエンコーダ側コンポーネントを、様々なデコーダ側コンポーネントから分離する。
【００３５】
エンコーダ側コンポーネントおよびデコーダ側コンポーネントの主な機能はそれぞれ、音声エンコードおよび音声デコードである。エンコーダ側では、入力バッファ（２１０）が音声入力（２０２）を受け入れて記憶する。音声エンコーダ（２３０）は、入力バッファ（２１０）から音声入力（２０２）を受け取り、音声入力（２０２）をエンコードする。
【００３６】
具体的には、フレームスプリッタ（２１２）が音声入力（２０２）のサンプルをフレームに分割する。一実施例では、フレームは均一に２０ｍｓの長さであり、８ｋＨｚ入力に対して１６０サンプル、１６ｋＨｚ入力に対して３２０サンプルである。他の実施例では、フレームが異なる持続時間を有する、不均一であるか重複している、かつ／または、入力（２０２）のサンプリングレートが異なる。フレームは、エンコードおよびデコードの様々な段階について、スーパーフレーム／フレーム、フレーム／サブフレーム、または他の構成を用いて編成可能である。
【００３７】
フレーム分類器（classifier）（２１４）は、信号のエネルギ、ゼロ交差レート、長期予測利得、利得差分、および／もしくは、サブフレームまたはフレーム全体に関する他の基準などの、１つまたは複数の基準に従ってフレームを分類する。この基準に基づいて、フレーム分類器（２１４）は、様々なフレームを、無音、無声、有声、および遷移（例えば、無声から有声への）などのクラスに分類する。加えて、フレームは、フレームに使用される冗長符号化があれば、その冗長符号化のタイプに従って分類することもできる。フレームクラスは、フレームをエンコードするために計算されることになるパラメータに影響を与える。加えて、フレームクラスは、より重要なフレームクラスおよびパラメータにより多くの解像度および損失弾性（loss resiliency）を与えるように、パラメータがエンコードされる際の解像度および損失弾性に影響を与える可能性がある。例えば、無音フレームは通常、かなり低いレートで符号化され、損失があった場合の秘匿（concealment）による回復が非常に簡単であって、損失に対する保護の必要がない場合もある。無声フレームは通常、やや高いレートで符号化され、損失があった場合の秘匿による回復が適度に簡単であり、損失に対してそれほど保護されない。有声フレームおよび遷移フレームは通常、フレームの複雑さと、遷移の有無とに応じて、より多くのビットを使用してエンコードされる。有声フレームおよび遷移フレームは、損失があった場合の回復も困難であるため、損失に対してかなり保護される。代替として、フレーム分類器（２１４）は、他のおよび／または追加のフレームクラスを使用してもよい。
【００３８】
入力音声信号は、ＣＥＬＰエンコードモデルなどのエンコードモデルを、フレームに関するサブ帯域情報に適用する前に、サブ帯域信号に分割することができる。これは、（ＱＭＦ分析フィルタなどの）一連の１つまたは複数の分析フィルタバンク（２１６）を使用して、行うことが可能である。例えば、３帯域構造が使用される場合、低域通過フィルタを介して信号を渡すことによって、低周波数帯域を分割することができる。同様に、高域通過フィルタを介して信号を渡すことによって、高帯域を分割することができる。低域通過フィルタと高域通過フィルタとを直列に含めることが可能な帯域通過フィルタを介して信号を渡すことによって、中間帯域を分割することができる。代替として、他のタイプの、サブ帯域分割のためのフィルタ配置構成、および／またはフィルタリングのタイミング（例えば、フレーム分割の前など）を使用してもよい。信号の一部について１つの帯域のみがデコードされる場合、その信号の一部は、分析フィルタバンク（２１６）をバイパスすることができる。
【００３９】
帯域数ｎは、サンプリングレートによって決定することができる。例えば一実施例では、８ｋＨｚサンプリングレートに対して単一の帯域構造が使用される。１６ｋＨｚおよび２２．０５ｋＨｚのサンプリングレートでは、図３に示されるように、３帯域構造が使用される。図３の３帯域構造では、低周波数帯域（３１０）は、全帯域幅Ｆの半分（０から０．５Ｆ）まで伸長している。帯域幅の他方の半分は、中間帯域（３２０）と高帯域（３３０）とに等しく分割されている。帯域の交差部分付近では、帯域に対する周波数応答が、通過レベルから停止レベルへと徐々に減少している。これは、交差部分に近づくに際しての両側での信号の減衰によって特徴付けられる。他の周波数帯域幅の分割も使用することができる。例えば、３２ｋＨｚのサンプリングレートの場合、等しく間隔があけられた４帯域構造を使用することができる。
【００４０】
通常、信号エネルギは、高周波数領域に向かうにつれて減衰していくため、低周波数帯域は通常、音声信号にとって最も重要な帯域である。したがって、低周波数帯域は、しばしば他の帯域よりも多くのビットを使用してエンコードされる。サブ帯域構造は、単一帯域符号化構造に比べて柔軟性が高く、周波数帯域をまたがった量子化ノイズをより良く制御することができる。したがって、サブ帯域構造を使用することによって、知覚音声品質は大幅に向上すると考えられる。しかしながら、以下で説明するように、サブ帯域の分割は、隣接する帯域の交差部分付近の周波数領域において、信号のエネルギ損失を発生させる可能性がある。このエネルギ損失は、結果として生じるデコードされた音声信号の品質を低下させる可能性がある。
【００４１】
図２では、エンコードコンポーネント（２３２、２３４）によって示されるように、各サブ帯域が別々にエンコードされる。帯域エンコードコンポーネント（２３２、２３４）は別々のものとして示されているが、すべての帯域のエンコードは、単一のエンコーダを用いて実行されてもよいし、別々のエンコーダを用いてエンコードされてもよい。こうした帯域エンコードについては、図４を参照しながら以下でより詳細に説明する。代替として、コーデックは、単一帯域コーデックとして動作することができる。結果として生じるエンコードされた音声は、マルチプレクサ（「ＭＵＸ」）（２３６）を介して、１つまたは複数のネットワーキング層（２４０）用のソフトウェアに提供される。１つまたは複数のネットワーキング層（２４０）は、ネットワーク（２５０）を介して伝送するために、エンコードされた音声を処理する。例えば、ネットワーク層ソフトウェアは、エンコードされた音声情報のフレームを、ＲＴＰプロトコルに従うパケットにパッケージングし、このパケットが、ＵＤＰ、ＩＰ、および様々な物理層プロトコルを使用し、インターネットを介して中継される。代替として、他の、および／または追加のソフトウェアの層またはネットワーキングプロトコルが使用されてもよい。
【００４２】
ネットワーク（２５０）は、インターネットなどの広域のパケット交換ネットワークである。代替として、ネットワーク（２５０）は、ローカルエリアネットワークまたは他の種類のネットワークである場合もある。
【００４３】
デコーダ側では、１つまたは複数のネットワーキング層（２６０）用のソフトウェアが、伝送されたデータを受信して処理する。通常、１つまたは複数のデコーダ側のネットワーキング層（２６０）内の、ネットワーク、伝送、および高位層のプロトコル、ならびにソフトウェアは、エンコード側のネットワーキング層（２４０）内のネットワーク、伝送、および高位層のプロトコル、ならびにソフトウェアに対応する。１つまたは複数のネットワーキング層は、デマルチプレクサ（「ＤＥＭＵＸ」）を介して、エンコードされた音声情報を音声デコーダ（２７０）に提供する。
【００４４】
デコーダ（２７０）は、帯域デコードコンポーネント（２７２、２７４）において示されるように、サブ帯域の各々を別々にデコードする。すべてのサブ帯域は、単一のデコーダによってデコードしてもよいし、別々の帯域デコーダによってデコードしてもよい。
【００４５】
その後、デコードされたサブ帯域は、（ＱＭＦ合成フィルタなどの）一連の１つまたは複数の合成フィルタバンク（２８０）内で合成され、この合成フィルタバンク（２８０）が、デコードされた音声を出力する（２９２）。代替として、サブ帯域合成のための他のタイプのフィルタ配置構成が使用されてもよい。単一の帯域のみが存在する場合、デコードされた帯域は、フィルタバンク（２８０）をバイパスすることができる。複数の帯域が存在する場合、デコードされた音声出力（２９２）は、結果として生じる拡張音声出力（２９４）の品質を向上させるために、中間周波数拡張ポストフィルタ（２８４）を介して渡すことも可能である。中間周波数拡張ポストフィルタの実装については、以下でより詳細に説明する。
【００４６】
図６を参照しながら、１つの一般化されたリアルタイム音声帯域デコーダについて以下で説明するが、代替として、他の音声デコーダを使用することもできる。加えて、説明するツールおよび技法の一部またはすべては、音楽エンコーダおよび音楽デコーダ、または汎用オーディオエンコーダおよび汎用オーディオデコーダなどの、他のタイプのオーディオエンコーダおよびオーディオデコーダに対して使用することも可能である。
【００４７】
これらの主なエンコードおよびデコード機能は別として、こうしたコンポーネント群は、エンコードされた音声のレート、品質、および／または損失弾性を制御するために、情報を共有すること（図２の破線内に図示）も可能である。レートコントローラ（２２０）は、入力バッファ（２１０）内の現在の入力の複雑さ、エンコーダ（２３０）またはその他の場所における出力バッファのバッファ満杯度、所望の出力レート、現在のネットワーク帯域幅、ネットワーク輻輳／ノイズ状況、および／またはデコーダ損失レートなどの、様々な要素を考慮の対象とする。デコーダ（２７０）は、デコーダの損失レート情報をレートコントローラ（２２０）にフィードバックする。１つまたは複数のネットワーキング層（２４０、２６０）は、現在のネットワーク帯域幅および輻輳／ノイズ状況に関する情報を収集または推定し、この情報がレートコントローラ（２２０）にフィードバックされる。代替として、レートコントローラ（２２０）は、他の、および／または追加の要素を考慮の対象としてもよい。
【００４８】
レートコントローラ（２２０）は、音声のエンコードに伴うレート、品質、および／または損失弾性を変更するよう、音声エンコーダ（２３０）に指示する。エンコーダ（２３０）は、パラメータに関する量子化要素を調整すること、またはパラメータを表すエントロピコードの解像度を変更することによって、レートおよび品質を変更することができる。加えて、エンコーダは、冗長符号化のレートまたは種類を調整することによって、損失弾性を変更することもできる。したがって、エンコーダ（２３０）は、ネットワーク条件に応じて、主要なエンコード機能と損失弾性機能との間でのビット割り当て（allocation）を変更することができる。
【００４９】
図４は、説明する諸実施形態のうちの１つまたは複数と共に実装可能な、一般化された音声帯域エンコーダ（４００）を示すブロック図である。帯域エンコーダ（４００）は一般に、図２の帯域エンコードコンポーネント（２３２、２３４）のうちのいずれか１つに対応する。
【００５０】
信号が複数の帯域に分割される場合、帯域エンコーダ（４００）は、フィルタバンク（または他のフィルタ）から帯域入力（４０２）を受け入れる。信号が複数の帯域に分割されない場合、帯域入力（４０２）は、帯域幅全体を表すサンプルを含む。帯域エンコーダは、エンコードされた帯域出力（４９２）を生成する。
【００５１】
信号が複数の帯域に分割される場合、ダウンサンプリングコンポーネント（４２０）は、各帯域でダウンサンプリングを実行することができる。一例として、サンプリングレートが１６ｋＨｚに設定され、かつ各フレームの持続時間が２０ｍｓの場合、各フレームは３２０サンプルを含む。ダウンサンプリングが実行されず、かつフレームが図３に示されるような３帯域構造に分割された場合、そのフレームでは、３倍のサンプル（すなわち、１帯域につき３２０サンプルなので合計９６０サンプル）が、エンコードおよびデコードされることになる。しかしながら、各帯域をダウンサンプリングすることができる。例えば、低周波数帯域（３１０）を、３２０サンプルから１６０サンプルにダウンサンプリングすることが可能であり、さらに、中間帯域（３２０）および高帯域（３３０）の各々を、３２０サンプルから８０サンプルにダウンサンプリングすることが可能である。ここで、帯域（３１０、３２０、３３０）はそれぞれ、周波数領域の２分の１、４分の１、および４分の１にわたって伸長している。（この実装におけるダウンサンプリング（４２０）の程度は、帯域（３１０、３２０、３３０）の周波数領域に関して変化する。しかしながら、他の実装も可能である。後者の段階では、通常、信号エネルギは、周波数領域が高くなるほど減衰するため、通常、より高い帯域に対してより少ないビットが使用される。）したがって、これにより、フレームに対してエンコードおよびデコードされることになる合計３２０サンプルが提供される。
【００５２】
ＬＰ分析コンポーネント（４３０）は、線形予測係数（４３２）を算出する。一実施例では、ＬＰフィルタは、８ｋＨｚ入力に対しては１０個の係数を使用し、１６ｋＨｚ入力に対しては１６個の係数を使用し、ＬＰ分析コンポーネント（４３０）は、各帯域について、１フレームにつき１セットの線形予測係数を算出する。代替として、ＬＰ分析コンポーネント（４３０）は、異なる場所を中心とする２つのウィンドウそれぞれに対して、各帯域について１フレームにつき２セットの係数を算出するか、または、１帯域および１フレームのうちの少なくとも一方につき異なる数の係数を算出する。
【００５３】
ＬＰＣ処理コンポーネント（４３５）は、線形予測係数（４３２）を受信して処理する。通常、ＬＰＣ処理コンポーネント（４３５）は、より効率の良い量子化およびエンコードのために、ＬＰＣ値を異なる表現に変換する。例えば、ＬＰＣ処理コンポーネント（４３５）は、ＬＰＣ値を線スペクトル対（ＬＳＰ）表現に変換し、ＬＳＰ値は、（ベクトル量子化などにより）量子化されエンコードされる。ＬＳＰ値は、イントラ符号化することもできるし、他のＬＳＰ値から予測することもできる。ＬＰＣ値に対しては、様々な表現、量子化技法、およびエンコード技法が可能である。ＬＰＣ値は、パケット化および伝送のために、（任意の量子化パラメータおよび再構築に必要な他の情報と共に、）エンコードされた帯域出力（４９２）の一部として、何らかの形で提供される。その後エンコーダ（４００）内で使用される場合、ＬＰＣ処理コンポーネント（４３５）は、ＬＰＣ値を再構築する。ＬＰＣ処理コンポーネント（４３５）は、ＬＰＣ係数の異なるセット間、またはフレームの異なるサブフレームに対して使用されるＬＰＣ係数間での遷移を平滑にするために、ＬＰＣ値に対して、（ＬＳＰ表現または他の表現と同等の）補間を実行することができる。
【００５４】
合成（または「短期予測」）フィルタ（４４０）は、再構築されたＬＰＣ値（４３８）を受け入れ、再構築されたＬＰＣ値（４３８）をフィルタに組み込む。合成フィルタ（４４０）は励起信号を受信し、オリジナル信号の近似を生成する。所与のフレームについて、合成フィルタ（４４０）は、予測開始に関する以前のフレームから、いくつかの再構築されたサンプル（例えば、１０タップフィルタに対して１０個）をバッファリングすることができる。
【００５５】
知覚重み付けコンポーネント（perceptual weighting component）（４５０、４５５）は、聴覚システムを量子化エラーに対して低感度にするための、音声信号のフォルマント構造を選択的に重視しないように、オリジナル信号と、合成フィルタ（４４０）のモデル化された出力とに知覚重み付けを適用する。知覚重み付けコンポーネント（４５０、４５５）は、マスキングなどの心理音響現象を活用する。一実施例では、知覚重み付けコンポーネント（４５０、４５５）は、ＬＰ分析コンポーネント（４３０）から受信したオリジナルＬＰＣ値（４３２）に基づいて、重み付けを適用する。代替として、知覚重み付けコンポーネント（４５０、４５５）は、他の、および／または追加の重み付けを適用してもよい。
【００５６】
知覚重み付けコンポーネント（４５０、４５５）に続いて、エンコーダ（４００）は、知覚的に重み付けされたオリジナル信号と、知覚的に重み付けされた合成フィルタ（４４０）からの出力との差を計算して、差分信号（４３４）を生成する。代替として、エンコーダ（４００）は、異なる技法を使用して音声パラメータを算出してもよい。
【００５７】
励起パラメータ化コンポーネント（４６０）は、知覚的に重み付けされたオリジナル信号と合成された信号との差を最小限にするという観点から（重み付けされた平均２乗誤差または他の基準の観点から）、適応コードブック指数、固定コードブック指数、および利得コードブック指数の最良の組合せを見つけようとする。多くのパラメータは、１サブフレームあたりで算出されるが、より一般的には、パラメータは、スーパーフレームあたり、フレームあたり、またはサブフレームあたりで算出することができる。前述したように、フレームまたはサブフレームの異なる帯域に関するパラメータは、異なる可能性がある。表２は、一実施例において、異なるフレームクラスに対する使用可能なパラメータのタイプを示している。
【００５８】
【表２】
0005688852.tif 000003
【００５９】
図４では、励起パラメータ化コンポーネント（４６０）が、フレームをサブフレームに分割し、各サブフレームのコードブック指数および利得を適宜計算する。例えば、使用されるコードブックステージの数およびタイプ、ならびにコードブック指数の解像度は、エンコードモードによって最初に決定することが可能である。この場合、モードは、前述のレートコントロールコンポーネントによって指示される。特定のモードは、コードブックステージの数およびタイプ以外に、エンコードおよびデコードパラメータ、例えばコードブック指数の解像度を指示することもできる。各コードブックステージのパラメータは、ターゲット信号とそのコードブックステージの合成信号に対する寄与信号との間の誤差を最小化するようにパラメータを最適化することによって、決定される。（本明細書で使用される「最適化する」という用語は、パラメータスペースの全検索を実行することとは異なり、ひずみ低減、パラメータ検索時間、パラメータ検索の複雑さ、パラメータのビットレートなどの、適用可能な制約の下で、好適なソリューションを見つけることを意味する。同様に、「最小化する」という用語も、適用可能な制約の下で、好適なソリューションを見つけることに関するものと理解されたい。）例えば、最適化は、修正された平均２乗誤差技法を使用して実行可能である。各ステージのターゲット信号は、残余信号と、前のコードブックステージの合成信号に対する寄与信号が存在すれば、その寄与信号の合計との差である。代替として、他の最適化技法を使用してもよい。
【００６０】
図５は、一実施例に従ってコードブックパラメータを決定するための技法を示している。励起パラメータ化コンポーネント（４６０）は、潜在的にはレートコントローラなどの他のコンポーネントと共に、この技法を実行する。代替として、エンコーダ内の他のコンポーネントがこの技法を実行してもよい。
【００６１】
図５を参照すると、励起パラメータ化コンポーネント（４６０）は、有声フレームまたは遷移フレームにおける各サブフレームについて、現在のサブフレームに対して適応コードブックが使用できるかどうかを判定する（５１０）。（例えば、レートコントロールは、特定のフレームに対しては、適応コードブックが使用されないよう指示することができる。）適応コードブックが使用されない場合、適応コードブックスイッチは、使用される適応コードブックがないことを示すことになる（５３５）。例えば、これは、フレーム内で適応コードブックが使用されないことを示すフレームレベルに１ビットフラグを設定すること、フレームレベルに特定の符号化モードを指定すること、またはサブフレーム内で適応コードブックが使用されないことを示す各サブフレームについて１ビットフラグを設定することによって、実行可能である。
【００６２】
さらに図５を参照すると、適応コードブックが使用可能な場合、コンポーネント（４６０）は適応コードブックパラメータを決定する。それらのパラメータは、励起信号履歴の所望のセグメントを示す指数またはピッチ値、および所望のセグメントに適用するための利得を含む。図４および図５では、コンポーネント（４６０）が閉ループピッチ検索を実行する（５２０）。この検索は、図４のオプションの開ループピッチ検索コンポーネント（４２５）によって決定されたピッチで開始される。開ループピッチ検索コンポーネント（４２５）は、そのピッチを推定するために、重み付けコンポーネント（４５０）によって生成された重み付け信号を分析する。閉ループピッチ検索（５２０）は、この推定されたピッチで開始され、ターゲット信号と、励起信号履歴の指示されたセグメントから生成された重み付けされた合成信号との間の誤差を減らすために、ピッチ値を最適化する。適応コードブック利得値も最適化される（５２５）。適応コードブック利得値は、値のスケールを調整するために、ピッチ予測値（励起信号履歴の指示されたセグメントからの値）に適用するための乗数を示す。ピッチ予測値によって乗算された利得は、現在のフレームまたはサブフレームに関する励起信号に対する適応コードブックの寄与信号である。利得最適化（５２５）および閉ループピッチ検索（５２０）はそれぞれ、ターゲット信号と、適応コードブック寄与信号から重み付けされた合成信号との間の誤差を最小化する、利得値および指数値を生成する。
【００６３】
コンポーネント（４６０）が、適応コードブックが使用されると判定した場合（５３０）、適応コードブックパラメータは、ビットストリームに含められてシグナリングされる（５４０）。使用されない場合、上述したように、１ビットのサブフレームレベルフラグを設定することなどによって、サブフレームに対しては、適応コードブックが使用されないことが示される（５３５）。この判定（５３０）は、特定のサブフレームに関する適応コードブック寄与信号が、適応コードブックパラメータをシグナリングするために必要なビット数に値するだけの十分なものであるかどうかの判定を含めることができる。代替として、何らかの他の基準を判定に使用することもできる。さらに、図５では、判定後にシグナリングするように示されているが、代替として、フレームまたはスーパーフレームに対して技法が完了するまで、信号はバッチ処理される（batched）。
【００６４】
励起パラメータ化コンポーネント（４６０）は、パルスコードブックが使用されるかどうかも判定する（５５０）。パルスコードブックを使用するか否かは、現在のフレームの全体符号化モードの一部として示される。あるいは、パルスコードブックを使用するか否かは、他の方法で示されてもよいし、決定されてもよい。パルスコードブックとは、励起信号に寄与する１つまたは複数のパルスを指定するタイプの固定コードブックである。パルスコードブックパラメータは、指数およびサイン（sign）のペア群を含む（利得は正または負とすることができる）。各ペアは、パルスの位置を示す指数と、パルスの極性を示すサインとを伴う、励起信号に含まれるパルスを示す。パルスコードブック内に含まれ、かつ励起信号に寄与するために使用されるパルスの数は、符号化モードに応じて変更することができる。加えて、パルスの数は、適応コードブックが使用されているか否かに応じて変更することができる。
【００６５】
パルスコードブックが使用される場合、パルスコードブックパラメータは、指示されたパルスの寄与信号とターゲット信号との間の誤差を最小化するように最適化される（５５５）。適応コードブックが使用されない場合、ターゲット信号は重み付けされたオリジナル信号である。適応コードブックが使用される場合、ターゲット信号は、重み付けされたオリジナル信号と、重み付けされた合成信号に対する適応コードブックの寄与信号との差である。ある時点（図示せず）で、パルスコードブックパラメータは、ビットストリームに含められてシグナリングされる。
【００６６】
励起パラメータ化コンポーネント（４６０）は、任意のランダム固定コードブックステージが使用されるかどうかも判定する（５６５）。ランダムコードブックステージが存在すれば、ランダムコードブックステージの数は、現在のフレームの全体符号化モードの一部として示されるか、または、他の方法で決定することができる。ランダムコードブックとは、エンコードする値に関して予め定義された信号モデルを使用するタイプの固定コードブックである。コードブックパラメータには、信号モデルの指示されたセグメントに関する開始点と、正または負とすることができるサインとを含めることができる。指示されたセグメントの長さまたは領域は、通常固定されているため、通常はシグナリングされないが、代替として、指示されたセグメントの長さまたは範囲は、シグナリングされてもよい。利得は、励起信号に対するランダムコードブックの寄与信号を生成するために、指示されたセグメントの値と乗算される。
【００６７】
少なくとも１つのランダムコードブックステージが使用される場合、そのコードブックに関するコードブックステージパラメータは、ランダムコードブックステージの寄与信号とターゲット信号との間の誤差を最小化するように最適化される（５７０）。ターゲット信号は、重み付けされたオリジナル信号と、（存在すれば）重み付けされた合成信号に対する適応コードブックの寄与信号、（存在すれば）パルスコードブックの寄与信号、および（存在すれば）以前に決定されたランダムコードブックステージの寄与信号の合計との間の差である。ある時点（図示せず）で、ランダムコードブックパラメータは、ビットストリームに含められてシグナリングされる。
【００６８】
次いで、コンポーネント（４６０）は、別のランダムコードブックステージが使用されるかどうかを判定する（５８０）。使用される場合、次のランダムコードブックステージのパラメータが最適化され（５７０）、上述したようにシグナリングされる。これは、ランダムコードブックステージに関するすべてのパラメータが決定されるまで続行される。すべてのランダムコードブックステージは、モデルとは異なるセグメントを示し、異なる利得値を有することが多いが、同じ信号モデルを使用することができる。代替として、異なる信号モデルを異なるランダムコードブックステージに対して使用することもできる。
【００６９】
レートコントローラおよび／または他のコンポーネントによって決定されたように、各励起利得を独立に量子化するか、あるいは、複数の利得をまとめて量子化することができる。
【００７０】
本明細書では、様々なコードブックパラメータを最適化するために、特定の順序で説明してきたが、他の順序および最適化技法を使用することもできる。例えば、すべてのランダムコードブックを同時に最適化することができる。したがって、図５は異なるコードブックパラメータの順次計算を示しているが、別の方法では、（例えば、パラメータをまとめて変更すること、および、何らかの非線形最適化技法に従って結果を評価することによって、）複数の異なるコードブックパラメータがまとめて最適化される。加えて、コードブックの他の構成または他の励起信号パラメータも使用可能である。
【００７１】
この実施例における励起信号は、１つの適応コードブックステージの寄与信号、１つのパルスコードブックステージの寄与信号、および１つまたは複数のランダムコードブックステージの寄与信号の任意の合計である。代替として、図４のコンポーネント（４６０）は、励起信号に関する他の、および／または追加のパラメータを算出することもできる。
【００７２】
図４を参照すると、励起信号に関するコードブックパラメータは、シグナリングされるか、または別の方法で、（図４内の破線で囲まれた）ローカルデコーダ（４６５）および帯域出力（４９２）に提供される。したがって、各帯域について、エンコーダ出力（４９２）は、前述のＬＰＣ処理コンポーネント（４３５）からの出力、および励起パラメータ化コンポーネント（４６０）からの出力を含む。
【００７３】
出力（４９２）のビットレートは、部分的には、コードブックによって使用されるパラメータに依存し、エンコーダ（４００）は、コードブック指数の異なるセット間で切り替えること、埋め込まれたコードを使用すること、または他の技法を使用することによって、ビットレートおよび／または品質を制御することができる。コードブックのタイプおよびステージの異なる組合せにより、異なるフレーム、帯域、および／またはサブフレームに対する異なるエンコードモードをもたらすことができる。例えば、無声フレームは、１つのみのランダムコードブックステージを使用することができる。適応コードブックおよびパルスコードブックは、低レートの有声フレームに対して使用することができる。高レートフレームは、１つの適応コードブックステージ、１つのパルスコードブックステージ、および１つまたは複数のランダムコードブックステージを使用して、エンコードすることができる。１つのフレームにおいて、すべてのサブ帯域に関するすべてのエンコードモードの組合せを、まとめて、モードセットと呼ぶことができる。異なるモードが異なる符号化ビットレートに対応する、各サンプリングレートについていくつかの予め定義されたモードセットが存在し得る。レートコントロールモジュールは、各フレームに関するモードセットを決定することもできるし、各フレームに関するモードセットに影響を与えることもできる。
【００７４】
さらに図４を参照すると、励起パラメータ化コンポーネント（４６０）の出力は、パラメータ化コンポーネント（４６０）によって使用されるコードブックに対応する、コードブック再構築コンポーネント（４７０、４７２、４７４、４７６）および利得適用コンポーネント（４８０、４８２、４８４、４８６）によって受信される。コードブックステージ（４７０、４７２、４７４、４７６）および対応する利得適用コンポーネント（４８０、４８２、４８４、４８６）は、コードブックの寄与信号を再構築する。それらの寄与信号が合計されて励起信号（４９０）が生成される。この励起信号（４９０）が合成フィルタ（４４０）によって受信される。ここで、励起信号（４９０）は、後続の線形予測の発生元である「予測」サンプルと共に使用される。励起信号の遅延部分も、後続の適応コードブックパラメータ（例えば、ピッチ寄与）を再構築するために適応コードブック再構築コンポーネント（４７０）によって、ならびに、後続の適応コードブックパラメータ（例えば、ピッチ指数およびピッチ利得値）を算出する際にパラメータ化コンポーネント（４６０）によって、励起履歴信号として使用される。
【００７５】
再度図２を参照すると、各帯域についての帯域出力は、他のパラメータと共にＭＵＸ（２３６）によって受け入れられる。こうした他のパラメータとしては、情報の中でもとりわけ、フレーム分類器（２１４）からのフレームクラス情報（２２２）およびフレームエンコードモードを挙げることができる。ＭＵＸ（２３６）は、他のソフトウェアに渡すために、アプリケーション層パケットを構築するか、またはＭＵＸ（２３６）は、ＲＴＰなどのプロトコルに従ったパケットのペイロードにデータを入れる。ＭＵＸは、後続のパケットにおける転送エラー訂正のためのパラメータの選択的反復を可能にするように、パラメータをバッファリングすることができる。一実施例では、ＭＵＸ（２３６）は、１つまたは複数の前のフレームのすべてまたは一部に関する転送エラー訂正情報と共に、主要エンコード音声情報を、１フレームにつき単一のパケットにパックする。
【００７６】
ＭＵＸ（２３６）は、レートコントロールのために、現在のバッファの満杯度などのフィードバックを提供する。より一般的には、エンコーダ（２３０）の様々なコンポーネント（フレーム分類器（２１４）およびＭＵＸ（２３６）を含む）は、図２に示されたようなレートコントローラ（２２０）に情報を提供することができる。
【００７７】
図２のビットストリームＤＥＭＵＸ（２７６）は、エンコードされた音声情報を入力として受け入れ、パラメータを識別して処理するために、そのエンコードされた音声情報を解析する。パラメータには、フレームクラス、ＬＰＣ値の何らかの表現、およびコードブックパラメータを含めることができる。フレームクラスは、所与のフレームについて、他のどのパラメータが存在するかを示すことができる。より一般的には、ＤＥＭＵＸ（２７６）は、エンコーダ（２３０）によって使用されるプロトコルを使用し、エンコーダ（２３０）がパケットにパックするパラメータを抽出する。動的パケット交換ネットワークを介して受信されるパケットの場合、ＤＥＭＵＸ（２７６）は、所与の期間に渡るパケットレートの短期変動を平滑にするためのジッタバッファを含む。あるケースでは、デコーダ（２７０）は、遅延、品質管理、欠落フレームの秘匿などをデコードに統合するように、バッファ遅延を制御し、バッファからパケットが読み出されるタイミングを管理する。他のケースでは、アプリケーション層コンポーネントがジッタバッファを管理し、ジッタバッファは、可変レートで満たされ、一定の、または比較的一定のレートで、デコーダ（２７０）によって消費されていく（depleted）。
【００７８】
ＤＥＭＵＸ（２７６）は、所与のセグメントについて、１つの１次エンコードされたバージョンと、１つまたは複数の２次エラー訂正バーションとを含む複数バージョンのパラメータを受信することができる。エラー訂正が失敗した場合、デコーダ（２７０）は、パラメータの反復または正しく受信された情報に基づく推定などの、秘匿技法を使用する。
【００７９】
図６は、説明する諸実施形態のうちの１つまたは複数と共に実装可能な、一般化されたリアルタイム音声帯域デコーダ（６００）を示すブロック図である。帯域デコーダ（６００）は一般に、図２の帯域デコードコンポーネント（２７２、２７４）のうちのいずれか１つに対応する。
【００８０】
帯域デコーダ（６００）は、（完全な帯域とすることもできるし、または複数のサブ帯域のうちの１つとすることもできる）帯域に関するエンコードされた音声情報（６９２）を入力として受け入れ、デコードおよびフィルタリングの後に、フィルタリングされた再構築された出力（６０４）を生成する。デコーダ（６００）のコンポーネントは、エンコーダ（４００）内のコンポーネントに対応するコンポーネントを有するが、知覚重み付け、励起処理ループ、およびレートコントロールに関するコンポーネントがないため、全体としてデコーダ（６００）の方が単純である。
【００８１】
ＬＰＣ処理コンポーネント（６３５）は、帯域エンコーダ（４００）によって提供される形で、ＬＰＣ値を表す情報（ならびに、任意の量子化パラメータおよび再構築に必要な他の情報）を受信する。ＬＰＣ処理コンポーネント（６３５）は、以前にＬＰＣ値に適用された変換、量子化、エンコードなどの逆処理を使用して、ＬＰＣ値（６３８）を再構築する。ＬＰＣ処理コンポーネント（６３５）は、ＬＰＣ係数の異なるセット間の遷移を平滑にするために、（ＬＰＣ表現またはＬＳＰなどの他の表現で）ＬＰＣ値に対する補間を実行することもできる。
【００８２】
コードブックステージ（６７０、６７２、６７４、６７６）および利得適用コンポーネント（６８０、６８２、６８４、６８６）は、励起信号に使用される任意の対応するコードブックステージのパラメータをデコードし、使用される各コードブックステージの寄与信号を算出する。一般に、コードブックステージ（６７０、６７２、６７４、６７６）および利得コンポーネント（６８０、６８２、６８４、６８６）の構成および動作は、エンコーダ（４００）におけるコードブックステージ（４７０、４７２、４７４、４７６）および利得コンポーネント（４８０、４８２、４８４、４８６）の構成および動作に対応する。使用されるコードブックステージの寄与信号が合計され、結果として生じる励起信号（６９０）が合成フィルタ（６４０）に送信される。励起信号（６９０）の遅延値は、励起信号の後続部分について適応コードブックの寄与信号を算出する際に、適応コードブック（６７０）によって、励起履歴としても使用される。
【００８３】
合成フィルタ（６４０）は、再構築されたＬＰＣ値（６３８）を受け入れ、その再構築されたＬＰＣ値（６３８）をフィルタに組み込む。合成フィルタ（６４０）は、処理するために、以前に再構築されたサンプルを記憶する。励起信号（６９０）は、オリジナル音声信号の近似を形成するために、合成フィルタを介して渡される。
【００８４】
再構築されたサブ帯域信号（６０２）も短期ポストフィルタ（６９４）に送信される。短期ポストフィルタは、フィルタリングされたサブ帯域出力（６０４）を生成する。短期ポストフィルタ（６９４）に関する係数を算出するためのいくつかの技法については、以下で説明する。適応ポストフィルタリングの場合、デコーダ（２７０）は、エンコードされた音声に関するパラメータ（例えば、ＬＰＣ値）から係数を算出することができる。代替として、係数は、何らかの他の技法により提供されてもよい。
【００８５】
再度図２を参照すると、上述したように、複数のサブ帯域が存在する場合、各サブ帯域に関するサブ帯域出力が、音声出力（２９２）を形成するために、合成フィルタバンク（２８０）内で合成される。
【００８６】
図２〜図６に示された関係は、情報の概略的なフローを示し、わかりやすくするために他の関係は示されていない。実装および所望の圧縮のタイプに応じて、コンポーネントの追加、省略、複数のコンポーネントへの分割、他のコンポーネントとの組合せ、および／または同様のコンポーネントとの置換が可能である。例えば、図２に示された環境（２００）では、レートコントローラ（２２０）を音声エンコーダ（２３０）と組み合わせることができる。追加され得るコンポーネントには、マルチメディアエンコードアプリケーション（またはマルチメディア再生アプリケーション）が含まれる。このマルチメディアエンコードアプリケーション（またはマルチメディア再生アプリケーション）は、音声エンコーダ（またはデコーダ）ならびに他のエンコーダ（またはデコーダ）を管理し、ネットワーク状態情報およびデコーダ状態情報を収集し、適応エラー訂正機能を実行する。代替実施形態では、異なる組合せおよび構成のコンポーネントが、本明細書で説明する技法を使用して、音声情報を処理する。
【００８７】
（ＩＩＩ．ポストフィルタリング技法）  
いくつかの実施形態では、デコーダまたは他のツールが、再構築された音声などの再構築されたオーディオがデコードされた後に、短期ポストフィルタをこのようなデコードされた再構築されたオーディオに適用する。こうしたフィルタは、再構築された音声の知覚品質を向上させることができる。
【００８８】
ポストフィルタは通常、時間ドメインポストフィルタまたは周波数ドメインポストフィルタのいずれかである。従来のＣＥＬＰコーデック用の時間ドメインポストフィルタは、１つの定因数（constant factor）によってスケーリングされる全極型（all-pole）線形予測係数合成フィルタと、他の定因数によってスケーリングされる全ゼロ型（all-zero）線形予測係数逆フィルタとを含む。
【００８９】
加えて、通常音声内の低周波数の振幅がしばしば高周波数の振幅よりも高いため、「スペクトル傾斜」と呼ばれる現象が多くの音声信号において発生する。したがって、音声信号の周波数ドメイン振幅スペクトルは、しばしばスロープすなわち「傾斜」を含む。したがって、再構築された音声信号には、オリジナル音声からのスペクトル傾斜が存在するはずである。しかしながら、ポストフィルタの係数がこうした傾斜も組み込む場合、ポストフィルタリングされた出力における傾斜の影響は増大されることになり、結果として、フィルタリングされた音声信号はひずむことになる。したがって、いくつかの時間ドメインポストフィルタは、スペクトル傾斜を補償するための１次高域通過フィルタも含む。
【００９０】
したがって、時間ドメインポストフィルタの特徴は通常、それほど高い柔軟性を与えない２つまたは３つのパラメータによって制御される。
【００９１】
他方、周波数ドメインポストフィルタは、ポストフィルタリングの特徴を定義する、より柔軟な方法を有している。周波数ドメインポストフィルタでは、フィルタリング係数は、周波数ドメイン内で決定される。デコードされた音声信号は、周波数ドメインに変換され、周波数ドメイン内でフィルタリングされる。その後、フィルタリングされた信号が再度時間ドメインに変換される。しかしながら、結果として生じるフィルタリングされた時間ドメイン信号は、通常、オリジナルのフィルタリングされていない時間ドメイン信号とは異なるサンプル数を有する。例えば、１６０サンプルを有するフレームは、後のサンプルのパディングまたは包含後に、２５６ポイント高速フーリエ変換（「ＦＦＴ」）などの２５６ポイント変換を使用して、周波数ドメインに変換することができる。フレームを時間ドメインに再変換するために２５６ポイント逆ＦＦＴが適用された場合、２５６の時間ドメインサンプルが生じることになる。したがって、余分な９６サンプルが生じる。余分な９６サンプルは、次のフレームの最初の９６サンプル内のそれぞれのサンプルと重複させるか、またはこれに追加することができる。これは、しばしば重複−追加（overlap-add）技法と呼ばれる。音声信号の変換ならびに重複−追加技法などの技法の実施により、特にまだ周波数変換コンポーネントを含んでいないコーデックの場合、デコーダ全体の複雑さが大幅に増大する可能性がある。したがって、周波数ドメインポストフィルタは、こうしたフィルタを非正弦波ベースのコーデックに適用することにより導出される遅延および複雑さが大きすぎるため、通常、正弦波ベースの音声コーデックに対してのみ使用される。周波数ドメインポストフィルタは通常、コーデックフレームサイズが符号化中に変化する場合、（１６０サンプルではなく８０サンプルを有するフレームなどの）異なるサイズフレームに遭遇すると、上述した重複−追加技法が極めて複雑になるため、フレームサイズを変更するための柔軟性はより低いものとなる。
【００９２】
特定のコンピューティング環境機能およびオーディオコーデック機能について上述したが、１つまたは複数のツールおよび技法を、様々な異なるタイプのコンピューティング環境および／または様々な異なるタイプのコーデックと共に使用することができる。例えば、１つまたは複数のポストフィルタリング技法は、適応差分パルスコード変調コーデック、変形コーデック、および／または他のタイプのコーデックなどの、ＣＥＬＰ符号化モデルを使用しないコーデックと共に使用することができる。他の例として、１つまたは複数のポストフィルタリング技法を、単一帯域コーデックまたはサブ帯域コーデックと共に使用することができる。他の例として、１つまたは複数のポストフィルタリング技法を、複数帯域コーデックの単一帯域に、および／または、複数帯域コーデックの複数帯域の寄与信号を含む合成信号またはエンコードされていない信号に、適用することができる。
【００９３】
（Ａ．複合短期ポストフィルタの例）  
いくつかの実施形態では、図６に示されたデコーダ（６００）などのデコーダが、後処理のために、適応時間周波数「複合（hybrid）」フィルタを組み込むか、またはこうしたフィルタがデコーダ（６００）の出力に適用される。代替として、こうしたフィルタが、例えば本願の他の場所で説明される音声コーデックなどの、何らかの他のタイプのオーディオデコーダまたは処理ツールに組み込まれるか、あるいは、何らかの他のタイプのオーディオデコーダまたは処理ツールの出力に適用される。
【００９４】
図６を参照すると、いくつかの実施例では、短期ポストフィルタ（６９４）は、時間ドメインおよび周波数ドメインのプロセスの組合せに基づく「複合」フィルタである。ポストフィルタ（６９４）の係数は、主に周波数ドメイン内で柔軟かつ効率的に設計することが可能であり、この係数を時間ドメイン内の短期ポストフィルタに適用することができる。この手法の複雑さは、通常、標準の周波数ドメインポストフィルタよりも低く、導出される遅延がごくわずかであるように実施することができる。加えて、このフィルタは、従来の時間ドメインポストフィルタよりも多くの柔軟性を提供することができる。こうした複合フィルタは、過度の遅延またはデコーダの複雑さを要することなく、出力音声品質を大幅に向上させることができると考えられる。加えて、フィルタ（６９４）は時間ドメイン内で適用されるため、いかなるサイズのフレームにも適用可能である。
【００９５】
一般に、ポストフィルタ（６９４）は、有限インパルス応答（「ＦＩＲ」）フィルタとすることができる。この有限インパルス応答（「ＦＩＲ」）フィルタの周波数応答は、ＬＰＣ合成フィルタの振幅スペクトル（magnitude spectrum）の対数に対して実行される非線形プロセスの結果である。ポストフィルタの振幅スペクトルは、フィルタ（６９４）がスペクトルの谷でのみ減衰するように設計することができ、場合によっては、振幅スペクトルの少なくとも一部がフォルマント領域付近で平坦になるようにクリッピングされる。以下で説明するように、ＦＩＲポストフィルタリング係数は、処理された振幅スペクトルの逆フーリエ変換の結果として生じる正規化された系列（sequence）をトランケートする（truncate）ことによって、取得することができる。
【００９６】
フィルタ（６９４）は、時間ドメイン内の再構築された音声に適用される。フィルタは、帯域全体またはサブ帯域に適用することができる。加えて、フィルタは単独で使用することもできるし、あるいは、以下でより詳細に説明する、長期ポストフィルタおよび／または中間周波数拡張フィルタなどの他のフィルタと共に使用することもできる。
【００９７】
上述したポストフィルタは、様々なビットレート、様々なサンプリングレート、および様々な符号化アルゴリズムを使用するコーデックと関連して動作することができる。ポストフィルタ（６９４）は、ポストフィルタなしの音声コーデックを使用した場合と比較して、大幅な品質向上を生み出すことが可能であると考えられる。具体的に言えば、ポストフィルタ（６９４）は、信号パワーが比較的低い周波数領域内の、すなわち、フォルマント間のスペクトルの谷内の、知覚量子化ノイズを減少させると考えられる。これらの領域では、通常、信号対ノイズ比が不十分である。言い換えれば、信号が弱いため、存在するノイズの方が相対的に強い。ポストフィルタは、これらの領域内のノイズレベルを減衰させることによって、音声品質全体を向上させると考えられる。
【００９８】
再構築されたＬＰＣ係数（６３８）は、ＬＰＣ合成フィルタの周波数応答が通常、入力音声のスペクトルエンベロープ（envelope）に従うことから、しばしばフォルマント情報を含む。したがって、ＬＰＣ係数（６３８）は、短期ポストフィルタの係数を導出するために使用される。ＬＰＣ係数（６３８）は、１つのフレームから次のフレームの間に変化するため、または何らかの他の基準で変化するため、ＬＰＣ係数（６３８）から導出されるポストフィルタ係数も、フレーム間または何らかの他の基準に適合する。
【００９９】
ポストフィルタ（６９４）のフィルタリング係数を算出するための技法を、図７に示す。図６のデコーダ（６００）はこの技法を実行する。代替として、他のデコーダまたはポストフィルタリングツールがこの技法を実行してもよい。
【０１００】
デコーダ（６００）は、ＬＰＣ係数ａ（ｉ）のセット（７１０）をゼロパディングすること（７１５）によって、ＬＰＣスペクトルを取得する。ここで、ｉ＝０、１、２、．．．、Ｐであり、ａ（０）＝１である。ＬＰＣ係数のセット（７１０）は、ＣＥＬＰコーデックなどの線形予測コーデックが使用される場合、ビットストリームから取得することができる。代替として、ＬＰＣ係数のセット（７１０）は、再構築された音声信号を分析することによって、取得することもできる。これは、たとえコーデックが線形予測コーデックでない場合であっても実行することができる。Ｐは、ポストフィルタリング係数を決定する際に使用されるＬＰＣ係数ａ（ｉ）のＬＰＣ級数（LPC order）である。一般にゼロパディングは、その時間（または周波数帯域）制限を拡張するために、信号（またはスペクトル）をゼロを用いて拡張することを含む。このプロセスでは、ゼロパディングは、長さＰの信号を長さＮの信号にマッピングする。ここでは、Ｎ＞Ｐである。全帯域コーデックの実施例では、Ｐは、８ｋＨｚサンプリングレートに対しては１０、８ｋＨｚよりも高いサンプリングレートに対しては１６である。代替として、Ｐは何らかの他の値としてもよい。サブ帯域コーデックの場合、Ｐは、各サブ帯域で異なる値とすることができる。例えば、図３に示された３つのサブ帯域構造を使用する１６ｋＨｚサンプリングレートの場合、Ｐは、低周波数帯域（３１０）に対して１０、中間帯域（３２０）に対して６、高帯域（３３０）に対して４とすることができる。一実施例では、Ｎは１２８である。代替として、Ｎは、２５６などの何らかの他の数としてもよい。
【０１０１】
次いで、デコーダ（６００）は、ゼロパディングされた係数に対して、ＦＦＴ（７２０）などのＮポイント変換を実行し、振幅スペクトルＡ（ｋ）が得られる。Ａ（ｋ）は、ｋ＝０、１、２、．．．、Ｎ−１の場合の、ゼロパディングされたＬＰＣ逆フィルタのスペクトルである。振幅スペクトルの逆数（すなわち、１／｜Ａ（ｋ）｜）は、ＬＰＣ合成フィルタの振幅スペクトルを与える。
【０１０２】
ＬＰＣ合成フィルタの振幅スペクトルは、その振幅領域を減少させるために、オプションで対数ドメイン（７２５）に変換される。一実施例では、この変換は以下のとおりである。
【０１０３】
【数１】
0005688852.tif 000004
【０１０４】
上式において、ｌｎは自然対数である。しかしながら、他の演算を使用して、領域を減少させることができる。例えば、自然対数演算の代わりに、１０を底とする対数演算を実行することができる。
【０１０５】
正規化（７３０）、非線形圧縮（７３５）、およびクリッピング（７４０）の３つのオプションの非線形演算が、Ｈ（ｋ）の値に基づく。
【０１０６】
正規化（７３０）は、フレーム間および帯域間で、Ｈ（ｋ）の範囲をより一貫性のあるものにする傾向がある。正規化（７３０）および非線形圧縮（７３５）はどちらも、音声信号がポストフィルタによってそれほど変化しないように、非線形振幅スペクトルの領域を減少させる。代替として、他の、および／または追加の技法を使用して、振幅スペクトルの領域を減少させることもできる。
【０１０７】
一実施例では、複数帯域コーデックの各帯域について、以下のように初期正規化（７３０）が実行される。
【０１０８】
【数２】
0005688852.tif 000005
【０１０９】
上式において、ｋ＝０、１、２、．．．、Ｎ−１の場合、Ｈｍｉｎは、Ｈ（ｋ）の最小値である。
【０１１０】
正規化（７３０）は、全帯域コーデックに対して以下のように実行することができる。
【０１１１】
【数３】
0005688852.tif 000006
【０１１２】
上式において、ｋ＝０、１、２、．．．、Ｎ−１の場合、Ｈｍｉｎは、Ｈ（ｋ）の最小値であり、Ｈｍａｘは、Ｈ（ｋ）の最大値である。上記のどちらの正規化数式においても、
【０１１３】
【数４】
0005688852.tif 000007
【０１１４】
の最大値および最小値がそれぞれ１および０となるのを防ぐために、０．１の定数値が追加され、それにより非線形圧縮がより効率的になる。代替として、他の定数値または他の技法を使用して、ゼロ値を防ぐこともできる。
【０１１５】
非線形スペクトルの動的領域をさらに調整するために、非線形圧縮（７３５）は、以下のように実行される。
【０１１６】
【数５】
0005688852.tif 000008
【０１１７】
上式において、ｋ＝０、１、．．．、Ｎ−１である。したがって、係数を周波数ドメインに変換するために１２８ポイントＦＦＴが使用される場合、ｋ＝０、１、．．．、１２７である。加えて、β＝η＊（Ｈｍａｘ−Ｈｍｉｎ）であり、ηおよびγは、適切に選択された定因数であると考えられる。ηおよびγの値は、音声コーデックのタイプおよびエンコードレートに従って選択することができる。一実施例では、ηおよびγパラメータは、実験的に選択される。例えば、γは、０．１２５から０．１３５までの範囲の値として選択され、ηは、０．５から１．０までの範囲から選択される。定数値は、プリファレンスに基づいて調整することができる。例えば、定数値の範囲は、様々な定数値から結果として生じる、予測されるスペクトルひずみ（主に山および谷の付近）を分析することによって取得される。通常、予め定められたレベルの予測されるひずみを超えない範囲を選択することが望ましい。次いで、最終的な値は、主観的リスニングテスト（subjective listening test）の結果を使用した範囲内の値のセットから選択される。例えば、８ｋＨｚサンプリングレートのポストフィルタでは、ηは０．５でありγは０．１２５であって、１６ｋＨｚサンプリングレートのポストフィルタでは、ηは１．０でありγは０．１３５である。
【０１１８】
クリッピング（７４０）は、以下のように圧縮されたスペクトルＨｃ（ｋ）に適用することができる。
【０１１９】
【数６】
0005688852.tif 000009
【０１２０】
上式において、Ｈｍｅａｎは、Ｈｃ（ｋ）の平均値であり、λは、定数である。λの値は、音声コーデックのタイプおよびエンコードレートに従って異なるように選択することができる。いくつかの実施例では、λは、実験的に（０．９５から１．１までの値など）選択され、プリファレンスに基づいて調整することができる。例えば、λの最終的な値は、主観的リスニングテストの結果を使用して選択することができる。例えば、８ｋＨｚサンプリングレートのポストフィルタでは、λは１．１であり、１６ｋＨｚサンプリングレートで動作するポストフィルタでは、λは０．９５である。
【０１２１】
このクリッピング操作は、最大値、すなわち上限で、Ｈｐｆ（ｋ）の値の上限を定める（cap）。上記の式では、この最大値は、λ＊Ｈｍｅａｎとして表される。代替として、他の操作を使用して、振幅スペクトルの値の上限が定められてもよい。例えば、上限は、平均値ではなく、Ｈｃ（ｋ）の中央値に基づくものとすることができる。また、すべての高いＨｃ（ｋ）値を特定の最大値（λ＊Ｈｍｅａｎなど）にクリッピングするのではなく、より複雑な操作に従って値をクリッピングすることもできる。
【０１２２】
クリッピングは、フォルマント領域などの他の領域で音声スペクトルを大幅に変更することなく、音声信号をその谷で減衰させることになるフィルタリング係数を、結果として発生させる傾向がある。これにより、ポストフィルタは音声フォルマントをひずみから防ぐことが可能であり、それによって、より高品質の音声出力が生じる。加えて、クリッピングは、大きな値を上限の定められた値に減少させることによって、ポストフィルタスペクトルを平坦にすることから、スペクトル傾斜の影響を低減させることができるのに対し、谷付近の値は、ほとんど変更されないままである。
【０１２３】
対数ドメインへの変換が実行された場合、結果として生じるクリッピングされた振幅スペクトルＨｐｆ（ｋ）は、例えば、対数ドメインから線形ドメインへと以下のように変換される（７４５）。    
Ｈｐｆｌ（ｋ）＝ｅｘｐ（Ｈｐｆ（ｋ））
上式において、ｅｘｐは、逆自然対数関数である。
【０１２４】
Ｎポイント逆高速フーリエ変換（７５０）がＨｐｆｌ（ｋ）に対して実行されて、ｆ（ｎ）の時間系列が得られる。ここで、ｎ＝０、１、．．．、Ｎ−１であり、Ｎは、上述したＦＦＴ操作（７２０）の場合と同じである。したがって、ｆ（ｎ）は、Ｎポイントの時間系列である。
【０１２５】
図７では、ｎ＞Ｍ−１の場合、値をゼロに設定することによって、以下のように、ｆ（ｎ）の値がトランケートされる（７５５）。
【０１２６】
【数７】
0005688852.tif 000010
【０１２７】
上式において、Ｍは、短期ポストフィルタの級数である。一般にＭの値が大きいほど、高品質のフィルタリングされた音声が得られる。しかしながら、Ｍが増加するほど、ポストフィルタの複雑さは増大する。Ｍの値は、これらのトレードオフを考慮して選択することができる。一実施例では、Ｍは１７である。
【０１２８】
ｈ（ｎ）の値は、フレーム間での突然の変化を避けるために、オプションで正規化される（７６０）。例えば、これは以下のように実行される。
【０１２９】
【数８】
0005688852.tif 000011
【０１３０】
代替として、何らかの他の正規化演算が使用されてもよい。例えば、以下の演算が可能である。
【０１３１】
【数９】
0005688852.tif 000012
【０１３２】
正規化によってポストフィルタリング係数ｈｐｆ（ｎ）（７６５）が得られる実施例では、係数ｈｐｆ（ｎ）（７６５）を伴うＦＩＲフィルタが、時間ドメイン内の合成音声に適用される。したがって、この実施例において、１つのフレームから次のフレームでのフィルタリング係数の大幅な偏差を避けるために、すべてのフレームに対して１次ポストフィルタリング係数（ｎ＝０）は、１の値に設定される。
【０１３３】
（Ｂ．中間周波数拡張フィルタの例）  
いくつかの実施形態では、図２に示されたデコーダ（２７０）などのデコーダが、後処理のために、中間周波数拡張フィルタを組み込むか、またはこうしたフィルタがデコーダ（２７０）の出力に適用される。代替として、こうしたフィルタが、例えば本願の他の場所で説明される音声コーデックなどの、何らかの他のタイプのオーディオデコーダまたは処理ツールに組み込まれるか、または何らかの他のタイプのオーディオデコーダまたは処理ツールの出力に適用される。
【０１３４】
上述したように、通常、サブ帯域の方が管理しやすく符号化に対して柔軟であることから、複数帯域コーデックは、帯域幅が減じられたチャネルに入力信号を分割する。図２を参照しながら上述したフィルタバンク（２１６）などの帯域通過フィルタが、エンコードに先立つ信号分割に対してしばしば使用される。しかしながら、信号分割によって、帯域通過フィルタの通過帯域間の周波数領域で、信号エネルギの損失が生じる可能性がある。中間周波数拡張（「ＭＦＥ」）フィルタは、信号分割によってエネルギが減衰された周波数領域でデコードされた出力音声の振幅スペクトルを増幅することによって、他の周波数領域でのエネルギを大幅に変更することなく、この潜在的な問題に対する解決を支援する。
【０１３５】
図２において、ＭＦＥフィルタ（２８４）は、フィルタバンク（２８０）の出力（２９２）などの、１つまたは複数の帯域合成フィルタの出力に適用される。したがって、図６に示されるように、帯域ｎデコーダ（２７２、２７４）がある場合、短期ポストフィルタ（６９４）は、サブ帯域デコーダの再構築された各帯域に別々に適用されるが、ＭＦＥフィルタ（２８４）は、複数のサブ帯域の寄与信号を含む合成された再構築された信号に適用される。上述したように、代替として、ＭＦＥフィルタは、他の構成を有するデコーダに関連して適用されてもよい。
【０１３６】
いくつかの実施例では、ＭＦＥフィルタは、２次帯域通過ＦＩＲフィルタである。これは、１次低域通過フィルタおよび１次高域通過フィルタをカスケード構成にする（cascade）。両方の１次フィルタが、同一の係数を有することができる。ＭＦＥフィルタ利得が通過帯域で望ましい（信号のエネルギが増加する）ように、かつ、停止帯域で一致（unity）する（変更されずに、または相対的に変更されずに信号を通過する）ように、係数は通常選択される。代替として、帯域分割によって減衰された周波数領域を拡張するために、何らかの他の技法を使用することもできる。
【０１３７】
１つの１次低域通過フィルタの伝達関数は、以下のとおりである。
【０１３８】
【数１０】
0005688852.tif 000013
【０１３９】
１つの１次高域通過フィルタの伝達関数は、以下のとおりである。
【０１４０】
【数１１】
0005688852.tif 000014
【０１４１】
したがって、前述の１次低域通過フィルタおよび高域通過フィルタをカスケード構成にする２次ＭＦＥフィルタの伝達関数は、以下のとおりである。
【０１４２】
【数１２】
0005688852.tif 000015
【０１４３】
対応するＭＦＥフィルタリング係数は、以下のように表すことができる。
【０１４４】
【数１３】
0005688852.tif 000016
【０１４５】
μの値は、実験によって選択することができる。例えば、定数値の範囲は、様々な定数値から生じる予測されるスペクトルひずみを分析することによって取得される。通常、予め定められたレベルの予測されるひずみを超えない範囲を選択することが望ましい。次いで、最終的な値は、主観的リスニングテストの結果を使用して、範囲内の値のセットの中から選択される。一実施例では、１６ｋＨｚサンプリングレートが使用され、かつ音声が３つの帯域（０から８ｋＨｚ、８から１２ｋＨｚ、および１２から１６ｋＨｚ）に分割される場合、８ｋＨｚ付近の領域を拡張することが望ましく、μは、０．４５であるものとして選択される。代替として、特に何らかの他の周波数領域の拡張が望ましい場合には、他のμの値が選択されてもよい。また、代替として、ＭＦＥフィルタは、異なる設計の１つまたは複数の帯域通過フィルタを用いて実装されてもよいし、１つまたは複数の他のフィルタを用いて実装されてもよい。
【０１４６】
以上、説明した諸実施形態を参照しながら、本発明の原理について説明し例示してきたが、説明した諸実施形態は、こうした原理を逸脱することなく、配置構成および細部の変更が可能であることが理解されよう。本明細書で説明したプログラム、プロセス、または方法は、特に指示のない限り、特定のタイプのコンピューティング環境群に関連するものでも、それらに限定されるものでないことを理解されたい。様々なタイプの汎用コンピューティング環境または特定用途向けコンピューティング環境が、本明細書で説明した教示に従う操作と共に利用可能であるか、またはそうした操作を実行することができる。ソフトウェアを用いて説明した諸実施形態の諸要素を、ハードウェアを用いて実装することが可能であり、その逆もまた可能である。
【０１４７】
本発明の原理が適用可能な多くの可能な諸実施形態に鑑み、本発明のこうした諸実施形態のすべてが、特許請求の範囲およびその均等の範囲および趣旨内にあるものと主張する。
【図１】
0005688852.tif 000017
【図２】
0005688852.tif 000018
【図３】
0005688852.tif 000019
【図４】
0005688852.tif 000020
【図５】
0005688852.tif 000021
【図６】
0005688852.tif 000022
【図７】
0005688852.tif 000023