JP6839333B2 - 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用 - Google Patents

呼び出しフレーズの検出における雑音低減技術の選択的適応および利用 Download PDF

Info

Publication number
JP6839333B2
JP6839333B2 JP2020540546A JP2020540546A JP6839333B2 JP 6839333 B2 JP6839333 B2 JP 6839333B2 JP 2020540546 A JP2020540546 A JP 2020540546A JP 2020540546 A JP2020540546 A JP 2020540546A JP 6839333 B2 JP6839333 B2 JP 6839333B2
Authority
JP
Japan
Prior art keywords
audio data
data frame
case
buffer
data frames
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020540546A
Other languages
English (en)
Other versions
JP2021507315A (ja
Inventor
クリストファー・ヒューズ
イテン・ファン
ツラジ・ザキザデー・シャベスタリー
テイラー・アップルバウム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2021507315A publication Critical patent/JP2021507315A/ja
Application granted granted Critical
Publication of JP6839333B2 publication Critical patent/JP6839333B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/20Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • G10L21/0232Processing in the frequency domain
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • G10L2021/02161Number of inputs available containing the signal or the noise to be suppressed
    • G10L2021/02165Two microphones, one receiving mainly the noise signal and the other one mainly the speech signal
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • G10L2021/02161Number of inputs available containing the signal or the noise to be suppressed
    • G10L2021/02166Microphone arrays; Beamforming
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/84Detection of presence or absence of voice signals for discriminating voice from noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Description

オーディオデータフレームのストリームの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)と表され、ここで、
Figure 0006839333
である。ANCは、Lタップの複素有限インパルス応答(FIR)フィルタ
Figure 0006839333
によって第2のマイクロフォン信号をフィルタリングし、式中、(・)Tは、ベクトルまたは行列の転置を表す。結果が、誤差信号を得るために第1のマイクロフォン信号から引かれる。
Figure 0006839333
式中、(・)Hは、ベクトルまたは行列のエルミート転置であり、
Figure 0006839333
は、現在のおよび最後のL-1フレームの第2のチャネルのSTFT係数の集合である。加重最小二乗コスト関数が、
Figure 0006839333
と表され、式中、0<λ≦1は、忘却因子である。コスト関数は、hH(jω, m)に関して式(3)を偏微分し、結果を0に設定することによって最小化される。
Figure 0006839333
式中、
Figure 0006839333
Figure 0006839333
であり、(・)*は、複素変数の共役である。h(jω, m)に関して式(4)を解くことは、RLSの解、
Figure 0006839333
をもたらす。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)

