JP2023530048A - ホットワード/キーワード検出のためのユーザ仲介 - Google Patents

ホットワード/キーワード検出のためのユーザ仲介 Download PDF

Info

Publication number
JP2023530048A
JP2023530048A JP2022564432A JP2022564432A JP2023530048A JP 2023530048 A JP2023530048 A JP 2023530048A JP 2022564432 A JP2022564432 A JP 2022564432A JP 2022564432 A JP2022564432 A JP 2022564432A JP 2023530048 A JP2023530048 A JP 2023530048A
Authority
JP
Japan
Prior art keywords
threshold
user
audio data
block
predicted output
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.)
Pending
Application number
JP2022564432A
Other languages
English (en)
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 JP2023530048A publication Critical patent/JP2023530048A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/065Adaptation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Computation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

自動化されたアシスタントの機能が開始されるかどうかを判定する際に利用される機械学習モデルおよび閾値の性能を向上させるための技法が、本明細書において説明される。方法は、クライアントの1つまたは複数のマイクロフォンを介して、ユーザの話された発話をキャプチャするオーディオデータを受け取るステップと、1つまたは複数のホットワードがオーディオデータに存在する確率を示す予測された出力を生成するために、機械学習モデルを使用してオーディオデータを処理するステップと、1つまたは複数のホットワードがオーディオデータに存在することを一次閾値よりも示さない二次閾値を予測された出力が満たすと判定するステップと、予測された出力が二次閾値を満たすとの判定に応答して、話された発話がホットワードを含むかどうかを示すようにユーザにプロンプトで求めるステップと、ユーザから、プロンプトで求めることへの応答を受け取るステップと、応答に基づいて一次閾値を調整するステップとを含む。

Description

