(57)【要約】  方法（４００）は、マイクロフォンオーディオ信号（１３２）および再生オーディオ信号（１１２）を受信する工程と、マイクロフォンオーディオ信号の周波数表現（３２４）および再生オーディオ信号の周波数表現を決定する工程と、を備える。各周波数表現（３２４）について、方法はまた、周波数表現に基づいて特徴を決定する工程も備える。各特徴は、周波数表現の一対の周波数（３４２）および一対の周波数の間の時間に対応する。方法はまた、マイクロフォンオーディオ信号の周波数表現に基づく第１の特徴と、再生オーディオ信号の周波数表現に基づく第２の特徴との間に一致（２１２）が発生することを決定する工程と、第１の特徴と第２の特徴との間の遅延値（２２２）がマイクロフォンオーディオ信号内のエコーに対応することを決定する工程も備える。
2021530919.tif 000002
【特許請求の範囲】
【請求項１】
データ処理ハードウェア（６１０）が、マイクロフォンオーディオ信号（１３２）および再生オーディオ信号（１１２）を受信する工程と、
前記データ処理ハードウェア（６１０）が、前記マイクロフォンオーディオ信号（１３２）の周波数表現（３２４）および前記再生オーディオ信号（１１２）の周波数表現（３２４）を決定する工程と、
前記データ処理ハードウェア（６１０）が、各周波数表現（３２４）について、前記周波数表現（３２４）に基づいて特徴（３０２）を決定する工程であって、各特徴（３０２）は、前記周波数表現（３２４）の一対の周波数（３４２）および前記一対の周波数（３４２）の間の時間に対応する、前記決定する工程と、
前記データ処理ハードウェア（６１０）が、前記マイクロフォンオーディオ信号（１３２）の前記周波数表現（３２４）に基づく第１の特徴（３０２）と、前記再生オーディオ信号（１１２）の前記周波数表現（３２４）に基づく第２の特徴（３０２）との間に一致（２１２）が発生することを決定する工程と、
前記データ処理ハードウェア（６１０）が、前記第１の特徴（３０２）と前記第２の特徴（３０２）との間の遅延値（２２２）が前記マイクロフォンオーディオ信号（１３２）内のエコーに対応することを決定する工程と、を備える方法（４００）。
【請求項２】
前記遅延値（２２２）が前記エコーに対応することを決定する工程は、前記第１の特徴（３０２）と前記第２の特徴（３０２）との間の遅延値（２２２）がエコーしきい値（２２４）を満たすことを決定することを含み、前記エコーしきい値（２２４）は、それぞれのエコーを予測する特定の遅延値（２２２）のカウントを表す、請求項１に記載の方法（４００）。
【請求項３】
前記一対の周波数（３４２）が前記周波数表現（３２４）の第１のピーク周波数および第２のピーク周波数に対応し、前記第２のピーク周波数は、前記の第１のピーク周波数に隣接し、前記第１のピーク周波数からしきい値周波数差異内に存在し、前記しきい値周波数差異は、前記第１のピーク周波数からの周波数公差に対応する、請求項１または２に記載の方法（４００）。
【請求項４】
前記周波数表現（３２４）は、スペクトログラムである、請求項１〜３のいずれか一項に記載の方法（４００）。
【請求項５】
前記マイクロフォンオーディオ信号（１３２）を受信する工程は、前記マイクロフォンオーディオ信号（１３２）をエコー低減信号としてエコー低減器（１４０）から受信することを含み、前記エコー低減器（１４０）は、前記マイクロフォンオーディオ信号（１３２）と前記再生オーディオ信号（１１２）との間のエコーを低減するように構成される、請求項１〜４のいずれか一項に記載の方法（４００）。
【請求項６】
前記データ処理ハードウェア（６１０）が、受信した前記マイクロフォンオーディオ信号（１３２）および受信した前記再生オーディオ信号（１１２）の各々をダウンサンプリングする工程をさらに備える、請求項１〜５のいずれか一項に記載の方法（４００）。
【請求項７】
前記マイクロフォンオーディオ信号（１３２）および前記再生オーディオ信号（１１２）の周波数表現（３２４）を決定する工程は、前記マイクロフォンオーディオ信号（１３２）および前記再生オーディオ信号（１１２）の各々のオーディオ信号について、
前記オーディオ信号（１３２，１１２）をサンプルのブロックに分割することと、
サンプルのブロックの各々の周波数変換に基づいて前記周波数表現（３２４）の係数（３２６）を決定することと、を含む、請求項１〜６のいずれか一項に記載の方法（４００）。
【請求項８】
前記一対の周波数（３４２）は、しきい値特徴周波数を満たす各特徴（３０２）に対応する、請求項１〜７のいずれか一項に記載の方法（４００）。
【請求項９】
前記マイクロフォンオーディオ信号（１３２）および前記再生オーディオ信号（１１２）を受信する工程、前記マイクロフォンオーディオ信号（１３２）の周波数表現（３２４）および前記再生オーディオ信号（１１２）の周波数表現（３２４）を決定する工程、各周波数表現（３２４）について前記特徴（３０２）を決定する工程、前記第１の特徴（３０２）と前記第２の特徴（３０２）との間に一致（２１２）が発生することを決定する工程、および前記第１の特徴（３０２）と前記第２の特徴（３０２）との間の遅延値（２２２）がエコーに対応することを決定する工程は、リアルタイムに同時期に発生する、請求項１〜８のいずれか一項に記載の方法（４００）。
【請求項１０】
前記データ処理ハードウェア（６１０）が、前記第１の特徴（３０２）と前記第２の特徴（３０２）との間の遅延値（２２２）が、前記エコーに対応することを決定することに基づいて、受信した前記マイクロフォンオーディオ信号（１３２）および受信した前記再生オーディオ信号（１１２）を除去する工程をさらに備える、請求項１〜９のいずれか一項に記載の方法（４００）。
【請求項１１】
データ処理ハードウェア（６１０）が、マイクロフォンオーディオ信号（１３２）および再生オーディオ信号（１１２）をリアルタイムに受信する工程と、
前記データ処理ハードウェア（６１０）が、前記再生オーディオ信号（１１２）から再生特徴（３０２）の第１のセットをリアルタイムに決定する工程であって、前記再生特徴（３０２）の第１のセットは、前記再生オーディオ信号（１１２）からの所定の時間ブロックを表し、各再生特徴（３０２）は、一対の再生オーディオ信号周波数（３４２）および前記一対の再生オーディオ信号周波数（３４２）の間の時間に対応する、前記再生特徴（３０２）の第１のセットをリアルタイムに決定する工程と、
前記データ処理ハードウェア（６１０）が、受信した前記マイクロフォンオーディオ信号（１３２）に対応するマイクロフォン特徴（３０２）をリアルタイムに決定する工程であって、各マイクロフォン特徴（３０２）は、一対のマイクロフォンオーディオ信号周波数（３４２）および前記一対のマイクロフォンオーディオ信号周波数（３４２）の間の時間に対応する、前記マイクロフォン特徴（３０２）をリアルタイムに決定する工程と、
前記データ処理ハードウェア（６１０）が、前記再生特徴（３０２）の第１のセットの再生特徴（３０２）と第１のマイクロフォン特徴（３０２）との間に一致（２１２）が発生するかどうかをリアルタイムに決定する工程と、
前記一致（２１２）が発生しない場合：
前記データ処理ハードウェア（６１０）が、前記再生オーディオ信号（１１２）に基づいて、再生オーディオ特徴（３０２）の第２のセットをリアルタイムに決定する工程であって、前記再生特徴（３０２）の第２のセットは、前記再生オーディオ信号（１１２）からの前記再生特徴（３０２）の前記第１のセットに隣接する所定の時間ブロックを表す、前記再生オーディオ特徴（３０２）の第２のセットをリアルタイムに決定する工程と、
前記データ処理ハードウェア（６１０）が、前記再生特徴（３０２）の第２のセットからのそれぞれの再生特徴（３０２）が第２のマイクロフォン特徴（３０２）と一致（２１２）することをリアルタイムに決定する工程と、
前記データ処理ハードウェア（６１０）が、一致した前記第２のマイクロフォン特徴（３０２）が前記マイクロフォンオーディオ信号（１３２）内のエコーであることをリアルタイムに識別する工程と、を備える方法（５００）。
【請求項１２】
前記マイクロフォンオーディオ信号（１３２）を受信する工程は、前記マイクロフォンオーディオ信号（１３２）をエコー低減信号としてエコー低減器（１４０）から受信することをさらに含み、前記エコー低減器（１４０）は、前記マイクロフォンオーディオ信号（１３２）と前記再生オーディオ信号（１１２）との間のエコーを低減するように構成される、請求項１１に記載の方法（５００）。
【請求項１３】
データ処理ハードウェア（６１０）と、前記データ処理ハードウェア（６１０）と通信するメモリハードウェア（６２０）と、を備えるシステム（１００）であって、前記メモリハードウェア（６２０）は、前記データ処理ハードウェア（６１０）上で実行されるとき、前記データ処理ハードウェア（６１０）に操作を行わせる命令を記憶しており、前記操作は、
マイクロフォンオーディオ信号（１３２）および再生オーディオ信号（１１２）を受信する工程と、
前記マイクロフォンオーディオ信号（１３２）の周波数表現（３２４）および前記再生オーディオ信号（１１２）の周波数表現（３２４）を決定する工程と、
各周波数表現（３２４）について、前記周波数表現（３２４）に基づいて特徴（３０２）を決定する工程であって、各特徴（３０２）は、前記周波数表現（３２４）の一対の周波数（３４２）および前記一対の周波数（３４２）の間の時間に対応する、前記決定する工程と、
前記マイクロフォンオーディオ信号（１３２）の前記周波数表現（３２４）に基づく第１の特徴（３０２）と、前記再生オーディオ信号（１１２）の前記周波数表現（３２４）に基づく第２の特徴（３０２）との間の照合を行う工程と、
前記第１の特徴（３０２）と前記第２の特徴（３０２）との間の遅延値（２２２）が前記マイクロフォンオーディオ信号（１３２）内のエコーに対応することを決定する工程と、を備える、システム（１００）。
【請求項１４】
前記遅延値（２２２）が前記エコーに対応することを決定する工程は、一致した前記第１の特徴（３０２）と一致した前記第２の特徴（３０２）との間の遅延値（２２２）がエコーしきい値（２２４）を満たすことをさらに決定し、前記エコーしきい値（２２４）は、それぞれのエコーを予測する特定の遅延値（２２２）のカウントを表す、請求項１３に記載のシステム（１００）。
【請求項１５】
前記一対の周波数（３４２）が前記周波数表現（３２４）の第１のピーク周波数および第２のピーク周波数に対応し、前記第２のピーク周波数は、前記の第１のピーク周波数に隣接し、前記第１のピーク周波数からしきい値周波数差異内に存在し、前記しきい値周波数差異は、前記第１のピーク周波数からの所定の公差に対応する、請求項１３または１４に記載のシステム（１００）。
【請求項１６】
前記周波数表現（３２４）は、スペクトログラムである、請求項１３〜１５のいずれか一項に記載のシステム（１００）。
【請求項１７】
前記マイクロフォンオーディオ信号（１３２）を受信する工程は、前記マイクロフォンオーディオ信号（１３２）をエコー低減信号としてエコー低減器（１４０）から受信することを含み、前記エコー低減器（１４０）は、前記マイクロフォンオーディオ信号（１３２）と前記再生オーディオ信号（１１２）との間のエコーを低減するように構成される、請求項１３〜１６のいずれか一項に記載のシステム（１００）。
【請求項１８】
前記操作は、受信した前記マイクロフォンオーディオ信号（１３２）および受信した前記再生オーディオ信号（１１２）の各々をダウンサンプリングする工程をさらに備える、請求項１３〜１７のいずれか一項に記載のシステム（１００）。
【請求項１９】
前記マイクロフォンオーディオ信号（１３２）の周波数表現（３２４）および前記再生オーディオ信号（１１２）の周波数表現（３２４）を決定する工程は、前記マイクロフォンオーディオ信号（１３２）および前記再生オーディオ信号（１１２）の各々のオーディオ信号について、
前記オーディオ信号（１３２，１１２）をサンプルのブロックに分割することと、
サンプルのブロックの各々の周波数変換に基づいて前記周波数表現（３２４）の係数（３２６）を決定することと、を含む、請求項１３〜１８のいずれか一項に記載のシステム（１００）。
【請求項２０】
前記一対の周波数（３４２）は、しきい値特徴周波数を満たす各特徴（３０２）に対応する、請求項１３〜１９のいずれか一項に記載のシステム（１００）。
【請求項２１】
前記マイクロフォンオーディオ信号（１３２）および前記再生オーディオ信号（１１２）を受信する工程、前記マイクロフォンオーディオ信号（１３２）の周波数表現（３２４）および前記再生オーディオ信号（１１２）の周波数表現（３２４）を決定する工程、各周波数表現（３２４）について、前記特徴（３０２）を決定する工程、前記第１の特徴（３０２）と前記第２の特徴（３０２）との間に一致（２１２）が発生することを決定する工程、および前記第１の特徴（３０２）と前記第２の特徴（３０２）との間の遅延値（２２２）がエコーに対応することを決定する工程は、リアルタイムに同時期に発生する、請求項１３〜２０のいずれか一項に記載のシステム（１００）。
【請求項２２】
前記操作は、前記第１の特徴（３０２）と前記第２の特徴（３０２）との間の延値（２２２）が前記エコーに対応することを決定することに基づいて、受信した前記マイクロフォンオーディオ信号（１３２）および前記再生オーディオ信号（１１２）を除去する工程をさらに備える、請求項１３〜２１のいずれか一項に記載のシステム（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、エコー検出に関する。
【背景技術】
【０００２】
オーディオシステムがオーディオをキャプチャして送信するとき、これらの周辺機器は音響エコーの影響を受ける可能性がある。音響エコーは、一般に、オーディオ再生機器（例えば、スピーカ）から生成された可聴信号が音響環境（例えば、空気）を通じて音波の形式で伝播し、波の修正版が反射してマイクに戻るときに発生する。エコーの別の形式は電気エコーであり、これは、オーディオ再生機器（例えば、スピーカ）とマイクロフォンとの間の望ましくない電気的結合効果に起因して発生する。このようなエコーパスによって生成された信号は、次いで、音響エコーとして送信される。エコーは、例えば、周辺機器の近接性や周辺機器の品質など、さまざまな要因によって発生する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
エコーは、ソフトウェアアプリケーションを使用するリアルタイム通信（ＲＴＣ）などの会話内で発生するので、エコーは、ユーザ体験に対して否定的効果を生成する。エコーは、ハードウェアの互換性やハードウェアの品質など、ソフトウェアに関連しない問題に起因する場合もあるが、ユーザは、この否定的な体験を、通信に使用されるソフトウェアアプリケーション（例えば、ＲＴＣアプリケーション）に関連付けることがある。人々がエコーの影響を受けるシステムを使用してますます通信するにつれて、これらの通信システム内のオーディオ対話を理解するためにエコー検出システムおよび方法が実装され得る。
【課題を解決するための手段】
【０００４】
本開示の一態様は、データ処理ハードウェアが、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程と、データ処理ハードウェアが、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程と、を備える方法を提供する。各周波数表現について、方法は、また、データ処理ハードウェアが、周波数表現に基づいて特徴を決定する工程を備える。各特徴は、周波数表現の一対の周波数および一対の周波数の間の時間に対応する。方法は、また、データ処理ハードウェアが、マイクロフォンオーディオ信号の周波数表現に基づく第１の特徴と、再生オーディオ信号の周波数表現に基づく第２の特徴との間に一致が発生することを決定する工程を備える。方法は、また、データ処理ハードウェアが、第１の特徴と第２の特徴との間の遅延値がマイクロフォンオーディオ信号内のエコーに対応することを決定する工程を備える。
【０００５】
本開示の実装形態は、１つまたは複数の次の特徴を任意選択により含んでもよい。いくつかの実装形態では、遅延値がエコーに対応することを決定する工程は、第１の特徴と第２の特徴との間の遅延値がエコーしきい値を満たすことを決定することを含み、エコーしきい値は、それぞれのエコーを予測する特定の遅延値のカウントを表す。さらなる実装形態では、一対の周波数が周波数表現の第１のピーク周波数および第２のピーク周波数に対応する。ここで、第２のピーク周波数は、第１のピーク周波数に隣接し、第１のピーク周波数からしきい値周波数差異内に存在し、しきい値周波数差異は、第１のピーク周波数からの周波数公差に対応する。周波数表現は、スペクトログラムを含んでもよい。
【０００６】
いくつかの例では、マイクロフォンオーディオ信号を受信する工程は、マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信することを含み、エコー低減器は、マイクロフォンオーディオ信号と再生オーディオ信号との間のエコーを低減するように構成される。追加的または代替的に、方法はまた、データ処理ハードウェアが、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号の各々をダウンサンプリングする工程も備える。
【０００７】
いくつかの実装形態では、マイクロフォンオーディオ信号および再生オーディオ信号の周波数表現を決定する工程は、マイクロフォンオーディオ信号および再生オーディオ信号の各々のオーディオ信号について、オーディオ信号をサンプルのブロックに分割することと、サンプルのブロックの各々の周波数変換に基づいて周波数表現の係数を決定することと、を含む。さらなる実装形態では、一対の周波数は、しきい値特徴周波数を満たす各特徴に対応する。追加的または代替的に、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程、各周波数表現について特徴を決定する工程、第１の特徴と第２の特徴との間に一致が発生することを決定する工程、および第１の特徴と第２の特徴との間の遅延値がエコーに対応することを決定する工程は、リアルタイムに同時期に発生する。いくつかの例では、方法はまた、データ処理ハードウェアが、第１の特徴と第２の特徴との間の遅延値がエコーに対応することを決定することに基づいて、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号を除去する工程も備える。
【０００８】
本開示の別の態様は、データ処理ハードウェアが、マイクロフォンオーディオ信号および再生オーディオ信号をリアルタイムに受信する工程と、データ処理ハードウェアが、再生オーディオ信号から再生特徴の第１のセットをリアルタイムに決定する工程であって、再生特徴の第１のセットは、再生オーディオ信号からの所定の時間ブロックを表し、各再生特徴は、一対の再生オーディオ信号周波数および一対の再生オーディオ信号周波数の間の時間に対応する、再生特徴の第１のセットをリアルタイムに決定する工程と、を備える方法を提供する。方法はまた、データ処理ハードウェアが、受信した前記マイクロフォンオーディオ信号に対応するマイクロフォン特徴をリアルタイムに決定する工程であって、各マイクロフォン特徴は、一対のマイクロフォンオーディオ信号周波数および一対のマイクロフォンオーディオ信号周波数の間の時間に対応する、マイクロフォン特徴をリアルタイムに決定する工程と、も備える。
【０００９】
方法はまた、データ処理ハードウェアが、再生特徴の第１のセットの再生特徴と第１のマイクロフォン特徴との間に一致が発生するかどうかをリアルタイムに決定する工程と、一致が発生しない場合：データ処理ハードウェア（６１０）が、再生オーディオ信号に基づいて、再生オーディオ特徴の第２のセットをリアルタイムに決定する工程であって、再生特徴の第２のセットは、再生オーディオ信号からの再生特徴の第１のセットに隣接する所定の時間ブロックを表す、再生オーディオ特徴の第２のセットをリアルタイムに決定する工程と、データ処理ハードウェアが、再生特徴の第２のセットからのそれぞれの再生特徴が第２のマイクロフォン特徴と一致することをリアルタイムに決定する工程と、データ処理ハードウェアが、一致した第２のマイクロフォン特徴がマイクロフォンオーディオ信号内のエコーであることをリアルタイムに識別する工程も備える。
【００１０】
本態様は、次の１つまたは複数の特徴を任意選択により含んでもよい。いくつかの例では、マイクロフォンオーディオ信号を受信する工程は、マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信することをさらに含む。これらの例では、エコー低減器は、マイクロフォンオーディオ信号と再生オーディオ信号との間のエコーを低減するように構成される。
【００１１】
本開示のさらに別の態様は、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアと、を備えるシステムを提供する。メモリハードウェアは、データ処理ハードウェア上で実行されるとき、データ処理ハードウェアに操作を行わせる命令を記憶しており、操作は、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程と、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程と、を備える。各周波数表現について、方法はまた、周波数表現に基づいて特徴を決定する工程も備える。各特徴は、周波数表現の一対の周波数および一対の周波数の間の時間に対応する。方法はまた、マイクロフォンオーディオ信号の周波数表現に基づく第１の特徴と、再生オーディオ信号の周波数表現に基づく第２の特徴との間に一致が発生したことを決定する工程も備える。方法はまた、第１の特徴と第２の特徴との間の遅延値がマイクロフォンオーディオ信号内のエコーに対応することを決定する工程も備える。
【００１２】
本態様は、１つまたは複数の次の特徴を任意選択により含んでもよい。いくつかの実装形態では、遅延値がエコーに対応することを決定する工程は、第１の特徴と第２の特徴との間の遅延値がエコーしきい値を満たすことを決定することを含み、エコーしきい値は、それぞれのエコーを予測する特定の遅延値のカウントを表す。さらなる実装形態では、一対の周波数が周波数表現の第１のピーク周波数および第２のピーク周波数に対応する。ここで、第２のピーク周波数は、第１のピーク周波数に隣接し、第１のピーク周波数からしきい値周波数差異内に存在し、しきい値周波数差異は、第１のピーク周波数からの周波数公差に対応する。周波数表現は、スペクトログラムを含んでもよい。
【００１３】
いくつかの例では、マイクロフォンオーディオ信号を受信する工程は、マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信することを含み、エコー低減器は、マイクロフォンオーディオ信号と再生オーディオ信号との間のエコーを低減するように構成される。追加的または代替的に、操作はまた、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号の各々をダウンサンプリングする工程も備える。
【００１４】
いくつかの実装形態では、マイクロフォンオーディオ信号および再生オーディオ信号の周波数表現を決定する工程は、マイクロフォンオーディオ信号および再生オーディオ信号の各々のオーディオ信号について、オーディオ信号をサンプルのブロックに分割することと、サンプルのブロックの各々の周波数変換に基づいて周波数表現の係数を決定することと、を含む。さらなる実装形態では、一対の周波数は、しきい値特徴周波数を満たす各特徴に対応する。追加的または代替的に、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程、各周波数表現について特徴を決定する工程、第１の特徴と第２の特徴との間に一致が発生することを決定する工程、および第１の特徴と第２の特徴との間の遅延値がエコーに対応することを決定する工程は、リアルタイムに同時期に発生する。いくつかの例では、操作はまた、第１の特徴と第２の特徴との間の遅延値がエコーに対応することを決定することに基づいて、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号を除去する工程も備える。
【００１５】
本開示の１つまたは複数の実施の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】例示的なエコー検出システムの概略図。
【図２Ａ】エコー検出システム内で動作する例示的なエコー検出器の概略図。
【図２Ｂ】エコー検出システム内で動作する例示的なエコー検出器の概略図。
【図３Ａ】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【図３Ｂ】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【図３Ｃ】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【図３Ｄ】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【図４】エコー検出システム内でエコーを検出する例示的な方法のフロー図。
【図５】エコー検出システム内でエコーを検出する例示的な方法のフロー図。
【図６】本明細書に記載のシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図。
【発明を実施するための形態】
【００１７】
様々な図面における同様の参照記号は、同様の要素を示す。
図１は、エコー検出システム１００の一例である。エコー検出システム１００は、一般に、信号源１１０、オーディオ再生機器１２０、マイクロフォン１３０、およびエコー検出器２００を含む。エコー検出システム１００は、ユーザが、オーディオ再生機器１２０（例えば、スピーカ）から再生オーディオ１２２を受信し、マイクロフォン１３０が、再生オーディオ１２２の修正版をエコーとして受信する環境である。マイクロフォン１３０は、ユーザ１０によって生成された音声１２または他の可聴音のキャプチャを行うように構成され、その結果、エコーがキャプチャされ得る。例えば、リアルタイム通信（ＲＴＣ）アプリケーションを使用する第１のユーザ１０と第２のユーザとの間の会話において、第１のユーザ１０と会話する第２のユーザは、その後、エコーおよびキャプチャされた音声１２の両方を含むオーディオを受信するとともに、第２のユーザのシステム（例えば、信号源１１０）からのエコーを含む再生オーディオ１２２を第１のユーザ１０に提供し得る。この状況では、いずれかのユーザ（例えば、第１のユーザ１０または第２のユーザ）が受信したエコーは、ユーザ体験に否定的に影響する。次に、ユーザ１０は、エコーがハードウェア（例えば、スピーカおよびマイクロフォン）などの他の手段によって引き起こされ得るとしても、この否定的体験を、例えば、ＲＴＣアプリケーションと関連付け得る。これらの否定的効果に対抗するために、エコー検出システム１００は、エコー検出システム１００内で発生するエコーを理解するためのエコー検出器２００を含む。ただし、エコー検出システム１００は、一般に、例えば、オーディオ再生機器１２０およびマイクロフォン１３０に伴う音響エコーの観点から説明されるが、エコー検出システム１００は、オーディオシステム内の電気的結合効果から発生する電気エコー（例えば、ラインエコー）を決定するために等しく適用可能であり得る。
【００１８】
簡略化のために、図１は、ユーザ１０の関与する会話の一方の側を示す。ここで、信号源１１０は、一般に、再生オーディオ信号１１２を提供することができる任意のソースに及ぶ。例えば、信号源１１０は、第１のユーザ１０と会話している第２のユーザからの音声をキャプチャする第２のマイクロフォンまたは第２のマイクロフォン１３０に関連付けられているプロセッサであってもよい。
【００１９】
オーディオ再生機器１２０は、電気信号を可聴音（すなわち、オーディオ）として伝達するように構成された機器である。例えば、図１は、スピーカとしてのオーディオ再生機器１２０を示す。ここで、再生オーディオ信号１１２は、オーディオ再生機器１２０によってユーザ１０および／またはユーザ環境のための再生オーディオ１２２に変換された電気信号である。
【００２０】
マイクロフォン１３０は、一般に、可聴音を電気信号に変換する機器に及ぶ。図１のエコー検出システム１００では、マイクロフォン１３０は、ユーザ１０および／またはオーディオ再生機器１２０からのオーディオ音をマイクロフォンオーディオ信号１３２に変換する。ユーザ１０からのオーディオ音は、ユーザ１０からの音声１２または他の可聴音であってもよく、オーディオ再生機器１２０からの音は、再生オーディオ１２２の少なくとも一部に及ぶ。
【００２１】
いくつかの例では、エコー検出システム１００は、エコー低減器１４０も含む。エコー低減器１４０は、エコー検出器２００の前にエコーを低減（例えば、抑制によって）または打ち消すように構成されたエコー低減機器である。エコー低減器１４０は、入力信号（例えば、マイクロフォンオーディオ信号１３２）に基づいて、低減信号１４２を出力として生成する。低減信号１４２は、エコー低減器１４０が入力信号（例えば、マイクロフォンオーディオ信号１３２）を実際に変更するかどうかに拘わらず、エコー低減器１４０の出力信号に及ぶ。例えば、エコー低減器１４０は、いくつかのシナリオにおいて、マイクロフォンオーディオ信号１３２を変更しないことを決定し得る。エコー低減器１４０は、エコーを打ち消すまたは除去しようとし得るが、このエコー除去処理はしばしば不完全であり、ある程度の残留エコーをもたらす。これらの例では、エコー検出器２００は、エコー低減器１４０から出力された低減信号１４２内において残留エコーを検出する。言い換えると、エコー検出器２００は、エコー低減器１４０の効果を識別しまたは監視し得る。ここで、エコー低減器１４０に続いてエコー検出器２００によって検出された残留エコーは、エコー低減器１４０またはエコー低減器１４０を管理するエンティティにフィードバックを提供し得る。例えば、エコー低減器１４０またはエコー低減器１４０を管理するエンティティは、エコー検出器２００からフィードバックを受け取り、エコー低減器１４０のパラメータを更新して、エコー低減器１４０からの低減信号１４２内に残っている残留エコーの量を最適化するか、またはさらに最小化する。コー検出器２００からのフィードバックに基づくモデル（例えば、機械学習モデルまたはニューラルネットワークモデル）を実装して、例えば、低減信号１４２内の残留エコーをエコー検出システム１００内でリアルタイムに最小化することができる。
【００２２】
いくつかの例では、エコー検出器２００は、検出されたエコー（例えば、残留エコー）に関するフィードバックをユーザ１０に提供する。エコー検出器２００は、どのようにエコーを低減するかについての推奨またはヒントをユーザ１０に提供し得る。例えば、エコー検出器２００は、ヘッドセットを使用することをユーザ１０に推奨するか、または特定のハードウェアをユーザ１０に推奨することができる（例えば、より少ないエコーを生成する特定のタイプのマイクロフォンまたはスピーカ）。
【００２３】
図１の例は、エコー検出器２００が、エコー低減器１４０の存在の有無に拘わらず、エコー検出システム１００においてエコーを検出し得ることを示すために、点線の輪郭を有するエコー低減器１４０を示す。エコー低減器１４０は、エコーを除去または低減することによってオーディオ信号の品質を向上させるために使用されるハードウェアおよび／またはソフトウェアであり得る。エコー低減器１４０のいくつかの例は、音響エコーサプレッサ（ＡＥＳ）、音響エコーキャンセラ（ＡＥＣ）、および／または回線エコーキャンセラ（ＬＥＣ）のための機器である。いくつかの構成では、エコー検出器２００がエコー低減器１４０からの残留エコーを検出すると、エコー検出器２００は、エコー低減器１４０への変更を制御するか、または制御を推奨するように構成される。例えば、エコー検出器２００は、エコー低減器１４０によって検出されたエコーに基づいて、ハードウェアエコー低減器１４０からソフトウェアエコー低減器１４０へ（またはその逆）切り替えるか、または切り替えを推奨する。
【００２４】
エコー低減器１４０は、エコーの生成を防止することを意図して配置される。いくつかの構成では、エコー低減器１４０は、マイクロフォン１３０にまたはマイクロフォン１３０に隣接して配置され、マイクロフォン１３０と協調して動作し、低減信号１４２（例えば、エコー抑制信号またはエコー打ち消し信号）をマイクロフォンオーディオとして生成する。他の構成（図１に示される）では、エコー低減器１４０は、マイクロフォン１３０の下流に配置され、マイクロフォン１３０から出力されたマイクロフォンオーディオ信号１３２を入力として受信し、低減信号１４２を生成する。このようにして、エコー低減器１４０は、マイクロフォン１３０とは別に、またはマイクロフォン１３０と共に実装され得る。
【００２５】
図１Ａおよび図２Ｂは、エコー検出器２００の例である。エコー検出器２００は、信号源１１０からの再生オーディオ信号１１２を、マイクロフォン１３０でキャプチャされたオーディオのオーディオ信号（例えば、マイクロフォンオーディオ信号１３２または低減信号１４２）と比較するように構成される。この比較に基づいて、エコー検出器２００は、残留エコーの存在を決定し得る。残留エコーを決定することによって、エコー検出器２００は、エコー検出システム１００内のオーディオ構成要素の性能を評価するための統計を収集することができる。例えば、エコー検出器２００は、スピーカとマイクロフォンの組み合わせの互換性を評価する（例えば、エコー低減器１４０の性能を通じて）。他の例では、エコー検出器２００によって収集された統計は、エコー低減器１４０のハードウェアおよび／またはソフトウェアに対応するアルゴリズムを評価する。一例として、エコー検出器２００は、エコー低減器１４０のための新たなまたは更新されたソフトウェア／ファームウェアの有効性を評価することができる（例えば、残留エコーの量によって）。言い換えれば、ＲＴＣアプリケーションが進化または発展するにつれて、エコー検出器２００は、それぞれのＲＴＣアプリケーションの開発者、管理者、またはユーザ１０のためのフィードバックシステムとして機能し得る。
【００２６】
これらの例では、エコー検出器２００は、特徴抽出器３００、照合回路２１０、および分類器２２０を含む。エコー検出器２００は、マイクロフォンオーディオ信号１３２、再生オーディオ信号１１２、および／または低減信号１４２などのオーディオ信号を受信するように、および照合回路２１０を通じて、受信したオーディオ信号間に一致２１２が発生するかどうかを決定するように構成される。エコー検出器２００は、特徴抽出器３００によって生成された特徴３０２，３０２ａ〜３０２ｎ（ここで、ｎは特徴の数）を使用することによって、一致２１２が存在するかどうかを決定する。生成された特徴３０２，３０２ａ〜３０２ｎに基づいて、照合回路２１０は、オーディオ信号（例えば、マイクロフォンオーディオ信号１３２または低減信号１４２）の第１の特徴３０２，３０２ａと再生オーディオ信号１１２の第２の特徴３０２，３０２ｂとの間に一致２１２が発生するかどうかを決定する。一致２１２を用いて、分類器２２０は、一致２１２に対応するオーディオ信号がエコーである蓋然性２０２を決定するように構成される。言い換えれば、マイクロフォンオーディオ信号１３２（または低減オーディオ信号１４２）の第１の特徴３０２，３０２ａと、再生オーディオ信号１１２の第２の特徴３０２，３０２ｂとの間の一致２１２は、マイクロフォン１３２によって受信された再生オーディオ信号１１２の一部が１１２は、おそらくエコーであったことを示す。いくつかの例では、一致２１２が発生すると、分類器２２０は、一致２１２に対応するオーディオ信号がエコーである蓋然性２０２を決定するのを助けるために、第１の特徴３０２ａと第２の特徴３０２ｂとの間の遅延値２２２を決定する。これらの例では、一致２１２が発生しない場合、分類器２２０は遅延値２２２を決定するためのアクションを実行しない。例えば、単一の一致２１２は、エコーが存在すると結論付けるのに十分な証拠ではない可能性があり、遅延値２２２により、分類器２２０は、それぞれの遅延値２２２を伴う１以上の一致２１２を識別することが可能となり、エコーが存在する蓋然性の増加２０２を結論付けることができる。遅延値はまた、エコーによって引き起こされる一致２１２（例えば、同じ遅延値２２２を示す）または偶発的な一致２１２（例えば、遅延値２２２が異なる）を区別するのに役立ち得る。いくつかの例では、遅延値２２２は、エコー検出システム１００の統計分析を追加的に提供し、ユーザ１０および／またはエコー検出システム１００の管理者が、エコー検出システム１００を（例えば、エコー低減器１４０を通じて）修正または変更できるようにする。エコー検出器２００の簡略化されたバージョンでは、エコー検出器２００は分類器２２０を含まず、照合回路２１０による一致２１２が多くのさらなる分析なしにエコーを示す。
【００２７】
図２Ａおよび図２Ｂをさらに参照すると、エコー検出器２００は、第１の特徴抽出器３００，３００ａおよび第２の特徴抽出器３００，３００ｂを含む。第１の特徴抽出器３００ａは、再生オーディオ信号１１２を受信し、再生オーディオ信号１１２に対応する特徴３０２ａ１−ｎ（再生特徴３０２ａ１−ｎとも呼ばれる）を生成し、第２の特徴抽出器３００ｂは、マイクロフォンオーディオ信号１３２（または低減信号１４２）を受信し、マイクロフォンオーディオ信号１３２および／または低減信号１４２に対応する特徴３０２ｂ１−ｎ（マイクロフォン特徴３０２ｂ１−ｎとも呼ばれる）を生成する。点線で示すように、第１の抽出器３００ａおよび第２の抽出器３００ｂは、単一の特徴抽出器３００であり得る。他の構成では、エコー検出器２００は、エコー検出システム１００のためのエコー検出をリアルタイムに提供するために特徴３０２を同時に処理する任意の数の特徴抽出器３００を含む。
【００２８】
図２Ｂは、分類器２２０がエコーしきい値２２４を含む点を除けば、図２Ａと同様である。ここで、分類器２２０は、第１の特徴３０２ａと第２の特徴３０２ｂとの間の遅延値２２２がエコーしきい値２２４を満たすかどうかをさらに決定する。この意味で、エコーしきい値２２４は、複数の一致２１２が同一または類似の遅延値２２２を示す場合にエコーしきい値２２４がエコーを示すように、それぞれのエコーを予測する。例えば、エコーしきい値２２４は、カウントが、一致２１２の遅延値２２２がそれぞれのエコーに対応することを確実に予測する前に遅延値２２２が存在し得る最小回数になるような遅延値２２２のカウントを表す。言い換えると、遅延値２２２のカウントがエコーしきい値２２４を満たす場合（例えば、しきい値以上）、カウントは、それぞれのエコーを予測するために遅延値２２２が存在し得る最小回数を満たす。いくつかの実装形態では、エコーしきい値２２４は、最も頻度の高い遅延値に対応するいくつかの最近の一致特徴３０２である。ここで、最も頻度の高い遅延値は、一致２１２に対応する遅延値２２２を追跡する遅延ヒストグラム２２６によって示され得る。いくつかの構成では、エコーしきい値２２４は、設計された信頼区間を証明するために事前に決定される。他の構成では、エコーしきい値２２４は、遅延値２２２または遅延ヒストグラム２２６を追跡するために動的である。
【００２９】
図２Ｂの例は、例えば、システム１００の構成要素間の通信ラグなどの許容可能な時間遅延量を有するエコー検出システム１００を示す。システム１００が許容可能な時間遅延量を有する場合、エコーしきい値２２４は、システム１００を有効にして、エコーの誤った表示を防ぐ。例えば、遅延値２２２がエコーしきい値２２４を満たさない場合、エコー検出器２００は、一致２１２をエコーとして示さない。それにより、分類器２２０は、エコー検出器２００がエコーを示す前に、エコーしきい値２２４を満たすために遅延値２２２を必要とし得る。いくつかの例では、エコーしきい値２２４は、エコーの存在に関連付けられている遅延値２２２を識別する履歴傾向またはデータ（例えば、機械学習モデルまたはニューラルネットワークモデルなどの予測モデル）に基づくことができる。
【００３０】
追加的または代替的に、照合回路２１０は、特徴データベース２１０を含む。特徴データベース２１０は、照合回路２１０のために特徴抽出器３００によって生成された特徴３０２，３０２１−ｎを記憶する。特徴データベース２１４を用いて、特徴抽出器３００によって生成された記憶された特徴３０２，３０２１−ｎは（例えば、再生オーディオ信号１１２から）、一致２１２について照合回路２１０を通じて評価され得る。いくつかの例では、特徴データベース２１４は、システム１００内の遅延を説明するための再生オーディオ信号１１２に対応する有限量の特徴３０２１−ｎのみ（例えば、再生オーディオ信号１１２の最近の履歴）を記憶する（例えば、特徴データベース２１４への点線の矢印によって図２Ａおよび２Ｂ図に示されるように）。すなわち、エコー検出器２００は、オーディオ再生デバイス１２０が再生オーディオ信号１１２から再生オーディオ１２２を生成する前に、再生オーディオ信号１１２を受信し得る。これが発生した場合、特徴データベース２１４は、再生オーディオ信号１１２からの十分な数の特徴３０２１−ｎを記憶して、マイクロフォンオーディオ信号１３２（または低減信号１４２）をリアルタイムに（例えば、マイクロフォン１３０がマイクロフォンオーディオ信号１３２を生成するにつれ）比較するように構成され得る。例えば、特徴抽出器３００が再生オーディオ信号１１２の特徴３０２ａを生成するときと、特徴抽出器３００がマイクロフォンオーディオ信号１３２（または低減信号１４２）の特徴３０２ｂを生成するときとの間に１００ミリ秒の遅延がある場合、特徴データベース２１４は、再生オーディオ信号１１２の特徴３０２ａ１−ｎの少なくとも２秒を記憶する。エコー検出器２００は、特徴データベース２１４を含み得るが、特徴データベース２１４は、インターネットアクセス（例えば、サーバデータベースとしての機能）を必要としない。したがって、エコー検出器２００は、動作するためにインターネット接続を必要とせず、それにより、インターネット接続なしで機能し得る。
【００３１】
他の例では、特徴データベース２１４は、再生オーディオ信号１１２の最近の特徴に対応する有限量の特徴３０２１−ｎのみを記憶するように構成される。言い換えれば、特徴データベース２１４は、最近の特徴収集物であるように構成され、最近とは、最大遅延より古い特徴が破棄される（例えば、先入れ先出し方式で）という事実を意味する。いくつかの実装形態では、エコー検出器２００は、エコー検出器２００におけるストレージ要件を最小化または除去するために、一致２１２に一致するおよび／または一致しない特徴３０２を削除する。
【００３２】
図３Ａ〜図３Ｄは、特徴抽出器３００の例である。特徴抽出器３００は、再生オーディオ信号１１２、マイクロフォンオーディオ信号１３２、または低減信号１４２（すなわち、まとめて「オーディオ信号」と呼ばれる）を受信し、受信したオーディオ信号に対応する特徴３０２を生成するように構成される。特徴抽出器３００は、ダウンサンプラ３１０、信号処理部３２０、ピーク検出器３３０、および特徴生成器３４０を含む。
【００３３】
ダウンサンプラ３１０は、オーディオ信号のサンプリングレートまたはサンプルサイズを下げることによって、受信したオーディオ信号を変更するように構成される。言い換えれば、ダウンサンプラ３１０は、受信したオーディオ信号からダウンサンプリング済み信号３１２を生成する。再生オーディオ信号１１２、マイクロフォンオーディオ信号１３２、および低減信号１４２のそれぞれは、ダウンサンプラ３１０によってダウンサンプリングされ得る。ダウンサンプリングは、帯域幅またはオーディオ形式サイズに関連する制限に対応するために、オーディオ信号に関連付けられているサンプルの量をしばしば減らす。ここで、例えば、ダウンサンプラ３１０は、受信したオーディオ信号を８ｋＨｚに低減する。任意選択で、特徴抽出器３００がサンプリングサイズおよび／またはサンプリングレートによって制約されない場合、特徴抽出器３００は、ダウンサンプラ３１０をバイパスするかまたはダウンサンプラ３１０なしで動作し得る。他の例では、ダウンサンプラ３１０は、特徴抽出器３００が特徴３０２，３０２１−ｎについて一定数を維持することを可能にする。
【００３４】
図３Ｂに示されるように、信号処理部３２０は、ダウンサンプリング済み信号３１２を受信し、信号処理ルーチン３２２に従って、ダウンサンプリング済み信号３１２を周波数表現３２４に処理することに進む。周波数表現３２４は、オーディオ信号（例えば、ダウンサンプリング済み信号３１２）に関連付けられている周波数のスペクトルの表現である。周波数表現３２４のいくつかの例は、スペクトログラム、ソノグラフ、声紋、音声のスペクトラム、ウォーターフォールなどである。図３Ｂは、オーディオ信号の周波数表現３２４を生成するためのルーチン３２２を示すものであるが、スペクトログラムなどの周波数表現３２４は、光学分光計または一連のバンドパスフィルタなどの他の方法および／またはシステムによって生成され得る。
【００３５】
図３Ｂに示されるように、信号処理部３２０は、信号処理ルーチン３２２を実行して、一連のステップ３２２ａ〜３２２ｄによって周波数表現３２４を生成する。ステップ３２２ａにおいて、信号処理部３２０は、受信したオーディオ信号１１２、１３２、１４２、３１２を特定の数のサンプルのブロックに分割する。例えば、多くの場合、ブロックの数は２の累乗（例えば、２５６サンプル）である。いくつかの構成では、各ブロックが前のブロックとの重なりの割合を含むように、ブロックの重なりの割合（例えば、５０％の重なり）を有する。ステップ３２２ｂにおいて、各ブロック内のサンプルは、窓関数によって乗算される。例えば、ハニング関数またはハミングウィンドウ関数などの窓関数を使用すると、周波数変換により周波数の範囲に亘ってゼロ以外の値を生成できる。各ブロックに窓関数を乗算して、ステップ３２２ｃは、窓関数を適用したブロックサンプルを変換する（例えば、高速フーリエ変換（ＦＦＴ）、離散フーリエ変換（ＤＦＴ）、離散コサイン変換（ＤＣＴ）、ウェーブレット変換などによって）。ここで、変換により、ブロックサンプルの複素数のセットが生成される。ステップ３２２ｄにおいて、信号処理部３２０は、周波数表現３２４の係数３２６を生成する。いくつかの例では、信号処理部３２０は、ステップ３２２ｃにおける変換により生じた複素数のセットの大きさの対数関数によって係数３２６を生成する。信号処理部３２０は、受信したオーディオ信号１１２，１３２，１４２，３１２に対応するサンプルの各ブロックに対して信号処理方法ステップ３２２ａ〜３２２ｄを繰り返すように構成される。追加的にまたは代替的に、信号処理部３２０は、特徴抽出器３００がオーディオ信号１１２，１３２，１４２，３１２を受信するにつれ周波数表現３２４をリアルタイムに生成するように構成される。
【００３６】
特徴抽出器３００のピーク検出器３３０は、図３Ｃに示されるように、信号処理部３２０からの周波数表現３２４の中の出力３３２としてピークＰを識別する。いくつかの例では、ピーク検出器３３０は、周波数表現３２４の係数３２６に基づいてピークＰを識別する。いくつかの例では、ピーク検出器３３０は、は、周波数表現３２４を形成するために信号処理部３２０によって生成された各周波数ビンのためのしきい値３３４を備える。例えば、ピーク検出器３３０は、各周波数ビンに対応するしきい値３３４を記憶するためのしきい値データベースを含む。ピーク検出器３３０は、係数３２６に対応する周波数ビンのそれぞれのしきい値３３４を満たす周波数表現３２４内の係数３２６に遭遇すると、ピーク検出器３３０は、遭遇した係数３２６を、周波数表現３２４内のピークＰとして識別する。例えば、図３Ｃは、周波数表現３２４のブロックに関連する係数３２６からピークＰ１，Ｐ２，Ｐ３．．．Ｐｎを識別するピーク検出器３３０を示す。
【００３７】
いくつかの実装形態では、ピーク検出器３３０は反復的に動作する。言い換えれば、ピーク検出器３３０がピークＰを識別するとき、識別されたピークＰに関連する周波数ビンに対応するしきい値３３４が増加する。いくつかの例では、ピーク検出器３３０がピークＰを識別するとき、近くの周波数ビンのしきい値３３４も増加する。しきい値３３４を増加させるこのアプローチは、ピーク検出器３３０がピークＰを正確に識別する確実性を提供するのに役立ち得る。追加的にまたは代替的に、ピーク検出器３３０は、新しいブロックを処理するとき、以前に増加したしきい値３３４は、減少するか、または元のしきい値３３４に戻ることができる。
【００３８】
いくつかの実装形態では、ピーク検出器３３０は、時間的に進む方向および戻る方向の両方でブロックの周波数表現３２４をスキャンし得る。ピーク検出器３３０が進む方向または戻る方向にスキャンするとき、ピーク検出器３３０は、ピーク検出器３３０のバッファリングの手段としてオーディオ信号にブロックを追加することができる。
【００３９】
図３Ｄを参照すると、特徴抽出器３００の特徴生成器３４０は、特徴３０２を生成する。ここで、特徴生成器３４０は、ピーク検出器３３０によって周波数表現３２４から識別されたピークＰに基づいて特徴３０２を生成する。各特徴３０２は、周波数表現３２４のいくつかの周波数ｆおよびいくつかの周波数ｆに関連付けられている時間ｔに対応し得る。ここで、説明を容易にするために、各特徴３０２は、周波数表現３２４の一対の周波数のｆ１，ｆ２、および一対の周波数のｆ１，ｆ２の間の時間ｔに対応する。例えば、一対の周波数のｆ１，ｆ２は、周波数表現３２４の第１のピーク周波数Ｐ１，ｆ１および第２のピーク周波数Ｐ２，ｆ２に対応する。特徴３０２を生成するために、特徴生成器３４０は、時間および周波数が近い一対のピークＰ１，Ｐ２を識別しようとする。例えば、周波数表現３２４の第１のピーク周波数Ｐ１，ｆ１および第２のピーク周波数Ｐ２，ｆ２は、互いにしきい値周波数差異内の隣接するピークであり得る。
【００４０】
いくつかの実装形態では、特徴生成器３４０は、参照周波数３４２（例えば、一対の周波数のｆ１，ｆ２の第１の周波数ｆ１）および標的ゾーン３４４を識別する。標的ゾーン３４４は、参照周波数３４２からのしきい値周波数差分を表す。言い換えれば、標的ゾーン３４４は、特徴３０２を構成する一対の周波数ｆ１，ｆ２の第２の周波数ｆ２を、参照周波数３４２の周波数公差内に制約する。一対の周波数ｆ１，ｆ２の第２の周波数ｆ２を制約するために、標的ゾーン３４４は、時間間隔および周波数間隔に亘って広がる。いくつかの例では、標的ゾーン３４４は、エコー検出器２００の開発者または管理者によって設計上の変数として構成される。他の例では、特徴生成器３４０は、周波数表現３２４の係数３２６に基づいて標的ゾーン３４４を決定する。
【００４１】
いくつかの実装形態では、標的ゾーン３４４は、特徴生成器３４０が、３つの値を有する特徴３０２を生成することを可能にし、３つの値とは、参照周波数３４２、標的ゾーン３４４内の第２の周波数ｆ２、および参照周波数３４２と第２の周波数ｆ２との間の時間差ｔである。いくつかの実装形態では、これらの３つの値は限られたビット数で記述できる。例えば、周波数３４２，ｆ２はそれぞれ７ビットを使用し、時間差ｔは５ビットを使用する。このように、この例では、それぞれの特徴３０２は、単一の３２ビットの整数によって表すことができる。
【００４２】
いくつかの例では、標的ゾーン３４４は、あまりにも多くのピークＰ１―ｎを含む。これらの例では、標的ゾーン３４４は、所与の標的ゾーン３４４内で生成され得るいくつかの特徴３０２の最大値を識別する追加のパラメータを含む。例えば、追加のパラメータは、特徴生成器３４０が、ピークが最も高い上位Ｎ個のピークに対する特徴３０２のみを生成することを識別し、ここで、ピークＰの最高値は、特定の時間における特定の周波数範囲のエネルギー量に対応する。説明のために、Ｎ＝２の場合、図３Ｄでは、特徴生成器３４０は、参照周波数３４２（例えば、参照周波数の高さ）および第３のピークＰ３に基づいて第１の特徴３０２、ならびに基準周波数３４２および第３のピークＰ１に基づいて第２の特徴３０２を生成する。この例では、特徴生成器３４０は、Ｎ＝２および第２のピークＰ２が第１のピークＰ１および第３のピークＰ３の両方よりも小さいため、第２のピークＰ２に対して第３の特徴３０２を生成しない。
【００４３】
図２Ａおよび２Ｂを参照すると、照合回路２１０は、特徴抽出器３００から特徴３０２を受信する。いくつかの実装形態では、特徴３０２のそれぞれは、一対の周波数ｆ１，ｆ２および一対の周波数の間の時間差ｔの表現としてビットの整数に対応する。特徴３０２が整数である場合、照合回路２１０は、マイクロフォンオーディオ信号１３２（すなわち、マイクロフォン特徴３０２ｂ）からの特徴３０２ｂの整数と、再生オーディオ信号１１２（すなわち、再生特徴３０２ａ）からの特徴３０２ａとが等しいかどうかを比較する。いくつかの例では、マイクロフォン１３０がオーディオをキャプチャするにつれ、マイク特徴３０２ｂが照合回路２１０によって再生特徴３０２ａ１−ｎのセットとリアルタイムに比較されるように、特徴データベース２１４は再生特徴３０２ａ１−ｎのセットを記憶する。
【００４４】
ここで、再生機能３０２ａ１―ｎのセットは、所定の時間ブロック（例えば、２秒）に亘って広がることができる。再生特徴３０２ａ１―ｎのセットと比較することによって、エコー検出器２００は、システム１００がシステム１００の構成要素（例えば、スピーカ１２０とマイクロフォン１３０）間の通信遅延またはラグを経験し得る場合でさえ、一致２１２を識別し得る。これらの例では、第１のセットの再生特徴３０２ａ１―ｎ内に一致２１２が発生しない場合、第２のセットの再生特徴３０２ａ１―ｎが生成され、および／または第２のマイクロフォン特徴３０２ｂと比較するために特徴データベース２１４から取り出される。いくつかの構成では、照合回路２１０は、ハッシュマップ、循環バッファ、またはこれらの両方の任意の組み合わせを使用して、再生機能３０２ａ１―ｎのセットをマイクロフォン機能３０２ｂと効率的に比較する。
【００４５】
図２Ａはさらに、照合回路２１０が再生オーディオ信号１１２のある部分とマイクロフォンオーディオ信号１３２との間の一致２１２を識別する都度、分類器２２０が遅延ヒストグラム２２６を更新する例を示す。一般的に言えば、ヒストグラムは、ビンまたは間隔内の変数の頻度を示す図または表現である。遅延ヒストグラム２２６を用いて、分類器２２０は、一致するマイクロフォン特徴３０２ｂと再生特徴３０２ａとの間の時間差に対応する遅延値２２２を入力することができる。
【００４６】
遅延ヒストグラム２２６は、エコー検出器２００が時間的に一貫したエコーを識別することを可能にし得る。例えば、遅延ヒストグラム２２６は、エコー検出器２００が、機械学習などのヒューリスティックまたはデータ駆動型の取り組みを使用して、時間的に一貫したエコーを識別することを可能にし得る。いくつかの構成では、分類器２２０は、エコー検出器２００がエコーを検出できない時間間隔ごとに、遅延ヒストグラム２２６の各ビンを漸次的に減少させる。エコー検出器２００は、システム１００および／またはエコー低減器１４０にフィードバックを提供することができるので、遅延ヒストグラム２２６は、時間の経過とともに、そのフィードバックの有効性を測定することができる。
【００４７】
所与の時間間隔においてエコーが認識されなかったときに遅延ヒストグラム２２６の各ビンを漸進的に減少させることによって、遅延ヒストグラム２２６は、エコー低減における時間の経過とともに増大する有効性（例えば、または逆に増大する非有効性）を表すことができる。各ビンを漸進的に減少させる時間間隔は、エコー検出器２００の設計パラメータ、またはエコー検出器２００の管理者またはユーザ１０によって制御される調整可能なパラメータであり得る。
【００４８】
特徴抽出器３００、照合回路２１０、および分類器２２０の機能が組み合わされ、さらに分離され、分散され、または交換され得る場合、エコー検出器２００の異なる構成が使用され得る。さらに、エコー検出器２００は、単一のデバイスに実装されてもよく、複数のデバイスに跨って分散されてもよい。
【００４９】
図４は、エコーを決定するための例示的な方法４００のフローチャートである。フローチャートは、マイクロフォンオーディオ信号１３２および再生オーディオ信号１１２を受信することによって動作４０２で開始する。動作４０４において、方法４００は、マイクロフォンオーディオ信号１３２の周波数表現３２４および再生オーディオ信号１１２の周波数表現３２４を決定することを含む。動作４０６において、方法４００は、各周波数表現３２４について、周波数表現３２４に基づいて特徴３０２を決定することをさらに含む。各特徴３０２は、周波数表現３２４の一対の周波数ｆ１，ｆ２および一対の周波数ｆ１，ｆ２の間の時間ｔに対応する。動作４０８において、方法４００はまた、マイクロフォンオーディオ信号１３２の周波数表現３２４に基づく第１の特徴３０２ｂと、再生オーディオ信号１１２の周波数表現３２４に基づく第２の特徴３０２ａとの間に一致２１２が発生することを決定することを含む。動作４１０において、方法４００は、第１の特徴３０２ｂと第２の特徴３０２ａとの間の遅延値２２２がマイクロフォンオーディオ信号１３２内のエコーに対応することを決定することをさらに含む。例えば、方法４００は、遅延ヒストグラム２２６に関して遅延値２２２を決定し得る
図５は、特徴３０２のセットに基づいてエコーをリアルタイムに決定するための例示的な方法５００のフローチャートである。動作５０２において、方法５００は、マイクロフォンオーディオ信号１３２および再生オーディオ信号１１２を受信することを含む。動作５０２において、方法５００はさらに、再生オーディオ信号１１２から再生特徴３０２ａ１―ｎの第１のセットを決定することを含む。ここで、再生特徴３０２ａ１―ｎの第１のセットは、再生オーディオ信号１１２からの所定の時間ブロックを表す。各再生特徴３０２ａは、一対の再生オーディオ信号周波数ｆ１，ｆ２、および一対の再生オーディオ信号周波数ｆ１，ｆ２の間の時間ｔに対応する。動作５０６において、方法５００はまた、受信したマイクロフォンオーディオ信号１３２に対応するマイクロフォン特徴３０２ｂ１―ｎを決定することを含む。各マイクロフォン特徴３０２ｂは、一対のマイクロフォンオーディオ信号周波数ｆ１，ｆ２および一対のマイクロフォンオーディオ信号周波数周波数ｆ１，ｆ２の間の時間ｔに対応する。  
【００５０】
動作５０８において、方法５００は、再生特徴３０２ａ１―ｎの第１のセットの再生特徴３０２ａと第１のマイクロフォン特徴３０２ｂとの間に一致２１２が発生するかどうかを決定することを含む。動作５１０において、一致２１２が発生しない場合、方法５００は、以下の機能を実行する。方法５００は、再生オーディオ信号１１２に基づいて、再生オーディオ特徴３０２ａ１―ｎの第２のセットを決定する。この場合、再生特徴３０２ａ１―ｎの第２のセットは、再生オーディオ信号１１２からの再生特徴３０２ａ１―ｎの第１のセットに隣接する所定の時間ブロックを表す。方法５００は、再生特徴３０２ａ１―ｎの第２のセットからのそれぞれの再生特徴３０２ａが第２のマイクロフォン特徴３０２ｂと一致することを決定する。方法５００はさらに、一致した第２のマイクロフォン特徴３０２ｂがマイクロフォンオーディオ信号１３２内のエコーであることを識別する。
【００５１】
図６は、この文書で説明されているシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイス６００の概略図である。例えば、コンピューティングデバイス６００は、エコー検出器２００および／またはエコー低減器１４０、ならびにエコー検出器２００および／またはエコー低減器１４０に関連する方法を実装するために使用され得る。コンピューティングデバイス６００は、携帯電話（例：スマートフォン）、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを意図している。ここに示されている構成要素、それらの接続と関係、およびそれらの機能は、例示のみを目的としており、本書で説明および／または主張されている発明の実装を制限することを意味するものではない。
【００５２】
コンピューティングデバイス６００は、プロセッサ６１０（例えば、データ処理ハードウェア）、メモリ６２０、ストレージデバイス６３０、メモリ６２０に接続する高速インタフェース／コントローラ６４０、および高速拡張ポート６５０、および低速バス６７０およびストレージデバイス６３０に接続する低速インタフェース／コントローラ６６０を含む。構成要素６１０，６２０，６３０，６４０，６５０，および６６０のそれぞれは、様々なバスを使用して相互接続され、共通のマザーボードに、または必要に応じて他の方法で取り付けられ得る。プロセッサ６１０は、メモリ６２０またはストレージデバイス６３０に記憶された命令を含む、コンピューティングデバイス６００内で実行するための命令を処理して、高速インタフェース６４０に結合されたディスプレイ６８０などの外部入力／出力デバイス上のグラフィカルユーザインタフェース（ＧＵＩ）のグラフィカル情報を表示することができる。他の実装形態では、複数のプロセッサおよび／または複数のバスが、必要に応じて、複数のメモリおよび複数のメモリのタイプとともに使用され得る。また、複数のコンピューティングデバイス６００を接続することができ、各デバイスは、必要な操作の一部を提供する（例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）。
【００５３】
メモリ６２０（例えば、メモリハードウェア）は、情報をコンピューティングデバイス６００内に非一時的に記憶する。メモリ６２０は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであり得る。非一時的メモリ６２０は、コンピューティングデバイス６００によって使用するために一時的または永続的にプログラム（例えば、命令のシーケンス）またはデータ（例えば、プログラム状態情報）を記憶するために使用される物理デバイスであり得る。不揮発性メモリの例は、これらに限定されるものではないが、フラッシュメモリおよび読み取り専用メモリ（ＲＯＭ）／プログラム可能な読み取り専用メモリ（ＰＲＯＭ）／消去可能なプログラム可能な読み取り専用メモリ（ＥＰＲＯＭ）／電子的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）（例えば、通常、ブートプログラムなどのファームウェアに使用される）を含む。揮発性メモリの例は、これらに限定されるものではないが、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、相変化メモリ（ＰＣＭ）、およびディスクまたはテープを含む。
【００５４】
ストレージデバイス６３０は、コンピューティングデバイス６００に大容量ストレージを提供することができる。いくつかの実装形態では、ストレージデバイス６３０は、コンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス６３０は、ストレージエリアネットワークまたはその他の構成のデバイスを含む、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、またはデバイスを含むデバイスのアレイであり得る。さらなる実装形態では、コンピュータプログラム製品は、情報キャリアに具体的に具体化される。コンピュータプログラム製品は、実行されると、上記のような１つまたは複数の方法を実行する命令を含む。情報キャリアは、メモリ６２０、ストレージデバイス６３０、またはプロセッサ６１０上のメモリなどの、コンピュータまたは機械で読み取り可能な媒体である。
【００５５】
高速コントローラ６４０は、コンピューティングデバイス６００の帯域幅を大量に消費する動作を管理し、一方、低速コントローラ６６０は、帯域幅を大量に消費する動作を管理する。このような役割の割り当ては例示的なものに過ぎない。いくつかの実装形態では、高速コントローラ６４０は、メモリ６２０、ディスプレイ６８０（例えば、グラフィックプロセッサまたは加速器を通じて）、および様々な拡張カード（図示せず）を受け入れることができる高速拡張ポート６５０に結合される。いくつかの実装形態では、低速コントローラ６６０は、ストレージデバイス６３０および低速拡張ポート６９０に結合される。様々な通信ポート（例えば、ＵＳＢ、ブルートゥース（登録商標）、イーサネット（登録商標）、無線イーサネット）を含み得る低速拡張ポート６９０は、キーボード、ポインティングデバイス、スキャナ、またはスイッチまたはルータなどの、例えばネットワークアダプタを通じたネットワークデバイスなどの１つまたは複数の入力／出力デバイスに結合され得る。
【００５６】
コンピューティングデバイス６００は、図に示されるように、いくつかの異なる形態で実装され得る。例えば、それは、標準サーバ６００ａとして、またはそのようなサーバ６００ａのグループ内で複数回、ラップトップコンピュータ６００ｂとして、またはラックサーバシステム６００ｃの一部として実装され得る。
【００５７】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および／または光回路、集積回路、専用に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組み合わせで実現することができる。これらの様々な実装は、データおよび命令を送受信するためにストレージシステム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスに結合された、専用または汎用であり得る少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能および／または解釈可能な１つ以上のコンピュータプログラムにおける実装を含み得る。
【００５８】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている）は、プログラム可能なプロセッサのための機械命令を含み、高レベルの手続き型および／またはオブジェクト指向プログラミング言語で、および／またはアセンブラ／機械言語で実装することができる。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、プログラム可能なプロセッサに機械命令および／またはデータを提供するために使用される、任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置および／またはデバイス（例えば、磁気ディスク、光ディスク、メモリ、プログラマブル機械命令および／またはデータをプログラマブルプロセッサに提供するために使用されるロジックデバイス（ＰＬＤ））に及び、これには、機械命令を機械可読信号として受信する機械可読媒体が含まれる。「機械可読信号」という用語は、プログラム可能なプロセッサに機械命令および／またはデータを提供するために使用される任意の信号に及ぶ。
【００５９】
本明細書に記載されている処理および論理フローは、１つまたは複数のコンピュータプログラムを実行して、入力データを操作し、出力を生成することによって機能を実行する１つまたは複数のプログラム可能なプロセッサによって実行することができる。処理および論理フローは、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）やＡＳＩＣ（特定用途向け集積回路）などの特定用途のロジック回路によっても実行できる。コンピュータプログラムの実行に適したプロセッサには、例として、汎用および専用目的の両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の１つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの重要な要素は、命令を実行するためのプロセッサ、および命令とデータを記憶するための１つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための１つまたは複数の大容量ストレージ、例えば、磁気、光磁気ディスク、または光ディスクを含むか、またはこれらからデータを受信するか、またはこれらにデータを転送するように、あるいはその両方を行うように結合される。しかしながら、コンピュータにそのようなデバイスを有する必要はない。コンピュータプログラムの命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス；例えば、内蔵ハードディスクまたは取り出し可能ディスクなどの磁気ディスク；光磁気ディスク；およびＣＤＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む、あらゆる形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサとメモリは、特定用途のロジック回路によって補完または取り入れられてもよい。
【００６０】
ユーザとの相互作用を提供するために、本開示の１つまたは複数の態様は、ユーザに情報を表示するためのディスプレイデバイス、例えば、ＣＲＴ（陰極線管）、ＬＤＣ（液晶ディスプレイ）モニタ、またはタッチスクリーン、および、これらにより、ユーザがコンピュータに入力を提供できる任意選択によるキーボードとポインティングデバイス（マウスやトラックボールなど）を有するコンピュータ上に実装され得る。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形態の感覚的フィードバックであり得る。また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、ユーザが使用するデバイスとの間で文書を送受信することにより、ユーザと対話できる。例えば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信する。
【００６１】
いくつかの実装が説明された。それにも拘わらず、本開示の精神および範囲から逸脱することなく、様々な修正を行うことができることが理解されるであろう。したがって、他の実装は、以下の特許請求の範囲内にある。
【図１】
2021530919.tif 000003
【図２Ａ】
2021530919.tif 000004
【図２Ｂ】
2021530919.tif 000005
【図３Ａ】
2021530919.tif 000006
【図３Ｂ】
2021530919.tif 000007
【図３Ｃ】
2021530919.tif 000008
【図３Ｄ】
2021530919.tif 000009
【図４】
2021530919.tif 000010
【図５】
2021530919.tif 000011
【図６】
2021530919.tif 000012
【国際調査報告】
2021530919.tif 000013
2021530919.tif 000014