Claims (15)

  1. 自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実行され、
    前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
    1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
    前記ストリームの前記オーディオデータフレームを、前記オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップであって、前記出力インジケーションの各々が、前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、前記訓練された機械学習モデルを使用する前記オーディオデータフレームのうちの前記それぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく、ステップと、
    第1の場合に、前記第1の場合の前記バッファ内の前記出力インジケーションが、前記第1の場合の前記バッファ内の前記オーディオデータフレームがすべて前記1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップと、
    前記第1の場合の前記判定に応じて、
    雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップと、
    前記第1の場合の後の第2の場合に、前記第2の場合の前記バッファ内の前記出力インジケーションが、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示すと判定するステップと、
    前記第2の場合の前記判定に応じて、
    少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
    前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するステップと、
    前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとの判定に応じて、
    前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む、
    方法。
  2. 前記自動化されたアシスタントの前記少なくとも1つの機能がアクティブ化されるようにするステップが、
    前記ストリームのその後受け取られたオーディオデータフレームがさらなる処理のために1つまたは複数のリモートの自動化されたアシスタントサーバに送信されるようにするステップを含む、
    請求項1に記載の方法。
  3. 前記さらなる処理が、スピーチトゥテキスト変換、意味処理、および対話状態追跡のうちの1つまたは複数を含む、
    請求項2に記載の方法。
  4. 前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの前記少なくとも1つを使用するステップが、
    前記バッファから単一のデータフレームを取り出すステップと、
    前記雑音低減フィルタを適応させるために前記単一のデータフレームを使用するステップとを含む、
    請求項1に記載の方法。
  5. 前記ストリームの前記オーディオデータフレームが、少なくとも、前記1つまたは複数のマイクロフォンのうちの第1のマイクロフォンに基づく第1のチャネルと、前記1つまたは複数のマイクロフォンのうちの第2のマイクロフォンに基づく第2のチャネルとを含む、
    請求項1に記載の方法。
  6. 前記それぞれの出力を生成するために前記訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップが、
    前記訓練された機械学習モデルを使用して前記オーディオデータフレームの各々の前記第1のチャネルのみを処理するステップを含む、
    請求項5に記載の方法。
  7. 前記雑音低減フィルタが、マルチチャネル雑音低減フィルタであり、
    前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップが、
    前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップを含む、
    請求項5に記載の方法。
  8. 前記雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップが、
    前記雑音低減フィルタを更新するために誤差を決定する際に前記第1のチャネルを信号源として使用し、前記第2のチャネルを雑音源として使用するステップを含む、
    請求項7に記載の方法。
  9. 少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップが、
    前記フィルタリングされたデータフレームを生成する際に複数の前記オーディオデータフレームの前記第1のチャネルと前記第2のチャネルとの両方を使用するステップを含む、
    請求項5に記載の方法。
  10. 前記第2の場合の前記バッファ内の前記出力インジケーションが、前記対応する出力が第1の閾値を満たすが、第2の閾値を満たし得ないことに基づいて、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むことを示す、
    請求項1に記載の方法。
  11. 自動化されたアシスタントに向けられた口で言われた発話内の特徴を検出する方法であって、前記方法が、1つまたは複数のプロセッサによって実行され、
    クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
    1つまたは複数の対応する特徴の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
    前記ストリームの前記オーディオデータフレームを、前記オーディオデータフレームに関する出力インジケーションと一緒にバッファに記憶するステップであって、前記出力インジケーションの各々が、前記オーディオデータフレームのうちのそれぞれのオーディオデータフレームに関するものであり、前記訓練された機械学習モデルを使用する前記オーディオデータフレームのうちの前記それぞれのオーディオデータフレームの処理に基づいて生成された対応する出力に基づく、ステップと、
    第1の場合に、前記第1の場合の前記バッファ内の前記出力インジケーションが、前記第1の場合の前記バッファ内の前記オーディオデータフレームがすべて前記1つまたは複数の対応する特徴のいずれも含み得ないことを示すと判定するステップと、

    前記第1の場合の前記判定に応じて、
    雑音低減フィルタを適応させるために前記第1の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つを使用するステップと、
    前記第1の場合の後の第2の場合に、前記第2の場合の前記バッファ内の前記出力インジケーションが、前記第2の場合の前記バッファ内の前記オーディオデータフレームのうちの少なくとも1つが前記1つまたは複数の対応する特徴のうちの少なくとも1つを潜在的に含むことを示すと判定するステップと、
    前記第2の場合の前記判定に応じて、
    少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記第2の場合の前記バッファ内の複数の前記オーディオデータフレームの処理に基づいてフィルタリングされたデータフレームを生成するステップと、
    前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記特徴の存在を示すかどうかを判定するステップと、
    前記フィルタリングされたデータフレームが前記特徴の存在を示すとの判定に応じて前記自動化されたアシスタントによって実行される処理を適応させるステップとを含む、
    方法。
  12. 前記特徴が、プロファイルに関連して記憶された音声特性を含み、前記自動化されたアシスタントによって実行される処理を適応させるステップが、
    前記自動化されたアシスタントによってレンダリングされるべき内容を前記プロファイルに基づいて生成するステップを含み、前記内容が、前記フィルタリングされたデータフレームが前記特徴の存在を示すことおよび前記特徴が前記プロファイルに関連して記憶されることに応じて前記プロファイルに基づいて生成される、
    請求項11に記載の方法。
  13. 前記自動化されたアシスタントによって実行される処理を適応させるステップが、
    前記自動化されたアシスタントの少なくとも1つの非アクティブな機能がアクティブ化されるようにするステップを含む、
    請求項11に記載の方法。
  14. 前記1つの非アクティブな機能が、自然言語処理または対話状態追跡である、
    請求項13に記載の方法。
  15. 自動化されたアシスタントのための呼び出しフレーズを検出する方法であって、前記方法が、クライアントデバイスの1つまたは複数のプロセッサによって実行され、
    前記クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、
    1つまたは複数の対応する呼び出し音素の存在の1つまたは複数の対応する確率を示すそれぞれの出力を生成するために訓練された機械学習モデルを使用して前記ストリームの前記オーディオデータフレームの各々を処理するステップと、
    第1の場合に、前記オーディオデータフレームのうちの所与のオーディオデータフレームに関して生成された前記それぞれの出力が前記所与のオーディオデータフレームが前記1つまたは複数の対応する呼び出し音素のいずれも含み得ないことを示すと判定するステップと、
    前記第1の場合の前記判定に応じて、
    雑音低減フィルタを適応させるために前記所与のオーディオデータフレームを使用するステップと、
    前記第1の場合の後の第2の場合に、前記所与のオーディオデータフレームの後に受け取られた前記オーディオデータフレームのうちの1つまたは複数のうちの少なくとも1つが前記1つまたは複数の対応する呼び出し音素のうちの少なくとも1つを潜在的に含むと判定するステップと、
    前記第2の場合の前記判定に応じて、
    少なくとも部分的に前記第1の場合の前記判定に応じて適応された前記雑音低減フィルタを使用する前記オーディオデータフレームのうちの前記1つまたは複数の処理に基づいてフィルタリングされたデータフレームを生成するステップと、
    前記訓練された機械学習モデルまたはさらなる訓練された機械学習モデルを使用して前記フィルタリングされたデータフレームを処理することに基づいて、前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すかどうかを判定するステップと、
    前記フィルタリングされたデータフレームが前記呼び出しフレーズの存在を示すとの判定応じて、
    前記自動化されたアシスタントの少なくとも1つの機能がアクティブ化されるようにするステップとを含む、
    方法。
