理解を容易にするために、可能な場合には、複数の図面に共通する同一の要素を指定するのに、同一の符号を使用した。
本発明は、音声内容がボコーダ・パケットを使用してエンド・ユーザ端末の間で伝えられるパケット・ネットワークでのエコー検出およびエコー抑制を提供する。ボコーダは、通常はエンコーダおよびデコーダを含むが、ボイスキャリー・パケット(voice−carry packet)から抽出された音声コーディング・パラメータを使用して、パケット・ネットワークを介して音声内容を伝える。エンコーダは、入ってくる音声情報を音声セグメントにセグメント化し、音声セグメントを分析して音声コーディング・パラメータを判定し、音声コーディング・パラメータをビット表現に量子化し、ビット表現をエンコードされた音声パケットにパックし、パケットを伝送フレームにフォーマットし、パケット・ネットワークを介して伝送フレームを送信する。デコーダは、パケット・ネットワークを介して伝送フレームを受信し、伝送フレームからパケットを抽出し、ビット表現をアンパックし、ビット表現を逆量子化して音声コーディング・パラメータを回復し、音声コーディング・パラメータから音声セグメントを再合成する。
本発明を使用すると、基準パケット・ストリームのエンコードされた音声パケットに含まれる音声内容の音声コーディング・パラメータは、基準パケット・ストリームのエンコードされた音声パケットから抽出され、ターゲット・パケット・ストリームのエンコードされた音声パケットに含まれる音声内容の音声コーディング・パラメータは、ターゲット・パケット・ストリームのエンコードされた音声パケットから抽出され、抽出された音声コーディング・パラメータは、基準パケット・ストリームの音声内容とターゲット・パケット・ストリームの音声内容との間の類似性を識別するために処理され、エコーが検出されるか否かに関する判定が、ターゲット・パケット・ストリームの音声内容と基準パケット・ストリームの音声内容との間の類似性の識別に基づいて実行される。本発明を使用すると、ターゲット・パケット・ストリームに関連するエコー・パス遅延(echo path delay)(基準パケット・ストリームとターゲット・パケット・ストリームとの間の時間におけるオフセットを示す)を、エコー検出プロセスの副産物として自動的に判定することができる。
図1に、通信ネットワークの高水準ブロック図を示す。具体的に言うと、図1の通信ネットワーク100は、エンド・ユーザ端末103Aを使用するエンド・ユーザAとエンド・ユーザ端末103Z(集合的に、エンド・ユーザ端末103)を使用するエンド・ユーザZとの間の通信を容易にするパケット・ネットワーク102を含む。具体的に言うと、パケット・ネットワーク102は、エンド・ユーザAとエンド・ユーザZとの間の音声呼をサポートする。パケット・ネットワーク102は、音声内容をエンコードされた音声パケットとしてエンコードし、パケット・ネットワーク102を介してエンコードされた音声パケットを送信することによって、音声内容を伝える(エンド・ユーザAからエンド・ユーザZへおよびエンド・ユーザZからエンド・ユーザAへ)。図1に示されているように、音声呼は、音声呼内のアコースティック・エコーを検出し、抑制/キャンセルするように適合されたアコースティック・エコー処理モジュール(AEPM)120をトラバースする。
図1に示されているように、エンド・ユーザ端末103は、オーディオ入出力デバイス(たとえば、マイクロホン、スピーカ、および類似物)、パケット・ネットワーク・インターフェース(たとえば、送信器/受信器機能、ボコーダ機能、および類似物を含む)、および類似物など、パケット・ネットワークを介する音声通信をサポートするコンポーネントを含む。具体的に言うと、エンド・ユーザ端末103Aは、オーディオ入力デバイス104A、ネットワーク・インターフェース105A、およびオーディオ出力デバイス106Aを含み、エンド・ユーザ端末103Zは、オーディオ入力デバイス104Z、ネットワーク・インターフェース105Z、およびオーディオ出力デバイス106Zを含む。エンド・ユーザ端末103のコンポーネントは、個々の物理デバイスとすることができ、あるいは、1つまたは複数の物理デバイスに組み合わせることができる。たとえば、エンド・ユーザ端末103は、音声機能を有するコンピュータ、VoIP電話機、および類似物、ならびにこれらの様々な組合せを含むことができる。
図1に示された音声呼などの音声呼では、エンド・ユーザ・デバイスの音声入力デバイスは、(1)ローカル・エンド・ユーザの音声と、(2)リモート・エンド・ユーザから受信され、ローカル・エンド・ユーザの音声出力デバイスを介して再生される音声との両方を感知する可能性がある。たとえば、ローカル・エンド・ユーザがスピーカホンを使用している場合に、そのローカル・エンド・ユーザ・デバイスのマイクロホンが、ローカル・エンド・ユーザの音声と、スピーカホンから発するリモート・エンド・ユーザの音声との両方を感知する可能性がある。ローカル・エンド・ユーザの音声入力デバイスによって受け取られるリモート・エンド・ユーザの音声は、スピーカホンからマイクロホンへの音声の直接結合および/またはリモート・エンド・ユーザの音声がローカル・エンド・ユーザの位置で反響する時のスピーカホンからマイクロホンへの音声の間接結合である可能性がある。
図1に関して、エンド・ユーザAからエンド・ユーザZに伝搬される音声内容は、エンド・ユーザZの位置で反響し、エンド・ユーザAからの反響する音声内容は、エンド・ユーザZのエンド・ユーザ端末によって感知され、エンド・ユーザZからエンド・ユーザAに伝搬される音声内容が、エンド・ユーザZの音声とエンド・ユーザAの音声のエコーとの組合せになる可能性がある。同様に、エンド・ユーザZからエンド・ユーザAに伝搬される音声内容は、エンド・ユーザAの位置で反響し、エンド・ユーザZからの反響する音声内容が、エンド・ユーザAのエンド・ユーザ端末によって感知され、エンド・ユーザAからエンド・ユーザZに伝搬される音声内容が、エンド・ユーザAの音声とエンド・ユーザZの音声のエコーとの組合せになる可能性がある。言い換えると、エコーは、両方向通信チャネルの両方の方向で導入される可能性がある。
エンド・ユーザ・デバイス103Aで導入されるエコーについて、エンド・ユーザ・デバイス103Aは、エンド・ユーザAの音声を感知し、オプションで、音声出力デバイス106Aによって再生されるエンド・ユーザZの音声を感知する(エコー・カップリング(echo coupling)として表される)。音声は、音声入力デバイス104Aによって感知され、ネットワーク・インターフェース105Aに供給され、ネットワーク・インターフェース105Aは、その音声を処理して、音声コーディング・パラメータを判定し、判定された音声コーディング・パラメータをパケット化して、音声パケット・ストリーム112を形成する。エンド・ユーザ・デバイス103Aは、音声パケット・ストリーム112をAEPM 120に伝搬させる。AEPM 120は、音声パケット・ストリーム112を処理して、エンド・ユーザZのすべての音声を検出し、抑制し、これによって、エンド・ユーザZがエコーを聞かないようにする。AEPM 120は、音声パケット・ストリーム112’(エコーが検出されたかどうかに依存して、音声パケット・ストリーム112の変更された版である場合とそうでない場合とがある)をエンド・ユーザ・デバイス103Zに伝搬させる。音声パケット・ストリーム112’は、ネットワーク・インターフェース105Zによって受信され、ネットワーク・インターフェース105Zは、エンコードされた音声パラメータを逆パケット化(depacketize)し、処理して、エンド・ユーザAの音声を回復し、エンド・ユーザAの回復された音声を音声出力デバイス106Zに供給し、音声出力デバイス106Zは、エンド・ユーザAの音声をエンド・ユーザZに再生する。
エンド・ユーザ・デバイス103Zで導入されるエコーについて、エンド・ユーザ・デバイス103Zは、エンド・ユーザZの音声を感知し、おそらくは、音声出力デバイス106Zによって再生されるエンド・ユーザAの音声を感知する(エコー・カップリングとして表される)。音声は、音声入力デバイス104Zによって感知され、ネットワーク・インターフェース105Zに供給され、ネットワーク・インターフェース105Zは、その音声を処理して、音声コーディング・パラメータを判定し、判定された音声コーディング・パラメータをパケット化して、音声パケット・ストリーム114を形成する。エンド・ユーザ・デバイス103Zは、音声パケット・ストリーム114をAEPM 120に伝搬させる。AEPM 120は、音声パケット・ストリーム114を処理して、エンド・ユーザZのすべての音声を検出し、抑制し、これによって、エンド・ユーザAがエコーを聞くのを防ぐ。AEPM 120は、音声パケット・ストリーム114’(エコーが検出されたかどうかに依存して、音声パケット・ストリーム114の変更された版である場合とそうでない場合とがある)をエンド・ユーザ・デバイス103Aに伝搬させる。音声パケット・ストリーム114’は、ネットワーク・インターフェース105Aによって受信され、ネットワーク・インターフェース105Aは、エンコードされた音声パラメータを逆パケット化し、処理して、エンド・ユーザZの音声を回復し、エンド・ユーザZの回復された音声を音声出力デバイス106Aに供給し、音声出力デバイス106Aは、エンド・ユーザAのためにエンド・ユーザZの音声を再生する。
したがって、図1に示されているように、音声呼の両方の方向が、パケット・ネットワーク102内に展開されたAEPM 120をトラバースする。AEPM 120は、エンド・ユーザAとエンド・ユーザZとの間で伝搬される音声内容内のエコーを検出し、エコーが検出される場合に、音声内容を受信するエンド・ユーザがそのエコーを聞かなくなるように、検出されたエコーを抑制しまたはキャンセルするように適合される。AEPM 120は、基準パケット・ストリームのエンコードされた音声パケットおよびターゲット・パケット・ストリームのエンコードされた音声パケットから音声コーディング・パラメータを抽出することと、ターゲット・パケット・ストリームによって伝えられる音声内容と基準パケット・ストリームによって伝えられる音声内容とが類似するかどうかを判定する形で、抽出された音声コーディング・パラメータを処理することとによってエコーを検出する。ターゲット・パケット・ストリームおよび基準パケット・ストリームによって伝えられるエンコードされた音声パケットから音声コーディング・パラメータを抽出する際の、および抽出された音声コーディング・パラメータを使用してエコーを検出し、抑制する際のAEPM 120の動作を、図2〜図6に関してよりよく理解することができる。
図2に、図1の音声呼の伝送の一方向についてエコー検出およびエコー抑制を提供する(エンド・ユーザ端末103Zで導入されるエコーを検出し、抑制する)、図1の音声呼の表現を示す。エンド・ユーザ端末103Aは、エンコードされた音声パケットのストリーム(基準パケット・ストリーム202と表される)をAEPM 120に伝搬させる。AEPM 120は、基準パケット・ストリーム202の最近に受信されたエンコードされた音声パケットのバッファを維持し、エンド・ユーザ端末103Zへの基準パケット・ストリーム202の音声パケットの伝搬を継続する。エンド・ユーザ端末103Zは、音声パケットのストリーム(ターゲット・パケット・ストリーム204と表される)をAEPM 120に伝搬させる。AEPM 120は、ターゲット・パケット・ストリーム204の最近受信されたエンコードされた音声パケットのバッファを維持する。AEPM 120は、バッファリングされたターゲット・パケットおよびバッファリングされた基準パケットを処理して、ターゲット・パケット・ストリーム204の音声パケットによって伝えられる音声内容が基準パケット・ストリーム202の音声パケットによって伝えられる音声内容のエコーを含むかどうかを判定する。
AEPM 120は、ターゲット・パケット・ストリーム204’をエンド・ユーザ端末103Aに提供する。ターゲット・パケット・ストリーム204のエンコードされた音声パケットによって伝搬される音声内容が、基準パケット・ストリーム202のエンコードされた音声パケットによって伝えられる音声内容のエコーを含むと判定されない場合には、AEPM 120は、エンド・ユーザ端末103Aへのターゲット・パケット・ストリーム204のエンコードされた音声パケットの伝搬を継続する(すなわち、ターゲット・パケット・ストリーム204のエンコードされた音声パケットをエコーを抑制する形で適合させずに)。ターゲット・パケット・ストリーム204のエンコードされた音声パケットによって伝えられる音声内容が、基準パケット・ストリーム202のエンコードされた音声パケットによって伝えられる音声内容のエコーを含むと判定される場合には、AEPM 120は、基準パケット・ストリーム202のエンコードされた音声パケットによって伝えられる音声内容のエコーを含むターゲット・パケット・ストリーム204のエンコードされた音声パケットを、エコーを抑制する形で適合させ、適合されたターゲット・パケット・ストリーム204’のエンコードされた音声パケットをエンド・ユーザ端末103Aに伝搬させる。
本明細書で説明するように、図2は、伝送の一方の方向のみに関してすなわちエンド・ユーザ端末103Aに向けて伝搬される、エンド・ユーザ端末103Zで導入されるエコーのみに関してエコー検出およびエコー抑制を提供する、図1の音声呼の表現を示す。したがって、伝送の他方の方向のエコー検出およびエコー抑制に関して(すなわち、エンド・ユーザ端末103Zに向けて伝搬される、エンド・ユーザ端末103Aで導入されるエコーに関して)、基準パケット・ストリーム202は、ターゲット・パケット・ストリームとして使用され、ターゲット・パケット・ストリーム204は、基準パケット・ストリームとして使用されるはずである。したがって、エコーが、音声呼の伝送の両方の方向で導入され得るので、本発明のエコー検出機能およびエコー抑制機能の説明において、基準パケット・ストリーム202内に存在し得るエコーのすべての成分は、無視される。
図3に、本発明の一実施形態による方法を示す。具体的に言うと、図3の方法300は、ターゲット・パケット・ストリームの音声内容内の基準パケット・ストリームの音声内容のエコーを検出し、検出される場合に、ターゲット・パケット・ストリームの音声内容からそのエコーを抑制する方法を含む。順次実行されるものとして図示され、説明されるが、図3の方法300のステップの少なくとも一部を、同時にまたは図3に関して示され、説明されるものとは異なる順序で実行することができる。方法300は、ステップ302で開始され、ステップ304に進む。
ステップ304で、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性を判定する。ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性は、ターゲット音声パケットから音声コーディング・パラメータを抽出することと、基準音声パケットから音声コーディング・パラメータを抽出することと、抽出された音声コーディング・パラメータを処理して、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかを判定することとによって判定することができる。ターゲット音声パケットおよび基準音声パケットから抽出された音声コーディング・パラメータを使用してターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性を判定する方法を、図4に示し、図4に関して説明する。
ステップ306で、ターゲット音声パケットの音声内容が基準音声パケットの音声内容のエコーを含むかどうかに関する判定を行う。ターゲット音声パケットの音声内容が基準音声パケットの音声内容のエコーを含むかどうかに関する判定は、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかに関する判定を使用して行われる。ターゲット音声パケットの音声内容が基準音声パケットの音声内容のエコーを含まない場合には、方法300はステップ304に戻る(すなわち、現在のターゲット音声パケット(1つまたは複数)は、適合されない)。ターゲット音声パケットの音声内容が基準音声パケットの音声内容のエコーを含む場合には、方法300はステップ308に進む。
ステップ308で、エコー抑制をターゲット音声パケット(1つまたは複数)に適用する。ターゲット音声パケット(1つまたは複数)の音声内容は、検出されたエコーを抑制しまたはキャンセルするために適合される。ターゲット音声パケット(1つまたは複数)の音声内容を、検出されたエコーを抑制しまたはキャンセルする任意の形で適合させることができる。一実施形態では、ターゲット・パケット(1つまたは複数)の音声内容を、ターゲット音声パケット(1つまたは複数)の音声内容の利得を減衰させることによって適合させることができる。一実施形態では、ターゲット音声パケット(1つまたは複数)を、置換パケット(1つまたは複数)に置換することができる。置換パケットは、雑音パケット(たとえば、白色雑音、コンフォート・ノイズ(comfort noise)、および類似物など、あるタイプの雑音を含むパケット)、無音パケット(たとえば、空のパケット)、および類似物、ならびにその様々な組合せとすることができる。
図3に示されているように、ステップ308から、方法300はステップ310に進む。ステップ310で、音声呼がアクティブであるかどうかに関する判定を行う。音声呼がまだアクティブである場合には、方法300はステップ304に戻る(すなわち、エコー検出および抑制処理が、呼の音声内容からエコーを検出し、除去するために継続される)。音声呼がアクティブではない場合には、方法300は、ステップ312に進み、ここで方法300は終了する。したがって、方法300は、音声呼の持続時間にわたって繰り返され続ける。エコー抑制が適用された後に実行されるものとして図示されているが、方法300は、音声呼がもはやアクティブではないことの判定に応答して、方法300内の任意の点で終了することができる。
図4に、本発明の一実施形態による方法を示す。具体的に言うと、図4の方法400は、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性を判定する方法を含む。順次実行されるものとして図示され、説明されるが、図4の方法400のステップの少なくとも一部を、同時にまたは図4に関して示され、説明されるものとは異なる順序で実行することができる。方法400は、ステップ402で開始され、ステップ404に進む。
ステップ404で、音声コーディング・パラメータを、ターゲット音声パケットから抽出する。一実施形態では、音声コーディング・パラメータは、N個の最も最近のターゲット音声パケットのそれぞれから抽出される(すなわち、Nは、ターゲット・パケット・ストリームに関連するターゲット・ウィンドウのサイズである)。ステップ406で、音声コーディング・パラメータを、基準音声パケットから抽出する。一実施形態では、音声コーディング・パラメータは、K+N個の最も最近の基準音声パケットのそれぞれから抽出される。音声コーディング・パラメータを、音声パケットから音声コーディング・パラメータを抽出する任意の形で音声パケットから抽出することができる。ターゲット音声パケットおよび基準音声パケットから抽出される音声コーディング・パラメータは、周波数パラメータ、音量パラメータ、および類似物など、任意の音声コーディング・パラメータを含むことができる。
本明細書で説明されるように、音声パケットから抽出される音声コーディング・パラメータは、音声内容をエンコード/デコードするのに使用されるコーデックのタイプ、音声内容を伝えるのに使用される伝送テクノロジ、および類似する要因などの多数の要因ならびにその様々な組合せに基づいて変化する可能性がある。たとえば、音声パケットから抽出される音声コーディング・パラメータは、Code Excited Linear Prediction(CELP)コーディング、Prototype−Pitch Prediction(PPP)コーディング、Noise−Excited−Linear Prediction(NELP)コーディング、および類似物など、本発明を適用できる異なるタイプのコーディングについて異なるものとすることができる。
たとえば、CELPベースのコーディングについて、音声コーディング・パラメータに、線スペクトル対(Line Spectral Pair、LSP)、固定コードブック利得(Fixed Codebook Gain、FCG)、適応コードブック利得(Adaptive Codebook Gain、ACG)、エンコーディング・レート、および類似物のうちの1つまたは複数ならびにその様々な組合せを含めることができる。たとえば、PPPベースのコーディングについて、音声コーディング・パラメータは、LSP、振幅パラメータ、および類似物を含むことができる。たとえば、NELPベースのコーディングについて、音声コーディング・パラメータは、LSP、エネルギVQ、および類似物を含むことができる。さらに、他の音声コーディング・パラメータを使用することができる(たとえば、ピッチ遅延、固定コードブック形状(fixed codebook shape)(たとえば、固定コードブック自体)および類似物、ならびにその様々な組合せ)。
たとえば、CELPベース・コーディングの1つの形は、Enhanced Variable Rate Coding(EVRC)であり、これは符号分割多元接続(CDMA)ネットワーク内で使用されるCELPベースのコーダの特定の実施態様である。たとえば、CELPベースおよび非CELPベースの音声コーディング・パラメータを含むEVRCの拡張版であるEVRC−Bが、CDMAネットワークおよび他のネットワークで使用される。EVRC−B音声コーディングでは、PPPフレームのAmplitude、Global Alignment、およびBand Alignmentなど、異なる圧縮タイプ(たとえば、PPPまたはNELP)に関する追加の音声コーディング・パラメータを使用することができる(すなわち、通常のCELPベースの音声コーディング・パラメータに加えて)。たとえば、Global System for Mobile(GSM)ネットワークは、algebraic CELP(ACELP)を使用するAdaptive Multirate(AMR)圧縮を使用する。さらに、たとえば、テレタイプ(TTY)端末データを、エンコードされた音声パケットから抽出することができる。
ステップ407(オプションのステップ)で、前処理を実行することができる。一実施形態では、前処理を、抽出された音声コーディング・パラメータの一部またはすべてに対して実行することができる。たとえば、ターゲット音声パケットおよび基準音声パケットから抽出された生音声コーディング・パラメータを処理して、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間に類似性があるかどうかを判定する際に使用される抽出された音声コーディング・パラメータを平滑化することができる。一実施形態では、前処理を、めいめいのターゲット音声パケットおよび基準音声パケットから抽出された関連する音声コーディング・パラメータに基づいて、ターゲット音声パケットおよび/または基準音声パケットの一部またはすべてに対して実行することができる。
一実施形態では、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるかどうかを判定するのに利用される1つまたは複数のしきい値を、めいめいの音声パケットから抽出された音声コーディング・パラメータの一部またはすべての前処理に基づいて動的に調整することができる。一実施形態では、たとえば、1つまたは複数のしきい値を調整するために、ターゲット・ウィンドウごとの平均音量を、判定し(すなわち、ターゲット・ウィンドウのターゲット・パケットのそれぞれから抽出された音量情報を使用して)、使用することができる。1つのそのような実施形態では、ターゲット・ウィンドウごとの平均音量を、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるかどうかを判定するために使用されるしきい値を動的に調整する(たとえば、図5に関して図示され、説明されるように、LSP類似性しきい値を動的に調整する)のに使用することができる。
ステップ408で、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性を、ターゲット音声パケットから抽出された音声コーディング・パラメータおよび基準音声パケットから抽出された音声コーディング・パラメータを使用して判定する。一実施形態では、類似性判定は、2進判定である(たとえば、類似性が検出されるまたは類似性が検出されないのいずれかである)。この実施形態では、たとえば、類似性インジケータを、類似性判定の結果に基づいて、ターゲット・パケットごとにセットすることができる(たとえば、SIMILARITY=YESまたはSIMILARITY=NO)。一実施形態では、類似性判定は、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性のレベルに関する判定とすることができる。この実施形態では、たとえば、音声内容類似性を、ある範囲の値(たとえば、0〜10の範囲、ここで、0は、類似性なしを示し、10は、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の完全な一致を示す)を使用して表すことができる。
一実施形態では、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかの判定を、周波数情報だけを使用して(または、周波数情報を使用して判定された結果の妥当性を評価するのに使用できる他の音声特性表現情報と組み合わせて、少なくとも主に周波数情報を使用して)実行することができる。たとえば、1つのそのような実施形態では、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかに関する判定を、LSP(たとえば、CELPベースのコーディングを使用してエンコードされた音声パケットについて)のみを使用して実行することができる。ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかを判定するのにLSPを使用する方法を、図5に示し、図5に関して本明細書で説明する。
一実施形態では、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかに関する判定を、LSP比較と共にレート・パターン・マッチングを使用して実行することができる。1つのそのような実施形態では、レート・パターン・マッチングを使用して、LSP比較を使用して行われた類似性判定の妥当性を判定することができる。類似性判定の妥当性を判定するためのレート・パターン・マッチングの使用は、図7に関してよりよく理解することができる。
一実施形態では、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかに関する判定を、LSP比較と共にレート/タイプ・マッチングを使用して実行することができる。1つのそのような実施形態では、レート/タイプ・マッチングを使用して、LSP比較を使用して行われる類似性判定の妥当性を判定することができる。もう1つの実施形態では、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかに関する判定を、LSP比較の代わりにレート/タイプ・マッチングを使用して実行することができる。
一実施形態では、前処理として実行されるものとして説明された(すなわち、オプションのステップ407に関して説明された)処理の一部を、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかに関する判定の間に実行することができる。たとえば、ターゲット・パケットおよび/または基準パケットから抽出された他の音声コーディング・パラメータを、ターゲット音声パケットの音声内容が基準音声パケットの音声内容に類似するかどうかに関する判定の間に使用することができる(たとえば、音声パケットのうちの選択されたパケットがターゲット音声パケットと基準音声パケットとの間の比較に使用されないように、これらの音声パケットを無視するために、音声パケットのうちの選択されたパケットに重みを割り当てるために、類似性判定を実行する際に使用される1つまたは複数のしきい値を動的に変更するために、および類似物、ならびにその様々な組合せ)。
ステップ409(オプションのステップ)で、後処理を実行することができる。一実施形態では、後処理を、類似性判定の結果に対して実行することができる。後処理を、ターゲット音声パケットおよび基準音声パケットから抽出された音声コーディング・パラメータの一部またはすべてを使用して実行することができる。一実施形態では、後処理に、類似性判定の結果を評価することを含めることができる。たとえば、1つのそのような実施形態では、類似性判定の結果を、2進の形で(たとえば、結果を有効または無効と宣言する、すなわち、結果を真陽性または偽陽性と宣言する形で)評価することができる。たとえば、一実施形態では、類似性判定の結果を、類似性判定の結果に重みまたは重要性を割り当てる形で評価することができる。類似性判定の結果を、様々な他の形で判定することができる。
いくつかのそのような実施形態では、類似性判定の結果の評価を、有効/使用可能と考えられるターゲット音声パケットのパーセンテージおよび/または有効/使用可能と考えられる基準音声パケットのパーセンテージに基づくものとすることができる。一実施形態では、類似性判定を実行するのに使用される音声パケットの音量特性を使用して、めいめいの音声パケットの妥当性/使用可能性を判定することができる。たとえば、ターゲット音声パケットのうちのあるパーセンテージが、しきい値未満の音量を有し、かつ/または基準音声パケットのうちのあるパーセンテージが、しきい値未満の音量を有する場合に、類似性判定の結果が、無効であるか、少なくともより高いパーセンテージの音声パケットが有効/使用可能と判定される類似性判定より有用ではないと判定することができる。主に音量に関して説明したが、様々な他の抽出された音声コーディング・パラメータを使用して、類似性判定の結果を評価することができる。
図4に示されているように、ステップ408から(またはオプションでステップ409から)、方法400は、ステップ404に戻り、方法400が繰り返される(すなわち、音声コーディング・パラメータが、抽出され、ターゲット音声パケットと基準音声パケットとの音声内容の間に類似性があるかどうかの判定のために処理される)。方法400を、必要なだけ何回でも繰り返すことができる。たとえば、一実施形態では、方法400を、ターゲット音声パケットごとに繰り返すことができる。1つのそのような実施形態では、バッファリングされるターゲット・パケット・ストリームのN個のターゲット音声パケットがスライディング・ウィンドウとして動作することができ、受信されるターゲット音声パケットごとにN個の最も最近に受信されたターゲット音声パケットが、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性を判定するために最も最近に受信されたK+N個の基準音声パケットのうちのK個のセットと比較されるようになる。方法400を、より低い頻度でまたはより高い頻度で繰り返すことができる。
図5に、本発明の一実施形態による方法を示す。具体的に言うと、図5の方法500は、ターゲット音声パケットおよび基準音声パケットから抽出された周波数情報を使用して、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間の類似性を判定する方法を含む。一実施形態では、方法500を、図3の方法300のステップ304として実行することができる。順次実行されるものとして図示され、説明されるが、図5の方法500のステップの少なくとも一部を、同時にまたは図5に関して示され、説明されるものとは異なる順序で実行することができる。方法500は、ステップ502で開始され、ステップ504に進む。
ステップ504では、線スペクトル対(LSP)値をターゲット・パケット・ストリームのN個のターゲット・パケットのセット内のターゲット・パケットから抽出する。一実施形態では、M個のLSP値のセットが、N個のターゲット・パケットのセット内のN個のターゲット・パケットのそれぞれから抽出される。
一実施形態では、N個のターゲット・パケットのセットは、連続するターゲット・パケットである。この実施形態では、Nは、ターゲット・パケットのストリームに関連するターゲット・ウィンドウのサイズである。Nの値には、任意の値をセットすることができる。たとえば、一実施形態では、Nに、5〜10個の範囲内のターゲット・パケットをセットすることができる(Nの値を、より小さくまたはより大きくすることができるが)。一実施形態では、Nの値を動的に適合させる(たとえば、動的に増やすか減らす)ことができる。
一実施形態では、M個のLSP値が、N個のターゲット・パケットのそれぞれから抽出される。一実施形態では、M個の値に、ターゲット・パケットごとに値をセットすることができる。たとえば、一実施形態では、M個に、ターゲット・パケットごとに10個のLSP値をセットすることができる(より少数またはより多数のLSP値を各ターゲット・パケットから抽出することができるが。
一実施形態では、N個のターゲット・パケットから抽出されたLSP値のセットを、2次元行列として表すことができる。この2次元行列は、MおよびNの次元を有し、Mは、各ターゲット・パケットから抽出されるLSP値の個数であり、Nは、LSPがそこから抽出される連続するターゲット・パケットの個数である(すなわち、Nは、ターゲット・パケットのストリームに関連するスライディング・ウィンドウのサイズである)。N個のターゲット・パケットから抽出されたM個のLSP値のN個のセットについて定義される例示的な2次元行列を、
と表すことができる。
N個の連続するターゲット・パケットから抽出されたLSP値のセットについて定義される2次元行列に示されているように、lは、LSP値であり、Tは、LSP値がターゲット・パケットから抽出されることを示し、最初の添字は、LSP値がそこから抽出されたターゲット・パケットを識別し(iからi+Nまでの範囲内で)、第2の添字は、第1の添字によって識別されるターゲット・パケットから抽出されたLSP値を識別する。言い換えると、LT iは、この2次元行列がターゲット・パケットiについて作成されたことを示し、この2次元行列の各行は、この2次元行列のその行のLSP値のそれぞれに関連する第1の添字によって識別されるターゲット・パケットから抽出されたM個のLSP値を含む。
ステップ506で、線スペクトル対(LSP)値を、基準パケット・ストリームのK+N個の基準パケットのセット内の基準パケットから抽出する。一実施形態では、M個のLSP値のセットが、K+N個の基準パケットのグループ内のK+N個の基準パケットのそれぞれから抽出される。
K+N個の基準パケットのグループは、基準パケットのK個のセットとして編成され、基準パケットのK個のセットのそれぞれは、N個の基準パケットを含み、これによって、基準パケットのK個のセットからのLSP値のK個のセットがもたらされる。これは、N個のターゲット・パケットのセットの、N個の基準パケットのK個のセットのそれぞれとの対単位の評価を可能にする。一実施形態では、基準パケットのK個のセットのそれぞれのN個の基準パケットは、連続する基準パケットである。ターゲット・パケットに関して説明したように、Nの値には、任意の値をセットすることができ、いくつかの実施形態では、動的に適合させることができる。
一実施形態では、M個のLSP値が、基準パケットのK個のセットのそれぞれのN個の基準パケットのそれぞれから抽出される。一実施形態では、Mの値は、ターゲット・パケットに関連するMの値と等しく、これによって、N個のターゲット・パケットのそれぞれのLSP値の、基準パケットのK個のセットのそれぞれに含まれるN個の基準パケットのそれぞれのLSP値との対単位の評価が可能になる。ターゲット・パケットに関して説明したように、Mの値には、任意の値をセットすることができ、いくつかの実施形態では、基準パケットにまたがって変更することができる。
Kの値は、構成可能なパラメータであり、基準パケットの個数として表すことができる。Kの値は、サポートされることが要求されるエコー・パス遅延を表す。エコー・パス遅延(時間単位での)は、パケット・サンプリング・インターバルの粒度を有しなければならない。たとえば、EVRCコーディングに関して、パケット・サンプリング・インターバルは、20msである。したがって、この例では、本発明によるアコースティック・エコー・キャンセレーション・モジュールは、500msまでのエコー・パス遅延を検出することを要求され(たとえば、EVRCコーディングの場合のように)、Kの値には、少なくとも25音声パケット(またはそれより多数)がセットされなければならない。
一実施形態では、基準パケットのK個のセットから抽出されたLSP値のK
*N個のセットを、1つの3次元行列(M×N×K)またはK個の2次元行列(それぞれがkの特定の値に関するM×N)として表すことができ、ここで、Nは、ターゲット・ウィンドウ(したがって、基準ウィンドウ)のサイズであり、Kは、基準パケットのセットの個数(ここで、K=K
max−K
min+1)であり、j∈(i−K
min…i−K
max)である。K
minおよびK
maxの値には、任意の値をセットすることができる(それらの値がK=K
max−K
min+1を満足する限り)。たとえば、K=25の場合に、K
minおよびK
maxに、それぞれ0および24をセットすることができる。基準パケットのK個のセットから抽出されたLSP値のK個のセットのそれぞれについて定義された例示的な2次元行列を、
と表すことができる。
K個の連続する基準パケットから抽出されたLSP値のK個のセットについて定義されたK個の2次元行列のそれぞれに示されているように、lは、LSP値であり、Rは、LSP値が基準パケットから抽出されたことを指定し、第1の添字は、LSP値がそこから抽出された基準パケットを示し(jからj+Nまでの範囲内で)、第2の添字は、第1の添字によって識別される基準パケットから抽出されたLSP値を識別する。言い換えると、LR iは、この2次元行列が、基準パケットjから作成され、この2次元行列の各行が、この2次元行列のその行のLSP値のそれぞれに関連する第1の添字によって識別される基準パケットから抽出されたM個のLSP値を含むことを示す。
ターゲット・パケットからのLSP値(または他の音声コーディング・パラメータ)の抽出、LSP値(または他の音声コーディング・パラメータ)基準パケットの抽出、および抽出されたLSP値の評価(たとえば、対単位の形での)は、図6に関してよりよく理解することができる。
図6に、ターゲット・パケット・ストリームの音声パケットと基準パケット・ストリームの音声パケットとの間の関係を示し、ターゲット・パケット・ストリームおよび基準パケット・ストリームの処理の説明を容易にする、高水準ブロック図を示す。ターゲット・パケット・ストリームは、ターゲット音声パケットを含む。ターゲット音声パケットは、ターゲット・ストリーム・バッファを使用してAEPM(明瞭にするために省略されている)によってバッファリングされる。ターゲット・ストリーム・バッファは、少なくともN個のターゲット・パケットを格納し、Nは、ターゲット・パケット・ストリームからのエコーの検出および抑制に関してターゲット・パケットを評価するのに使用されるスライディング・ウィンドウのサイズである。基準パケット・ストリームは、基準音声パケットを含む。基準音声パケットは、基準ストリーム・バッファを使用してAEPMによってバッファリングされる。基準ストリーム・バッファは、少なくともK+N個の基準パケットを格納し、Kは、ターゲット・バッファに格納されたN個のターゲット・パケットに対して比較されるN個の基準パケットのセットの個数である。
図6に示されているように、ターゲット・ストリーム・バッファは、4つ(N)のパケット(P1、P2、P3、およびP4と表される)を格納し、基準ストリーム・バッファは、11個(K+N)のパケット(P1、P2、…、P10、P11と表される)を格納する。言い換えると、この例では、Kは、7と等しい(0から6までの値として表すことができる)。現在のターゲット・ウィンドウに関して、パケット比較のK個のセットが、基準ウィンドウをK回スライドすることによって(たとえば、毎回1パケットずつ)実行される。具体的に言うと、最初の比較に関して、ターゲット・パケットP1、P2、P3、およびP4が、めいめいの基準パケットP1、P2、P3、およびP4と比較され、2回目の比較に関して、ターゲット・パケットP1、P2、P3、およびP4が、めいめいの基準パケットP2、P3、P4、およびP5と比較され、ターゲット・パケットP1、P2、P3、およびP4がめいめいの基準パケットP8、P9、P10、およびP11(すなわち、基準パケットPK−PK+N)と比較されるまで、以下同様である。
本明細書で説明するように、パケットの間の比較は、ターゲット・パケットおよび比較される基準パケットから入手可能な1つまたは複数のタイプの音声コーディング・パラメータの比較(または他の評価技法)(たとえば、LSP比較、音量比較、および類似物のうちの1つまたは複数ならびにその様々な組合せを使用する)を含むことができる。そのようなターゲット・パケットと基準パケットとの間の対単位の関連付けを使用するターゲット・パケットの音声コーディング・パラメータおよび基準パケットの音声コーディング・パラメータの評価は、図5に関してよりよく理解することができ、したがって、戻って図5を参照する。
ステップ507(オプションのステップ)で、前処理を実行する。前処理は、すべての前処理(たとえば、図4の方法400のステップ407に関して図示され、説明された前処理の異なる形のうちの1つまたは複数など)を含むことができる。たとえば、ターゲット・パケットおよび/または基準パケットのうちの選択されたパケットを無視することができ(たとえば、1/8レート音声パケット、エラーを有する音声パケット、テレタイプ情報を含む音声パケット、および比較に不適切と考えられる他の音声パケットなど、比較に不適切と考えられる音声パケットを無視するように、レート・パターン・マッチングを実行する)、異なる重みをターゲット音声パケットおよび/または基準音声パケットの異なるパケットに割り当てることができ、類似性判定を実行するのに使用される1つまたは複数のしきい値を動的に調整することができ、重みを類似性判定の結果に先取り式に割り当てることができ、類似物ならびにその様々な組合せを行うことができる。
本明細書で説明されるように、一実施形態では、レート・パターン・マッチングを、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間に類似性があるかどうかに関する判定中に使用することができる。
レート・パターン・マッチング処理の結果を、複数の形で使用することができる。一実施形態では、レート・パターン・マッチング処理の結果を使用して、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間に類似性があるかどうかに関する判定中に実行されるLSP比較の回数を減らすことができる(すなわち、ターゲット・パケットと音声パケットとの不適切な対が、無視され、LSP比較に使用されなくなる)。一実施形態では、レート・パターン・マッチング処理の結果を使用して、類似性判定の結果が有効または無効のどちらであるかを判定することができる。レート・パターン・マッチング処理の結果を、様々な他の目的に使用することができる。
一実施形態では、レート・パターン・マッチング処理は、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間に類似性があるかどうかの判定に使用されるめいめいのパケットの適切性に関してパケット(ターゲット・パケットおよび/または基準パケット)を分類することによって実行される。パケットを、比較可能(すなわち、類似性があるかどうかの判定に使用するのに適切)または比較不能(すなわち、類似性があるかどうかの判定に使用するのに不適切)のいずれかとして分類することができる。
パケットを、様々な判断基準を使用して分類することができる。一実施形態では、パケットを、それぞれ、分類されるパケットから抽出された音声コーディング・パラメータを使用して分類することができる。たとえば、一実施形態では、パケットを、そのパケットから抽出されたパケット・レート情報を使用して分類することができる。たとえば、1つのそのような実施形態では、フル・レート・パケットおよびハーフ・レート・パケットが、比較可能として分類され、無音(1/8レート)パケット、エラー・パケット、およびテレタイプ・パケットが、比較不能として分類される。本明細書で説明するように、他の判断基準を、ターゲット・パケットおよび/または基準パケットを比較可能または比較不能として分類するのに使用することができる。
レート・パターン・マッチング処理の結果が、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間に類似性があるかどうかに関する判定中に実行されるLSP比較の回数を減らすのに使用される一実施形態では、比較可能なパケットだけが、LSP比較に使用される(すなわち、比較不能パケットは、破棄されるか無視される)。
レート・パターン・マッチング処理の結果が、類似性判定の結果の妥当性を判定するのに使用される一実施形態では、レート・パターン・マッチングを、一致すると考えられる対応するターゲット・パケットおよび基準パケットの個数を判定することと、比較可能(比較不能に対して)と考えられるターゲット・パケットの個数を判定することと、一致するレートを有する対応するターゲット・パケットおよび基準パケットの個数を比較可能と考えられるターゲット・パケットの個数によって割ることによってレート・パターン・マッチング値を判定することと、レート・パターン・マッチング値をレート・パターン・マッチングしきい値と比較することとによって実行することができる。ターゲット・パケットおよび基準パケットは、ターゲット・パケットと基準パケットとの両方が比較可能と考えられる場合に一致すると考えられる(ターゲット・パケットおよび基準パケットの一方または両方が比較不能と考えられる場合には、一致はない)。このプロセスを、図7の例に関してよりよく理解することができる。
図7に、レート・パターン・マッチング処理を説明する、レート・パターン・マッチングの例を示す。具体的に言うと、4つのレート・パターン・マッチングの例が示されている(比較例710、720、730、および740として符号を付けられている)。図7に示されているように、各比較例は、4つのターゲット・パケット(「T」ならびにパケット番号P1、P2、P3、およびP4によって表され、めいめいのパケットのパケット・レートを示す情報を含む)と4つの基準パケット(「R」ならびにパケット番号P1、P2、P3、およびP4によって表され、めいめいのパケットのパケット・レートを示す情報を含む)との比較を含む。
比較例710では、ターゲット・パケットP1、P2、P3、およびP4は、それぞれ1、1/2、1/8、および1/2のパケット・レートを有し、基準パケットP1、P2、P3、およびP4は、それぞれ1/2、1、1、および1/2のパケット・レートを有する。この例では、基準パケットに対するターゲット・パケットの3つの一致(P1、P2、およびP4)があり、3つの比較可能なターゲット・パケットがあり(P3は比較不能である)、したがって、レート・パターン・マッチング値は3/3=100%である。この例のしきい値は75%なので、関連する類似性判定は、レート・パターン・マッチング値がレート・パターン・マッチングしきい値を満足するので有効と考えられる。
比較例720では、ターゲット・パケットP1、P2、P3、およびP4は、それぞれ1、1/2、1/2、および1/2のパケット・レートを有し、基準パケットP1、P2、P3、およびP4は、それぞれ1/2、1、1/8、および1/2のパケット・レートを有する。この例では、基準パケットに対するターゲット・パケットの3つの一致(P1、P2、およびP4)があり、4つの比較可能なターゲット・パケットがあり、したがって、レート・パターン・マッチング値は3/4=75%である。この例のしきい値は75%なので、関連する類似性判定は、レート・パターン・マッチング値がレート・パターン・マッチングしきい値を満足するので有効と考えられる。
比較例730では、ターゲット・パケットP1、P2、P3、およびP4は、それぞれ1、1/2、1/8、および1/2のパケット・レートを有し、基準パケットP1、P2、P3、およびP4は、それぞれ1/8、1/2、1、および1/2のパケット・レートを有する。この例では、基準パケットに対するターゲット・パケットの2つの一致(P2およびP4)があり、3つの比較可能なターゲット・パケットがあり(P3は比較不能である)、したがって、レート・パターン・マッチング値は2/3=67%である。この例のしきい値は75%なので、関連する類似性判定は、レート・パターン・マッチング値がレート・パターン・マッチングしきい値を満足しないので無効と考えられる。
比較例740では、ターゲット・パケットP1、P2、P3、およびP4は、それぞれ1/8、1/2、1/8、および1/2のパケット・レートを有し、基準パケットP1、P2、P3、およびP4は、それぞれ1/8、1/2、1、および1/2のパケット・レートを有する。この例では、基準パケットに対するターゲット・パケットの2つの一致(P2およびP4)があり、2つの比較可能なターゲット・パケットがあり(P1およびP3は比較不能である)、したがって、レート・パターン・マッチング値は2/2=100%である。この例のしきい値は75%なので、関連する類似性判定は、レート・パターン・マッチング値がレート・パターン・マッチングしきい値を満足するので有効と考えられる。
レート・パターン・マッチング値を判定する特定の形に関して図示され、説明されるが、レート・パターン・マッチング値は、様々な他の形で判定することができる。たとえば、一実施形態では、レート・パターン・マッチング値を、比較可能と考えられる基準パケットの個数を使用して計算することができる(上で説明したように、レート・パターン・マッチング値が比較可能と考えられるターゲット・パケットの個数を使用して計算されるのではなく)。レート・パターン・マッチング値を、他の形で計算することができる。
主にレート・パターン・マッチングしきい値が特定の値である(すなわち、レート・パターン・マッチングしきい値=75%)実施形態に関して図示され、説明されるが、レート・パターン・マッチングしきい値を、任意の値とすることができる。さらに、いくつかの実施形態では、レート・パターン・マッチングしきい値を静的とすることができ、他の実施形態では、レート・パターン・マッチングしきい値を動的に更新することができる(たとえば、抽出された音声コーディング・パラメータ、前処理結果、および類似物のうちの1つまたは複数ならびにその様々な組合せに基づいて)。
主に比較可能パケットまたは比較不能パケットとして分類されることに関して図示され、説明されるが、音声パケットを、異なるパケット・カテゴリを使用しておよび/またはより多数のパケット・カテゴリを使用して分類することができる。主に音声パケットのそれぞれに関連するある種の情報に基づいて分類されることに関して図示され、説明されるが、音声パケットのそれぞれを、様々な他の判断基準または判断基準の組合せ(めいめいの音声パケットから抽出された音声コーディング・パラメータを含んでも含まなくてもよい)に基づいて分類することができる。
一実施形態では、レート/タイプ・マッチングを、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間に類似性があるかどうかに関する判定中に使用することができる。
レート/タイプ・マッチング処理の結果を、複数の形で使用することができる。一実施形態では、レート/タイプ・マッチング処理の結果を使用して、ターゲット音声パケットの音声内容と基準音声パケットの音声内容との間に類似性があるかどうかに関する判定中に実行されるLSP比較の回数を減らすことができる(すなわち、ターゲット・パケットと音声パケットとの不適切な対が無視される)。一実施形態では、レート/タイプ・マッチング処理の結果を使用して、類似性判定の結果が有効または無効のどちらであるかを判定することができる。レート/タイプ・マッチング処理の結果を、様々な他の目的に使用することができる。
一実施形態では、レート/タイプ・マッチングは、パケットを分類することによって実行され、ここで、各パケットは、パケットのレートおよびパケットのタイプの組合せを使用して分類される。タイプは、パケットの1つまたは複数の特性に基づいて割り当てることができる。たとえば、一実施形態では、パケットのタイプを、パケットのエンコーディングのタイプに基づいて割り当てることができる。ターゲット・ウィンドウ内のターゲット・パケットのパケット・カテゴリは、基準ウィンドウ内の対応する基準パケットのパケット・カテゴリと比較される。パケット比較の異なる可能な組合せには、めいめいの重みが割り当てられる。ターゲット・ウィンドウ内のターゲット・パケットと基準ウィンドウ内の基準パケットとの間のパケット比較に関連する重みの合計は、関連する類似性判定が有効または無効のどちらと考えられるかを判定するために、しきい値と比較される。
たとえば、EVRC−Bでは、異なるパケット・レート(たとえば、フル、ハーフ、1/4、1/8)および異なるパケット・エンコーディング(たとえば、CELP、PPP、NELP)がある。パケット・レートおよびパケット・タイプの組合せを使用すると、現在、9つのパケット・カテゴリ(たとえば、フル・レート、ハーフ・レート、および特殊ハーフ・レートのCELP、フル・レート、特殊ハーフ・レート、および1/4レートのPPP、特殊ハーフ・レートおよび1/4レートのNELP、ならびに1/8レートである無音)があり、これは、81個の可能な順列組合せを与えることができる。このEVRC−Bの例では、パケット比較の各タイプが、1つの重みを割り当てられる。たとえば、ターゲット・パケットの比較これはフル・レートCELPである基準パケットに対するフル・レートCELPは、ある重みを割り当てられ、特殊ハーフ・レートPPPである基準パケットに対する1/4レートNELPであるターゲット・パケットの比較は、ある重みを割り当てられ、以下同様である。ターゲット・パケットのターゲット・ウィンドウおよび基準パケットの基準ウィンドウに関する類似性判定は、ターゲット・パケットが基準パケットと比較される時に識別される比較タイプの重みを合計することと、重みの合計をしきい値と比較することとによって評価される。
このEVRC−Bの例は、少なくとも9つの異なるパケット・カテゴリをもたらすので、レート/タイプ・マッチングの動作の説明において明瞭にするために、A、B、およびCと表される3つのパケット・カテゴリがあると仮定する。この単純化された例では、ターゲット・パケットと基準パケットとの間のパケット比較の9つの可能な組合せすなわち、A−A(0)、A−B(1)、A−C(2)、B−A(1)、B−B(0)、B−C(3)、C−A(2)、C−B(3)、およびC−C(0)があり、これらのそれぞれが、関連する重み(比較タイプの隣の括弧内にリストされている)を割り当てられる。この例では、重みの合計が2以下である場合に類似性判定が有効になり、重みの合計が2を超える場合に類似性判定が無効になるように、しきい値が2であると仮定する。
この例の継続において、基準ウィンドウに対するターゲット・ウィンドウの第1の比較があると仮定する。ターゲット・ウィンドウは、(B,A,C,A)であり、基準ウィンドウは、(A,B,C,A)であり、(1,1,0,0)という関連する重みを有する(B−A,A−B,C−C,A−A)というパケット比較がもたらされる。この例では、重みの合計は2であり、これはしきい値と等しい。したがって、この例では、類似性判定が有効であるという判定が行われる。
この例の継続において、基準ウィンドウに対するターゲット・ウィンドウの第2の比較があると仮定する。ターゲット・ウィンドウは、(C,B,C,A)であり、基準ウィンドウは、(A,B,C,A)であり、(2,0,0,0)という関連する重みを有する(C−A,B−B,C−C,A−A)というパケット比較がもたらされる。この例では、重みの合計は2であり、これはしきい値と等しい。したがって、この例では、類似性判定が有効であるという判定が行われる。
この例の継続において、基準ウィンドウに対するターゲット・ウィンドウの第3の比較を有すると仮定する。ターゲット・ウィンドウは、(A,C,C,A)であり、基準ウィンドウは、(A,B,C,A)であり、(0,3,0,0)という関連する重みを有する(A−A,C−B,C−C,A−A)というパケット比較がもたらされる。この例では、重みの合計は3であり、これはしきい値より大きい。したがって、この例では、類似性判定が無効であるという判定が行われる。
主に重みが対称である(たとえば、A−Bの重みが1であり、B−Aの重みが1である)例に関して図示され、説明されるが、他の実施形態では、非対称重みを使用することができる(たとえば、A−Bの重みを1とすることができ、B−Aの重みを3とすることができる)。しきい値未満の重みの合計が、類似性判定が有効であることを示す実施形態に関して説明されるが、他の実施形態では、重みをパケット比較に割り当てることができ、しきい値を超える重みの合計が、類似性判定が有効であることを示すようになる。重みおよびしきい値の特定の値に対する要求と共に説明されるが、重みおよび/またはしきい値(静的なしきい値および/または動的なしきい値を含む)の様々な他の値を使用することができる。
主に、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるかどうかを判定するためのLSP比較と組み合わされるレート/タイプ・マッチングの使用(たとえば、LSP比較を使用して行われた類似性判定が有効または無効のどちらであるかの判定)に関して説明されるが、一実施形態では、レート/タイプ・マッチングを、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるか否かを判定するためのLSP比較の代わりに使用することもできる。この実施形態では、しきい値との重みの合計の比較は、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるか否かを判定するのに使用される(上で説明したように、LSP比較を使用して行われた類似性判定の妥当性を判定するためではなく)。
ステップ508で、距離ベクトル(E
T iと表される)を生成する。距離ベクトルE
T iは、N個のターゲット・パケットから抽出されたLSP値と、i−K
min・・・i−K
maxのウィンドウ中に受信されたN個の基準パケットのK個のセットから抽出されたLSP値のK個のセットのそれぞれとの間の距離として計算されたK個の距離値を含む。より具体的に言うと、距離ベクトルE
i Tは、ターゲット・パケットiから始まるN個のターゲット・パケットのウィンドウに対応するが、次のように、K個の距離値のベクトルとして定義され(ここで、K=K
max−K
min+1である)、
ここで、各距離値e
T i,k(ただし、K
min≦k≦K
max)は、次のように定義される。
ステップ510では、距離ベクトルe
T iの最小距離値e
T i,kを、
として識別する。ステップ512では、最小距離値min[e
T i,k]がLSP類似性しきい値e
th)を満足するかどうかを判定するために、最小距離値min[e
T i,k]をしきい値(LSP類似性しきい値e
thと表される)と比較する。この比較は、
として実行することができる。
一実施形態では、LSP類似性しきい値ethは、事前定義のしきい値である。一実施形態では、LSP類似性しきい値ethは、動的に適合可能である。一実施形態では、LSP類似性しきい値ethを、抽出された音声コーディング・パラメータに基づいて動的に適合させることができる。たとえば、1つのそのような実施形態では、LSP類似性しきい値ethを、抽出された音声コーディング・パラメータの動的に適合される処理とすることができる(たとえば、抽出された音声コーディング・パラメータを、前処理中に、LSP類似性判定処理中に、および類似物、ならびにその様々な組合せの間に処理することができる)。
たとえば、一実施形態では、LSP類似性しきい値ethを、ターゲット・パケットおよび/または基準パケットから抽出された音量情報に基づいて動的に適合させることができる。たとえば、1つのそのような実施形態では、ターゲット・パケット(1つまたは複数)内の音声内容の音量が小さい(たとえば、しきい値未満である)ときに、LSP類似性しきい値ethを増やすことができる(ターゲット・パケット(1つまたは複数)内の音声内容の音量が小さい場合には、エンコードされた音声が量子化/エンコーディング効果に起因してひずむことがありえるので)。主に音声内容の音量に基づくLSP類似性しきい値ethの適合に関して説明されるが、LSP類似性しきい値ethを、様々な他のパラメータに基づいて適合させる(すなわち、増やすか減らす)ことができる。
本明細書で説明する時に、距離ベクトルET iの最小距離eT i,kは、現在のターゲット・パケット(すなわち、ターゲット・パケットi)について類似性が検出されるかどうかを判定するために、LSP類似性しきい値ethと比較される。min[eT i,k]>ethである場合には、類似性は、現在のターゲット・パケットについて検出されず(ステップ514として示される)、ステップ514から、方法500はステップ504に戻って、次の現在のターゲット・パケットすなわちi=i+1)について方法500を再実行する。min[eT i,k]<ethである場合には、類似性は、現在のターゲット・パケットについて検出され(ステップ516として示される)、ステップ516から、方法500はステップ504に戻って、次の現在のターゲット・パケットすなわちi=i+1)について方法500を再実行する。
主にターゲット・パケットおよび基準パケットのセットから抽出されたLSP値の行列の維持に関して図示され、説明されるが、抽出されたLSP値を、抽出されたLSP値の評価を可能にする任意の形で維持することができる。主にK個の距離値を含む距離ベクトルET iの生成に関して図示され、説明されるが、それぞれLSP値のK個のセットに関連するK個の距離値を、ベクトル内でK個の距離値を維持することなく計算することができる(たとえば、K個の距離値を、類似性が識別されるかどうかを判定するためにK個の距離値を処理するために単純にメモリに格納することができる)。
主に最小距離値(すなわち、距離値のうちのただ1つ)が、類似性が識別されるかどうかを判定するためにLSP類似性しきい値と比較される実施形態に関して図示され、説明されるが、他の実施形態では、複数の距離値とを、類似性が識別されるかどうかを判定するためにLSP類似性しきい値と比較することができる。たとえば、1つのそのような実施形態では、類似性が識別されるためには、ある個数の距離値がLSP類似性しきい値未満でなければならない(すなわち、類似性が識別されるためには、しきい値個数の距離値がLSP類似性しきい値未満でなければならない)。
主に距離ベクトルのすべての距離値が、LSP類似性しきい値との比較が行われる前に計算される実施形態に関して本明細書で図示され、説明されるが、一実施形態では、距離ベクトルの各距離値を、その距離値が計算される時にLSP類似性しきい値と比較することができる。
1つのそのような実施形態では、類似性が識別されるために1つの距離値だけがLSP類似性しきい値未満であることを要求される場合に、類似性を、距離値のうちの1つがLSP類似性しきい値未満であることの判定に応答して(すなわち、距離ベクトルの残りの距離値を計算するのではなく)識別することができる。たとえば、K=25の場合に、LSP類似性しきい値未満である最初の距離値の検出(これは、1個から25個までのいずれかの距離値が計算された後に判定することができる)時に、類似性が識別されたと考えることができる。
類似性が識別されるために複数の距離値がLSP類似性しきい値未満であることが要求される(たとえば、しきい値個数の距離値がLSP類似性しきい値未満でなければならないもう1つのそのような実施形態では、しきい値個数の距離値がLSP類似性しきい値未満であることの判定に応答して(すなわち、距離ベクトルの残りの距離値を計算するのではなく)識別することができる。たとえば、K=25であり、類似性が識別されるために、25個の距離値のうちの少なくとも10個がLSP類似性しきい値未満でなければならない場合に、LSP類似性しきい値未満である10番目の距離値の検出(これは、10個から25個までのいずれかの距離値が計算された後に判定することができる)時に、類似性が識別されたと考えることができる。
主に距離値が抽出されたLSP値を使用して計算される実施形態に関して図示され、説明されるが、他の実施形態では、距離値を、重み付きLPS値を使用して計算することができる。
たとえば、一実施形態では、各ターゲット・パケットおよび各基準パケットから抽出されるM個のLSP値のそれぞれに、重みを割り当てることができ、LSP値を、距離値を計算する前に、割り当てられた重みに従って調整することができる。
たとえば、もう1つの実施形態では、音声パケットごとに、音声パケットから抽出されたLSP値の合計に、その音声パケットの1つまたは複数の他の特性に基づいて重みを割り当てることができる。たとえば、重みを、パケット・タイプ(たとえば、ハーフ・レート、フル・レート、および類似物)、パケット・カテゴリ(たとえば、比較可能および/または比較不能ならびに他のカテゴリ)、信頼の度合(たとえば、抽出された音声コーディング・パラメータ(音量、レート、および類似物)のうちの1つまたは複数、1つまたは複数のシーケンスから導出されたメトリック、および類似物、ならびにその様々な組合せに比例するものとすることができる)のうちの1つまたは複数に基づいて、音声パケットから抽出されたLSP値の合計に割り当てることができる。
主に距離値がユークリッド距離値である実施形態に関して図示され、説明されるが、他の実施形態では、他のタイプの距離値を、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるかどうかを判定するのに使用することができる。たとえば、線形距離値、3次距離値、および類似物などの他のタイプの距離値を、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるかどうかを判定するのに使用することができる。
さらに、距離値が、主にターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるかどうかを判定するのに使用されることに関して図示され、説明されるが、ターゲット・パケットの音声内容と基準パケットの音声内容との間に類似性があるかどうかに関する判定を、他のタイプの比較を使用して実行することができる。
図5に示されているように、一実施形態では、オプションの後処理を実行することができる。この後処理は、すべての最適化ヒューリスティックを含むことができる。一実施形態では、後処理を、類似性が識別されることの最終的な判定が行われる前に実行することができる。1つのそのような実施形態では、後処理は、識別された類似性が有効または無効のどちらであるかを判定する形で実行される。言い換えると、後処理を、偽陽性を除去することを試みる形で(すなわち、ターゲット・パケットの音声内容と基準パケットの音声内容との類似性の誤った識別を除去するために)実行することができる。
図5に示されているように、後処理が実行される実施形態では、ステップ512で類似性が識別される場合に、方法500は、ステップ512からステップ512Aに進む(ステップ516に直接に進むのではなく)。ステップ512Aでは、1つまたは複数の最適化ヒューリスティックスを含むことができる前処理を実行して、識別された類似性の妥当性を評価する(すなわち、ステップ512で識別された類似性が偽陽性であるか否かを判定する)。ステップ515Bでは、識別された類似性が有効であるかどうかに関する判定を行う。識別された類似性が有効であるかどうかに関する判定は、後処理に基づいて行われる。
識別された類似性が有効ではない(すなわち、識別された類似性が偽陽性であるとの判定が行われる)場合には、類似性は、現在のターゲット・パケットについて識別されず(すなわち、方法500はステップ514に進む)、ステップ514から方法500はステップ504に戻って、次の現在のターゲット・パケットすなわちi=i+1)について方法500を再実行する。識別された類似性が有効である(すなわち、識別された類似性が偽陽性ではないとの判定が行われる)場合には、類似性が現在のターゲット・パケットについて識別され(すなわち、方法500はステップ516に進む)、ステップ516から、方法500はステップ504に戻って、次の現在のターゲット・パケットすなわちi=i+1)について方法500を再実行する。
後処理は、識別された類似性が有効であるか否かを評価する任意の形で実行することができる。一実施形態では、後処理は、ターゲット・パケットおよび基準パケットから抽出されたLSP値を使用して実行される。一実施形態では、後処理を、ターゲット・パケットおよび/または基準パケットから抽出された他の音声コーディング・パラメータ(たとえば、レート情報、エンコーディング・タイプ情報、音量/出力情報、利得情報、および類似物、ならびにその様々な組合せ)を使用して実行することができる。他の音声コーディング・パラメータを、任意の時に(たとえば、LSP値が抽出される時、類似性が抽出されたLSP値を使用して識別された後、および類似物)ターゲット・パケットおよび基準パケットから抽出することができる。一実施形態では、後処理を、図4の方法400のステップ409に関して図示し、説明したように実行することができる。
一実施形態では、ターゲット・パケット・ストリームの音声内容と基準パケット・ストリームの音声内容との間の類似性が識別される時に、識別された類似性の妥当性を評価することができる。識別された類似性の妥当性の評価を、複数の異なる形で実行することができる。本明細書で説明するように、識別された類似性の妥当性の評価を、ターゲット音声パケットおよび基準音声パケットと、レート・パターン・マッチングと、レート/タイプ・マッチングと、類似物と、ならびにその様々な組合せの評価を使用して実行することができる。
一実施形態では、識別された類似性の妥当性の評価を、ターゲット・パケットの音声内容の音量特性と基準パケットの音声内容の音量特性との比較を使用して実行することができる。識別された類似性の妥当性の評価を、音量特性の比較を使用して実行することができ、識別された類似性の妥当性を評価する他の方法と共にまたはその代わりに実行することができる。
たとえば、1つのそのような実施形態では、音量情報が、各ターゲット・パケットから抽出され、音量情報が、各基準パケットから抽出され、抽出された音量情報が、評価される。抽出された音量情報を、対単位の形で(すなわち、図5に関して図示し、説明した対単位LSP比較に類似する形で)評価することができる。音量情報は、任意の形で、プロセス内の任意の点で抽出することができる。たとえば、音量情報を、LSP情報が抽出される時に抽出することができ、あるいは、類似性が判定された後に限って抽出することができる(たとえば、音量比較を実行する必要がない場合に音量情報の抽出を防ぐために)。
一実施形態では、K回の音量比較すなわち、N個のターゲット・パケットとN個の基準パケットのK個のセットのうちの1つの組合せごとに1回の音量比較を行うことができる。この実施形態では、音量比較値は、N個のターゲット・パケットとN個の基準パケットのK個のセットのうちの1つの組合せごとに計算され、これによって、K個の音量比較値のセット(またはベクトル)が作られる。一実施形態では、K個の音量比較値のそれぞれが、音量しきい値vTHと比較される。音量比較値がvTHを満足する場合には、N個のターゲット・パケットとN個の基準パケットのK個のセットのうちの関連する1つのその組合せに関する関連するLSP比較が、有効と考えられ、音量比較値がvTHを満足しない場合には、N個のターゲット・パケットとN個の基準パケットのK個のセットのうちの関連する1つのその組合せに関する関連するLSP比較が、無効と考えられる。
一実施形態では、K個の音量比較値は、N個のターゲット・パケットから抽出された音量値と、i−K
min…i−K
max−Nというウィンドウ中に受け取られたN個の基準パケットのK個のセットから抽出された音量値のK個のセットのそれぞれとの間の比として計算される。一実施形態では、K個の音量比較値は、音量比較ベクトル(V
T iと表される)を形成する。この実施形態では、音量比較ベクトルV
T iは、ターゲット・パケットiから始まるN個のターゲット・パケットのウィンドウに対応するが、次のように、K個の音量比較値のベクトルとして定義される(ここで、K=K
max−K
min+1である)。
一実施形態では、音量比較値V
T i,k(ただし、K
min≦k≦K
max)は、次のように計算される。
主に、識別された類似性が有効と考えられるかどうかを判定するレート・パターン・マッチング技法、レート/タイプ・マッチング技法、および/または音量比較技法に関して図示され、説明されるが、識別された類似性が有効と考えられるかどうかの判定に、ターゲット・音声パケットおよび/または基準音声パケットから抽出された様々な他の音声コーディング・パラメータを使用することができる。たとえば、FCB利得情報、ACB利得情報、ピッチ情報、および類似物、ならびにその様々な組合せのうちの1つまたは複数を、識別された類似性が有効と考えられるかどうかの判定に使用することができる。
図5に示されているように、類似性が、現在のターゲット・パケットに関して識別される(ステップ516として示されている)場合に、エコー末尾が、類似性判定の副産物として自動的に識別される。エコー・パス遅延は、DELAY=k*fとして計算され、ここで、kは、最小距離値(すなわち、図5の方法500のステップ510で識別されたmin[eT i,k])であり、fは、使用されるコーディングのタイプに依存して変化し得るサンプリング・インターバルである(たとえば、EVRCコーディングに関して20ms)。したがって、本発明を使用すると、エコー・パス遅延は、ターゲット・パケット・ストリームのターゲット・パケットによって伝えられる音声内容と基準パケット・ストリームの基準パケットによって伝えられる音声内容との間に類似性があるか否かに関する判定の副産物として簡単に判定される。
本明細書で説明するように、ヒステリシスを、ターゲット・パケットの音声内容が基準パケットの音声内容のエコーを含むか否かの判定に使用してもしなくてもよい。ヒステリシスが使用されない実施形態では、現在のターゲット・パケットについて実行された処理に基づく類似性の識別は、ターゲット・パケット・ストリームの音声内容内の基準パケット・ストリームの音声内容のエコーの識別と考えられる。ヒステリシスが使用される実施形態では、現在のターゲット・パケットについて実行された処理に基づく類似性の識別は、ターゲット・パケット・ストリームの音声内容内の基準パケット・ストリームの音声内容のエコーの識別と考えても考えなくてもよい(すなわち、この判定は、1つまたは複数のヒステリシス条件に依存する)。
一実施形態では、本発明のエコー検出へのヒステリシスの適用は、エコーが検出されたことの判定が行われる前に、h個の連続するターゲット・パケットの類似性の識別(すなわち、類似性が識別される、方法500のh回の連続する実行)を必要とする場合がある。一実施形態では、連続するターゲット・パケット内で類似性が識別され続ける限り(たとえば、hより多数の連続するターゲット・パケットごとに)、ターゲット・パケットの音声内容が、基準パケットの音声内容のエコーを含むと考えることができる。一実施形態では、h個の連続するターゲット・パケットが、類似性の識別なしで処理されるまで、ターゲット・パケットの音声内容が、基準パケットの音声内容のエコーを含むと考えることができる。言い換えると、h=1の場合に、単一の類似性の識別が、エコーの検出であると考えられる(すなわち、h=1は非ヒステリシス実施形態である)。
一実施形態では、ヒステリシス判定を、各ターゲット・パケット・ストリームに関連する状態を使用して管理することができる。1つのそのような実施形態では、各ターゲット・パケット・ストリームは、必ず、2つの状態すなわち、非エコー状態(すなわち、エコーが検出されたと考えられない状態)およびエコー状態(すなわち、エコーが検出されたと考えられる状態)のうちの1つであることができる。ターゲット・パケット・ストリームが非エコー状態である場合に、ターゲット・パケット・ストリームは、h個の連続するパケットについて類似性が識別されるまで(その時点でターゲット・パケット・ストリームはエコー状態に切り替えられる)非エコー状態のままである。ターゲット・パケット・ストリームがエコー状態である場合に、ターゲット・パケット・ストリームは、h個(またはある他の個数)の連続するターゲット・パケットが類似性の識別なしで処理されるまで(その時点でターゲット・パケット・ストリームは非エコー状態に切り替えられる)エコー状態のままである。
したがって、エコーが検出される前にh個の連続するターゲット・パケットについて類似性の識別を必要とするヒステリシスに関して、方法500が図3の方法300のステップ304として実行される場合に、図3の方法300のステップ304は、図5の方法500のh回の連続する実行が類似性の識別を生じるまで繰り返される必要がある。言い換えると、明瞭にするために省略されているが、方法300のステップ306は、図5の方法500のh回の連続する実行が類似性の識別を生じるまでエコーの検出を防ぐことによって、ヒステリシスを実施することができる。さらに、ヒステリシスがエコーを検出するために使用される場合に、エコーが検出されたことの最初の判定に応答して、エコー抑制がターゲット・パケット(1つまたは複数)に適用される前に、追加の後処理を実行することができる。この追加の後処理(図3のステップ306と308との間に配置されるオプションの処理ステップとして動作することができる)は、図4のステップ409および図5のステップ515に関して説明した後処理に類似する後処理を含むがこれに限定されない任意のタイプの後処理とすることができる。
主にパケット・ネットワーク内で展開されたアコースティック・エコー処理モジュールを使用する(実例として、図1のパケット・ネットワーク102内で展開されたAEPM 120を使用する)エコー検出およびエコー抑制の提供に関して図示され、説明されるが、本発明のエコー検出機能およびエコー抑制機能を、エンド・ユーザ端末で実施することができる(本明細書では端末ベースの実施態様と称する)。本発明の端末ベースの実施態様は、図7および図8に関してよりよく理解することができる。
図8に、本発明のエコー検出機能およびエコー抑制機能がエンド・ユーザ端末内で実施される、通信ネットワークの高水準ブロック図を示す。具体的に言うと、図8の通信ネットワーク800は、パケット・ネットワーク802を介して通信するエンド・ユーザ端末803Aおよびエンド・ユーザ端末803Zを含む。具体的に言うと、パケット通信ネットワーク802は、エンド・ユーザ端末803Aとエンド・ユーザ端末803Zとの間のパケットベースの音声呼をサポートする。図8に示されているように、エンド・ユーザ端末803Aは、AEPM 813Aを含み、エンド・ユーザ端末803Zは、AEPM 813Zを含む。AEPM 813Aは、エンド・ユーザ端末103Aのエンド・ユーザAに本発明のエコー検出機能およびエコー抑制機能を提供し(および、オプションで、端末103Zのエンド・ユーザZにエコー検出機能およびエコー抑制機能を提供することができ)、同様に、AEPM 813Zは、エンド・ユーザ端末103Zのエンド・ユーザZに本発明のエコー検出機能およびエコー抑制機能を提供する(および、オプションで、端末103Aのエンド・ユーザAにエコー検出機能およびエコー抑制機能を提供することができる)。
パケットベースの音声呼の各エンド・ユーザ端末803がAEPM 813を含む音声呼に関して図示され、説明されるが、パケットベースの音声呼にかかわるエンド・ユーザの一方だけがAEPM 813を含むエンド・ユーザ端末803を使用する場合に、本発明のエコー検出機能およびエコー抑制機能を提供することができる。エンド・ユーザ端末803のAEPM 813が単一方向のエコー検出およびエコー抑制をサポートする、1つのそのような実施形態では、エンド・ユーザの一方(すなわち、エコー検出およびエコー抑制をその代わりにリモート・エンド・ユーザに提供することができるが、おそらくAEPM 813を含むエンド・ユーザ端末803に関連するローカル・エンド・ユーザ)だけが、本発明のエコー検出機能およびエコー抑制機能の利益を実現する。エンド・ユーザ端末803のAEPM 813が両方向のエコー検出およびエコー抑制をサポートする、もう1つのそのような実施形態では、エンド・ユーザの両方が、本発明のエコー検出機能およびエコー抑制機能の利益を実現する。
図9に、本発明のエコー検出機能およびエコー抑制機能がエンド・ユーザ端末内で実施される、通信ネットワークの高水準ブロック図を示す。具体的に言うと、図9の通信ネットワーク900は、パケット・ネットワーク902を介して通信するエンド・ユーザ端末803Aおよびエンド・ユーザ端末803Zを含み、各エンド・ユーザ端末803は、音声通信をサポートするコンポーネントを含む。図9に示されているように、エンド・ユーザ端末803は、オーディオ入力デバイス(たとえば、マイクロホン)、オーディオ出力デバイス(たとえば、スピーカ)、およびネットワーク・インターフェースなど、パケット・ネットワークを介する音声通信をサポートするコンポーネントを含む。
具体的に言うと、エンド・ユーザ端末803Aは、オーディオ入力デバイス804A、ネットワーク・インターフェース805A、およびオーディオ出力デバイス806Aを含み、エンド・ユーザ端末803Zは、オーディオ入力デバイス804Z、ネットワーク・インターフェース805Z、およびオーディオ出力デバイス806Zを含む。オーディオ入力デバイス804およびオーディオ出力デバイスは、図1のエンド・ユーザ端末103のオーディオ入力デバイス104およびオーディオ出力デバイス106に類似する形で動作する。エンド・ユーザ端末803のコンポーネントは、個々の物理デバイスとすることができ、あるいは、1つまたは複数の物理デバイスに組み合わせることができる。たとえば、エンド・ユーザ端末803は、コンピュータ、VoIP電話機、および類似物を含むことができる。
ネットワーク・インターフェース805は、エンコーディング/デコーディング機能、パケット化機能、および類似物に関して図1のネットワーク・インターフェース105に類似する形で動作するが、図1のエンド・ユーザ端末103とは異なって、図9のエンド・ユーザ端末803A(および、オプションでエンド・ユーザ端末803Z)は、本発明のエコー検出機能およびエコー抑制/キャンセレーション機能をサポートするAEPMを含むように適合される。ネットワーク・インターフェース805Aは、エンコーダ811A、ネットワーク・ストリーミング・モジュール812A、AEPM 813A、およびデコーダ814Aを含む。ネットワーク・インターフェース805Zは、エンコーダ811Z、ネットワーク・ストリーミング・モジュール812Z、AEPM 813Z、およびデコーダ814Zを含む。
エンド・ユーザ端末803Aは、エンド・ユーザ端末803Zに音声を供給する。エンド・ユーザAの音声は、オーディオ入力デバイス804Aによって感知される(明瞭にするために、エンド・ユーザ端末803Aでのエコー・カップリングはないと仮定する)。オーディオ入力デバイス804Aは、エンコーダ811Aに音声を供給し、エンコーダ811Aは、その音声をエンコードする。エンコーダ811Aは、エンコードされた音声をパケット通信ネットワーク802を介してエンド・ユーザ端末803Zに向けてストリーミングするために、エンコードされた音声をネットワーク・ストリーミング・モジュール812Aに供給する。エンコーダは、ターゲット・パケット・ストリーム(エンド・ユーザ端末803Zから受信される)内のエンド・ユーザAの音声のエコーを検出し、抑制/キャンセルするために、エンコードされた音声を基準パケット・ストリームとしてAEPM 813Aにも供給する。エンド・ユーザ端末803Zは、ストリーミングされたエンコードされた音声をエンド・ユーザ端末803Aから受信する。ネットワーク・ストリーミング・モジュール812Zは、ストリーミングされたエンコードされた音声をエンド・ユーザ端末803Aから受信する。ネットワーク・ストリーミング・モジュール812Zは、エンコードされた音声をデコーダ814Aに供給する。デコーダ814Zは、エンコードされた音声をデコードし、エンド・ユーザAのデコードされた音声をオーディオ出力デバイス806Zに供給し、オーディオ出力デバイス806Zは、エンド・ユーザAの音声を再生する。
エンド・ユーザ端末803Zは、音声をエンド・ユーザ端末803Aに供給する。エンド・ユーザZの音声は、オーディオ入力デバイス804Zによって感知される。エンド・ユーザAの音声(すなわち、オーディオ出力デバイス806Zによって再生される音声)も、オーディオ入力デバイス804Zによって感知される場合がある(すなわち、エコーとして)。オーディオ入力デバイス804Zは、エンコーダ811Zに音声を供給し、エンコーダ811Zは、その音声をエンコードする。エンコーダ811Zは、エンコードされた音声をパケット・ネットワーク802を介してエンド・ユーザ端末803Aに向けてストリーミングするために、エンコードされた音声をネットワーク・ストリーミング・モジュール812Zに供給する。エンド・ユーザ端末803Aは、ストリーミングされたエンコードされた音声をエンド・ユーザ端末803Zから受信する。ネットワーク・ストリーミング・モジュール812Aは、ストリーミングされたエンコードされた音声をエンド・ユーザ端末803Zから受信する。ネットワーク・ストリーミング・モジュール812Aは、ターゲット・パケット・ストリーム内のエンド・ユーザAの音声のエコーを検出し、抑制するために、エンコードされた音声をターゲット・パケット・ストリームとしてAEPM 813Aに供給する。AEPM 713Aは、すべてのエコーを検出し、抑制/キャンセルし、適合されたターゲット・パケット・ストリームをデコーダ814Aに供給する。デコーダ814Aは、エンコードされた音声をデコードし、エンド・ユーザZのデコードされた音声をオーディオ出力デバイス806Aに供給し、オーディオ出力デバイス806Aは、エンド・ユーザZの音声を再生する。
図9に示されているように、エンド・ユーザ端末803Aは、エンド・ユーザ端末803Aからエンド・ユーザ端末803Zに送信される音声パケットのオリジナル・ストリーム(基準パケット・ストリームとして示される)へのアクセスを有し、エンド・ユーザ端末803Zからエンド・ユーザ端末803Aに送信される音声パケットの戻りストリーム(ターゲット・パケット・ストリームとして示される)へのアクセスを有するので、エンド・ユーザ端末803Aは、エンド・ユーザ端末703Aに関連するエンド・ユーザAのエコーを検出し、抑制するために、本発明のエコー検出機能およびエコー抑制機能を適用することができる。しかし、図9に示されているように、エンド・ユーザ端末は、本発明のエコー検出および抑制/キャンセレーション処理を実行するために、様々な他の形で基準パケット・ストリームおよびターゲット・パケット・ストリームにアクセスすることができる。
図9に示され、図9に関して説明したように、エコー検出および抑制/キャンセレーションがエンド・ユーザ端末で実施される一実施形態では、本発明のエコー検出機能および抑制/キャンセレーション機能を、受信するエンド・ユーザ端末上でターゲット・パケット・ストリームに適用することができる。たとえば、エンド・ユーザ端末803AのAEPM 813Aは、エコー処理を適用して、エコーがエンド・ユーザ端末803Aから再生されるオーディオに含まれないようにすることができる(すなわち、エコー処理は、ターゲット・パケット・ストリームが既にエンド・ユーザ端末803Zからパケット・ネットワーク802をトラバースした後に適用される)。同様に、たとえば、エンド・ユーザ端末803ZのAEPM 813Zは、エコー処理を適用して、エコーがエンド・ユーザ端末803Zから再生されるオーディオに含まれないようにすることができる(すなわち、エコー処理は、ターゲット・パケット・ストリームが既にエンド・ユーザ端末803Aからパケット・ネットワーク802をトラバースした後に適用される)。
図9に示され、図9に関して説明したように、エコー検出および抑制/キャンセレーションがエンド・ユーザ端末で実施される一実施形態では、本発明のエコー検出機能およびエコー抑制/キャンセレーション機能を、送信するエンド・ユーザ端末上でターゲット・パケット・ストリームに対して実施することができる。たとえば、エンド・ユーザ端末803ZのAEPM 813Zは、エコー処理を適用して、エコーがエンド・ユーザ端末803Aから再生されるオーディオに含まれないようにすることができる(すなわち、エコー処理は、ターゲット・パケット・ストリームがエンド・ユーザ端末803Zからエンド・ユーザ端末803Aまでパケット・ネットワーク802をトラバースする前に適用される)。同様に、たとえば、エンド・ユーザ端末803AのAEPM 713Aは、エコー処理を適用して、エコーがエンド・ユーザ端末803Zから再生されるオーディオに含まれないようにすることができる(すなわち、エコー処理は、ターゲット・パケット・ストリームがエンド・ユーザ端末803Aからエンド・ユーザ端末803Zまでパケット・ネットワーク802をトラバースする前に適用される)。
さらに、主に代替実施形態として図示され、説明されるが一実施形態では、エンド・ユーザ端末は、伝送の両方の方向でエコー検出およびエコー抑制をサポートすることができる。1つのそのような実施形態では、単一のAEPMを、(1)ターゲット・パケット・ストリームがネットワークをトラバースする前に送信方向でエコー検出およびエコー抑制を提供するためにエンコーダとネットワーク・ストリーミング・モジュールとの間で、および(2)ターゲット・パケット・ストリームがネットワークをトラバースした後に受信方向でエコー検出およびエコー抑制を提供するためにネットワーク・ストリーミング・モジュールとデコーダとの間で、実施することができる。もう1つの実施形態では、エンド・ユーザ端末を、送信方向および受信方向について別々のAEPMを使用して実施することができる。
したがって、2つのエンド・ユーザ端末がパケット・ネットワークを介するパケットベースの音声呼に参加するが、2つのエンド・ユーザ端末のうちの1つだけが本発明のエコー検出機能およびエコー抑制機能を含む場合に、パケットベースのエコー検出およびエコー抑制をサポートしないエンド・ユーザ端末を使用するエンド・ユーザが、それでもパケットベースのエコー検出およびエコー抑制の利益を享受するように、一方のエンド・ユーザ端末が、それでも伝送の両方の方向でエコー検出およびエコー抑制を提供できることに留意されたい。
主に両方向音声呼の伝送の一方向でのエコー検出およびエコー抑制の提供に関して図示され、説明されるが、本発明によるエコー検出およびエコー抑制を、両方向音声呼の伝送の両方の方向で提供することができる。一実施形態では、エコー検出およびエコー抑制を、ネットワーク・ベースの実施態様(すなわち、伝送の両方の方向がネットワーク・ベースのAECMをトラバースする)を使用して伝送の両方の方向で提供することができる。一実施形態では、エコー検出およびエコー抑制を、端末ベースの実施態様(すなわち、両方のエンド・ユーザ端末がAECMを含む)を使用して伝送の両方の方向で提供することができる。一実施形態では、エコー検出およびエコー抑制を、ネットワーク・ベースの実施態様および端末ベースの実施態様の組合せを使用して伝送の両方の方向で提供することができる。たとえば、1つのエンド・ユーザ端末だけがAECMを含む場合に、エコー・キャンセレーションおよびエコー抑制を、伝送の一方の方向ではそのエンド・ユーザ端末によって、伝送の他方の方向ではネットワークによって(または両方の方向でネットワークによって)提供することができる。
主に2つのエンド・ユーザの間のパケットベースの音声呼に関して図示され、説明されるが、本発明によるエコー検出機能およびエコー抑制機能を、3つ以上のエンド・ユーザの間のパケットベースの音声呼の間のエコー検出およびエコー抑制に使用することができる。そのような実施形態では、ネットワーク・ベースのエコー検出およびエコー抑制ならびに/または端末ベースのエコー検出およびエコー抑制を、パケットベースの音声呼に参加するエンド・ユーザの異なる組合せの間でエコーを検出し、抑制するために利用することができる。
主に1つの音声呼に関して図示され、説明されるが、本発明を、ネットワークによってサポートされる音声呼ごとに実行することができる。ネットワーク・ベースの実施態様について、AEPMの設計に応じて、1つのAEPMが、ネットワークがサポートできる大量の呼をサポートできるものとすることができ、あるいは、ネットワークがサポートできるすべての音声呼について本発明のエコー検出機能およびエコー抑制機能をサポートできるように、複数のAEPMをネットワーク内で展開することができる。端末ベースの実施態様について、本発明のエコー検出機能およびエコー抑制機能に関するサポートのスケーリングは、エンド・ユーザが既存ユーザ端末を本発明のエコー検出機能およびエコー抑制機能を提供するAEPMを含む機能強化されたユーザ端末に交換する時に行われる。
一実施形態では、本発明のエコー検出機能およびエコー抑制機能のネットワーク・ベースの実施態様および端末ベースの実施態様の組合せが使用される。この組み合わされた実施態様は、様々な異なる理由のために、たとえば、エンド・ユーザが既存エンド・ユーザ端末(本発明のAEPMを含まない)から本発明のエコー検出機能およびエコー抑制機能を提供するAEPMを含むエンド・ユーザ端末に切り替えている推移期間中にエコー検出およびエコー抑制を提供するために、使用することができる。ネットワーク・ベースの実施態様と端末ベースの実施態様との間のバランスは、多数の異なる形で管理することができる。
たとえば、1つのそのような実施形態では、端末ベースの実施態様の推定値を使用して、ネットワーク・ベースの実施態様をスケーリングすることができる(たとえば、ネットワーク・ベースの実施態様が、本発明のエコー検出機能およびエコー抑制機能をサポートするエンド・ユーザ端末を有しないエンド・ユーザにエコー検出およびエコー抑制を提供するのに使用される場合)。言い換えると、エンド・ユーザが、既存エンド・ユーザ端末(本発明のAEPMを含まない)から本発明のエコー検出機能およびエコー抑制機能を提供するAEPMを含むエンド・ユーザ端末への切替を開始する時に、ネットワーク・ベースの実施態様のスコープを、それ相応にスケール・バックすることができる。
主にポイントツーポイント呼の音声内容に関するエコー検出およびエコー抑制の提供に関して図示され、本明細書で説明されるが、本発明のエコー検出機能およびエコー抑制機能を使用して、多者間呼(multi−party calling)(たとえば、音声会議)の音声内容に関するエコー検出およびエコー抑制を提供することができる。主に音声内容に関するエコー検出およびエコー抑制の提供に関して図示され、説明されるが、本発明のエコー検出機能およびエコー抑制機能を使用して、他のタイプのオーディオ内容に関するエコー検出およびエコー抑制を提供することができる。同様に、オーディオ内容全般に関するエコー検出およびエコー抑制の提供に関して図示され、本明細書で説明されるが、本発明のエコー検出機能およびエコー抑制機能を使用して、エコーを含む場合がある他のタイプの内容に関するエコー検出およびエコー抑制を提供することができる。さらに、主にアコースティック・エコーの検出および抑制に関して図示され、説明されるが、本発明を、オーディオベースの通信システムに導入される可能性がある他のタイプのエコー(たとえば、回線エコー、ハイブリッド・エコー、および類似物、ならびにその様々な組合せ)の検出および抑制に使用することができる。言い換えると、本発明は、エコーのタイプまたはエコーが導入され得る内容のタイプによって限定されることを意図されていない。
図10に、本明細書に記載の機能を実行する際の使用に適する汎用コンピュータの高水準ブロック図を示す。図10に示されているように、システム1000は、プロセッサ要素1002(たとえば、CPU)、メモリ1004、たとえばランダム・アクセス・メモリ(RAM)および/または読取り専用メモリ(ROM)、アコースティック・エコー処理モジュール(AEPM)1005、および様々な入出力デバイス1006(たとえば、テープ・ドライブ、フロッピ・ドライブ、ハード・ディスク・ドライブ、またはコンパクト・ディスク・ドライブを含むがこれに限定されないストレージ・デバイス、受信器、送信器、スピーカ、ディスプレイ、出力ポート、およびユーザ入力デバイス(キーボード、キーパッド、マウス、および類似物))を含む。
本発明を、ソフトウェアならびに/またはソフトウェアおよびハードウェア、たとえば、特定用途向け集積回路(ASIC)、汎用コンピュータ、または他のハードウェア機器の組合せで実施できることに留意されたい。一実施形態では、本AECプロセス1005を、メモリ1004にロードし、プロセッサ要素1002によって実行して、上で述べた機能を実施することができる。したがって、本発明のAECプロセス1005(関連するデータ構造を含む)を、コンピュータ可読媒体または担体、たとえば、RAMメモリ、磁気ドライブ、磁気ディスケット、光ドライブ、または光ディスケット、および類似物に格納することができる。
本明細書でソフトウェア方法として述べたステップの一部を、ハードウェア内で、たとえば、様々な方法ステップを実行するためにプロセッサと協力する回路網として実施できることが企図されている。本発明の諸部分を、コンピュータ・プログラム製品として実施することができ、ここで、コンピュータ命令は、コンピュータによって処理される時に、本発明の方法および/または技法が呼び出されるか他の形で提供されるようにコンピュータの動作を適合させる。発明的方法を呼び出す命令を、固定媒体もしくは取外し可能媒体に格納し、放送信号担持媒体もしくは他の信号担持媒体内のデータ・ストリームを介して伝送し、かつ/または命令に従って動作するコンピューティング・デバイス内の作業メモリ内に格納することができる。
本発明の教示を組み込む様々な実施形態を図示し、本明細書で詳細に説明したが、当業者は、それでもこれらの教示を組み込む多数の他の変更された実施形態をたやすく考案することができる。