(57)【要約】  オーディオデータフレームのストリームの1つまたは複数の特徴の検出の際に雑音低減技術を選択的に適応させるおよび/または選択的に利用するための技術が、説明される。たとえば、様々な技術が、オーディオデータフレームのストリーム内の呼び出しフレーズの検出、(たとえば、話者の特定のための)オーディオデータフレームのストリーム内の音声特性の検出などの際に雑音低減技術を選択的に適応させることおよび/または利用することを対象とする。説明される技術の利用は、強い背景雑音のある環境内などの様々な状況でオーディオデータフレームのストリームの特徴のより堅牢なおよび/またはより正確な検出をもたらし得る。様々な実装において、説明される技術は、自動化されたアシスタントと組み合わせて実装され、本明細書において説明される技術を利用して検出された特徴が、自動化されたアシスタントの機能を適応させるために利用される。
2021507315.tif 000002
【特許請求の範囲】
【請求項１】
自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実行され、
前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
前記ストリームの前記オーディオデータフレームを、前記オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップであって、前記出力インジケーションの各々が、前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、前記訓練された機械学習モデルを使用する前記オーディオデータフレームのうちの前記それぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく、ステップと、
第1の場合に、前記第1の場合の前記バッファ内の前記出力インジケーションが、前記第1の場合の前記バッファ内の前記オーディオデータフレームがすべて前記1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップと、
前記第1の場合の前記判定に応じて、
雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップと、
前記第1の場合の後の第2の場合に、前記第2の場合の前記バッファ内の前記出力インジケーションが、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示すと判定するステップと、
前記第2の場合の前記判定に応じて、
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとの判定に応じて、
前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む、
方法。
【請求項２】
前記自動化されたアシスタントの前記少なくとも1つの機能がアクティブ化されるようにするステップが、前記ストリームのその後受け取られたオーディオデータフレームがさらなる処理のために1つまたは複数のリモートの自動化されたアシスタントサーバに送信されるようにするステップを含む、
請求項1に記載の方法。
【請求項３】
前記さらなる処理が、スピーチトゥテキスト変換、意味処理、および対話状態追跡のうちの1つまたは複数を含む、
請求項2に記載の方法。
【請求項４】
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの前記少なくとも1つを使用するステップが、
前記バッファから単一のデータフレームを取り出すステップと、
前記雑音低減フィルタを適応させるために前記単一のデータフレームを使用するステップとを含む、
請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記ストリームの前記オーディオデータフレームが、少なくとも、前記1つまたは複数のマイクロフォンのうちの第1のマイクロフォンに基づく第1のチャネルと、前記1つまたは複数のマイクロフォンのうちの第2のマイクロフォンに基づく第2のチャネルとを含む、
請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記それぞれの出力を生成するために前記訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップが、
前記訓練された機械学習モデルを使用して前記オーディオデータフレームの各々の前記第1のチャネルのみを処理するステップを含む、
請求項5に記載の方法。
【請求項７】
前記雑音低減フィルタが、マルチチャネル雑音低減フィルタであり、
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップが、
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップを含む、
請求項5に記載の方法。
【請求項８】
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップが、
前記雑音低減フィルタを更新するために誤差を決定する際に前記第1のチャネルを信号源として使用し、前記第2のチャネルを雑音源として使用するステップを含む、
請求項7に記載の方法。
【請求項９】
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップが、
前記フィルタリングされたデータフレームを生成する際に複数の前記オーディオデータフレームの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップを含む、
請求項5に記載の方法。
【請求項１０】
前記第2の場合の前記バッファ内の前記出力インジケーションが、前記対応する出力が第1の閾値を満たすが、第2の閾値を満たし得ないことに基づいて、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示す、
請求項1から9のいずれか一項に記載の方法。
【請求項１１】
クライアントデバイスの1つまたは複数のプロセッサによって実施される方法であって、
前記クライアントデバイスの自動化されたアシスタントクライアントの1つまたは複数の機能が非アクティブである間に、
複数の最も新しく処理されたオーディオデータフレーム、および前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームにそれぞれが対応する複数の出力インジケーションを含むバッファにアクセスするステップであって、
前記オーディオデータフレームが、前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づき、
前記出力インジケーションが、機械学習モデルを使用する前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームの処理に基づいてそれぞれ決定され、前記オーディオデータフレームのうちの前記それぞれのオーディオデータフレームが第1の閾値を満たし得ない雑音フレームであるのか、前記第1の閾値を満たすが第2の閾値を満たし得ない準トリガフレームであるのか、または前記第1の閾値と前記第2の閾値との両方を満たすトリガフレームであるのかをそれぞれ示す、ステップと、
前記バッファの前記出力インジケーションが前記バッファの前記データフレームのすべてが前記雑音フレームであることを示すとき、
雑音低減フィルタを適応させるために前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップと、
前記バッファの前記出力インジケーションが前記バッファの前記データフレームが少なくとも1つの準トリガフレームを含むが、トリガフレームを含まないことを示すとき、
前記雑音低減フィルタを使用する前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記フィルタリングされたデータフレームが呼び出しフレーズの存在を示すかどうかを判定するために前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理するステップと、
前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとき、前記自動化されたアシスタントの前記機能のうちの1つまたは複数をアクティブ化するステップとを含む、
方法。
【請求項１２】
前記バッファの前記出力インジケーションが前記バッファの前記データフレームが少なくとも1つのトリガフレームを含むことを示すとき、
前記オーディオデータフレームが呼び出しフレーズの存在を示すかどうかを判定するために前記訓練された機械学習モデルまたは前記さらなる訓練された機械学習モデルを使用して前記バッファ内の複数の前記オーディオデータフレームを処理するステップと、
前記オーディオデータフレームが前記呼び出しフレーズの存在を示すとき、前記自動化されたアシスタントの前記機能のうちの1つまたは複数をアクティブ化するステップとをさらに含む、
請求項11に記載の方法。
【請求項１３】
前記雑音低減フィルタを使用する前記バッファ内の複数の前記オーディオデータフレームの処理に基づいて前記フィルタリングされたデータフレームを生成するステップが、
前記バッファから前記オーディオデータフレームのすべてを取り出すステップと、
前記オーディオデータフレームのすべての処理に基づいて前記フィルタリングされたデータフレームを生成するステップとを含む、
請求項11または請求項12に記載の方法。
【請求項１４】
前記オーディオデータフレームが呼び出しフレーズの存在を示すかどうかを判定するために前記訓練された機械学習モデルまたは前記さらなる訓練された機械学習モデルを使用して前記バッファ内の複数の前記オーディオデータフレームを処理するステップが、
前記バッファから前記オーディオデータフレームのすべてを取り出すステップと、
前記オーディオデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するために前記訓練された機械学習モデルまたは前記さらなる訓練された機械学習モデルを使用して前記オーディオデータフレームのすべてを処理するステップとを含む、
請求項13に記載の方法。
【請求項１５】
自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実施され、
前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのグループを受信するステップと、
1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記グループの前記オーディオデータフレームの各々を処理するステップと、
前記対応する確率のうちの少なくとも1つが第1の閾値を満たすが、第2の閾値を満たし得ないことに応じて、
雑音低減フィルタを使用する前記グループの前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとの判定に応じて、
前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む、
方法。
【請求項１６】
前記雑音低減フィルタを使用して前記フィルタリングされたデータフレームを生成する前に、
オーディオデータフレームの前記グループに先立ったオーディオデータフレームの先行するグループの少なくとも1つのオーディオデータフレームに基づいて前記雑音低減フィルタを適応させるステップをさらに含む、
請求項15に記載の方法。
【請求項１７】
1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する先行する確率を示すそれぞれの出力を生成するために前記訓練された機械学習モデルを使用して前記先行するグループの前記オーディオデータフレームの各々を処理するステップをさらに含み、
オーディオデータフレームの前記先行するグループの前記少なくとも1つのオーディオデータフレームに基づいて前記雑音低減フィルタを適応させるステップが、前記対応する先行する確率のいずれも前記第1の閾値または前記第2の閾値を満たさないと判定することに応じる、
請求項16に記載の方法。
【請求項１８】
前記雑音低減フィルタを使用して前記フィルタリングされたデータフレームを生成する前に、
オーディオデータフレームの前記グループに先立った先行するオーディオデータフレームに基づいて前記雑音低減フィルタを適応させるステップをさらに含む、
請求項15に記載の方法。
【請求項１９】
前記先行するオーディオデータフレームに基づいて前記雑音低減フィルタを適応させるステップが、
1つまたは複数の呼び出し音素の存在の1つまたは複数の先行する確率を示す先行する出力を生成するために前記訓練された機械学習モデルを使用して前記先行するオーディオデータフレームを処理することと、
前記先行する確率のいずれも前記第1の閾値または前記第2の閾値を満たさないと判定することとに基づく、
請求項18に記載の方法。
【請求項２０】
自動化されたアシスタントに向けられた口で言われた発話内の特徴を検出する方法であって、前記方法が、1つまたは複数のプロセッサによって実施され、
クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
1つまたは複数の対応する特徴の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
前記ストリームの前記オーディオデータフレームを、前記オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップであって、前記出力インジケーションの各々が、前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、前記訓練された機械学習モデルを使用する前記オーディオデータフレームのうちの前記それぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく、ステップと、
第1の場合に、前記第1の場合の前記バッファ内の前記出力インジケーションが、前記第1の場合の前記バッファ内の前記オーディオデータフレームがすべて前記1つまたは複数の対応する特徴のいずれも含み得ないことを示すと判定するステップと、
前記第1の場合の前記判定に応じて、
雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップと、
前記第1の場合の後の第2の場合に、前記第2の場合の前記バッファ内の前記出力インジケーションが、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する特徴のうちの少なくとも1つを潜在的に含むことを示すと判定するステップと、
前記第2の場合の前記判定に応じて、
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記特徴の存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記特徴の存在を示すとの判定に応じて前記自動化されたアシスタントによって実行される処理を適応させるステップとを含む、
方法。
【請求項２１】
前記特徴が、プロファイルに関連して記憶された音声特性を含み、前記自動化されたアシスタントによって実行される処理を適応させるステップが、前記自動化されたアシスタントによってレンダリングされるべき内容を前記プロファイルに基づいて生成することを含み、前記内容が、前記フィルタリングされたデータフレームが前記特徴の存在を示すことおよび前記特徴が前記プロファイルに関連して記憶されることに応じて前記プロファイルに基づいて生成される、
請求項20に記載の方法。
【請求項２２】
前記自動化されたアシスタントによって実行される処理を適応させるステップが、前記自動化されたアシスタントの少なくとも1つの非アクティブな機能がアクティブ化されるようにすることを含む、
請求項20または請求項21に記載の方法。
【請求項２３】
前記1つの非アクティブな機能が、自然言語処理または対話状態追跡である、
請求項22に記載の方法。
【請求項２４】
自動化されたアシスタントに向けられた口で言われた発話内に存在する少なくとも1つの特徴を検出する方法であって、前記方法が、
クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのグループを受信するステップと、
前記少なくとも1つの特徴の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記グループの前記オーディオデータフレームの各々を処理するステップと、
前記対応する確率のうちの少なくとも1つが第1の閾値を満たすが、第2の閾値を満たし得ないことに応じて、
雑音低減フィルタを使用する前記グループの前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記少なくとも1つの特徴の存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記少なくとも1つの特徴の存在を示すとの判定に応じて、
前記自動化されたアシスタントによって実行される処理を適応させるステップとを含む、
方法。
【請求項２５】
自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実施され、
前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
第1の場合に、前記オーディオデータフレームのうちの所与のオーディオデータフレームに関して生成された前記それぞれの出力が前記所与のオーディオデータフレームが前記1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップと、
前記第1の場合の前記判定に応じて、
雑音低減フィルタを適応させるために前記所与のオーディオデータフレームを使用するステップと、
前記第1の場合の後の第2の場合に、前記所与のオーディオデータフレームの後に受け取られた前記オーディオデータフレームのうちの1つまたは複数のうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むと判定するステップと、
前記第2の場合の前記判定に応じて、
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記オーディオデータフレームのうちの前記1つまたは複数の処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとの判定応じて、
前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む、
方法。
【請求項２６】
自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実施され、
前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームの連続的なオーディオデータフレームの第1の組の各オーディオデータフレームに関して、
前記オーディオデータフレームに基づいて対応する雑音低減フィルタを生成するステップと、
前記対応する雑音低減フィルタを先入れ先出しバッファに記憶するステップと、
連続的なオーディオデータフレームの前記第1の組の直後に続くオーディオデータフレームの前記ストリームの所与のオーディオデータフレームに関して、
前記先入れ先出しバッファのヘッドにある前記対応する雑音低減フィルタを使用して前記所与のオーディオフレームを処理することに基づいてフィルタリングされたデータフレームを生成するステップと、
訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの1つまたは複数の音素の存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記呼び出しフレーズの前記音素のうちの1つまたは複数の存在を示すかどうかに基づいて呼び出しフレーズがオーディオデータフレームの前記ストリーム内に存在するかどうかを判定するステップとを含む、
方法。
【請求項２７】
前記呼び出しフレーズが存在するとの判定に応じて、
前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップをさらに含む、
請求項26に記載の方法。
【請求項２８】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに動作可能なように結合されたメモリとを含むクライアントデバイスであって、前記メモリが、前記1つまたは複数のプロセッサによって実行されるときに、前記1つまたは複数のプロセッサに請求項1から27のいずれか一項に記載の方法を実行させる命令を記憶する、
クライアントデバイス。
【請求項２９】
1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに請求項1から27のいずれか一項に記載の方法を実行させる前記命令を含む、
少なくとも1つの非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
オーディオデータフレームのストリームの1つまたは複数の特徴の検出の際に雑音低減技術を選択的に適応させるおよび/または選択的に利用するための技術が、説明される。
【背景技術】
【０００２】
人は、本明細書において「自動化されたアシスタント」と呼ばれるインタラクティブなソフトウェアアプリケーション(「デジタルエージェント」、「チャットボット」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」などとも呼ばれる)を用いて人とコンピュータとの対話に従事する可能性がある。たとえば、人(自動化されたアシスタントとインタラクトするときは「ユーザ」と呼ばれる可能性がある)は、場合によってはテキストに変換され、それから処理される可能性がある口で言われた自然言語入力(つまり、発話)を使用して、および/またはテキスト(たとえば、タイピングされた)自然言語入力を与えることによって自動化されたアシスタントにコマンドおよび/または要求を与える可能性がある。自動化されたアシスタントは、可聴のおよび/または視覚的なユーザインターフェース出力を含み得る応答ユーザインターフェース出力を提供することによって要求に応答する。
【０００３】
上述のように、多くの自動化されたアシスタントは、口で言われた発話によってインタラクトされるように構成される。ユーザのプライバシーを守るおよび/またはリソースを節約するために、ユーザは、自動化されたアシスタントが口で言われた発話を完全に処理する前に自動化されたアシスタントを明示的に呼び出さなければならないことが多い。自動化されたアシスタントの明示的な呼び出しは、概して、特定のユーザインターフェース入力がクライアントデバイスにおいて受け取られることに応じて発生する。クライアントデバイスは、自動化されたアシスタントとインターフェースを取るためのインターフェースをクライアントデバイスのユーザに提供し(たとえば、ユーザから口で言われたおよび/またはタイピングされた入力を受け取り、可聴のおよび/またはグラフィカルな応答を提供し)、自動化されたアシスタントを実装する1つまたは複数の追加的な構成要素(たとえば、ユーザ入力を処理し、適切な応答を生成するリモートサーバデバイス)とインターフェースを取るアシスタントインターフェースを含む。
【０００４】
クライアントデバイスを介して自動化されたアシスタントを呼び出すことができる一部のユーザインターフェース入力は、自動化されたアシスタントを呼び出すためのクライアントデバイスにあるハードウェアのおよび/または仮想的なボタン(たとえば、ハードウェアのボタンのタップ、クライアントデバイスによって表示されたグラフィカルインターフェース要素の選択)を含む。多くの自動化されたアシスタントは、追加的にまたは代替的に、「ホットワード/フレーズ」または「トリガワード/フレーズ」としても知られる1つまたは複数の口で言われた呼び出しフレーズに応じて呼び出され得る。たとえば、「ヘイ、アシスタント」、「オーケー、アシスタント」、および/または「アシスタント」などの口で言われた呼び出しフレーズが、自動化されたアシスタントを呼び出すために口で言われ得る。
【０００５】
多くの場合、アシスタントインターフェースを含むクライアントデバイスは、口で言われた呼び出しフレーズの発生を監視するためにクライアントデバイスが利用する1つまたは複数のローカルに記憶されたモデルを含む。そのようなクライアントデバイスは、ローカルに記憶されたモデルを利用して受け取られたオーディオデータをローカルで処理することができ、口で言われた呼び出しフレーズを含まないすべてのオーディオデータを破棄する。しかし、受け取られたオーディオデータのローカルの処理が口で言われた呼び出しフレーズの発生を示すとき、クライアントデバイスは、次いでそのオーディオデータおよび/または引き続くオーディオデータが自動化されたアシスタントによってさらに処理されるようにする。たとえば、口で言われた呼び出しフレーズが「ヘイ、アシスタント」であり、ユーザが「ヘイ、アシスタント。今何時」と言う場合、「今何時」に対応するオーディオデータが、「ヘイ、アシスタント」の検出に基づいて自動化されたアシスタントによって処理され、現在時間の自動化されたアシスタントの応答を提供するために利用され得る。一方、ユーザが単に(最初に呼び出しフレーズを言わずに)「今何時」と言う場合、自動化されたアシスタントからの応答は、「今何時」の前に呼び出しフレーズがないことの結果として提供されない。
【０００６】
モデルが口で言われた呼び出しフレーズの発生を監視するために存在するが、多くのそのようなモデルは、1つまたは複数の欠点を抱える。たとえば、一部のモデルは、強い背景雑音(たとえば、テレビ、音楽再生、その他の会話からの雑音)がある環境において性能が良くない可能性がある。たとえば、一部のモデルは、背景雑音の存在下で所望の堅牢性および/または正確性を欠く可能性がある。これは、実際に口で言われた呼び出しフレーズの検出の失敗につながり得る、および/または呼び出しフレーズの誤った検出につながり得る。
【発明の概要】
【課題を解決するための手段】
【０００７】
オーディオデータフレームのストリームの1つまたは複数の特徴の検出の際に雑音低減技術を選択的に適応させるおよび/または選択的に利用するための技術が、本明細書において説明される。たとえば、様々な技術が、オーディオデータフレームのストリーム内の呼び出しフレーズの検出、(たとえば、話者の特定のための)オーディオデータフレームのストリーム内の音声特性の検出などの際に雑音低減技術を選択的に適応させることおよび/または利用することを対象とする。本明細書において説明される技術の利用は、強い背景雑音のある環境内などの様々な状況でオーディオデータフレームのストリームの特徴のより堅牢なおよび/またはより正確な検出をもたらし得る。様々な実装において、本明細書において説明される技術は、自動化されたアシスタントと組み合わせて実装され、本明細書において説明される技術を利用して検出された特徴が、自動化されたアシスタントの機能を適応させるために利用される。たとえば、オーディオデータフレームのストリーム内の呼び出しフレーズの存在を検出するための技術が利用されるとき、1つまたは複数のその後受け取られたオーディオデータフレームがさらなる処理のために1つまたは複数のリモートの自動化されたアシスタントサーバに送信されるようにする機能などの自動化されたアシスタントの少なくとも1つの機能が、口で言われた呼び出しフレーズを検出することに応じてアクティブ化され得る。また、たとえば、(たとえば、話者の特定のために)オーディオデータフレームのストリーム内の音声特性を検出するための技術が利用されるとき、自動化されたアシスタントによって生成される内容が、検出された音声特性を使用して特定された話者に基づいて適応され得る。
【０００８】
様々な実装においては、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームが、それぞれの出力を生成するために訓練された機械学習モデルを使用して処理される。各オーディオデータフレームに関する生成された出力は、オーディオデータフレームが1つまたは複数の目標の特徴(たとえば、目標の音素(phoneme))を有するかどうかを示し、対応する出力インジケーションによってオーディオデータフレームをタグ付けするために使用される。実施例として、各オーディオデータフレームに関する生成された出力は、複数のトリガ音素の各々の対応する確率と、任意で、「非トリガ音素」に関する対応する確率とを示し得る。実施例について続けると、各オーディオデータフレームに関する出力インジケーションは、出力がトリガ音素のいずれか1つに関する少なくとも第1の「高い」閾値の確率を示す場合、「トリガ」インジケーションであることができ、出力がトリガ音素のいずれに関しても少なくとも第1の閾値の確率を示し得ないが、トリガ音素のいずれか1つに関して、第1の閾値の確率未満であるが、第2の「低い」閾値の確率よりも大きい確率を示す場合、「準トリガ(near-trigger)」インジケーションであることができ、出力がトリガ音素のすべてに関して第2の閾値の確率未満を示す(および/または「非トリガ音素」に関して第3の閾値の確率よりも大きい確率を示す)場合、「雑音」インジケーションであることができる。
【０００９】
それらの様々な実装の一部においては、オーディオデータフレームおよびそれらの対応する出力インジケーションが、先入れ先出し(FIFO)バッファに記憶されることが可能であり、バッファの内容が、バッファの内容に基づいて実行するさらなる処理を決定するために周期的に(またはその他の一定のおよび/もしくは一定でない間隔で)評価されることが可能である。実施例について続けると、所与の場合のバッファのオーディオデータフレームがすべて「雑音」を示す出力インジケーションを有する場合、バッファのオーディオデータフレームのうちの少なくとも1つが、雑音低減技術を適応させるために利用され得る。たとえば、少なくとも(第1のマイクロフォンに基づく)第1のチャネルおよび(第2のマイクロフォンに基づく)第2のチャネルを含むオーディオデータフレームが、バッファから「ポップされる」ことが可能であり、適応雑音消去(adaptive noise cancellation)フィルタを適応させる(またはビームフォーミングなどの別の雑音低減技術を適応させる)ために利用されることが可能である。所与の場合のバッファのオーディオデータフレームが「トリガ」を示す出力インジケーションを含まないが、「準トリガ」を示す少なくとも1つの出力インジケーションを含む場合、バッファ全体が、フラッシュされることが可能であり、オーディオデータフレームが、フィルタリングされたデータフレームを生成するために最も新しく適応された雑音低減技術を使用して処理されることが可能である。それから、フィルタリングされたデータフレームは、呼び出しフレーズがフィルタリングされたオーディオデータフレーム内に存在するかどうかを判定するために、さらなる訓練された機械学習モデルを使用して処理され得る。さらなる機械学習モデルは、出力インジケーションを決定するために利用される機械学習モデルと同じ(しかし、任意でその別個のインスタンス)であることが可能であり、または任意で、利用する計算負荷がより高い可能性があるより堅牢なモデルなどの別個のモデルであることが可能である。所与の場合のバッファのオーディオデータフレームが「トリガ」を示す少なくとも1つの出力インジケーションを含む場合、バッファ全体が、フラッシュされることが可能であり、バッファのオーディオデータフレームが、呼び出しフレー
ズがさらなる機械学習モデル内に存在するかどうかを判定するためにさらなる訓練された機械学習モデルを使用して処理されることが可能である。一部の実装において、トリガ出力インジケーションが存在するときのバッファのオーディオデータフレームは、追加的にまたは代替的に、フィルタリングされたデータフレームを生成するために最も新しく適応された適応的な雑音低減技術を使用して処理され得る--およびそのようなフレームは、呼び出しフレーズが存在するかどうかを判定するためにさらなる訓練された機械学習モデルを使用して処理され得る。
【００１０】
これらのおよびその他の様式で、オーディオデータフレームが目標の特徴を欠く(たとえば、いずれの呼び出し音素も欠く)ことを示す出力インジケーションによってすべてがタグ付けされているオーディオデータフレームのみを含むとバッファが判定されるとき、雑音低減技術は、バッファのオーディオデータフレームに基づいて適応され得る。上述のように、オーディオデータフレームの出力インジケーションは、目標の特徴が存在するかどうかを予測するために訓練された初期の訓練された機械学習モデルを使用するオーディオデータフレームの処理に基づいて生成される。一方、バッファが目標の特徴のうちの1つまたは複数を「潜在的に」含むオーディオデータフレームを含むと判定されるときにはいつも、バッファのオーディオデータフレームは、フィルタリングされたデータフレームを生成するために最も新しく適応された雑音低減技術を使用して処理されることが可能であり、そのようなフィルタリングされたデータフレームは、目標の特徴が存在するかどうかを判定するために処理されることが可能である。そのような状況において、オーディオデータフレームは、今適応されている雑音低減技術を使用して処理され得るが、任意で、雑音低減技術をさらに適応させる際に利用されない。オーディオデータフレームが目標の特徴を潜在的に含み、目標の特徴を含むオーディオデータフレームに基づいてその雑音低減技術をさらに適応させることは目標の特徴が雑音低減技術によってフィルタリングされるおそれがあり望ましくないので、雑音低減技術は、そのような状況においてさらに適応されない可能性がある。上述のように、バッファが目標の特徴のうちの1つまたは複数を含む「可能性が高い」オーディオデータフレームを含むと判定されるときはいつも、オーディオデータフレームは、(任意で、適応されたフィルタ技術に基づいてフィルタリングすることなく)目標の特徴が存在するかどうかを判定するために処理され得る。
【００１１】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、本明細書において説明される方法のいずれかの実行を引き起こすように構成される。一部の実装は、本明細書において説明される方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する1つまたは複数の一時的または非一時的コンピュータ可読ストレージ媒体も含む。
【００１２】
上述の概念および本明細書においてより詳細に説明される追加的な概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の範囲に記載された主題のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【００１３】
【図１】本明細書において開示される実装が実装され得る例示的な環境のブロック図である。
【図２Ａ】本明細書において開示される様々な実装による例示的な方法を示す流れ図である。
【図２Ｂ】本明細書において開示される様々な実装による例示的な方法を示す流れ図である。
【図３】本明細書において開示される様々な実装によってオーディオデータフレームがどのようにして処理され得るかの例を示す図である。
【図４】例示的なクライアントデバイス、例示的なユーザ、および例示的な背景雑音源を示す図である。
【図５】本明細書において開示される様々な実装による別の例示的な方法を示す流れ図である。
【図６】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００１４】
ここで図1に目を向けると、本明細書において開示される技術が実装される可能性がある例示的な環境が示される。例示的な環境は、自動化されたアシスタントクライアント120のインスタンスを実行するクライアントコンピューティングデバイス106(本開示においては単に「クライアントデバイス」とも呼ばれる)を含む。自然言語プロセッサ133などの1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素130は、110に全体的に示される1つまたは複数のローカルエリアおよび/または広域ネットワーク(たとえば、インターネット)を介してクライアントデバイス106に通信可能なように結合される1つまたは複数のコンピューティングシステム(集合的に「クラウド」コンピューティングシステムと呼ばれる)に実装される可能性がある。
【００１５】
自動化されたアシスタントクライアント120のインスタンスは、1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素130とのその自動化されたアシスタントクライアント120のインタラクションを通して、ユーザの観点から見てユーザが人とコンピュータとの対話に従事し得る自動化されたアシスタント140の論理的なインスタンスであるように見えるものを形成する可能性がある。そのような自動化されたアシスタント140のインスタンスが、図1に示される。したがって、一部の実装において、クライアントデバイス106上で実行される自動化されたアシスタントクライアント120と関わり合うユーザは、実際には、自動化されたアシスタント140のそのユーザ独自の論理的なインスタンスと関わり合う可能性があることを理解されたい。簡潔で単純にするために、特定のユーザに「サービスを提供する」ものとして本明細書において使用される用語「自動化されたアシスタント」は、多くの場合、ユーザによって操作されるクライアントデバイス106上で実行される自動化されたアシスタントクライアント120と(複数のクライアントコンピューティングデバイスの複数の自動化されたアシスタントクライアントの間で共有される可能性がある)1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素130との組合せを指す。一部の実装において、自動化されたアシスタント140は、ユーザが自動化されたアシスタント140のその特定のインスタンスによって実際に「サービスを提供される」かどうかに関係なく任意のユーザからの要求に応答する可能性があることも理解されたい。
【００１６】
クライアントコンピューティングデバイス106は、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの乗り物のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、スタンドアロン型インタラクティブスピーカ、スマートテレビなどのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)である可能性がある。追加的なおよび/または代替的なクライアントコンピューティングデバイスが、提供される可能性がある。様々な実装において、クライアントコンピューティングデバイス106は、任意で、メッセージ交換クライアント(たとえば、SMS、MMS、オンラインチャット)、ブラウザなどの、自動化されたアシスタントクライアント120以外の1つまたは複数のその他のアプリケーションを動作させる可能性がある。それらの様々な実装の一部においては、その他のアプリケーションのうちの1つまたは複数が、任意で、自動化されたアシスタントクライアント120と(たとえば、アプリケーションプログラミングインターフェースを介して)インターフェースを取るか、または(クラウドに基づく自動化されたアシスタント構成要素130とやはりインターフェースを取る可能性がある)自動化されたアシスタントアプリケーションのそれらのその他のアプリケーション独自のインスタンスを含み得る。
【００１７】
自動化されたアシスタント140は、クライアントデバイス106のユーザインターフェース入力および出力デバイスを介してユーザとの人とコンピュータとの対話セッションに従事する。上述のように、ユーザのプライバシーを守るおよび/またはリソースを節約するために、多くの状況で、ユーザは、自動化されたアシスタントが口で言われた発話を完全に処理する前に自動化されたアシスタント140を明示的に呼び出さなければならないことが多い。自動化されたアシスタント140の明示的な呼び出しは、クライアントデバイス106において受け取られた特定のユーザインターフェース入力に応じて起こり得る。たとえば、クライアントデバイス106を介して自動化されたアシスタント140を呼び出すことができるユーザインターフェース入力は、任意で、クライアントデバイス106のハードウェアのおよび/または仮想的なボタンの作動を含み得る。クライアントデバイス106は、そのような口で言われない入力を認識するように任意で動作可能である呼び出しエンジン124を含む。
【００１８】
さらに、呼び出しエンジン124は、1つまたは複数の口で言われた呼び出しフレーズの存在を検出し、口で言われた呼び出しフレーズのうちの1つの検出に応じて自動化されたアシスタント140を呼び出すようにさらに動作可能である。たとえば、呼び出しエンジン124は、「ヘイ、アシスタント」、「オーケー、アシスタント」、および/または「アシスタント」などの口で言われた呼び出しフレーズを検出することに応じて自動化されたアシスタント140を呼び出すことができる。呼び出しエンジン124は、口で言われた呼び出しフレーズの発生を監視するためにクライアントデバイス106の1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを(たとえば、「非アクティブ」モードでない場合に)継続的に処理することができる。口で言われた呼び出しフレーズの発生を監視している間に、呼び出しエンジン124は、口で言われた呼び出しフレーズを含まないすべてのオーディオデータフレームを(たとえば、バッファに一時的に記憶した後)破棄する。しかし、呼び出しエンジン124が処理されるオーディオデータフレーム内で口で言われた呼び出しフレーズの発生を検出するとき、呼び出しエンジン124は、自動化されたアシスタント140を呼び出すことができる。
【００１９】
本明細書において使用されるとき、自動化されたアシスタント140を「呼び出すこと」は、自動化されたアシスタント140の1つまたは複数の前は非アクティブであった機能をアクティブ化させることを含み得る。たとえば、自動化されたアシスタント140を呼び出すことは、(呼び出しの前はオーディオデータフレームのさらなる処理が行われていなかったが)1つまたは複数のローカルエンジン122および/またはクラウドに基づく自動化されたアシスタント構成要素130にどの呼び出しフレーズが検出されたかおよび/または1つまたは複数の引き続くオーディオデータフレームに基づいてオーディオデータフレームをさらに処理させることを含み得る。
【００２０】
自動化されたアシスタント140の1つまたは複数のローカルエンジン122は、任意であり、たとえば、(キャプチャされたオーディオをテキストに変換する)ローカルスピーチトゥテキスト(「STT」)エンジン、(テキストをスピーチに変換する)ローカルテキストトゥスピーチ(「TTS」)エンジン、(オーディオおよび/もしくはオーディオから変換されたテキストの意味論的意味を決定する)ローカル自然言語プロセッサ、ならびに/またはその他のローカル構成要素を含み得る。クライアントデバイス106はコンピューティングリソース(たとえば、プロセッササイクル、メモリ、バッテリなど)の点で比較的制約されるので、ローカルエンジン122は、クラウドに基づく自動化されたアシスタント構成要素130に含まれる任意の対応する機能に比べて制限された機能を有する可能性がある。
【００２１】
クラウドに基づく自動化されたアシスタント構成要素130は、クラウドの実質的に制限のないリソースを活用して、ローカルエンジン122の任意の対応する処理に比べてオーディオデータおよび/またはその他のユーザインターフェース入力のより堅牢なおよび/またはより正確な処理を実行する。さらにまた、様々な実装において、クライアントデバイス106は、呼び出しエンジン124が口で言われた呼び出しフレーズを検出することまたは自動化されたアシスタント140の何らかのその他の明示的な呼び出しを検出することに応じてクラウドに基づく自動化されたアシスタント構成要素130にオーディオデータおよび/またはその他のデータを与えることができる。
【００２２】
図示されたクラウドに基づく自動化されたアシスタント構成要素130は、クラウドに基づくTTSモジュール131、クラウドに基づくSTTモジュール132、自然言語プロセッサ133、対話状態トラッカ134、および対話マネージャ135を含む。一部の実装において、自動化されたアシスタント140のエンジンおよび/またはモジュールのうちの1つまたは複数は、省略されるか、組み合わされるか、および/または自動化されたアシスタント140と分離した構成要素に実装される可能性がある。さらに、一部の実装において、自動化されたアシスタント140は、追加的なおよび/または代替的なエンジンおよび/またはモジュールを含み得る。
【００２３】
クラウドに基づくSTTモジュール132は、オーディオデータをテキストに変換することができ、テキストは、それから、自然言語プロセッサ133に与えられる可能性がある。クラウドに基づくTTSモジュール132は、テキストデータ(たとえば、自動化されたアシスタント140によって作られた自然言語応答)をコンピュータによって生成されるスピーチ出力に変換することができる。一部の実装において、TTSモジュール132は、コンピュータによって生成されるスピーチ出力を、たとえば、1つまたは複数のスピーカを使用して直接出力されるようにクライアントデバイス106に与える可能性がある。その他の実装においては、自動化されたアシスタント120によって生成されたテキストデータ(たとえば、自然言語応答)が、ローカルエンジン122のうちの1つに与えられる可能性があり、それから、そのローカルエンジン122が、テキストデータを、ローカルで出力されるコンピュータによって生成されるスピーチに変換する可能性がある。
【００２４】
自動化されたアシスタント140の自然言語プロセッサ133(代替的に「自然言語理解エンジン」と呼ばれる)は、自由形式の自然言語入力を処理し、自然言語入力に基づいて、自動化されたアシスタント140の1つまたは複数のその他の構成要素による使用のために注釈付きの出力を生成する。たとえば、自然言語プロセッサ133は、クライアントデバイス106を介してユーザによって与えられたオーディオデータのSTTモジュール132による変換であるテキスト入力である自然言語の自由形式の入力を処理することができる。生成される注釈付きの出力は、自然言語入力の1つまたは複数の注釈と、任意で、自然言語入力の用語のうちの1つまたは複数(たとえば、すべて)とを含む可能性がある。
【００２５】
一部の実装において、自然言語プロセッサ133は、自然言語入力内の様々な種類の文法的情報を特定し、注釈を付けるように構成される。たとえば、自然言語プロセッサ133は、用語にそれらの用語の文法的役割によって注釈を付けるように構成された音声タガー(図示せず)の一部を含む可能性がある。また、たとえば、一部の実装において、自然言語プロセッサ133は、追加的におよび/また代替的に、自然言語入力内の用語の間の統語的関係を決定するように構成された依存関係パーサ(図示せず)を含む可能性がある。
【００２６】
一部の実装において、自然言語プロセッサ133は、追加的におよび/また代替的に、(たとえば、文学のキャラクター、有名人、著名人などを含む)人、組織、(現実のおよび架空の)場所などへの言及などの1つまたは複数のセグメント内のエンティティの言及に注釈を付けるように構成されたエンティティタガー(図示せず)を含む可能性がある。自然言語プロセッサ133のエンティティタガーは、(たとえば、人などのエンティティのクラスへのすべての言及の特定を可能にするための)高レベルの粒度(granularity)および/または(たとえば、特定の人物などの特定のエンティティへのすべての言及の特定を可能にするための)より低いレベルの粒度でエンティティへの言及に注釈を付ける可能性がある。エンティティタガーは、特定のエンティティを解決するために自然言語入力の内容に依拠する可能性があり、および/または特定のエンティティを解決するためにナレッジグラフもしくはその他のエンティティデータベースと任意で通信する可能性がある。
【００２７】
一部の実装において、自然言語プロセッサ133は、追加的におよび/また代替的に、1つまたは複数の状況から得られる手掛かり(contextual cue)に基づいて同じエンティティへの言及をグループ分けするかまたは「クラスタリングする」ように構成された同一指示(coreference)リゾルバ(図示せず)を含む可能性がある。たとえば、同一指示リゾルバは、自然言語入力「I liked Hypothetical Cafe last time we ate there.」内の語「there」を「Hypothetical Cafe」に解決するために利用され得る。
【００２８】
一部の実装において、自然言語プロセッサ133の1つまたは複数の構成要素は、自然言語プロセッサ133の1つまたは複数のその他の構成要素からの注釈に依拠する可能性がある。たとえば、一部の実装において、固有表現(named entity)タガーは、特定のエンティティへのすべての言及に注釈を付ける際に同一指示リゾルバおよび/または依存関係パーサからの注釈に依拠する可能性がある。また、たとえば、一部の実装において、同一指示リゾルバは、同じエンティティへの言及をクラスタリングする際に依存関係パーサからの注釈に依拠する可能性がある。一部の実装においては、特定の自然言語入力を処理する際に、自然言語プロセッサ133の1つまたは複数の構成要素が、1つまたは複数の注釈を決定するために関連する、前の入力および/または特定の自然言語入力の外のその他の関連するデータを使用する可能性がある。
【００２９】
一部の実装において、対話状態トラッカ134は、たとえば、人とコンピュータとの対話セッションの間におよび/または複数の対話セッションにわたって1つまたは複数のユーザの目的(または「意図」)の信念状態(belief state)を含む「対話状態」を追跡するように構成される可能性がある。対話状態を決定する際に、一部の対話状態トラッカは、対話セッションにおけるユーザおよびシステムの発話に基づいて、対話においてインスタンス化されるスロット(slot)に関する最もありそうな値を決定しようとする可能性がある。一部の技術は、1組のスロットおよびそれらのスロットに関連する1組の値を定義する決まったオントロジを利用する。一部の技術は、追加的にまたは代替的に、個々のスロットおよび/またはドメイン(domain)に合わせて仕立てられる可能性がある。たとえば、一部の技術は、各ドメインの各スロットタイプのためのモデルを訓練することを必要とする可能性がある。
【００３０】
対話マネージャ135は、たとえば、対話状態トラッカ134によって与えられた現在の対話状態を、自動化されたアシスタント140によってそれから実行される複数の候補「応答アクション」のうちの1つまたは複数の応答アクションにマッピングするように構成される可能性がある。応答アクションは、現在の対話状態に応じて様々な形態で生じる可能性がある。たとえば、最後のターン(たとえば、最終的なユーザの望むタスクが実行されるとき)の前に行われる対話セッションのターンに対応する初期のおよび中程の対話状態は、自動化されたアシスタント140が追加的な自然言語の対話を出力することを含む様々な応答アクションにマッピングされる可能性がある。この応答の対話は、たとえば、ユーザが実行することを意図すると対話状態トラッカ134が信じる何らかのアクションに関するパラメータをユーザが与える(つまり、スロットを埋める)ことの要求を含む可能性がある。一部の実装において、応答アクションは、「要求する」(たとえば、スロットを埋めるためのパラメータを探す)、「申し出る(offer)」(たとえば、ユーザのためのアクションまたは一連のアクションを提案する)、「選択する」、「知らせる」(たとえば、要求された情報をユーザに提供する)、「一致なし」(たとえば、ユーザの最後の入力が理解されないことをユーザに通知する)、(たとえば、電球を消すための)周辺デバイスへのコマンドなどのアクションを含む可能性がある。
【００３１】
上述のように、呼び出しエンジン124は、オーディオデータ内の1つまたは複数の口で言われた呼び出しフレーズの存在を検出し、口で言われた呼び出しフレーズのうちの1つの検出に応じて自動化されたアシスタント140を呼び出すように動作可能である。呼び出しエンジン124は、オーディオデータフレームのストリーム内の口で言われた呼び出しフレーズの検出の際に雑音低減技術を選択的に適応させ、利用することができる。図1に示されるように、呼び出しエンジン124は、分類モジュール125、コントローラモジュール126、雑音低減(NR)適応モジュール127、および呼び出しフレーズモジュール128を含み得る。
【００３２】
分類モジュール125は、訓練された音響モデル160Aを使用してオーディオデータフレームのストリームのオーディオデータフレームの各々を処理する。オーディオデータフレームのストリームは、クライアントデバイス106の1つまたは複数のマイクロフォンからの出力に基づく。たとえば、オーディオデータフレームの各々は、少なくとも、第1のマイクロフォンからの出力に基づく第1のチャネルおよび第2のマイクロフォンからの出力に基づく第2のチャネルを有し得る。訓練された音響モデル160Aを使用するオーディオデータフレームの各々の処理は、1つまたは複数の呼び出し音素の各々に関して音素がオーディオデータフレーム内に存在する対応する確率を示す出力などのそれぞれの出力を生成する。
【００３３】
本明細書において使用されるとき、用語「オーディオデータフレーム」は、オーディオデータの単位を指す。たとえば、オーディオデータフレームは、単一の時点で単一のマイクロフォンによってキャプチャされた単一のオーディオサンプル、同じ単一の時点で対応する複数のマイクロフォンによってキャプチャされた複数のオーディオサンプル、時間の期間中に単一のマイクロフォンによってキャプチャされた複数のオーディオサンプル、または時間の共通の期間中に複数のマイクロフォンによってキャプチャされた複数のオーディオサンプルである可能性がある。本明細書において使用されるとき、「呼び出し音素」は、自動化されたアシスタントのための呼び出しフレーズの一部である音(たとえば、口で言われた発話、またはその一部)の単位を指す。呼び出しフレーズは、1つまたは複数の呼び出し音素を含む可能性がある。訓練された音響モデル160Aは、機械学習技術を使用して訓練される可能性があり、したがって、用語「音響モデル」、「訓練された音響モデル」、「機械学習モデル」、および「訓練された機械学習モデル」は、本明細書の全体を通じて交換可能なように使用される。
【００３４】
分類モジュール125は、オーディオデータフレームの処理に基づいて生成された対応する出力に基づく対応する出力インジケーションと一緒に、オーディオデータフレームをバッファ162にさらに記憶する。たとえば、出力インジケーションの各々は、「雑音」、「準トリガ」、および「トリガ」のうちの1つを示し得る。たとえば、分類モジュール125は、訓練された音響モデル160Aを使用して生成されたオーディオデータフレームに関する出力が呼び出し音素のいずれかに関する少なくとも第1の「低い」閾値の確率を示すことができないとき、オーディオデータフレームに「雑音」出力インジケーションを割り振り得る。また、たとえば、分類モジュール125は、訓練された音響モデル160Aを使用して生成されたオーディオデータフレームに関する出力が呼び出し音素のうちの1つまたは複数に関する少なくとも第1の閾値の確率を示すが、呼び出し音素のいずれかに関する少なくとも第2の「高い」閾値の確率を示すことができないとき、別のオーディオデータフレームに「準トリガ」出力インジケーションを割り振り得る。また、たとえば、分類モジュール125は、訓練された音響モデル160Aを使用して生成されたオーディオデータフレームに関する出力が呼び出し音素のいずれかに関する少なくとも第2の閾値の確率を示すとき、さらに別のオーディオデータフレームに「トリガ」出力インジケーションを割り振り得る。
【００３５】
したがって、分類モジュール125は、訓練された音響モデル160Aを使用してストリームのオーディオデータフレームを継続的に処理し、それらのオーディオデータフレームを、訓練された音響モデル160Aを使用する処理に基づく対応する出力インジケーションと一緒にバッファ162に記憶することができる。バッファ162は、固定長の先入れ先出しバッファであることができる。したがって、いつでも、バッファ162は、1つまたは複数の最も新しく処理されたオーディオデータフレームを含み得る。データフレームは、バッファ162が満杯である場合、バッファ162からフラッシュされることが可能であり、新しいデータフレームが、追加される。さらに、以下でより詳細に説明されるように、様々な状況で、1つまたは複数のデータフレームが、コントローラモジュール126によってバッファ162からフラッシュされ得る。バッファ162の固定長は、オーディオデータの所望の継続時間がバッファ162に記憶されることを可能にする長さであることが可能である。所望の継続時間は、(たとえば、完全な呼び出しフレーズがバッファ内のオーディオデータフレームによって集合的にキャプチャされることを可能にするのに十分なだけ長い)呼び出しフレーズの予測される継続時間に基づくことが可能である。しかし、多くの実装において、所望の継続時間は、本明細書において説明される適応的な雑音低減技術の効果を減らさないように、予想される継続時間を大きく超えて長くなるべきでない。一部の実装において、所望の継続時間は、1.25秒と2.0秒の間の値(たとえば、1.5秒)など、1秒と2秒の間の値である。
【００３６】
一部の実装において、訓練された音響モデル160Aは、畳み込みニューラルネットワーク(CNN)モデルである。それらのおよび/またはその他の実装の一部において、各オーディオデータフレームは、複数のチャネルを含み、チャネルのうちの1つだけが、訓練された音響モデル160Aを使用して処理される(しかし、両方のチャネルが、バッファ162に記憶され、たとえば、NR適応モジュール127および/またはNRモジュール129によって使用される)。オーディオデータフレームのストリームの各オーディオデータフレームは、マイクロフォンからの信号のセグメント分けに基づいて生成され得る。たとえば、各オーディオデータフレームは、10ミリ秒のホップ(hop)を用いる25ミリ秒のフレームであることが可能である。訓練された音響モデル160AがCNNである一部の実装において、CNNモデルは、入力層と出力層との間に3つの隠れ層を有する5つの層を含み得る。それらの実装の一部において、訓練された音響モデル160Aを使用してオーディオデータフレームのチャネルを処理する際、分類モジュール125は、チャネルに関する40チャネルlogメルフィルタバンクエネルギー(40-channel log-mel-filter-bank energy)を計算し、それらをチャネル毎エネルギー正規化(PCEN: per-channel energy normalization)を使用して正規化する。訓練された音響モデル160Aの入力層に適用される入力は、24個の左コンテキストフレーム(context frame)および15個の右コンテキストフレームを用いる積み重ねられた特徴ベクトルを含み得る。畳み込み層が、入力層の上にあり、時間および周波数にわたる308個の重なり合わない8×8のパッチをスイープする(sweep)ために使用され得る。その畳み込み層は、32個の出力を有する線形射影層(linear projection layer)および128個の出力を有する全結合整流線形ユニット(ReLU: rectified linear unit)層が後に続き得る。出力層のニューロンは、たとえば、ソフトマックス活性化関数を使用し得る。出力層上で生成される出力は、複数の目標音素の各々に関する事後確率を含むことが可能であり、任意で、目標音素がない事後確率を表す単一の追加的な出力を含むことが可能である。
【００３７】
コントローラモジュール126は、バッファ162を周期的に(またはその他の一定のおよび/もしくは一定でない間隔で)評価し、所与の場合のバッファの1つまたは複数のオーディオデータフレームを使用して所与の場合に実行されるべきアクションを選択する。コントローラモジュール126は、バッファ162のオーディオデータフレームに関連して記憶された出力インジケーションに基づいて所与の場合に実行されるべきアクションを選択する。一部の実装においては、所与の場合のバッファ162のオーディオデータフレームがすべて「雑音」を示す出力インジケーションを有するとき、コントローラモジュール126は、バッファからオーディオデータフレームをポップし、ポップされたオーディオデータフレームに基づくNRフィルタ164の適応のためにNR適応モジュール127にポップされたオーディオデータフレームを与える。一部の実装においては、所与の場合のバッファ162のオーディオデータフレームが「トリガ」を示す出力インジケーションを含まないが、「準トリガ」を示す少なくとも1つの出力インジケーションを含むとき、コントローラモジュール126は、バッファ162からすべてのオーディオデータフレームをフラッシュし、フィルタリングされたデータフレームを生成するためのフラッシュされたオーディオデータフレームのフィルタリングのためにNR適応モジュール129にフラッシュされたオーディオデータフレームを与える。それから、フィルタリングされたデータフレームは、呼び出しフレーズがフィルタリングされたオーディオデータフレーム内に存在するかどうかを判定するために、訓練された音響モデル160Bを使用して呼び出しフレーズモジュール128によって処理され得る。所与の場合のバッファのオーディオデータフレームが「トリガ」を示す少なくとも1つの出力インジケーションを含む場合、コントローラモジュール126は、バッファ162からすべてのオーディオデータフレームをフラッシュし、フラッシュされたオーディオデータフレームを呼び出しフレーズモジュール128に与える。それから、フラッシュされたオーディオデータフレームは、呼び出しフレーズがフィルタリングされたオーディオデータフレーム内に存在するかどうかを判定するために、訓練された音響モデル160Bを使用して呼び出しフレーズモジュー
ル128によって処理され得る。
【００３８】
NR適応モジュール127は、バッファ162が「雑音」オーディオデータフレームのみを含むとき、バッファ162からポップされるオーディオデータフレームに基づいて雑音低減技術を動的に適応させる。一部の実装において、NR適応モジュール127は、NRフィルタ164の適応によって雑音低減技術を適応させる。たとえば、一部の実装において、雑音低減技術は、適応雑音消去(ANC)であり、NRフィルタ164は、ANCフィルタである。それらの実装の一部において、NR適応モジュール127に与えられるオーディオデータフレームは、複数のチャネルを含み、NRフィルタ164を適応させる際、NR適応モジュール127は、NRフィルタ164を第1のチャネルと畳み込み、誤差信号を形成するために第2のチャネルから結果を引く。そして、NR適応モジュール127は、誤差信号の二乗平均出力を最小化するためにNRフィルタ164のフィルタ係数を調整する。NR適応モジュール127は、任意で、(たとえば、誤差信号が呼び出し音素を含むかどうかを判定するために)訓練された音響モデル160Bを使用するさらに処理するために呼び出しフレーズモジュール128に誤差信号をフィルタリングされたオーディオデータフレームとしてさらに与え得る。
【００３９】
ANCが利用されるとき、様々な適応アルゴリズムが、ANCを実装するために利用され得る。1つの非限定的な例として、短時間フーリエ変換(STFT)に基づく再帰的最小二乗(RLS)技術が、利用され得る。そのような技術は、柔軟および/または高計算効率であり得る。ANCが1つの例示的な雑音低減技術として上で説明されているが、その他の技術が利用されることが可能であり、任意で、1つまたは複数の対応するフィルタを利用することが可能であることが留意される。1つの非限定的な例は、ビームフォーミング雑音低減技術である。
【００４０】
オーディオデータフレームがそれぞれの第1のマイクロフォンおよび第2のマイクロフォンからの第1のチャネルおよび第2のチャネルを含むSTFTに基づくRLS技術を使用する1つの特定の例が、以下に与えられる。そのような例では、オーディオデータフレームmにおいて、角周波数ωに関して、2つのマイクロフォン信号のSTFT係数は、それぞれ、X1(jω, m)およびX2(jω, m)と表され、ここで、
【００４１】
【数１】
2021507315.tif 000003
【００４２】
である。ANCは、Lタップの複素有限インパルス応答(FIR)フィルタ
【００４３】
【数２】
2021507315.tif 000004
【００４４】
によって第2のマイクロフォン信号をフィルタリングし、式中、(・)Tは、ベクトルまたは行列の転置を表す。結果が、誤差信号を得るために第1のマイクロフォン信号から引かれる。
【００４５】
【数３】
2021507315.tif 000005
【００４６】
式中、(・)Hは、ベクトルまたは行列のエルミート転置であり、
【００４７】
【数４】
2021507315.tif 000006
【００４８】
は、現在のおよび最後のL-1フレームの第2のチャネルのSTFT係数の集合である。加重最小二乗コスト関数が、
【００４９】
【数５】
2021507315.tif 000007
【００５０】
と表され、式中、0<λ≦1は、忘却因子である。コスト関数は、hH(jω, m)に関して式(3)を偏微分し、結果を0に設定することによって最小化される。
【００５１】
【数６】
2021507315.tif 000008
【００５２】
式中、
【００５３】
【数７】
2021507315.tif 000009
【００５４】
、
【００５５】
【数８】
2021507315.tif 000010
【００５６】
であり、(・)*は、複素変数の共役である。h(jω, m)に関して式(4)を解くことは、RLSの解、
【００５７】
【数９】
2021507315.tif 000011
【００５８】
をもたらす。Woodburyの恒等式を使用すると、(5)の行列の逆の直接的な計算が、避けられることが可能であり、より計算効率の高いバージョンが、演繹される。
【００５９】
NRモジュール129は、フィルタリングされたオーディオデータフレームを生成するために、最も新しく適応された雑音低減技術を使用してオーディオデータフレームを処理する。たとえば、NRモジュール129は、バッファ162が「準トリガ」オーディオデータフレームを含むが、「トリガ」オーディオデータフレームを含まないとき、バッファ162からのオーディオデータフレームを受け取り得る。さらに、NRモジュール129は、フィルタリングされたオーディオデータフレームを生成するために、NR適応モジュール127によって最も新しく適応されたNRフィルタ164を使用してそれらのオーディオデータフレームを処理し得る。たとえば、NRモジュール129に与えられるオーディオデータフレームは、複数のチャネルを含むことが可能であり、それらのオーディオデータフレームのうちの1つに基づいてフィルタリングされたデータフレームを生成する際、NRモジュール129は、NRフィルタ164を第1のチャネルと畳み込み、誤差信号を形成するために第2のチャネルから結果を引き、誤差信号をフィルタリングされたデータフレームとして使用することができる。NRモジュール129は、訓練された音響モデル160Bを使用してさらに処理するために呼び出しフレーズモジュール128にフィルタリングされたオーディオデータフレームを与える。
【００６０】
呼び出しフレーズモジュール128は、呼び出しフレーズが存在するかどうかを判定するために訓練された音響モデル160Bを使用して受け取られたオーディオデータフレームまたはフィルタリングされたデータフレームを処理する。一部の実装において、訓練された音響モデル160Bは、訓練された音響モデル160Aと同じであることが可能であるが、分類モジュール125および呼び出しフレーズモジュール128による並列処理を可能にするために訓練された音響モデル160Aの異なるインスタンスであることができる。一部のその他の実装において、訓練された音響モデル160Bは、訓練された音響モデル160Aと異なることが可能である。たとえば、訓練された音響モデル160Bは、訓練された音響モデル160Aに比べて利用するための計算負荷がより高い可能性があるより堅牢なモデルであることが可能である。
【００６１】
呼び出しフレーズモジュール128は、訓練された音響モデル160Bを使用する処理に基づいて生成された出力に基づいて呼び出しフレーズが存在するかどうかを判定することができる。たとえば、バッファ162のすべてのオーディオデータフレームがバッファからフラッシュされ、NRモジュール129がそれらのオーディオデータフレームに対応するフィルタリングされたデータフレームを生成するとき、呼び出しフレーズモジュール128は、訓練された音響モデル160Bを使用するそれらのフィルタリングされたデータフレームの処理によって生成された出力に基づいて呼び出しフレーズが存在するかどうかを判定し得る。たとえば、呼び出しフレーズモジュール128は、呼び出しフレーズの呼び出し音素の少なくとも閾値の量が出力内で少なくとも閾値の確率で示される(および任意で特定の順序で示される)場合に呼び出しフレーズが存在すると判定し得る。一部の実装においては、呼び出しフレーズが存在するかどうかを判定する際、呼び出しフレーズモジュール128は、任意でさらに、訓練された音響モデル160Aを使用して対応するオーディオデータフレームに関して生成される出力を利用し得る。言い換えると、訓練された音響モデル160A上で生成された出力が、対応するオーディオデータフレーム(またはそのフィルタリングされた変化形)に関して訓練された音響モデル160B上で生成された出力と一緒に考慮され得る。
【００６２】
ここで図2Aおよび図2Bに目を向けると、クライアントデバイス106の呼び出しエンジン124によって実施され得る例示的な方法200のさらなる説明が、与えられる。便宜上、流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、図1のクライアントデバイス106の1つもしくは複数のプロセッサおよび/または呼び出しエンジン124の1つもしくは複数のモジュールなどの様々なコンピュータシステムの様々な構成要素を含む可能性がある。さらに、方法200の動作が特定の順序で示されるが、これは限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される可能性がある。
【００６３】
方法200のブロック252および254が、図2Aに示される。一部の実装においては、分類モジュール125が、図2Aのブロックを実行する。ブロック252において、システムが、オーディオデータフレームの分類を示す出力を生成するために訓練された音響モデルを使用して受け取られたオーディオデータフレームの1つまたは複数のチャネルを処理する。たとえば、出力は、オーディオデータフレームが「トリガ」を含むか、「準トリガ」含むか、または「雑音」を含むかどうかを示し得る。
【００６４】
ブロック254において、システムが、システムにアクセス可能なメモリ内の先入れ先出しバッファなどのバッファに受け取られたオーディオデータフレームおよび分類を記憶する。システムは、それから、ブロック252に戻り、別のオーディオデータフレームを処理し、バッファにオーディオデータフレームおよびその分類を記憶する。ブロック252および254は、オーディオデータフレームのストリームに対して継続的に実行され得る。たとえば、ブロック252および254は、クライアントコンピューティングデバイスの自動化されたアシスタントクライアントが口で言われた呼び出しフレーズを監視しているときに実行され得る。これは、ユーザが自動化されたアシスタントクライアントを口で言われた呼び出しフレーズの監視が行われない非アクティブモードに(たとえば、ハードウェアのスイッチによって)手動で設定するのに応じて一時的に停止され得る、および/または(たとえば、前の検出された呼び出しフレーズに応じて)自動化されたアシスタントが呼び出される間、一時的に停止され得る。
【００６５】
方法200のさらなるブロックが、図2Bに示される。様々な実装において、図2Bのブロックは、図2Aの間隔と異なる間隔でおよび/または図2Aのスレッドと異なるスレッドによって実行され得る。たとえば、図2Bのブロックの反復が、反復的に実行されることが可能であり、それぞれの反復において、図2Aのブロックの複数回の反復が、既に実行された可能性がある。言い換えると、図2Aのブロックは、バッファの内容を継続的に更新するために反復的に実行されることが可能であり、図2Bのブロックは、バッファの現在の内容を周期的に評価し、現在の内容に応じてさらなるアクションを実行するために反復的に(しかし、図2Aのブロックよりも少ない頻度で)実行されることが可能である。
【００６６】
図2Bのブロック256において、システムが、そのオーディオデータフレームが「トリガ」フレームであることを示す出力インジケーションを有するバッファ内の少なくとも1つのオーディオデータフレームが存在するかどうかを判定する。存在する場合、システムは、ブロック260に進み、呼び出しフレーズがバッファのオーディオデータフレーム内に存在するかどうかを判定するためにさらなる訓練された音響モデルを使用してバッファのオーディオデータフレームの1つまたは複数のチャネルを処理する。たとえば、ブロック260において、システムが、バッファのすべてのオーディオデータフレームをフラッシュし、さらなる訓練された音響モデルを使用してそれらのオーディオデータフレームの少なくとも1つのチャネル(および任意で1つのチャネルのみ)を処理し、処理に基づいて生成された出力に基づいて呼び出しフレーズが存在するかどうかを判定することができる。ブロック260に続いて、システムは、ブロック272に進み、システムは、それから、呼び出しフレーズが存在するとブロック260において判定される場合、ブロック274に進み、または呼び出しフレーズが存在しないと判定される場合、ブロック256に戻る。
【００６７】
図2Bのブロック256の反復において、そのオーディオデータフレームが「トリガ」フレームであることを示す出力インジケーションを有するバッファ内の少なくとも1つのオーディオデータフレームが存在しないとシステムが判定する場合、システムは、ブロック262に進み、そのオーディオデータフレームが「準トリガ」フレームであることを示す出力インジケーションを有するバッファ内の少なくとも1つのオーディオデータフレームが存在するかどうかを判定する。存在する場合、システムは、ブロック264に進み、フィルタリングされたデータフレームを生成するために今適応されている雑音低減技術を使用してバッファの1つまたは複数のオーディオデータフレームの1つまたは複数のチャネルを処理する。たとえば、ブロック264において、システムが、バッファのすべてのオーディオデータフレームをフラッシュし、(たとえば、単一のフィルタリングされたチャネルのみを含む)対応するフィルタリングされたデータフレームを生成するために今適応されている雑音低減技術を使用してオーディオデータフレームの各々の複数のチャネルを処理することができる。以下でより詳細に説明されるように、今適応されている雑音低減技術は、ブロック268の最も新しい反復において最も新しく適応された雑音低減技術になる。それから、システムは、ブロック266に進み、呼び出しフレーズが存在するかどうかを判定するために訓練された音響モデルを使用して(ブロック264において生成された)フィルタリングされたデータフレームを処理する。ブロック266は、フィルタリングされたデータフレームが処理されることを除いて、ブロック260と共通する1つまたは複数の態様を共有し得る。ブロック266に続いて、システムは、ブロック272に進み、システムは、それから、呼び出しフレーズが存在するとブロック260において判定される場合、ブロック274に進み、または呼び出しフレーズが存在しないと判定される場合、ブロック256に戻る。
【００６８】
図2Bのブロック262の反復において、そのオーディオデータフレームが「準トリガ」フレームであることを示す出力インジケーションを有するバッファ内の少なくとも1つのオーディオデータフレームが存在しないとシステムが判定する場合、システムは、ブロック268に進む。ブロック268に進む際、システムは、バッファが「雑音」を示す出力インジケーションをすべてが有するオーディオデータフレームのみを含むと実質的に判定済みであることが留意される。言い換えると、バッファのオーディオデータフレームは、ブロック256および262の判定がフレームのいずれも「トリガ」フレームまたは「準トリガ」フレームでないことを示すので実質的に「雑音」フレームと考えられる。
【００６９】
ブロック268において、システムが、バッファの1つまたは複数のオーディオデータフレームの1つまたは複数のチャネルを使用して雑音低減技術を適応させる。たとえば、システムは、少なくとも(第1のマイクロフォンに基づく)第1のチャネルおよび(第2のマイクロフォンに基づく)第2のチャネルを含む少なくとも1つの(および任意でただ1つの)オーディオデータフレームをバッファから「ポップする」ことができ、オーディオデータフレームを利用してANC雑音低減技術において利用される適応雑音消去フィルタを適応させることができる。それから、システムは、任意で、ブロック270に進むことが可能であり、呼び出しフレーズが存在するかどうかを判定するために訓練された音響モデルを使用して(適応中にブロック268において生成された)フィルタリングされたデータフレームを処理する。一部の実装では、ブロック270において、システムが、ブロック268からの雑音を低減されたフレームのみを最初に処理し得る。雑音を低減されたフレームがいずれかのトリガ音素の少なくとも閾値の確率を欠くと処理に基づいて判定される場合、処理は、終了し得る。しかし、それらの実装の一部においては、雑音を低減されたフレームが少なくとも1つのトリガ音素に関する少なくとも閾値の確率を含んでいたと判定される場合、さらなるオーディオデータフレームが、バッファからプルされ、フィルタリングされたデータフレームを生成するために雑音低減技術を使用して処理されることが可能であり、それらのフィルタリングされたデータフレームも、呼び出しフレーズが存在するかどうかを判定する際にブロック270において処理されることが可能である。ブロック270に続いて、システムは、ブロック272に進み、システムは、それから、呼び出しフレーズが存在するとブロック260において判定される場合、ブロック274に進み、または呼び出しフレーズが存在しないと判定される場合、ブロック256に戻る。
【００７０】
ブロック272の反復において、システムがブロック274に進む場合、システムは、ブロック274において、バッファのオーディオデータフレーム(および/もしくはそのフィルタリングされたバージョン)のさらなる処理が実行されるようにし、ならびに/または次のオーディオデータフレーム(および/もしくはそのフィルタリングされたバージョン)のさらなる処理が実行されるようにする。たとえば、システムは、バッファのオーディオデータフレーム(たとえば、呼び出しフレーズが存在したと判定する際に使用されるオーディオデータフレーム)および/またはそのようなオーディオデータフレームの直後の次のオーディオデータフレームを、その時までストリームからのオーディオデータフレームを処理していなかった1つまたは複数のリモートのおよび/またはローカルの自動化されたアシスタントエンジンに与えることができる。
【００７１】
一部の実装においては、コントローラモジュール126が、図2Bのブロック256および262を実行することが可能であり、NR適応モジュール127が、図2Bのブロック268を実行することが可能であり、NRモジュール129が、図2Bのブロック264を実行することが可能であり、ならびに/または呼び出しフレーズモジュール128が、図2Bのブロック260、266、270、および274を実行することが可能である。
【００７２】
ここで図3に目を向けると、本明細書において開示される様々な実装によってオーディオデータフレームがどのようにして処理され得るかの例が、与えられる。図3においては、オーディオデータフレームのストリームのオーディオデータフレーム1121〜Nが、分類モジュール125に順に与えられる。分類モジュール125は、「トリガ」、「準トリガ」、または「雑音」を示すラベルなどの対応するラベル1141〜Nを生成するために訓練された音響モデル160Aを使用してオーディオデータフレーム1121〜Nの各々を順に処理する。
【００７３】
オーディオデータフレーム1121〜Nは、それらのオーディオデータフレームの対応するラベル1141〜Nと一緒にバッファ162に記憶される。コントローラモジュール126は、バッファ162にアクセスし、バッファ162のオーディオデータフレーム1121をNR適応モジュール127に与えるべきか、バッファ162のすべてのオーディオデータフレーム1121〜NをNRモジュール129に与えるべきか、またはバッファ162のすべてのオーディオデータフレーム1121〜Nを呼び出しフレーズモジュール128に与えるべきかどうかを、バッファ162の内容に基づいて判定する。図3に示されるように、コントローラモジュール126は、バッファ162が「雑音」フレームのみを含むとそのコントローラモジュール126が判定するとき、バッファ162のオーディオデータフレーム1121をNR適応モジュール127に与えることができ、バッファ162が「準トリガ」フレームを含む(および任意でそのバッファ162がいかなる「トリガ」フレームも欠いている)とそのコントローラモジュール126が判定するとき、バッファ162のすべてのオーディオデータフレーム1121〜NをNRモジュール129に与えることができ、バッファ162が「トリガ」フレームを含む(および任意でそのバッファ162がいかなる「準トリガ」フレームも欠いている)とそのコントローラモジュール126が判定するとき、バッファ162のすべてのオーディオデータフレーム1121〜Nを呼び出しフレーズモジュール128に与えることができる。
【００７４】
したがって、図3において、コントローラモジュール126は、バッファ162の内容に基づいて3つの判断のうちの1つを行う。図3の例は、1つの場合の例であり、コントローラモジュール126は、(新しいオーディオデータフレームが分類モジュール125によって与えられたラベルと一緒にバッファ162に追加されるとき)それぞれの場合のバッファ162の内容に基づいて複数のさらなる場合の各々において3つの判断のうちの1つを行うことが理解される。
【００７５】
コントローラモジュール126がバッファ162のオーディオデータフレーム1121をNR適応モジュール127に与えるとき、NR適応モジュール127は、オーディオデータフレーム1121に基づいてNRフィルタ164を適応させる。また、NR適応モジュール127は、任意で、フィルタリングされたデータフレーム1131、つまり、適応中に生成されたオーディオデータフレーム1121のフィルタリングされたバージョンを呼び出しフレーズモジュール128に与える。呼び出しフレーズモジュール128は、呼び出しフレーズが存在するかどうかを判定する(116)際に訓練された音響モデル160Bを使用してフィルタリングされたデータフレーム1131を処理し得る。
【００７６】
コントローラモジュール126がバッファ162のすべてのオーディオデータフレーム1121〜NをNRモジュール129に与えるとき、NRモジュール129は、フィルタリングされたデータフレーム1131〜Nを生成するために(前の場合にNR適応モジュール127によって最も新しく適応された)NRフィルタ164を使用してそれらのオーディオデータフレーム1121〜Nを処理する。NRモジュール129は、フィルタリングされたデータフレーム1131〜Nを呼び出しフレーズモジュール128に与え、呼び出しフレーズモジュール128は、呼び出しフレーズが存在するかどうかを判定する(116)際に訓練された音響モデル160Bを使用してそれらのフレームを処理する。
【００７７】
コントローラモジュール126がバッファ162のすべてのオーディオデータフレーム1121〜Nを呼び出しフレーズモジュール128に与えるとき、呼び出しフレーズモジュール128は、呼び出しフレーズが存在するかどうかを判定する(116)際に訓練された音響モデル160Bを使用してそれらのフレーム(任意でそれらの単一のチャネルのみ)を処理する。
【００７８】
図4は、図4の例においてはマイクロフォン(明示せず)を有するスタンドアロン型インタラクティブスピーカの形態をとる例示的なクライアントデバイス406を示す。図4は、例示的なユーザ402が「オーケー、アシスタント。予定はどうなってる」という口で言われた発話403を言うことも示す。さらに、図4は、背景雑音405をもたらしているテレビ404を含む。「オーケー、アシスタント」は、(たとえば、自動化されたアシスタントクライアントによって)クライアントデバイス406に少なくとも部分的に実装された自動化されたアシスタントのための呼び出しフレーズであり得る。クライアントデバイス406の1つまたは複数のプロセッサは、テレビ404からの背景雑音405などの背景雑音が存在したとしても口で言われた発話403の中の呼び出しフレーズを検出するために本明細書において説明される技術を利用することができる。たとえば、様々な技術が、前の「雑音」オーディオデータフレームを考慮して適応された雑音低減技術を利用することができ、それによって、背景雑音405を低減するために雑音低減技術を効果的に適応させる。本明細書においてやはり説明されるように、呼び出しフレーズの検出は、自動化されたアシスタントを呼び出すことができ、それによって、「予定はどうなってる」のさらなる処理が実行されるようにし、適切な応答が、自動化されたアシスタントによって生成されることが可能であり、応答が、クライアントデバイス406のスピーカによって聞こえるようにレンダリングされることが可能である。たとえば、応答は、当日のユーザの記憶されたカレンダーのエントリの要約であることが可能である。
【００７９】
ここで図5に目を向けると、クライアントデバイス106の呼び出しエンジン124によって実施され得る別の例示的な方法500のさらなる説明が、与えられる。方法500は、呼び出しエンジン124によって図2Aおよび図2Bの方法200(もしくは同様の方法)の代わりに実施され得る--または任意で方法200と並列して実施される可能性さえある(および両方の方法が、呼び出しフレーズが存在するときを判定する際に利用される可能性がある)。
【００８０】
便宜上、図5の流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、図1のクライアントデバイス106の1つもしくは複数のプロセッサおよび/または呼び出しエンジン124の1つもしくは複数のモジュールなどの様々なコンピュータシステムの様々な構成要素を含む可能性がある。さらに、方法500の動作は特定の順序で示されるが、これは限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される可能性がある。
【００８１】
ブロック554において、システムが、オーディオデータフレームのストリームのオーディオデータフレームを受け取る。システムは、それから、ブロック554とブロック558との両方に進む。システムは、(たとえば、異なるスレッドによって)ブロック554および558に並列して進み得る。
【００８２】
ブロック554において、システムが、ブロック552において受け取られたオーディオデータフレームの1つまたは複数のチャネルを使用して雑音低減フィルタを適応させる。たとえば、システムは、上述のように、STFTに基づくRLSを利用するANCフィルタなどのANC雑音低減技術において使用されるANCフィルタを適応させ得る。
【００８３】
ブロック554から、システムは、ブロック556に進み、ブロック554の最も新しい反復において適応された適応されたフィルタを、システムにアクセス可能なメモリ内の先入れ先出し(FIFO)バッファに記憶する。たとえば、システムは、ブロック554の最も新しい反復において適応された適応されたフィルタの係数を記憶することによって適応されたフィルタを記憶することができる。したがって、(バッファにオーディオデータフレームを記憶する)方法200と対照的に、方法500においては、適応されたフィルタが、バッファに記憶される。
【００８４】
ブロック558において、システムが、FIFOバッファの適応されたフィルタを使用して受け取られたオーディオデータフレームの1つまたは複数のチャネルを処理し、適応されたフィルタは、時間的に前のオーディオデータフレームに基づいて適応されるフィルタである。たとえば、適応されたフィルタは、FIFOバッファの「ヘッド(head)」の適応されたフィルタ(たとえば、FIFOバッファの「最も古い」適応されたフィルタ)であることが可能であり、FIFOバッファのヘッドの適応されたフィルタは、ブロック552の前の反復において受け取られたオーディオデータフレームのストリームの時間的に前のオーディオデータフレームに基づいてブロック554の時間的に前の反復において適応された。システムは、フィルタリングされたデータフレームを生成するために適応されたフィルタを使用してチャネルを処理する。したがって、ブロック558において、システムが、時間的に前のオーディオデータフレームに基づいて(およびそのオーディオデータフレームに先立ったオーディオデータフレームを考慮して)適応される適応されたフィルタを使用して受け取られたオーディオデータフレームを処理する。たとえば、FIFOバッファは、対応するオーディオデータフレームからの適応されたフィルタの量を保持することができ、対応するオーディオデータフレームは、オーディオデータストリームの1から2秒(またはその他の値)を成す。さらに、ブロック558において使用されるオーディオデータフィルタは、FIFOバッファのヘッドからのものであることが可能であり、それによって、1から2秒(またはその他の値)前からのオーディオデータフレームに基づいて適応された--しかし、いかなる時間的により新しいオーディオデータフレームにも基づいて適応されなかった適応されたフィルタを考慮してフィルタリングされたデータフレームを生成する。したがって、ブロック558において使用される適応されたフィルタは、その適用の際に(その生成およびその対応するオーディオデータフレームに対して)「先送りされて」おり、それによって、フィルタリングされたオーディオデータフレーム内のいずれかの潜在的に存在するトリガ音素(またはその他の実装におけるその他の目標の特徴)を減らすリスクを軽減しながら背景雑音を削減したフィルタリングさ
れたオーディオデータフレームを生成する。
【００８５】
ブロック558から、システムは、ブロック560に進み、呼び出しフレーズが存在するかどうかを判定する際に訓練された音響モデルを使用してフィルタリングされたデータフレームを処理する。それから、システムは、ブロック560に進み、呼び出しフレーズが存在するかどうかを判定し、これは、ブロック560の最も新しい反復およびブロック560の1つまたは複数の先行する反復に基づくことができる。たとえば、これは、ブロック560の最も新しい反復の処理に基づいてトリガ音素が存在すると判定することに基づくことができ、ブロック560の先行する反復の処理に基づいて別のトリガ音素が存在すると判定することに基づくことができる。システムは、呼び出しフレーズが存在するとブロック562において判定される場合、ブロック564に進み、または呼び出しフレーズが存在しないと判定される場合、ブロック552に戻る。
【００８６】
ブロック562の反復において、システムがブロック564に進む場合、システムは、ブロック564において、次のオーディオデータフレーム(および/またはそのフィルタリングされたバージョン)のさらなる処理が実行されるようにする。たとえば、システムは、次のオーディオデータフレームを、その時までストリームからのオーディオデータフレームを処理していなかった1つまたは複数のリモートのおよび/またはローカルの自動化されたアシスタントエンジンに与えることができる。
【００８７】
ブロック562の反復において、システムがブロック552に進む場合、システムは、ブロック552において次のオーディオデータフレームを受け取り、次のオーディオデータフレームに基づいてブロック554および558に進む。したがって、方法500の複数回の反復によって、オーディオデータフレームのストリームは、--呼び出し音素が存在するかどうかを判定する際に音響モデル上で処理する前に現在のオーディオデータフレームをフィルタリングするために、フィルタの適用の際に遅らされている適応されたフィルタを使用しながら--処理され、呼び出しフレーズの存在に関して監視される。方法500を実行する際、単一の音響モデルのみが利用されることが可能であり、コントローラモジュール126が省略され得ることが留意される。
【００８８】
方法500が呼び出しフレーズの存在を検出することに関連して説明されているが、方法500は、追加的にまたは代替的に、話者の特定のための音声の特徴などの代替的な特徴の存在を検出するために利用され得る。一部の実装においては、NR適応モジュール127が、図5のブロック554および556を実行することが可能であり、NRモジュール129が、図5のブロック558を実行することが可能であり、ならびに/または呼び出しフレーズモジュール128が、図5のブロック560、562、および564を実行することが可能である。
【００８９】
図6は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用され得る例示的なコンピューティングデバイス610のブロック図である。概して、コンピューティングデバイス610は、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリサブシステム625およびファイルストレージサブシステム626を含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含む可能性がある。入力および出力デバイスは、コンピューティングデバイス610とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【００９０】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含む可能性がある。概して、用語「入力デバイス」の使用は、コンピューティングデバイス610内または通信ネットワーク上に情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【００９１】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的表示を含む可能性がある。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を作成するための何らかのその他のメカニズムを含む可能性がある。ディスプレイサブシステムは、オーディオ出力デバイスを介してなどの非視覚的表示を与える可能性もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス610からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【００９２】
ストレージサブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造体を記憶する。たとえば、ストレージサブシステム624は、図2Aおよび図2Bの方法、図5の方法の選択された態様を実行するため、ならびに/または図1に示された様々な構成要素を実装するための論理を含む可能性がある。
【００９３】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム624において使用されるメモリ625は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)630と、決まった命令が記憶される読み出し専用メモリ(ROM)632とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、または取り外し可能なメディアカートリッジを含む可能性がある。特定の実装の機能を実装するモジュールは、ストレージサブシステム624内のファイルストレージサブシステム626によって、またはプロセッサ614によりアクセスされ得るその他のマシンに記憶される可能性がある。
【００９４】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する可能性がある。
【００９５】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類のものであることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図6に示されたコンピューティングデバイス610の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図6に示されたコンピューティングデバイスよりも多くのまたは図6に示されたコンピューティングデバイスよりも少ない構成要素を有するコンピューティングデバイス610の多くのその他の構成が、可能である。
【００９６】
本明細書において検討された特定の実装がユーザについての個人情報(たとえば、その他の電子的な通信から抽出されたユーザデータ、ユーザのソーシャルネットワークについての情報、ユーザの位置、ユーザの時間、ユーザのバイオメトリック情報、ならびにユーザの活動およびデモグラフィックス(demographic)情報、ユーザの間の関係など)を収集するかまたは使用する可能性がある状況において、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、および情報がユーザについてどのようにして収集され、記憶され、使用されるかを制御する1つまたは複数の機会を与えられる。つまり、本明細書において検討されたシステムおよび方法は、そのようにするために関連するユーザからの明示的な認可を受け取るときにのみユーザの個人情報を収集、記憶、および/または使用する。
【００９７】
たとえば、ユーザは、プログラムまたは特徴がプログラムまたは特徴に関連するその特定のユーザまたはその他のユーザについてのユーザ情報を収集するかどうかを制御することを可能にされる。個人情報が収集されるべきである各ユーザは、情報が収集されるかどうかおよび情報のどの部分が収集されるべきであるかに関するパーミッションまたは認可を与えるための、そのユーザに関連する情報収集の制御を可能にする1つまたは複数の選択肢を提示される。たとえば、ユーザは、通信ネットワークを介して1つまたは複数のそのような制御の選択肢を与えられ得る。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で取り扱われる可能性がある。一例として、ユーザのアイデンティティ(identity)が、個人を特定できる情報が確定され得ないように取り扱われる可能性がある。別の例として、ユーザの地理的位置が、ユーザの特定の位置が確定され得ないようにより大きな地域に広げられる可能性がある。
【００９８】
一部の実装においては、自動化されたアシスタントのための呼び出しフレーズを検出する方法が、クライアントデバイスの1つまたは複数のプロセッサによって実施され、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用してストリームのオーディオデータフレームの各々を処理するステップとを含む。方法は、ストリームのオーディオデータフレームを、オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップをさらに含む。出力インジケーションの各々は、オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、訓練された機械学習モデルを使用するオーディオデータフレームのうちのそれぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく。方法は、第1の場合に、第1の場合のバッファ内の出力インジケーションが、第1の場合のバッファ内のオーディオデータフレームがすべて1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップをさらに含む。方法は、第1の場合の判定に応じて、雑音低減フィルタを適応させるために第1の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つを使用するステップをさらに含む。方法は、第1の場合の後の第2の場合に、第2の場合のバッファ内の出力インジケーションが、第2の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つが1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示すと判定するステップをさらに含む。方法は、第2の場合の判定に応じて、少なくとも部分的に第1の場合の判定に応じて適応された雑音低減フィルタを使用する第2の場合のバッファ内の複数のオーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してフィルタリングされたデータフレームを処理することに基づいて、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すかどうかを判定するステップとをさらに含む。方法は、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すとの判定に応じて、自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップをさらに含む。
【００９９】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【０１００】
一部の実装において、自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップは、ストリームのその後受け取られたオーディオデータフレームがさらなる処理のために1つまたは複数のリモートの自動化されたアシスタントサーバに送信されるようにすることを含む。さらなる処理は、たとえば、スピーチトゥテキスト変換、意味処理、および対話状態追跡のうちの1つまたは複数を含み得る。
【０１０１】
一部の実装においては、雑音低減フィルタを適応させるために第1の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つを使用するステップが、バッファから単一のデータフレームを取り出すことと、雑音低減フィルタを適応させるために単一のデータフレームを使用することとを含む。
【０１０２】
一部の実装において、ストリームのオーディオデータフレームは、少なくとも、1つまたは複数のマイクロフォンのうちの第1のマイクロフォンに基づく第1のチャネルと、1つまたは複数のマイクロフォンのうちの第2のマイクロフォンに基づく第2のチャネルとを含む。それらの実装の一部において、それぞれの出力を生成するために訓練された音響モデルを使用してストリームのオーディオデータフレームの各々を処理するステップは、訓練された音響モデルを使用してオーディオデータフレームの各々の第1のチャネルのみを処理することを含む。それらの実装の一部において、雑音低減フィルタは、マルチチャネル雑音低減フィルタであり、雑音低減フィルタを適応させるために第1の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つを使用するステップは、雑音低減フィルタを適応させるために第1の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つの第1のチャネルと第2のチャネルとの両方を使用することを含む。雑音低減フィルタを適応させるために第1の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つの第1のチャネルと第2のチャネルとの両方を使用することは、たとえば、雑音低減フィルタを更新するために誤差を決定する際に第1のチャネルを信号源として使用し、第2のチャネルを雑音源として使用することを含み得る。少なくとも部分的に第1の場合の判定に応じて適応された雑音低減フィルタを使用する第2の場合のバッファ内の複数のオーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップは、フィルタリングされたデータフレームを生成する際に複数のオーディオデータフレームの第1のチャネルと第2のチャネルとの両方を使用することを含み得る。
【０１０３】
一部の実装において、第2の場合のバッファ内の出力インジケーションは、対応する出力が第1の閾値を満たすが、第2の閾値を満たし得ないことに基づいて、第2の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つが1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示す。
【０１０４】
一部の実装においては、クライアントデバイスの1つまたは複数のプロセッサによって実施される方法が、提供され、クライアントデバイスの自動化されたアシスタントクライアントの1つまたは複数の機能が非アクティブである間に、複数の最も新しく処理されたオーディオデータフレーム、およびオーディオデータフレームのうちのそれぞれのオーディオデータフレームにそれぞれが対応する複数の出力インジケーションを含むバッファにアクセスするステップを含む。オーディオデータフレームは、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づく。出力インジケーションは、機械学習モデルを使用するオーディオデータフレームのうちのそれぞれのオーディオデータフレームの処理に基づいてそれぞれ決定され、オーディオデータフレームのうちのそれぞれのオーディオデータフレームが第1の閾値を満たし得ない雑音フレームであるのか、第1の閾値を満たすが第2の閾値を満たし得ない準トリガフレームであるのか、または第1の閾値と第2の閾値との両方を満たすトリガフレームであるのかをそれぞれ示す。方法は、バッファの出力インジケーションがバッファのデータフレームのすべてが雑音フレームであることを示すとき、雑音低減フィルタを適応させるためにバッファ内のオーディオデータフレームのうちの少なくとも1つを使用するステップをさらに含む。方法は、バッファの出力インジケーションがバッファのデータフレームが少なくとも1つの準トリガフレームを含むが、トリガフレームを含まないことを示すとき、雑音低減フィルタを使用するバッファ内の複数のオーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すかどうかを判定するために訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してフィルタリングされたデータフレームを処理するステップとをさらに含む。方法は、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すとき、自動化されたアシスタントの機能のうちの1つまたは複数をアクティブ化するステップをさらに含む。
【０１０５】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【０１０６】
一部の実装において、方法は、バッファの出力インジケーションがバッファのデータフレームが少なくとも1つのトリガフレームを含むことを示すとき、オーディオデータフレームが呼び出しフレーズの存在を示すかどうかを判定するために訓練された音響モデルまたはさらなる訓練された音響モデルを使用してバッファ内の複数のオーディオデータフレームを処理するステップと、オーディオデータフレームが呼び出しフレーズの存在を示すとき、自動化されたアシスタントの機能のうちの1つまたは複数をアクティブ化するステップとをさらに含む。
【０１０７】
一部の実装において、雑音低減フィルタを使用するバッファ内の複数のオーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップは、バッファからオーディオデータフレームのすべてを取り出すことと、オーディオデータフレームのすべての処理に基づいてフィルタリングされたデータフレームを生成することとを含む。それらの実装の一部において、オーディオデータフレームが呼び出しフレーズの存在を示すかどうかを判定するために訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してバッファ内の複数のオーディオデータフレームを処理するステップは、バッファからオーディオデータフレームのすべてを取り出すことと、オーディオデータフレームが呼び出しフレーズの存在を示すかどうかを判定するために訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してオーディオデータフレームのすべてを処理することとを含む。
【０１０８】
一部の実装においては、自動化されたアシスタントのための呼び出しフレーズを検出する方法が、クライアントデバイスの1つまたは複数のプロセッサによって実施され、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのグループを受信するステップと、1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用してグループのオーディオデータフレームの各々を処理するステップとを含む。方法は、対応する確率のうちの少なくとも1つが第1の閾値を満たすが、第2の閾値を満たし得ないことに応じて、雑音低減フィルタを使用するグループのオーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してフィルタリングされたデータフレームを処理することに基づいて、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すかどうかを判定するステップと、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すとの判定に応じて、自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとをさらに含む。
【０１０９】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【０１１０】
一部の実装において、方法は、雑音低減フィルタを使用してフィルタリングされたデータフレームを生成する前に、オーディオデータフレームのグループに先立ったオーディオデータフレームの先行するグループの少なくとも1つのオーディオデータフレームに基づいて雑音低減フィルタを適応させるステップをさらに含む。それらの実装の一部において、方法は、1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する先行する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して先行するグループのオーディオデータフレームの各々を処理するステップをさらに含む。それらの実装の一部のバージョンにおいて、オーディオデータフレームの先行するグループの少なくとも1つのオーディオデータフレームに基づいて雑音低減フィルタを適応させるステップは、対応する先行する確率のいずれも第1の閾値または第2の閾値を満たさないと判定することに応じる。
【０１１１】
一部の実装において、方法は、雑音低減フィルタを使用してフィルタリングされたデータフレームを生成する前に、オーディオデータフレームのグループに先立った先行するオーディオデータフレームに基づいて雑音低減フィルタを適応させるステップをさらに含む。それらの実装の一部において、先行するオーディオデータフレームに基づいて雑音低減フィルタを適応させるステップは、1つまたは複数の呼び出し音素の存在の1つまたは複数の先行する確率を示す先行する出力を生成するために訓練された機械学習モデルを使用して先行するオーディオデータフレームを処理することと、先行する確率のいずれも第1の閾値または第2の閾値を満たさないと判定することとに基づく。
【０１１２】
一部の実装において、アクティブ化される自動化されたアシスタントの少なくとも1つの機能は、ローカルまたはリモートのスピーチトゥテキスト処理、意味処理、および/または対話状態追跡を含む。
【０１１３】
一部の実装においては、自動化されたアシスタントに向けられた口で言われた発話内の特徴を検出する方法が、1つまたは複数のプロセッサによって実施され、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、1つまたは複数の対応する特徴の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用してストリームのオーディオデータフレームの各々を処理するステップと、ストリームのオーディオデータフレームを、オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップとを含む。出力インジケーションの各々は、オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、訓練された機械学習モデルを使用するオーディオデータフレームのうちのそれぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく。方法は、第1の場合に、第1の場合のバッファ内の出力インジケーションが、第1の場合のバッファ内のオーディオデータフレームがすべて1つまたは複数の対応する特徴のいずれも含み得ないことを示すと判定するステップをさらに含む。方法は、第1の場合の判定に応じて、雑音低減フィルタを適応させるために第1の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つを使用するステップをさらに含む。方法は、第1の場合の後の第2の場合に、第2の場合のバッファ内の出力インジケーションが、第2の場合のバッファ内のオーディオデータフレームのうちの少なくとも1つが1つまたは複数の対応する特徴のうちの少なくとも1つを潜在的に含むことを示すと判定するステップをさらに含む。方法は、第2の場合の判定に応じて、少なくとも部分的に第1の場合の判定に応じて適応された雑音低減フィルタを使用する第2の場合のバッファ内の複数のオーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してフィルタリングされたデータフレームを処理することに基づいて、フィルタリングされたデータフレームが特徴の存在を示すかどうかを判定するステップと、フィルタリングされたデータフレームが特徴の存在を示すとの判定に応じて自動化されたアシスタントによって実行される処理を適応させるステップとをさらに含む。
【０１１４】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【０１１５】
一部の実装において、特徴は、プロファイルに関連して記憶された音声特性を含む。それらの実装の一部において、自動化されたアシスタントによって実行される処理を適応させるステップは、自動化されたアシスタントによってレンダリングされるべき内容をプロファイルに基づいて生成することを含み、内容は、フィルタリングされたデータフレームが特徴の存在を示すことおよび特徴がプロファイルに関連して記憶されることに応じてプロファイルに基づいて生成される。
【０１１６】
一部の実装において、自動化されたアシスタントによって実行される処理を適応させるステップは、追加的にまたは代替的に、自動化されたアシスタントの少なくとも1つの非アクティブな機能がアクティブ化されるようにすることを含む。1つの非アクティブな機能は、たとえば、自然言語処理または対話状態追跡であり得る。
【０１１７】
一部の実装においては、自動化されたアシスタントに向けられた口で言われた発話内に存在する少なくとも1つの特徴を検出する方法が、提供され、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのグループを受信するステップと、少なくとも1つの特徴の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用してグループのオーディオデータフレームの各々を処理するステップとを含む。方法は、対応する確率のうちの少なくとも1つが第1の閾値を満たすが、第2の閾値を満たし得ないことに応じて、雑音低減フィルタを使用するグループのオーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してフィルタリングされたデータフレームを処理することに基づいて、フィルタリングされたデータフレームが少なくとも1つの特徴の存在を示すかどうかを判定するステップとをさらに含む。方法は、フィルタリングされたデータフレームが少なくとも1つの特徴の存在を示すとの判定に応じて、自動化されたアシスタントによって実行される処理を適応させるステップをさらに含む。
【０１１８】
一部の実装においては、自動化されたアシスタントのための呼び出しフレーズを検出する方法が、クライアントデバイスの1つまたは複数のプロセッサによって実施され、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用してストリームのオーディオデータフレームの各々を処理するステップと、第1の場合に、オーディオデータフレームのうちの所与のオーディオデータフレームに関して生成されたそれぞれの出力が所与のオーディオデータフレームが1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップと、第1の場合の判定に応じて、雑音低減フィルタを適応させるために所与のオーディオデータフレームを使用するステップと、第1の場合の後の第2の場合に、所与のオーディオデータフレームの後に受け取られたオーディオデータフレームのうちの1つまたは複数のうちの少なくとも1つが1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むと判定するステップと、第2の場合の判定に応じて、少なくとも部分的に第1の場合の判定に応じて適応された雑音低減フィルタを使用するオーディオデータフレームのうちの1つまたは複数の処理に基づいてフィルタリングされたデータフレームを生成するステップと、訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用してフィルタリングされたデータフレームを処理することに基づいて、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すかどうかを判定するステップと、フィルタリングされたデータフレームが呼び出しフレーズの存在を示すとの判定に応じて、自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む。
【０１１９】
一部の実装においては、自動化されたアシスタントのための呼び出しフレーズを検出する方法が、クライアントデバイスの1つまたは複数のプロセッサによって実施され、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームの連続的なオーディオデータフレームの第1の組の各オーディオデータフレームに関して、オーディオデータフレームに基づいて対応する雑音低減フィルタを生成するステップと、対応する雑音低減フィルタを先入れ先出しバッファに記憶するステップとを含む。方法は、連続的なオーディオデータフレームの第1の組の直後に続くオーディオデータフレームのストリームの所与のオーディオデータフレームに関して、先入れ先出しバッファのヘッドにある対応する雑音低減フィルタを使用して所与のオーディオフレームを処理することに基づいてフィルタリングされたデータフレームを生成するステップと、訓練された機械学習モデルを使用してフィルタリングされたデータフレームを処理することに基づいて、フィルタリングされたデータフレームが呼び出しフレーズの1つまたは複数の音素の存在を示すかどうかを判定するステップとをさらに含む。方法は、フィルタリングされたデータフレームが呼び出しフレーズの音素のうちの1つまたは複数の存在を示すかどうかに基づいて呼び出しフレーズがオーディオデータフレームのストリーム内に存在するかどうかを判定するステップをさらに含む。
【符号の説明】
【０１２０】
106  クライアントコンピューティングデバイス
110  1つまたは複数のローカルエリアおよび/または広域ネットワーク
1121〜N  オーディオデータフレーム
1131〜N  フィルタリングされたデータフレーム
1141〜N  ラベル
120  自動化されたアシスタントクライアント
122  ローカルエンジン
124  呼び出しエンジン
125  分類モジュール
126  コントローラモジュール
127  雑音低減(NR)適応モジュール
128  呼び出しフレーズモジュール
129  NRモジュール
130  クラウドに基づく自動化されたアシスタント構成要素
131  クラウドに基づくTTSモジュール
132  クラウドに基づくSTTモジュール
133  自然言語プロセッサ
134  対話状態トラッカ
135  対話マネージャ
140  自動化されたアシスタント
160A  訓練された音響モデル
160B  訓練された音響モデル
162  バッファ
164  NRフィルタ
200  方法
402  ユーザ
403  口で言われた発話
404  テレビ
405  背景雑音
406  クライアントデバイス
500  方法
610  コンピューティングデバイス
612  バスサブシステム
614  プロセッサ
616  ネットワークインターフェースサブシステム
620  ユーザインターフェース出力デバイス
622  ユーザインターフェース入力デバイス
624  ストレージサブシステム
625  メモリサブシステム
626  ファイルストレージサブシステム
630  主ランダムアクセスメモリ(RAM)
632  読み出し専用メモリ(ROM)
【図１】
2021507315.tif 000012
【図２Ａ】
2021507315.tif 000013
【図２Ｂ】
2021507315.tif 000014
【図３】
2021507315.tif 000015
【図４】
2021507315.tif 000016
【図５】
2021507315.tif 000017
【図６】
2021507315.tif 000018
【手続補正書】
【提出日】令和2年9月18日(2020.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実行され、
前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
前記ストリームの前記オーディオデータフレームを、前記オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップであって、前記出力インジケーションの各々が、前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、前記訓練された機械学習モデルを使用する前記オーディオデータフレームのうちの前記それぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく、ステップと、
第1の場合に、前記第1の場合の前記バッファ内の前記出力インジケーションが、前記第1の場合の前記バッファ内の前記オーディオデータフレームがすべて前記1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップと、
前記第1の場合の前記判定に応じて、
雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップと、
前記第1の場合の後の第2の場合に、前記第2の場合の前記バッファ内の前記出力インジケーションが、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示すと判定するステップと、
前記第2の場合の前記判定に応じて、
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとの判定に応じて、
前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む、
方法。
【請求項２】
前記自動化されたアシスタントの前記少なくとも1つの機能がアクティブ化されるようにするステップが、
前記ストリームのその後受け取られたオーディオデータフレームがさらなる処理のために1つまたは複数のリモートの自動化されたアシスタントサーバに送信されるようにするステップを含む、
請求項1に記載の方法。
【請求項３】
前記さらなる処理が、スピーチトゥテキスト変換、意味処理、および対話状態追跡のうちの1つまたは複数を含む、
請求項2に記載の方法。
【請求項４】
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの前記少なくとも1つを使用するステップが、
前記バッファから単一のデータフレームを取り出すステップと、
前記雑音低減フィルタを適応させるために前記単一のデータフレームを使用するステップとを含む、
請求項1に記載の方法。
【請求項５】
前記ストリームの前記オーディオデータフレームが、少なくとも、前記1つまたは複数のマイクロフォンのうちの第1のマイクロフォンに基づく第1のチャネルと、前記1つまたは複数のマイクロフォンのうちの第2のマイクロフォンに基づく第2のチャネルとを含む、
請求項1に記載の方法。
【請求項６】
前記それぞれの出力を生成するために前記訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップが、
前記訓練された機械学習モデルを使用して前記オーディオデータフレームの各々の前記第1のチャネルのみを処理するステップを含む、
請求項5に記載の方法。
【請求項７】
前記雑音低減フィルタが、マルチチャネル雑音低減フィルタであり、
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップが、
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップを含む、
請求項5に記載の方法。
【請求項８】
前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップが、
前記雑音低減フィルタを更新するために誤差を決定する際に前記第1のチャネルを信号源として使用し、前記第2のチャネルを雑音源として使用するステップを含む、
請求項7に記載の方法。
【請求項９】
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップが、
前記フィルタリングされたデータフレームを生成する際に複数の前記オーディオデータフレームの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップを含む、
請求項5に記載の方法。
【請求項１０】
前記第2の場合の前記バッファ内の前記出力インジケーションが、前記対応する出力が第1の閾値を満たすが、第2の閾値を満たし得ないことに基づいて、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示す、
請求項1に記載の方法。
【請求項１１】
自動化されたアシスタントに向けられた口で言われた発話内の特徴を検出する方法であって、前記方法が、1つまたは複数のプロセッサによって実行され、
クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
1つまたは複数の対応する特徴の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
前記ストリームの前記オーディオデータフレームを、前記オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップであって、前記出力インジケーションの各々が、前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、前記訓練された機械学習モデルを使用する前記オーディオデータフレームのうちの前記それぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく、ステップと、
第1の場合に、前記第1の場合の前記バッファ内の前記出力インジケーションが、前記第1の場合の前記バッファ内の前記オーディオデータフレームがすべて前記1つまたは複数の対応する特徴のいずれも含み得ないことを示すと判定するステップと、
前記第1の場合の前記判定に応じて、
雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップと、
前記第1の場合の後の第2の場合に、前記第2の場合の前記バッファ内の前記出力インジケーションが、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する特徴のうちの少なくとも1つを潜在的に含むことを示すと判定するステップと、
前記第2の場合の前記判定に応じて、
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記特徴の存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記特徴の存在を示すとの判定に応じて前記自動化されたアシスタントによって実行される処理を適応させるステップとを含む、
方法。
【請求項１２】
前記特徴が、プロファイルに関連して記憶された音声特性を含み、前記自動化されたアシスタントによって実行される処理を適応させるステップが、
前記自動化されたアシスタントによってレンダリングされるべき内容を前記プロファイルに基づいて生成するステップを含み、前記内容が、前記フィルタリングされたデータフレームが前記特徴の存在を示すことおよび前記特徴が前記プロファイルに関連して記憶されることに応じて前記プロファイルに基づいて生成される、
請求項11に記載の方法。
【請求項１３】
前記自動化されたアシスタントによって実行される処理を適応させるステップが、
前記自動化されたアシスタントの少なくとも1つの非アクティブな機能がアクティブ化されるようにするステップを含む、
請求項11に記載の方法。
【請求項１４】
前記1つの非アクティブな機能が、自然言語処理または対話状態追跡である、
請求項13に記載の方法。
【請求項１５】
自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実行され、
前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
第1の場合に、前記オーディオデータフレームのうちの所与のオーディオデータフレームに関して生成された前記それぞれの出力が前記所与のオーディオデータフレームが前記1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップと、
前記第1の場合の前記判定に応じて、
雑音低減フィルタを適応させるために前記所与のオーディオデータフレームを使用するステップと、
前記第1の場合の後の第2の場合に、前記所与のオーディオデータフレームの後に受け取られた前記オーディオデータフレームのうちの1つまたは複数のうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むと判定するステップと、
前記第2の場合の前記判定に応じて、
少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記オーディオデータフレームのうちの前記1つまたは複数の処理に基づいてフィルタリングされたデータフレームを生成するステップと、
前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するステップと、
前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとの判定応じて、
前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む、
方法。
【国際調査報告】
2021507315.tif 000019
2021507315.tif 000020
2021507315.tif 000021
2021507315.tif 000022
2021507315.tif 000023