JP2020540546A 2018-01-23 2019-01-14 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用 Active JP6839333B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862620885P 2018-01-23 2018-01-23
US62/620,885 2018-01-23
PCT/US2019/013479 WO2019147427A1 (en) 2018-01-23 2019-01-14 Selective adaptation and utilization of noise reduction technique in invocation phrase detection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021019793A Division JP7196214B2 (ja) 2018-01-23 2021-02-10 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用

Publications (2)

Publication Number Publication Date
JP2021507315A JP2021507315A (ja) 2021-02-22
JP6839333B2 true JP6839333B2 (ja) 2021-03-03

Family

ID=65444326

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020540546A Active JP6839333B2 (ja) 2018-01-23 2019-01-14 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用
JP2021019793A Active JP7196214B2 (ja) 2018-01-23 2021-02-10 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021019793A Active JP7196214B2 (ja) 2018-01-23 2021-02-10 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用

Country Status (6)

Country Link
US (2) US10706842B2 (ja)
EP (2) EP3680895B1 (ja)
JP (2) JP6839333B2 (ja)
KR (2) KR102609430B1 (ja)
CN (1) CN111742362B (ja)
WO (1) WO2019147427A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4273696A3 (en) * 2017-10-03 2024-01-03 Google LLC Multiple digital assistant coordination in vehicular environments
CN112037773B (zh) * 2020-11-05 2021-01-29 北京淇瑀信息科技有限公司 一种n最优口语语义识别方法、装置及电子设备
CN112331186B (zh) * 2020-11-19 2022-03-25 思必驰科技股份有限公司 语音唤醒方法及装置
WO2022211504A1 (en) * 2021-03-31 2022-10-06 Samsung Electronics Co., Ltd. Method and electronic device for suppressing noise portion from media event
US11798533B2 (en) * 2021-04-02 2023-10-24 Google Llc Context aware beamforming of audio data
DE102021005206B3 (de) * 2021-10-19 2022-11-03 Mercedes-Benz Group AG Verfahren und Vorrichtung zur Bestimmung eines mehrteiligen Schlüsselwortes

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633846B1 (en) * 1999-11-12 2003-10-14 Phoenix Solutions, Inc. Distributed realtime speech recognition system
US7606714B2 (en) * 2003-02-11 2009-10-20 Microsoft Corporation Natural language classification within an automated response system
US7464029B2 (en) * 2005-07-22 2008-12-09 Qualcomm Incorporated Robust separation of speech signals in a noisy environment
US8175291B2 (en) * 2007-12-19 2012-05-08 Qualcomm Incorporated Systems, methods, and apparatus for multi-microphone based speech enhancement
US8995625B2 (en) * 2009-09-30 2015-03-31 T-Mobile Usa, Inc. Unified interface and routing module for handling audio input
US9053697B2 (en) * 2010-06-01 2015-06-09 Qualcomm Incorporated Systems, methods, devices, apparatus, and computer program products for audio equalization
US8234111B2 (en) * 2010-06-14 2012-07-31 Google Inc. Speech and noise models for speech recognition
EP2643981B1 (en) * 2010-11-24 2014-09-17 Koninklijke Philips N.V. A device comprising a plurality of audio sensors and a method of operating the same
US20140278389A1 (en) * 2013-03-12 2014-09-18 Motorola Mobility Llc Method and Apparatus for Adjusting Trigger Parameters for Voice Recognition Processing Based on Noise Characteristics
US10229697B2 (en) 2013-03-12 2019-03-12 Google Technology Holdings LLC Apparatus and method for beamforming to obtain voice and noise signals
US9552825B2 (en) 2013-04-17 2017-01-24 Honeywell International Inc. Noise cancellation for voice activation
US9697831B2 (en) * 2013-06-26 2017-07-04 Cirrus Logic, Inc. Speech recognition
US9418651B2 (en) * 2013-07-31 2016-08-16 Google Technology Holdings LLC Method and apparatus for mitigating false accepts of trigger phrases
US9548047B2 (en) * 2013-07-31 2017-01-17 Google Technology Holdings LLC Method and apparatus for evaluating trigger phrase enrollment
US9286897B2 (en) * 2013-09-27 2016-03-15 Amazon Technologies, Inc. Speech recognizer with multi-directional decoding
US9936916B2 (en) * 2013-10-09 2018-04-10 Nedim T. SAHIN Systems, environment and methods for identification and analysis of recurring transitory physiological states and events using a portable data collection device
US10405786B2 (en) * 2013-10-09 2019-09-10 Nedim T. SAHIN Systems, environment and methods for evaluation and management of autism spectrum disorder using a wearable data collection device
GB2524222B (en) * 2013-12-18 2018-07-18 Cirrus Logic Int Semiconductor Ltd Activating speech processing
GB2523984B (en) * 2013-12-18 2017-07-26 Cirrus Logic Int Semiconductor Ltd Processing received speech data
EP3120256B1 (en) * 2014-03-17 2020-02-12 Core Sports Technology Group Method and system for delivering biomechanical feedback to human and object motion
US20160012827A1 (en) * 2014-07-10 2016-01-14 Cambridge Silicon Radio Limited Smart speakerphone
US9830925B2 (en) * 2014-10-22 2017-11-28 GM Global Technology Operations LLC Selective noise suppression during automatic speech recognition
JP6754184B2 (ja) * 2014-12-26 2020-09-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 音声認識装置及び音声認識方法
KR102476600B1 (ko) * 2015-10-21 2022-12-12 삼성전자주식회사 전자 장치, 그의 음성 인식 방법 및 비일시적 컴퓨터 판독가능 기록매체
KR102151682B1 (ko) * 2016-03-23 2020-09-04 구글 엘엘씨 다중채널 음성 인식을 위한 적응성 오디오 강화
CN114357128A (zh) * 2016-04-18 2022-04-15 谷歌有限责任公司 适当的代理的自动化助理调用