人は、本明細書において「自動化されたアシスタント」と呼ばれるインタラクティブなソフトウェアアプリケーション(「デジタルエージェント」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」などとも呼ばれる)を用いて人とコンピュータとの対話に従事し得る。たとえば、人(自動化されたアシスタントとインタラクションするときは「ユーザ」と呼ばれる場合がある)は、場合によってはテキストに変換され、それから処理される可能性がある話された自然言語入力(つまり、発話)を使用して、テキストの(たとえば、タイピングされた)自然言語入力を与えることによって、ならびに/またはタッチおよび/もしくは発話を含まない体の動き(utterance free physical movement)(たとえば、手のジェスチャ、視線、顔の動きなど)によって自動化されたアシスタントにコマンドおよび/または要求を与える場合がある。自動化されたアシスタントは、応答ユーザインターフェース出力(たとえば、可聴および/もしくは視覚的ユーザインターフェース出力)を与えること、1つもしくは複数のスマートデバイスを制御すること、ならびに/または自動化されたアシスタントを実装するデバイスの1つもしくは複数の機能を制御すること(たとえば、デバイスのその他のアプリケーションを制御すること)によって要求に応答する。
上述のように、多くの自動化されたアシスタントは、話された発話によってインタラクションされるように構成される。ユーザのプライバシーを保護するためおよび/またはリソースを節約するために、自動化されたアシスタントは、自動化されたアシスタントを(少なくとも部分的に)実装するクライアントデバイスのマイクロフォンによって検出されたオーディオデータに存在するすべての話された発話に基づいて1つまたは複数の自動化されたアシスタントの機能を実行することを控える。むしろ、話された発話に基づく特定の処理は、特定の条件が存在するとの判定に応じてのみ行われる。
たとえば、自動化されたアシスタントを含むおよび/または自動化されたアシスタントとインターフェースをとる多くのクライアントデバイスは、ホットワード検出モデルを含む。そのようなクライアントデバイスのマイクロフォンが非アクティブ化されないとき、クライアントデバイスは、ホットワード検出モデルを使用して、マイクロフォンによって検出されたオーディオデータを継続的に処理して、「ヘイ、アシスタント」、「OK、アシスタント」、および/または「アシスタント」などの1つまたは複数のホットワード(複数単語のフレーズを含む)が存在するかどうかを示す予測された出力を生成することができる。予測された出力がホットワードが存在することを示すとき、閾値の量の時間内に後に続く(および任意で音声活動(voice activity)を含むと判定される)すべてのオーディオデータは、音声認識構成要素、音声活動検出構成要素などの1つまたは複数のオンデバイスのおよび/またはリモートの自動化されたアシスタント構成要素によって処理され得る。さらに、(音声認識構成要素からの)認識されたテキストが、自然言語理解エンジンを使用して処理されることが可能であり、および/またはアクションが、自然言語理解エンジンの出力に基づいて実行されることが可能である。アクションは、たとえば、応答の生成および提供、ならびに/または1つもしくは複数のアプリケーションおよび/もしくはスマートデバイスの制御を含み得る。しかし、予測された出力がホットワードが存在しないことを示すとき、対応するオーディオデータは、いかなるさらなる処理もされずに破棄され、それによって、リソースを節約し、ユーザのプライバシーを保護する。
一部の自動化されたアシスタントは、追加的または代替的に、有効にされ得る会話継続モード(continued conversation mode)を実装する。有効にされるとき、会話継続モードは、自動化されたアシスタントに向けられた前の話された発話の閾値の量の時間以内および/または自動化されたアシスタントが前の話された発話に基づいてアクションを実行した後の閾値の量の時間以内にクライアントデバイスのマイクロフォンによって検出されるすべての話された入力を処理し得る。たとえば、ユーザは、最初に(たとえば、ホットワード、ハードウェアまたはソフトウェアのボタンなどによって)自動化されたアシスタントを呼び出し、「リビングルームの照明をつけて」という最初の発話を与え、その後すぐに、「キッチンの照明をつけて」という後続の発話を与えることができる。後続の発話は、会話継続モードが有効にされるとき、ユーザが再度アシスタントを呼び出すことを必要とせずに、自動化されたアシスタントによって従われる。
会話継続モードは、自動化されたアシスタントによる処理のために意図されたユーザの後続の発話と、そのように意図されていない発話(たとえば、代わりに別の人間に向けられた発話)とを聞き分けることができる。そのようにする際、後続の発話をキャプチャするオーディオデータは、任意で、後続の発話からの認識されたテキストおよび/またはその表現(たとえば、認識されたテキストに基づいて生成された自然言語理解データ)と一緒に、機械学習モデルを使用して処理され得る。予測された出力が、処理に基づいて生成され、後続の発話が自動化されたアシスタントを対象としているかどうかを示す。予測された出力が後続の発話が自動化されたアシスタントを対象としていることを示すときにのみ、さらなる自動化されたアシスタントの機能が作動される。そうでない場合、さらなる自動化されたアシスタントの機能は、作動されず、後続の発話に対応するデータは、破棄される。さらなる機能は、たとえば、後続の発話が自動化されたアシスタントを対象としていることをさらに検証すること、および/または後続の発話に基づいてアクションを実行することを含み得る。
その予測された出力が自動化されたアシスタントの機能が作動されるかどうかを命令する上述のおよび/またはその他の機械学習モデル(たとえば、下で説明される追加の機械学習モデル)は、多くの状況において良好に動作する。しかし、依然として、機械学習モデルに基づく偽陰性(false negative)判定および偽陽性(false positive)判定が発生する。
偽陰性によれば、予測された出力は、予測された出力を生成するために処理されたオーディオデータ(および/またはその他のデータ)が自動化されたアシスタントの機能を作動させるのに適切であるにもかかわらず、自動化されたアシスタントの機能が作動されないように命令する。たとえば、ホットワード検出モデルを使用して生成された予測された出力が確率であり、自動化されたアシスタントの機能が作動される前に確率が0.85を超えなければならないと仮定する。話された発話がホットワードを確かに含むが、オーディオデータを処理することに基づいて生成された予測された出力が0.82に過ぎない場合、機能は作動されず、これは偽陰性と考えられる。偽陰性の発生は、人/自動化されたアシスタントのインタラクションを引き延ばし、自動化されたアシスタントの機能を作動させるように最初に意図された発話を繰り返すこと(および/またはその他のアクションを実行すること)を人に強制し得る。
偽陽性によれば、予測された出力は、予測された出力を生成するために処理されたオーディオデータ(および/またはその他のセンサデータ)が自動化されたアシスタントの機能を作動させるのに不適切であるにもかかわらず、自動化されたアシスタントの機能が作動されるように命令する。たとえば、ホットワード検出モデルを使用して生成された予測された出力が確率であり、自動化されたアシスタントの機能が作動される前に確率が0.85を超えなければならないと仮定する。話された発話がホットワードを含まないが、オーディオデータを処理することに基づいて生成された予測された出力が0.86である場合、機能は作動され、これは偽陽性と考えられる。プライバシーに関する懸念に加えて、偽陽性の発生は、機能を不必要に作動させることによってネットワークおよび/または計算リソースを浪費し得る。
本明細書において開示される一部の実装は、自動化されたアシスタントの機能が開始されるかどうかを判定する際に利用される閾値の自動調整を通じて、機械学習モデルの性能を向上させることを対象とする。本明細書においてより詳細に説明されるように、そのような機械学習モデルは、たとえば、ホットワード検出モデルおよび/またはその他の機械学習モデルを含み得る。様々な実装は、クライアントデバイスにおいて、クライアントデバイスのローカルに記憶された機械学習モデルを使用してオーディオデータおよび/またはその他のセンサデータを処理することに基づいて、予測された出力を生成する。それらの実装は、さらに、予測された出力に基づいて、1つまたは複数の自動化されたアシスタントの機能を開始すべきかどうかに関する判断を行う。たとえば、判断は、予測された出力が閾値を満たすかどうかに基づき得る。さらに、それらの実装は、クライアントデバイスのローカルにおいて、さらなるユーザインターフェース入力および/またはその他のデータを分析することに基づいて、予測された出力に基づいて行われた判断が正しかったかどうかを判定する。判断が誤っていた(たとえば、判断が偽陰性または偽陽性であった)と判定されると、それらの実装は自動的に閾値を調整する。
一部の実装において、自動調整される閾値は、存続して、1つまたは複数の自動化されたアシスタントの機能を開始するかどうかについての1つまたは複数のその後の判断のために使用されてよい。たとえば、自動調整される閾値は、自動調整された閾値を(たとえば、偽陰性または偽陽性に応じて)本明細書に記載の方法の1つまたは複数に従ってさらに調整するという判断がなされるまで、使用されてよい。一部の実装において、自動調整される閾値は、ユーザおよび/または環境条件に適応するように経時的に動的に調整されてよい(たとえば、雑音源または他の背景雑音の導入もしくは除去)。これは、予測された出力に基づく偽陰性および/または偽陽性の発生、ならびにそれに応じて結果として浪費される計算リソースを減らすことによって、性能を向上させることができる。
ある例において、夏季の扇風機などの雑音の多い家電機器をユーザが使用し始めると(たとえば、ユーザが雑音の多い家電機器を使用し始めた後で発生する1つまたは複数の偽陰性に応じて)、閾値は自動的に下げられてよい。閾値を自動的に調整するプロセスは、偽陽性および/または偽陰性に基づく繰り返される調整を通じて閾値が微調整されるような、反復的なプロセスであってよい。この例において、閾値は、ユーザが雑音の多い家電機器を使用し始めた後の複数の偽陰性に基づいて複数回自動的に下げられ、次いで、閾値が複数回下げられた後の偽陽性に基づいて自動的に上げられてよい。偽陽性および/または偽陰性に基づいてさらなる調整が判定されるまで、自動調整される閾値は存続してよい。ユーザが雑音の多い家電機器の使用を止めると(たとえば、夏の終わりに)、閾値は(たとえば、雑音の多い家電機器の使用をユーザが止めた後に発生する1つまたは複数の偽陽性に応じて)自動的に上げられてよい。
本明細書において説明される様々な実装は、「OKコンピュータ」、「ヘイコンピュータ」、および/または他の呼び出しホットワードなどの、アシスタント呼び出しホットワードを検出するように訓練されるホットワード検出モデルに関して説明される。それらの実装の一部では、対応するホットワードのいずれかが検出されると、ホットワードの後に続くあらゆる話された言葉を処理するための、発話認識が作動され得る。アシスタント呼び出しホットワードを検出するように訓練されるホットワード検出モデルのための閾値を調整することに加えて、またはその代わりに、一部の実装は、呼び出しホットワード以外のホットワードを検出するように訓練され、少なくとも選択的に作動される、ホットワード検出モデルのための閾値を調整することができる。それらの実装の一部において、そのようなモデルの対応するホットワードのいずれかが検出されると、対応するアクションが、任意でどのような発話認識を実行することもなく、実行され得る。一例として、ホットワードモデルは、「ストップ」および/または「停止」を検出するように訓練されることが可能であり、少なくとも何らかのオーディオがクライアントデバイスにおいてレンダリングされているとき、たとえばタイマーアラームがレンダリングされているとき、クライアントデバイスにおいて作動されることが可能である。「ストップ」および/または「停止」を検出したことに応じて、その何らかのオーディオのレンダリングを停止するという対応するアクションが実行され得る。
一部の実装において、判断が誤っていたと判定されると、予測された出力をグラウンドトゥルース出力(たとえば、閾値を満たすグラウンドトゥルース出力)と比較することに基づいて、勾配がクライアントデバイスにおいてローカルで生成される。一部の実装において、生成された勾配は、生成された勾配に基づいて機械学習モデルの1つまたは複数の重みを更新するためにクライアントデバイスの1つまたは複数のプロセッサによって使用される。たとえば、誤差逆伝播法および/またはその他の技術が、勾配に基づいて重みを更新するために使用され得る。これは、クライアントデバイスのローカルに記憶された機械学習モデルの性能を向上させることができ、機械学習モデルを使用して生成された予測された出力に基づく偽陰性および/または偽陽性の発生を軽減する。さらに、これは、話された発話をキャプチャするオーディオデータを処理する機械学習モデルの場合に、トーン、イントネーション、アクセント、および/またはその他のスピーチの特徴などのクライアントデバイスのユーザの属性に関してオンデバイスの機械学習モデルの性能の向上を可能にする。
一部の実装において、生成された勾配は、追加的または代替的に、クライアントデバイスによってネットワークを介してリモートシステムに送信される。それらの実装において、リモートシステムは、連合学習技術を使用して対応する大域的な機械学習モデルの大域的な重みを更新するために、生成された勾配および追加のクライアントデバイスからの追加の勾配を利用する。追加のクライアントデバイスからの追加の勾配は、対応する判断が誤っていたと判定することに基づいて対応する追加のクライアントデバイスのローカルで同様に生成され得る。様々な実装において、クライアントデバイスは、誤っていると判定された予測された出力を生成するために利用されたデータ(たとえば、オーディオデータおよび/またはその他のセンサデータ)のいずれも送信せず、予測された出力が誤っていたと判定するために利用されたデータ(たとえば、さらなるユーザインターフェース入力)のいずれも送信せずに、生成された勾配を送信する。リモートシステムは、そのようなデータのいかなる参照または使用もせずに、連合学習技術を使用して大域的なモデルを更新する際、生成された勾配を利用することができる。勾配のみの送信は、予測された出力を生成するためおよび予測された出力が誤っていたと判定するために使用されたより大きなデータサイズのデータの送信よりも少ないネットワークリソースを利用する。さらに、勾配の送信は、予測された出力を生成する際および予測された出力が誤っていたと判定する際に利用されたデータが勾配から導出され得ないので、個人データのプライバシーおよびセキュリティを守る。一部の実装において、1つまたは複数の差分プライバシー技術(たとえば、ガウス雑音の追加)が、そのようなデータが勾配から導出され得ないことをさらに保証するために利用され得る。
リモートシステムが音声認識モデルの大域的な重みを更新する実装において、リモートシステムは、その後、更新された大域的な重みをクライアントデバイスに提供して、クライアントデバイスにそれらのクライアントデバイスのオンデバイスの機械学習モデルの重みを更新された大域的な重みで置き換えさせることができる。一部の実装において、リモートシステムは、追加的または代替的に、更新された機械学習モデルをクライアントデバイスに提供して、クライアントデバイスにそれらのクライアントデバイスのオンデバイスの機械学習モデルを更新された大域的な機械学習モデルで置き換えさせることができる。したがって、オンデバイスの性能が、更新された大域的な重みまたは更新された大域的な機械学習モデルの利用によって高められる。
現在休止中の自動化されたアシスタントの機能を開始すべきかどうかに関する判断が誤っていると判定するために、様々な技術が利用され得る。一部の実装において、判断が誤っていると判定することは、判断を行うために利用されたセンサデータの後にクライアントデバイスにおいて受け取られるさらなるユーザインターフェース入力に基づき得る。たとえば、ユーザは、プロンプトに応じて、またはプロンプトで求められることなくのいずれかで、話された発話がホットワードを含んでいたかどうかを示してよい。他の実装では、判断が誤っていると判定することは、判定を行うために利用されたセンサデータの後にクライアントデバイスにおいて受け取られ、判断に(明示的にまたは暗黙的に)矛盾するさらなるユーザインターフェース入力に基づき得る。それらの実装において、判断が誤っていると判定することは、判断を行うために利用されたセンサデータの受信とさらなるユーザインターフェース入力の受け取りとの間の継続時間に基づき得る。たとえば、判断が誤っていたと判定する尤度(likelihood)は、継続時間が短くなるにつれて高くなることが可能であり、および/または判断が誤っていたと判定することは、継続時間が閾値未満であることを条件とすることが可能である。それらの実装において、判断が誤っていると判定することは、追加的または代替的に、さらなるユーザインターフェース入力と判断を行うために利用されたセンサデータとの間の類似性の決定された尺度に基づき得る(判断が誤っていたと判定する尤度は、類似性の尺度によって示される類似性が高くなるにつれて高まる)。たとえば、類似性の尺度は、さらなるユーザインターフェース入力および判定を行うために利用されたセンサデータの継続時間の比較に基づく継続時間の類似性に基づき得る。また、たとえば、さらなるユーザインターフェース入力が追加の話された発話であり、判定を行うために利用されたセンサデータが前の話された発話を含むとき、類似性の尺度は、話された発話および追加の話された発話の音声の特徴の比較に基づく音声の類似性および/または話された発話および追加の話された発話の認識されたテキストの比較に基づくテキストの類似性に基づき得る。
様々な実装において、1つまたは複数のプロセッサによって実施される方法は、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの話された発話をキャプチャするオーディオデータを受け取るステップと、1つまたは複数のホットワードがオーディオデータに存在する確率を示す予測された出力を生成するために、機械学習モデルを使用してオーディオデータを処理するステップと、1つまたは複数のホットワードがオーディオデータに存在することを一次閾値よりも示さない二次閾値を予測された出力が満たすと判定するステップと、予測された出力が二次閾値を満たすとの判定に応じて、話された発話がホットワードを含むかどうかを示すようにユーザにプロンプトで求めるステップと、ユーザからプロンプトで求めることに対する応答を受け取るステップと、応答に基づいて一次閾値を調整するステップとを含んでよい。
一部の実装において、自動化されたアシスタントの機能は、予測された出力が一次閾値を満たすことに応じて開始されてよい。一部の実装において、機械学習モデルはホットワード検出モデルであってよく、応答に基づいてホットワード検出モデルを訓練するために連合学習が使用されてよい。
一部の実装において、予測された出力は一次閾値を満たさず、応答は話された発話がホットワードを含むことを示し、応答に基づいて一次閾値を調整することは、一次閾値を下げることを含む。一部の実装において、予測された出力は一次閾値を満たし、応答は話された発話がホットワードを含まないことを示し、応答に基づいて一次閾値を調整することは、一次閾値を上げることを含む。
一部の実装において、プロンプトで求めることは、ユーザが前にプロンプトで求められた回数がレート限界を超えないと判定したことにさらに応答するものである。一部の実装において、プロンプトを示すことは、do not disturb状態が無効であると判定したことにさらに応じたものである。一部の実装において、プロンプトで求めることは、所定の期間ユーザがクライアントデバイスにアクセスしていないと判定したことにさらに応じたものである。
いくつかの追加的または代替的な実装において、コンピュータプログラム製品は、記憶されたプログラム命令がまとめて記憶されている1つまたは複数のコンピュータ可読記憶媒体を含んでよい。プログラム命令は、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの話された発話をキャプチャするオーディオデータを受け取り、1つまたは複数のホットワードがオーディオデータに存在する確率を示す予測された出力を生成するために、機械学習モデルを使用してオーディオデータを処理し、予測された出力が閾値を満たすと判定し、ユーザから、発話がホットワードを含まないという指示を受け取り、予測された出力が閾値を満たすと判定し、話された発話がホットワードを含まないことの指示を受け取ったことに応じて、閾値を調整するように実行可能であってよい。
一部の実装において、プログラム命令は、さらに、予測された出力が閾値を満たすとの判定に応じて、話された発話がホットワードを含まないという指示を受け取る前に、自動化されたアシスタントの機能を開始するように実行可能である。一部の実装において、機械学習モデルはホットワード検出モデルであり、プログラム命令は、さらに、話された発話がホットワードを含まないという指示に基づいて、ホットワード検出モデルを訓練するように実行可能である。
一部の実装において、閾値を調整することは閾値を上げることを含む。一部の実装において、プログラム命令は、さらに、話された発話がホットワードを含むかどうかを示すようにユーザにプロンプトで求めるように実行可能であり、話された発話がホットワードを含まないことの指示は、プロンプトで求めることに対する応答として受け取られる。
いくつかの追加的または代替的な実装において、システムは、プロセッサと、コンピュータ可読メモリと、1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されているプログラム命令とを含んでよい。プログラム命令は、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの第1の話された発話をキャプチャする第1のオーディオデータを受け取り、1つまたは複数のホットワードが第1のオーディオデータに存在する確率を示す第1の予測された出力を生成するために、機械学習モデルを使用して第1のオーディオデータを処理し、第1の予測された出力が閾値を満たさないと判定し、第1の予測された出力が閾値を満たさないとの判定に応じて、閾値に第1の調整を行い、第1の調整を行った後、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの第2の話された発話をキャプチャする第2のオーディオデータを受け取り、1つまたは複数のホットワードが第2のオーディオデータに存在する確率を示す第2の予測された出力を生成するために、機械学習モデルを使用して第2のオーディオデータを処理し、第1の調整に従って調整される閾値を第2の予測された出力が満たさないと判定し、第1の調整に従って調整される閾値を第2の予測された出力が満たさないとの判定に応じて、閾値に第2の調整を行うように実行可能であってよい。
一部の実装において、閾値に第1の調整を行うことは、閾値を下げることを含み、ユーザから、第1の話された発話がホットワードを含むという指示を受け取ることにさらに応じたものであり、閾値に第2の調整を行うことは、閾値を下げることをさらに含み、ユーザから、第2の話された発話がホットワードを含むという指示を受け取ったことにさらに応じたものである。
一部の実装において、プログラム命令は、さらに、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの第3の話された発話をキャプチャする第3のオーディオデータを受け取り、1つまたは複数のホットワードが第3のオーディオデータに存在する確率を示す第3の予測された出力を生成するために、機械学習モデルを使用して第3のオーディオデータを処理し、第1の調整および第2の調整に従って調整される閾値を第3の予測された出力が満たすと判定し、第1の調整および第2の調整に従って調整される閾値を第3の予測された出力が満たすとの判定に応じて、閾値に第3の調整を行うように実行可能である。
一部の実装において、閾値に第3の調整を行うことは、閾値を上げることを含み、ユーザから、第3の話された発話がホットワードを含まないという指示を受け取ったことにさらに応じたものである。
本明細書において説明された1つまたは複数の技術の利用によって、話された発話に対応するオーディオデータおよび/または発話を含まない体の動きに対応するセンサデータに基づく偽陰性および/または偽陽性の発生は、対応するクライアントデバイスのローカルで特定され、ラベル付けされ得る。さらに、閾値が、識別されラベル付けされた偽陰性および偽陽性を使用して調整され得る。加えて、勾配が任意で、対応するクライアントデバイスのローカルで、識別されラベル付けされた偽陽性および偽陰性を使用して生成され得る。勾配は、対応するローカルに記憶された機械学習モデルを更新するために対応するクライアントデバイスのローカルで利用されることが可能であり、および/または対応する大域的なモデルを更新するのに使用するためにリモートシステムに送信されることが可能である。これは、ローカルに記憶された機械学習モデルおよび/または(使用のために様々なクライアントデバイスに送信され得る)対応する大域的なモデルの性能の向上をもたらす。追加的または代替的に、対応するクライアントデバイスのローカルにおける偽陽性および/または偽陰性のラベル付けは、ユーザデータ(たとえば、話された発話など)が対応するクライアントデバイスから決して送信されなくてよいので、そのようなユーザデータのプライバシーを守ることができる。
上の説明は、本開示の一部の実装の概要として与えられている。それらの実装およびその他の実装のさらなる説明が、下により詳細に示される。
様々な実装は、本明細書に記載の方法のうちの1つまたは複数などの方法を実行するために1つまたは複数のプロセッサ(たとえば、中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、および/またはテンソル処理ユニット(TPU: tensor processing unit))によって実行可能な命令を記憶する非一時的コンピュータ可読ストレージ媒体を含み得る。その他の実装は、本明細書に記載の1つまたは複数の方法などの方法を実行するために記憶された命令を実行するように動作可能なプロセッサを含む自動化されたアシスタントのクライアントデバイス(たとえば、少なくとも、クラウドに基づく自動化されたアシスタント構成要素とインターフェースをとるための自動化されたアシスタントインターフェースを含むクライアントデバイス)を含み得る。さらにその他の実装は、本明細書に記載の方法のうちの1つまたは複数などの方法を実行するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のサーバのシステムを含み得る。
実装による本開示の態様を明示する例示的なプロセスフローを示す図である。 実装による本開示の態様を明示する例示的なプロセスフローを示す図である。 図1Aおよび図1Bの様々な構成要素を含み、本明細書において開示される実装が実装されてよい例示的な環境のブロック図である。 様々な実装による、閾値を調整し、偽陰性または偽陽性に基づいてクライアントデバイスのローカルで勾配を生成し、勾配をリモートサーバに送信し、および/またはオンデバイス発話認識モデルの重みを更新するために生成された勾配を利用する例示的な方法を示す流れ図である。 様々な実装による、閾値を調整し、偽陽性に基づいてクライアントデバイスでローカルで勾配を生成し、勾配をリモートサーバに送信し、および/またはオンデバイス発話認識モデルの重みを更新するために生成された勾配を利用する例示的な方法を示す流れ図である。 様々な実装による偽陰性に基づいて閾値を調整する例示的な方法を示す流れ図である。 コンピューティングデバイスの例示的なアーキテクチャを示す図である。
図1Aおよび図1Bは、本開示の様々な態様を明示する例示的なプロセスフローを示す。クライアントデバイス110が、図1Aに示され、クライアントデバイス110を表す図1Aの四角に包含される構成要素を含む。機械学習エンジン122Aは、クライアントデバイス110の1つもしくは複数のマイクロフォンによって検出された話された発話に対応するオーディオデータ101、ならびに/またはクライアントデバイス110の1つもしくは複数の非マイクロフォンセンサ構成要素によって検出された発話を含まない体の動き(たとえば、手のジェスチャおよび/または動き、体のジェスチャおよび/または体の動き、視線、顔の動き、口の動きなど)に対応するその他のセンサデータ102を受け取ることができる。1つまたは複数の非マイクロフォンセンサは、カメラまたはその他の視覚センサ、近接センサ、圧力センサ、加速度計、磁力計、および/またはその他のセンサを含み得る。機械学習エンジン122Aは、機械学習モデル152Aを使用して、オーディオデータ101および/またはその他のセンサデータ102を処理して、予測された出力103を生成する。本明細書において説明されるように、機械学習エンジン122Aは、ホットワード検出エンジン122Bまたは音声活動検出器(VAD)エンジン、エンドポイント(endpoint)検出器エンジン、および/もしくはその他のエンジンなどの代替的なエンジンであり得る。
一部の実装において、機械学習エンジン122Aが予測された出力103を生成するとき、予測された出力103は、クライアントデバイスのローカルのオンデバイスのストレージ111に、任意で、対応するオーディオデータ101および/またはその他のセンサデータ102と関連付けて記憶され得る。それらの実装のいくつかのバージョンにおいて、予測された出力は、本明細書において説明される1つまたは複数の条件が満たされるときなど、後で勾配106を生成する際に利用するために勾配エンジン126によって取り出され得る。オンデバイスのストレージ111は、たとえば、読み出し専用メモリ(ROM)および/またはランダムアクセスメモリ(RAM)を含み得る。その他の実施態様において、予測された出力103は、リアルタイムで勾配エンジン126に提供され得る。
クライアントデバイス110は、予測された出力103が閾値を満たすかどうかをブロック182において判定することに基づいて、アシスタント作動エンジン124を使用して、現在休止中の自動化されたアシスタントの機能(たとえば、図2の自動化されたアシスタント295)を開始すべきかどうか、現在休止中の自動化されたアシスタントの機能を開始することを控えるべきかどうか、および/または現在アクティブな自動化されたアシスタントの機能を停止すべきかどうかの判断を行うことができる。自動化されたアシスタントの機能は、認識されたテキストを生成するための音声認識、自然言語理解(NLU)出力を生成するためのNLU、認識されたテキストおよび/もしくはNLU出力に基づく応答の生成、リモートサーバへのオーディオデータの送信、ならびに/またはリモートサーバへの認識されたテキストの送信を含み得る。たとえば、予測された出力103が確率(たとえば、0.80または0.90)であり、ブロック182における閾値が閾値の確率(たとえば、0.85)であると仮定すると、ブロック182においてクライアントデバイス110が予測された出力103(たとえば、0.90)が閾値(たとえば、0.85)を満たすと判定する場合、アシスタント起動エンジン124が、現在休止中の自動化されたアシスタントの機能を開始することができる。
一部の実装においては、図1Bに示されるように、機械学習エンジン122Aは、ホットワード検出エンジン122Bであることが可能である。特に、オンデバイスの音声認識器142、オンデバイスのNLUエンジン144、および/またはオンデバイスの履行(fulfillment)エンジン146などの様々な自動化されたアシスタントの機能が、現在休止している(すなわち、破線によって示されるように)。さらに、ホットワード検出モデル152Bを使用して、オーディオデータ101に基づいて生成された予測された出力103がブロック182において閾値を満たし、音声活動検出器128がクライアントデバイス110に向けられたユーザのスピーチを検出すると仮定する。
これらの実装のいくつかのバージョンにおいて、アシスタント作動エンジン124は、オンデバイスの音声認識器142、オンデバイスのNLUエンジン144、および/またはオンデバイスの履行エンジン146を現在休止中の自動化されたアシスタントの機能として作動させる。たとえば、オンデバイスの音声認識器142は、オンデバイスの音声認識モデル142Aを使用して、ホットワード「OK、アシスタント」ならびにホットワード「OK、アシスタント」に続く追加のコマンドおよび/またはフレーズを含む話された発話に関してオーディオデータ101を処理して、認識されたテキスト143Aを生成することができ、オンデバイスのNLUエンジン144は、オンデバイスのNLUモデル144Aを使用して認識されたテキスト143Aを処理して、NLUデータ145Aを生成することができ、オンデバイスの履行エンジン146は、オンデバイスの履行モデル146Aを使用してNLUデータ145Aを処理して、履行データ147Aを生成することができ、クライアントデバイス110は、オーディオデータ101に応じる1つまたは複数のアクションの実行150に履行データ147Aを使用することができる。
それらの実装のその他のバージョンにおいて、アシスタント作動エンジン124は、「いいえ」、「停止」、「キャンセル」、ならびに/またはオンデバイスの音声認識器142およびオンデバイスのNLUエンジン144なしで処理され得るその他のコマンドなどの様々なコマンドを処理するために、オンデバイスの音声認識器142およびオンデバイスのNLUエンジン144を作動させずに、オンデバイスの履行エンジン146のみを作動させる。たとえば、オンデバイスの履行エンジン146は、オンデバイスの履行モデル146Aを使用してオーディオデータ101を処理して、履行データ147Aを生成し、クライアントデバイス110は、オーディオデータ101に応じる1つまたは複数のアクションの実行150に履行データ147Aを使用することができる。さらに、これらの実装のバージョンにおいて、アシスタント作動エンジン124は、最初にオンデバイスの音声認識器142のみを作動させて、オーディオデータ101がホットワード「OK、アシスタント」を含むと判定することによって、ブロック182において行われた判断が正しかった(たとえば、オーディオデータ101が本当にホットワード「OK、アシスタント」を含む)と確認するために、最初に、現在休止中の自動化された機能を作動させることができ、および/またはアシスタント作動エンジン124は、ブロック182において行われた判断が正しかった(たとえば、オーディオデータ101が本当にホットワード「OK、アシスタント」を含む)と確認するために、オーディオデータ101を1つもしくは複数のサーバ(たとえば、リモートサーバ160)に送信することができる。
図1Aに戻ると、ブロック182においてクライアントデバイス110が予測された出力103(たとえば、0.80)が閾値(たとえば、0.85)を満たすことができないと判定する場合、アシスタント作動エンジン124は、現在休止中の自動化されたアシスタントの機能を開始することを控え、および/またはすべての現在アクティブな自動化されたアシスタントの機能を停止することができる。さらに、ブロック182においてクライアントデバイス110が予測された出力103(たとえば、0.80)が閾値(たとえば、0.85)を満たすことができないと判定する場合、クライアントデバイス110は、ブロック184においてさらなるユーザインターフェース入力が受け取られるかどうかを判定することができる。たとえば、さらなるユーザインターフェース入力は、ホットワードを含む追加の話された発話、ホットワードの代わりとして働く追加の発話を含まない体の動き、明示的な自動化されたアシスタント呼び出しボタン(たとえば、ハードウェアボタンもしくはソフトウェアボタン)の作動、クライアントデバイス110のデバイスの感知された「握り込み」(たとえば、クライアントデバイス110を少なくとも閾値の量の力で握り込むことが自動化されたアシスタントを呼び出すとき)、および/またはその他の明示的な自動化されたアシスタントの呼び出しであり得る。クライアントデバイス110がブロック184において受け取られたさらなるユーザインターフェース入力がないと判定する場合、クライアントデバイス110は、訂正の特定を停止し、ブロック190において終了することができる。
しかし、ブロック184において受け取られるさらなるユーザインターフェース入力があるとクライアントデバイス110が判定する場合、システムは、ブロック184において受け取られるさらなるユーザインターフェース入力がブロック182において行われる判定と矛盾する訂正をブロック186において含む(たとえば、ユーザにより仲介または提供される訂正)かどうかを判定することができる。この訂正は、偽陰性(たとえば、図3から図5に関してより詳細に説明されるような)または偽陽性(たとえば、図3および図4に関してより詳細に説明されるような)のいずれかを特定することができる。クライアントデバイス110がブロック184において受け取られたさらなるユーザインターフェース入力が訂正を含まないとブロック186において判定する場合、クライアントデバイス110は、訂正の特定を停止し、ブロック190において終了することができる。しかし、クライアントデバイス110が、ブロック184において受け取られたさらなるユーザインターフェース入力が、ブロック182において行われた最初の判断と矛盾する訂正を含むとブロック186において判定する場合、クライアントデバイス110は、調整される閾値104およびグラウンドトゥルース出力105を決定することができる。
偽陰性の1つの非限定的な例として、機械学習エンジン122Aが予測された出力103として確率を生成するように訓練され、クライアントデバイス110が予測された出力103(たとえば、0.80)がブロック182の閾値(たとえば、0.85)を満たすことができないと誤って判定し、クライアントデバイス110が現在休止中の自動化されたアシスタントの機能を開始することを控えた、および/または現在アクティブな自動化されたアシスタントの機能を停止したと仮定する。さらに、クライアントデバイス110が、ブロック184において受け取られたさらなるユーザインターフェース入力に基づいて、さらなるユーザインターフェース入力がブロック182において行われた最初の判断と矛盾し、クライアントデバイス110が現在休止中の自動化されたアシスタントの機能を開始すべきだった、および/または現在アクティブな自動化されたアシスタントの機能を停止することを控えるべきだったと判定したと仮定する。この場合、調整される閾値104は、ブロック182において使用される閾値(たとえば、0.85)より低い閾値であり得る。実装において、非限定的な例として、調整される閾値104は、予測された出力103として生成された確率(たとえば、0.80)に基づいて判定され得る。他の実装では、非限定的な例として、調整される閾値104は、所定の量だけブロック182において使用される閾値を低くすること(たとえば、0.85-0.03=0.82)、または所定の割合だけそれを低くすること(たとえば、0.85を5%下げる=0.8075)によって決定され得る。加えて、この場合、グラウンドトゥルース出力105は、クライアントデバイス110が現在休止中の自動化されたアシスタントの機能を開始すべきであったこと、および/または現在アクティブな自動化されたアシスタントの機能を停止するのを控えるべきであったことを示す、確率(たとえば、1.00)でもあり得る。
偽陽性の1つの非限定的な例として、機械学習エンジン122Aが予測された出力103として確率を生成するように訓練され、クライアントデバイス110が予測された出力103(たとえば、0.90)がブロック182の閾値(たとえば、0.85)を満たすと誤って判定し、クライアントデバイス110が現在休止中の自動化されたアシスタントの機能を開始した、および/または現在アクティブな自動化されたアシスタントの機能を停止することを控えたと仮定する。さらに、クライアントデバイス110が、ブロック184において受け取られたさらなるユーザインターフェース入力に基づいて、さらなるユーザインターフェース入力がブロック182において行われた最初の判断と矛盾し、クライアントデバイス110が現在休止中の自動化されたアシスタントの機能を開始すべきでなかった、および/または現在アクティブな自動化されたアシスタントの機能を停止することを控えるべきでなかったと判定したと仮定する。この場合、調整された閾値104は、ブロック182において使用される閾値より高い閾値(たとえば、0.85)であり得る。実装において、非限定的な例として、調整された閾値104は、予測された出力103として生成された確率(たとえば、0.90)に基づいて決定され得る。他の実装において、非限定的な例として、調整された閾値104は、所定の量だけブロック182において使用される閾値を上げること(たとえば、0.85+0.03=0.88)、または所定の割合だけそれを上げること(たとえば、0.85を5%上げる=0.8925)によって決定され得る。加えて、この場合、グラウンドトゥルース出力105はまた、クライアントデバイス110が現在休止中の自動化されたアシスタントの機能を開始すべきではなかったこと、および/または現在アクティブな自動化されたアシスタントの機能を停止することを控えるべきではなかったことを示す確率(たとえば、0.00)でもあり得る。予測された出力103、ブロック182において使用される閾値、調整された閾値104、およびグラウンドトゥルース出力105は、確率であるものとして本明細書において説明されるが、それは限定的であるように意図されておらず、予測された出力103、ブロック182において使用される閾値、調整された値104、およびグラウンドトゥルース出力105は、ラベル、注釈、2値、および/または他の尤度の尺度であることが可能であることを理解されたい。
一部の実装において、ブロック184において受け取られるさらなるユーザインターフェース入力が偽陰性である訂正をブロック186において含むとクライアントデバイス110が判定する場合、クライアントデバイス110のアシスタント作動エンジン124が、クライアントデバイス110のマイクロフォンをアクティブ化して、ユーザが意図したように1つまたは複数の現在休止中の自動化されたアシスタントの機能を開始してよい。
一部の実装において、勾配エンジン126は、グラウンドトゥルース出力105に対する予測された出力103に基づいて勾配106を生成することができる。たとえば、勾配エンジン126は、予測された出力103をグラウンドトゥルース出力105と比較することに基づいて勾配106を生成することができる。それらの実装のいくつかのバージョンにおいて、クライアントデバイス110は、予測された出力103および対応するグラウンドトゥルース出力105をローカルのオンデバイスのストレージ111に記憶し、勾配エンジン126は、1つまたは複数の条件が満たされたときに勾配106を生成するために予測された出力103および対応するグラウンドトゥルース出力105を取り出す。1つまたは複数の条件は、たとえば、クライアントデバイスが充電中であること、クライアントデバイスが充電の少なくとも閾値の状態であること、(1つもしくは複数のオンデバイスの温度センサに基づく)クライアントデバイスの温度が閾値未満であること、および/またはクライアントデバイスがユーザに持たれていないことを含み得る。それらの実装のその他のバージョンにおいて、クライアントデバイス110は、予測された出力103およびグラウンドトゥルース出力105をリアルタイムで勾配エンジン126に提供し、勾配エンジン126は、リアルタイムで勾配106を生成する。
さらに、勾配エンジン126は、生成された勾配106をオンデバイスの機械学習訓練エンジン132Aに提供することができる。オンデバイスの機械学習訓練エンジン132Aは、勾配106を受信するとき、オンデバイスの機械学習モデル152Aを更新するために勾配106を使用する。たとえば、オンデバイスの機械学習訓練エンジン132Aは、オンデバイスの機械学習モデル152Aを更新するために誤差逆伝播法および/またはその他の技術を利用し得る。一部の実装において、オンデバイスの機械学習訓練エンジン132Aは、勾配106と、追加の訂正に基づいてクライアントデバイス110のローカルで決定された追加の勾配とに基づいてオンデバイスの機械学習モデル152Aを更新するためにバッチ技術を利用し得ることが留意される。
さらに、クライアントデバイス110は、生成された勾配106をリモートシステム160に送信することができる。リモートシステム160が勾配106を受信するとき、リモートシステム160のリモート訓練エンジン162は、大域的な音声認識モデル152A1の大域的な重みを更新するために勾配106および追加のクライアントデバイス170からの追加の勾配107を使用する。追加のクライアントデバイス170からの追加の勾配107は、勾配106に関連して上で説明されたのと同じまたは同様の技術に基づいて(しかし、それらのクライアントデバイスに特有のローカルで特定された訂正に基づいて)それぞれ生成され得る。
更新配信エンジン164は、1つまたは複数の条件の満足に応じて、108によって示されるように、更新された大域的な重みおよび/または更新された大域的な音声認識モデル自体をクライアントデバイス110および/またはその他のクライアントデバイスに提供することができる。1つまたは複数の条件は、たとえば、更新された重みおよび/または更新された音声認識モデルが最後に提供されてからの閾値の継続時間および/または訓練の量を含み得る。1つまたは複数の条件は、追加的または代替的に、たとえば、更新された重みおよび/または更新された音声認識モデルが最後に提供されてからの更新された音声認識モデルへの測定された改善および/または閾値の継続時間の経過を含み得る。更新された重みがクライアントデバイス110に提供されるとき、クライアントデバイス110は、オンデバイスの機械学習モデル152Aの重みを更新された重みによって置き換えることができる。更新された大域的な音声認識モデルがクライアントデバイス110に提供されるとき、クライアントデバイス110は、オンデバイスの機械学習モデル152Aを更新された大域的な音声認識モデルによって置き換えることができる。
一部の実装において、オンデバイスの機械学習モデル152Aは、クライアントデバイス110の地理的領域および/もしくはその他のプロパティならびに/またはクライアントデバイス110のユーザに基づいて、クライアントデバイス110における記憶および使用のために(たとえば、リモートシステム160またはその他の構成要素によって)送信される。たとえば、オンデバイスの機械学習モデル152Aは、所与の言語のためのN個の利用可能な機械学習モデルのうちの1つであることが可能であるが、特定の地理的領域に固有である訂正に基づいて訓練され、クライアントデバイス110が主に特定の地理的領域内にあることに基づいてクライアントデバイス110に提供され得る。
ここで図2に目を向けると、図1Aおよび図1Bの様々なオンデバイスの機械学習エンジンが自動化されたアシスタントクライアント240の一部として含まれる(または自動化されたアシスタントクライアント240と通信する)実装におけるクライアントデバイス110が示される。図1Aおよび図1Bの様々なオンデバイスの機械学習エンジンとインターフェースをとるそれぞれの機械学習モデルも、示される。図1Aおよび図1Bのその他の構成要素は、簡単にするために図2に示されない。図2は、図1Aおよび図1Bの様々なオンデバイスの機械学習エンジンおよびそれらのそれぞれの機械学習モデルが、様々なアクションを実行する際に自動化されたアシスタントクライアント240によってどのようにして利用され得るかの一例を示す。
図2のクライアントデバイス110は、1つもしくは複数のマイクロフォン211、1つもしくは複数のスピーカ212、1つもしくは複数のカメラおよび/もしくはその他の視覚構成要素213、ならびにディスプレイ214(たとえば、タッチ式ディスプレイ)と共に示される。クライアントデバイス110は、1つまたは複数のマイクロフォン211によってキャプチャされたオーディオデータに加えて、その他のセンサデータを生成するために使用される圧力センサ、近接センサ、加速度計、磁力計、および/またはその他のセンサをさらに含んでよい。クライアントデバイス110は、自動化されたアシスタントクライアント240を少なくとも選択的に実行する。自動化されたアシスタントクライアント240は、図2の例においては、オンデバイスのホットワード検出エンジン122B、オンデバイスの音声認識器142、オンデバイスの自然言語理解(NLU)エンジン144、およびオンデバイスの履行エンジン146を含む。自動化されたアシスタントクライアント240は、音声キャプチャエンジン242および視覚キャプチャエンジン244をさらに含む。自動化されたアシスタントクライアント240は、音声活動検出器(VAD)エンジン、エンドポイント検出器エンジン、および/またはその他のエンジンなどの追加的なおよび/または代替的なエンジンを含み得る。
1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素280は、任意で、290に全体的に示される1つまたは複数のローカルエリアおよび/または広域ネットワーク(たとえば、インターネット)を介してクライアントデバイス110に通信可能なように結合される1つまたは複数のコンピューティングシステム(集合的に「クラウド」コンピューティングシステムと呼ばれる)に実装され得る。クラウドに基づく自動化されたアシスタント構成要素280は、たとえば、高性能なサーバのクラスタによって実装され得る。
様々な実装において、自動化されたアシスタントクライアント240のインスタンスは、1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素280とのそのインスタンスのインタラクションを通して、ユーザの観点から見てユーザが人とコンピュータとのインタラクション(たとえば、話されたインタラクション、ジェスチャに基づくインタラクション、および/またはタッチに基づくインタラクション)に従事する可能性がある自動化されたアシスタント295の論理的なインスタンスであるように見えるものを形成してよい。
クライアントデバイス110は、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの乗り物のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、スタンドアロンのインタラクティブスピーカ、スマートテレビ(もしくは自動化されたアシスタントの能力を有するネットワークに接続されたドングルを備える普通のテレビ)などのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)であることが可能である。追加的および/または代替的なクライアントデバイスが、提供される場合がある。
1つまたは複数の視覚構成要素213は、モノグラフィックカメラ(monographic camera)、ステレオグラフィックカメラ(stereographic camera)、LIDAR構成要素(またはその他のレーザーに基づく構成要素)、レーダー構成要素などの様々な形態を取り得る。1つまたは複数の視覚構成要素213は、たとえば、クライアントデバイス110が展開される環境の視覚フレーム(vision frame)(たとえば、画像フレーム、レーザーに基づく視覚フレーム)をキャプチャするために視覚キャプチャエンジン244によって使用されてよい。一部の実装において、そのような視覚フレームは、ユーザがクライアントデバイス110の近くにいるかどうかおよび/またはクライアントデバイスに対するユーザ(たとえば、ユーザの顔)の距離を判定するために利用され得る。そのような判定は、たとえば、図2に示された様々なオンデバイスの機械学習エンジンおよび/またはその他のエンジンを作動させるべきかどうかを判定する際に利用され得る。
音声キャプチャエンジン242は、マイクロフォン211によってキャプチャされるユーザのスピーチおよび/またはその他のオーディオデータをキャプチャするように構成され得る。さらに、クライアントデバイス110は、マイクロフォン211によってキャプチャされたオーディオデータに加えて、その他のセンサデータを生成するために使用される圧力センサ、近接センサ、加速度計、磁力計、および/またはその他のセンサを含んでよい。本明細書において説明されるように、そのようなオーディオデータおよびその他のセンサデータは、1つもしくは複数の現在休止中の自動化されたアシスタントの機能を開始すべきかどうか、1つもしくは複数の現在休止中の自動化されたアシスタントの機能の開始を控えるべきかどうか、および/または1つもしくは複数の現在アクティブな自動化されたアシスタントの機能を停止すべきかどうかを判定するためにホットワード検出エンジン122Bおよび/またはその他のエンジンによって利用され得る。自動化されたアシスタントの機能は、オンデバイスの音声認識器142、オンデバイスのNLUエンジン144、オンデバイスの履行エンジン146、ならびに追加的および/または代替的なエンジンを含み得る。たとえば、オンデバイスの音声認識器142は、オンデバイスの音声認識モデル142Aを利用して、話された発話をキャプチャするオーディオデータを処理して、話された発話に対応する認識されたテキスト143Aを生成することができる。オンデバイスのNLUエンジン144は、任意でオンデバイスのNLUモデル144Aを利用して、認識されたテキスト143Aに対してオンデバイスの自然言語理解を実行して、NLUデータ145Aを生成する。NLUデータ145Aは、たとえば、話された発話に対応する意図と、任意で、意図に関するパラメータ(たとえば、スロット値)とを含み得る。さらに、オンデバイスの履行エンジン146は、任意でオンデバイスの履行モデル146Aを利用して、NLUデータ145Aに基づいて履行データ147Aを生成する。この履行データ147Aは、話された発話に対するローカルのおよび/もしくはリモートの応答(たとえば、答え)、話された発話に基づいて実行するローカルにインストールされたアプリケーションとのインタラクション、話された発話に基づいてモノのインターネット(IoT)デバイスに(直接もしくは対応するリモートシステムを介して)送信するコマンド、ならびに/または話された発話に基づいて実行するその他の解決アクションを定義し得る。それから、履行データ147Aは、話された発話を解決するための決定されたアクションのローカルのおよび/またはリモートの遂行/実行のために提供される。実行は、たとえば、ローカルのおよび/もしくはリモートの応答をレンダリングすること(たとえば、(任意でローカルのテキストトゥスピーチモジュールを利用して)視覚的におよび/もしくは聞こえるようにレンダリングすること)、ローカルにインストールされたアプリケーションとインタラクションすること、IoTデバイスにコマンドを送信すること、ならびに/またはその他のアクションを含み得る。
ディスプレイ214は、オンデバイスの音声認識器122からの認識されたテキスト143Aおよび/もしくはさらなる認識されたテキスト143B、ならびに/または実行150からの1つもしくは複数の結果を表示するために利用され得る。ディスプレイ214は、さらに、自動化されたアシスタントクライアント240からの応答の視覚的な部分がレンダリングされるユーザインターフェース出力構成要素のうちの1つであることが可能である。
一部の実装において、クラウドに基づく自動化されたアシスタント構成要素280は、音声認識を実行するリモートのASRエンジン281、自然言語理解を実行するリモートのNLUエンジン282、および/または履行を生成するリモートの履行エンジン283を含み得る。ローカルのまたはリモートで決定された履行データに基づいてリモートの実行を行うリモート実行モジュールも、任意で含まれ得る。追加的および/または代替的なリモートのエンジンが、含まれ得る。本明細書において説明されるように、様々な実装において、オンデバイスの音声処理、オンデバイスのNLU、オンデバイスの履行、および/またはオンデバイスの実行は、少なくとも、(話された発話を解決するためにクライアント-サーバの往復が必要とされないことによる)話された発話を解決するときにそれらが提供するレイテンシーおよび/またはネットワーク使用の削減が理由で優先され得る。しかし、1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素280は、少なくとも選択的に利用され得る。たとえば、そのような構成要素は、オンデバイスの構成要素と並列に利用されることが可能であり、そのような構成要素からの出力は、ローカルの構成要素が失敗するときに利用されることが可能である。たとえば、オンデバイスの履行エンジン146は、(たとえば、クライアントデバイス110の比較的限られたリソースが原因で)特定の状況において失敗する可能性があり、リモートの履行エンジン283は、そのような状況で履行データを生成するためにクラウドのより強固なリソースを利用することができる。リモートの履行エンジン283は、オンデバイスの履行エンジン146と並列して動作させられることが可能であり、その結果は、オンデバイスの履行が失敗するときに利用されることが可能であり、またはリモートの履行エンジン283は、オンデバイスの履行エンジン146の失敗の判定に応じて呼び出されることが可能である。
様々な実装において、NLUエンジン(オンデバイスおよび/またはリモート)は、認識されたテキストの1つまたは複数の注釈および自然言語入力の語のうちの1つまたは複数(たとえば、すべて)を含むNLUデータを生成することができる。一部の実装において、NLUエンジンは、自然言語入力内の様々な種類の文法的情報を特定し、注釈を付けるように構成される。たとえば、NLUエンジンは、個々の単語を形態素に分割するおよび/または形態素にたとえばそれらの形態素のクラスによって注釈を付ける場合がある形態モジュールを含んでよい。NLUエンジンは、語にそれらの語の文法的役割によって注釈を付けるように構成された品詞タガーも含んでよい。また、たとえば、一部の実装において、NLUエンジンは、追加的および/また代替的に、自然言語入力内の語の間の統語的関係を決定するように構成された依存関係パーサを含んでよい。
一部の実装において、NLUエンジンは、追加的および/また代替的に、(たとえば、文学のキャラクタ、有名人、著名人などを含む)人、組織、(現実のおよび架空の)場所などへの言及などの1つまたは複数のセグメント内のエンティティ(entity)の言及に注釈を付けるように構成されたエンティティタガーを含んでよい。一部の実装において、NLUエンジンは、追加的および/また代替的に、1つまたは複数の状況から得られる手掛かり(contextual cue)に基づいて同じエンティティへの言及をグループ分けするかまたは「クラスタリングする」ように構成された同一参照(coreference)リゾルバ(図示せず)を含んでよい。一部の実装において、NLUエンジンの1つまたは複数の構成要素は、NLUエンジンの1つまたは複数のその他の構成要素からの注釈に依拠する場合がある。
NLUエンジンは、自動化されたアシスタント295とのインタラクションに従事するユーザの意図を決定するように構成される意図マッチャをさらに含んでよい。意図マッチャは、ユーザの意図を決定するために様々な技術を使用し得る。一部の実装において、意図マッチャは、たとえば文法と応答の意図との間の複数のマッピングを含む1つまたは複数のローカルのおよび/またはリモートのデータ構造にアクセスすることができる場合がある。たとえば、マッピングに含まれる文法は、選択されるおよび/または経時的に学習されることが可能であり、ユーザのよくある意図を表す可能性がある。たとえば、1つの文法「play <artist>」が、<artist>による音楽をクライアントデバイス110上で再生させる応答アクションを呼び出す意図にマッピングされる場合がある。別の文法「[weather | forecast] today」は、「what's the weather today」および「what's the forecast for today?」などのユーザの問い合わせにマッチング可能である可能性がある。文法に加えてまたは文法の代わりに、一部の実装において、意図マッチャは、1つまたは複数の訓練された機械学習モデルを単独でまたは1つもしくは複数の文法と組み合わせて使用し得る。これらの訓練された機械学習モデルは、たとえば、話された発話からの認識されたテキストを削減された次元の空間に埋め込み、それから、たとえば、ユークリッド距離、コサイン類似度などの技術を使用してどのその他の埋め込み(およびしたがって意図)が最も近いかを判定することによって意図を特定するように訓練され得る。上の「play <artist>」の例示的な文法に見られるように、一部の文法は、スロット値(または「パラメータ」)によって埋められ得るスロット(たとえば、<artist>)を有する。スロット値は、様々な方法で決定されてよい。多くの場合、ユーザは、スロット値を先回りして与える。たとえば、文法「Order me a <topping> pizza」に関して、ユーザは、フレーズ「order me a sausage pizza」と言う見込みが大きい可能性があり、その場合、スロット<topping>は、自動的に埋められる。その他のスロット値が、たとえば、ユーザの位置、現在レンダリングされているコンテンツ、ユーザのプリファレンス、および/またはその他の手掛かりに基づいて推測され得る。
履行エンジン(ローカルおよび/またはリモート)は、NLUエンジンによって出力される予測された/推定された意図および任意の関連するスロット値を受け取り、意図を履行する(または「解決する」)ように構成され得る。様々な実装において、ユーザの意図の履行(または「解決」)は、様々な履行情報(履行データとも呼ばれる)を、たとえば、履行エンジンによって生成させる/取得させる場合がある。これは、話された発話に対するローカルのおよび/もしくはリモートの応答(たとえば、答え)、話された発話に基づいて実行するローカルにインストールされたアプリケーションとのインタラクション、話された発話に基づいてモノのインターネット(IoT)デバイスに(直接もしくは対応するリモートシステムを介して)送信するコマンド、ならびに/または話された発話に基づいて実行するその他の解決アクションを決定することを含み得る。そのとき、オンデバイスの履行は、話された発話を解決するための決定されたアクションのローカルのおよび/またはリモートの遂行/実行を開始し得る。
図3は、閾値を調整し、クライアントデバイスのローカルで偽陰性もしくは偽陽性に基づいて勾配を生成し、勾配をリモートサーバに送信し、および/またはオンデバイス発話認識モデルの重みを更新するために生成された勾配を利用する、例示的な方法300を示す流れ図を示す。便宜上、方法300の動作は、動作を実行するシステムに関連して説明される。方法300のこのシステムは、クライアントデバイスの1つまたは複数のプロセッサおよび/またはその他の構成要素を含む。さらに、方法300の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加されてよい。
ブロック305において、システムは、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの話された発話をキャプチャするオーディオデータを受け取る。
ブロック310において、システムは、1つまたは複数のホットワードがオーディオデータに存在する確率を示す予測された出力を生成するために、機械学習モデルを使用してブロック305において受け取られたオーディオデータを処理する。機械学習モデルは、たとえば、オンデバイスホットワード検出モデルおよび/または他の機械学習モデルであり得る。さらに、生成された出力は、たとえば、確率および/またはその他の尤度の尺度であることが可能である。
ブロック315において、システムは、ブロック310において生成される予測された出力が、1つまたは複数のホットワードがオーディオデータに存在することを一次閾値より示さない二次閾値を満たすかどうかを判定する。ブロック315の反復において、ブロック310において生成される予測された出力が二次閾値を満たさないとシステムが判定する場合、システムはブロック320に進み、フローは終了する。一方、ブロック315の反復において、ブロック310において生成される予測された出力が二次閾値を満たすとシステムが判定する場合、システムはブロック325に進む。
さらにブロック315を参照すると、ある例において、ブロック310において生成される予測された出力が確率であり、ブロック315における二次閾値を満たすために確率が0.65より大きくなければならず、予測された確率が0.88であると仮定する。予測された確率0.88が二次閾値0.65を満たすことに基づいて、システムはブロック358に進む。
ブロック325において、システムは、ブロック310において生成される予測された出力が一次閾値を満たすかどうかを判定する。ブロック325の反復において、ブロック310において生成される予測された出力が一次閾値を満たさないとシステムが判定する場合、システムはブロック335に進む。一方、ブロック325の反復において、ブロック310において生成される予測された出力が一次閾値を満たすとシステムが判定する場合、システムはブロック330に進み、1つまたは複数の現在休止中の自動化されたアシスタントの機能を開始する。一部の実装において、1つまたは複数の自動化されたアシスタントの機能は、認識されたテキストを生成するための音声認識、自然言語理解(NLU)出力を生成するためのNLU、認識されたテキストおよび/もしくはNLU出力に基づく応答の生成、リモートサーバへのオーディオデータの送信、ならびに/またはリモートサーバへの認識されたテキストの送信を含む。
さらにブロック330を参照すると、ある例において、ブロック310において生成される予測された出力が確率であり、ブロック325において一次閾値を満たしてブロック330において1つまたは複数の現在休止中の自動化されたアシスタントの機能をアクティブ化するために確率が0.85より大きくなければならず、予測された確率が0.88であると仮定する。予測された確率0.88が閾値0.85を満たすことに基づいて、システムは、ブロック330に進み、1つまたは複数の現在休止中の自動化されたアシスタントの機能をユーザが意図したように開始する。
ブロック335において、システムは、ブロック305において受け取られたオーディオデータによってキャプチャされた話された発話がホットワードを含むかどうかを示すようにユーザにプロンプトで求める。実装において、プロンプトは、ユーザがホットワードを話したかどうかを尋ねるオーディオプロンプト(たとえば、テキストトゥスピーチモジュールを利用してレンダリングされる)の形式であり得る。他の実装において、プロンプトは、ユーザがホットワードを話したかどうかを尋ねるメッセージとしてディスプレイにレンダリングされてよい。さらに他の実装において、プロンプトの1つまたは複数は、自動化されたアシスタントクライアント240に関連するアプリケーションまたはウェブサイト(たとえば、モバイルデバイス上で実行するアプリ)において提示されてよい。システムは、ブロック335において、時間的に発話の近くで(たとえば、ブロック305、310、315、および325のアクションを実行した直後に)、またはある後の時点で、ユーザにプロンプトで求めてよい(たとえば、システムは、所定の毎日または毎週の時間に複数の発話に関連する複数のプロンプトを提示してよい)。
さらにブロック335を参照すると、実装において、プロンプトで求めることは、ユーザが前にプロンプトで求められた回数がレート限界を超えないと判定したことにさらに応じて実行されてよい。レート限界を超えている場合、システムは、ブロック340から350を実行せずに、プロンプトで求めることの実行を避けてブロック305に戻ってよい。
さらにブロック335を参照すると、実装において、プロンプトで求めることは、do not disturb状態が無効であると判定したことにさらに応じて実行されてよい。do not disturb状態が有効である場合、システムは、ブロック340から350を実行せずに、プロンプトで求めることの実行を避けてブロック305に戻ってよい。
さらにブロック335を参照すると、実装において、プロンプトで求めることは、ユーザが所定の期間クライアントデバイスにアクセスしていないと判定したことにさらに応じて実行されてよい。ユーザが所定の期間クライアントデバイスにアクセスしている場合、システムは、ブロック340から350を実行せずに、プロンプトで求めることの実行を避けてブロック305に戻ってよい。
ブロック340において、システムは、ユーザから、ブロック335からのプロンプトに対する応答を受け取る。実装において、応答は、ブロック305において受け取られたオーディオデータによりキャプチャされた話された発話がホットワードを含むかどうかについてのユーザからの指示であってよい。実装において、応答は、クライアントデバイスの1つまたは複数のマイクロフォンを介して受け取られたオーディオデータ、クライアントデバイスのタッチスクリーンを介して受け取られたタッチスクリーン入力、ならびに/または、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、および/もしくは他のタイプの入力デバイスから受け取られた入力の形式であってよい。
さらにブロック340を参照すると、実装において、システムは、ブロック340においてユーザから応答を受け取ると、トリガリングイベントを記録してよい。加えて、実装において、システムは、ブロック340においてユーザから受け取られた応答を記録してよく、これは応答なし(すなわち、応答の欠如)であってもよい。
ブロック345において、システムは、ブロック340において受け取られた応答に基づいて一次閾値を調整する。実装において、予測された出力がブロック325において一次閾値を満たさず、話された発話がホットワードを含むことをブロック340における応答が示すような偽陰性の場合、応答に基づいて一次閾値を調整することは、一次閾値を下げることを含む。実装において、予測された出力がブロック325において一次閾値を満たし、話された発話がホットワードを含まないことをブロック340における応答が示すような偽陽性の場合、応答に基づいて一次閾値を調整することは、一次閾値を上げることを含む。
さらにブロック345を参照すると、偽陰性の非限定的な例において、ブロック310において生成される予測された出力が確率であり、確率は、ブロック315において二次閾値を満たすために0.65より大きくなければならず、ブロック325において一次閾値を満たしてブロック330において1つまたは複数の現在休止中の自動化されたアシスタントの機能をアクティブ化するには0.85より大きくなければならず、予測された確率が0.80であると仮定する。予測された確率0.80に基づいて、二次閾値はブロック315において満たされるが、一次閾値はブロック325において満たされないので、1つまたは複数の現在休止中の自動化されたアシスタントの機能はアクティブ化されない。ブロック305において受け取られたオーディオデータにおいてキャプチャされた話された発話がホットワードを含むことを示す応答をブロック340において受け取ったことに応じて、ブロック310において予測された出力として生成された確率(たとえば、0.80)に基づいて、ブロック345において一次閾値が下げられる。別の非限定的な例として、一次閾値は、ブロック345において、所定の量だけ下げられ(たとえば、0.85-0.03=0.82)、または所定の割合だけ下げられる(たとえば、0.85を5%下げる=0.8075)。
さらにブロック345を参照すると、偽陽性の非限定的な例において、ブロック310において生成される予測された出力が確率であり、確率は、ブロック315において二次閾値を満たすために0.65より大きくなければならず、ブロック325において一次閾値を満たしてブロック330において1つまたは複数の現在休止中の自動化されたアシスタントの機能をアクティブ化するには0.85より大きくなければならず、予測された確率が0.90であると仮定する。0.90という予測された確率に基づいて、二次閾値はブロック315において満たされ、一次閾値はブロック325において満たされるので、1つまたは複数の現在休止中の自動化されたアシスタントの機能がアクティブ化される。ブロック305において受け取られるオーディオデータにおいてキャプチャされた話された発話がホットワードを含まないことを示す応答をブロック340において受け取ったことに応じて、ブロック310において予測された出力として生成された確率(たとえば、0.90)に基づいて、ブロック345において一次閾値が上げられる。別の非限定的な例として、一次閾値は、ブロック345において、所定の量だけ上げられ(たとえば、0.85+0.03=0.88)、または所定の割合だけ上げられる(たとえば、0.85を5%上げる=0.8925)。
ブロック350において、システムは、ブロック340において受け取られた応答に基づいてホットワード検出モデルを訓練するために、連合学習を使用する。実装において、システムは、ブロック310において生成された予測された出力をグラウンドトゥルース出力と比較することに基づいて勾配を生成する。一部の実装において、グラウンドトゥルース出力は、ブロック340において受け取られた応答がブロック325において行われた判断の訂正を示すことに基づいて生成される。たとえば、偽陰性に関して、生成された予測された出力が0.80であり、閾値が0.85である場合、システムは、グラウンドトゥルース出力1.0を生成することができる。そのような例において、勾配を生成することは、予測された出力0.80をグラウンドトゥルース出力1.0と比較することに基づく。
さらにブロック350を参照すると、システムは、生成された勾配に基づいてオンデバイス機械学習モデルの1つまたは複数の重みを更新し、および/または、システムは(たとえば、インターネットまたは他のワイドエリアネットワークを介して)、生成された勾配を(ブロック340において受け取られたオーディオデータ、センサデータ、および/または応答のいずれも送信せずに)リモートシステムに送信する。勾配がリモートシステムに送信されるとき、リモートシステムは、大域的な音声認識モデルの大域的な重みを更新するために、生成された勾配および追加のクライアントデバイスからの追加の勾配を利用する。ブロック350の後、システムは、ブロック305に戻る。
図4は、閾値を調整し、クライアントデバイスのローカルで偽陽性に基づいて勾配を生成し、勾配をリモートサーバに送信し、および/またはオンデバイス発話認識モデルの重みを更新するために生成された勾配を利用する、例示的な方法400を示すフローチャートを示す。便宜上、方法400の動作は、動作を実行するシステムに関連して説明される。方法400のこのシステムは、クライアントデバイスの1つまたは複数のプロセッサおよび/またはその他の構成要素を含む。さらに、方法400の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加されてよい。
ブロック410において、システムは、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの話された発話をキャプチャするオーディオデータを受け取る。
ブロック420において、システムは、1つまたは複数のホットワードがオーディオデータに存在する確率を示す予測された出力を生成するために、機械学習モデルを使用してブロック410において受け取られたオーディオデータを処理する。機械学習モデルは、たとえば、オンデバイスのホットワード検出モデルおよび/またはその他の機械学習モデルであることが可能である。さらに、生成された出力は、たとえば、確率および/または他の尤度の尺度であり得る。
ブロック430において、システムは、ブロック420において生成された予測された出力が閾値を満たすかどうかを判定する。ブロック430の反復において、ブロック420において生成される予測された出力が閾値を満たさないとシステムが判定する場合、システムはブロック410に戻る。一方、ブロック430の反復において、システムは、ブロック420において生成される予測された出力が閾値を満たすと判定し、システムはブロック440に進み、1つまたは複数の現在休止中の自動化されたアシスタントの機能を開始する。
さらにブロック430を参照すると、ある例において、ブロック420において生成される予測された出力が確率であり、ブロック430において閾値を満たすために確率が0.85より大きくなければならず、予測された確率が0.88であると仮定する。予測された確率0.88が閾値0.85を満たすことに基づいて、システムはブロック440に進み、1つまたは複数の現在休止中の自動化されたアシスタントの機能を開始する。一部の実装において、1つまたは複数の自動化されたアシスタントの機能は、認識されたテキストを生成するための音声認識、自然言語理解(NLU)出力を生成するためのNLU、認識されたテキストおよび/もしくはNLU出力に基づく応答の生成、リモートサーバへのオーディオデータの送信、ならびに/またはリモートサーバへの認識されたテキストの送信を含む。
ブロック450において、システムは、ユーザから、ブロック410において受け取られたオーディオデータにおいてキャプチャされた話された発話がホットワードを含まないという指示を受け取る。実装において、システムによって受け取られた指示は、クライアントデバイスの1つまたは複数のマイクロフォンを介して受け取られたオーディオデータ、クライアントデバイスのタッチスクリーンを介して受け取られたタッチスクリーン入力、ならびに/または、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、および/もしくは他のタイプの入力デバイスから受け取られた入力の形式であってよい。
さらにブロック450を参照すると、実装において、システムは、ブロック410において受け取られたオーディオデータにおいてキャプチャされた話された発話がホットワードを含むかどうかを示すようにユーザにプロンプトで求めてよく、話された発話がホットワードを含まないという指示が、プロンプトで求めたことに対する応答としてブロック450において受け取られる。実装において、プロンプトは、ユーザがホットワードを話したかどうかを尋ねるオーディオプロンプト(たとえば、テキストトゥスピーチモジュールを利用してレンダリングされる)の形式であり得る。他の実装において、プロンプトは、ユーザがホットワードを話したかどうかを尋ねるメッセージとしてディスプレイにレンダリングされてよい。さらに他の実装において、プロンプトの1つまたは複数は、自動化されたアシスタントクライアント240に関連するアプリケーションまたはウェブサイト(たとえば、モバイルデバイス上で実行するアプリ)において提示されてよい。システムは、ブロック450において、時間的に発話の近くで(たとえば、ブロック410、420、430、および440のアクションを実行した直後に)、またはある後の時点で、ユーザにプロンプトで求めてよい(たとえば、システムは、所定の毎日または毎週の時間に複数の発話に関連する複数のプロンプトを提示してよい)。
ブロック450をさらに参照すると、実装において、プロンプトで求めることは、ユーザが前にプロンプトで求められた回数がレート限界を超えないと判定したことにさらに応じて実行されてよい。レート限界を超える場合、システムは、ブロック460および470を実行せずに、プロンプトで求めることの実行を避けてブロック410に戻ってよい。
さらにブロック450を参照すると、実装において、プロンプトで求めることは、do not disturb状態が無効であると判定したことにさらに応じて実行されてよい。do not disturb状態が有効である場合、システムは、ブロック460および470を実行せずに、プロンプトで求めることの実行を避けてブロック410に戻ってよい。
さらにブロック450を参照すると、実装において、プロンプトで求めることは、ユーザが所定の期間クライアントデバイスにアクセスしていないと判定したことにさらに応じて実行されてよい。ユーザが所定の期間クライアントデバイスにアクセスしている場合、システムは、ブロック460および470を実行せずに、プロンプトで求めることの実行を避けてブロック410に戻ってよい。
さらにブロック450を参照すると、他の実装において、ブロック410において受け取られたオーディオデータにおいてキャプチャされた話された発話がホットワードを含まないという指示は、「いいえ」、「ストップ」、「取り消し」を含むその後の話された発話、および/またはブロック430において行われた最初の判断と矛盾する別の話された発話をキャプチャする、追加のオーディオデータである。実装において、ブロック430において行われた最初の判断は、たとえば、話された発話と追加の話された発話との間の継続時間が時間の閾値(たとえば、3.0秒以内)を満たすと判定すること、最初の確率の大きさが閾値の確率に関連する確率的閾値(たとえば、0.85の0.20以内)を満たすと判定すること、本明細書において説明される継続時間とブロック430における最初の判断に関する最初の確率との関数、ならびに/またはその他の判定に基づいて誤っている(すなわち、偽陽性)と分類されることが可能であり、これは、ブロック410において受け取られたオーディオデータにおいてキャプチャされた話された発話がホットワードを含まないという指示である。別の場合、さらなるユーザインターフェース入力が、明示的な自動化されたアシスタント呼び出しボタン(たとえば、ハードウェアボタンもしくはソフトウェアボタン)の作動、デバイスの感知された「握り込み」(たとえば、デバイスを少なくとも閾値の量の力で握り込むことがアシスタントを呼び出すとき)、および/またはアシスタントの呼び出しを取り消す他の明示的な入力などのアシスタントの呼び出しを取り消す代替的な入力であると仮定すると、ブロック430において行われた最初の判断は、たとえば、話された発話と呼び出しを取り消す代替的な入力との間の継続時間が時間の閾値(たとえば、3.0秒以内)を満たすと判定すること、最初の確率の大きさが閾値の確率に関連する確率的閾値(たとえば、0.85の0.20以内)を満たすと判定すること、本明細書において説明される継続時間とブロック430における最初の判断に関する最初の確率との関数、ならびに/またはその他の判定に基づいて誤っている(すなわち、偽陽性)と分類されることが可能であり、これは、ブロック410において受け取られたオーディオデータにおいてキャプチャされた話された発話がホットワードを含まないという指示である。したがって、これらの場合、システムは、ブロック430において行われた最初の判断が誤っていたと判定することに基づいて、現在休止中の自動化されたアシスタントの機能を開始することを控え、および/または現在アクティブな自動化されたアシスタントの機能を停止することができる。
ブロック460において、予測された出力がブロック430において閾値を満たすと判定し、話された発話がブロック450においてホットワードを含まないという指示を受け取ったことに応答して、システムは閾値を調整する。実装において、予測された出力がブロック430において閾値を満たし、話された発話がホットワードを含まないことをブロック450において受け取られた指示が示すような偽陽性の場合、応答に基づいて一次閾値を調整することは、一次閾値を上げることを含む。
ブロック460をさらに参照すると、偽陽性の非限定的な例において、ブロック420において生成される予測された出力が確率であり、ブロック430において閾値を満たしてブロック440において1つまたは複数の現在休止中の自動化されたアシスタントの機能をアクティブ化するために確率が0.85より大きくなければならず、予測された確率が0.88であると仮定する。予測された確率0.88に基づいて、閾値がブロック430において満たされるので、1つまたは複数の現在休止中の自動化されたアシスタントの機能がアクティブ化される。話された発話がホットワードを含まないという指示をブロック450において受け取ったことに応答して、ブロック420において予測された出力として生成された確率(たとえば、0.88)に基づいて、ブロック460において閾値が上げられる。別の非限定的な例として、閾値は、ブロック460において、所定の量だけ上げられ(たとえば、0.85+0.03=0.88)、または所定の割合だけ上げられる(たとえば、0.85を5%上げる=0.8925)。
ブロック470において、システムは、ブロック450において受け取られた指示に基づいてホットワード検出モデルを訓練するために、連合学習を使用する。実装において、システムは、ブロック420において生成された予測された出力をグラウンドトゥルース出力と比較することに基づいて勾配を生成する。一部の実装において、グラウンドトゥルース出力は、ブロック430において行われた判断の訂正を示す、ブロック450において受け取られた指示に基づいて生成される。たとえば、偽陽性に関して、生成された予測された出力が0.88であり、閾値が0.85である場合、システムは、グラウンドトゥルース出力0.0を生成することができる。そのような例において、勾配を生成することは、予測された出力0.88をグラウンドトゥルース出力0.0と比較することに基づく。
さらにブロック470を参照すると、システムは、生成された勾配に基づいてオンデバイス機械学習モデルの1つまたは複数の重みを更新し、ならびに/または、システムは(たとえば、インターネットまたは他のワイドエリアネットワークを介して)、生成された勾配を(ブロック450において受け取られたオーディオデータ、センサデータ、および/または指示のいずれも送信せずに)リモートシステムに送信する。勾配がリモートシステムに送信されるとき、リモートシステムは、大域的な音声認識モデルの大域的な重みを更新するために、生成された勾配および追加のクライアントデバイスからの追加の勾配を利用する。ブロック470の後、システムは、ブロック410に戻る。
図5は、偽陰性に基づいて、閾値を調整する例示的な方法500を示す流れ図を示す。便宜上、方法500の動作は、動作を実行するシステムに関連して説明される。方法500のこのシステムは、クライアントデバイスの1つまたは複数のプロセッサおよび/または他の構成要素を含む。さらに、方法500の動作は特定の順序で示されるが、これは限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加されてよい。
ブロック505において、システムは、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの第1の話された発話をキャプチャする第1のオーディオデータを受け取る。
ブロック510において、システムは、1つまたは複数のホットワードが第1のオーディオデータに存在する確率を示す第1の予測された出力を生成するために、機械学習モデルを使用してブロック505において受け取られた第1のオーディオデータを処理する。機械学習モデルは、たとえば、オンデバイスホットワード検出モデルおよび/または他の機械学習モデルであり得る。さらに、生成された出力は、たとえば、確率および/または他の尤度の尺度であり得る。
ブロック515において、システムは、ブロック510において生成された第1の予測された出力が閾値を満たすかどうかを判定する。ブロック515の反復において、システムは、ブロック510において生成された第1の予測された出力が閾値を満たすと判定し、システムはブロック520に進む。一方、ブロック515の反復において、システムは、ブロック510において生成された第1の予測された出力が閾値を満たさないと判定し、システムはブロック525に進む。
ブロック520において、システムは、ユーザが意図したように1つまたは複数の現在休止中の自動化されたアシスタントの機能を開始する。
ブロック525において、第1の予測された出力がブロック515において閾値を満たさないとの判定に応じて、システムは閾値に第1の調整を行う。実装において、閾値に第1の調整を行うことは、(たとえば、図3のブロック315に関連して説明されたように)閾値を下げることを含み、ユーザから、ブロック505において受け取られた第1のオーディオデータにおいてキャプチャされた第1の話された発話がホットワードを含むという指示を受け取ったことにさらに応じたものである。
ブロック530において、ブロック525において第1の調整を行った後、システムは、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの第2の話された発話をキャプチャする第2のオーディオデータを受け取る。
ブロック535において、システムは、1つまたは複数のホットワードが第2のオーディオデータに存在する確率を示す第2の予測された出力を生成するために、機械学習モデルを使用してブロック530において受け取られた第2のオーディオデータを処理する。
ブロック540において、システムは、ブロック535において生成された第2の予測された出力がブロック525において第1の調整に従って調整される閾値を満たすかどうかを判定する。ブロック540の反復において、ブロック535において生成された第2の予測された出力がブロック525において第1の調整に従って調整される閾値を満たすとシステムが判定する場合、システムはブロック520に戻る。一方、ブロック540の反復において、システムが、ブロック535において生成された第2の予測された出力がブロック525において第1の調整に従って調整される閾値を満たさないと判定する場合、システムはブロック545に進む。
ブロック545において、第2の予測された出力がブロック525において第1の調整に従って調整される閾値を満たさないとのブロック540における判定に応じて、システムは閾値に第2の調整を行う。実装において、閾値に第2の調整を行うことは、(たとえば、図3のブロック315に関連して説明されたように)閾値を下げることをさらに含み、ユーザから、ブロック530において受け取られた第2のオーディオデータにおいてキャプチャされた第2の話された発話がホットワードを含むという指示を受け取ったことにさらに応じたものである。
ブロック550において、ブロック545において第2の調整を行った後、システムは、クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの第3の話された発話をキャプチャする第3のオーディオデータを受け取る。
ブロック555において、システムは、1つまたは複数のホットワードが第3のオーディオデータに存在する確率を示す第3の予測された出力を生成するために、機械学習モデルを使用してブロック550において受け取られた第3のオーディオデータを処理する。
ブロック560において、システムは、ブロック555において生成された第3の予測された出力がブロック525における第1の調整およびブロック545における第2の調整に従って調整される閾値を満たすかどうかを判定する。ブロック560の反復において、ブロック555において生成された第3の予測された出力がブロック525における第1の調整およびブロック545における第2の調整に従って調整される閾値を満たさないとシステムが判定する場合、システムはブロック565に進み、フローは終了する。一方、ブロック560の反復において、ブロック555において生成された第3の予測された出力がブロック525における第1の調整およびブロック545における第2の調整に従って調整される閾値を満たすとシステムが判定する場合、システムはブロック570に進む。
ブロック570において、システムは、ユーザが意図したように1つまたは複数の現在休止中の自動化されたアシスタントの機能を開始する。
ブロック575において、第3の予測された出力がブロック525における第1の調整およびブロック545における第2の調整に従って調整される閾値を満たすとのブロック560における判定に応じて、システムは閾値に第3の調整を行う。実装において、閾値に第3の調整を行うことは、(たとえば、図3のブロック315に関連して説明されたように)閾値を上げることを含み、ユーザから、ブロック550において受け取られた第3のオーディオデータにおいてキャプチャされた第3の話された発話がホットワードを含まないという指示を受け取ったことにさらに応じたものである。実装において、第3の話された発話がホットワードを含まないという指示を受け取ったことに応じて、システムは任意の現在アクティブな自動化されたアシスタントの機能を停止してよい。
方法300、400、および500の様々な実装において、オーディオデータ、予測された出力、プロンプトで求めることへの応答、さらなるユーザインターフェース入力、閾値、および/またはグラウンドトゥルース出力は、クライアントデバイスのローカルに記憶され得ることが留意される。さらに、方法300、400、および500のそれらの実装のいくつかのバージョンにおいて、勾配を生成すること、オンデバイスの機械学習モデルの1つもしくは複数の重みを更新すること、および/または勾配をリモートシステムに送信することは、クライアントデバイスの現在の状態が1つまたは複数の条件を満たすとの判定に応じて実行される。たとえば、1つまたは複数の条件は、クライアントデバイスが充電中であること、クライアントデバイスが充電の少なくとも閾値の状態であること、および/またはクライアントデバイスがユーザによって持ち運ばれていないことを含む。さらに、方法300、400、および500のそれらの実装のいくつかの追加的または代替的なバージョンにおいて、勾配を生成すること、オンデバイスの機械学習モデルの1つもしくは複数の重みを更新すること、および/または勾配をリモートシステムに送信することは、リアルタイムで実行される。これらのおよびその他の方法で、閾値およびオンデバイスの機械学習モデルは、偽陰性および/または偽陽性の発生を軽減するために迅速に適応され得る。さらに、これは、話された発話をキャプチャするオーディオデータを処理するオンデバイスの機械学習モデルの場合に、トーン、イントネーション、アクセント、および/またはその他のスピーチの特徴などのクライアントデバイスのユーザの属性に関してオンデバイスの機械学習モデルの性能の向上を可能にする。
図6は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用されてよい例示的なコンピューティングデバイス610のブロック図である。一部の実装においては、クライアントデバイス、クラウドに基づく自動化されたアシスタント構成要素、および/またはその他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を含んでよい。
概して、コンピューティングデバイス610は、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリサブシステム625およびファイルストレージサブシステム626を含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含んでよい。入力および出力デバイスは、コンピューティングデバイス610とのユーザのインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含んでよい。概して、用語「入力デバイス」の使用は、コンピューティングデバイス610または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、または音声出力デバイスなどの非視覚的表示を含んでよい。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含んでよい。ディスプレイサブシステムは、音声出力デバイスを介するなどして非視覚的表示を提供する場合もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス610からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
ストレージサブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム624は、本明細書において開示される方法の選択された態様を実行するためならびに図1Aおよび図1Bに示された様々な構成要素を実装するための論理を含む可能性がある。
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム624に含まれるメモリサブシステム625は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)630と、決まった命令が記憶される読み出し専用メモリ(ROM)632とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体をともなうフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含んでよい。特定の実装の機能を実装するモジュールは、ストレージサブシステム624内のファイルストレージサブシステム626によって、またはプロセッサ614によりアクセスされ得るその他のマシンに記憶される場合がある。
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する場合がある。
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図6に示されたコンピューティングデバイス610の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図6に示されたコンピューティングデバイスよりも多くのまたは図6に示されたコンピューティングデバイスよりも少ない構成要素を有するコンピューティングデバイス610の多くのその他の構成が、可能である。
本明細書において説明されるシステムがユーザについての個人情報を収集するかもしくはそうでなければ監視するか、または個人情報および/もしくは監視された情報を利用する場合がある状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザのプリファレンス、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受信するべきかどうかおよび/またはどのようにして受信するべきかを制御する機会を与えられてよい。また、特定のデータが、個人を特定することができる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される場合がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定することができる情報がユーザに関して決定され得ないか、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される場合があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理されてよい。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび/または使用されるかを制御することができる場合がある。
いくつかの実装が本明細書で説明され示されたが、本明細書において説明される機能を実行すること、ならびに/または、結果および/もしくは利益の1つまたは複数を取得することのための、様々な他の手段および/または構造が利用されてよく、そのような変形および/または修正の各々が、本明細書において説明される実装の範囲内にあるものと見なされる。より広く、本明細書において説明されるすべてのパラメータ、次元、材料、および構成は例示的であることが意図され、実際のパラメータ、次元、材料、および/または構成は、教示が使用される具体的な1つまたは複数の適用例に依存する。日常的な実験(routine experimentation)に過ぎないものを使用して、本明細書において説明される具体的な実装に対する多くの均等物を当業者は認識し、認めることが可能である。したがって、前述の実装は、例として提示されるだけであり、添付の特許請求の範囲およびその均等物の範囲内で、具体的に説明され特許請求されるもの以外の実装が実践されてよいことを理解されたい。本開示の実装は、本明細書において説明される各々の個別の特徴、システム、物品、材料、キット、および/または方法を対象とする。加えて、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せが、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾しない場合、本開示の範囲内に含まれる。
101 オーディオデータ
102 その他のセンサデータ
103 予測された出力
104 調整される閾値
105 グラウンドトゥルース出力
106 勾配
107 追加の勾配
108 更新された重みおよび/またはモデル
110 クライアントデバイス
111 オンデバイスのストレージ
122A 機械学習エンジン
122B ホットワード検出エンジン
124 アシスタント作動エンジン
126 勾配エンジン
128 音声活動検出器
132A オンデバイスの機械学習訓練エンジン
142 オンデバイスの音声認識器
142A オンデバイスの音声認識モデル
143A 認識されたテキスト
143B さらなる認識されたテキスト
144 オンデバイスのNLUエンジン
144A オンデバイスのNLUモデル
145A NLUデータ
146 オンデバイスの履行エンジン
146A オンデバイスの履行モデル
147A 履行データ
150 実行
152A 機械学習モデル
152A1 大域的な音声認識モデル
152B ホットワード検出モデル
160 リモートサーバ、リモートシステム
162 リモート訓練エンジン
164 更新配信エンジン
170 追加のクライアントデバイス
211 マイクロフォン
212 スピーカ
213 視覚構成要素
214 ディスプレイ
240 自動化されたアシスタントクライアント
242 音声キャプチャエンジン
244 視覚キャプチャエンジン
280 クラウドに基づく自動化されたアシスタント構成要素
281 リモートのASRエンジン
282 リモートのNLUエンジン
283 リモートの履行エンジン
295 自動化されたアシスタント
300 方法
400 方法
500 方法
610 コンピューティングデバイス
612 バスサブシステム
614 プロセッサ
616 ネットワークインターフェースサブシステム
620 ユーザインターフェース出力デバイス
622 ユーザインターフェース入力デバイス
624 ストレージサブシステム
625 メモリサブシステム
626 ファイルストレージサブシステム

