(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-15
(45)【発行日】2024-03-26
(54)【発明の名称】エコー検出
(51)【国際特許分類】
H04R 3/02 20060101AFI20240318BHJP
G10L 21/0208 20130101ALI20240318BHJP
【FI】
H04R3/02
G10L21/0208 100Z
(21)【出願番号】P 2022163623
(22)【出願日】2022-10-12
(62)【分割の表示】P 2021502539の分割
【原出願日】2019-07-17
【審査請求日】2022-10-12
(32)【優先日】2018-07-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ロイコ、アレクサンドル
(72)【発明者】
【氏名】ワイヤーブランド、マーカス
(72)【発明者】
【氏名】ザックリソン、サミュエル マーティン
(72)【発明者】
【氏名】クレウセン、イボ
(72)【発明者】
【氏名】セバスチャン ウルベルグ、マンス グスタフ
(72)【発明者】
【氏名】ヨハンソン、ダニエル
(72)【発明者】
【氏名】バッツィカ、アレッシオ
【審査官】堀 洋介
(56)【参考文献】
【文献】特許第7159438(JP,B2)
【文献】米国特許第09912373(US,B1)
【文献】特開平10-145888(JP,A)
【文献】特開2016-076860(JP,A)
【文献】特開2006-352450(JP,A)
【文献】特開2010-011270(JP,A)
【文献】特開2016-152455(JP,A)
【文献】特開2013-012841(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04R 3/00- 3/14
H04B 3/20- 3/23
G10L 21/0208
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実装されるエコー検出の方法であって、データ処理ハードウェアによって実行されたとき、前記データ処理ハードウェアに、
マイクロフォンオーディオ信号に対応する再生オーディオ信号
の周波数表現に基づいて特徴を決定する工程であって、各特徴は、前記周波数表現の一対の周波数および前記一対の周波数の間の時間に対応する、前記決定する工程と、
前記マイクロフォンオーディオ信号の周波数表現に基づく第1の特徴と、前記再生オーディオ信号の前記周波数表現に基づく第2の特徴との間に一致が発生することを決定する工程と、
前記第1の特徴と前記第2の特徴との間の遅延値が、人が知覚可能なそれぞれのエコーを予測するエコーしきい値を満たす場合、前記マイクロフォンオーディオ信号内にエコーが存在すると決定する工程と、を含む動作を実行させる方法。
【請求項2】
前記再生オーディオ信号の前記周波数表現に基づいて前記特徴を決定する工程の前に、受信した前記再生オーディオ信号の前記周波数表現を決定する工程をさらに含む、請求項1に記載の方法。
【請求項3】
前記エコーしきい値は、複数の一致が同一または類似の遅延値を示す場合について、前記マイクロフォンオーディオ信号内のエコーに対応する、請求項1
または2に記載の方法。
【請求項4】
前記一対の周波数が前記周波数表現の第1のピーク周波数および第2のピーク周波数に対応し、前記第2のピーク周波数は、前記の第1のピーク周波数に隣接し、前記第1のピーク周波数からしきい値周波数差異内に存在し、前記しきい値周波数差異は、前記第1のピーク周波数からの周波数公差に対応する、請求項1
または2に記載の方法。
【請求項5】
前記マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信する工程をさらに含み、前記エコー低減器は、前記マイクロフォンオーディオ信号と前記再生オーディオ信号との間のエコーを低減するように構成される、請求項1
または2に記載の方法。
【請求項6】
受信した前記マイクロフォンオーディオ信号および受信した前記再生オーディオ信号の各々がダウンサンプリングされる、請求項5に記載の方法。
【請求項7】
前記マイクロフォンオーディオ信号および前記再生オーディオ信号のうちの少なくとも一方の周波数表現は、
前記オーディオ信号をサンプルのブロックに分割することと、
サンプルのブロックの各々の周波数変換に基づいて前記周波数表現の係数を決定することと、によって決定される、請求項1
または2に記載の方法。
【請求項8】
前記一対の周波数は、しきい値特徴周波数を満たす各特徴に対応する、請求項1
または2に記載の方法。
【請求項9】
前記マイクロフォンオーディオ信号内の前記エコーは、リアルタイムに同時期に発生する、請求項1
または2に記載の方法。
【請求項10】
前記マイクロフォンオーディオ信号内の前記エコーが存在すると決定することに基づいて、前記再生オーディオ信号を除去する工程をさらに含む、請求項1
または2に記載の方法。
【請求項11】
データ処理ハードウェアと、前記データ処理ハードウェアと通信するメモリハードウェアと、を備えるエコー検出のシステムであって、前記メモリハードウェアは、前記データ処理ハードウェア上で実行されるとき、前記データ処理ハードウェアに動作を行わせる命令を記憶しており、前記動作は、
マイクロフォンオーディオ信号に対応する再生オーディオ信号
の周波数表現に基づいて特徴を決定することであって、各特徴は、前記周波数表現の一対の周波数および前記一対の周波数の間の時間に対応する、前記決定することと、
前記マイクロフォンオーディオ信号の周波数表現に基づく第1の特徴と、前記再生オーディオ信号の前記周波数表現に基づく第2の特徴との間に一致が発生することを決定することと、
前記第1の特徴と前記第2の特徴との間の遅延値が、人が知覚可能なそれぞれのエコーを予測するエコーしきい値を満たす場合、前記マイクロフォンオーディオ信号内にエコーが存在すると決定することと、を含む、システム。
【請求項12】
前記動作は、前記再生オーディオ信号の前記周波数表現に基づいて前記特徴を決定することの前に、受信した前記再生オーディオ信号の前記周波数表現を決定することをさらに含む、請求項11に記載のシステム。
【請求項13】
前記エコーしきい値は、複数の一致が同一または類似の遅延値を示す場合について、前記マイクロフォンオーディオ信号内のエコーに対応する、請求項11
または12に記載のシステム。
【請求項14】
前記一対の周波数が前記周波数表現の第1のピーク周波数および第2のピーク周波数に対応し、前記第2のピーク周波数は、前記の第1のピーク周波数に隣接し、前記第1のピーク周波数からしきい値周波数差異内に存在し、前記しきい値周波数差異は、前記第1のピーク周波数からの周波数公差に対応する、請求項11
または12に記載のシステム。
【請求項15】
前記動作は、前記マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信することをさらに含み、前記エコー低減器は、前記マイクロフォンオーディオ信号と前記再生オーディオ信号との間のエコーを低減するように構成される、請求項11
または12に記載のシステム。
【請求項16】
受信した前記マイクロフォンオーディオ信号および受信した前記再生オーディオ信号の各々がダウンサンプリングされる、請求項15に記載のシステム。
【請求項17】
前記マイクロフォンオーディオ信号および前記再生オーディオ信号のうちの少なくとも一方の周波数表現は、
前記オーディオ信号をサンプルのブロックに分割することと、
サンプルのブロックの各々の周波数変換に基づいて前記周波数表現の係数を決定することと、によって決定される、請求項11
または12に記載のシステム。
【請求項18】
前記一対の周波数は、しきい値特徴周波数を満たす各特徴に対応する、請求項11
または12に記載のシステム。
【請求項19】
前記マイクロフォンオーディオ信号内の前記エコーは、リアルタイムに同時期に発生する、請求項11
または12に記載のシステム。
【請求項20】
前記動作は、前記マイクロフォンオーディオ信号内の前記エコーが存在すると決定することに基づいて、前記再生オーディオ信号を除去することをさらに含む、請求項11
または12に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、エコー検出に関する。
【背景技術】
【0002】
オーディオシステムがオーディオをキャプチャして送信するとき、これらの周辺機器は音響エコーの影響を受ける可能性がある。音響エコーは、一般に、オーディオ再生機器(例えば、スピーカ)から生成された可聴信号が音響環境(例えば、空気)を通じて音波の形式で伝播し、波の修正版が反射してマイクに戻るときに発生する。エコーの別の形式は電気エコーであり、これは、オーディオ再生機器(例えば、スピーカ)とマイクロフォンとの間の望ましくない電気的結合効果に起因して発生する。このようなエコーパスによって生成された信号は、次いで、音響エコーとして送信される。エコーは、例えば、周辺機器の近接性や周辺機器の品質など、さまざまな要因によって発生する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
エコーは、ソフトウェアアプリケーションを使用するリアルタイム通信(RTC)などの会話内で発生するので、エコーは、ユーザ体験に対して否定的効果を生成する。エコーは、ハードウェアの互換性やハードウェアの品質など、ソフトウェアに関連しない問題に起因する場合もあるが、ユーザは、この否定的な体験を、通信に使用されるソフトウェアアプリケーション(例えば、RTCアプリケーション)に関連付けることがある。人々がエコーの影響を受けるシステムを使用してますます通信するにつれて、これらの通信システム内のオーディオ対話を理解するためにエコー検出システムおよび方法が実装され得る。
【課題を解決するための手段】
【0004】
本開示の一態様は、データ処理ハードウェアが、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程と、データ処理ハードウェアが、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程と、を備える方法を提供する。各周波数表現について、方法は、また、データ処理ハードウェアが、周波数表現に基づいて特徴を決定する工程を備える。各特徴は、周波数表現の一対の周波数および一対の周波数の間の時間に対応する。方法は、また、データ処理ハードウェアが、マイクロフォンオーディオ信号の周波数表現に基づく第1の特徴と、再生オーディオ信号の周波数表現に基づく第2の特徴との間に一致が発生することを決定する工程を備える。方法は、また、データ処理ハードウェアが、第1の特徴と第2の特徴との間の遅延値がマイクロフォンオーディオ信号内のエコーに対応することを決定する工程を備える。
【0005】
本開示の実装形態は、1つまたは複数の次の特徴を任意選択により含んでもよい。いくつかの実装形態では、遅延値がエコーに対応することを決定する工程は、第1の特徴と第2の特徴との間の遅延値がエコーしきい値を満たすことを決定することを含み、エコーしきい値は、それぞれのエコーを予測する特定の遅延値のカウントを表す。さらなる実装形態では、一対の周波数が周波数表現の第1のピーク周波数および第2のピーク周波数に対応する。ここで、第2のピーク周波数は、第1のピーク周波数に隣接し、第1のピーク周波数からしきい値周波数差異内に存在し、しきい値周波数差異は、第1のピーク周波数からの周波数公差に対応する。周波数表現は、スペクトログラムを含んでもよい。
【0006】
いくつかの例では、マイクロフォンオーディオ信号を受信する工程は、マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信することを含み、エコー低減器は、マイクロフォンオーディオ信号と再生オーディオ信号との間のエコーを低減するように構成される。追加的または代替的に、方法はまた、データ処理ハードウェアが、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号の各々をダウンサンプリングする工程も備える。
【0007】
いくつかの実装形態では、マイクロフォンオーディオ信号および再生オーディオ信号の周波数表現を決定する工程は、マイクロフォンオーディオ信号および再生オーディオ信号の各々のオーディオ信号について、オーディオ信号をサンプルのブロックに分割することと、サンプルのブロックの各々の周波数変換に基づいて周波数表現の係数を決定することと、を含む。さらなる実装形態では、一対の周波数は、しきい値特徴周波数を満たす各特徴に対応する。追加的または代替的に、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程、各周波数表現について特徴を決定する工程、第1の特徴と第2の特徴との間に一致が発生することを決定する工程、および第1の特徴と第2の特徴との間の遅延値がエコーに対応することを決定する工程は、リアルタイムに同時期に発生する。いくつかの例では、方法はまた、データ処理ハードウェアが、第1の特徴と第2の特徴との間の遅延値がエコーに対応することを決定することに基づいて、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号を除去する工程も備える。
【0008】
本開示の別の態様は、データ処理ハードウェアが、マイクロフォンオーディオ信号および再生オーディオ信号をリアルタイムに受信する工程と、データ処理ハードウェアが、再生オーディオ信号から再生特徴の第1のセットをリアルタイムに決定する工程であって、再生特徴の第1のセットは、再生オーディオ信号からの所定の時間ブロックを表し、各再生特徴は、一対の再生オーディオ信号周波数および一対の再生オーディオ信号周波数の間の時間に対応する、再生特徴の第1のセットをリアルタイムに決定する工程と、を備える方法を提供する。方法はまた、データ処理ハードウェアが、受信した前記マイクロフォンオーディオ信号に対応するマイクロフォン特徴をリアルタイムに決定する工程であって、各マイクロフォン特徴は、一対のマイクロフォンオーディオ信号周波数および一対のマイクロフォンオーディオ信号周波数の間の時間に対応する、マイクロフォン特徴をリアルタイムに決定する工程と、も備える。
【0009】
方法はまた、データ処理ハードウェアが、再生特徴の第1のセットの再生特徴と第1のマイクロフォン特徴との間に一致が発生するかどうかをリアルタイムに決定する工程と、一致が発生しない場合:データ処理ハードウェア(610)が、再生オーディオ信号に基づいて、再生オーディオ特徴の第2のセットをリアルタイムに決定する工程であって、再生特徴の第2のセットは、再生オーディオ信号からの再生特徴の第1のセットに隣接する所定の時間ブロックを表す、再生オーディオ特徴の第2のセットをリアルタイムに決定する工程と、データ処理ハードウェアが、再生特徴の第2のセットからのそれぞれの再生特徴が第2のマイクロフォン特徴と一致することをリアルタイムに決定する工程と、データ処理ハードウェアが、一致した第2のマイクロフォン特徴がマイクロフォンオーディオ信号内のエコーであることをリアルタイムに識別する工程も備える。
【0010】
本態様は、次の1つまたは複数の特徴を任意選択により含んでもよい。いくつかの例では、マイクロフォンオーディオ信号を受信する工程は、マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信することをさらに含む。これらの例では、エコー低減器は、マイクロフォンオーディオ信号と再生オーディオ信号との間のエコーを低減するように構成される。
【0011】
本開示のさらに別の態様は、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアと、を備えるシステムを提供する。メモリハードウェアは、データ処理ハードウェア上で実行されるとき、データ処理ハードウェアに操作を行わせる命令を記憶しており、操作は、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程と、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程と、を備える。各周波数表現について、方法はまた、周波数表現に基づいて特徴を決定する工程も備える。各特徴は、周波数表現の一対の周波数および一対の周波数の間の時間に対応する。方法はまた、マイクロフォンオーディオ信号の周波数表現に基づく第1の特徴と、再生オーディオ信号の周波数表現に基づく第2の特徴との間に一致が発生したことを決定する工程も備える。方法はまた、第1の特徴と第2の特徴との間の遅延値がマイクロフォンオーディオ信号内のエコーに対応することを決定する工程も備える。
【0012】
本態様は、1つまたは複数の次の特徴を任意選択により含んでもよい。いくつかの実装形態では、遅延値がエコーに対応することを決定する工程は、第1の特徴と第2の特徴との間の遅延値がエコーしきい値を満たすことを決定することを含み、エコーしきい値は、それぞれのエコーを予測する特定の遅延値のカウントを表す。さらなる実装形態では、一対の周波数が周波数表現の第1のピーク周波数および第2のピーク周波数に対応する。ここで、第2のピーク周波数は、第1のピーク周波数に隣接し、第1のピーク周波数からしきい値周波数差異内に存在し、しきい値周波数差異は、第1のピーク周波数からの周波数公差に対応する。周波数表現は、スペクトログラムを含んでもよい。
【0013】
いくつかの例では、マイクロフォンオーディオ信号を受信する工程は、マイクロフォンオーディオ信号をエコー低減信号としてエコー低減器から受信することを含み、エコー低減器は、マイクロフォンオーディオ信号と再生オーディオ信号との間のエコーを低減するように構成される。追加的または代替的に、操作はまた、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号の各々をダウンサンプリングする工程も備える。
【0014】
いくつかの実装形態では、マイクロフォンオーディオ信号および再生オーディオ信号の周波数表現を決定する工程は、マイクロフォンオーディオ信号および再生オーディオ信号の各々のオーディオ信号について、オーディオ信号をサンプルのブロックに分割することと、サンプルのブロックの各々の周波数変換に基づいて周波数表現の係数を決定することと、を含む。さらなる実装形態では、一対の周波数は、しきい値特徴周波数を満たす各特徴に対応する。追加的または代替的に、マイクロフォンオーディオ信号および再生オーディオ信号を受信する工程、マイクロフォンオーディオ信号の周波数表現および再生オーディオ信号の周波数表現を決定する工程、各周波数表現について特徴を決定する工程、第1の特徴と第2の特徴との間に一致が発生することを決定する工程、および第1の特徴と第2の特徴との間の遅延値がエコーに対応することを決定する工程は、リアルタイムに同時期に発生する。いくつかの例では、操作はまた、第1の特徴と第2の特徴との間の遅延値がエコーに対応することを決定することに基づいて、受信したマイクロフォンオーディオ信号および受信した再生オーディオ信号を除去する工程も備える。
【0015】
本開示の1つまたは複数の実施の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0016】
【
図2A】エコー検出システム内で動作する例示的なエコー検出器の概略図。
【
図2B】エコー検出システム内で動作する例示的なエコー検出器の概略図。
【
図3A】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【
図3B】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【
図3C】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【
図3D】エコー検出システム内で動作するエコー検出器の例示的な特徴抽出器の概略図。
【
図4】エコー検出システム内でエコーを検出する例示的な方法のフロー図。
【
図5】エコー検出システム内でエコーを検出する例示的な方法のフロー図。
【
図6】本明細書に記載のシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図。
【発明を実施するための形態】
【0017】
様々な図面における同様の参照記号は、同様の要素を示す。
図1は、エコー検出システム100の一例である。エコー検出システム100は、一般に、信号源110、オーディオ再生機器120、マイクロフォン130、およびエコー検出器200を含む。エコー検出システム100は、ユーザが、オーディオ再生機器120(例えば、スピーカ)から再生オーディオ122を受信し、マイクロフォン130が、再生オーディオ122の修正版をエコーとして受信する環境である。マイクロフォン130は、ユーザ10によって生成された音声12または他の可聴音のキャプチャを行うように構成され、その結果、エコーがキャプチャされ得る。例えば、リアルタイム通信(RTC)アプリケーションを使用する第1のユーザ10と第2のユーザとの間の会話において、第1のユーザ10と会話する第2のユーザは、その後、エコーおよびキャプチャされた音声12の両方を含むオーディオを受信するとともに、第2のユーザのシステム(例えば、信号源110)からのエコーを含む再生オーディオ122を第1のユーザ10に提供し得る。この状況では、いずれかのユーザ(例えば、第1のユーザ10または第2のユーザ)が受信したエコーは、ユーザ体験に否定的に影響する。次に、ユーザ10は、エコーがハードウェア(例えば、スピーカおよびマイクロフォン)などの他の手段によって引き起こされ得るとしても、この否定的体験を、例えば、RTCアプリケーションと関連付け得る。これらの否定的効果に対抗するために、エコー検出システム100は、エコー検出システム100内で発生するエコーを理解するためのエコー検出器200を含む。ただし、エコー検出システム100は、一般に、例えば、オーディオ再生機器120およびマイクロフォン130に伴う音響エコーの観点から説明されるが、エコー検出システム100は、オーディオシステム内の電気的結合効果から発生する電気エコー(例えば、ラインエコー)を決定するために等しく適用可能であり得る。
【0018】
簡略化のために、
図1は、ユーザ10の関与する会話の一方の側を示す。ここで、信号源110は、一般に、再生オーディオ信号112を提供することができる任意のソースに及ぶ。例えば、信号源110は、第1のユーザ10と会話している第2のユーザからの音声をキャプチャする第2のマイクロフォンまたは第2のマイクロフォン130に関連付けられているプロセッサであってもよい。
【0019】
オーディオ再生機器120は、電気信号を可聴音(すなわち、オーディオ)として伝達するように構成された機器である。例えば、
図1は、スピーカとしてのオーディオ再生機器120を示す。ここで、再生オーディオ信号112は、オーディオ再生機器120によってユーザ10および/またはユーザ環境のための再生オーディオ122に変換された電気信号である。
【0020】
マイクロフォン130は、一般に、可聴音を電気信号に変換する機器に及ぶ。
図1のエコー検出システム100では、マイクロフォン130は、ユーザ10および/またはオーディオ再生機器120からのオーディオ音をマイクロフォンオーディオ信号132に変換する。ユーザ10からのオーディオ音は、ユーザ10からの音声12または他の可聴音であってもよく、オーディオ再生機器120からの音は、再生オーディオ122の少なくとも一部に及ぶ。
【0021】
いくつかの例では、エコー検出システム100は、エコー低減器140も含む。エコー低減器140は、エコー検出器200の前にエコーを低減(例えば、抑制によって)または打ち消すように構成されたエコー低減機器である。エコー低減器140は、入力信号(例えば、マイクロフォンオーディオ信号132)に基づいて、低減信号142を出力として生成する。低減信号142は、エコー低減器140が入力信号(例えば、マイクロフォンオーディオ信号132)を実際に変更するかどうかに拘わらず、エコー低減器140の出力信号に及ぶ。例えば、エコー低減器140は、いくつかのシナリオにおいて、マイクロフォンオーディオ信号132を変更しないことを決定し得る。エコー低減器140は、エコーを打ち消すまたは除去しようとし得るが、このエコー除去処理はしばしば不完全であり、ある程度の残留エコーをもたらす。これらの例では、エコー検出器200は、エコー低減器140から出力された低減信号142内において残留エコーを検出する。言い換えると、エコー検出器200は、エコー低減器140の効果を識別しまたは監視し得る。ここで、エコー低減器140に続いてエコー検出器200によって検出された残留エコーは、エコー低減器140またはエコー低減器140を管理するエンティティにフィードバックを提供し得る。例えば、エコー低減器140またはエコー低減器140を管理するエンティティは、エコー検出器200からフィードバックを受け取り、エコー低減器140のパラメータを更新して、エコー低減器140からの低減信号142内に残っている残留エコーの量を最適化するか、またはさらに最小化する。コー検出器200からのフィードバックに基づくモデル(例えば、機械学習モデルまたはニューラルネットワークモデル)を実装して、例えば、低減信号142内の残留エコーをエコー検出システム100内でリアルタイムに最小化することができる。
【0022】
いくつかの例では、エコー検出器200は、検出されたエコー(例えば、残留エコー)に関するフィードバックをユーザ10に提供する。エコー検出器200は、どのようにエコーを低減するかについての推奨またはヒントをユーザ10に提供し得る。例えば、エコー検出器200は、ヘッドセットを使用することをユーザ10に推奨するか、または特定のハードウェアをユーザ10に推奨することができる(例えば、より少ないエコーを生成する特定のタイプのマイクロフォンまたはスピーカ)。
【0023】
図1の例は、エコー検出器200が、エコー低減器140の存在の有無に拘わらず、エコー検出システム100においてエコーを検出し得ることを示すために、点線の輪郭を有するエコー低減器140を示す。エコー低減器140は、エコーを除去または低減することによってオーディオ信号の品質を向上させるために使用されるハードウェアおよび/またはソフトウェアであり得る。エコー低減器140のいくつかの例は、音響エコーサプレッサ(AES)、音響エコーキャンセラ(AEC)、および/または回線エコーキャンセラ(LEC)のための機器である。いくつかの構成では、エコー検出器200がエコー低減器140からの残留エコーを検出すると、エコー検出器200は、エコー低減器140への変更を制御するか、または制御を推奨するように構成される。例えば、エコー検出器200は、エコー低減器140によって検出されたエコーに基づいて、ハードウェアエコー低減器140からソフトウェアエコー低減器140へ(またはその逆)切り替えるか、または切り替えを推奨する。
【0024】
エコー低減器140は、エコーの生成を防止することを意図して配置される。いくつかの構成では、エコー低減器140は、マイクロフォン130にまたはマイクロフォン130に隣接して配置され、マイクロフォン130と協調して動作し、低減信号142(例えば、エコー抑制信号またはエコー打ち消し信号)をマイクロフォンオーディオとして生成する。他の構成(
図1に示される)では、エコー低減器140は、マイクロフォン130の下流に配置され、マイクロフォン130から出力されたマイクロフォンオーディオ信号132を入力として受信し、低減信号142を生成する。このようにして、エコー低減器140は、マイクロフォン130とは別に、またはマイクロフォン130と共に実装され得る。
【0025】
図1Aおよび
図2Bは、エコー検出器200の例である。エコー検出器200は、信号源110からの再生オーディオ信号112を、マイクロフォン130でキャプチャされたオーディオのオーディオ信号(例えば、マイクロフォンオーディオ信号132または低減信号142)と比較するように構成される。この比較に基づいて、エコー検出器200は、残留エコーの存在を決定し得る。残留エコーを決定することによって、エコー検出器200は、エコー検出システム100内のオーディオ構成要素の性能を評価するための統計を収集することができる。例えば、エコー検出器200は、スピーカとマイクロフォンの組み合わせの互換性を評価する(例えば、エコー低減器140の性能を通じて)。他の例では、エコー検出器200によって収集された統計は、エコー低減器140のハードウェアおよび/またはソフトウェアに対応するアルゴリズムを評価する。一例として、エコー検出器200は、エコー低減器140のための新たなまたは更新されたソフトウェア/ファームウェアの有効性を評価することができる(例えば、残留エコーの量によって)。言い換えれば、RTCアプリケーションが進化または発展するにつれて、エコー検出器200は、それぞれのRTCアプリケーションの開発者、管理者、またはユーザ10のためのフィードバックシステムとして機能し得る。
【0026】
これらの例では、エコー検出器200は、特徴抽出器300、照合回路210、および分類器220を含む。エコー検出器200は、マイクロフォンオーディオ信号132、再生オーディオ信号112、および/または低減信号142などのオーディオ信号を受信するように、および照合回路210を通じて、受信したオーディオ信号間に一致212が発生するかどうかを決定するように構成される。エコー検出器200は、特徴抽出器300によって生成された特徴302,302a~302n(ここで、nは特徴の数)を使用することによって、一致212が存在するかどうかを決定する。生成された特徴302,302a~302nに基づいて、照合回路210は、オーディオ信号(例えば、マイクロフォンオーディオ信号132または低減信号142)の第1の特徴302,302aと再生オーディオ信号112の第2の特徴302,302bとの間に一致212が発生するかどうかを決定する。一致212を用いて、分類器220は、一致212に対応するオーディオ信号がエコーである蓋然性202を決定するように構成される。言い換えれば、マイクロフォンオーディオ信号132(または低減オーディオ信号142)の第1の特徴302,302aと、再生オーディオ信号112の第2の特徴302,302bとの間の一致212は、マイクロフォン132によって受信された再生オーディオ信号112の一部が112は、おそらくエコーであったことを示す。いくつかの例では、一致212が発生すると、分類器220は、一致212に対応するオーディオ信号がエコーである蓋然性202を決定するのを助けるために、第1の特徴302aと第2の特徴302bとの間の遅延値222を決定する。これらの例では、一致212が発生しない場合、分類器220は遅延値222を決定するためのアクションを実行しない。例えば、単一の一致212は、エコーが存在すると結論付けるのに十分な証拠ではない可能性があり、遅延値222により、分類器220は、それぞれの遅延値222を伴う1以上の一致212を識別することが可能となり、エコーが存在する蓋然性の増加202を結論付けることができる。遅延値はまた、エコーによって引き起こされる一致212(例えば、同じ遅延値222を示す)または偶発的な一致212(例えば、遅延値222が異なる)を区別するのに役立ち得る。いくつかの例では、遅延値222は、エコー検出システム100の統計分析を追加的に提供し、ユーザ10および/またはエコー検出システム100の管理者が、エコー検出システム100を(例えば、エコー低減器140を通じて)修正または変更できるようにする。エコー検出器200の簡略化されたバージョンでは、エコー検出器200は分類器220を含まず、照合回路210による一致212が多くのさらなる分析なしにエコーを示す。
【0027】
図2Aおよび
図2Bをさらに参照すると、エコー検出器200は、第1の特徴抽出器300,300aおよび第2の特徴抽出器300,300bを含む。第1の特徴抽出器300aは、再生オーディオ信号112を受信し、再生オーディオ信号112に対応する特徴302a
1-n(再生特徴302a
1-nとも呼ばれる)を生成し、第2の特徴抽出器300bは、マイクロフォンオーディオ信号132(または低減信号142)を受信し、マイクロフォンオーディオ信号132および/または低減信号142に対応する特徴302b
1-n(マイクロフォン特徴302b
1-nとも呼ばれる)を生成する。点線で示すように、第1の抽出器300aおよび第2の抽出器300bは、単一の特徴抽出器300であり得る。他の構成では、エコー検出器200は、エコー検出システム100のためのエコー検出をリアルタイムに提供するために特徴302を同時に処理する任意の数の特徴抽出器300を含む。
【0028】
図2Bは、分類器220がエコーしきい値224を含む点を除けば、
図2Aと同様である。ここで、分類器220は、第1の特徴302aと第2の特徴302bとの間の遅延値222がエコーしきい値224を満たすかどうかをさらに決定する。この意味で、エコーしきい値224は、複数の一致212が同一または類似の遅延値222を示す場合にエコーしきい値224がエコーを示すように、それぞれのエコーを予測する。例えば、エコーしきい値224は、カウントが、一致212の遅延値222がそれぞれのエコーに対応することを確実に予測する前に遅延値222が存在し得る最小回数になるような遅延値222のカウントを表す。言い換えると、遅延値222のカウントがエコーしきい値224を満たす場合(例えば、しきい値以上)、カウントは、それぞれのエコーを予測するために遅延値222が存在し得る最小回数を満たす。いくつかの実装形態では、エコーしきい値224は、最も頻度の高い遅延値に対応するいくつかの最近の一致特徴302である。ここで、最も頻度の高い遅延値は、一致212に対応する遅延値222を追跡する遅延ヒストグラム226によって示され得る。いくつかの構成では、エコーしきい値224は、設計された信頼区間を証明するために事前に決定される。他の構成では、エコーしきい値224は、遅延値222または遅延ヒストグラム226を追跡するために動的である。
【0029】
図2Bの例は、例えば、システム100の構成要素間の通信ラグなどの許容可能な時間遅延量を有するエコー検出システム100を示す。システム100が許容可能な時間遅延量を有する場合、エコーしきい値224は、システム100を有効にして、エコーの誤った表示を防ぐ。例えば、遅延値222がエコーしきい値224を満たさない場合、エコー検出器200は、一致212をエコーとして示さない。それにより、分類器220は、エコー検出器200がエコーを示す前に、エコーしきい値224を満たすために遅延値222を必要とし得る。いくつかの例では、エコーしきい値224は、エコーの存在に関連付けられている遅延値222を識別する履歴傾向またはデータ(例えば、機械学習モデルまたはニューラルネットワークモデルなどの予測モデル)に基づくことができる。
【0030】
追加的または代替的に、照合回路210は、特徴データベース210を含む。特徴データベース210は、照合回路210のために特徴抽出器300によって生成された特徴302,302
1-nを記憶する。特徴データベース214を用いて、特徴抽出器300によって生成された記憶された特徴302,302
1-nは(例えば、再生オーディオ信号112から)、一致212について照合回路210を通じて評価され得る。いくつかの例では、特徴データベース214は、システム100内の遅延を説明するための再生オーディオ信号112に対応する有限量の特徴302
1-nのみ(例えば、再生オーディオ信号112の最近の履歴)を記憶する(例えば、特徴データベース214への点線の矢印によって
図2Aおよび2B図に示されるように)。すなわち、エコー検出器200は、オーディオ再生デバイス120が再生オーディオ信号112から再生オーディオ122を生成する前に、再生オーディオ信号112を受信し得る。これが発生した場合、特徴データベース214は、再生オーディオ信号112からの十分な数の特徴302
1-nを記憶して、マイクロフォンオーディオ信号132(または低減信号142)をリアルタイムに(例えば、マイクロフォン130がマイクロフォンオーディオ信号132を生成するにつれ)比較するように構成され得る。例えば、特徴抽出器300が再生オーディオ信号112の特徴302aを生成するときと、特徴抽出器300がマイクロフォンオーディオ信号132(または低減信号142)の特徴302bを生成するときとの間に100ミリ秒の遅延がある場合、特徴データベース214は、再生オーディオ信号112の特徴302a
1-nの少なくとも2秒を記憶する。エコー検出器200は、特徴データベース214を含み得るが、特徴データベース214は、インターネットアクセス(例えば、サーバデータベースとしての機能)を必要としない。したがって、エコー検出器200は、動作するためにインターネット接続を必要とせず、それにより、インターネット接続なしで機能し得る。
【0031】
他の例では、特徴データベース214は、再生オーディオ信号112の最近の特徴に対応する有限量の特徴3021-nのみを記憶するように構成される。言い換えれば、特徴データベース214は、最近の特徴収集物であるように構成され、最近とは、最大遅延より古い特徴が破棄される(例えば、先入れ先出し方式で)という事実を意味する。いくつかの実装形態では、エコー検出器200は、エコー検出器200におけるストレージ要件を最小化または除去するために、一致212に一致するおよび/または一致しない特徴302を削除する。
【0032】
図3A~
図3Dは、特徴抽出器300の例である。特徴抽出器300は、再生オーディオ信号112、マイクロフォンオーディオ信号132、または低減信号142(すなわち、まとめて「オーディオ信号」と呼ばれる)を受信し、受信したオーディオ信号に対応する特徴302を生成するように構成される。特徴抽出器300は、ダウンサンプラ310、信号処理部320、ピーク検出器330、および特徴生成器340を含む。
【0033】
ダウンサンプラ310は、オーディオ信号のサンプリングレートまたはサンプルサイズを下げることによって、受信したオーディオ信号を変更するように構成される。言い換えれば、ダウンサンプラ310は、受信したオーディオ信号からダウンサンプリング済み信号312を生成する。再生オーディオ信号112、マイクロフォンオーディオ信号132、および低減信号142のそれぞれは、ダウンサンプラ310によってダウンサンプリングされ得る。ダウンサンプリングは、帯域幅またはオーディオ形式サイズに関連する制限に対応するために、オーディオ信号に関連付けられているサンプルの量をしばしば減らす。ここで、例えば、ダウンサンプラ310は、受信したオーディオ信号を8kHzに低減する。任意選択で、特徴抽出器300がサンプリングサイズおよび/またはサンプリングレートによって制約されない場合、特徴抽出器300は、ダウンサンプラ310をバイパスするかまたはダウンサンプラ310なしで動作し得る。他の例では、ダウンサンプラ310は、特徴抽出器300が特徴302,3021-nについて一定数を維持することを可能にする。
【0034】
図3Bに示されるように、信号処理部320は、ダウンサンプリング済み信号312を受信し、信号処理ルーチン322に従って、ダウンサンプリング済み信号312を周波数表現324に処理することに進む。周波数表現324は、オーディオ信号(例えば、ダウンサンプリング済み信号312)に関連付けられている周波数のスペクトルの表現である。周波数表現324のいくつかの例は、スペクトログラム、ソノグラフ、声紋、音声のスペクトラム、ウォーターフォールなどである。
図3Bは、オーディオ信号の周波数表現324を生成するためのルーチン322を示すものであるが、スペクトログラムなどの周波数表現324は、光学分光計または一連のバンドパスフィルタなどの他の方法および/またはシステムによって生成され得る。
【0035】
図3Bに示されるように、信号処理部320は、信号処理ルーチン322を実行して、一連のステップ322a~322dによって周波数表現324を生成する。ステップ322aにおいて、信号処理部320は、受信したオーディオ信号112、132、142、312を特定の数のサンプルのブロックに分割する。例えば、多くの場合、ブロックの数は2の累乗(例えば、256サンプル)である。いくつかの構成では、各ブロックが前のブロックとの重なりの割合を含むように、ブロックの重なりの割合(例えば、50%の重なり)を有する。ステップ322bにおいて、各ブロック内のサンプルは、窓関数によって乗算される。例えば、ハニング関数またはハミングウィンドウ関数などの窓関数を使用すると、周波数変換により周波数の範囲に亘ってゼロ以外の値を生成できる。各ブロックに窓関数を乗算して、ステップ322cは、窓関数を適用したブロックサンプルを変換する(例えば、高速フーリエ変換(FFT)、離散フーリエ変換(DFT)、離散コサイン変換(DCT)、ウェーブレット変換などによって)。ここで、変換により、ブロックサンプルの複素数のセットが生成される。ステップ322dにおいて、信号処理部320は、周波数表現324の係数326を生成する。いくつかの例では、信号処理部320は、ステップ322cにおける変換により生じた複素数のセットの大きさの対数関数によって係数326を生成する。信号処理部320は、受信したオーディオ信号112,132,142,312に対応するサンプルの各ブロックに対して信号処理方法ステップ322a~322dを繰り返すように構成される。追加的にまたは代替的に、信号処理部320は、特徴抽出器300がオーディオ信号112,132,142,312を受信するにつれ周波数表現324をリアルタイムに生成するように構成される。
【0036】
特徴抽出器300のピーク検出器330は、
図3Cに示されるように、信号処理部320からの周波数表現324の中の出力332としてピークPを識別する。いくつかの例では、ピーク検出器330は、周波数表現324の係数326に基づいてピークPを識別する。いくつかの例では、ピーク検出器330は、は、周波数表現324を形成するために信号処理部320によって生成された各周波数ビンのためのしきい値334を備える。例えば、ピーク検出器330は、各周波数ビンに対応するしきい値334を記憶するためのしきい値データベースを含む。ピーク検出器330は、係数326に対応する周波数ビンのそれぞれのしきい値334を満たす周波数表現324内の係数326に遭遇すると、ピーク検出器330は、遭遇した係数326を、周波数表現324内のピークPとして識別する。例えば、
図3Cは、周波数表現324のブロックに関連する係数326からピークP
1,P
2,P
3...P
nを識別するピーク検出器330を示す。
【0037】
いくつかの実装形態では、ピーク検出器330は反復的に動作する。言い換えれば、ピーク検出器330がピークPを識別するとき、識別されたピークPに関連する周波数ビンに対応するしきい値334が増加する。いくつかの例では、ピーク検出器330がピークPを識別するとき、近くの周波数ビンのしきい値334も増加する。しきい値334を増加させるこのアプローチは、ピーク検出器330がピークPを正確に識別する確実性を提供するのに役立ち得る。追加的にまたは代替的に、ピーク検出器330は、新しいブロックを処理するとき、以前に増加したしきい値334は、減少するか、または元のしきい値334に戻ることができる。
【0038】
いくつかの実装形態では、ピーク検出器330は、時間的に進む方向および戻る方向の両方でブロックの周波数表現324をスキャンし得る。ピーク検出器330が進む方向または戻る方向にスキャンするとき、ピーク検出器330は、ピーク検出器330のバッファリングの手段としてオーディオ信号にブロックを追加することができる。
【0039】
図3Dを参照すると、特徴抽出器300の特徴生成器340は、特徴302を生成する。ここで、特徴生成器340は、ピーク検出器330によって周波数表現324から識別されたピークPに基づいて特徴302を生成する。各特徴302は、周波数表現324のいくつかの周波数fおよびいくつかの周波数fに関連付けられている時間tに対応し得る。ここで、説明を容易にするために、各特徴302は、周波数表現324の一対の周波数のf
1,f
2、および一対の周波数のf
1,f
2の間の時間tに対応する。例えば、一対の周波数のf
1,f
2は、周波数表現324の第1のピーク周波数P
1,f
1および第2のピーク周波数P
2,f
2に対応する。特徴302を生成するために、特徴生成器340は、時間および周波数が近い一対のピークP
1,P
2を識別しようとする。例えば、周波数表現324の第1のピーク周波数P
1,f
1および第2のピーク周波数P
2,f
2は、互いにしきい値周波数差異内の隣接するピークであり得る。
【0040】
いくつかの実装形態では、特徴生成器340は、参照周波数342(例えば、一対の周波数のf1,f2の第1の周波数f1)および標的ゾーン344を識別する。標的ゾーン344は、参照周波数342からのしきい値周波数差分を表す。言い換えれば、標的ゾーン344は、特徴302を構成する一対の周波数f1,f2の第2の周波数f2を、参照周波数342の周波数公差内に制約する。一対の周波数f1,f2の第2の周波数f2を制約するために、標的ゾーン344は、時間間隔および周波数間隔に亘って広がる。いくつかの例では、標的ゾーン344は、エコー検出器200の開発者または管理者によって設計上の変数として構成される。他の例では、特徴生成器340は、周波数表現324の係数326に基づいて標的ゾーン344を決定する。
【0041】
いくつかの実装形態では、標的ゾーン344は、特徴生成器340が、3つの値を有する特徴302を生成することを可能にし、3つの値とは、参照周波数342、標的ゾーン344内の第2の周波数f2、および参照周波数342と第2の周波数f2との間の時間差tである。いくつかの実装形態では、これらの3つの値は限られたビット数で記述できる。例えば、周波数342,f2はそれぞれ7ビットを使用し、時間差tは5ビットを使用する。このように、この例では、それぞれの特徴302は、単一の32ビットの整数によって表すことができる。
【0042】
いくつかの例では、標的ゾーン344は、あまりにも多くのピークP
1―nを含む。これらの例では、標的ゾーン344は、所与の標的ゾーン344内で生成され得るいくつかの特徴302の最大値を識別する追加のパラメータを含む。例えば、追加のパラメータは、特徴生成器340が、ピークが最も高い上位N個のピークに対する特徴302のみを生成することを識別し、ここで、ピークPの最高値は、特定の時間における特定の周波数範囲のエネルギー量に対応する。説明のために、N=2の場合、
図3Dでは、特徴生成器340は、参照周波数342(例えば、参照周波数の高さ)および第3のピークP
3に基づいて第1の特徴302、ならびに基準周波数342および第3のピークP
1に基づいて第2の特徴302を生成する。この例では、特徴生成器340は、N=2および第2のピークP
2が第1のピークP
1および第3のピークP
3の両方よりも小さいため、第2のピークP
2に対して第3の特徴302を生成しない。
【0043】
図2Aおよび2Bを参照すると、照合回路210は、特徴抽出器300から特徴302を受信する。いくつかの実装形態では、特徴302のそれぞれは、一対の周波数f
1,f
2および一対の周波数の間の時間差tの表現としてビットの整数に対応する。特徴302が整数である場合、照合回路210は、マイクロフォンオーディオ信号132(すなわち、マイクロフォン特徴302b)からの特徴302bの整数と、再生オーディオ信号112(すなわち、再生特徴302a)からの特徴302aとが等しいかどうかを比較する。いくつかの例では、マイクロフォン130がオーディオをキャプチャするにつれ、マイク特徴302bが照合回路210によって再生特徴302a
1-nのセットとリアルタイムに比較されるように、特徴データベース214は再生特徴302a
1-nのセットを記憶する。
【0044】
ここで、再生機能302a1―nのセットは、所定の時間ブロック(例えば、2秒)に亘って広がることができる。再生特徴302a1―nのセットと比較することによって、エコー検出器200は、システム100がシステム100の構成要素(例えば、スピーカ120とマイクロフォン130)間の通信遅延またはラグを経験し得る場合でさえ、一致212を識別し得る。これらの例では、第1のセットの再生特徴302a1―n内に一致212が発生しない場合、第2のセットの再生特徴302a1―nが生成され、および/または第2のマイクロフォン特徴302bと比較するために特徴データベース214から取り出される。いくつかの構成では、照合回路210は、ハッシュマップ、循環バッファ、またはこれらの両方の任意の組み合わせを使用して、再生機能302a1―nのセットをマイクロフォン機能302bと効率的に比較する。
【0045】
図2Aはさらに、照合回路210が再生オーディオ信号112のある部分とマイクロフォンオーディオ信号132との間の一致212を識別する都度、分類器220が遅延ヒストグラム226を更新する例を示す。一般的に言えば、ヒストグラムは、ビンまたは間隔内の変数の頻度を示す図または表現である。遅延ヒストグラム226を用いて、分類器220は、一致するマイクロフォン特徴302bと再生特徴302aとの間の時間差に対応する遅延値222を入力することができる。
【0046】
遅延ヒストグラム226は、エコー検出器200が時間的に一貫したエコーを識別することを可能にし得る。例えば、遅延ヒストグラム226は、エコー検出器200が、機械学習などのヒューリスティックまたはデータ駆動型の取り組みを使用して、時間的に一貫したエコーを識別することを可能にし得る。いくつかの構成では、分類器220は、エコー検出器200がエコーを検出できない時間間隔ごとに、遅延ヒストグラム226の各ビンを漸次的に減少させる。エコー検出器200は、システム100および/またはエコー低減器140にフィードバックを提供することができるので、遅延ヒストグラム226は、時間の経過とともに、そのフィードバックの有効性を測定することができる。
【0047】
所与の時間間隔においてエコーが認識されなかったときに遅延ヒストグラム226の各ビンを漸進的に減少させることによって、遅延ヒストグラム226は、エコー低減における時間の経過とともに増大する有効性(例えば、または逆に増大する非有効性)を表すことができる。各ビンを漸進的に減少させる時間間隔は、エコー検出器200の設計パラメータ、またはエコー検出器200の管理者またはユーザ10によって制御される調整可能なパラメータであり得る。
【0048】
特徴抽出器300、照合回路210、および分類器220の機能が組み合わされ、さらに分離され、分散され、または交換され得る場合、エコー検出器200の異なる構成が使用され得る。さらに、エコー検出器200は、単一のデバイスに実装されてもよく、複数のデバイスに跨って分散されてもよい。
【0049】
図4は、エコーを決定するための例示的な方法400のフローチャートである。フローチャートは、マイクロフォンオーディオ信号132および再生オーディオ信号112を受信することによって動作402で開始する。動作404において、方法400は、マイクロフォンオーディオ信号132の周波数表現324および再生オーディオ信号112の周波数表現324を決定することを含む。動作406において、方法400は、各周波数表現324について、周波数表現324に基づいて特徴302を決定することをさらに含む。各特徴302は、周波数表現324の一対の周波数f
1,f
2および一対の周波数f
1,f
2の間の時間tに対応する。動作408において、方法400はまた、マイクロフォンオーディオ信号132の周波数表現324に基づく第1の特徴302bと、再生オーディオ信号112の周波数表現324に基づく第2の特徴302aとの間に一致212が発生することを決定することを含む。動作410において、方法400は、第1の特徴302bと第2の特徴302aとの間の遅延値222がマイクロフォンオーディオ信号132内のエコーに対応することを決定することをさらに含む。例えば、方法400は、遅延ヒストグラム226に関して遅延値222を決定し得る
図5は、特徴302のセットに基づいてエコーをリアルタイムに決定するための例示的な方法500のフローチャートである。動作502において、方法500は、マイクロフォンオーディオ信号132および再生オーディオ信号112を受信することを含む。動作502において、方法500はさらに、再生オーディオ信号112から再生特徴302a
1―nの第1のセットを決定することを含む。ここで、再生特徴302a
1―nの第1のセットは、再生オーディオ信号112からの所定の時間ブロックを表す。各再生特徴302aは、一対の再生オーディオ信号周波数f
1,f
2、および一対の再生オーディオ信号周波数f
1,f
2の間の時間tに対応する。動作506において、方法500はまた、受信したマイクロフォンオーディオ信号132に対応するマイクロフォン特徴302b
1―nを決定することを含む。各マイクロフォン特徴302bは、一対のマイクロフォンオーディオ信号周波数f
1,f
2および一対のマイクロフォンオーディオ信号周波数周波数f
1,f
2の間の時間tに対応する。
【0050】
動作508において、方法500は、再生特徴302a1―nの第1のセットの再生特徴302aと第1のマイクロフォン特徴302bとの間に一致212が発生するかどうかを決定することを含む。動作510において、一致212が発生しない場合、方法500は、以下の機能を実行する。方法500は、再生オーディオ信号112に基づいて、再生オーディオ特徴302a1―nの第2のセットを決定する。この場合、再生特徴302a1―nの第2のセットは、再生オーディオ信号112からの再生特徴302a1―nの第1のセットに隣接する所定の時間ブロックを表す。方法500は、再生特徴302a1―nの第2のセットからのそれぞれの再生特徴302aが第2のマイクロフォン特徴302bと一致することを決定する。方法500はさらに、一致した第2のマイクロフォン特徴302bがマイクロフォンオーディオ信号132内のエコーであることを識別する。
【0051】
図6は、この文書で説明されているシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイス600の概略図である。例えば、コンピューティングデバイス600は、エコー検出器200および/またはエコー低減器140、ならびにエコー検出器200および/またはエコー低減器140に関連する方法を実装するために使用され得る。コンピューティングデバイス600は、携帯電話(例:スマートフォン)、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを意図している。ここに示されている構成要素、それらの接続と関係、およびそれらの機能は、例示のみを目的としており、本書で説明および/または主張されている発明の実装を制限することを意味するものではない。
【0052】
コンピューティングデバイス600は、プロセッサ610(例えば、データ処理ハードウェア)、メモリ620、ストレージデバイス630、メモリ620に接続する高速インタフェース/コントローラ640、および高速拡張ポート650、および低速バス670およびストレージデバイス630に接続する低速インタフェース/コントローラ660を含む。構成要素610,620,630,640,650,および660のそれぞれは、様々なバスを使用して相互接続され、共通のマザーボードに、または必要に応じて他の方法で取り付けられ得る。プロセッサ610は、メモリ620またはストレージデバイス630に記憶された命令を含む、コンピューティングデバイス600内で実行するための命令を処理して、高速インタフェース640に結合されたディスプレイ680などの外部入力/出力デバイス上のグラフィカルユーザインタフェース(GUI)のグラフィカル情報を表示することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよび複数のメモリのタイプとともに使用され得る。また、複数のコンピューティングデバイス600を接続することができ、各デバイスは、必要な操作の一部を提供する(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0053】
メモリ620(例えば、メモリハードウェア)は、情報をコンピューティングデバイス600内に非一時的に記憶する。メモリ620は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであり得る。非一時的メモリ620は、コンピューティングデバイス600によって使用するために一時的または永続的にプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を記憶するために使用される物理デバイスであり得る。不揮発性メモリの例は、これらに限定されるものではないが、フラッシュメモリおよび読み取り専用メモリ(ROM)/プログラム可能な読み取り専用メモリ(PROM)/消去可能なプログラム可能な読み取り専用メモリ(EPROM)/電子的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)(例えば、通常、ブートプログラムなどのファームウェアに使用される)を含む。揮発性メモリの例は、これらに限定されるものではないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含む。
【0054】
ストレージデバイス630は、コンピューティングデバイス600に大容量ストレージを提供することができる。いくつかの実装形態では、ストレージデバイス630は、コンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス630は、ストレージエリアネットワークまたはその他の構成のデバイスを含む、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、またはデバイスを含むデバイスのアレイであり得る。さらなる実装形態では、コンピュータプログラム製品は、情報キャリアに具体的に具体化される。コンピュータプログラム製品は、実行されると、上記のような1つまたは複数の方法を実行する命令を含む。情報キャリアは、メモリ620、ストレージデバイス630、またはプロセッサ610上のメモリなどの、コンピュータまたは機械で読み取り可能な媒体である。
【0055】
高速コントローラ640は、コンピューティングデバイス600の帯域幅を大量に消費する動作を管理し、一方、低速コントローラ660は、帯域幅を大量に消費する動作を管理する。このような役割の割り当ては例示的なものに過ぎない。いくつかの実装形態では、高速コントローラ640は、メモリ620、ディスプレイ680(例えば、グラフィックプロセッサまたは加速器を通じて)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート650に結合される。いくつかの実装形態では、低速コントローラ660は、ストレージデバイス630および低速拡張ポート690に結合される。様々な通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポート690は、キーボード、ポインティングデバイス、スキャナ、またはスイッチまたはルータなどの、例えばネットワークアダプタを通じたネットワークデバイスなどの1つまたは複数の入力/出力デバイスに結合され得る。
【0056】
コンピューティングデバイス600は、図に示されるように、いくつかの異なる形態で実装され得る。例えば、それは、標準サーバ600aとして、またはそのようなサーバ600aのグループ内で複数回、ラップトップコンピュータ600bとして、またはラックサーバシステム600cの一部として実装され得る。
【0057】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および/または光回路、集積回路、専用に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実装は、データおよび命令を送受信するためにストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスに結合された、専用または汎用であり得る少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実装を含み得る。
【0058】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラム可能なプロセッサのための機械命令を含み、高レベルの手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブラ/機械言語で実装することができる。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される、任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル機械命令および/またはデータをプログラマブルプロセッサに提供するために使用されるロジックデバイス(PLD))に及び、これには、機械命令を機械可読信号として受信する機械可読媒体が含まれる。「機械可読信号」という用語は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される任意の信号に及ぶ。
【0059】
本明細書に記載されている処理および論理フローは、1つまたは複数のコンピュータプログラムを実行して、入力データを操作し、出力を生成することによって機能を実行する1つまたは複数のプログラム可能なプロセッサによって実行することができる。処理および論理フローは、FPGA(フィールドプログラマブルゲートアレイ)やASIC(特定用途向け集積回路)などの特定用途のロジック回路によっても実行できる。コンピュータプログラムの実行に適したプロセッサには、例として、汎用および専用目的の両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの重要な要素は、命令を実行するためのプロセッサ、および命令とデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージ、例えば、磁気、光磁気ディスク、または光ディスクを含むか、またはこれらからデータを受信するか、またはこれらにデータを転送するように、あるいはその両方を行うように結合される。しかしながら、コンピュータにそのようなデバイスを有する必要はない。コンピュータプログラムの命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス;例えば、内蔵ハードディスクまたは取り出し可能ディスクなどの磁気ディスク;光磁気ディスク;およびCDROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサとメモリは、特定用途のロジック回路によって補完または取り入れられてもよい。
【0060】
ユーザとの相互作用を提供するために、本開示の1つまたは複数の態様は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)、LDC(液晶ディスプレイ)モニタ、またはタッチスクリーン、および、これらにより、ユーザがコンピュータに入力を提供できる任意選択によるキーボードとポインティングデバイス(マウスやトラックボールなど)を有するコンピュータ上に実装され得る。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形態の感覚的フィードバックであり得る。また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、ユーザが使用するデバイスとの間で文書を送受信することにより、ユーザと対話できる。例えば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信する。
【0061】
いくつかの実装が説明された。それにも拘わらず、本開示の精神および範囲から逸脱することなく、様々な修正を行うことができることが理解されるであろう。したがって、他の実装は、以下の特許請求の範囲内にある。