(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-02
(54)【発明の名称】STFTに基づくエコーミュータ
(51)【国際特許分類】
H04R 3/02 20060101AFI20240925BHJP
G10L 15/20 20060101ALI20240925BHJP
G10L 21/0208 20130101ALI20240925BHJP
【FI】
H04R3/02
G10L15/20 370D
G10L21/0208 100A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024516942
(86)(22)【出願日】2021-12-11
(85)【翻訳文提出日】2024-04-12
(86)【国際出願番号】 US2021062970
(87)【国際公開番号】W WO2023043470
(87)【国際公開日】2023-03-23
(32)【優先日】2021-09-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】トゥラジ・ザキザデー・シャベスタリー
(72)【発明者】
【氏名】アルン・ナラヤナン
【テーマコード(参考)】
5D220
【Fターム(参考)】
5D220CC06
(57)【要約】
短時間フーリエ変換に基づくエコーのミュートのための方法(300)が、マイクロフォンによってキャプチャされ、音響スピーカ(118)からのオーディオコンテンツ(154)に対応する音響エコー(156)を含むマイクロフォン信号(202)を受け取ることと、オーディオコンテンツを表すフレームのシーケンスを含む参照信号(158)を受け取ることとを含む。各フレームに関して、方法は、それぞれのフレームから音響エコーを除去するそれぞれの出力信号フレーム(206)を生成するために、それぞれのフレームを入力として受け取るように構成された音響エコーキャンセラ(210)を使用して処理することと、ダブルトーク検出器(220)を使用して、それぞれのフレームおよび出力信号フレームに基づいて、それぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することとを含む。方法は、エコーのみのフレームを含む各それぞれのフレームに関して、それぞれの出力信号フレームをミュートすることと、ダブルトークフレームを含む各それぞれのフレームに関してそれぞれの出力信号フレームに対する音声処理を実行することとをさらに含む。
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(410)上で実行されるときに前記データ処理ハードウェア(410)に動作を実行させるコンピュータによって実施される方法(300)であって、前記動作が、
マイクロフォン(116)によってキャプチャされた音響エコー(156)を含むマイクロフォン信号(202)を受け取ることであって、前記音響エコー(156)が、音響スピーカ(118)から再生されたオーディオコンテンツ(154)に対応する、受け取ることと、
前記音響スピーカ(118)が前記オーディオコンテンツ(154)を再生する前に参照チャネルで送られた前記オーディオコンテンツ(154)を表すフレームのシーケンスを含む参照信号(158)を受け取ることと、
前記マイクロフォン信号(202)のフレームのシーケンス内の各フレームに関して、
前記マイクロフォン信号(202)のそれぞれのフレームから前記音響エコー(156)を除去するそれぞれの出力信号フレーム(206)を生成するために、前記マイクロフォン信号(202)の前記それぞれのフレームを、前記参照信号(158)のフレームのシーケンス内のそれぞれのフレームを入力として受け取るように構成された音響エコーキャンセラ(210)を使用して処理することと、
ダブルトーク検出器(DTD)(220)を使用して、前記参照信号(158)の前記それぞれのフレームおよび前記それぞれの出力信号フレーム(206)に基づいて、前記マイクロフォン信号(202)の前記それぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することと、
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して、前記それぞれの出力信号フレーム(206)をミュートすることと、
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)をミュートした後、前記ダブルトークフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することとを含む、コンピュータによって実施される方法(300)。
【請求項2】
前記マイクロフォン信号(202)の一部が、前記マイクロフォン(116)によってキャプチャされた目標のスピーチ(12)を表すオーディオ信号をさらに含み、前記目標のスピーチ(12)が、前記オーディオコンテンツ(154)が前記音響スピーカ(118)から再生される間に話され、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記目標のスピーチ(12)を表す前記オーディオ信号を含むときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することをさらに含む請求項1に記載のコンピュータによって実施される方法(300)。
【請求項3】
音声処理を実行することが、自動音声認識(ASR)モデル(145)を使用して音声認識を実行することを含む請求項1または2に記載のコンピュータによって実施される方法(300)。
【請求項4】
前記動作が、前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定する前に、前記マイクロフォン信号(202)、前記参照信号(158)、および出力信号(206)の各それぞれのフレームを短時間フーリエ変換(STFT)領域に変換することをさらに含む請求項1から3のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項5】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記参照信号(158)の前記それぞれのフレームとの間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することと、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記それぞれの出力信号フレーム(206)との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むと判定することとを含む請求項1から4のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項6】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)と前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)との両方が前記ダブルトーク閾値を満たさないときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記エコーのみのフレームを含むと判定することをさらに含む請求項5に記載のコンピュータによって実施される方法(300)。
【請求項7】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)が、両方とも、所定の範囲の周波数サブバンドにわたって計算される請求項5または6に記載のコンピュータによって実施される方法(300)。
【請求項8】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすか否かを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの小さい方が前記ダブルトーク閾値未満であるときに、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすと判定することを含む請求項5から7のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項9】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは前記それぞれの出力信号フレーム(206)のうちの一方との間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)に基づく請求項1から8のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項10】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは前記それぞれの出力信号フレーム(206)のうちの他方との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)にさらに基づく請求項9に記載のコンピュータによって実施される方法(300)。
【請求項11】
前記音響エコーキャンセラ(210)が、線形音響エコーキャンセラを含む請求項1から10のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項12】
前記データ処理ハードウェア(410)、前記マイクロフォン(116)、および前記音響スピーカ(118)が、ユーザコンピューティングデバイス(110)上に存在する請求項1から11のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項13】
前記ダブルトークフレームを含む前記マイクロフォン信号(202)の前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することが、前記それぞれの出力信号フレーム(206)に対して音響エコー抑制を実行せずに、前記それぞれの出力信号フレーム(206)に対する音声処理を実行することを含む請求項1に記載のコンピュータによって実施される方法(300)。
【請求項14】
データ処理ハードウェア(410)と、
前記データ処理ハードウェア(410)と通信するメモリハードウェア(114、136)であって、前記データ処理ハードウェア(410)上で実行されるときに前記データ処理ハードウェア(410)に動作を実行させる命令を記憶し、前記動作が、
マイクロフォン(116)によってキャプチャされた音響エコー(156)を含むマイクロフォン信号(202)を受け取ることであって、前記音響エコー(156)が、音響スピーカ(118)から再生されたオーディオコンテンツ(154)に対応する、受け取ること、
前記音響スピーカ(118)が前記オーディオコンテンツ(154)を再生する前に参照チャネルで送られた前記オーディオコンテンツ(154)を表すフレームのシーケンスを含む参照信号(158)を受け取ること、
前記マイクロフォン信号(202)のフレームのシーケンス内の各フレームに関して、
前記マイクロフォン信号(202)のそれぞれのフレームから前記音響エコー(156)を除去するそれぞれの出力信号フレーム(206)を生成するために、前記マイクロフォン信号(202)の前記それぞれのフレームを、前記参照信号(158)のフレームのシーケンス内のそれぞれのフレームを入力として受け取るように構成された音響エコーキャンセラ(210)を使用して処理すること、
ダブルトーク検出器(DTD)(220)を使用して、前記参照信号(158)の前記それぞれのフレームおよび前記それぞれの出力信号フレーム(206)に基づいて、前記マイクロフォン信号(202)の前記それぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定すること、
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して、前記それぞれの出力信号フレーム(206)をミュートすること、ならびに
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)をミュートした後、前記ダブルトークフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することを含む、メモリハードウェア(114、136)とを含むシステム。
【請求項15】
前記マイクロフォン信号(202)の一部が、前記マイクロフォン(116)によってキャプチャされた目標のスピーチ(12)を表すオーディオ信号をさらに含み、前記目標のスピーチ(12)が、前記オーディオコンテンツ(154)が前記音響スピーカ(118)から再生される間に話され、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記目標のスピーチ(12)を表す前記オーディオ信号を含むときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することをさらに含む請求項14に記載のシステム。
【請求項16】
音声処理を実行することが、自動音声認識(ASR)モデル(145)を使用して音声認識を実行することを含む請求項14または15に記載のシステム。
【請求項17】
前記動作が、前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定する前に、前記マイクロフォン信号(202)、前記参照信号(158)、および出力信号(206)の各それぞれのフレームを短時間フーリエ変換(STFT)領域に変換することをさらに含む請求項14から16のいずれか一項に記載のシステム。
【請求項18】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記参照信号(158)の前記それぞれのフレームとの間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することと、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記それぞれの出力信号フレーム(206)との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むと判定することとを含む請求項14から17のいずれか一項に記載のシステム。
【請求項19】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)と前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)との両方が前記ダブルトーク閾値を満たさないときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記エコーのみのフレームを含むと判定することをさらに含む請求項18に記載のシステム。
【請求項20】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)が、両方とも、所定の範囲の周波数サブバンドにわたって計算される請求項18または19に記載のシステム。
【請求項21】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすか否かを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの小さい方が前記ダブルトーク閾値未満であるときに、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすと判定することを含む請求項18から20のいずれか一項に記載のシステム。
【請求項22】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは前記それぞれの出力信号フレーム(206)のうちの一方との間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)に基づく請求項14から21のいずれか一項に記載のシステム。
【請求項23】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは出力信号のそれぞれのフレームのうちの他方との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)にさらに基づく請求項22に記載のシステム。
【請求項24】
前記音響エコーキャンセラ(210)が、線形音響エコーキャンセラを含む請求項14から23のいずれか一項に記載のシステム。
【請求項25】
前記データ処理ハードウェア(410)、前記マイクロフォン(116)、および前記音響スピーカ(118)が、ユーザコンピューティングデバイス(110)上に存在する請求項14から24のいずれか一項に記載のシステム。
【請求項26】
前記ダブルトークフレームを含む前記マイクロフォン信号(202)の前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することが、前記それぞれの出力信号フレーム(206)に対して音響エコー抑制を実行せずに、前記それぞれの出力信号フレーム(206)に対する音声処理を実行することを含む請求項14から25のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、短時間フーリエ変換に基づくエコーミュータに関する。
【背景技術】
【0002】
音声対応デバイス(speech-enabled device)は、合成された再生オーディオを生成し、合成された再生オーディオを音声環境(speech environment)内の1人または複数のユーザに伝達することができる。音声対応デバイスが合成された再生オーディオを出力する間に、音声対応デバイスのマイクロフォンは、音声対応デバイスに向けられたユーザによって話されたスピーチをアクティブにキャプチャしながら、合成された再生オーディオを音響エコーとしてキャプチャする場合がある。残念ながら、合成された再生オーディオから生じる音響エコーがあると、合成された再生オーディオからのエコー中に発生するユーザによって話されたスピーチを音声認識器が認識することは、困難である場合がある。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の一態様は、STFTに基づくエコーミュータを使用して音声認識を実行するコンピュータによって実施される方法を提供する。コンピュータによって実施される方法は、データ処理ハードウェア上で実行されるとき、データ処理ハードウェアに、マイクロフォンによってキャプチャされた音響エコーを含むマイクロフォン信号を受け取ることを含む動作を実行させる。音響エコーは、音響スピーカから再生されたオーディオコンテンツに対応する。動作は、音響スピーカがオーディオコンテンツを再生する前に参照チャネル(reference channel)で送られたオーディオコンテンツを表すフレームのシーケンスを含む参照信号(reference signal)を受け取ることも含む。マイクロフォン信号のフレームのシーケンス内の各フレームに関して、動作は、マイクロフォン信号のそれぞれのフレームから音響エコーを除去するそれぞれの出力信号フレームを生成するために、マイクロフォン信号のそれぞれのフレームを、参照信号のフレームのシーケンス内のそれぞれのフレームを入力として受け取るように構成された音響エコーキャンセラを使用して処理することも含む。動作は、ダブルトーク(double-talk)検出器(DTD)を使用して、参照信号のそれぞれのフレームおよびそれぞれの出力信号フレームに基づいて、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することも含む。エコーのみのフレームを含むマイクロフォン信号のフレームのシーケンス内の各それぞれのフレームに関して、動作は、それぞれの出力信号フレームをミュートすることも含む。エコーのみのフレームを含むマイクロフォン信号のフレームのシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレームをミュートした後、動作は、ダブルトークフレームを含むマイクロフォン信号のフレームのシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレームに対する音声処理を実行することも含む。
【0004】
本開示の実装は、以下の任意の特徴のうちの1つまたは複数を含む場合がある。一部の実装において、マイクロフォン信号の一部は、マイクロフォンによってキャプチャされた目標のスピーチを表すオーディオ信号をさらに含み、動作は、マイクロフォン信号のそれぞれのフレームが目標のスピーチを表すオーディオ信号を含むときに、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することも含む。ここで、目標のスピーチは、オーディオコンテンツが音響スピーカから再生される間に話される。一部の例において、音声処理を実行することは、自動音声認識(ASR)モデルを使用して音声認識を実行することを含む。一部の実装においては、DTDを使用して、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定する前に、動作は、マイクロフォン信号、参照信号、および出力信号の各それぞれのフレームを短時間フーリエ変換(STFT)領域に変換することをさらに含む。
【0005】
一部の例において、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、DTDを使用して、マイクロフォン信号のそれぞれのフレームと参照信号のそれぞれのフレームとの間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータを計算することと、DTDを使用して、マイクロフォン信号のそれぞれのフレームと出力信号のそれぞれのフレームとの間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータを計算することとを含む。これらの例は、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することと、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすときに、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むと判定することとをさらに含む。これらの例において、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、それぞれの第1のフレームレベルのダブルトークインジケータとそれぞれの第2のフレームレベルのダブルトークインジケータとの両方がダブルトーク閾値を満たさないときに、マイクロフォン信号のそれぞれのフレームがエコーのみのフレームを含むと判定することをさらに含んでよい。それぞれの第1のフレームレベルのダブルトークインジケータおよびそれぞれの第2のフレームレベルのダブルトークインジケータは、両方とも、所定の範囲の周波数サブバンドにわたって計算されてよい。追加的または代替的に、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することは、それぞれの第1のフレームレベルのダブルトークインジケータおよびそれぞれの第2のフレームレベルのダブルトークインジケータのうちの小さい方がダブルトーク閾値未満であるときに、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすと判定することを含んでよい。
【0006】
一部の実装において、マイクロフォン信号のフレームのシーケンス内の各フレームに関して、動作は、DTDを使用して、マイクロフォン信号のそれぞれのフレームと、参照信号のそれぞれのフレームまたは出力信号のそれぞれのフレームのうちの一方との間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータを計算することをさらに含む。ここで、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、それぞれの第1のフレームレベルのダブルトークインジケータに基づく。これらの実装において、動作は、DTDを使用して、マイクロフォン信号のそれぞれのフレームと、参照信号のそれぞれのフレームまたは出力信号のそれぞれのフレームのうちの他方との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータを計算することをさらに含んでよく、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、それぞれの第2のフレームレベルのダブルトークインジケータにさらに基づく。
【0007】
一部の例において、音響エコーキャンセラは、線形音響エコーキャンセラ(linear acoustic echo canceler)を含む。一部の実装において、データ処理ハードウェア、マイクロフォン、および音響スピーカは、ユーザコンピューティングデバイス上に存在する。一部の例において、ダブルトークフレームを含むマイクロフォン信号のシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレームに対する音声処理を実行することは、それぞれの出力信号フレームに対して音響エコー抑制を実行せずに、それぞれの出力信号フレームに対する音声処理を実行することを含む。
【0008】
本開示の別の態様は、STFTに基づくエコーミュータを使用して音声認識を実行するためのシステムを提供する。システムは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを含む。メモリハードウェアは、データ処理ハードウェア上で実行されるときにデータ処理ハードウェアに、マイクロフォンによってキャプチャされた音響エコーを含むマイクロフォン信号を受け取ることを含む動作を実行させる命令を記憶する。音響エコーは、音響スピーカから再生されたオーディオコンテンツに対応する。動作は、音響スピーカがオーディオコンテンツを再生する前に参照チャネルで送られたオーディオコンテンツを表すフレームのシーケンスを含む参照信号を受け取ることも含む。マイクロフォン信号のフレームのシーケンス内の各フレームに関して、動作は、マイクロフォン信号のそれぞれのフレームから音響エコーを除去するそれぞれの出力信号フレームを生成するために、マイクロフォン信号のそれぞれのフレームを、参照信号のフレームのシーケンス内のそれぞれのフレームを入力として受け取るように構成された音響エコーキャンセラを使用して処理することを含む。動作は、ダブルトーク検出器(DTD)を使用して、参照信号のそれぞれのフレームおよびそれぞれの出力信号フレームに基づいて、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することも含む。エコーのみのフレームを含むマイクロフォン信号のフレームのシーケンス内の各それぞれのフレームに関して、動作は、それぞれの出力信号フレームをミュートすることを含む。エコーのみのフレームを含むマイクロフォン信号のフレームのシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレームをミュートした後、動作は、ダブルトークフレームを含むマイクロフォン信号のフレームのシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレームに対する音声処理を実行することを含む。
【0009】
この態様は、以下の任意の特徴のうちの1つまたは複数を含む場合がある。一部の実装において、マイクロフォン信号の一部は、マイクロフォンによってキャプチャされた目標のスピーチを表すオーディオ信号をさらに含み、動作は、マイクロフォン信号のそれぞれのフレームが目標のスピーチを表すオーディオ信号を含むときに、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することも含む。ここで、目標のスピーチは、オーディオコンテンツが音響スピーカから再生される間に話される。一部の例において、音声処理を実行することは、自動音声認識(ASR)モデルを使用して音声認識を実行することを含む。一部の実装においては、DTDを使用して、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定する前に、動作は、マイクロフォン信号、参照信号、および出力信号の各それぞれのフレームを短時間フーリエ変換(STFT)領域に変換することをさらに含む。
【0010】
一部の例において、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、DTDを使用して、マイクロフォン信号のそれぞれのフレームと参照信号のそれぞれのフレームとの間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータを計算することと、DTDを使用して、マイクロフォン信号のそれぞれのフレームと出力信号のそれぞれのフレームとの間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータを計算することとを含む。これらの例は、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することと、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすときに、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むと判定することとをさらに含む。これらの例において、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、それぞれの第1のフレームレベルのダブルトークインジケータとそれぞれの第2のフレームレベルのダブルトークインジケータとの両方がダブルトーク閾値を満たさないときに、マイクロフォン信号のそれぞれのフレームがエコーのみのフレームを含むと判定することをさらに含んでよい。それぞれの第1のフレームレベルのダブルトークインジケータおよびそれぞれの第2のフレームレベルのダブルトークインジケータは、両方とも、所定の範囲の周波数サブバンドにわたって計算されてよい。追加的または代替的に、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することは、それぞれの第1のフレームレベルのダブルトークインジケータおよびそれぞれの第2のフレームレベルのダブルトークインジケータのうちの小さい方がダブルトーク閾値未満であるときに、それぞれの第1のフレームレベルのダブルトークインジケータまたはそれぞれの第2のフレームレベルのダブルトークインジケータのうちの少なくとも一方がダブルトーク閾値を満たすと判定することを含んでよい。
【0011】
一部の実装において、マイクロフォン信号のフレームのシーケンス内の各フレームに関して、動作は、DTDを使用して、マイクロフォン信号のそれぞれのフレームと、参照信号のそれぞれのフレームまたは出力信号のそれぞれのフレームのうちの一方との間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータを計算することをさらに含む。ここで、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、それぞれの第1のフレームレベルのダブルトークインジケータに基づく。これらの実装において、動作は、DTDを使用して、マイクロフォン信号のそれぞれのフレームと、参照信号のそれぞれのフレームまたは出力信号のそれぞれのフレームのうちの他方との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータを計算することをさらに含んでよく、マイクロフォン信号のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することは、それぞれの第2のフレームレベルのダブルトークインジケータにさらに基づく。
【0012】
一部の例において、音響エコーキャンセラは、線形音響エコーキャンセラを含む。一部の実装において、データ処理ハードウェア、マイクロフォン、および音響スピーカは、ユーザコンピューティングデバイス上に存在する。一部の例において、ダブルトークフレームを含むマイクロフォン信号のシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレームに対する音声処理を実行することは、それぞれの出力信号フレームに対して音響エコー抑制を実行せずに、それぞれの出力信号フレームに対する音声処理を実行することを含む。
【0013】
本開示の1つまたは複数の実装の詳細が、添付の図面および下の説明に記載されている。その他の態様、特徴、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
【
図1】音響エコー除去(AEC: Acoustic Echo Cancellation)システムを使用する例示的な音声環境の概略図である。
【
図3】音響エコー除去システムを実装する方法の動作の例示的な配列の流れ図である。
【
図4】本明細書に記載のシステムおよび方法を実装するために使用されてよい例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0015】
様々な図面における同様の参照符号は、同様の要素を示す。
【0016】
音声対応デバイスは、合成された再生オーディオを生成し、合成された再生オーディオを音声環境内の1人または複数のユーザに伝達することができる。ここで、合成された再生オーディオは、音声対応デバイスの外部の人または可聴音のその他の音源ではなく、音声対応デバイス自体または音声対応デバイスに関連する機械処理システムに由来する、音声対応デバイスによって生成されるオーディオを指す。概して、音声対応デバイスは、テキストトゥスピーチ(TTS)システムを使用して合成された再生オーディオを生成する。TTSシステムは、テキストをテキストのオーディオ表現に変換し、テキストのオーディオ表現は、人間の言語を使用した口頭の発話のオーディオ表現のようであるようにモデル化される。
【0017】
音声対応デバイスのオーディオ出力コンポーネント(たとえば、音響スピーカ)が合成された再生オーディオを出力する間、音声対応デバイスのオーディオキャプチャコンポーネント(たとえば、マイクロフォン)は、音声環境内のオーディオ信号を依然としてアクティブにキャプチャ(すなわち、リスニング)している場合がある。これは、スピーカから出力された合成された再生オーディオの一部が、オーディオキャプチャコンポーネントにおいて音響エコーとして受け取られることを意味する。音声対応デバイスは、音声環境内でオーディオ信号をアクティブにキャプチャしながら、オーディオキャプチャコンポーネントによって音響エコーとして同様にキャプチャされる場合があるメディアコンテンツ(たとえば、音楽)などのその他の種類のオーディオコンテンツを再生する場合もある。残念ながら、再生オーディオコンテンツ(たとえば、合成されたオーディオコンテンツ)から生じる音響エコーがあると、音声対応デバイスに実装された、または音声対応デバイスと通信するリモートシステムに実装された音声認識器が合成された再生オーディオからのエコー中に発生する口頭の発話を理解することは、困難である場合がある。言い換えると、音声対応デバイスは、音声対応デバイスのユーザからのクエリまたはコマンドに対する応答として、合成された再生オーディオを生成することが多い。たとえば、ユーザは、音声対応デバイスに「今日の天気はどう」と尋ねる場合がある。音声対応デバイスがユーザからこのクエリまたは質問を受け取るとき、音声対応デバイス、または音声対応デバイスと通信するリモートシステムは、最初に、ユーザからの口頭の発話を判定または処理しなければならない。口頭の発話を処理することによって、音声対応デバイスは、口頭の発話が(たとえば、天気に関する)ユーザからのクエリに対応することと、クエリとして、ユーザが音声対応デバイスからの応答を期待することとを認識することができる。
【0018】
通常、音声対応デバイスは、音声認識システム(たとえば、自動音声認識(ASR)システム)を使用して、口頭の発話の内容を判定する。音声認識システムは、オーディオ信号またはオーディオデータを受け取り、オーディオ信号内で話された文字、単語、および/または文章を表すテキストの文字起こし(transcript)を生成する。しかし、音声対応デバイスの音声キャプチャコンポーネントが、音声対応デバイスに対してユーザによって話された1つまたは複数の発話のすべてまたは一部と同時にエコーおよび/または歪みを受け取るとき、音声認識は、より複雑になる場合がある。たとえば、音声対応デバイスの1つまたは複数のマイクロフォンは、エコーまたは音響フィードバックとして、合成された再生オーディオ信号の一部を与えられる。1つまたは複数の口頭の発話と組み合わされた合成された再生オーディオからのエコーは、音声対応デバイスが、重なり合うスピーチをともなうオーディオ信号を受け取るという結果をもたらす。ここで、重なり合うスピーチは、合成された再生オーディオからの音響エコーが、1つまたは複数の口頭の発話と同じときに(すなわち、同時にまたは並行して)発生するダブルトーク事象を指す。ダブルトーク事象中、音声認識システムは、音声対応デバイスにおいて受け取られたオーディオ信号を処理するのに困難を抱える場合がある。つまり、重なり合うスピーチは、1つまたは複数の口頭の発話に関する正確な文字起こしを生成する音声認識システムの能力を損なう場合がある。音声認識システムからの正確な文字起こしがないと、音声対応デバイスは、ユーザによる口頭の発話からのクエリまたはコマンドに正確に応答することができないか、またはまったく応答することができない場合がある。あるいは、音声対応デバイスは、実際には合成された再生オーディオ信号および/または周囲からのエコーである可聴音を解釈しようと試みるその音声対応デバイスの処理リソースを使用することを避けたい場合がある。
【0019】
音声対応デバイスのオーディオキャプチャコンポーネントによってキャプチャされた歪みまたはエコーに対抗するための1つの手法は、音響エコー除去(AEC)システムを使用することである。AECシステムにおいて、AECシステムは、音響スピーカから再生されたオーディオコンテンツに関連するエコーを除去するためにオーディオ信号を使用する。しかし、エコーを除去するためにAECシステムによって採用されるオーディオ信号は、不可避的に残留エコー(residual echo)を生じ、残留エコーは、音声認識システムの性能をさらに悪化させる場合がある。音声対応デバイスによる音声認識を呼び出すために予め決められた単語またはフレーズが言われるウェイクワードアプリケーション(wake word application)において、AECシステムによって生成される残留エコーは、ウェイクワードを見つける音声認識システムの能力を向上させる。しかし、ウェイクワードレスアプリケーション(wake word-less application)においては、この残留エコーが、音声認識システムの性能に悪影響を及ぼす。この残留エコーを削減するための1つの方法は、AECシステムによって採用されたオーディオ信号をポストフィルタ(たとえば、エコーサプレッサ)で処理することによる。しかし、音声認識システムは、概して、オーディオ信号のこのポストフィルタ処理に敏感であり、ポストフィルタの使用を次善の解決策にする。
【0020】
図1を参照すると、一部の実装において、音声環境100は、音声対応デバイス110(デバイス110またはユーザデバイス110とも呼ばれる)に口頭の発話12を伝達するユーザ10を含む。ユーザ10(すなわち、発話12の話者)は、デバイス110からの応答を求めるためのクエリまたはコマンドとして発話12を話す場合がある。デバイス110は、音声環境100内の1人または複数のユーザ10からの音をキャプチャするように構成される。ここで、オーディオ音は、デバイス110によってキャプチャされた可聴クエリ、デバイス110のコマンド、または可聴コミュニケーションとして機能するユーザ10による口頭の発話12を指す場合がある。デバイス110のまたはデバイス110に関連する音声対応システムは、クエリに答えることおよび/またはコマンドを実行させることによって、コマンドに関するクエリをてきぱきさばく場合がある。
【0021】
ここで、デバイス110は、オーディオキャプチャデバイス116(マイクロフォンとも呼ばれる)によってキャプチャされた音響エコー156、および/またはユーザ10による口頭の発話12を含むマイクロフォン信号202を受け取る。音響エコー156は、オーディオ出力デバイス118(音響スピーカとも呼ばれる)から再生されたオーディオコンテンツ154に対応する。デバイス110は、ユーザ10に関連し、マイクロフォン信号202を受け取ることができる任意のコンピューティングデバイスに対応する場合がある。ユーザデバイス110のいくつかの例は、モバイルデバイス(たとえば、モバイル電話、タブレット、ラップトップなど)、コンピュータ、ウェアラブルデバイス(たとえば、スマートウォッチ)、スマート家電、およびモノのインターネット(IoT)デバイス、スマートスピーカなどを含むがこれらに限定されない。デバイス110は、データ処理ハードウェア112と、データ処理ハードウェア112と通信し、データ処理ハードウェア112によって実行されるときにデータ処理ハードウェア112に1つまたは複数の動作を実行させる命令を記憶するメモリハードウェア114とを含む。一部の例において、デバイス110は、1つまたは複数のアプリケーション(すなわち、ソフトウェアアプリケーション)を含み、各アプリケーションは、デバイス110に関連する1つまたは複数の音声処理システム140、150、200を利用して、アプリケーション内で様々な機能を実行してよい。たとえば、デバイス110は、ユーザ10の様々なタスクを支援するために、ユーザ10に合成された再生オーディオコンテンツ154を伝達するように構成されたアシスタントアプリケーションを含む。その他の例において、アシスタントアプリケーションまたはメディアアプリケーションは、メディアコンテンツ(たとえば、音楽、トークラジオ、ポッドキャストコンテンツ、テレビ/映画コンテンツ)を含むオーディオコンテンツ154を再生するように構成される。さらなる例において、アプリケーションは、ユーザ10とコミュニケーション/会話するか、またはユーザ10の様々なタスクの実行を支援するために音響スピーカ118から再生するための合成音声としてオーディオコンテンツ154を伝達するように構成されたアシスタントアプリケーションに対応する。たとえば、アシスタントアプリケーションは、ユーザ10によってアシスタントアプリケーションに送られたクエリ/コマンドに応答する合成音声を聞こえるように出力する場合がある。さらなる例において、音響スピーカ118から再生されるオーディオコンテンツ154は、限定なしに、タイマの終了、電話の着信のアラート、ドアベルのチャイム、オーディオメッセージなどの通知/アラートに対応する。
【0022】
デバイス110は、音声環境100内のオーディオデータ14をキャプチャし、電気的なマイクロフォン信号202に変換するためのマイクロフォン116と、再生オーディオコンテンツ154(たとえば、合成された再生オーディオコンテンツ)を伝達/出力するための音響スピーカ118とを含む。デバイス110は、示された例においてはマイクロフォン116を実装するが、本開示の範囲を逸脱することなくマイクロフォン116のアレイを実装してよく、それによって、アレイ内の1つまたは複数のマイクロフォン116が、デバイス110上に物理的に存在せず、デバイス110のインターフェース/周辺機器と通信する場合がある。たとえば、デバイス110は、車両全体に配置されたマイクロフォンのアレイを利用する車両インフォテインメントシステムに対応する場合がある。同様に、音響スピーカ118は、デバイス110上に存在する1つもしくは複数のスピーカか、デバイス110と通信する1つもしくは複数のスピーカか、または1つもしくは複数のスピーカがデバイス110上に存在し、1つもしくは複数のその他のスピーカがデバイス110から物理的に取り除かれるがデバイス110と通信する組合せかのいずれかを含んでよい。
【0023】
さらに、デバイス110は、ネットワーク120を介してリモートシステム130と通信するように構成されてよい。リモートシステム130は、リモートデータ処理ハードウェア134(たとえば、リモートサーバもしくはCPU)および/またはリモートメモリハードウェア136(たとえば、リモートデータベースもしくはその他のストレージハードウェア)などのリモートリソース132を含んでよい。デバイス110は、リモートリソース132を利用して、音声処理および/または合成された再生の伝達に関連する様々な機能を実行する場合がある。たとえば、デバイス110は、音声認識システム140を使用して(たとえば、音声認識モデル145を使用して)音声認識を実行するように構成される。さらに、デバイスは、TTSシステム150を使用してテキストからスピーチへの変換を実行し、AECシステム200を使用して音響エコー除去を実行するように構成されてよい。これらのシステム140、150、200は、デバイス110上に存在する場合があり(オンデバイスシステムと呼ばれる)、または遠隔に存在する(たとえば、リモートシステム130上に存在する)が、デバイス110と通信する場合がある。一部の例においては、システム140、150、200の一部がローカルまたはオンデバイスに存在する一方、その他の部分は遠隔に存在する。言い換えると、これらのシステム140、150、200のいずれも、任意の組合せでローカルまたは遠隔にあってよい。たとえば、システム140、150、200のサイズまたは処理要件がかなり大きいとき、システム140、150、200は、リモートシステム130に存在してよい。しかし、デバイス110が1つまたは複数のシステム140、150、200のサイズまたは処理要件をサポートしてよいとき、1つまたは複数のシステム140、150、200は、データ処理ハードウェア112および/またはメモリハードウェア114を使用してデバイス110上に存在してよい。任意で、システム140、150、200のうちの1つまたは複数は、ローカル/オンデバイスと遠隔との両方に存在する場合がある。たとえば、システム140、150、200のうちの1つまたは複数は、デバイス110とリモートシステム130との間のネットワーク120への接続が利用可能であるとき、デフォルトでリモートシステム130上で実行されてよいが、接続が失われるか、またはネットワーク120が利用不可能であるとき、システム140、150、200は、その代わりに、デバイス110のローカルで実行される。
【0024】
音声認識システム140は、入力としてオーディオ信号202を受け取り、そのオーディオ信号を、出力として書き起こし(transcription)142に書き起こす。概して、オーディオ信号202を書き起こし142に変換することによって、音声認識システム140は、ユーザ10からの口頭の発話12がクエリ、コマンド、または何らかのその他の形態のオーディオコミュニケーションに対応するときをデバイス110が認識することを可能にする。書き起こし142は、クエリまたはコマンドに対する応答を生成するためにそのときデバイス110が使用してよいテキストのシーケンスを指す。たとえば、ユーザ10がデバイス110に「今日の天気はどう」という質問をする場合、デバイス110は、質問「今日の天気はどう」に対応するオーディオ信号を音声認識システム140に渡す。音声認識システム140は、オーディオ信号を、「今日の天気はどう」というテキストを含む文字起こしに変換する。それから、デバイス110は、テキストまたはテキストの一部を使用して、クエリに対する応答を決定してよい。たとえば、当日(すなわち、今日)の天気を決定するために、デバイス110は、テキスト(たとえば、「今日の天気はどう」)またはテキストの特定する部分(たとえば、「天気」および「今日」)を検索エンジンに渡す。そして、検索エンジンは、1つまたは複数の検索結果を返してよく、デバイス110は、検索結果を解釈して、ユーザ10のための応答を生成する。
【0025】
一部の実装において、デバイス110またはデバイス110に関連するシステムは、デバイス110が口頭の発話12のクエリに対する応答としてユーザ10に伝達するテキスト152を特定する。それから、デバイス110は、TTSシステム150を使用してテキスト152を、デバイス110が口頭の発話12のクエリに対する応答としてユーザ10に伝達する(たとえば、ユーザ10に聞こえるように伝達する)ための対応する合成された再生オーディオ154に変換してよい。言い換えると、TTSシステム150は、入力としてテキスト152を受け取り、テキスト152を、合成された再生オーディオ154の出力に変換し、合成された再生オーディオ154は、テキスト152の可聴表現を定義するオーディオ信号である。一部の例において、TTSシステム150は、テキスト152を処理して符号化されたフォーマット(たとえば、テキスト埋め込み)にするテキストエンコーダを含む。ここで、TTSシステム150は、訓練されたテキストトゥスピーチモデルを使用して、テキスト152の符号化されたフォーマットから合成された再生オーディオ154を生成してよい。生成されると、TTSシステム150は、デバイス110が合成された再生オーディオ154を出力することを可能にするために、デバイス110に合成された再生オーディオ154を伝達する。たとえば、デバイス110は、デバイス110のスピーカ118において「今日は晴れです」という合成された再生オーディオ154を出力する。
【0026】
引き続き
図1を参照すると、デバイス110が合成された再生オーディオ154(たとえば、合成音声)を出力するとき、合成された再生オーディオ154は、マイクロフォン116によってキャプチャされるエコー156を生じる。残念ながら、エコー156に加えて、マイクロフォン116は、デバイス110に向けられた目標のスピーチに対応するユーザ10からの別の口頭の発話12も同時にキャプチャしている場合がある。たとえば、
図1は、デバイス110が合成された再生オーディオコンテンツ154を出力するときに、ユーザ10が「明日はどう?」と述べることによってデバイス110への口頭の発話12で天気についてさらに尋ねることを描写する。特に、ユーザ10がホットワード(たとえば、検出されたときに音声認識を呼び出すようにデバイス110をトリガする予め決められた単語またはフレーズ)を言うことを要求することなく、ユーザ10が音声認識システム140による認識のために補足クエリ(follow-up query)を与えることを可能にするために、デバイス110がマイクロフォン116を開いたままに維持し、音声認識システム140をアクティブなままに維持する継続された会話のシナリオの一部として、ユーザ10は発話12を話す。ユーザ10によって話された発話12がホットワードを含むとき、エコー156は、音声認識システム140がオーディオ信号14を文字起こしに変換するのを助ける。しかし、デバイス110が音声認識を実行するためにユーザ10がホットワードを言うことを要求しないとき、ユーザデバイス110は、エコー156を含むマイクロフォン信号202を処理する場合があり、ユーザデバイス110にスピーカ118から出力されたユーザデバイス110自体の再生オーディオ154を処理させる。
【0027】
ここで、口頭の発話12およびエコー156は、マイクロフォン信号202を形成するためにマイクロフォン116によって両方とも同時にキャプチャされる。言い換えると、マイクロフォン信号202は、ユーザ10が発話12を話す前にスピーカ118から出力された再生オーディオコンテンツ154に対応するエコー156のみを含む部分と、ユーザ10によって話された発話12がスピーカ118から出力された再生オーディオコンテンツ154の一部と重なり合う重なり合った部分(たとえば、重なり合った領域204)と、音響スピーカ118が再生オーディオコンテンツ154の出力を停止した後にユーザ10によって話された発話12のみを含む部分とを含む。
【0028】
図1において、キャプチャされたマイクロフォン信号202内の重なり合う領域204は、キャプチャされたマイクロフォン信号202内で発話12の一部分と合成された再生オーディオ154の一部分とが互いに重なり合う場合を示すダブルトーク事象に対応する。ダブルトーク事象中、音声認識システム140は、発話12が合成された再生オーディオコンテンツ154のエコー156と混合されるので、マイクロフォン116によってキャプチャされたオーディオ信号202内の天気の質問「明日はどう?」に対応する後続のクエリ12を認識することに問題を抱える場合がある。上で検討されたように、マイクロフォン信号202内のエコー156を削減するための1つの方法は、エコーサプレッサフィルタでマイクロフォン信号202を処理することによる。しかし、音声認識システム140は、この種のフィルタリングされたマイクロフォン信号202を処理するのが困難である。
【0029】
これを解決するために、デバイス110は、マイクロフォン信号202を処理し、音声認識システム140に出力を提供するAECシステム200を含む。AECシステム200(
図2)は、音響エコーキャンセラ210、ダブルトーク検出器220、およびエコーミュータ230を含み、ダブルトークを含むオーディオフレームが音声認識システム140による処理のために通過することを許しながら、エコーのみとして特定されるオーディオ出力信号フレームをミュートするように構成される。言い換えると、AECシステム200は、エコー156と混合された後続のクエリ12を含むマイクロフォン信号202を受け取る。マイクロフォン信号の各オーディオフレームに関して、AECシステム200は、オーディオフレームを処理し、オーディオフレームがエコーのみであるのか、またはダブルトークを含むのかを判定する。
【0030】
図2を参照すると、AECシステム200の音響エコーキャンセラ210は、デバイスに向けられた目標のスピーチ12のそれぞれのフレームと、マイクロフォン116によってキャプチャされた再生オーディオ154を表すそれぞれのフレームに対応する参照信号158とを同時に含む場合があるマイクロフォン信号202を受け取るように構成される。フレームのシーケンス内の各フレームに関して、音響エコーキャンセラ210は、マイクロフォン信号202内のエコー156を除去するために参照信号158を使用してマイクロフォン信号202を処理し、それによって、出力信号フレーム206を生成する。一部の例において、AECシステム200は、さらに、以下の式を使用して、マイクロフォン信号202、参照信号158、および出力信号206の各それぞれのフレームを短時間フーリエ変換(STFT)領域に変換する。
Y(l, k) =Σ
ny[n]w[n - lL] exp(-j2πkn/N), k = 0,...,N - 1 (1)
式中、Lは、フレームホップ(frame-hop)を表し、w[n]は、可能なN点での分析窓(analysis window)を表し、lは、フレームインデックスを表し、kは、サブバンドインデックスを表す。
【0031】
それから、ダブルトーク検出器220は、マイクロフォン信号m[n] 202のSTFT領域のそれぞれのフレーム(M(l, k)と表される)、参照信号x[n] 158のSTFT領域のそれぞれのフレーム(X(l, k)と表される)、および残留エコー出力信号r[n] 206のSTFT領域のそれぞれのフレーム(R(l, k)と表される)を受け取り、それぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定する。これを達成するために、ダブルトーク検出器220は、各それぞれのフレームのサブバンドごとに2つのダブルトークインジケータ208を使用する。2つのダブルトークインジケータ208a、208bは、以下のように表現される場合がある。
【0032】
【0033】
式中、cPQ(k)は、再生オーディオフレーム154 P(l, k)およびQ(l, k)のSTFT領域の、ラグ0での各サブバンドkの複素相互相関を表す。ここで、P(l, k)およびQ(l, k)は、それぞれ、時間領域信号p[n]およびq[n]に関連付けられる。複素相互相関cPQ(k)は、以下のように表される。
cPQ(k) = E{P(l, k)Q*(l, k)} (3)
式中、E{・}は、数学的期待値を表し、・*は、複素共役を表す。さらに、サブバンドkのエネルギーは、以下のように表される場合がある。
【0034】
【0035】
各サブバンドの相互相関は、以下の式を使用して、STFT領域上の指数関数的に重み付けされた平均を使用することによって、サブバンドのエネルギーを決定する。
cPQ(l, k) =ρcPQ(l - 1, k) + (1 -ρ)P(l, k)Q*(l, k)
σ2(l, k) =ρσ2(l - 1, k) + (1 -ρ)P(l, k)P*(l, k) (5)
式中、ρは、指数関数的重み係数(すなわち、忘却係数)を表す。たとえば、0.9の指数関数的重み係数ρは、推定精度と応答時間との間のバランスをとる場合がある。これを使用して、式(2)は、再定式化され、以下のように表される場合がある。
【0036】
【0037】
一部の例において、第1のダブルトークインジケータ208aは、マイクロフォン信号202と参照信号158との間の相互相関によって計算され、一方、第2のダブルトークインジケータ208bは、マイクロフォン信号202と出力信号206との間の相互相関によって計算される。
【0038】
ダブルトーク検出器220は、インジケータおよびサブバンドエネルギーを使用して、限られた数のサブバンドにわたるサブバンドインジケータの加重平均を計算することによって、各それぞれのフレームに関してダブルトークインジケータ208a、208bを計算する。たとえば、ダブルトークインジケータ208a、208bを決定するために、700Hzから2400Hzまでの間のサブバンドが使用される場合がある。各ダブルトークインジケータ208a、208bは、帯域内のエネルギーを決定するためにフレームのシーケンス内の各フレームの相互相関をとることによって、所与のサブバンド内の残差(residual)のエネルギーによって重み付けされる。サブバンド内の残差エネルギーが高いほど、ダブルトークの存在の見込み(likelihood)が大きいことを示し、ダブルトークインジケータ208a、208bに、フレームがダブルトークを含むことを示させる。第1のダブルトークインジケータ208aは、以下のように計算される場合がある。
【0039】
【0040】
同様に、第2のダブルトークインジケータ208bは、以下のように計算される場合がある。
【0041】
【0042】
ダブルトーク検出器220が出力としてダブルトークインジケータ208a、208bを計算すると、出力は、ダブルトークインジケータ208a、208bのうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定するための入力としてエコーミュータ230に提供される。一部の例において、ダブルトーク検出器220は、ダブルトーク閾値が満たされるかどうかを判定するためのエコーミュータ230への入力として、第1または第2のダブルトークインジケータ208a、208bの一方のみを計算する。閾値τが与えられると、ダブルトーク検出器220は、それぞれのフレームがミュートされるべきエコーのみであるのか、または通過させられるべきダブルトークを含むのかを判定する。これは、以下のように判定される。
【0043】
【0044】
ダブルトークインジケータ208a、208bのうちの少なくとも一方がダブルトーク閾値を満たすとき、それぞれのフレームは、音声認識システム140による処理のために通過させられる。ダブルトークインジケータ208a、208bの両方がダブルトーク閾値を満たさないとき、それぞれのフレームは、エコーのみとして特定され、ミュートされる(すなわち、音声認識システムによる処理のために渡されない)。ダブルトークインジケータ208a、208bのうちの小さい方がダブルトーク閾値を満たすことを要求することは、フレームをミュートすることよりもフレームを通過させることを支持する。
【0045】
ダブルトーク閾値τは、データ駆動型の手法を使用して計算される場合がある。発話をエコーのみの区間およびダブルトークの区間にセグメンテーションするために、発話からメタデータが収集される。次に、フレームレベルのダブルトークインジケータ208a、208bが、訓練データセットのすべてのフレームに関して計算される。所与の閾値τに関して、エコーのみのフレームおよびダブルトークフレームの誤分類の割合が計算される。これは、10%以下のダブルトークフレームの誤分類をもたらす閾値τを特定することを目標に、ある範囲の閾値τに関して繰り返されてよい。
【0046】
図3は、STFTに基づくエコーミュータ230を使用して音声認識を実行する方法300の動作の例示的な配列の流れ図を含む。動作302において、方法300は、マイクロフォン116によってキャプチャされた音響エコー156を含むマイクロフォン信号202を受け取ることを含む。音響エコー156は、音響スピーカ118から再生されたオーディオコンテンツ154に対応する。動作304において、方法300は、音響スピーカ118がオーディオコンテンツ154を再生する前に参照チャネルで送られたオーディオコンテンツ154を表すフレームのシーケンスを含む参照信号158を受け取ることを含む。
【0047】
マイクロフォン信号202のフレームのシーケンス内の各フレームに関して、方法300は、動作306において、マイクロフォン信号202のそれぞれのフレームから音響エコー156を除去するそれぞれの出力信号フレーム206を生成するために、マイクロフォン信号202のそれぞれのフレームを、参照信号158のフレームのシーケンス内のそれぞれのフレームを入力として受け取るように構成された音響エコーキャンセラ210を使用して処理することを含む。動作308において、方法300は、ダブルトーク検出器220を使用して、参照信号158のそれぞれのフレームおよびそれぞれの出力信号フレーム206に基づいて、マイクロフォン信号202のそれぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することを含む。エコーのみのフレームを含むマイクロフォン信号202のフレームのシーケンス内の各それぞれのフレームに関して、動作310における方法300は、それぞれの出力信号フレーム206をミュートすることを含む。動作312において、エコーのみのフレームを含むマイクロフォン信号202のフレームのシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレーム206をミュートした後、方法300は、ダブルトークフレームを含むマイクロフォン信号202のフレームのシーケンス内の各それぞれのフレームに関してそれぞれの出力信号フレーム206に対する音声処理を実行することを含む。
【0048】
図4は、本明細書に記載のシステムおよび方法を実装するために使用されてよい例示的なコンピューティングデバイス400の概略図である。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すように意図される。本明細書に示されるコンポーネント、それらのコンポーネントの接続および関係、ならびにそれらのコンポーネントの機能は、単に例示的であるように意図されており、本明細書において説明および/または特許請求される本開示の実装を限定するように意図されていない。
【0049】
コンピューティングデバイス400は、プロセッサ410、メモリ420、ストレージデバイス430、メモリ420および高速拡張ポート450に接続する高速インターフェース/コントローラ440、ならびに低速バス470およびストレージデバイス430に接続する低速インターフェース/コントローラ460を含む。コンポーネント410、420、430、440、450、および460の各々は、様々なバスを使用して相互接続されており、共通のマザーボードに搭載されるか、または適宜その他の方法で搭載される場合がある。したがって、プロセッサ410(ユーザコンピューティングデバイス110のデータ処理ハードウェア112またはリモートシステム130のデータ処理ハードウェア134を含む場合がある「データ処理ハードウェア410」とも呼ばれる)は、メモリ420内またはストレージデバイス430上に記憶された命令を含む、コンピューティングデバイス400内で実行するための命令を処理して、高速インターフェース440に結合されたディスプレイ480などの外部入力/出力デバイス上のグラフィカルユーザインターフェース(GUI)のためのグラフィカルな情報を表示することができる。その他の実装においては、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数の種類のメモリと一緒に適宜使用される場合がある。また、複数のコンピューティングデバイス400が、各デバイスが必要な動作の一部を提供するようにして(たとえば、サーババンク、一群のブレードサーバ、またはマルチプロセッサシステムとして)接続される場合がある。
【0050】
メモリ420(ユーザコンピューティングデバイス110のメモリハードウェア114またはリモートシステム130のメモリハードウェア136を含む場合がある「メモリハードウェア420」とも呼ばれる)は、コンピューティングデバイス400内に情報を非一時的に記憶する。メモリ420は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってよい。非一時的メモリ420は、コンピューティングデバイス400による使用のためにプログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラムの状態情報)を一時的または永続的に記憶するために使用される物理的デバイスであってよい。不揮発性メモリの例は、フラッシュメモリおよび読み出し専用メモリ(ROM)/プログラマブル読み出し専用メモリ(PROM)/消去可能プログラマブル読み出し専用メモリ(EPROM)/電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)(たとえば、典型的にはブートプログラムなどのファームウェアのために使用される)を含むがこれらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含むがこれらに限定されない。
【0051】
ストレージデバイス430は、コンピューティングデバイス400に大容量ストレージを提供することができる。一部の実装において、ストレージデバイス430は、コンピュータ可読媒体である。様々な異なる実装において、ストレージデバイス430は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくはその他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくはその他の構成内のデバイスを含むデバイスのアレイであってよい。追加的な実装においては、コンピュータプログラム製品が、情報担体内に有形で具現化される。コンピュータプログラム製品は、実行されるときに上述の方法などの1つまたは複数の方法を実行する命令を含む。情報担体は、メモリ420、ストレージデバイス430、またはプロセッサ410上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0052】
高速コントローラ440は、コンピューティングデバイス400に関する帯域幅を大量に消費する動作を管理し、一方、低速コントローラ460は、帯域幅をそれほど消費しない動作を管理する。役割のそのような割り当ては、例示的であるに過ぎない。一部の実装において、高速コントローラ440は、メモリ420に、(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)ディスプレイ480に、および様々な拡張カード(図示せず)を受け入れてよい高速拡張ポート450に結合される。一部の実装において、低速コントローラ460は、ストレージデバイス430および低速拡張ポート490に結合される。様々な通信ポート(たとえば、USB、Bluetooth、イーサネット、ワイヤレスイーサネット)を含んでよい低速拡張ポート490は、キーボード、ポインティングデバイス、スキャナなどの1つもしくは複数の入力/出力デバイスに結合される場合があり、またはたとえばネットワークアダプタを介してスイッチもしくはルータなどのネットワークデバイスに結合される場合がある。
【0053】
コンピューティングデバイス400は、図に示されるように、多くの異なる形態で実装されてよい。たとえば、コンピューティングデバイス400は、標準的なサーバ400aとして、もしくはそのようなサーバ400aのグループ内で複数回、ラップトップコンピュータ400bとして、またはラックサーバシステム400cの一部として実装されてよい。
【0054】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および/もしくは光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはこれらの組合せで実現され得る。これらの様々な実装は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するために結合された、専用または汎用であってよい少なくとも1つのプログラミング可能なプロセッサを含むプログラミング可能なシステム上の、実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムへの実装を含み得る。
【0055】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指す場合がある。一部の例において、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれる場合がある。例示的なアプリケーションは、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションを含むがこれらに限定されない。
【0056】
非一時的メモリは、コンピューティングデバイスによる使用のためにプログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラムの状態情報)を一時的または永続的に記憶するために使用される物理的デバイスであってよい。非一時的メモリは、揮発性および/または不揮発性のアドレス指定可能な半導体メモリであってよい。不揮発性メモリの例は、フラッシュメモリおよび読み出し専用メモリ(ROM)/プログラマブル読み出し専用メモリ(PROM)/消去可能プログラマブル読み出し専用メモリ(EPROM)/電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)(たとえば、典型的にはブートプログラムなどのファームウェアのために使用される)を含むがこれらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含むがこれらに限定されない。
【0057】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラミング可能なプロセッサ用の機械命令を含み、高級手続き型プログラミング言語および/もしくはオブジェクト指向プログラミング言語、ならびに/またはアセンブリ/機械言語で実装され得る。本明細書において使用されるとき、用語「機械可読媒体」および「コンピュータ可読媒体」は、機械命令を機械可読信号として受け取る機械可読媒体を含む、プログラミング可能なプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置、および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。用語「機械可読信号」は、プログラミング可能なプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0058】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムをデータ処理ハードウェアとも呼ばれる1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行され得る。コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完され得るか、または専用の論理回路に組み込まれ得る。
【0059】
ユーザとのインタラクションを提供するために、本開示の1つまたは複数の態様は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーンと、任意で、ユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、スピーチ、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0060】
いくつかの実装が、説明された。しかしながら、本開示の精神および範囲を逸脱することなく様々な変更がなされてよいことは、理解されるであろう。したがって、その他の実装は、添付の特許請求の範囲内にある。
【符号の説明】
【0061】
10 ユーザ
12 口頭の発話、後続のクエリ、目標のスピーチ
14 オーディオデータ
100 音声環境
110 音声対応デバイス、デバイス、ユーザデバイス、ユーザコンピューティングデバイス
112 データ処理ハードウェア
114 メモリハードウェア
116 オーディオキャプチャデバイス、マイクロフォン
118 オーディオ出力デバイス、音響スピーカ
120 ネットワーク
130 リモートシステム
132 リモートリソース
134 リモートデータ処理ハードウェア
136 リモートメモリハードウェア
140 音声処理システム、音声認識システム
142 書き起こし
145 音声認識モデル
150 音声処理システム、TTSシステム
152 テキスト
154 オーディオコンテンツ、再生オーディオコンテンツ、合成された再生オーディオ、再生オーディオフレーム
156 音響エコー
158 参照信号
200 音声処理システム、AECシステム
202 マイクロフォン信号
204 重なり合った領域
206 出力信号、出力信号フレーム、残留エコー出力信号
208、208a、208b ダブルトークインジケータ
210 音響エコーキャンセラ
220 ダブルトーク検出器
230 エコーミュータ
300 方法
400 コンピューティングデバイス
400a 標準的なサーバ
400b ラップトップコンピュータ
400c ラックサーバシステム
410 プロセッサ、コンポーネント、データ処理ハードウェア
420 メモリ、コンポーネント、メモリハードウェア
430 ストレージデバイス、コンポーネント
440 高速インターフェース/コントローラ、コンポーネント
450 高速拡張ポート、コンポーネント
460 低速インターフェース/コントローラ、コンポーネント
470 低速バス
480 ディスプレイ
490 低速拡張ポート
【手続補正書】
【提出日】2024-04-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(410)上で実行されるときに前記データ処理ハードウェア(410)に動作を実行させるコンピュータによって実施される方法(300)であって、前記動作が、
マイクロフォン(116)によってキャプチャされた音響エコー(156)を含むマイクロフォン信号(202)を受け取ることであって、前記音響エコー(156)が、音響スピーカ(118)から再生されたオーディオコンテンツ(154)に対応する、受け取ることと、
前記音響スピーカ(118)が前記オーディオコンテンツ(154)を再生する前に参照チャネルで送られた前記オーディオコンテンツ(154)を表すフレームのシーケンスを含む参照信号(158)を受け取ることと、
前記マイクロフォン信号(202)のフレームのシーケンス内の各フレームに関して、
前記マイクロフォン信号(202)のそれぞれのフレームから前記音響エコー(156)を除去するそれぞれの出力信号フレーム(206)を生成するために、前記マイクロフォン信号(202)の前記それぞれのフレームを、前記参照信号(158)のフレームのシーケンス内のそれぞれのフレームを入力として受け取るように構成された音響エコーキャンセラ(210)を使用して処理することと、
ダブルトーク検出器(DTD)(220)を使用して、前記参照信号(158)の前記それぞれのフレームおよび前記それぞれの出力信号フレーム(206)に基づいて、前記マイクロフォン信号(202)の前記それぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定することと、
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して、前記それぞれの出力信号フレーム(206)をミュートすることと、
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)をミュートした後、前記ダブルトークフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することとを含む、コンピュータによって実施される方法(300)。
【請求項2】
前記マイクロフォン信号(202)の一部が、前記マイクロフォン(116)によってキャプチャされた目標のスピーチ(12)を表すオーディオ信号をさらに含み、前記目標のスピーチ(12)が、前記オーディオコンテンツ(154)が前記音響スピーカ(118)から再生される間に話され、
前記動作が、前記マイクロフォン信号(202)の前記それぞれのフレームが前記目標のスピーチ(12)を表す前記オーディオ信号を含むときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することをさらに含む請求項1に記載のコンピュータによって実施される方法(300)。
【請求項3】
音声処理を実行することが、自動音声認識(ASR)モデル(145)を使用して音声認識を実行することを含む請求項1または2に記載のコンピュータによって実施される方法(300)。
【請求項4】
前記動作が、前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定する前に、前記マイクロフォン信号(202)、前記参照信号(158)、および出力信号(206)の各それぞれのフレームを短時間フーリエ変換(STFT)領域に変換することをさらに含む請求項1から3のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項5】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記参照信号(158)の前記それぞれのフレームとの間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することと、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記それぞれの出力信号フレーム(206)との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むと判定することとを含む請求項1から4のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項6】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)と前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)との両方が前記ダブルトーク閾値を満たさないときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記エコーのみのフレームを含むと判定することをさらに含む請求項5に記載のコンピュータによって実施される方法(300)。
【請求項7】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)が、両方とも、所定の範囲の周波数サブバンドにわたって計算される請求項5または6に記載のコンピュータによって実施される方法(300)。
【請求項8】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすか否かを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの小さい方が前記ダブルトーク閾値未満であるときに、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすと判定することを含む請求項5から7のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項9】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは前記それぞれの出力信号フレーム(206)のうちの一方との間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)に基づく請求項1から8のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項10】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは前記それぞれの出力信号フレーム(206)のうちの他方との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)にさらに基づく請求項9に記載のコンピュータによって実施される方法(300)。
【請求項11】
前記音響エコーキャンセラ(210)が、線形音響エコーキャンセラを含む請求項1から10のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項12】
前記データ処理ハードウェア(410)、前記マイクロフォン(116)、および前記音響スピーカ(118)が、ユーザコンピューティングデバイス(110)上に存在する請求項1から11のいずれか一項に記載のコンピュータによって実施される方法(300)。
【請求項13】
前記ダブルトークフレームを含む前記マイクロフォン信号(202)の前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することが、前記それぞれの出力信号フレーム(206)に対して音響エコー抑制を実行せずに、前記それぞれの出力信号フレーム(206)に対する音声処理を実行することを含む請求項1に記載のコンピュータによって実施される方法(300)。
【請求項14】
データ処理ハードウェア(410)と、
前記データ処理ハードウェア(410)と通信するメモリハードウェア(114、136)であって、前記データ処理ハードウェア(410)上で実行されるときに前記データ処理ハードウェア(410)に動作を実行させる命令を記憶し、前記動作が、
マイクロフォン(116)によってキャプチャされた音響エコー(156)を含むマイクロフォン信号(202)を受け取ることであって、前記音響エコー(156)が、音響スピーカ(118)から再生されたオーディオコンテンツ(154)に対応する、受け取ること、
前記音響スピーカ(118)が前記オーディオコンテンツ(154)を再生する前に参照チャネルで送られた前記オーディオコンテンツ(154)を表すフレームのシーケンスを含む参照信号(158)を受け取ること、
前記マイクロフォン信号(202)のフレームのシーケンス内の各フレームに関して、
前記マイクロフォン信号(202)のそれぞれのフレームから前記音響エコー(156)を除去するそれぞれの出力信号フレーム(206)を生成するために、前記マイクロフォン信号(202)の前記それぞれのフレームを、前記参照信号(158)のフレームのシーケンス内のそれぞれのフレームを入力として受け取るように構成された音響エコーキャンセラ(210)を使用して処理すること、
ダブルトーク検出器(DTD)(220)を使用して、前記参照信号(158)の前記それぞれのフレームおよび前記それぞれの出力信号フレーム(206)に基づいて、前記マイクロフォン信号(202)の前記それぞれのフレームがダブルトークフレームを含むのかまたはエコーのみのフレームを含むのかを判定すること、
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して、前記それぞれの出力信号フレーム(206)をミュートすること、ならびに
前記エコーのみのフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)をミュートした後、前記ダブルトークフレームを含む前記マイクロフォン信号(202)のフレームの前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することを含む、メモリハードウェア(114、136)とを含むシステム。
【請求項15】
前記マイクロフォン信号(202)の一部が、前記マイクロフォン(116)によってキャプチャされた目標のスピーチ(12)を表すオーディオ信号をさらに含み、前記目標のスピーチ(12)が、前記オーディオコンテンツ(154)が前記音響スピーカ(118)から再生される間に話され、
前記動作が、前記マイクロフォン信号(202)の前記それぞれのフレームが前記目標のスピーチ(12)を表す前記オーディオ信号を含むときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することをさらに含む請求項14に記載のシステム。
【請求項16】
音声処理を実行することが、自動音声認識(ASR)モデル(145)を使用して音声認識を実行することを含む請求項14または15に記載のシステム。
【請求項17】
前記動作が、前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定する前に、前記マイクロフォン信号(202)、前記参照信号(158)、および出力信号(206)の各それぞれのフレームを短時間フーリエ変換(STFT)領域に変換することをさらに含む請求項14から16のいずれか一項に記載のシステム。
【請求項18】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記参照信号(158)の前記それぞれのフレームとの間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することと、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと前記それぞれの出力信号フレーム(206)との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方がダブルトーク閾値を満たすか否かを判定することと、
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むと判定することとを含む請求項14から17のいずれか一項に記載のシステム。
【請求項19】
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)と前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)との両方が前記ダブルトーク閾値を満たさないときに、前記マイクロフォン信号(202)の前記それぞれのフレームが前記エコーのみのフレームを含むと判定することをさらに含む請求項18に記載のシステム。
【請求項20】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)が、両方とも、所定の範囲の周波数サブバンドにわたって計算される請求項18または19に記載のシステム。
【請求項21】
前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすか否かを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)および前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの小さい方が前記ダブルトーク閾値未満であるときに、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)または前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)のうちの少なくとも一方が前記ダブルトーク閾値を満たすと判定することを含む請求項18から20のいずれか一項に記載のシステム。
【請求項22】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは前記それぞれの出力信号フレーム(206)のうちの一方との間の相互相関に基づいて、それぞれの第1のフレームレベルのダブルトークインジケータ(208a)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第1のフレームレベルのダブルトークインジケータ(208a)に基づく請求項14から21のいずれか一項に記載のシステム。
【請求項23】
前記動作が、前記マイクロフォン信号(202)のフレームの前記シーケンス内の各フレームに関して、
前記DTD(220)を使用して、前記マイクロフォン信号(202)の前記それぞれのフレームと、前記参照信号(158)の前記それぞれのフレームまたは出力信号のそれぞれのフレームのうちの他方との間の相互相関に基づいて、それぞれの第2のフレームレベルのダブルトークインジケータ(208b)を計算することをさらに含み、
前記マイクロフォン信号(202)の前記それぞれのフレームが前記ダブルトークフレームを含むのかまたは前記エコーのみのフレームを含むのかを判定することが、前記それぞれの第2のフレームレベルのダブルトークインジケータ(208b)にさらに基づく請求項22に記載のシステム。
【請求項24】
前記音響エコーキャンセラ(210)が、線形音響エコーキャンセラを含む請求項14から23のいずれか一項に記載のシステム。
【請求項25】
前記データ処理ハードウェア(410)、前記マイクロフォン(116)、および前記音響スピーカ(118)が、ユーザコンピューティングデバイス(110)上に存在する請求項14から24のいずれか一項に記載のシステム。
【請求項26】
前記ダブルトークフレームを含む前記マイクロフォン信号(202)の前記シーケンス内の各それぞれのフレームに関して前記それぞれの出力信号フレーム(206)に対する音声処理を実行することが、前記それぞれの出力信号フレーム(206)に対して音響エコー抑制を実行せずに、前記それぞれの出力信号フレーム(206)に対する音声処理を実行することを含む請求項14から25のいずれか一項に記載のシステム。
【国際調査報告】