Claims (24)

1つまたは複数のプロセッサによって実施される方法であって、
クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの話された発話をキャプチャするオーディオデータを受け取るステップと、
1つまたは複数のホットワードが前記オーディオデータに存在する確率を示す予測された出力を生成するために、機械学習モデルを使用して前記オーディオデータを処理するステップと、
前記1つまたは複数のホットワードが前記オーディオデータに存在することを一次閾値よりも示さない二次閾値を前記予測された出力が満たすと判定するステップと、
前記予測された出力が前記二次閾値を満たすとの判定に応じて、前記話された発話がホットワードを含むかどうかを示すように前記ユーザにプロンプトで求めるステップと、
前記ユーザから前記プロンプトで求めることに対する応答を受け取るステップと、
前記応答に基づいて前記一次閾値を調整するステップとを含む、方法。
前記予測された出力が前記一次閾値を満たすことに応じて、自動化されたアシスタントの機能を開始するステップをさらに含む、請求項1に記載の方法。
前記機械学習モデルがホットワード検出モデルであり、
前記応答に基づいて前記ホットワード検出モデルを訓練するために連合学習を使用するステップをさらに含む、請求項1または2に記載の方法。
前記予測された出力が前記一次閾値を満たさず、
前記話された発話が前記ホットワードを含むことを前記応答が示し、
前記応答に基づいて前記一次閾値を調整する前記ステップが、前記一次閾値を下げるステップを含む、請求項1から3のいずれか一項に記載の方法。
前記予測された出力が前記一次閾値を満たし、
前記話された発話が前記ホットワードを含まないことを前記応答が示し、
前記応答に基づいて前記一次閾値を調整する前記ステップが、前記一次閾値を上げるステップを含む、請求項1から4のいずれか一項に記載の方法。
前記プロンプトで求めるステップが、前記ユーザが前にプロンプトで求められた回数がレート限界を超えないと判定したことにさらに応じたものである、請求項1から5のいずれか一項に記載の方法。
前記プロンプトで求めるステップが、do not disturb状態が無効であると判定したことにさらに応じたものである、請求項1から6のいずれか一項に記載の方法。
前記プロンプトで求めるステップが、前記ユーザが所定の期間前記クライアントデバイスにアクセスしていないと判定したことにさらに応じたものである、請求項1から7のいずれか一項に記載の方法。
1つまたは複数のプロセッサによって実施される方法であって、
クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの話された発話をキャプチャするオーディオデータを受け取るステップと、
1つまたは複数のホットワードが前記オーディオデータに存在する確率を示す予測された出力を生成するために、機械学習モデルを使用して前記オーディオデータを処理するステップと、
前記予測された出力が閾値を満たすと判定するステップと、
前記ユーザから、前記話された発話がホットワードを含まないという指示を受け取るステップと、
前記予測された出力が前記閾値を満たすと判定し、前記話された発話が前記ホットワードを含まないという前記指示を受け取ったことに応じて、前記閾値を調整するステップとを含む、方法。
前記予測された出力が前記閾値を満たすとの判定に応じて、前記話された発話が前記ホットワードを含まないという前記指示を受け取る前に、自動化されたアシスタントの機能を開始するステップをさらに含む、請求項9に記載の方法。
前記機械学習モデルがホットワード検出モデルであり、
前記プログラム命令が、さらに、前記話された発話が前記ホットワードを含まないという前記指示に基づいて、前記ホットワード検出モデルを訓練するように実行可能である、請求項9または10に記載の方法。
前記閾値を調整する前記ステップが前記閾値を上げるステップを含む、請求項9から11のいずれか一項に記載の方法。
前記話された発話が前記ホットワードを含むかどうかを示すように前記ユーザにプロンプトで求めるステップをさらに含み、前記話された発話が前記ホットワードを含まないことの前記指示が、前記プロンプトで求めることに対する応答として受け取られる、請求項9から12のいずれか一項に記載の方法。
前記プロンプトで求めるステップが、前記ユーザが前にプロンプトで求められた回数がレート限界を超えないと判定したことに応じたものである、請求項13に記載の方法。
前記プロンプトで求めるステップが、do not disturb状態が無効であると判定したことに応じたものである、請求項13に記載の方法。
前記プロンプトで求めるステップが、前記ユーザが所定の期間前記クライアントデバイスにアクセスしていないと判定したことにさらに応じたものである、請求項13に記載の方法。
1つまたは複数のプロセッサによって実施される方法であって、
クライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの第1の話された発話をキャプチャする第1のオーディオデータを受け取るステップと、
1つまたは複数のホットワードが前記第1のオーディオデータに存在する確率を示す第1の予測された出力を生成するために、機械学習モデルを使用して前記第1のオーディオデータを処理するステップと、
前記第1の予測された出力が閾値を満たさないと判定するステップと、
前記第1の予測された出力が前記閾値を満たさないとの判定に応じて、前記閾値に第1の調整を行うステップと、
前記第1の調整を行った後、
前記クライアントデバイスの前記1つまたは複数のマイクロフォンを介して、前記ユーザの第2の話された発話をキャプチャする第2のオーディオデータを受け取るステップと、
前記1つまたは複数のホットワードが前記第2のオーディオデータに存在する確率を示す第2の予測された出力を生成するために、前記機械学習モデルを使用して前記第2のオーディオデータを処理するステップと、
前記第2の予測された出力が前記第1の調整に従って調整される前記閾値を満たさないと判定するステップと、
前記第2の予測された出力が前記第1の調整に従って調整される前記閾値を満たさないとの判定に応じて、前記閾値に第2の調整を行うステップと
を含む、方法。
前記閾値に前記第1の調整を行う前記ステップが、前記閾値を下げるステップを含み、前記ユーザから、前記第1の話された発話がホットワードを含むという指示を受け取ったことにさらに応じたものであり、
前記閾値に前記第2の調整を行う前記ステップが、前記閾値をさらに下げるステップを含み、前記ユーザから、前記第2の話された発話が前記ホットワードを含むという指示を受け取ったことにさらに応じたものである、請求項17に記載の方法。
前記クライアントデバイスの前記1つまたは複数のマイクロフォンを介して、前記ユーザの第3の話された発話をキャプチャする第3のオーディオデータを受け取るステップと、
前記1つまたは複数のホットワードが前記第3のオーディオデータに存在する確率を示す第3の予測された出力を生成するために、前記機械学習モデルを使用して前記第3のオーディオデータを処理するステップと、
前記第3の予測された出力が前記第1の調整および前記第2の調整に従って調整される前記閾値を満たすと判定するステップと、
前記第3の予測された出力が前記第1の調整および前記第2の調整に従って調整される前記閾値を満たすとの判定に応じて、前記閾値に第3の調整を行うステップとをさらに含む、請求項18に記載の方法。
前記閾値に前記第3の調整を行う前記ステップが、前記閾値を上げるステップを含み、前記ユーザから、前記第3の話された発話が前記ホットワードを含まないという指示を受け取ったことにさらに応じたものである、請求項19に記載の方法。
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から20のいずれか一項に記載の方法を実施させる命令を含むコンピュータプログラム製品。
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から20のいずれか一項に記載の方法を実施させる命令を含むコンピュータ可読記憶媒体。
請求項1から20のいずれか一項に記載の方法を実施するための1つまたは複数のプロセッサを含むクライアントデバイス。
プロセッサ、コンピュータ可読メモリ、1つまたは複数のコンピュータ可読記憶媒体、および前記1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されるプログラム命令を含み、前記プログラム命令が請求項1から20のいずれか一項に記載の方法を実施するように実行可能であるシステム。
JP2022564432A 2020-09-03 2020-12-15 ホットワード/キーワード検出のためのユーザ仲介 Pending JP2023530048A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/011,612 US11521604B2 (en) 2020-09-03 2020-09-03 User mediation for hotword/keyword detection
US17/011,612 2020-09-03
PCT/US2020/065053 WO2022050973A1 (en) 2020-09-03 2020-12-15 User mediation for hotword/keyword detection