Also Published As

Publication number Publication date
CN111742362A (zh) 2020-10-02
CN111742362B (zh) 2024-04-09
JP2021507315A (ja) 2021-02-22
JP7196214B2 (ja) 2022-12-26
KR102609430B1 (ko) 2023-12-04
US11417324B2 (en) 2022-08-16
US20220392441A1 (en) 2022-12-08
US10706842B2 (en) 2020-07-07
EP3555881A1 (en) 2019-10-23
KR20200142122A (ko) 2020-12-21
US20200294496A1 (en) 2020-09-17
JP2021089438A (ja) 2021-06-10
KR20200103846A (ko) 2020-09-02
EP3680895B1 (en) 2021-08-11
WO2019147427A1 (en) 2019-08-01
US20200066263A1 (en) 2020-02-27
KR102193629B1 (ko) 2020-12-21
EP3555881B1 (en) 2020-04-22
EP3680895A1 (en) 2020-07-15

Similar Documents

Publication Publication Date Title
JP6839333B2 (ja) 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用
KR102492783B1 (ko) 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리
EP3895161B1 (en) Utilizing pre-event and post-event input streams to engage an automated assistant
US11217254B2 (en) Targeted voice separation by speaker conditioned on spectrogram masking
EP3857544B1 (en) Speaker awareness using speaker dependent speech model(s)
US11984117B2 (en) Selective adaptation and utilization of noise reduction technique in invocation phrase detection
US11756533B2 (en) Hot-word free pre-emption of automated assistant response presentation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200918

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200918

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200918

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210212

R150 Certificate of patent or registration of utility model

Ref document number: 6839333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250