Publications (1)

Publication Number Publication Date
JP2023530048A true JP2023530048A (ja) 2023-07-13

Family

ID=74186828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022564432A Pending JP2023530048A (ja) 2020-09-03 2020-12-15 ホットワード/キーワード検出のためのユーザ仲介

Country Status (7)

Country Link
US (1) US11521604B2 (ja)
EP (1) EP4118644A1 (ja)
JP (1) JP2023530048A (ja)
KR (1) KR20220166848A (ja)
CN (1) CN115552515A (ja)
AU (2) AU2020466345B2 (ja)
WO (1) WO2022050973A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114651228A (zh) * 2019-11-08 2022-06-21 谷歌有限责任公司 使用自动化助理功能的校正来训练设备上的机器学习模型
US11948569B2 (en) * 2021-07-05 2024-04-02 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
US11770268B2 (en) * 2022-02-14 2023-09-26 Intel Corporation Enhanced notifications for online collaboration applications
US20230395071A1 (en) * 2022-06-01 2023-12-07 Google Llc Biasing speech processing based on audibly rendered content, including dynamically adapting over duration of rendering
WO2024035424A1 (en) * 2022-08-08 2024-02-15 Google Llc Dynamically determining whether to perform candidate automated assistant action determined from spoken utterance

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7027842B2 (en) * 2002-09-24 2006-04-11 Bellsouth Intellectual Property Corporation Apparatus and method for providing hands-free operation of a device
KR100556365B1 (ko) 2003-07-07 2006-03-03 엘지전자 주식회사 음성 인식장치 및 방법
US9536528B2 (en) * 2012-07-03 2017-01-03 Google Inc. Determining hotword suitability
US9384738B2 (en) 2014-06-24 2016-07-05 Google Inc. Dynamic threshold for speaker verification
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US11367441B2 (en) * 2018-11-01 2022-06-21 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11232788B2 (en) 2018-12-10 2022-01-25 Amazon Technologies, Inc. Wakeword detection
WO2021074459A1 (es) * 2019-10-16 2021-04-22 Sigma Technologies, S.L. Método y sistema para entrenar un chatbot usando conversaciones dentro de un dominio

Also Published As

Publication number Publication date
US20230101572A1 (en) 2023-03-30
AU2024200652A1 (en) 2024-03-28
US11521604B2 (en) 2022-12-06
WO2022050973A1 (en) 2022-03-10
AU2020466345B2 (en) 2023-11-02
EP4118644A1 (en) 2023-01-18
CN115552515A (zh) 2022-12-30
US20220068268A1 (en) 2022-03-03
AU2020466345A1 (en) 2022-11-03
KR20220166848A (ko) 2022-12-19

Similar Documents

Publication Publication Date Title
JP2023530048A (ja) ホットワード/キーワード検出のためのユーザ仲介
US12014739B2 (en) Using corrections, of automated assistant functions, for training of on-device machine learning models
US11972766B2 (en) Detecting and suppressing commands in media that may trigger another automated assistant
AU2020472583B2 (en) Detecting and handling failures in automated voice assistants
US20240055002A1 (en) Detecting near matches to a hotword or phrase
CN115668363A (zh) 基于同时热词触发的跨设备数据同步
US12027160B2 (en) User mediation for hotword/keyword detection
US20240233735A1 (en) Detecting and suppressing commands in media that may trigger another automated assistant

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109