(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-11
(54)【発明の名称】アシスタントコマンドの文脈的抑制
(51)【国際特許分類】
G10L 15/28 20130101AFI20240304BHJP
G10L 15/10 20060101ALI20240304BHJP
G10L 15/24 20130101ALI20240304BHJP
【FI】
G10L15/28 230K
G10L15/10 200W
G10L15/10 500Z
G10L15/24 Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023543426
(86)(22)【出願日】2021-12-14
(85)【翻訳文提出日】2023-09-21
(86)【国際出願番号】 US2021063359
(87)【国際公開番号】W WO2022245397
(87)【国際公開日】2022-11-24
(32)【優先日】2021-05-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ヴィクター・カルブネ
(72)【発明者】
【氏名】マシュー・シャリフィ
(72)【発明者】
【氏名】オンドレイ・スコペク
(72)【発明者】
【氏名】ジャスティン・ル
(72)【発明者】
【氏名】ダニエル・ヴァルカルセ
(72)【発明者】
【氏名】ケヴィン・キルガー
(72)【発明者】
【氏名】モハメド・ハッサン・ロム
(72)【発明者】
【氏名】ニコロ・デルコール
(72)【発明者】
【氏名】マイケル・ゴリコフ
(57)【要約】
いくつかの実装形態は、ウォームワードモデルを使用して、アシスタントコマンドに関連付けられた特定のワードおよび/またはフレーズ(例えば、ウォームワード)に対応するオーディオデータの部分を決定するためにオーディオデータのストリームを処理し、自動音声認識(ASR)モデルを使用して、ASR出力を生成するために、(例えば、ウォームワードに先行する)オーディオデータのプリアンブル部分および/または(例えば、ウォームワードに続く)オーディオデータのポストアンブル部分)を処理し、ASR出力を処理することに基づいて、アシスタントコマンドが実行されることをユーザが意図していたかどうかを判定する。
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、前記方法が、
ウォームワードモデルを使用して、1つまたは複数の特定のワードまたはフレーズの発生を監視するためにオーディオデータのストリームを処理するステップであって、前記オーディオデータのストリームが、ユーザのクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、前記1つまたは複数の特定のワードまたはフレーズの各々が、アシスタントコマンドに関連付けられる、ステップと、
前記オーディオデータの一部が前記特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、
自動音声認識(ASR)モデルを使用して、ASR出力を生成するために前記オーディオデータのプリアンブル部分および/または前記オーディオデータのポストアンブル部分を処理するステップであって、
前記オーディオデータの前記プリアンブル部分が、前記1つまたは複数の特定のワードまたはフレーズに対応する前記オーディオデータの前記一部に先行し、
前記オーディオデータの前記ポストアンブル部分が、前記1つまたは複数の特定のワードまたはフレーズに対応する前記オーディオデータの前記一部に続く、
ステップと、
前記ASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが前記アシスタントコマンドの実行を引き起こすことを前記ユーザが意図していたかどうかを判定するステップと、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していなかったと判定したことに応答して、
自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させることを控えるステップと、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたと判定したことに応答して、
前記自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップと
を含む、方法。
【請求項2】
ウォームワードアクティブ化イベントの発生を検出するステップと、
前記ウォームワードアクティブ化イベントの前記発生を検出したことに応答して、前記ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップと
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズの前記発生を監視するために前記ウォームワードモデルを使用して前記オーディオデータのストリームを処理するステップが、前記ウォームワードモデルを利用する前記1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップに応答する、
請求項1に記載の方法。
【請求項3】
前記ウォームワードアクティブ化イベントが、前記クライアントデバイスにおいて受信される通話、前記クライアントデバイスにおいて受信されるテキストメッセージ、前記クライアントデバイスにおいて受信される電子メール、前記クライアントデバイスにおいて鳴るアラーム、前記クライアントデバイスにおいて鳴るタイマ、前記クライアントデバイスもしくは前記クライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、前記クライアントデバイスにおいて受信される通知、前記クライアントデバイスの場所、または前記クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーションのうちの1つまたは複数を含む、請求項2に記載の方法。
【請求項4】
前記ASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記1つまたは複数の特定のワードまたはフレーズに関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、
自然言語理解(NLU)モデルを使用して、NLU出力を生成するために前記ASR出力を処理するステップであって、前記ASR出力が、前記オーディオデータの前記プリアンブル部分に基づくが、前記オーディオデータの前記ポストアンブル部分に基づかずに生成される、ステップと、
前記NLU出力に基づいて、前記1つまたは複数の特定のワードまたはフレーズが前記アシスタントコマンドの実行を引き起こすことを前記ユーザが意図していたかどうかを判定するステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するのに、前記NLU出力が不十分であると判定したことに応答して、
前記ASRモデルを使用して、追加のASR出力を生成するために前記オーディオデータの前記ポストアンブル部分を処理するステップと、
前記追加のASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップと
をさらに含む、請求項4に記載の方法。
【請求項6】
前記ASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、
自然言語理解(NLU)モデルを使用して、NLU出力を生成するために前記ASR出力を処理するステップであって、前記ASR出力が、前記オーディオデータの前記プリアンブル部分と前記オーディオデータの前記ポストアンブル部分との両方に基づいて生成される、ステップと、
前記NLU出力に基づいて、前記1つまたは複数の特定のワードまたはフレーズが前記アシスタントコマンドの実行を引き起こすことを前記ユーザが意図していたかどうかを判定するステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項7】
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するのに、前記NLU出力が不十分であると判定したことに応答して、
前記ASRモデルを使用して、追加のASR出力を生成するために前記オーディオデータの追加のポストアンブル部分を処理するステップであって、前記オーディオデータの前記追加のポストアンブル部分が、前記オーディオデータの前記ポストアンブル部分に続く、ステップと、
前記追加のASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップと
をさらに含む、請求項6に記載の方法。
【請求項8】
エンドポインティングモデルを使用して、前記オーディオデータのストリーム内に捕捉され、前記1つまたは複数の特定のワードまたはフレーズを含む口頭発話に対する複数のタイムスタンプを生成するために前記オーディオデータのストリームを処理するステップ
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記複数のタイムスタンプが、少なくとも、前記ユーザが前記口頭発話を提供し始めた第1の時間に関連付けられた第1のタイムスタンプと、前記ユーザが前記口頭発話内に含まれる前記1つまたは複数の特定のワードまたはフレーズを提供し始めた前記第1の時間に続く第2の時間に関連付けられた第2のタイムスタンプと、前記ユーザが前記口頭発話内に含まれる前記1つまたは複数の特定のワードまたはフレーズを提供し終えた前記第2の時間に続く第3の時間に関連付けられた第3のタイムスタンプと、前記ユーザが前記口頭発話を提供し終えた前記第3の時間に続く第4の時間に関連付けられた第4のタイムスタンプとを含む、請求項8に記載の方法。
【請求項10】
前記オーディオデータの前記プリアンブル部分が、前記第1のタイムスタンプと前記第2のタイムスタンプとの間の前記口頭発話に対応する任意のオーディオデータを含む、請求項9に記載の方法。
【請求項11】
前記オーディオデータの前記ポストアンブル部分が、前記第3のタイムスタンプと前記第4のタイムスタンプとの間の前記口頭発話に対応する任意のオーディオデータを含む、請求項9または10に記載の方法。
【請求項12】
前記口頭発話が前記特定のワードまたはフレーズのうちの1つまたは複数を含むと判定したことに応答して、前記ASRモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップ
をさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記ASRモデルを使用して、前記オーディオデータの前記プリアンブル部分および/または前記オーディオデータの前記ポストアンブル部分とともに、前記ASR出力を生成するために、前記1つまたは複数の特定のワードまたはフレーズに対応する前記オーディオデータの前記部分を処理するステップ
をさらに含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
音声アクティビティ検出(VAD)モデルを使用して、前記オーディオデータの前記部分が前記特定のワードもしくはフレーズのうちの1つもしくは複数に対応する前、および/または前記オーディオデータの前記部分が前記特定のワードもしくはフレーズのうちの1つもしくは複数に対応した後の、追加の音声アクティビティの発生を監視するために前記オーディオデータのストリームを処理するステップと、
前記追加の音声アクティビティの前記発生を検出したことに応答して、
前記ASRモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップと
をさらに含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
前記追加の音声アクティビティの前記発生を検出しなかったことに応答して、
前記自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップ
をさらに含む、請求項14に記載の方法。
【請求項16】
音響モデルを使用して、前記口頭発話の1つまたは複数の韻律特性を決定するために前記オーディオデータを処理するステップ
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、前記口頭発話の前記1つまたは複数の韻律特性にさらに基づく、請求項1から15のいずれか一項に記載の方法。
【請求項17】
前記クライアントデバイスの1つまたは複数のセンサから、センサデータのインスタンスを受信するステップ
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、前記センサデータの前記インスタンスにさらに基づく、請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記センサデータのインスタンスが、前記クライアントデバイスの加速度計によって生成された加速度計データ、前記クライアントデバイスの1つまたは複数のカメラ構成要素によって生成された画像データ、前記クライアントデバイスの1つまたは複数の動きセンサによって生成された動きデータのうちの1つまたは複数を含む、請求項17に記載の方法。
【請求項19】
前記クライアントデバイスのオーディオバッファから前記オーディオデータの前記プリアンブル部分を取得するステップ、および/または
前記オーディオデータのストリームから前記オーディオデータの前記ポストアンブル部分を取得するステップ
をさらに含む、請求項1から18のいずれか一項に記載の方法。
【請求項20】
1つまたは複数のプロセッサによって実装される方法であって、前記方法が、
ウォームワードモデルを使用して、1つまたは複数の特定のワードまたはフレーズの発生を監視するためにオーディオデータのストリームを処理するステップであって、前記オーディオデータのストリームが、ユーザのクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、前記1つまたは複数の特定のワードまたはフレーズの各々が、アシスタントコマンドに関連付けられる、ステップと、
前記オーディオデータの部分が前記特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、および前記オーディオデータに対応する口頭発話を提供した前記ユーザの身元を検証すると判定したことに応答して、
話者識別(SID)モデルを使用して、前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であるかどうかを判定するために前記オーディオデータを処理するステップと、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であると判定したことに応答して、および前記口頭発話を提供した前記識別されたユーザが前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを許可されていると判定したことに応答して、
自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップと、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが不十分であると判定したことに応答して、
前記口頭発話を提供した前記ユーザの前記身元の追加の検証を要求するプロンプトを生成するステップと、
前記クライアントデバイスにおける提示のために前記プロンプトを提供させるステップと
を含む、方法。
【請求項21】
ウォームワードアクティブ化イベントの発生を検出するステップと、
前記ウォームワードアクティブ化イベントの前記発生を検出したことに応答して、前記ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップと
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズの前記発生を監視するために前記ウォームワードモデルを使用して前記オーディオデータのストリームを処理するステップが、前記ウォームワードモデルを利用する前記1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップに応答する、請求項20に記載の方法。
【請求項22】
前記ウォームワードアクティブ化イベントが、前記クライアントデバイスにおいて受信される通話、前記クライアントデバイスにおいて受信されるテキストメッセージ、前記クライアントデバイスにおいて受信される電子メール、前記クライアントデバイスにおいて鳴るアラーム、前記クライアントデバイスにおいて鳴るタイマ、前記クライアントデバイスもしくは前記クライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、前記クライアントデバイスにおいて受信される通知、前記クライアントデバイスの場所、または前記クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーションのうちの1つまたは複数を含む、請求項21に記載の方法。
【請求項23】
前記オーディオデータの前記部分が前記特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、および前記オーディオデータに対応する前記口頭発話を提供した前記ユーザの前記身元を検証しないと判定したことに応答して、
自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップ
をさらに含む、請求項20から22のいずれか一項に記載の方法。
【請求項24】
前記口頭発話を提供した前記ユーザの前記身元を識別するのに前記オーディオデータが十分であるかどうかを判定するために前記オーディオデータを処理するステップが、
前記SIDモデルとしてテキスト依存(TD)SIDモデルを使用して、TD話者埋め込みを生成するために前記特定のワードまたはフレーズのうちの1つまたは複数に対応する前記オーディオデータの前記部分を処理するステップ
を含み、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であるかどうかを判定するステップが、
埋め込み空間において、前記TD話者埋め込みを、前記クライアントデバイスにおいてローカルに記憶された1つまたは複数の記憶されたTD話者埋め込みと比較するステップと、
前記TD話者埋め込みを前記1つまたは複数の記憶されたTD話者埋め込みと比較することに基づいて、前記口頭発話を提供した前記ユーザの前記身元を検証するのに前記オーディオデータの前記部分が十分であるかどうかを判定するステップと
を含む、請求項20から23のいずれか一項に記載の方法。
【請求項25】
前記TD SIDモデルを使用して前記TD話者埋め込みを生成するために、前記特定のワードまたはフレーズのうちの1つまたは複数に対応する前記オーディオデータの前記部分を処理するステップが、
前記記憶されたTD話者埋め込みのうちの1つまたは複数が前記特定のワードまたはフレーズに対応するかどうかを判定するステップ
を含み、
前記TD SIDモデルを使用して前記TD話者埋め込みを生成するために前記特定のワードまたはフレーズのうちの1つまたは複数に対応する前記オーディオデータの前記部分を処理するステップが、前記記憶されたTD話者埋め込みのうちの1つまたは複数が前記特定のワードまたはフレーズに対応すると判定したことに応答する、請求項24に記載の方法。
【請求項26】
前記口頭発話を提供した前記ユーザの前記身元の前記追加の検証を要求する前記プロンプトを生成するステップが、
前記ユーザが追加の口頭発話を提供することを要求するプロンプトを生成するステップであって、前記追加の口頭発話が、前記口頭発話を提供した前記ユーザの前記身元を検証する際に利用するためのTI SIDを実行するのに十分な長さのものである、ステップ
を含む、請求項24に記載の方法。
【請求項27】
前記口頭発話がTI SIDを実行するのに十分な長さであると判定したことに応答して、
前記SIDモデルとしてTI SIDモデルを使用して、TI話者埋め込みを生成するために前記オーディオデータのストリームを処理するステップ
をさらに含み、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であるかどうかを判定するステップが、
埋め込み空間において、前記TI話者埋め込みを、前記クライアントデバイスにおいてローカルに記憶された1つまたは複数の記憶されたTI話者埋め込みと比較するステップと、
前記TI話者埋め込みを前記1つまたは複数の記憶されたTI話者埋め込みと比較することに基づいて、前記口頭発話を提供した前記ユーザの前記身元を検証するのに前記オーディオデータの前記ストリームが十分であるかどうかを判定するステップと
を含む、請求項24に記載の方法。
【請求項28】
前記口頭発話を提供した前記ユーザの前記身元の前記追加の検証を要求する前記プロンプトを生成するステップが、
前記ユーザの前記身元を検証するために追加の生体情報を要求する前記プロンプトを生成するステップであって、前記ユーザの前記身元を検証するために前記追加の生体情報を要求することが、指紋識別または顔紋指紋識別のうちの1つまたは複数を要求することを含む、ステップ
を含む、請求項27に記載の方法。
【請求項29】
前記クライアントデバイスにおける提示のために前記プロンプトが提供されたことに応答して、追加のユーザ入力を受信するステップと、
前記追加のユーザ入力を受信したことに応答して、
前記口頭発話を提供した前記ユーザを識別するのに前記追加のユーザ入力が十分であるかどうかを判定するステップと
をさらに含む、請求項20から28のいずれか一項に記載の方法。
【請求項30】
前記口頭発話を提供した前記ユーザを識別するのに前記追加のユーザ入力が十分であると判定したことに応答して、
前記自動アシスタントに、前記対応するアシスタントコマンドを実行させるステップ
をさらに含む、請求項29に記載の方法。
【請求項31】
少なくとも1つのプロセッサと、
命令を記憶するメモリであって、前記命令は、実行されると、前記少なくとも1つのプロセッサに、請求項1から30のいずれか一項に対応する動作を実行させる、メモリと
を備える、システム。
【請求項32】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、実行されると、少なくとも1つのプロセッサに、請求項1から30のいずれか一項に対応する動作を実行させる、非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、アシスタントコマンドの文脈的抑制に関する。
【背景技術】
【0002】
人間は、本明細書では「自動アシスタント」と呼ばれる(「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「パーソナル音声アシスタント」、「会話型エージェント」などとも呼ばれる)対話型ソフトウェアアプリケーションを用いて人間対コンピュータのダイアログに参加し得る。例えば、人間(自動アシスタントと対話する場合、「ユーザ」と呼ばれる場合がある)は、場合によってはテキストに変換され、次いで処理され得る口頭の自然言語入力(すなわち、口頭発話)を自動アシスタントに提供し得、および/またはテキストの(例えば、タイプされた)自然言語入力を提供することによって提供し得る。自動アシスタントは、一般に、応答のユーザインターフェース出力(例えば、可聴および/または視覚的ユーザインターフェース出力)を提供することによって、スマートデバイスを制御することによって、および/または他のアクションを実行することによって、口頭発話に応答する。
【0003】
自動アシスタントは、典型的には、口頭発話を解釈して応答する際に、構成要素のパイプラインに依存する。例えば、自動音声認識(ASR)エンジンは、口頭発話の転写(すなわち、用語および/または他のトークンのシーケンス)などのASR出力を生成するために、ユーザの口頭発話に対応するオーディオデータを処理することができる。さらに、自然言語理解(NLU)エンジンは、口頭発話を提供する際のユーザの意図、およびオプションで意図に関連付けられたパラメータのためのスロット値などのNLU出力を生成するためにASR出力を処理することができる。さらに、NLU出力を処理し、口頭発話に対する応答コンテンツを取得するための構造化要求などのフルフィルメント出力を生成するために、フルフィルメントエンジンが使用され得る。
【0004】
場合によっては、構成要素のこのパイプラインが、バイパスされる可能性がある。例えば、いくつかの機械学習(ML)モデル(「ウォームワードモデル」とも呼ばれる)は、フルフィルメント出力に直接マッピングされる特定のワードおよび/またはフレーズ(「ウォームワード」とも呼ばれる)を検出するようにトレーニングされ得る。例えば、ユーザが音楽を聴いており、「音量を上げて」という口頭発話を提供した場合、これらのMLモデルのうちの1つまたは複数は、オーディオデータを処理し、いかなるASR出力および/またはNLU出力も生成することなく、音楽を再生しているデバイスの音量を上げさせる構造化要求を生成することができる。しかしながら、これらのウォームワードは、典型的には、日常会話において発生し得る一般的なワードおよび/またはフレーズである。結果として、これらのウォームワードに関連付けられたアシスタントコマンドは、ユーザによって意図せずにトリガされる場合があり、それによって、計算リソースを浪費する。さらに、これらの場合のうちのいくつかにおいて、ユーザは、これらのアシスタントコマンドを取り消さなければならない場合があり、それによって、さらなる計算リソースを浪費する。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書において開示される実装形態は、文脈的オーディオデータ、ならびに/または特定のワードおよび/もしくはフレーズのうちの1つもしくは複数を含む口頭発話を提供したユーザの身元に基づいて、1つまたは複数の特定のワードおよび/またはフレーズ(例えば、ウォームワード)に関連付けられたアシスタントコマンドの実行(遂行)を文脈的に抑制することに向けられている。いくつかの実装形態は、1つまたは複数のウォームワードモデルを使用して、アシスタントコマンドに関連付けられた特定のワードおよび/またはフレーズに対応するオーディオデータの部分を決定するために、オーディオデータのストリームを処理する。これらの実装形態のうちのいくつかは、自動音声認識(ASR)モデルを使用して、ASR出力を生成するために、オーディオデータのプリアンブル部分(例えば、特定のワードおよび/またはフレーズのうちの1つまたは複数に対応するオーディオデータの部分に先行するオーディオデータの部分)および/またはオーディオデータのポストアンブル部分(例えば、特定のワードおよび/またはフレーズのうちの1つまたは複数に対応するオーディオデータの部分に続くオーディオデータの部分)を処理する。さらに、これらの実装形態のうちのいくつかは、ASR出力を処理することに基づいて、オーディオデータ内に捕捉された口頭発話を提供したユーザが特定のワードまたはフレーズのうちの1つまたは複数に関連付けられるアシスタントコマンドが実行されることを意図していたかどうかを決定する。追加のまたは代替の実装形態は、オーディオデータのストリーム内に捕捉された口頭発話を提供したユーザを識別するのにオーディオデータが十分であるかどうかを決定するために、または口頭発話を提供したユーザがアシスタントコマンドの実行を引き起こす権限を与えられているかどうかを決定するために、話者識別(SID)モデルを使用してオーディオデータのストリームを処理することができる。
【0006】
例えば、ユーザのクライアントデバイスにおいて通話が受信されたと仮定する。さらに、クライアントデバイスのユーザが、クライアントデバイスにおいて通話が受信されたことに応答して「応答して(answer)」という口頭発話を提供したと仮定する。この例において、「応答して」が、クライアントデバイス内に少なくとも部分的に実装された自動アシスタントに通話に応答させるアシスタントコマンドに関連付けられたウォームワードであると仮定すると、自動アシスタントは、1つまたは複数のウォームワードモデルを使用して「応答して」というウォームワードの発生を検出したことに基づいて、ユーザの代わりに通話に応答することができる。対照的に、クライアントデバイスにおいて通話が受信されたことに応答して、クライアントデバイスのユーザが代わりに「それには応答したくない(I don't want to answer that)」という口頭発話を提供したと仮定する。この例において、自動アシスタントは、自動アシスタントが、ウォームワードモデルのうちの1つまたは複数を使用して「応答して」というウォームワードの発生を検出したにもかかわらず、ユーザの代わりに通話に応答すべきではないと決定するために、文脈的オーディオデータを処理することができる。
【0007】
いくつかの実装形態において、ウォームワードモデルのうちの1つまたは複数を利用する1つまたは複数の自動アシスタントの構成要素は、ウォームワードアクティブ化イベントの発生を検出したことに応答してアクティブ化され得る。ウォームワードアクティブ化イベントは、例えば、クライアントデバイスにおいて受信される通話、クライアントデバイスにおいて受信されるテキストメッセージ、クライアントデバイスにおいて受信される電子メール、クライアントデバイスにおいて鳴るアラームもしくはタイマ、クライアントデバイスもしくはクライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、クライアントデバイスにおいて受信される通知、クライアントデバイスの場所、クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーション、および/またはクライアントデバイスもしくはクライアントデバイスと通信する追加のクライアントデバイスを制御させるために、ユーザが口頭発話を提供することができる、クライアントデバイスに関連付けられた他のイベントを含むことができる。特に、これらのホットワードアクティブ化イベントのうちのいくつかは、個別のイベント(例えば、クライアントデバイスにおいて受信される通知、クライアントデバイスにおいて受信されるテキストメッセージ、クライアントデバイスにおいて受信される電子メール、クライアントデバイスにおいて鳴るアラームまたはタイマなど)であり、一方、これらのウォームワードアクティブ化イベントのうちの他のいくつかは、連続的なイベント(例えば、クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーション)である。さらに、これらのウォームワードアクティブ化イベントは、相互に排他的ではないことが留意されるべきである。別の言い方をすれば、1つまたは複数の自動アシスタント構成要素が複数の異種のウォームワードアクティブ化イベントに基づいてウォームワードをアクティブに監視しているように、所与の時点において複数のウォームワードアクティブ化イベントが検出され得る。
【0008】
本明細書で説明するウォームワードモデルは、検出されると、自動アシスタントに特定のワードおよび/またはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させる1つまたは複数の特定のワードおよび/またはフレーズ(例えば、ウォームワード)を検出するようにトレーニングされた複数の異種のウォームワードモデル(例えば、オーディオキーワード分類モデル)を含むことができる。いくつかの実装形態において、所与のウォームワードモデルは、所与のウォームワードアクティブ化イベントに関連付けられたワードおよび/またはフレーズの特定のサブセットを検出するようにトレーニングされ得る。例えば、クライアントデバイスまたはクライアントデバイスと通信する別のクライアントデバイス(例えば、スマートスピーカ)において音楽が再生されていると仮定する。この例において、所与のウォームワードモデルは、音楽を一時停止させ得る「一時停止(pause)」ウォームワード、音楽を一時停止した後に再開させ得る「再開(resume)」ウォームワード、音楽の音量を上げさせ得る「音量を上げる(volume up)」ウォームワード、音楽の音量を下げさせ得る「音量を下げる(volume down)」ウォームワード、音楽を次の曲にスキップさせ得る「次の(next)」ウォームワード、ならびに音楽に関連付けられた他の特定のワードおよび/またはフレーズに関するものなどの、音楽を制御することに関連付けられたアシスタントコマンドを実行させる特定のワードおよび/またはフレーズのサブセットを検出するようにトレーニングされ得る。したがって、この例において、音楽がクライアントデバイスまたはクライアントデバイスと通信する別のクライアントデバイスにおいて再生されていると判定したことに応答して、所与のウォームワードモデルを利用する現在休止中のアシスタント機能のうちの1つまたは複数がアクティブ化され得る。
【0009】
追加のまたは代替の実装形態において、所与のウォームワードアクティブ化イベントに関連付けられたワードおよび/またはフレーズのサブセット検出するように複数のウォームワードモデルがトレーニングされ得る。上記の例を続けると、第1のウォームワードモデルは、「一時停止(pause)」のウォームワードおよび「再開(resume)」のウォームワードなどの1つまたは複数の第1の特定のワードおよび/またはフレーズを検出するようにトレーニングされ得、第2のウォームワードモデルは、「音量を上げる(volume up)」のウォームワードおよび「音量を下げる(volume down)」のウォームワードなどの1つまたは複数の第2の特定のワードおよび/またはフレーズを検出するようにトレーニングされ得、第3のウォームワードモデルは、「次の(next)」のウォームワード、ならびに音楽ウォームワードアクティブ化イベントに関連付けられた他の特定のワードおよび/またはフレーズに関するものなどの1つまたは複数の第3の特定のワードおよび/またはフレーズを検出するようにトレーニングされ得る。したがって、この例において、少なくとも第1のウォームワードモデル、第2のウォームワードモデル、および第3のウォームワードモデルを利用する現在休止中のアシスタント機能のうちの1つまたは複数が、クライアントデバイスまたはクライアントデバイスと通信する別のクライアントデバイスにおいて音楽が再生されていると判定したことに応答してアクティブ化され得る。
【0010】
いくつかの実装形態において、特定のワードおよび/またはフレーズのうちの1つまたは複数がオーディオデータのストリーム内で検出されたことに応答して、オーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分は、口頭発話を提供したユーザが、実際に、特定のワードおよび/またはフレーズのうちの検出された1つまたは複数に関連付けられたアシスタントコマンドが実行されることを意図していたかどうかを判定するために処理され得る。例えば、ユーザのクライアントデバイスにおいて通話が受信されたと再び仮定し、クライアントデバイスにおいて通話が受信されたことに応答してクライアントデバイスのユーザが「それには応答したくない(I don't want to answer that)」という口頭発話を提供したと仮定する。この例において、オーディオデータのプリアンブル部分(例えば、「したくない(I don't want to)」に応答する)」は、クライアントデバイスのオーディオバッファから取得され得、ASR出力を生成するために、ASRモデルを使用して処理され得る。さらに、ASR出力は、NLU出力を生成するためにNLUモデルを使用して処理され得る。この例において、ASR出力および/またはNLU出力は、ユーザが、ユーザの代わりに自動アシスタントに通話に応答させる「応答する」を意図していないことを示す。それらの実装形態のいくつかのバージョンにおいて、1つまたは複数の特定のワードおよび/またはフレーズに対応する(例えば、「応答する」に対応する)オーディオデータの部分は、追加的または代替的に、ASR出力とNLU出力とを生成するためにオーディオデータのプリアンブル部分ともに処理され得る。それらの実装形態のいくつかのバージョンにおいて、オーディオデータのポストアンブル部分(例えば、「それに(that)」に対応する)は、追加的または代替的に、ASR出力とNLU出力とを生成するために、オーディオデータのプリアンブル部分、ならびに/または特定のワードおよび/もしくはフレーズのうちの1つまたは複数に対応するオーディオデータの部分とともに処理され得る。
【0011】
それらの実装形態のいくつかのバージョンにおいて、特定のワードおよび/またはフレーズのうちの1つまたは複数に加えて追加の音声アクティビティを検出したことに応答して、ASRモデルおよび/またはNLUモデルを利用する1つまたは複数の現在休止中の自動アシスタント構成要素がアクティブ化され得る。例えば、オーディオデータのストリームは、任意の追加の音声アクティビティが存在するかどうかを判定するために、音声アクティビティ検出(VAD)モデルを使用して処理され得る。追加の音声アクティビティが検出された実装形態において、ASRモデルおよび/またはNLUモデルを利用する現在休止中の自動アシスタント構成要素のうちの1つまたは複数が、オーディオデータのプリアンブル部分、特定のワードおよび/もしくはフレーズのうちの1つもしくは複数に対応するオーディオデータの部分、ならびに/またはオーディオデータのポストアンブル部分を処理するためにアクティブ化され得る。追加の音声アクティビティが検出されない実装形態において、ASRモデルおよび/またはNLUモデルを利用する現在休止中の自動アシスタント構成要素のうちの1つまたは複数が、休止状態に保たれ得、特定のワードおよび/またはフレーズに関連付けられたアシスタントコマンドは、実行され得る。
【0012】
様々な実装形態において、口頭発話を提供したユーザの身元は、アシスタントコマンドの実行の前に検出されなければならない。例えば、特定のウォームワードアクティブ化イベント、特定のデバイス、および/または特定のソフトウェアアプリケーションに関連付けられたアシスタントコマンドは、ユーザの身元が検証されたことを必要とする場合がある。例えば、アシスタントコマンドが、自動アシスタントに電子通信(例えば、電話、テキストメッセージ、電子メール、ソーシャルメディアメッセージ、および/または他の電子通信)に応答させる実装形態において、口頭発話を提供したユーザは、自動アシスタントが電子通信に応答する前に検証される必要がある場合がある。また、例えば、アシスタントコマンドが、自動アシスタントに特定のスマートデバイス(例えば、スマートロック、スマートオーブン、スマートガレージドアなど)を制御させる実装形態において、口頭発話を提供したユーザは、自動アシスタントが特定のスマートデバイスを制御する前に検証される必要がある場合がある。しかしながら、いくつかのアシスタントコマンドは、アシスタントコマンドの実行の前にユーザの身元が検証されることを必要としない場合がある。例えば、アシスタントコマンドが、自動アシスタントにメディア(例えば、音楽、ビデオ、テレビ番組、および/または他のメディア)を制御させる実装形態において、発話を提供したユーザは、自動アシスタントが電子通信に応答する前に検証される必要がない場合がある。また、例えば、アシスタントコマンドが、自動アシスタントに他の特定のスマートデバイス(例えば、スマートライト、スマート時計など)を制御させる実装形態において、口頭発話を提供したユーザは、自動アシスタントが特定のスマートデバイスを制御する前に検証される必要がない場合がある。
【0013】
上述したように、オーディオデータのストリームは、口頭発話を提供したユーザの身元を検証するために、SIDモデルを使用して処理され得る。それらの実装形態のいくつかのバージョンにおいて、1つまたは複数の以前に生成されたテキスト依存(TD)話者埋め込みが、ユーザに関する特定のワードおよび/またはフレーズのうちの1つまたは複数についてクライアントデバイスにおいてアクセス可能であると仮定すると、特定のワードおよび/またはフレーズのうちの1つまたは複数に対応するオーディオデータの部分は、TD話者埋め込みを生成するためにTD SIDモデルを使用して処理され得る。生成されたTD話者埋め込みは、口頭発話が許可されたユーザからのものであるかどうかを判定するために、クライアントデバイスにおいてアクセス可能なユーザについて以前に生成されたTD話者埋め込みのうちの1つまたは複数と効果的に比較され得る。特に、TD SID内の1つまたは複数の特定のワードおよび/またはフレーズは、自動アシスタントを呼び出すように構成された1つまたは複数の呼び出しフレーズ(例えば、「ヘイ、アシスタント(Hey Assistant)」、「オーケー、アシスタント(OK Assistant)」、および/または「アシスタント(Assistant)」などのホットワードおよび/またはトリガワード)、または本明細書で説明する1つもしくは複数のウォームワードに制約され得る。
【0014】
それらの実装形態の追加のまたは代替のバージョンにおいて、1つまたは複数の以前に生成されたテキスト独立型(TI)話者埋め込みが、ユーザに関するクライアントデバイスにおいてアクセス可能であると仮定すると、オーディオデータのストリーム内の口頭発話に対応するオーディオデータは、TI話者埋め込みを生成するために、TI SIDモデルを使用して処理され得る。生成されたTI話者埋め込みは、口頭発話が許可されたユーザからのものであるかどうかを判定するために、クライアントデバイスにおいてアクセス可能なユーザに関する以前に生成されたTI話者埋め込みのうちの1つまたは複数と効果的に比較され得る。特に、TD SIDにおいて、TIの1つまたは複数の以前に生成されたTI話者埋め込みは、自動アシスタントを呼び出すように構成された1つまたは複数の呼び出しフレーズ(例えば、「ヘイ、アシスタント(Hey Assistant)」、「オーケー、アシスタント(OK Assistant)」、および/または「アシスタント(Assistant)」などのホットワードおよび/またはトリガワード)、または本明細書で説明する1つもしくは複数のウォームワードに制約され得る。
【0015】
したがって、これらの実装形態のいくつかのバージョンにおいて、発話がTI SIDを実行するのに十分な長さのものであるかどうかを判定するために、オーディオデータのストリーム内に捕捉された口頭発話の長さが、長さ閾値と比較され得る。口頭発話の長さがTI SIDを実行するのに十分である場合、口頭発話に対応するオーディオデータは、ユーザの身元を検証する試みにおいて、TI SIDモデルおよび/またはTD SIDモデルを使用して処理され得る。しかしながら、口頭発話の長さがTI SIDを実行するのに不十分な場合であっても、口頭発話に対応するオーディオデータは、ユーザの身元を検証する試みにおいて、TD SIDモデルを使用して依然として処理され得る。口頭発話の長さがTI SIDを実行するのに不十分である(および/またはTI SIDがユーザの身元を検証するのに不十分である)と仮定し、TD SIDがユーザの身元を検証するのに不十分であると仮定すると、発話例を含むプロンプトが、ユーザへの提示のために提供され得、発話例は、TI SIDを実行するのに十分な長さである(または十分に長い)か、または1つもしくは複数の以前に生成されたTD話者埋め込みが利用可能な特定の用語および/またはフレーズに対応する。追加的に、または代替的に、プロンプトは、アシスタントコマンドを実行させるために他の形態の生体識別(例えば、顔紋照合および/または指紋識別を提供することをユーザに要求することができる。
【0016】
本明細書で説明する技法を使用することによって、1つまたは複数の技術的利点が達成され得る。1つの非限定的な例として、本明細書で説明する技法は、自動アシスタントが、ウォームワードについて文脈的オーディオデータを処理することに基づいて、ユーザが、実際に、アシスタントコマンドの実行を引き起こすウォームワードの発生を意図していたかどうかを判定することを可能にする。結果として、ウォームワードの誤検出は、低減され得、それによって、自動アシスタントがアシスタントコマンドを実行させる際に1つまたは複数のネットワークを利用する場合に、クライアントデバイスにおける計算リソースおよび/またはネットワークリソースを節約する。さらに、クライアントデバイスのユーザが任意のアシスタントコマンドを修正または取り消すためのアクションを起こす必要がないので、ユーザ入力の量が低減され得、それによって、クライアントデバイスにおける計算リソースを節約する。さらに、本明細書で説明する様々な自動アシスタント機能は、本明細書で説明するように、必要になるまで休止状態のままでいることができ、それによって、クライアントデバイスにおける計算リソースを節約する。別の非限定的な例として、本明細書で説明する技法は、自動アシスタントが、SIDおよび/または他の技法を使用して、ウォームワードを含む口頭発話を提供するユーザの身元を検証することを可能にする。結果として、許可されたユーザのみが、特定のアシスタントコマンドを実行させることができ、それによって、クライアントデバイスのユーザに関連付けられたデータのデータセキュリティを向上させる。
【0017】
上記の説明は、本明細書において開示されるいくつかの実装形態のみの概要として提供される。それらの実装形態および他の実装形態について、本明細書でさらに詳細に説明する。
【0018】
前述の概念および本明細書でより詳細に説明する追加の概念のすべての組合せは、本明細書において開示される主題の一部であると想定されることが理解されるべきである。例えば、本開示の最後において現れる特許請求された主題のすべての組合せは、本明細書において開示される主題の一部であると想定される。
【図面の簡単な説明】
【0019】
【
図1】本開示の様々な態様を実証し、本明細書において開示される実装形態が実装され得る例示的な環境のブロック図である。
【
図2】様々な実装形態による、
図1の様々な構成要素を使用する本開示の様々な態様を実証する例示的なプロセスフローを示す図である。
【
図3】様々な実装形態による、文脈的オーディオデータに基づいてアシスタントコマンドを実行させるかどうかを決定する例示的な方法を示すフローチャートである。
【
図4A】様々な実装形態による、文脈的オーディオデータに基づいてアシスタントコマンドを実行させるかどうかを決定する様々な非限定的な例を示す図である。
【
図4B】様々な実装形態による、文脈的オーディオデータに基づいてアシスタントコマンドを実行させるかどうかを決定する様々な非限定的な例を示す図である。
【
図4C】様々な実装形態による、文脈的オーディオデータに基づいてアシスタントコマンドを実行させるかどうかを決定する様々な非限定的な例を示す図である。
【
図5】様々な実装形態による、話者識別に基づいてアシスタントコマンドを実行させるかどうかを決定する例示的な方法を示すフローチャートである。
【
図6A】様々な実装形態による、話者識別に基づいてアシスタントコマンドを実行させるかどうかを決定する様々な非限定的な例を示す図である。
【
図6B】様々な実装形態による、話者識別に基づいてアシスタントコマンドを実行させるかどうかを決定する様々な非限定的な例を示す図である。
【
図6C】様々な実装形態による、話者識別に基づいてアシスタントコマンドを実行させるかどうかを決定する様々な非限定的な例を示す図である。
【
図7】様々な実装形態によるコンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0020】
次に
図1を参照すると、本開示の様々な態様を実証し、本明細書において開示される実装形態が実装され得る例示的な環境のブロック図が示されている。例示的な環境は、クライアントデバイス110とウォームワードシステム180とを含む。いくつかの実装形態において、ウォームワードシステム180は、クライアントデバイス110においてローカルに実装され得る。追加のまたは代替の実装形態において、
図1に示すように、ウォームワードシステム180は、クライアントデバイス110からリモートに実装され得る。これらの実装形態において、クライアントデバイス110およびウォームワードシステム180は、1つまたは複数の有線またはワイヤレスのローカルエリアネットワーク(Wi-Fi LAN、メッシュネットワーク、Bluetooth、近距離無線通信などを含む「LAN」)またはワイドエリアネットワーク(インターネットを含む「WAN」)などの、1つまたは複数のネットワーク199を介して互いに通信可能に結合され得る。
【0021】
クライアントデバイス110は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、携帯電話、車両のコンピューティングデバイス(例えば、車載通信システム、車載娯楽システム、車載ナビゲーションシステム)、スタンドアローンインタラクティブスピーカ(オプションでディスプレイを有する)、スマートテレビなどのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想現実または拡張現実コンピューティングデバイス)のうちの1つまたは複数であり得る。追加のおよび/または代替のクライアントデバイスも提供され得る。
【0022】
クライアントデバイス110は、自動アシスタントクライアント114を実行することができる。自動アシスタントクライアント114のインスタンスは、クライアントデバイス110のオペレーティングシステムとは別の(例えば、オペレーティングシステムシステムの「上に」インストールされた)アプリケーションであり得、または代替的に、クライアントデバイス110のオペレーティングシステムによって直接実装され得る。自動アシスタントクライアント114は、クライアントデバイス110においてローカルに実装されたウォームワードシステム180と対話することができ、または
図1に示すようにネットワーク199のうちの1つもしくは複数を介してウォームワードシステム180と対話することができる。自動アシスタントクライアント114は(およびオプションで、他のリモートシステム(例えば、サーバ)との対話によって)、ユーザの視点から、ユーザが人間対コンピュータのダイアログにおいて関与し得る自動アシスタント115の論理的インスタンスであるように見えるものを形成し得る。自動アシスタント115のインスタンスが
図1に示されており、クライアントデバイス110の自動アシスタントクライアント114と、ウォームワードシステム180とを含む破線によって囲まれている。したがって、クライアントデバイス110上で実行される自動アシスタントクライアント114に関与するユーザが、事実上、自動アシスタント115のユーザ自身の論理インスタンス(または世帯もしくはユーザの他のグループの間で共有される自動アシスタント115の論理インスタンス)に関与し得ることが理解されるべきである。簡潔さまたは単純さのために、本明細書で使用される自動アシスタント115は、クライアントデバイス110上および/またはウォームワードシステム180を実装し得る1つもしくは複数のサーバ上で実行される自動アシスタントクライアント114を指す。
【0023】
様々な実装形態において、クライアントデバイス110は、1つまたは複数のユーザインターフェース入力デバイスを使用してクライアントデバイス110のユーザによって提供されるユーザ入力を検出するように構成されたユーザ入力エンジン111を含み得る。例えば、クライアントデバイス110は、クライアントデバイス110の環境内のユーザの口頭発話または他の音に対応するオーディオデータなどのオーディオデータを捕捉する1つまたは複数のマイクロフォンを備え得る。追加的に、または代替的に、クライアントデバイス110は、視覚構成要素のうちの1つまたは複数の視野内で検出された画像および/または動き(例えば、ジェスチャ)に対応する視覚データを捕捉するように構成された1つまたは複数の視覚構成要素を備え得る。追加的に、または代替的に、クライアントデバイス110は、クライアントデバイス110に向けられたタッチ入力に対応する信号を捕捉するように構成された1つまたは複数のタッチ感応構成要素(例えば、キーボードおよびマウス、スタイラス、タッチスクリーン、タッチパネル、1つまたは複数のハードウェアボタンなど)を備え得る。
【0024】
様々な実装形態において、クライアントデバイス110は、1つまたは複数のユーザインターフェース出力デバイスを使用してクライアントデバイス110のユーザに可聴および/または視覚的提示のためのコンテンツを提供するように構成されたレンダリングエンジン112を含み得る。例えば、クライアントデバイス110は、コンテンツがクライアントデバイス110を介してユーザへの可聴的提示のために提供されることを可能にする1つまたは複数のスピーカを備え得る。追加的に、または代替的に、クライアントデバイス110は、コンテンツがクライアントデバイス110を介してユーザへの視覚的提示のために提供されることを可能にするディスプレイまたはプロジェクタを備え得る。
【0025】
様々な実装形態において、クライアントデバイス110は、対応するユーザからの承認を得て、検出された存在、特に人間の存在を示す信号を提供するように構成された1つまたは複数の存在センサ113を含み得る。それらの実装形態のうちのいくつかにおいて、自動アシスタント115は、クライアントデバイス110における(またはクライアントデバイス110のユーザに関連付けられた別のコンピューティングデバイスにおける)ユーザの存在に少なくとも部分的に基づいて、口頭発話を満たすためにクライアントデバイス110(またはクライアントデバイス110のユーザに関連付けられた別のコンピューティングデバイス)を識別することができる。口頭発話は、クライアントデバイス110および/もしくはクライアントデバイス110のユーザに関連付けられた他のコンピューティングデバイスにおいて(例えば、レンダリングエンジン112を介して)応答内容をレンダリングすることによって、クライアントデバイス110および/もしくはクライアントデバイス110のユーザに関連付けられた他のコンピューティングデバイスを制御させることによって、ならびに/またはクライアントデバイス110および/もしくはクライアントデバイス110のユーザに関連付けられた他のコンピューティングデバイスに口頭発話を満たす任意の他のアクションを実行させることによって満たされ得る。本明細書で説明するように、自動アシスタント115は、ユーザが近くにいる場所、またはユーザが最近近くにいた場所に基づいてクライアントデバイス110(または他のコンピューティングデバイス)を決定する際に、存在センサ113に基づいて決定されたデータを活用し、クライアントデバイス110(またはそれらの他のコンピューティングデバイス)のみに、対応するコマンドを提供することができる。いくつかの追加のまたは代替の実装形態において、自動アシスタント115は、任意のユーザ(任意のユーザまたは特定のユーザ)が現在クライアントデバイス110(または他のコンピューティングデバイス)に近接しているかどうかを判定する際に、存在センサ113に基づいて決定されたデータを活用することができ、クライアントデバイス110(または他のコンピューティングデバイス)に近接するユーザに基づいて、クライアントデバイス110(または他のコンピューティングデバイス)へのおよび/またはクライアントデバイス110(または他のコンピューティングデバイス)からのデータの提供をオプションで抑制することができる。
【0026】
存在センサ113は、様々な形態であり得る。例えば、クライアントデバイス110は、ユーザの存在を検出するために、ユーザ入力エンジン111に関して上記で説明したユーザインターフェース入力構成要素のうちの1つまたは複数を利用することができる。追加的に、または代替的に、クライアントデバイス110は、視野内の物体から放射される赤外(「IR」)光を測定する受動型赤外線(「PIR」)センサなどの、他のタイプの光ベースの存在センサ113を備え得る。
【0027】
追加的に、または代替的に、いくつかの実装形態において、存在センサ113は、人間の存在またはデバイスの存在に関連する他の現象を検出するように構成され得る。例えば、いくつかの実装形態において、クライアントデバイス110は、例えば、ユーザによって携帯/動作される他のコンピューティングデバイス(例えば、モバイルデバイス、ウェアラブルコンピューティングデバイスなど)および/または他のコンピューティングデバイスによって放射される様々なタイプのワイヤレス信号(例えば、無線、超音波、電磁波などの波)を検出する存在センサ113を備え得る。例えば、クライアントデバイス110は、(例えば、超音波対応マイクロフォンなどの超音波/赤外線受信機を介して)他のコンピューティングデバイスによって検出され得る超音波または赤外波などの、人間には知覚できない波を放射するように構成され得る。
【0028】
追加的に、または代替的に、クライアントデバイス110は、ユーザによって携帯/動作される他のコンピューティングデバイス(例えば、モバイルデバイス、ウェアラブルコンピューティングデバイスなど)によって検出され、ユーザの特定の位置を決定するために使用され得る電波(例えば、Wi-Fi、Bluetooth、セルラなど)などの他のタイプの人間が知覚できない波を放射し得る。いくつかの実装形態において、例えば、クライアントデバイス110へのおよび/またはクライアントデバイス110からのGPS信号および/またはWi-Fi信号に基づいて、人の位置を検出するために、GPSおよび/またはWi-Fi三角測量が使用され得る。他の実装形態において、ユーザによって携帯/動作される他のコンピューティングデバイスによって放射された信号に基づいて特定の人の位置を決定するために、飛行時間、信号強度などの他のワイヤレス信号特性が、単独または集合的にクライアントデバイス110によって使用され得る。
【0029】
追加的に、または代替的に、いくつかの実装形態において、クライアントデバイス110は、ユーザの声からユーザを認識するために話者識別(SID)を実行し得る(例えば、ユーザ検証エンジン160に関して説明する)。いくつかの実装形態において、次いで、クライアントデバイス110の存在センサ113(およびオプションでクライアントデバイス110のGPSセンサ、Soliチップ、および/または加速度計)によって、話者の動きが決定され得る。いくつかの実装形態において、そのように決定された動きに基づいて、ユーザの位置が予測され得、この位置は、ユーザの位置に対するクライアントデバイス110および/または他のコンピューティングデバイスの近接に少なくとも部分的に基づいて、クライアントデバイス110および/または他のコンピューティングデバイスにおいて任意のコンテンツがレンダリングされるようにされるときに、ユーザの位置であると仮定され得る。いくつかの実装形態において、ユーザは、特に、最後の関与から時間があまり経過していない場合、ユーザが自動アシスタント115に関与した最後の位置にいると単純に仮定され得る。
【0030】
さらに、クライアントデバイス110および/またはウォームワードシステム180は、データおよび/もしくはソフトウェアアプリケーション198を記憶するための1つもしくは複数のメモリ、データにアクセスし、ソフトウェアアプリケーション198を実行するための1つもしくは複数のプロセッサ、ならびに/またはネットワーク199のうちの1つもしくは複数を介する通信を容易にする他の構成要素を含み得る。いくつかの実装形態において、いくつかの実装形態において、ソフトウェアアプリケーション198のうちの1つまたは複数は、クライアントデバイス110においてローカルにインストールされ得、一方、他の実装形態において、ソフトウェアアプリケーション198のうちの1つまたは複数は、(例えば、1つまたは複数のサーバによって)リモートにホストされ得、ネットワーク199のうちの1つまたは複数を介してクライアントデバイス110によってアクセス可能であり得る。クライアントデバイス110、他のコンピューティングデバイス、および/または自動アシスタント115によって実行される動作は、複数のコンピュータシステムにわたって分散され得る。自動アシスタント115は、例えば、クライアントデバイス110上、および/またはネットワーク(例えば、
図1のネットワーク199)を介して互いに結合された1つもしくは複数の場所における1つもしくは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
【0031】
いくつかの実装形態において、自動アシスタント115によって実行される動作は、自動アシスタントクライアント114を介してクライアントデバイス110においてローカルに実装され得る。
図1に示すように、自動アシスタントクライアント114は、自動音声認識(ASR)エンジン120A1と、自然言語理解(NLU)エンジン130A1と、テキスト読み上げ(TTS)エンジン140A1とを含み得る。いくつかの実装形態において、ウォームワードシステム180が
図1に示すようにクライアントデバイス110からリモートに実装される場合など、自動アシスタント115によって実行される動作は、複数のコンピュータシステムにわたって分散され得る。これらの実装形態において、自動アシスタント115は、ウォームワードシステム180のASRエンジン120A2、NLUエンジン130A2、およびTTSエンジン140A2を追加的または代替的に利用し得る。
【0032】
これらのエンジンの各々は、1つまたは複数の機能を実行するように構成され得る。例えば、ASRエンジン120A1および/または120A2は、ASR出力を生成するために、機械学習(ML)モデルデータベース115A内に記憶されたASRモデル(例えば、リカレントニューラルネットワーク(RNN)モデル、トランスフォーマーモデル、および/またはASRを実行することができる任意の他のタイプのMLモデル)を使用して、口頭発話を捕捉し、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータを処理することができる。さらに、NLUエンジン130A1および/または130A2は、NLU出力を生成するために、MLモデルデータベース115A内に記憶されたNLUモデル(例えば、長短期メモリ(LSTM)、ゲート付き回帰型ユニット(GRU)、NLUを実行することができる他のMLモデル)および/または文法ベースのルールを使用して、ASR出力を処理することができる。さらに、TTSエンジン140A1および/または140A2は、コンピュータで生成された合成音声を含む合成音声オーディオデータを生成するために、MLモデルデータベース115A内に記憶されたTTSモデルを使用して、テキストデータ(例えば、自動アシスタント115によって定式化されたテキスト)を処理することができる。
【0033】
様々な実装形態において、ASR出力は、例えば、オーディオデータ内に捕捉されたユーザの口頭発話に対応すると予測される1つもしくは複数の音声仮説(例えば、用語仮説および/または転写仮説)、1つもしくは複数の音声仮説の各々に関する1つもしくは複数の対応する予測値(例えば、確率、対数尤度、および/または他の値)、オーディオデータ内に捕捉されたユーザの口頭発話に対応すると予測される複数の音素、および/または他のASR出力を含むことができる。それらの実装形態のいくつかのバージョンにおいて、ASRエンジン120A1および/または120A2は、(例えば、対応する予測値に基づいて)口頭発話に対応する認識されたテキストとして音声仮説のうちの1つまたは複数を選択することができる。
【0034】
様々な実装形態において、NLU出力は、例えば、認識されたテキストの用語のうちの1つまたは複数(例えば、すべて)について、認識されたテキストの1つまたは複数の注釈を含む注釈付きの認識されたテキストを含むことができる。例えば、NLUエンジン130A1および/または130A2は、用語にそれらの文法的役割で注釈をつけるように構成された品詞タガー(図示せず)の一部を含み得る。追加的に、または代替的に、NLUエンジン130A1および/または130A2は、人(例えば、文学のキャラクタ、有名人、公人などを含む)、組織、場所(実在および架空)などへの参照などの、認識されたテキストの1つまたは複数のセグメント内のエンティティ参照に注釈を付けるように構成されたエンティティタガー(図示せず)を含み得る。いくつかの実装形態において、エンティティに関するデータは、ナレッジグラフ(図示せず)などの1つまたは複数のデータベース内に記憶され得る。いくつかの実装形態において、いくつかの実装形態において、ナレッジグラフは、既知のエンティティ(および、場合によっては、エンティティ属性)を表すノード、ならびにノードを接続し、エンティティ間の関係を表すエッジを含み得る。エンティティタガーは、高いレベルの粒度(例えば、人などのエンティティクラスへのすべての参照の識別を可能にする)および/またはより低いレベルの粒度(例えば、特定の人などの特定のエンティティへのすべての参照の識別を可能にする)においてエンティティへの参照に注釈を付け得る。エンティティタガーは、特定のエンティティを解決するために自然言語入力の内容に依存し得、および/または特定のエンティティを解決するためにナレッジグラフもしくは他のエンティティデータベースとオプションで通信し得る。追加的に、または代替的に、NLUエンジン130A1および/または130A2は、1つまたは複数の文脈的キューに基づいて、同じエンティティへの参照をグループ化または「クラスタ化」するように構成された共参照リゾルバ(図示せず)を含み得る。例えば、共参照リゾルバは、「それらを買う(buy them)」という入力を受信する直前にレンダリングされたクライアントデバイス通知において「劇場チケット(theatre tickets)」が言及されていることに基づいて、「それらを買う(buy them)」という自然言語入力において、「それら(them)」という用語を「劇場チケットを買う(buy theatre tickets)」に解決するために利用され得る。いくつかの実装形態において、NLUエンジン130A1および/または130A2の1つまたは複数の構成要素は、NLUエンジン130A1および/または130A2の1つまたは複数の他の構成要素からの注釈に依存し得る。例えば、いくつかの実装形態において、エンティティタガーは、特定のエンティティへのすべての言及に注釈を付ける際に、共参照リゾルバからの注釈に依存し得る。また、例えば、いくつかの実装形態において、共参照リゾルバは、同じエンティティへの参照をクラスタ化する際に、エンティティタガーからの注釈に依存し得る。
【0035】
図1は、単一のユーザを有する単一のクライアントデバイスに関して説明されているが、それは例のためであり、限定することを意味していないことが理解されるべきである。例えば、ユーザの1つまたは複数の追加のクライアントデバイスは、本明細書で説明する技法を実装することもできる。例えば、クライアントデバイス110、1つもしくは複数の追加のクライアントデバイス、および/またはユーザの任意の他のコンピューティングデバイスは、本明細書で説明する技法を用いることができるデバイスのエコシステムを形成することができる。これらの追加のクライアントデバイスおよび/またはコンピューティングデバイスは、(例えば、ネットワーク199を介して)クライアントデバイス110と通信し得る。別の例として、所与のクライアントデバイスが、共有設定(例えば、ユーザのグループ、世帯)において複数のユーザによって利用され得る。
【0036】
本明細書で説明するように、自動アシスタント115は、文脈的オーディオデータに基づいて、および/またはオーディオデータのストリーム内に捕捉された口頭発話を提供した話者の身元に基づいて、オーディオデータのストリーム内のウォームワードを検出したことに応答してアシスタントコマンドを実行させるかどうかを決定することができる。この決定を行う際、自動アシスタントは、ウォームワードエンジン150、ユーザ検証エンジン160、および/または音響エンジン170を利用することができる。様々な実装形態において、
図1に示すように、ウォームワードエンジン150は、ウォームワードアクティブ化イベントエンジン151と、ウォームワード検出エンジン152と、ウォームワード検証エンジン153とを含むことができる。
【0037】
いくつかの実装形態において、ウォームワードアクティブ化イベントエンジン151は、ウォームワードアクティブ化イベントの発生を監視することができる。ウォームワードアクティブ化イベントは、例えば、クライアントデバイス110において受信される通話、クライアントデバイス110において受信されるテキストメッセージ、クライアントデバイス110において受信される電子メール、クライアントデバイス110において鳴るアラーム、クライアントデバイス110において鳴るタイマ、クライアントデバイス110もしくはクライアントデバイス110の環境内の追加のクライアントデバイスにおいて再生されるメディア、クライアントデバイス110において受信される通知、クライアントデバイス110の場所(例えば、自宅、職場などにおけるユーザ)、クライアントデバイス110においてアクセス可能な1つもしくは複数のソフトウェアアプリケーション198のうちのソフトウェアアプリケーション、および/またはクライアントデバイス110もしくはクライアントデバイス110と通信する追加のクライアントデバイスを口頭発話に基づいて制御させるために、ユーザが口頭発話を提供することができる、クライアントデバイス110に関連付けられた他のイベントを含むことができる。それらの実装形態のいくつかのバージョンにおいて、ウォームワードアクティブ化イベントの発生を検出したことに応答して、ウォームワードアクティブ化イベントエンジン151は、MLモデルデータベース115A内に記憶されたウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化させることができる(例えば、低電力デジタル信号プロセッサ(DSP)、中央処理装置(CPU)など)。ウォームワードモデルは、各々がアシスタントコマンドに関連付けられた1つまたは複数の特定のワードまたはフレーズ(本明細書では「ウォームワード」とも呼ばれる)を検出するようにトレーニングされ得る。1つまたは複数の特定のワードまたはフレーズは、検出されると、自動アシスタント115が、呼び出しワードまたはフレーズ(例えば、「アシスタント(Assistant)」、「ヘイ、アシスタント(Hey Assistant)」など)、呼び出しジェスチャ、または自動アシスタント115を呼び出すための他の手段を介して自動アシスタント115を明示的に呼び出すことなく、特定のアクションを実行させることができるように、アシスタントコマンドに関連付けられ得る。別の言い方をすれば、自動アシスタント115が、1つまたは複数の特定のワードまたはフレーズに関連付けられたアシスタントコマンドの実行を引き起こすために、様々なアシスタント構成要素(例えば、ASRエンジン120A1および/もしくは120A2、NLUエンジン130A1および/もしくは130A1、ならびに/または他の自動アシスタント構成要素)の利用をバイパスすることができるように、1つまたは複数の特定のワードまたはフレーズは、特定の意図、特定の履行データ、および/またはクライアントデバイス110においてアクセス可能な1つまたは複数のソフトウェアアプリケーション198のうちの特定のソフトウェアアプリケーションにマッピングされ得る。
【0038】
それらの実装形態のいくつかのさらなるバージョンにおいて、ウォームワードモデルを利用する現在休止中の自動アシスタント機能は、1つまたは複数の条件が満たされるまでアクティブのままでいることができる。1つまたは複数の条件は、例えば、閾値持続時間の経過、特定のワードもしくはフレーズを検出すること、ウォームワードアクティブ化イベントが終了したと判定すること、および/または本明細書で説明する他の条件を含むことができる。例えば、ウォームワードアクティブ化イベントは、クライアントデバイス110においてタイマが鳴ることを含むと仮定する。この例において、ウォームワードモデルを利用する現在休止中の自動アシスタント機能のうちの1つまたは複数は、ユーザがタイマの音を止めるためにウォームワードを提供するまで、またはユーザがタイマを手動で止めるまで、アクティブのままでいることができる。別の例として、ウォームワードアクティブ化イベントは、クライアントデバイス110において通知が受信されることを含むと仮定する。この例において、ウォームワードモデルを利用する現在休止中の自動アシスタント機能のうちの1つまたは複数は、ユーザが通知と対話するためにウォームワードを提供するまで、ユーザが通知を手動で閉じるまで、または閾値持続時間(例えば、30秒、60秒など)が経過するまで、アクティブのままでいることができる。さらに別の例として、ウォームワードアクティブ化イベントは、クライアントデバイス110において通話が受信されることを含むと仮定する。この例において、ウォームワードモデルを利用する現在休止中の自動アシスタント機能のうちの1つまたは複数は、ユーザが通話と対話するためにウォームワードを提供するまで、または電話が鳴り止むまで、アクティブのままでいることができる。したがって、本明細書で説明するウォームワードモデルを利用する現在休止中の自動アシスタント機能は、一旦アクティブ化されると、検出されたウォームワードアクティブ化イベントに基づいて、および/またはクライアントデバイス110のユーザがウォームワードアクティブ化イベントにどのように応答するかに基づいて、静的または動的な持続時間の間、アクティブ化され得る。
【0039】
追加のまたは代替の実装形態において、ウォームワードモデルを利用する自動アシスタント機能のうちの1つまたは複数は、常にアクティブでいることができる。別の言い方をすれば、ウォームワードモデルを利用する自動アシスタント機能のうちのいくつかは、ウォームワードアクティブ化イベントがウォームワードアクティブ化イベントエンジン151によって検出されるかどうかに関係なく、常にアクティブである。例えば、「どんな天気ですか(what's the weather)」、「(私のカレンダー上になにがありますか(what's on my calendar)」などの特定の問い合わせに関連付けられた特定のワードもしくはフレーズ、「おはよう(good morning)」ルーチン、「おやすみ(good night)」ルーチンなどの特定のアシスタントルーチンに関連付けられた特定のワードもしくはフレーズ、「照明をつけて(turn on the lights)」、「[部屋/照明の識別子]の照明をつけて(turn on the [room/light identifier] lights)」などの特定のデバイスに関連付けられた特定のワードもしくはフレーズ、ナビゲーションアプリケーションが起動状態もしくは未起動状態にあるときの「第1のアプリケーションを開いて(open first application)」、「第1のアプリケーションを起動して(launch first application)」、「123メインストリートへの道順(directions to 123 Main St.)」、カメラアプリケーションが起動状態にあるときの「チーズ(cheese)」などの、クライアントデバイス110においてアクセス可能な1つまたは複数のソフトウェアアプリケーション198のうちの、起動状態もしくは未起動状態にある特定のソフトウェアアプリケーションに関連付けられた特定のワードもしくはフレーズ、および/または他の特定のワードもしくはフレーズを検出するためにウォームワードモデルを利用する自動アシスタント機能のうちの1つまたは複数。
【0040】
本明細書で説明するウォームワードモデルは、検出されると自動アシスタント115に特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させる1つまたは複数の特定のワードまたはフレーズ(例えば、ウォームワード)を検出するようにトレーニングされた複数の異種のウォームワードモデル(例えば、オーディオキーワード分類モデル)を含むことができる。いくつかの実装形態において、所与のウォームワードモデルは、所与のウォームワードアクティブ化イベントに関連付けられたワードまたはフレーズの特定のサブセットを検出するようにトレーニングされ得る。例えば、クライアントデバイス110またはクライアントデバイス110と通信する別のクライアントデバイスにおいて音楽が再生されていると仮定する。この例において、所与のウォームワードモデルは、音楽を一時停止させ得る「一時停止(pause)」ウォームワード、音楽を一時停止した後に再開させ得る「再開(resume)」ウォームワード、音楽の音量を上げさせ得る「音量を上げる(volume up)」ウォームワード、音楽の音量を下げさせ得る「音量を下げる(volume down)」ウォームワード、音楽を次の曲にスキップさせ得る「次の(next)」ウォームワード、ならびに音楽に関連付けられた他の特定のワードまたはフレーズに関するものなどの、音楽を制御することに関連付けられたアシスタントコマンドを実行させる特定のワードまたはフレーズのサブセットを検出するようにトレーニングされ得る。したがって、この例において、音楽がクライアントデバイス110またはクライアントデバイス110と通信する別のクライアントデバイスにおいて再生されていると判定したことに応答して、所与のウォームワードモデルを利用する現在休止中のアシスタント機能のうちの1つまたは複数がアクティブ化され得る。したがって、単一の時間インスタンスにおいて、1つまたは複数のウォームワードモデルがクライアントデバイス110においてアクティブであり得る。
【0041】
追加のまたは代替の実装形態において、複数のウォームワードモデルが、所与のウォームワードアクティブ化イベントに関連付けられたワードまたはフレーズのサブセットを検出するようにトレーニングされ得る。上記の例を続けると、第1のウォームワードモデルは、「一時停止(pause)」のウォームワードおよび「再開(resume)」のウォームワードなどの1つまたは複数の第1の特定のワードまたはフレーズを検出するようにトレーニングされ得、第2のウォームワードモデルは、「音量を上げる(volume up)」のウォームワードおよび「音量を下げる(volume down)」のウォームワードなどの1つまたは複数の第2の特定のワードまたはフレーズを検出するようにトレーニングされ得、第3のウォームワードモデルは、「次の(next)」のウォームワード、ならびに音楽に関連付けられた他の特定のワードまたはフレーズに関するものなどの1つまたは複数の第3の特定のワードまたはフレーズを検出するようにトレーニングされ得る。したがって、この例において、少なくとも第1のウォームワードモデル、第2のウォームワードモデル、および第3のウォームワードモデルを利用する現在休止中のアシスタント機能のうちの1つまたは複数が、クライアントデバイス110またはクライアントデバイス110と通信する別のクライアントデバイスにおいて音楽が再生されていると判定したことに応答してアクティブ化され得る。
【0042】
本明細書で説明するウォームワードモデルは、複数のトレーニングインスタンスに基づいてトレーニングされ得る。複数のトレーニングインスタンスの各々は、トレーニングインスタンス入力とトレーニングインスタンス出力とを含むことができる。トレーニングインスタンス入力は、オーディオデータを含むことができ、オーディオデータの一部は、所与のウォームワードモデルが検出するようにトレーニングされている特定のワードまたはフレーズのうちの1つまたは複数に対応し、トレーニングインスタンス出力は、グラウンドトゥルース出力を含むことができ、グラウンドトゥルース出力は、トレーニングインスタンス入力のオーディオデータが、所与のウォームワードモデルが検出するようにトレーニングされている特定のワードまたはフレーズのうちの1つまたは複数を含むかどうかの指示を含む。例えば、音楽再生に関して説明した上記の例において所与のウォームワードモデルをトレーニングする際、所与のトレーニングインスタンスに関するトレーニングインスタンス入力は、「音量を上げて(turn the volume up)」に対応するオーディオデータを含むことができ、所与のトレーニングインスタンスに関するトレーニングインスタンス出力は、オーディオデータが特定のワードまたはフレーズのうちの1つまたは複数(例えば、「音量を上げる(volume up)」を含むことを示すグラウンドトゥルース出力を含むことができる。トレーニングインスタンス入力は、トレーニングインスタンス入力が特定のワードまたはフレーズのうちの1つまたは複数を含むかどうかの尤度を示す予測出力(例えば、確率、対数尤度、バイナリ値、または他の値などの値)を生成するために、所与のウォームワードモデルへの入力として適用され得る。予測出力は、1つまたは複数の損失を生成するために、トレーニングインスタンス入力のグラウンドトゥルース出力(例えば、この例では「1」の値などの、トレーニングインスタンス入力のオーディオデータが実際に特定のワードまたはフレーズのうちの1つまたは複数を含むことを示す値)と比較され得、所与のウォームワードモデルは、損失のうちの1つまたは複数に基づいて更新され得る。この例において、トレーニングインスタンス入力は、所与のウォームワードモデルが検出するようにトレーニングされているオーディオデータの一部を含むので、所与のトレーニングインスタンスは、肯定的なトレーニングインスタンスとみなされ得る。さらに、この例において、所与のウォームワードモデルは、オプションで、否定的なトレーニングインスタンス、または所与のウォームワードモデルが検出するようにトレーニングされている特定のワードまたはフレーズのうちの1つまたは複数を含まないオーディオデータに対応するトレーニングインスタンス入力を有するトレーニングインスタンスに基づいて追加的にトレーニングされ得る。
【0043】
例えば、音楽再生に関して説明した上記の例における所与のウォームワードモデルをトレーニングする際、所与のトレーニングインスタンスに関するトレーニングインスタンス入力は、「照明をつけて(turn on the lights)」に対応するオーディオデータを含むことができ、所与のトレーニングインスタンスに関するトレーニングインスタンス出力は、オーディオデータが特定のワードまたはフレーズのうちの1つまたは複数(例えば、「音量を上げる(volume up)」)を含まないことを示すグラウンドトゥルース出力を含むことができる。トレーニングインスタンス入力は、トレーニングインスタンス入力が特定のワードまたはフレーズのうちの1つまたは複数を含むかどうかの尤度を示す予測出力(例えば、確率、対数尤度、バイナリ値、または他の値などの値)を生成するために、所与のウォームワードモデルへの入力として適用され得る。予測出力は、1つまたは複数の損失を生成するために、トレーニングインスタンス入力のグラウンドトゥルース出力(例えば、この例では「0」の値などの、トレーニングインスタンス入力のオーディオデータが実際に特定のワードまたはフレーズのうちの1つまたは複数を含むことを示す値)と比較され得、所与のウォームワードモデルは、損失のうちの1つまたは複数に基づいて更新され得る。この例において、トレーニングインスタンス入力は、所与のウォームワードモデルが検出するようにトレーニングされているオーディオデータの任意の部分(例えば、「音量を上げる(volume up)」、または音楽を制御することに対応する任意の他のオーディオ)を含まないので、所与のトレーニングインスタンスは、否定的なトレーニングインスタンスとみなされ得る。
【0044】
いくつかの実装形態において、ウォームワードモデルを利用する自動アシスタント機能のうちの1つまたは複数がアクティブであると仮定すると、ウォームワード検出エンジン152は、1つまたは複数の特定のワードまたはフレーズの発生を監視するために、ウォームワードモデルを使用して、クライアントデバイスのマイクロフォンによって生成されたオーディオデータのストリームを処理することができる。例えば、クライアントデバイス110においてテキストメッセージが受信されたと仮定する。さらに、ウォームワードアクティブ化イベントエンジン151が、クライアントデバイス110においてテキストメッセージが受信されたことを検出し、条件のうちの1つまたは複数が満たされるまで、クライアントデバイス110において受信されているテキストメッセージのウォームワードアクティブ化イベントに関する特定のワードまたはフレーズ(例えば、「返信(reply)」、「却下(dismiss)」、「見せて(show me)」など)を検出するために1つまたは複数のウォームワードモデルを利用する1つまたは複数の自動アシスタント構成要素をアクティブ化するとさらに仮定する。この例において、クライアントデバイス110のユーザが、「5分以内に行くと返信して(reply that I'll be there in five minutes)」の口頭発話を提供するとさらに仮定する。したがって、オーディオデータのストリームを処理する際、ウォームワード検出エンジン152は、オーディオデータの部分が「返信(reply)」というウォームワードの発生に対応することを検出することができる。いくつかの実装形態において、ウォームワード検出エンジン152は、ウォームワードの発生を検出したことに応答して、ASRモデルおよび/またはNLUモデルを利用する1つまたは複数の追加の現在アクティブな自動アシスタント構成要素(例えば、ASRエンジン120A1および/もしくは120A2、NLUエンジン130A1および/もしくは130A2、ならびに/または他の自動アシスタント構成要素)をアクティブ化させることができる。
【0045】
(例えば、
図2、
図3、および
図4A~
図4Cに関して)以下でより詳細に説明するように、ASRエンジン120A1および/または120A2は、MLモデルデータベース115A内に記憶されたASRモデルを使用して、ASR出力を生成するために、ウォームワードの発生に対応するオーディオデータの部分、(もしあれば)ウォームワードの発生に対応するオーディオデータの部分に先行するオーディオデータのプリアンブル部分、および/または(もしあれば)ウォームワードの発生に対応するオーディオデータの部分に続くオーディオデータのポストアンブル部分を処理することができる。さらに、NLUエンジン130A1および/または130A2は、MLモデルデータベース115A内に記憶されたNLUモデル、および/または文法ベースのルールを使用して、NLU出力を生成するためにASR出力を処理することができる。それらの実装形態のいくつかのバージョンにおいて、ASRエンジン120A1および/または120A2は、それらの部分のうちの1つまたは複数(例えば、(もしあれば)オーディオデータのプリアンブル部分、および/またはウォームワードの発生に対応するオーディオデータの部分)をクライアントデバイス110のオーディオバッファから取得することができる。様々な実装形態において、ASR出力は、ウォームワードモデルに関連付けられた特定の用語および/またはフレーズに偏らせられ得る。例えば、ウォームワードアクティブ化イベントがメディアイベントに対応する(例えば、クライアントデバイス110のユーザがクライアントデバイス110において音楽を聴いている)場合、ASR出力は、アーティスト、曲、音楽のジャンルなどの、音楽関連の用語および/またはフレーズに偏らせられ得る。
【0046】
例えば、自動アシスタント115は、オーディオデータのストリーム内に捕捉された口頭発話に対する複数のタイムスタンプを生成するために、MLモデルデータベース115A内に記憶されたエンドポインティングモデルを使用して、オーディオデータのストリームを処理させることができる。複数のタイムスタンプは、少なくとも、ユーザが口頭発話を提供し始めた第1の時間に関連付けられた第1のタイムスタンプと、ユーザが口頭発話内に含まれる1つまたは複数の特定のワードまたはフレーズを提供し始めた第1の時間に続く第2の時間に関連付けられた第2のタイムスタンプと、ユーザが口頭発話内に含まれる1つまたは複数の特定のワードまたはフレーズを提供し終えた第2の時間に続く第3の時間に関連付けられた第3のタイムスタンプと、ユーザが口頭発話を提供し終えた第3の時間に続く第4の時間に関連付けられた第4のタイムスタンプとを含むことができる。この例において、オーディオデータのプリアンブル部分は、第1のタイムスタンプと第2のタイムスタンプとの間の口頭発話に対応する任意のオーディオデータを含み、第2のタイムスタンプと第3のタイムスタンプとの間の口頭発話に対応する任意のオーディオデータを含むオーディオデータの部分、オーディオデータのポストアンブル部分は、第3のタイムスタンプと第4のタイムスタンプとの間の口頭発話に対応する任意のオーディオデータを含む。この例は、例示の目的のために提供され、限定であることを意図していないことが留意されるべきである。例えば、口頭発話が特定のワードまたはフレーズのうちの1つまたは複数のみを含む場合など、場合によっては、複数のタイムスタンプは、少なくとも、ユーザが口頭発話を提供し始めた第1の時間に関連付けられた第1のタイムスタンプと、ユーザが口頭発話を提供し終えた、第1の時間に続く第2の時間に関連付けられた第2のタイムスタンプとを含むことができる。この例では、オーディオデータのプリアンブル部分またはオーディオデータのポストアンブル部分が、存在しない場合がある。
【0047】
いくつかの実装形態において、ウォームワード検証エンジン153は、ユーザが1つまたは複数の特定のワードまたはフレーズがアシスタントコマンドの実行を引き起こすことを意図していたかどうかを判定するために、ASR出力を処理することができる。例えば、ウォームワード検証エンジン153は、NLU出力を生成するために、MLモデルデータベース115A内に記憶されたNLUモデル、または文法ベースのルールを使用して、NLUエンジン130A1および/または130A2にASR出力を処理させることができる。ウォームワード検証エンジン153は、ASR出力および/またはNLU出力に基づいて、ユーザが1つまたは複数の特定のワードまたはフレーズがアシスタントコマンドの実行を引き起こすことを意図していたかどうかを判定することができる。上記の例を続けると、(例えば、「5分以内に行くと返信して(reply that I'll be there in five minutes)」の口頭発話を捕捉する)ウォームワードに応答する。上記の例を続けると、オーディオデータのストリームにおいてウォームワード(例えば、「返信(reply)」の発生が検出されたことに応答して、ASRエンジン120A1および/もしくは120A2ならびに/またはNLUエンジン130A1および/もしくは130A2は、アクティブ化され、(例えば、「5分以内に行くと返信して(reply that I'll be there in five minutes)」の口頭発話を捕捉する)オーディオデータのストリームに対するASR出力を生成するためにオーディオデータのストリームを処理するために利用され得る。さらに、NLUエンジン130A1および/または130A2は、MLモデルデータベース115A内に記憶されたNLUモデルを使用して、NLU出力を生成するためにASR出力を処理することができる。この例において、ウォームワード検証エンジン153は、「返信(reply)」が、クライアントデバイス110において受信されたテキストメッセージに対して「5分以内に行く(I'll be there in five minutes)」の返信メッセージで返信するようにユーザによって意図されていたと判定することができる。
【0048】
上記の例と対照的に、クライアントデバイス110のユーザが代わりに、クライアントデバイス110においてテキストメッセージが受信されたときに「後で返信する(I'll reply to that later)」の口頭発話を提供したと仮定する。この例において、ウォームワードアクティブ化イベントエンジン151は、ウォームワードアクティブ化イベントの発生(例えば、テキストメッセージがクライアントデバイスにおいて受信されたこと)を検出し、ウォームワードモデルを利用する現在休止中の自動アシスタント機能のうちの1つまたは複数をアクティブ化させることができる。さらに、ウォームワード検出エンジン152は、ウォームワードアクティブ化イベントに対してアクティブ化されたウォームワードモデルのうちの1つまたは複数を使用してオーディオデータのストリームを処理する際、上記で説明したものと同じまたは類似の方法において、オーディオデータの一部における1つまたは複数の特定のワードまたはフレーズ(例えば「返信(reply)」)の発生を検出することができる。しかしながら、この例において、自動アシスタント115は、ASRエンジン120A1および/もしくは120A2ならびに/またはNLUエンジン130A1および/もしくは130A2を使用してオーディオデータのポストアンブル部分(例えば、「後で(to that later)」に対応するポストアンブル部分)を処理することに基づいて、ユーザが、「返信(reply)」が自動アシスタントに受信されたテキストメッセージに返信させる特定のワードまたはフレーズであることを意図していなかったと判定することができる。したがって、この例において、自動アシスタント115は、ユーザが、典型的にはアシスタントコマンドを実行させる1つまたは複数の特定のワードまたはフレーズ(例えば、「返信(reply)」)を含む口頭発話を提供したにもかかわらず、テキストメッセージに返答するアシスタントコマンドの実行を引き起こすことを控えることができる。
【0049】
追加または代替の実装形態において、自動アシスタント115は、ユーザ検証エンジン160が、口頭発話を提供したユーザの身元が検証され、口頭発話を提供したユーザがアシスタントコマンドの実行を引き起こすことを許可されていると判定した場合にのみ、アシスタントコマンドを実行させ得る。それらの実装形態のいくつかのバージョンにおいて、アシスタントコマンドのサブセットのみが、口頭発話を提供したユーザの身元が検証され、口頭発話を提供したユーザがアシスタントコマンドの実行を引き起こすことを許可されていることを必要とし得る。例えば、通話ウォームワードアクティブ化イベント、テキストメッセージウォームワードアクティブ化イベント、および電子メールウォームワードアクティブ化イベントに関連付けられたアシスタントコマンドは、口頭発話を提供したユーザの身元が検証され、口頭発話を提供したユーザがアシスタントコマンドの実行を引き起こすことを許可されていることを必要とし得る。しかしながら、メディアウォームワードアクティブ化イベントに関連付けられたアシスタントコマンドは、口頭発話を提供したユーザの身元が検証され、口頭発話を提供したユーザがアシスタントコマンドの実行を引き起こすことを許可されていることを必要としない場合がある。口頭発話を提供したユーザの身元は、様々な技法を使用して検証され得る。
【0050】
それらの実装形態のうちのいくつかのバージョンにおいて、ユーザ検証エンジン160は、MLモデルデータベース115A内に記憶された話者識別(SID)モデルを使用して、口頭発話を提供したユーザに関する話者埋め込みを生成するためにオーディオデータのストリームを処理することができる。生成された話者埋め込みは、埋め込み空間において、クライアントデバイス110のユーザに関する1つまたは複数の以前に生成された話者埋め込み(例えば、ユーザのユーザプロファイルに関連付けられた埋め込み)と比較され得る。例えば、埋め込み空間において、生成された話者埋め込みとユーザに関する1つまたは複数の以前に生成された話者埋め込みとの間の比較に基づいて決定された距離メトリックが閾値を満たす場合、ユーザは、口頭発話を提供したユーザとして検証され得る。ユーザに関する1つまたは複数の以前に生成された話者埋め込みは、(例えば、クライアントデバイス110を最初に構成するときに)ユーザからの口頭発話を含むオーディオデータの1つまたは複数のインスタンスの処理に基づいて生成された出力に基づいて生成され得る。例えば、1つまたは複数の以前に生成された話者埋め込みは、クライアントデバイスのユーザからの対応する口頭発話を含むオーディオデータの対応するインスタンスの処理に基づいて各々が生成された複数の異なる埋め込みの平均(または他の組合せ)に基づくことができる。それらの実装形態のいくつかのバージョンにおいて、SIDモデルは、テキスト非依存(TI)SIDモデルであり得、他の実装形態において、SIDモデルは、テキスト依存(TD)SIDモデルであり得る。
【0051】
TD SIDモデルにおいて、ユーザの1つまたは複数の以前に生成された話者埋め込みは、1つまたは複数の特定のワードまたはフレーズのみを含む口頭発話に基づいて生成される。さらに、使用中、ユーザは、口頭発話が許可されたユーザ(例えば、クライアントデバイス110のユーザまたはクライアントデバイス110に関連付けられた別のユーザ)からのものであるかどうかを判定するために、ユーザに関する1つまたは複数の以前に生成されたTD話者埋め込みと効果的に比較され得る、TD SIDモデルを使用して生成されるべき1つまたは複数のTD SID話者埋め込みのために1つまたは複数の特定のワードまたはフレーズを話さなければならない。例えば、TD話者認識における1つまたは複数の特定のワードまたはフレーズは、自動アシスタントを呼び出すように構成された1つもしくは複数の呼び出しフレーズ(例えば、「ヘイ、アシスタント(Hey Assistant)」、「オーケーアシスタント(OK Assistant)」、および/または「アシスタント(Assistant)」)、または本明細書で説明する1つまたは複数のウォームワードに制約され得る。対照的に、TI SIDにおいて、TI SIDモデルを使用して処理される口頭発話は、1つまたは複数の特定のワードまたはフレーズに制約されない。言い換えれば、事実上あらゆる口頭発話に基づくオーディオデータが、口頭発話が許可されたユーザ(例えば、クライアントデバイス110のユーザまたはクライアントデバイス110に関連付けられた別のユーザ)からのものであるかどうかを判定するために、ユーザに関する1つまたは複数の以前に生成されたTI話者埋め込みと効果的に比較され得るTI SID話者埋め込みを生成するために、TI SIDを使用して処理され得る。さらに、様々な実装形態において、TI SIDにおいて利用されるユーザの1つまたは複数の以前に生成されたTI話者埋め込みは、異種のワードおよび/またはフレーズを含み、呼び出しワードおよび/もしくはフレーズ、ウォームワード、ならびに/または任意の他の特定の口頭発話に限定されない口頭発話に基づいて生成される。
【0052】
それらの実装形態の追加または代替のバージョンにおいて、口頭発話を提供したユーザの身元を検証するために、他の生体情報が利用され得る。ユーザの身元を検証するために利用される生体情報は、例えば、顔紋識別、指紋識別、および/または他のタイプの生体情報を含むことができる。例えば、クライアントデバイス110の存在センサ113の視覚構成要素は、口頭発話を提供したユーザの顔を含む視覚データを捕捉することができる。ユーザ検証エンジン160は、MLモデルデータベース115A内に記憶された顔識別(FID)モデルを使用して、口頭発話を提供したユーザの顔紋を生成するために視覚データを処理することができる。口頭発話を提供したユーザの顔紋は、埋め込み空間において、口頭発話を提供したユーザがアシスタントコマンドの実行を引き起こすことを許可されているかどうかを判定するために、クライアントデバイスのユーザの顔紋に対応する1つまたは複数の以前に生成された埋め込みと比較され得る埋め込みに対応することができる。別の例として、存在センサ113の指紋センサは、口頭発話を提供したユーザのタッチ入力を受信し、口頭発話を提供したユーザがアシスタントコマンドの実行を引き起こすことを許可されているかどうかを判定するために、検出された指紋をクライアントデバイス110のユーザの既知の指紋と比較することができる。
【0053】
追加または代替の実装形態において、音響エンジン170は、オーディオデータに関連付けられた1つまたは複数の音響特性を生成するために、オーディオデータを処理することができる。これらの実装形態において、自動アシスタント115は、オーディオデータのストリーム内のウォームワードを検出したことに応答してアシスタントコマンドを実行させるかどうかを決定する際に、オーディオデータに関連付けられた音響特性のうちの1つまたは複数を追加的または代替的に考慮することができる。音響エンジン170は、オーディオデータに関連付けられた1つまたは複数の音響特性を生成するために、様々な技法を利用することができる。
【0054】
それらの実装形態のいくつかのバージョンにおいて、音響エンジン170は、MLモデルデータベース115A内に記憶された音声アクティビティ検出(VAD)モデルを使用して、1つもしくは複数の特定のワードもしくはフレーズに対応するオーディオデータの部分に先行するオーディオデータのプリアンブル部分、および/または1つもしくは複数の特定のワードもしくはフレーズに対応するオーディオデータの部分に続くオーディオデータのポストアンブル部分が存在するかどうかを判定するために、オーディオデータを処理することができる。これらの実装形態のいくつかのさらなるバージョンにおいて、ASRエンジン120A1および/もしくは120A2ならびに/またはNLUエンジン130A1および/もしくは130A2は、オーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分が存在すると判定したことに応答してのみアクティブ化され得る。例えば、クライアントデバイス110において通知が受信されたときに、クライアントデバイス110のユーザが「見る(view)」の口頭発話を提供したと仮定する。この例において、ウォームワードアクティブ化イベントエンジン151は、ウォームワードアクティブ化イベント(例えば、クライアントデバイスにおいて通知が受信されたこと)の発生を検出し、ウォームワードモデルを利用する現在休止中の自動アシスタント機能のうちの1つまたは複数をアクティブ化させることができる。さらに、ウォームワード検出エンジン152は、ウォームワードアクティブ化イベントに対してアクティブ化されたウォームワードモデルのうちの1つまたは複数を使用してオーディオデータのストリームを処理する際、上記で説明したものと同じまたは類似の方法において、オーディオデータの部分における1つまたは複数の特定のワードまたはフレーズ(例えば、「見る(view)」)の発生を検出することができる。しかしながら、音響エンジン170は、VADモデルを使用してオーディオデータのストリームを処理することに基づいて、(例えば、オーディオデータのストリーム内の「見る(view)」に先行する)オーディオデータのプリアンブル部分または(例えば、オーディオデータのストリーム内の「見る(view)」に続く)オーディオデータのポストアンブル部分が存在しないことを判定することができる。結果として、ASRエンジン120A1および/もしくは120A2ならびに/またはNLUエンジン130A1および/もしくは130A2は、アクティブ化されない場合があり、自動アシスタント115は、通知をユーザに提示するために(およびオプションで、ユーザが通知を見ることを許可されていると判定することに基づいて)提供させることができる。
【0055】
それらの実装形態の追加または代替のバージョンにおいて、音響エンジン170は、MLモデルデータベース115A内に記憶された言語識別モデルを使用して、オーディオデータ内に捕捉された口頭発話の言語を決定するためにオーディオデータを処理することができる。これらの実装形態のいくつかのバージョンにおいて、口頭発話の言語は、オーディオデータのプリアンブル部分またはオーディオデータのポストアンブル部分のどちらが、オーディオデータの部分に対応する特定のワードもしくはフレーズうちの1つもしくは複数に関連付けられたアシスタントコマンドを引き起こすか、またはオーディオデータの部分に対応する特定のワードもしくはフレーズうちの1つもしくは複数に関連付けられたアシスタントコマンドを実行させることを控えるかどうかを自動アシスタント115に知らせる文脈的情報を提供するかの指示を提供することができる。例えば、英語において、アシスタントコマンドを引き起こすことを控えることを示す特定の用途またはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に対応する(例えば、オーディオデータのプリアンブル部分内の)オーディオデータの部分に先行する傾向がある(例えば、「答えない(won't answer)」、「見られない(can't view)」など)。しかしながら、他の言語(例えば、ドイツ語)において、アシスタントコマンドを引き起こすことを控えることを示す特定の用語またはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に対応する(例えば、オーディオデータのポストアンブル部分内の)オーディオデータの部分に続く傾向がある。
【0056】
追加のまたは代替の実装形態において、口頭発話の言語は、オーディオデータのストリームをさらに処理するために、どのウォームワードモデルおよび/またはどのASRモデルが利用されるべきかの指示を提供することができる。例えば、言語識別モデル全体にわたって生成された出力が、オーディオデータのストリーム内に捕捉された口頭発話を提供したユーザが英語を話していることを示すと仮定すると、自動アシスタント構成要素によってその後利用されるウォームワードモデルおよび/またはASRモデルは、英語に特化され得る。しかしながら、言語識別モデル全体にわたって生成された出力が、オーディオデータのストリーム内に捕捉された口頭発話を提供したユーザがドイツ語(または別の言語)を話していることを示すと仮定すると、自動アシスタント構成要素によってその後利用されるウォームワードモデルおよび/またはASRモデルは、ドイツ語(またはその他の言語)に特化され得る。追加のまたは代替の実装形態において、様々な言語における特定のワードおよび/またはフレーズのうちの1つまたは複数を検出するようにトレーニングされたウォームワードモデルが、1つまたは複数のアクティブな自動アシスタント構成要素によって利用され得、オーディオデータのストリームをさらに処理するために、自動アシスタント構成要素のうちの1つまたは複数によってどのASRモデルがその後利用されるべきであるかは、特定のワードおよび/またはフレーズのうちの検出された1つまたは複数の言語に基づいて決定され得る。例えば、ウォームワードモデル全体にわたって生成された出力が、検出されたウォームワードがスペイン語において提供されたことを示すと仮定すると、自動アシスタント構成要素によってその後利用されるASRモデルは、スペイン語に特化され得る。しかしながら、ウォームワードモデル全体にわたって生成された出力が、検出されたウォームワードが英語(または別の言語)において提供されたことを示すと仮定すると、自動アシスタント構成要素によってその後利用されるASRモデルは、英語(またはその他の言語)に特化され得る。
【0057】
それらの実装形態の追加または代替のバージョンにおいて、音響エンジン170は、MLモデルデータベース115A内に記憶された韻律特性分類モデルを使用して、オーディオデータのストリーム内に捕捉された口頭発話の1つまたは複数の韻律特性を決定するためにオーディオデータを処理することができる。オーディオデータのストリーム内に捕捉された口頭発話の韻律特性は、例えば、イントネーション、トーン、ストレス、リズム、テンポ、およびポーズのうちの1つまたは複数を含むことができる。これらの韻律特性のうちの1つまたは複数は、オーディオデータの部分に対応する特定のワードもしくはフレーズのうちの1つもしくは複数に関連付けられたアシスタントコマンドを引き起こすか、またはオーディオデータの部分に対応する特定のワードもしくはフレーズのうちの1つもしくは複数に関連付けられたアシスタントコマンドを実行させることを控えるかどうかを自動アシスタント115に知らせることができる。例えば、オーディオデータ内に捕捉された口頭発話がいかなるポーズも含まず、特定のワードまたはフレーズのうちの1つまたは複数において追加のストレスが置かれている場合、口頭発話の韻律特性のうちの1つまたは複数は、ユーザがアシスタントコマンドが実行されることを意図していた可能性がより高いことを自動アシスタント115に知らせることができる。対照的に、オーディオデータ内に捕捉された口頭発話がポーズと不確かなトーンとを含む場合、口頭発話の韻律特性のうちの1つまたは複数は、ユーザがアシスタントコマンドが実行されることを意図していなかった可能性がより高いことを自動アシスタント115に知らせることができる。
【0058】
追加のまたは代替の実装形態において、自動アシスタント115は、存在センサ113のうちの1つまたは複数によって生成されたセンサデータのインスタンスを分析することができる。自動アシスタント115は、オーディオデータのストリーム内のウォームワードを検出したことに応答してアシスタントコマンドを実行させるかどうかを決定する際、存在センサ113のうちの1つまたは複数によって生成されたセンサデータのインスタンスを考慮する。例えば、クライアントデバイス110の1つまたは複数の視覚構成要素が、口頭発話を提供したユーザの視線がクライアントデバイス110に向けられていないことを示す場合、視覚データは、ユーザがアシスタントコマンドを実行させることを意図していなかった可能性がより高いことを自動アシスタント115に知らせることができる。追加的に、または代替的に、クライアントデバイス110の1つまたは複数の加速度計が、クライアントデバイス110が動いていることを示す(およびオプションで、ユーザの視線の欠如と結び付けられる)場合、視覚データは、ユーザがアシスタントコマンドを実行させることを意図していなかった可能性がより高いことを自動アシスタント115に知らせることができる。
【0059】
次に
図2を参照すると、
図1の様々な構成要素を使用して本開示の様々な態様を実証する例示的なプロセスフローが示されている。ウォームワードアクティブ化イベントエンジン151は、ウォームワードアクティブ化イベント251の発生を監視することができる。ウォームワームイベントの発生を検出したことに応答して、ウォームワード検出エンジン152は、アクティブ化され、MLモデルデータベース115A内に記憶されたウォームワードアクティブ化イベント251に関連付けられたウォームワードモデルを使用して、クライアントデバイス110の1つまたは複数のマイクロフォン201によって生成されたオーディオデータ201Aのストリームを処理することを開始することができる。ブロック299Aに示すように、オーディオデータが1つまたは複数のウォームワードに対応しないと判定したことに応答して、ウォームワード検出エンジン152は、1つまたは複数の条件が満たされるまで、ウォームワードのうちの1つまたは複数の発生を監視し続けることができる。
【0060】
しかしながら、ブロック299Aにも示すように、オーディオデータの部分が1つまたは複数のウォームワードに対応していると判定したことに応答して、ウォームワード検出エンジン152は、(もしあれば)ウォームワードのうちの1つまたは複数に対応するオーディオデータの部分に先行するオーディオデータのプリアンブル部分201B、および/または(もしあれば)ウォームワードのうちの1つまたは複数に対応するオーディオデータの部分に続くオーディオデータのポストアンブル部分201Cを取得させることができる。さらに、オーディオデータの部分がウォームワードのうちの1つまたは複数に対応すると判定したことにも応答して、ウォームワード検出エンジン152は、ASRエンジン120A1および/もしくは120A2ならびに/またはNLUエンジン130A1および/もしくは130A2をアクティブ化させることができる。ASRエンジン120A1および/または120A2は、MLモデルデータベース115A内に記憶されたASRモデルを使用して、(例えば、オーディオデータ内に含まれるユーザの任意の発話に対して認識された)ASR出力220を生成するために、オーディオデータのプリアンブル部分201Bおよび/またはオーディオデータのポストアンブル部分201C(およびオプションでウォームワードのうちの1つまたは複数に対応するオーディオデータの部分)を処理することができる。さらに、NLUエンジン130A1および/または130A2は、MLモデルデータベース115A内に記憶されたNLUモデルを使用して、(例えば、オーディオデータ内に含まれるユーザの任意の発話に対して認識された注釈付きの)NLU出力230を生成するために、ASR出力220を処理することができる。ウォームワード検証エンジン153は、ASR出力220および/またはNLU出力230に基づいて、ユーザが実際に自動アシスタント115がアシスタントコマンドの実行を引き起こすことを意図していたかどうかを判定することができる。
【0061】
例えば、オーディオデータ201Aが、クライアントデバイス110またはクライアントデバイス110と通信する追加のクライアントデバイス(例えば、スマートスピーカ)を介して音楽を聴きながら、「音量を上げてもらえますか(will you turn the volume up)」の口頭発話を捕捉すると仮定する。この例において、ウォームワードアクティブ化イベント251は、メディアイベントに対応することができ、「音量を上げる(volume up)」というウォームワードが、メディアイベントに関連付けられた1つまたは複数のウォームワードモデルを使用して、口頭発話を捕捉するオーディオデータにおいて検出され得る。さらに、ASRエンジン120A1および/または120A2は、ASRモデルを使用して、「してください(will you turn the)」および/または「音量を上げる(volume up)」に対応する認識されたテキストを(例えば、ASR出力220として)生成するために、「してください(will you turn the)」に対応するオーディオデータのプリアンブル部分201Bおよび/または「音量を上げる(volume up)」に対応するオーディオデータの部分を処理することができる。さらに、NLUエンジン130A1および/または130A2は、NLUモデルを使用して、認識されたテキストの1つまたは複数の用語に様々な注釈を付ける注釈付きの認識されたテキストを(例えば、NLU出力230として)生成するために、「してください(will you turn the)」および/または「音量を上げる(volume up)」に対応する認識されたテキストを処理することができる。この例において、ブロック299Bに示すように、自動アシスタント115は、認識されたテキストおよび/または注釈付きの認識されたテキストに基づいて、(例えば、クライアントデバイス110において音量を上げる、またはクライアントデバイス110と通信する追加のクライアントデバイスに音量を上げる要求を送信することによって)再生している音楽の音量を上げるアシスタントコマンド215Aが実行され、アシスタントコマンド215を実行させるべきであると決定することができる。
【0062】
対照的に、オーディオデータ201Aが、クライアントデバイス110またはクライアントデバイス110と通信する追加のクライアントデバイス(例えば、スマートスピーカ)を介して音楽を聴きながら、「音量を上げないでください(please don't turn the volume up)」の口頭発話を捕捉すると仮定する。この例において、ウォームワードアクティブ化イベント251は、メディアイベントに対応することができ、「音量を上げる(volume up)」というウォームワードが、メディアイベントに関連付けられた1つまたは複数のウォームワードモデルを使用して、口頭発話を捕捉するオーディオデータにおいて検出され得る。さらに、ASRエンジン120A1および/または120A2は、ASRモデルを使用して、「しないでください(please don't turn the)」および/または「音量を上げる(volume up)」に対応する認識されたテキストを(例えば、ASR出力220として)生成するために、「しないでください(please don't turn the)」に対応するオーディオデータのプリアンブル部分201Bおよび/または「音量を上げる(volume up)」に対応するオーディオデータの部分を処理することができる。さらに、NLUエンジン130A1および/または130A2は、NLUモデルを使用して、認識されたテキストの1つまたは複数の用語に様々な注釈を付ける注釈付きの認識されたテキストを(例えば、NLU出力230として)生成するために、「しないでください(please don't turn the)」および/または「音量を上げる(volume up)」に対応する認識されたテキストを処理することができる。この例において、ブロック299Bに示すように、自動アシスタント115は、認識されたテキストおよび/または注釈付きの認識されたテキストに基づいて、再生している音楽の音量を変えるアシスタントコマンドが実行されるべきではないと決定し、アシスタントコマンドが実行されることを控えることができる。
【0063】
いくつかの実装形態において、自動アシスタント115がアシスタントコマンドを実行させることを決定するかどうかは、口頭発話を提供したユーザの身元が検証されたかどうかと、識別されたユーザが、(例えば、
図1、
図5、および
図6A~
図6Cに関した上記で説明したようにユーザ検証エンジン160を使用して決定された)アシスタントコマンドの実行を引き起こすことを許可されていることとに基づくことができる。例えば、ウォームワードアクティブ化イベントが、電子通信(例えば、通話、テキストメッセージ、電子メール、ソーシャルメディアメッセージなど)がクライアントデバイス110において受信されることに対応する実装形態において、ユーザの識別は、自動アシスタント115がアシスタントコマンドを実行させる前に実行される必要がある場合がある。別の例として、ウォームワードアクティブ化イベントが、特定のデバイスが制御されること(例えば、スマートロック、スマートオーブンなどのスマート家電、スマートガレージドアオープナーなど)に対応する実装形態において、ユーザの識別は、自動アシスタント115がアシスタントコマンドを実行させる前に実行される必要がある場合がある。
【0064】
特定の実装形態について
図2のプロセスフローに関して説明するが、それは例のためであり、限定することを意味していないことが理解されるべきである。例えば、オーディオデータ201Aは、「家までの道順を教えて(show me directions home)」の口頭発話を捕捉すると仮定する。この例において、検出されたウォームワードアクティブ化イベント251は、ナビゲーションアプリケーションがクライアントデバイス110においてアクセス可能であることに対応し得る。したがって、ナビゲーションイベントに関連付けられた1つまたは複数のウォームワードモデルは、1つまたは複数のナビゲーション関連ウォームワードの発生を継続的に監視し得る。さらに、自動アシスタントは、(例えば、音響エンジン170に関して説明したように)アシスタントコマンドを実行させるかどうかを決定する際に、追加のまたは代替の信号を利用することができる。
【0065】
本明細書で説明する技法を使用することによって、1つまたは複数の技術的利点が達成され得る。1つの非限定的な例として、本明細書で説明する技法は、自動アシスタントが、ウォームワードについて文脈的オーディオデータを処理することに基づいて、ユーザが、実際に、アシスタントコマンドの実行を引き起こすウォームワードの発生を意図していたかどうかを判定することを可能にする。結果として、ウォームワードの誤検出の量は、低減され得、それによって、自動アシスタントがアシスタントコマンドを実行させる際に1つまたは複数のネットワークを利用する場合に、クライアントデバイスにおける計算リソースおよび/またはネットワークリソースを節約する。さらに、クライアントデバイスのユーザが任意のアシスタントコマンドを修正または取り消すためのアクションを起こす必要がないので、ユーザ入力の量が低減され得、それによって、クライアントデバイスにおける計算リソースを節約する。さらに、本明細書で説明する様々な自動アシスタント機能は、本明細書で説明するように、必要になるまで休止状態のままでいることができ、それによって、クライアントデバイスにおける計算リソースを節約する。別の非限定的な例として、本明細書で説明する技法は、自動アシスタントが、SIDおよび/または他の技法を使用して、ウォームワードを含む口頭発話を提供するユーザの身元を検証することを可能にする。結果として、許可されたユーザのみが、特定のアシスタントコマンドを実行させることができ、それによって、クライアントデバイスのユーザに関連付けられたデータのデータセキュリティを向上させる。
【0066】
次に
図3を参照すると、文脈的オーディオデータに基づいてアシスタントコマンドを実行させるかどうかを決定する例示的な方法300を示すフローチャートが示されている。便宜上、方法300の動作について、動作を実行するシステムを参照して説明する。方法300のこのシステムは、1つまたは複数のプロセッサ、メモリ、および/またはコンピューティングデバイスの他の構成要素(例えば、
図1、
図4A~
図4C、および
図6A~
図6Cのクライアントデバイス110、および/もしくは
図7のコンピューティングデバイス710、1つもしくは複数のサーバ、ならびに/または他のコンピューティングデバイス)を含む。さらに、方法300の動作が特定の順序において示されているが、これは、限定することを意味していない。1つまたは複数の動作が、並べ替えられ得、省略され得、および/または追加され得る。
【0067】
ブロック352において、システムは、ウォームワードアクティブ化イベントの発生を監視する。ウォームワードアクティブ化イベントは、例えば、クライアントデバイスにおいて受信される通話、クライアントデバイスにおいて受信されるテキストメッセージ、クライアントデバイスにおいて受信される電子メール、クライアントデバイスにおいて鳴るアラームもしくはタイマ、クライアントデバイスもしくはクライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、クライアントデバイスにおいて受信される通知、クライアントデバイスの場所、クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーション、および/またはクライアントデバイスもしくはクライアントデバイスと通信する追加のクライアントデバイスを制御させるために、ユーザが口頭発話を提供することができる、クライアントデバイスに関連付けられた他のイベントを含むことができる。特に、これらのウォームワードアクティブ化イベントのうちのいくつかは、個別のイベント(例えば、クライアントデバイスにおいて受信される通話、クライアントデバイスにおいて受信されるテキストメッセージ、クライアントデバイスにおいて受信される電子メール、クライアントデバイスにおいて鳴るアラームまたはタイマなど)であり、一方、これらのウォームワードアクティブ化イベントのうちの他のいくつかは、連続的なイベント(例えば、クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーション)である。さらに、これらのウォームワードアクティブ化イベントは、相互に排他的ではないことが留意されるべきである。別の言い方をすれば、システムは、所与の時間インスタンスにおいて複数のウォームワードアクティブ化イベントを検出することができる。ブロック352の反復において、システムがウォームワードアクティブ化イベントの発生を検出しない場合、システムは、ブロック352においてウォームワードアクティブ化イベントの発生を監視し続けることができる。ブロック352の反復において、システムがウォームワードアクティブ化イベントの発生を検出した場合、システムは、ブロック354に進むことができる。
【0068】
ブロック354において、システムは、1つまたは複数のウォームワードモデルを使用して、1つまたは複数の特定のワードおよび/またはフレーズ(例えば、ウォームワード)の発生を監視するためにオーディオデータのストリームを処理する。ブロック352においてウォームワードアクティブ化イベントの発生を検出したことに応答して、システムは、1つまたは複数のウォームワームモデルを利用する1つまたは複数の自動アシスタント構成要素を引き起こすことができる。オーディオデータのストリームを処理するために利用される1つまたは複数のウォームワードモデルは、ブロック352において検出されたウォームワードアクティブ化イベントに関連付けられ得る。例えば、ブロック352において検出されたウォームワードアクティブ化イベントが、クライアントデバイスにおいて通話が受信されたことに対応する場合、通話イベントに関連付けられた1つまたは複数のウォームワードモデルが、オーディオデータのストリームを処理するために利用され得る。別の例として、ブロック352において検出されたウォームワードアクティブ化イベントが、クライアントデバイスにおいてメディアが再生されていることに対応する場合、メディアイベントに関連付けられた1つまたは複数のウォームワードモデルが、オーディオデータのストリームを処理するために利用され得る。
【0069】
ブロック356において、システムは、オーディオデータのストリームにおいて特定のワードおよび/またはフレーズのうちの1つまたは複数の発生が検出されたかどうかを判定する。システムは、1つまたは複数の条件が満たされるまで、特定のワードおよび/またはフレーズのうちの1つまたは複数の発生を監視し続けることができる。1つまたは複数の条件は、例えば、閾値持続時間の経過、特定のワードもしくはフレーズのうちの1つまたは複数を検出すること、ウォームワードアクティブ化イベントが終了したと判定すること、および/または他の条件を含むことができる。ブロック356の反復において、システムが特定のワードおよび/またはフレーズのうちの1つまたは複数の発生を検出しない場合、システムは、ブロック354に戻り、条件のうちの1つまたは複数が満たされるまで、オーディオデータのストリームを処理することと、ブロック356において特定のワードおよび/またはフレーズのうちの1つまたは複数の発生を監視することとを継続することができる。ブロック356の反復において、システムが特定のワードおよび/またはフレーズのうちの1つまたは複数の発生を検出した場合、システムは、ブロック358に進むことができる。
【0070】
ブロック358において、システムは、ウォームワードに加えて(例えば、ウォームワードに先行するまたは続く)追加の音声アクティビティが存在するかどうかを判定する。システムは、VADモデルを使用して、オーディオデータのストリームが、特定のワードおよび/またはフレーズのうちの1つまたは複数に対応するオーディオデータの部分に加えて任意の追加のオーディオデータを捕捉するかどうかを判定するために、オーディオデータのストリームを処理することができる。別の言い方をすれば、システムは、追加の発言に対応するオーディオデータが、特定のワードおよび/またはフレーズのうちの1つまたは複数を解釈する際に文脈的オーディオデータ(例えば、オーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分)として利用され得るように、ユーザが特定のワードおよび/またはフレーズのうちの1つまたは複数に加えて任意の追加の発言を提供したかどうかを判定するために、VADモデルを利用することができる。ブロック358の反復において、システムが、ウォームワードに加えて任意の追加の音声アクティビティが存在しないと判定した場合、システムは、ブロック366に進み、自動アシスタントに、特定のワードおよび/またはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させる。特に、ブロック366に進む際に、システムは、ASRおよび/またはNLUをバイパスし得る。ブロック358の反復において、システムが、ウォームワードに加えて追加の音声アクティビティが存在すると判定した場合、システムは、ブロック360に進む。いくつかの実装形態において、ブロック358の動作は、省略され得、システムは、直接ブロック360に進み得る。
【0071】
ブロック360において、システムは、ASRモデルを使用して、ASR出力を生成するためにオーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分を処理する。システムは、追加的または代替的に、ASRモデルを使用して、(例えば、オーディオデータの単一のインスタンスとして)オーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分とともに、ASR出力を生成する際に、ウォームワードに対応するオーディオデータの部分を処理することができる。ASRモデルを利用する1つまたは複数の自動アシスタント構成要素が、ブロック356において特定のワードおよび/もしくはフレーズのうちの1つまたは複数の発生を検出したことに応答して、ならびに/またはブロック358において追加の音声アクティビティが存在すると判定したことに応答してアクティブ化され得る。様々な実装形態において、ASR出力は、ウォームワードモデルに関連付けられた特定のワードおよび/またはフレーズのうちの1つまたは複数に偏らせられ得る。ブロック362において、システムは、NLUモデルを使用して、NLU出力を生成するためにASR出力を処理する。ブロック360に関して上記で説明したのと同様に、NLUモデルを利用する1つまたは複数の自動アシスタント構成要素が、ブロック356において特定のワードおよび/もしくはフレーズのうちの1つもしくは複数の発生を検出したことに応答して、ならびに/またはブロック358において追加の音声アクティビティが存在することを判定したことに応答してアクティブ化され得る。
【0072】
ブロック364において、システムは、ウォームワードを含み、オーディオデータのストリーム内に取り込まれた口頭発話を提供したユーザが、ブロック356において検出されたウォームワードに関連付けられたアシスタントコマンドが自動アシスタントによって実行されることを意図していたかどうかを判定する。システムは、ブロック360において生成されたASR出力および/またはブロック362において生成されたNLU出力に基づいて、ユーザがアシスタントコマンドが自動アシスタントによって実行されることを意図していたかどうかを判定することができる。ブロック364の反復において、システムが、アシスタントコマンドが自動アシスタントによって実行されることをユーザが意図していたと判定した場合、システムは、ブロック366に進む。ブロック366において、システムは、自動アシスタントに、ブロック356において検出されたウォームワードに関連付けられたアシスタントコマンドを実行させる。ブロック364の反復において、システムが、アシスタントコマンドが自動アシスタントによって実行されることをユーザが意図していなかったと判定した場合、システムは、ブロック368に進む。ブロック368において、システムは、自動アシスタントに、ブロック356において検出されたウォームワードに関連付けられたアシスタントコマンドを実行させることを控える。
【0073】
次に
図4A、
図4B、および
図4Cを参照すると、
図3の方法300を利用して、文脈的オーディオデータに基づいて、アシスタントコマンドを実行させるかどうかを決定する様々な非限定的な例が示されている。自動アシスタントは、クライアントデバイス110において少なくとも部分的に実装され得る(例えば、
図1に関して説明した自動アシスタント115)。自動アシスタントは、(例えば、
図3の方法300に関して説明したように)文脈的オーディオデータに基づいて、アシスタントコマンドを実行させるかどうかを決定するために、ウォームワードシステム180(例えば、
図1に関して説明したウォームワードシステム180)を利用することができる。
【0074】
図4A、
図4B、および
図4Cに示すクライアントデバイス110は、例えば、口頭発話および/または他の可聴入力に基づいてオーディオデータを生成するマイクロフォン、合成発言および/または他の可聴出力を可聴的にレンダリングするスピーカ、ならびにタッチ入力を受信する、および/または転写および/もしくは他の視覚出力を視覚的にレンダリングするディスプレイ190を含む、様々なユーザインターフェース構成要素を含み得る。さらに、クライアントデバイス110のディスプレイ190は、クライアントデバイス110に(例えば、
図6Bおよび
図6Cに関して説明するように)1つまたは複数のアクションを実行させるために、クライアントデバイス110のユーザによって対話され得る様々なシステムインターフェース要素(例えば、ハードウェアおよび/またはソフトウェアインターフェース要素)を含む。
図4A~
図4Cに示すクライアントデバイス110は、モバイルデバイスであるが、それは例のためであり、限定することを意味していないことが理解されるべきである。
【0075】
特に
図4Aを参照すると、クライアントデバイス110に関連付けられたユーザ101が、環境400内に追加のユーザ102と同一位置に配置されていると仮定する。クライアントデバイス110において通話が受信されたとさらに仮定する。この例において、自動アシスタントは、クライアントデバイス110において受信されている通話がウォームワードアクティブ化イベントに対応すると判定することができる。結果として、自動アシスタントは、通話イベントに関連付けられた1つまたは複数のウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化することができる。通話イベントに関連付けられた1つまたは複数のウォームワードモデルは、検出されると自動アシスタントに特定のワードおよび/またはフレーズに関連付けられた特定のアクションを実行させる、通話イベントに関連付けられた特定のワードおよび/またはフレーズ(例えば、「応答(answer)」、「辞退(decline)」、「スクリーンコール(screen call)」、「ボイスメールに送信(send to voicemail)」の発生を監視するために、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータのストリームを処理するために利用され得る。
【0076】
例えば、
図4Aに示すように、クライアントデバイス110が鳴っている間に、クライアントデバイス110のユーザ101が、「応答(Answer)」の口頭発話452Aを提供したと仮定する。この例において、自動アシスタントは、通話イベントに関連付けられた1つまたは複数のウォームワードモデルを使用して、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータのストリームを処理する際、オーディオデータが、検出されるとユーザ101の代わりに自動アシスタントに通話に応答させる「応答(Answer)」のウォームワードに対応すると判定することができる。さらに、自動アシスタントは、任意の追加の音声アクティビティが存在するかどうかを判定するために、VADモデルを使用して、オーディオデータのストリームを処理させることができる。この例において、VADモデルを使用して生成された出力は、追加の音声アクティビティが存在しないことを示すことになり、結果として、ユーザ101が実際に口頭発話452Aが通話に応答させることを意図していたかどうかを判定するために処理されるべき文脈的オーディオデータが存在しないことを示すことになる。結果として、自動アシスタントは、クライアントデバイス110において通話に応答させることになる。
【0077】
対照的に、
図4Bに示すように、クライアントデバイス110が鳴っている間に、クライアントデバイス110のユーザ101が、「今は出ない。後でかけ直す(I won't answer it now, I'll call them back later)」の口頭発話452Bを提供したと仮定する。この例において、自動アシスタントは、通話イベントに関連付けられた1つまたは複数のウォームワードモデルを使用して、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータのストリームを処理する際、オーディオデータの一部が、検出されるとユーザ101の代わりに自動アシスタントに通話に応答させる「応答(Answer)」のウォームワードに対応すると判定することができる。さらに、自動アシスタントは、任意の追加の音声アクティビティが存在するかどうかを判定するために、VADモデルを使用して、オーディオデータのストリームを処理させることができる。この例において、VADモデルを使用して生成された出力は、追加の音声アクティビティが存在することを示すことになり、結果として、ユーザ101が実際に口頭発話452Bが通話に応答させることを意図していたかどうかを判定するために処理されるべき文脈的オーディオデータが存在することを示すことになる。結果として、自動アシスタントは、オーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分を取得させることになる。
【0078】
この例において、オーディオデータのプリアンブル部分は、口頭発話452Bの「しない(I won't)」に対応する。自動アシスタントは、オーディオデータのプリアンブル部分に対するASR出力を生成するために、ASRモデルを使用してオーディオデータのプリアンブル部分を処理させることができる。さらに、自動アシスタントは、オーディオデータのプリアンブル部分に対するNLU出力を生成するために、NLUモデルを使用してASR出力を処理させることができる。自動アシスタントは、オーディオデータのプリアンブル部分に対するASR出力および/またはNLU出力に基づいて、ユーザ101が実際に口頭発話452Bが通話に応答させることを意図していたかどうかを判定することができる。例えば、自動アシスタントは、ASR出力および/またはNLU出力に基づいて、「しない(won't)」が「応答(Answer)」というウォームワードを否定していると判定することができる。したがって、この例において、自動アシスタントは、オーディオデータのプリアンブル部分を処理することに基づいて、クライアントデバイス110において通話に応答させることを控えることになる。様々な実装形態において、本明細書で説明するウォームワードモデルに加えて、1つまたは複数のネガティブウォームワードモデルが追加的または代替的に利用され得る。これらの実装形態において、1つまたは複数のネガティブウォームワードモデルは、ウォームワードを否定するウォームワードに近接する他のワードおよび/またはフレーズ(例えば、「しない(won't)」、「できない(can't)、「しない(don't)」など)を検出するために利用され得る。さらに、これらのネガティブウォームワードモデルのうちの1つまたは複数がウォームワードに近接する他のワードおよび/またはフレーズを検出した場合、ASRモデルおよび/またはNLUモデルを利用する1つまたは複数の自動アシスタント構成要素が休止中のままであり得る。
【0079】
いくつかの実装形態において、自動アシスタントが、オーディオデータのプリアンブル部分を処理することに基づいて、ユーザ101が実際に口頭発話452Bが通話に応答させることを意図していたかどうかを判定することができないと仮定すると、自動アシスタントは、さらに、オーディオデータのポストアンブル部分(例えば、口頭発話452Bの「後でかけ直す(I'll call them back later)」に対応する)に対するASR出力を生成するために、ASRモデルを使用してオーディオデータのポストアンブル部分を処理させることができる。さらに、自動アシスタントは、オーディオデータのポストアンブル部分に対するNLU出力を生成するために、NLUモデルを使用してASR出力を処理させることができる。自動アシスタントは、オーディオデータのポストアンブル部分に対するASR出力および/またはNLU出力に基づいて、ユーザ101が実際に口頭発話452Bが通話に応答させることを意図していたかどうかを判定することができる。例えば、自動アシスタントは、ASR出力および/またはNLU出力に基づいて、オーディオデータのポストアンブル部分が「応答(Answer)」というウォームワードを否定するように、「後でかけ直す(I'll call them back later)」が、ユーザ101がこの時間インスタンスにおいて通話が応答されることを意図していないことを示すと判定することができる。したがって、この例において、自動アシスタントは、オーディオデータのポストアンブル部分をさらに処理することに基づいて、クライアントデバイス110において通話に応答させることを控えることになる。
【0080】
別の例として、
図4Cに示すように、クライアントデバイス110が鳴っている間に、クライアントデバイス110に関連付けられたユーザ101の環境内の同じ場所にいる追加のユーザ102が、「それに応答するつもりですか(Are you going to answer that?)」の口頭発話452Cを提供したと仮定する。この例において、自動アシスタントは、通話イベントに関連付けられた1つまたは複数のウォームワードモデルを使用して、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータのストリームを処理する際、オーディオデータが、検出されるとユーザ101の代わりに自動アシスタントに通話に応答させる「応答(Answer)」のウォームワードに対応すると判定することができる。さらに、自動アシスタントは、任意の追加の音声アクティビティが存在するかどうかを判定するために、オーディオデータのストリームを処理させることができる。この例において、VADモデルを使用して生成された出力は、追加の音声アクティビティが存在することを示すことになり、結果として、処理されるべき文脈的オーディオデータが存在することを示すことになる。しかしながら、
図4Aおよび
図4Bの例とは対照的に、口頭発話452Cは、追加のユーザ102によって提供され、クライアントデバイス110に関連付けられたユーザ101によって提供されていない。
【0081】
追加または代替の実装形態において、
図5および
図6A~
図6Cに関して説明したように、口頭発話452A、452B、および/または452Cを提供したユーザの身元が、自動アシスタントがアシスタントコマンドを実行させる前に検証される必要がある場合がある。さらに、自動アシスタントは、追加的または代替的に、識別されたユーザがアシスタントコマンドの実行を引き起こすことを許可されていることを判定する必要がある場合がある。自動アシスタントが口頭発話を提供したユーザの身元を検証する必要がある、および/またはユーザが許可されているかどうかを判定する必要があるこれらのアシスタントコマンドは、特定のウォームワードモデルに関連付けられたアシスタントコマンド、クライアントデバイス110においてアクセス可能な特定のソフトウェアアプリケーションに関連付けられたアシスタントコマンド、アシスタントコマンドに基づいて制御されるべき特定のデバイスに関連付けられたアシスタントコマンド、および/またはアシスタントコマンドの他のサブセットであり得る。
【0082】
それにもかかわらず、
図4Cに関して、自動アシスタントは、オーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分を依然として取得させることができる。別の言い方をすれば、自動アシスタントは、発話がアシスタントコマンドを実行させることを意図されていない場合、口頭発話452Cを提供した追加のユーザ102の身元を検証することを試みない場合がある。この例において、オーディオデータのプリアンブル部分は、口頭発話452Cの「するつもりですか(Are you going to)」に対応する。自動アシスタントは、オーディオデータのプリアンブル部分に対してASR出力およびNLU出力を生成するために、上記で説明したのと同じまたは同様の方法において(およびオプションで、(例えば、オーディオデータの単一のインスタンスまたはオーディオデータの複数の異種のインスタンスとして)特定の用語もしくはフレーズのうちの1つもしくは複数に対応するオーディオデータの部分、および/またはオーディオデータのポストアンブル部分と組み合わせて)オーディオデータのプリアンブル部分を処理させることができる。さらに、自動アシスタントは、オーディオデータのプリアンブル部分に対するASR出力および/またはNLU出力に基づいて、追加のユーザ102が実際に、口頭発話452Cが通話に応答させることを意図していたかどうかを判定することができる。例えば、自動アシスタントは、ASR出力および/またはNLU出力に基づく「するつもりですか(Are you going to)」が、追加のユーザ102によってクライアントデバイス110に関連付けられたユーザ101に提起された質問に対応し、通話に応答させることを意図していないと判定することができる。したがって、この例において、自動アシスタントは、オーディオデータのプリアンブル部分を処理すること(およびオプションで、口頭発話452Cの「それ(that)」に対応するポストアンブルオーディオデータのさらなる処理)に基づいて、クライアントデバイス110において通話に応答させることを控えることになる。
【0083】
図4A~
図4Cについて、特定のアシスタントコマンドを実行させる特定のウォームワードに関して説明しているが、それは例のためであり、限定することを意味していないことが理解されるべきである。むしろ、
図4A~
図4Cに関して説明した技法は、任意のウォームワードアクティブ化イベントを検出し、ウォームワードアクティブ化イベントに関連付けられたウォームワードモデルを使用して任意のウォームワードを検出し、任意のアシスタントコマンドを実行させるために利用され得る。
【0084】
次に
図5を参照すると、話者識別に基づいて、アシスタントコマンドを実行させるかどうかを判定する例示的な方法500を示すフローチャートが示されている。便宜上、方法500の動作について、動作を実行するシステムを参照して説明する。方法500のこのシステムは、1つまたは複数のプロセッサ、メモリ、および/またはコンピューティングデバイスの他の構成要素(例えば、
図1、
図4A~
図4C、および
図6A~
図6Cのクライアントデバイス110、および/もしくは
図7のコンピューティングデバイス710、1つもしくは複数のサーバ、ならびに/または他のコンピューティングデバイス)を含む。さらに、方法500の動作が特定の順序において示されているが、これは、限定することを意味していない。1つまたは複数の動作が、並べ替えられ得、省略され得、および/または追加され得る。
【0085】
ブロック552において、システムは、ウォームワードアクティブ化イベントの発生を監視する。ブロック552の反復において、システムがウォームワードアクティブ化イベントの発生を検出しない場合、システムは、ブロック552においてウォームワードアクティブ化イベントの発生を監視し続けることができる。ブロック552の反復において、システムがウォームワードアクティブ化イベントの発生を検出した場合、システムは、ブロック554に進むことができる。ブロック554において、システムは、1つまたは複数のウォームワードモデルを使用して、1つまたは複数の特定のワードおよび/またはフレーズ(例えば、ウォームワード)の発生を監視するためにオーディオデータのストリームを処理する。ブロック356において、システムは、オーディオデータのストリーム内で特定のワードおよび/またはフレーズのうちの1つまたは複数の発生が検出されたかどうかを判定する。ブロック556の反復において、システムが特定のワードおよび/またはフレーズのうちの1つまたは複数の発生を検出しない場合、システムは、ブロック554に戻り、条件のうちの1つまたは複数が満たされるまで、オーディオデータのストリームを処理することと、ブロック556において特定のワードおよび/またはフレーズのうちの1つまたは複数の発生を監視することとを継続することができる。ブロック556の反復において、システムが特定のワードおよび/またはフレーズのうちの1つまたは複数の発生を検出した場合、システムは、ブロック558に進む。ブロック552、554、および556の動作は、それぞれ、
図3の方法300のブロック352、354、および356に関して説明したのと同じまたは同様の方法において実行され得る。
【0086】
ブロック558において、システムは、特定のワードおよび/またはフレーズのうちの1つまたは複数を含むオーディオデータのストリーム内に捕捉された口頭発話を提供したユーザの身元を検証するかどうかを決定する。システムは、特定のワードおよび/またはフレーズのうちの1つまたは複数が、特定のウォームワードモデルに関連付けられていること、ユーザのクライアントデバイスにおいてアクセス可能な特定のソフトウェアアプリケーションに関連付けられていること、アシスタントコマンドに基づいて制御されるべき特定のデバイスに関連付けられていること、および/またはアシスタントコマンドの他のサブセットに基づいて、口頭発話を提供したユーザの身元を検証するかどうかを決定することができる。例えば、アシスタントコマンドがクライアントデバイスにおいて再生されているメディアまたはスマートライトを制御させる実装形態において、ユーザの身元は、検証される必要がない場合がある。しかしながら、アシスタントコマンドが着信電子通信(例えば、通話、テキストメッセージ、電子メール、ソーシャルメディアメッセージなど)に返信させるか、またはスマートロックを制御させる実装形態において、ユーザの身元は、検証される必要がある場合がある。ブロック558の反復において、システムが、口頭発話を提供したユーザの身元が検証される必要がないと判定した場合、システムは、
図3のブロック358に進み、
図2の方法300の実行を継続することができる。ブロック558の反復において、システムが、口頭発話を提供したユーザの身元が検証される必要があると判定した場合、システムは、ブロック560に進むことができる。
【0087】
ブロック560において、システムは、オーディオデータのストリーム内に含まれるオーディオデータがTI SIDを実行するのに十分であるかどうかを判定する。システムは、オーディオデータ内に捕捉された口頭発話の長さを閾値長と比較することによって、オーディオデータのストリーム内に含まれるオーディオデータがTI SIDを実行するのに十分であるかどうかを判定することができる。システムは、口頭発話が閾値長を満たす場合、オーディオデータがTI SIDを実行するのに十分であると判定することができる。ブロック560の反復において、システムが、オーディオデータがTI SIDを実行するのに十分であると判定した場合、システムは、ブロック562に進むことができる。ブロック562において、システムは、TI SIDモデルを使用して、ユーザの身元を検証するためにオーディオデータを処理する。ブロック566において、ブロック562から、システムは、ユーザの身元が検証されたかどうかを判定する。例えば、システムは、口頭発話を提供したユーザに関するTI話者埋め込みを生成するために、TI SIDモデルを使用してオーディオデータを処理することができる。さらに、システムは、埋め込み空間において、口頭発話を提供したユーザに関するTI話者埋め込みを、クライアントデバイスの1人または複数のユーザに関する1つまたは複数の以前に生成されたTI話者埋め込みと比較することができる。さらに、システムは、比較に基づいて決定された距離メトリックに基づいて、TI話者埋め込みが以前に生成されたTI話者埋め込みのうちの1つまたは複数に対応するかどうかを判定することができる。ブロック566の反復において、ブロック562から、システムが、距離メトリックが距離閾値を満たすと判定した場合、口頭発話を提供したユーザの身元は、クライアントデバイスに関連付けられたユーザとして検証され得、識別されたユーザがアシスタントコマンドの実行を引き起こすことを許可されていると仮定すると、ブロック568において、システムは、自動アシスタントにアシスタントコマンドを実行させることができる。しかしながら、ブロック566の反復において、ブロック562から、システムが、距離メトリックが距離閾値を満たしていないと判定した場合、システムは、ブロック570において、自動アシスタントにアシスタントコマンドを実行させるために、ユーザの身元の追加の検証のためのプロンプトを生成および提供する(例えば、口頭発話を提供したユーザに顔紋識別または指紋識別を提供するように要求する)。
【0088】
ブロック560の反復において、システムが、オーディオデータがTI SIDを実行するのに十分ではないと判定した場合、システムは、ブロック564に進むことができる。ブロック564において、システムは、TD SIDモデルを使用して、ユーザの身元を検証するためにオーディオデータを処理する。ブロック566において、ブロック562から、システムは、ユーザの身元が検証されたかどうかを判定する。例えば、システムは、口頭発話を提供したユーザに関するTD話者埋め込みを生成するために、TD SIDモデルを使用してオーディオデータを処理することができる。さらに、システムは、埋め込み空間において、口頭発話を提供したユーザに関するTD話者埋め込みを、クライアントデバイスの1人または複数のユーザに関する1つまたは複数の以前に生成されたTI話者埋め込みと比較することができる。特に、TD話者埋め込みは、1つまたは複数の特定のワードおよび/またはフレーズ(例えば、ブロック556において検証されたウォームワードに対応するオーディオデータの部分)に関する話者埋め込みに対応する。さらに、システムは、比較に基づいて決定された距離メトリックに基づいて、TD話者埋め込みが特定のワードおよび/またはフレーズのうちの1つまたは複数に関する以前に生成されたTD話者埋め込みのうちの1つまたは複数に対応するかどうかを判定することができる。ブロック566の反復において、ブロック564から、システムが、距離メトリックが距離閾値を満たすと判定した場合、口頭発話を提供したユーザの身元は、クライアントデバイスに関連付けられたユーザとして検証され得、識別されたユーザがアシスタントコマンドの実行を引き起こすことを許可されていると仮定すると、ブロック568において、システムは、自動アシスタントにアシスタントコマンドを実行させることができる。しかしながら、ブロック566の反復において、ブロック564から、システムが、距離メトリックが距離閾値を満たしていないと判定した場合、システムは、ブロック570において、自動アシスタントにアシスタントコマンドを実行させるために、ユーザの身元の追加の検証のためのプロンプトを生成および提供することができる(例えば、口頭発話を提供したユーザにTI SID検証もしくはTD SID検証のための例示的な発話を提供するように要求する、および/または口頭発話を提供したユーザに顔紋識別もしくは指紋識別を提供するように要求する)。
【0089】
特に、
図5について、口頭発話を提供したユーザの身元を検証するためにTI SIDとTD SIDとを別々に実行することに関して説明しているが、それは例のためであり、限定することを意味していないことが理解されるべきである。例えば、口頭発話がTI SIDを実行するのに十分な長さのものである実装形態において、口頭発話を提供したユーザの身元を検証するために、TI SIDとTD SIDとの両方が実行され得る。別の例として、様々な実装形態において、以前に生成されたTD話者埋め込みのうちの1つまたは複数が口頭発話内に捕捉された1つまたは複数の特定のワードおよび/またはフレーズに対応すると判定された場合、TD SIDのみが実行され得る。さらに、これらの技法は、同じユーザによって提供されたオーディオデータのストリーム内に捕捉された口頭発話の部分を検証するために利用され得る。例えば、オーディオデータのストリームが、「しない(don't)」の第1のユーザからの第1の口頭発話と、「応答(answer)」の第2のユーザからの第2の口頭発話とを捕捉すると仮定する。第2のユーザがクライアントデバイスに関連付けられ、許可された応答であり、「応答(answer)」の口頭発話に関する第2のユーザに関するTD話者埋め込みが以前に生成されており、クライアントデバイスにおいて記憶されているとさらに仮定する。この場合、TD SIDモデルを使用して生成されたTD話者埋め込みは、第2のユーザが、クライアントデバイスにおける着信通話に応答するためのアシスタントコマンドの実行を引き起こすことを許可された検証済みユーザであることを示すことができる。さらに、「しない(don't)」という口頭発話および「応答(answer)」という口頭発話に関する複数のTI話者埋め込みは、異なるユーザがオーディオデータのストリーム内に捕捉された口頭発話を提供したことを示すことができる。したがって、この例において、このシステムは、自動アシスタントに着信通話に応答させることができる。
【0090】
次に
図6A、
図6B、および
図6Cを参照すると、
図5の方法500を利用して、話者識別に基づいてアシスタントコマンドが実行されるかどうかを判定する様々な非限定的な例が示されている。自動アシスタントは、クライアントデバイス110において少なくとも部分的に実装され得る(例えば、
図1に関して説明した自動アシスタント115)。自動アシスタントは、(例えば、
図5の方法500に関して説明したように)文脈的オーディオデータに基づいてアシスタントコマンドを実行させるかどうかを判定するために、ウォームワードシステム180(例えば、
図1に関して説明したウォームワードシステム180)を利用することができる。
【0091】
図4A~
図4Cに示すクライアントデバイスと同様に、
図6A~
図6C 6Cは、例えば、口頭発話および/または他の可聴入力に基づいてオーディオデータを生成するマイクロフォン、合成発言および/または他の可聴出力を可聴的にレンダリングするスピーカ、ならびにタッチ入力を受信する、および/または転写および/もしくは他の視覚出力を視覚的にレンダリングするディスプレイ190を含む、様々なユーザインターフェース構成要素を含み得る。さらに、
図6Bおよび
図6Cに示すように、クライアントデバイス110のディスプレイ190は、クライアントデバイス110に1つまたは複数のアクションを実行させるために、クライアントデバイス110のユーザによって対話され得る様々なシステムインターフェース要素191、192、および193(例えば、ハードウェアおよび/またはソフトウェアインターフェース要素)を含む。クライアントデバイス110のディスプレイ190は、タッチ入力によって(例えば、ディスプレイ190またはその一部(例えば、ディスプレイ190のテキスト入力ボックス194または他の部分)にユーザ入力を向けることによって)、および/または口頭入力によって(例えば、マイクロフォンインターフェース要素195を選択することによって、または必ずしもマイクロフォンインターフェース要素195を選択することなく単に話すことによって)、ユーザがディスプレイ190上にレンダリングされたコンテンツと対話することを可能にする(すなわち、自動アシスタントは、1つもしくは複数の特定の用語もしくはフレーズ、ジェスチャ、視線、口の動き、唇の動き、および/またはクライアントデバイス110において口頭入力をアクティブ化する他の条件を監視し得る)。
図6A~
図6Cに示すクライアントデバイス110は、モバイルデバイスであるが、それは例のためであり、限定することを意味していないことが理解されるべきである。
【0092】
特に
図6Aを参照すると、クライアントデバイス110に関連付けられたユーザ101が、環境600内に追加のユーザ102と同一位置に配置されていると仮定する。クライアントデバイス110において通話が受信されたとさらに仮定する。この例において、自動アシスタントは、クライアントデバイス110において受信されている通話がウォームワードアクティブ化イベントに対応すると判定することができる。結果として、自動アシスタントは、通話イベントに関連付けられた1つまたは複数のウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化することができる。通話イベントに関連付けられた1つまたは複数のウォームワードモデルは、検出されると自動アシスタントに特定のワードおよび/またはフレーズに関連付けられた特定のアクションを実行させる、通話イベントに関連付けられた特定のワードおよび/またはフレーズ(例えば、「応答(answer)」、「辞退(decline)」、「スクリーンコール(screen call)」、「ボイスメールに送信(send to voicemail)」の発生を監視するために、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータのストリームを処理するために利用され得る。
【0093】
例えば、
図6Aに示すように、クライアントデバイス110が鳴っている間に、追加のユーザ102が「応答(Answer)」の口頭発話652Aを提供したと仮定する。特に、
図4Aとは対照的に、「応答(Answer)」の口頭発話652Aは、追加のユーザ102によって提供され、クライアントデバイス110に関連付けられたユーザ101によって提供されていない。この例において、自動アシスタントは、通話イベントに関連付けられた1つまたは複数のウォームワードモデルを使用して、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータのストリームを処理する際、オーディオデータが、検出されると自動アシスタントに通話に応答させる「応答(Answer)」のウォームワードに対応すると判定することができる。さらに、自動アシスタントに通話に応答させるために、口頭発話652Aを提供したユーザ(例えば、追加のユーザ102)の身元が検証される必要があると仮定する。
【0094】
この例において、自動アシスタントは、口頭発話652Aが、口頭発話を提供したユーザの身元を検証するためにTI SIDを実行するのに十分な長さのものであるかどうかを判定することができる。この例において、口頭発話652AがTI SIDを実行するのに十分な長さのものではないとさらに仮定する。しかしながら、自動アシスタントは、TD SIDを使用して、口頭発話652Aを提供したユーザの身元を検証することを試みることができる(そして、TI SIDが実行されるかどうかに関係なく、「応答(Answer)」に関する1つまたは複数の以前に生成されたTD話者埋め込みが存在すると仮定する)。例えば、自動アシスタントは、TD SIDモデルを使用して、「応答(Answer)」に関するTD話者埋め込みを生成するために1つまたは複数の特定のワードおよび/またはフレーズに対応するオーディオデータの部分を処理することができる。さらに、自動アシスタントは、埋め込み空間において、「応答(Answer)」に関するTD話者埋め込みを、「応答(Answer)」に関する1つまたは複数の以前に生成された話者埋め込みと比較することができる。さらに、自動アシスタントは、比較に基づいて決定された距離メトリックに基づいて、口頭発話652Aを提供したユーザがクライアントデバイス110のユーザ101であるかどうかを判定することができる。この例において、自動アシスタントは、「応答(Answer)」に関するTD話者埋め込みが、「応答(Answer)」に関する1つまたは複数の以前に生成された話者埋め込みと一致しないと判定する。したがって、自動アシスタントは、口頭発話652Aを提供したユーザ(例えば、追加のユーザ102)の身元を検証しなかったので、自動アシスタントは、ユーザ101の代わりに通話に応答するアシスタントコマンドを実行させることを控え得る。
【0095】
しかしながら、様々な実装形態において、自動アシスタントは、アシスタントコマンドを実行させるためにユーザが追加の検証を提供することを要求する、ユーザ101に(例えば、視覚的および/または聴覚的に)提示するために提供されるべきプロンプトを生成することができる。例えば、特に
図6Bを参照すると、自動アシスタントは、「あなたの身元を検証し、着信に応答するために、[例示的な発話]を言ってください(please say [example utterance] to verify your identity and answer the incoming call)」のプロンプト652Bを生成し、クライアントデバイス110においてアクセス可能な自動アシスタントアプリケーション198Aを介してユーザに視覚的に提示するためにプロンプトを提供させることができる。したがって、クライアントデバイス110のユーザ101は、ユーザ101が実際に自動アシスタントが通話に応答することを意図していたかどうかを検証するために、プロンプトに応答して追加のユーザ入力を提供することができる。この例において、自動アシスタントは、ユーザ101が例示的な発話に対してTI SIDを実行するのに十分な長さの例示的な発話、またはクライアントデバイス110が1つまたは複数の以前に生成されたTD話者埋め込みにアクセスすることができる別の特定の用語またはフレーズに対応する発話を提供することを要求することができる。(例えば、
図6Aの例において)クライアントデバイス110のユーザ101が自動アシスタントに通話に応答させるための口頭発話を提供しなかったと仮定すると、ユーザ101は、プロンプト652Bを無視または却下し得る。しかしながら、(例えば、
図4Aの例において)クライアントデバイス110のユーザ101が自動アシスタントに通話に応答させるための発話を提供したと仮定すると、ユーザ101は、例示的な発話を提供し得る。
【0096】
別の例として、特に
図6Cを参照すると、自動アシスタントは、「着信に応答するために顔紋識別または指紋識別を提供してください(please provide face identification or fingerprint identification to answer the incoming call)」のプロンプト652Cを生成し、クライアントデバイス110においてアクセス可能な自動アシスタントアプリケーション198Aを介してユーザに視覚的に提示するためにプロンプトを提供させることができる。したがって、クライアントデバイス110のユーザ101は、ユーザ101が実際に自動アシスタントが通話に応答することを意図していたかどうかを検証するために、プロンプトに応答して追加のユーザ入力を提供することができる。この例において、自動アシスタントは、口頭発話を提供したユーザの身元を識別できない場合、ユーザ101がこの生体識別を提供することを要求することができる。いくつかの場合において、この生態情報は、口頭発話を提供したユーザを識別するのにTD SIDおよびTD SIDが不十分であると決定したことに応答してのみ要求され得る。(例えば、
図6Aの例において)クライアントデバイス110のユーザ101が自動アシスタントに通話に応答させるための口頭発話を提供しなかったと仮定すると、ユーザ101は、プロンプト652Cを無視または却下し得る。しかしながら、(例えば、
図4Aの例において)クライアントデバイス110のユーザ101が自動アシスタントに通話に応答させるための発話を提供したと仮定すると、ユーザ101は、生体情報を提供し得る。
【0097】
図6Bおよび
図6Cに示すプロンプト652Bおよび652Cは、クライアントデバイス110においてアクセス可能な自動アシスタントアプリケーション198Aを介してユーザ101に提示するために提供されるが、それは例のためであり、限定することを意味していないことが理解されるべきである。例えば、宣伝広告652Bおよび652Cは、追加的または代替的に、クライアントデバイス110のスピーカを介してユーザに提示するために聴覚的にレンダリングされ得、クライアントデバイス110のディスプレイ190を介してユーザに提示するために通知(例えば、ポップアップ通知、バナー通知など)として視覚的にレンダリングされ得る。さらに、
図6A~
図6Cについて、特定のアシスタントコマンドを実行させる特定のウォームワードに関して説明しているが、それは例のためであり、限定することを意味していないことが理解されるべきである。むしろ、
図6A~
図6Cに関して説明した技法は、任意のウォームワードアクティブ化イベントを検出し、ウォームワードアクティブ化イベントに関連付けられたウォームワードモデルを使用して任意のウォームワードを検出し、口頭発話を提供したユーザの身元が許可されたユーザとして検証されると、任意のアシスタントコマンドを実行させるために利用され得る。
【0098】
次に
図7を参照すると、本明細書で説明する技法の1つまたは複数の態様を実行するためにオプションで利用され得る例示的なコンピューティングデバイス710のブロック図が示されている。いくつかの実装形態において、クライアントデバイス、クラウドベースの自動アシスタント構成要素、および/または他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス710の1つまたは複数の構成要素を備え得る。
【0099】
コンピューティングデバイス710は、典型的には、バスサブシステム712を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ714を含む。これらの周辺デバイスは、例えば、メモリサブシステム725およびファイル記憶サブシステム726を含む記憶サブシステム724と、ユーザインターフェース出力デバイス720と、ユーザインターフェース入力デバイス722と、ネットワークインターフェースサブシステム716とを含み得る。入力デバイスおよび出力デバイスは、ユーザがコンピューティングデバイス710と対話することを可能にする。ネットワークインターフェースサブシステム716は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0100】
ユーザインターフェース入力デバイス722は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス710または通信ネットワークに情報を入力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0101】
ユーザインターフェース出力デバイス720は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するためのなにか他のメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するなどして、非視覚的表示を提供し得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス710からユーザまたは別の機械もしくはコンピューティングデバイスに情報を出力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0102】
記憶サブシステム724は、本明細書で説明するモジュールのうちのいくつかまたはすべての機能を提供するプログラミング構造およびデータ構造を記憶する。例えば、記憶サブシステム724は、本明細書で開示する方法の選択された態様を実行するため、ならびに
図1および
図2に示す様々な構成要素を実装するためのロジックを含み得る。
【0103】
これらのソフトウェアモジュールは、一般に、プロセッサ714単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム724内で使用されるメモリ725は、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)730と、固定命令が記憶される読み取り専用メモリ(ROM)732とを含むいくつかのメモリを含むことができる。ファイル記憶サブシステム726は、プログラムおよびデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装するモジュールは、記憶サブシステム724内のファイル記憶サブシステム726によって、またはプロセッサ714によってアクセス可能な他の機械内に記憶され得る。
【0104】
バスサブシステム712は、コンピューティングデバイス710の様々な構成要素およびサブシステムを意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム712は、単一のバスとして概略的に示されているが、バスサブシステム712の代替実装形態は、複数のバスを使用し得る。
【0105】
コンピューティングデバイス710は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプのものであり得る。コンピュータおよびネットワークの絶えず変化する性質のために、
図7に示すコンピューティングデバイス710の説明は、いくつかの実装形態を説明する目的のための特定の例としてのみ意図されている。コンピューティングデバイス710の他の多くの構成は、
図7に示すコンピューティングデバイスよりも多いまたは少ない構成要素を有することが可能である。
【0106】
本明細書で説明するシステムがユーザに関する個人情報を収集もしくは他の方法で監視するか、または個人情報および/もしくは監視情報を利用する可能性がある状況において、ユーザは、プログラムまたは機能がユーザ情報(例えば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置に関する情報)を収集するかどうかを制御する機会、またはユーザにより関連性がある可能性があるコンテンツサーバからのコンテンツを受信するかどうかおよび/もしくはどのように受信するかを制御する機会を提供され得る。また、特定のデータは、個人を特定し得る情報が除去されるように、それが記憶または使用される前に1つまたは複数の方法で処理され得る。例えば、ユーザの識別情報は、個人を特定し得る情報がユーザに関して決定され得ないように処理され得、またはユーザの地理的位置は、ユーザの特定の地理的位置が特定され得ないように、地理的位置情報が取得される場所(都市、郵便番号、または州レベルなど)で一般化され得る。したがって、ユーザは、情報がユーザに関してどのように収集および/または使用されるかについて制御し得る。
【0107】
いくつかの実装形態において、1つまたは複数のプロセッサによって実装される方法が提供され、ウォームワードモデルを使用して、1つまたは複数の特定のワードまたはフレーズの発生を監視するためにオーディオデータのストリームを処理するステップであって、オーディオデータのストリームがユーザのクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、1つまたは複数の特定のワードまたはフレーズの各々がアシスタントコマンドに関連付けられる、ステップと、オーディオデータの一部が特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、自動音声認識(ASR)モデルを使用して、ASR出力を生成するためにオーディオデータのプリアンブル部分および/またはオーディオデータのポストアンブル部分を処理するステップと、ASR出力を処理することに基づいて、1つまたは複数の特定のワードまたはフレーズがアシスタントコマンドの実行を引き起こすことをユーザが意図していたかどうかを判定するステップとを含む。オーディオデータのプリアンブル部分が、1つまたは複数の特定のワードまたはフレーズに対応するオーディオデータの部分に先行し、オーディオデータのポストアンブル部分が、1つまたは複数の特定のワードまたはフレーズに対応するオーディオデータの部分に続く。方法は、1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していなかったと判定したことに応答して、自動アシスタントに、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させることを控えるステップと、1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたと判定したことに応答して、自動アシスタントに、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させるステップとをさらに含む。
【0108】
本明細書で開示される技法のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数をオプションで含むことができる。
【0109】
いくつかの実装形態において、方法は、ウォームワードアクティブ化イベントの発生を検出するステップと、ウォームワードアクティブ化イベントの発生を検出したことに応答して、ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップとをさらに含み得る。1つまたは複数の特定のワードまたはフレーズの発生を監視するためにウォームワードモデルを使用してオーディオデータのストリームを処理するステップは、ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップに応答し得る。それらの実装形態のいくつかのバージョンにおいて、ウォームワードアクティブ化イベントは、クライアントデバイスにおいて受信される通話、クライアントデバイスにおいて受信されるテキストメッセージ、クライアントデバイスにおいて受信される電子メール、クライアントデバイスにおいて鳴るアラーム、クライアントデバイスにおいて鳴るタイマ、クライアントデバイスもしくはクライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、クライアントデバイスにおいて受信される通知、クライアントデバイスの場所、またはクライアントデバイスにおいてアクセス可能なソフトウェアアプリケーションのうちの1つまたは複数を含み得る。
【0110】
いくつかの実装形態において、ASR出力を処理することに基づいて、1つまたは複数の特定のワードまたはフレーズが、1つまたは複数の特定のワードまたはフレーズに関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するステップは、自然言語理解(NLU)モデルを使用して、NLU出力を生成するためにASR出力を処理するステップと、NLU出力に基づいて、1つまたは複数の特定のワードまたはフレーズがアシスタントコマンドの実行を引き起こすことをユーザが意図していたかどうかを判定するステップとを含み得る。ASR出力は、オーディオデータのプリアンブル部分に基づくが、オーディオデータのポストアンブル部分に基づかずに生成され得る。それらの実装形態のいくつかのバージョンにおいて、方法は、1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するのに、NLU出力が不十分であると判定したことに応答して、ASRモデルを使用して、追加のASR出力を生成するためにオーディオデータのポストアンブル部分を処理するステップと、追加のASR出力を処理することに基づいて、1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するステップとをさらに含み得る。
【0111】
いくつかの実装形態において、ASR出力を処理することに基づいて、1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するステップは、自然言語理解(NLU)モデルを使用して、NLU出力を生成するためにASR出力を処理するステップと、NLU出力に基づいて、1つまたは複数の特定のワードまたはフレーズがアシスタントコマンドの実行を引き起こすことをユーザが意図していたかどうかを判定するステップとを含み得る。ASR出力は、オーディオデータのプリアンブル部分とオーディオデータのポストアンブル部分との両方に基づいて生成され得る。それらの実装形態のいくつかのバージョンにおいて、方法は、1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するのに、NLU出力が不十分であると判定したことに応答して、ASRモデルを使用して、追加のASR出力を生成するためにオーディオデータの追加のポストアンブル部分を処理するステップと、追加のASR出力を処理することに基づいて、1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するステップとをさらに含み得る。オーディオデータの追加のポストアンブル部分は、オーディオデータのポストアンブル部分に続き得る。
【0112】
いくつかの実装形態において、方法は、エンドポインティングモデルを使用して、オーディオデータのストリーム内に捕捉され、1つまたは複数の特定のワードまたはフレーズを含む口頭発話に対する複数のタイムスタンプを生成するためにオーディオデータのストリームを処理するステップをさらに含み得る。それらの実装形態のいくつかのバージョンにおいて、複数のタイムスタンプは、少なくとも、ユーザが口頭発話を提供し始めた第1の時間に関連付けられた第1のタイムスタンプと、ユーザが口頭発話内に含まれる1つまたは複数の特定のワードまたはフレーズを提供し始めた第1の時間に続く第2の時間に関連付けられた第2のタイムスタンプと、ユーザが口頭発話内に含まれる1つまたは複数の特定のワードまたはフレーズを提供し終えた第2の時間に続く第3の時間に関連付けられた第3のタイムスタンプと、ユーザが口頭発話を提供し終えた第3の時間に続く第4の時間に関連付けられた第4のタイムスタンプとを含み得る。それらの実装形態のいくつかのさらなるバージョンにおいて、オーディオデータのプリアンブル部分は、第1のタイムスタンプと第2のタイムスタンプとの間の口頭発話に対応する任意のオーディオデータを含み得る。それらの実装形態の追加のまたは代替のバージョンにおいて、オーディオデータのポストアンブル部分は、第3のタイムスタンプと第4のタイムスタンプとの間の口頭発話に対応する任意のオーディオデータを含み得る。
【0113】
いくつかの実装形態において、方法は、口頭発話が特定のワードまたはフレーズのうちの1つまたは複数を含むと判定したことに応答して、ASRモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップをさらに含み得る。
【0114】
いくつかの実装形態において、方法は、ASRモデルを使用して、ASR出力を生成するために、オーディオデータのプリアンブル部分および/またはポストアンブル部分オーディオデータとともに、1つまたは複数の特定のワードまたはフレーズに対応するオーディオデータの部分を処理するステップをさらに含み得る。
【0115】
いくつかの実装形態において、方法は、音声アクティビティ検出(VAD)モデルを使用して、オーディオデータの部分が特定のワードもしくはフレーズのうちの1つもしくは複数に対応する前、および/またはオーディオデータの部分が特定のワードもしくはフレーズのうちの1つもしくは複数に対応した後の、追加の音声アクティビティの発生を監視するためにオーディオデータのストリームを処理するステップと、追加の音声アクティビティの発生を検出したことに応答して、ASRモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップとをさらに含み得る。それらの実装形態のいくつかのバージョンにおいて、方法は、追加の音声アクティビティの発生を検出しなかったことに応答して、自動アシスタントに、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させるステップをさらに含み得る。
【0116】
いくつかの実装形態において、方法は、音響モデルを使用して、口頭発話の1つまたは複数の韻律特性を決定するためにオーディオデータを処理するステップをさらに含み得る。1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するステップは、口頭発話の1つまたは複数の韻律特性にさらに基づき得る。
【0117】
いくつかの実装形態において、方法は、クライアントデバイスの1つまたは複数のセンサから、センサデータのインスタンスを受信するステップをさらに含み得る。1つまたは複数の特定のワードまたはフレーズが、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを、ユーザが意図していたかどうかを判定するステップは、センサデータのインスタンスにさらに基づき得る。それらの実装形態のいくつかのバージョンにおいて、センサデータのインスタンスは、クライアントデバイスの加速度計によって生成された加速度計データ、クライアントデバイスの1つまたは複数のカメラ構成要素によって生成された画像データ、クライアントデバイスの1つまたは複数の動きセンサによって生成された動きデータのうちの1つまたは複数を含み得る。
【0118】
いくつかの実装形態において、方法は、クライアントデバイスのオーディオバッファからオーディオデータのプリアンブル部分を取得するステップ、および/またはオーディオデータのストリームからオーディオデータのポストアンブル部分を取得するステップをさらに含み得る。
【0119】
いくつかの実装形態において、1つまたは複数のプロセッサによって実装される方法が提供され、ウォームワードモデルを使用して、1つまたは複数の特定のワードまたはフレーズの発生を監視するためにオーディオデータのストリームを処理するステップであって、オーディオデータのストリームがユーザのクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、1つまたは複数の特定のワードまたはフレーズの各々がアシスタントコマンドに関連付けられる、ステップと、オーディオデータの部分が特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、およびオーディオデータに対応する口頭発話を提供したユーザの身元を検証すると判定したことに応答して、話者識別(SID)モデルを使用して、口頭発話を提供したユーザを識別するのにオーディオデータが十分であるかどうかを判定するためにオーディオデータを処理するステップと、オーディオデータが口頭発話を提供したユーザを識別するのに十分であると判定したことに応答して、および口頭発話を提供したユーザが特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドの実行を引き起こすことを許可されていると判定したことに応答して、自動アシスタントに、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させるステップと、オーディオデータが口頭発話を提供したユーザを識別するのに不十分であると判定したことに応答して、口頭発話を提供したユーザの身元の追加の検証を要求するプロンプトを生成するステップと、クライアントデバイスにおける提示のためにプロンプトを提供させるステップとを含む。
【0120】
本明細書で開示される技法のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数をオプションで含むことができる。
【0121】
いくつかの実装形態において、方法は、ウォームワードアクティブ化イベントの発生を検出するステップと、ウォームワードアクティブ化イベントの発生を検出したことに応答して、ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップとをさらに含み得る。1つまたは複数の特定のワードまたはフレーズの発生を監視するためにウォームワードモデルを使用してオーディオデータのストリームを処理するステップは、ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップに応答し得る。それらの実装形態のいくつかのバージョンにおいて、ウォームワードアクティブ化イベントは、クライアントデバイスにおいて受信される通話、クライアントデバイスにおいて受信されるテキストメッセージ、クライアントデバイスにおいて受信される電子メール、クライアントデバイスにおいて鳴るアラーム、クライアントデバイスにおいて鳴るタイマ、クライアントデバイスもしくはクライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、クライアントデバイスにおいて受信される通知、クライアントデバイスの場所、またはクライアントデバイスにおいてアクセス可能なソフトウェアアプリケーションのうちの1つまたは複数を含み得る。
【0122】
いくつかの実装形態において、方法は、オーディオデータの部分が特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、およびオーディオデータに対応する口頭発話を提供したユーザの身元を検証しないと判定したことに応答して、自動アシスタントに、特定のワードまたはフレーズのうちの1つまたは複数に関連付けられたアシスタントコマンドを実行させるステップをさらに含み得る。
【0123】
いくつかの実装形態において、口頭発話を提供したユーザの身元を識別するのにオーディオデータが十分であるかどうかを判定するためにオーディオデータを処理するステップは、SIDモデルとしてテキスト依存(TD)SIDモデルを使用して、TD話者埋め込みを生成するために特定のワードまたはフレーズのうちの1つまたは複数に対応するオーディオデータの部分を処理するステップを含む。口頭発話を提供したユーザを識別するのにオーディオデータが十分であるかどうかを判定するステップは、埋め込み空間において、TD話者埋め込みを、クライアントデバイスにおいてローカルに記憶された1つまたは複数の記憶されたTD話者埋め込みと比較するステップと、TD話者埋め込みを1つまたは複数の記憶されたTD話者埋め込みと比較することに基づいて、口頭発話を提供したユーザの身元を検証するのにオーディオデータの部分が十分であるかどうかを判定するステップとを含み得る。
【0124】
それらの実装形態のいくつかのバージョンにおいて、TD SIDモデルを使用してTD話者埋め込みを生成するために、特定のワードまたはフレーズのうちの1つまたは複数に対応するオーディオデータの部分を処理するステップは、記憶されたTD話者埋め込みのうちの1つまたは複数が特定のワードまたはフレーズに対応するかどうかを判定するステップを含み得る。TD SIDモデルを使用してTD話者埋め込みを生成するために特定のワードまたはフレーズのうちの1つまたは複数に対応するオーディオデータの部分を処理するステップは、記憶されたTD話者埋め込みのうちの1つまたは複数が特定のワードまたはフレーズに対応すると判定したことに応答する。
【0125】
それらの実装形態の追加のまたは代替のバージョンにおいて、口頭発話を提供したユーザの身元の追加の検証を要求するプロンプトを生成するステップは、ユーザが追加の口頭発話を提供することを要求するプロンプトを生成するステップを含み得、追加の口頭発話は、口頭発話を提供したユーザの身元を検証する際に利用するためのTI SIDを実行するのに十分な長さのものである。
【0126】
それらの実装形態の追加のまたは代替のバージョンにおいて、方法は、口頭発話がTI SIDを実行するのに十分な長さであると判定したことに応答して、SIDモデルとしてTI SIDモデルを使用して、TI話者埋め込みを生成するためにオーディオデータのストリームを処理するステップをさらに含み得る。口頭発話を提供したユーザを識別するのにオーディオデータが十分であるかどうかを判定するステップは、埋め込み空間において、TI話者埋め込みを、クライアントデバイスにおいてローカルに記憶された1つまたは複数の記憶されたTI話者埋め込みと比較するステップと、TI話者埋め込みを1つまたは複数の記憶されたTI話者埋め込みと比較することに基づいて、口頭発話を提供したユーザの身元を検証するのにオーディオデータのストリームが十分であるかどうかを判定するステップとを含み得る。それらの実装形態のいくつかのさらなるバージョンにおいて、口頭発話を提供したユーザの身元の追加の検証を要求するプロンプトを生成するステップは、ユーザの身元を検証するために追加の生体情報を要求するプロンプトを生成するステップを含み得る。ユーザの身元を検証するために追加の生体情報を要求することは、指紋識別または顔紋指紋識別のうちの1つまたは複数を要求することを含み得る。
【0127】
いくつかの実装形態において、方法は、クライアントデバイスにおける提示のためにプロンプトが提供されたことに応答して、追加のユーザ入力を受信するステップと、追加のユーザ入力を受信したことに応答して、口頭発話を提供したユーザを識別するのに追加のユーザ入力が十分であるかどうかを判定するステップとをさらに含み得る。それらの実装形態のいくつかのバージョンにおいて、口頭発話を提供したユーザを識別するのに追加のユーザ入力が十分であると判定したことに応答して、自動アシスタントに、対応するアシスタントコマンドを実行させるステップをさらに含み得る。
【0128】
それに加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサ(例えば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU))を含み、1つまたは複数のプロセッサは、関連するメモリ内に記憶された命令を実行するように動作可能であり、命令は、前述の方法のいずれかの実行を引き起こすように構成される。いくつかの実装形態は、前述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する1つまたは複数の非一時的なコンピュータ可読記憶媒体も含む。いくつかの実装形態は、前述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能な命令を含むコンピュータプログラム製品も含む。
【符号の説明】
【0129】
101 ユーザ
102 追加のユーザ
110 クライアントデバイス
111 ユーザ入力エンジン
112 レンダリングエンジン
113 存在センサ
114 自動アシスタントクライアント
115 自動アシスタント
115A 機械学習(ML)モデルデータベース、MLモデルデータベース
120A1 自動音声認識(ASR)エンジン、ASRエンジン
120A2 ASRエンジン
130A1 自然言語理解(NLU)エンジン、NLUエンジン
130A2 NLUエンジン
140A1 テキスト読み上げ(TTS)エンジン、TTSエンジン
140A2 TTSエンジン
150 ウォームワードエンジン
151 ウォームワードアクティブ化イベントエンジン
152 ウォームワード検出エンジン
153 ウォームワード検証エンジン
160 ユーザ検証エンジン
170 音響エンジン
180 ウォームワードシステム
190 ディスプレイ
194 テキスト入力ボックス
198 ソフトウェアアプリケーション
198A 自動アシスタントアプリケーション
199 ネットワーク
201 マイクロフォン
201A オーディオデータ
201B オーディオデータのプリアンブル部分
201C オーディオデータのポストアンブル部分
220 ASR出力
230 NLU出力
251 ウォームワードアクティブ化イベント
400 環境
452A 口頭発話
452B 口頭発話
452C 口頭発話
600 環境
652A 口頭発話
652B プロンプト、宣伝広告
652C プロンプト、宣伝広告
710 コンピューティングデバイス
712 バスサブシステム
714 プロセッサ
716 ネットワークインターフェースサブシステム
720 ユーザインターフェース出力デバイス
722 ユーザインターフェース入力デバイス
724 記憶サブシステム
725 メモリサブシステム、メモリ
726 ファイル記憶サブシステム
730 メインランダムアクセスメモリ(RAM)
732 読み取り専用メモリ(ROM)
【手続補正書】
【提出日】2023-09-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、前記方法が、
ウォームワードモデルを使用して、1つまたは複数の特定のワードまたはフレーズの発生を監視するためにオーディオデータのストリームを処理するステップであって、前記オーディオデータのストリームが、ユーザのクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、前記1つまたは複数の特定のワードまたはフレーズの各々が、アシスタントコマンドに関連付けられる、ステップと、
前記オーディオデータの一部が前記特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、
自動音声認識(ASR)モデルを使用して、ASR出力を生成するために前記オーディオデータのプリアンブル部分および/または前記オーディオデータのポストアンブル部分を処理するステップであって、
前記オーディオデータの前記プリアンブル部分が、前記1つまたは複数の特定のワードまたはフレーズに対応する前記オーディオデータの前記一部に先行し、
前記オーディオデータの前記ポストアンブル部分が、前記1つまたは複数の特定のワードまたはフレーズに対応する前記オーディオデータの前記一部に続く、
ステップと、
前記ASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが前記アシスタントコマンドの実行を引き起こすことを前記ユーザが意図していたかどうかを判定するステップと、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していなかったと判定したことに応答して、
自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させることを控えるステップと、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたと判定したことに応答して、
前記自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップと
を含む、方法。
【請求項2】
ウォームワードアクティブ化イベントの発生を検出するステップと、
前記ウォームワードアクティブ化イベントの前記発生を検出したことに応答して、前記ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップと
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズの前記発生を監視するために前記ウォームワードモデルを使用して前記オーディオデータのストリームを処理するステップが、前記ウォームワードモデルを利用する前記1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップに応答する、
請求項1に記載の方法。
【請求項3】
前記ウォームワードアクティブ化イベントが、前記クライアントデバイスにおいて受信される通話、前記クライアントデバイスにおいて受信されるテキストメッセージ、前記クライアントデバイスにおいて受信される電子メール、前記クライアントデバイスにおいて鳴るアラーム、前記クライアントデバイスにおいて鳴るタイマ、前記クライアントデバイスもしくは前記クライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、前記クライアントデバイスにおいて受信される通知、前記クライアントデバイスの場所、または前記クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーションのうちの1つまたは複数を含む、請求項2に記載の方法。
【請求項4】
前記ASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記1つまたは複数の特定のワードまたはフレーズに関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、
自然言語理解(NLU)モデルを使用して、NLU出力を生成するために前記ASR出力を処理するステップであって、前記ASR出力が、前記オーディオデータの前記プリアンブル部分に基づくが、前記オーディオデータの前記ポストアンブル部分に基づかずに生成される、ステップと、
前記NLU出力に基づいて、前記1つまたは複数の特定のワードまたはフレーズが前記アシスタントコマンドの実行を引き起こすことを前記ユーザが意図していたかどうかを判定するステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するのに、前記NLU出力が不十分であると判定したことに応答して、
前記ASRモデルを使用して、追加のASR出力を生成するために前記オーディオデータの前記ポストアンブル部分を処理するステップと、
前記追加のASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップと
をさらに含む、請求項4に記載の方法。
【請求項6】
前記ASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、
自然言語理解(NLU)モデルを使用して、NLU出力を生成するために前記ASR出力を処理するステップであって、前記ASR出力が、前記オーディオデータの前記プリアンブル部分と前記オーディオデータの前記ポストアンブル部分との両方に基づいて生成される、ステップと、
前記NLU出力に基づいて、前記1つまたは複数の特定のワードまたはフレーズが前記アシスタントコマンドの実行を引き起こすことを前記ユーザが意図していたかどうかを判定するステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項7】
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するのに、前記NLU出力が不十分であると判定したことに応答して、
前記ASRモデルを使用して、追加のASR出力を生成するために前記オーディオデータの追加のポストアンブル部分を処理するステップであって、前記オーディオデータの前記追加のポストアンブル部分が、前記オーディオデータの前記ポストアンブル部分に続く、ステップと、
前記追加のASR出力を処理することに基づいて、前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップと
をさらに含む、請求項6に記載の方法。
【請求項8】
エンドポインティングモデルを使用して、前記オーディオデータのストリーム内に捕捉され、前記1つまたは複数の特定のワードまたはフレーズを含む口頭発話に対する複数のタイムスタンプを生成するために前記オーディオデータのストリームを処理するステップ
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記複数のタイムスタンプが、少なくとも、前記ユーザが前記口頭発話を提供し始めた第1の時間に関連付けられた第1のタイムスタンプと、前記ユーザが前記口頭発話内に含まれる前記1つまたは複数の特定のワードまたはフレーズを提供し始めた前記第1の時間に続く第2の時間に関連付けられた第2のタイムスタンプと、前記ユーザが前記口頭発話内に含まれる前記1つまたは複数の特定のワードまたはフレーズを提供し終えた前記第2の時間に続く第3の時間に関連付けられた第3のタイムスタンプと、前記ユーザが前記口頭発話を提供し終えた前記第3の時間に続く第4の時間に関連付けられた第4のタイムスタンプとを含む、請求項8に記載の方法。
【請求項10】
前記オーディオデータの前記プリアンブル部分が、前記第1のタイムスタンプと前記第2のタイムスタンプとの間の前記口頭発話に対応する任意のオーディオデータを含む、請求項9に記載の方法。
【請求項11】
前記オーディオデータの前記ポストアンブル部分が、前記第3のタイムスタンプと前記第4のタイムスタンプとの間の前記口頭発話に対応する任意のオーディオデータを含む、請求項9または10に記載の方法。
【請求項12】
口頭発話が前記特定のワードまたはフレーズのうちの1つまたは複数を含むと判定したことに応答して、前記ASRモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップ
をさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記ASRモデルを使用して、前記オーディオデータの前記プリアンブル部分および/または前記オーディオデータの前記ポストアンブル部分とともに、前記ASR出力を生成するために、前記1つまたは複数の特定のワードまたはフレーズに対応する前記オーディオデータの前記部分を処理するステップ
をさらに含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
音声アクティビティ検出(VAD)モデルを使用して、前記オーディオデータの前記部分が前記特定のワードもしくはフレーズのうちの1つもしくは複数に対応する前、および/または前記オーディオデータの前記部分が前記特定のワードもしくはフレーズのうちの1つもしくは複数に対応した後の、追加の音声アクティビティの発生を監視するために前記オーディオデータのストリームを処理するステップと、
前記追加の音声アクティビティの前記発生を検出したことに応答して、
前記ASRモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップと
をさらに含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
前記追加の音声アクティビティの前記発生を検出しなかったことに応答して、
前記自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップ
をさらに含む、請求項14に記載の方法。
【請求項16】
音響モデルを使用して
、口頭発話の1つまたは複数の韻律特性を決定するために前記オーディオデータを処理するステップ
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、前記口頭発話の前記1つまたは複数の韻律特性にさらに基づく、請求項1から15のいずれか一項に記載の方法。
【請求項17】
前記クライアントデバイスの1つまたは複数のセンサから、センサデータのインスタンスを受信するステップ
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズが、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを、前記ユーザが意図していたかどうかを判定するステップが、前記センサデータの前記インスタンスにさらに基づく、請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記センサデータのインスタンスが、前記クライアントデバイスの加速度計によって生成された加速度計データ、前記クライアントデバイスの1つまたは複数のカメラ構成要素によって生成された画像データ、前記クライアントデバイスの1つまたは複数の動きセンサによって生成された動きデータのうちの1つまたは複数を含む、請求項17に記載の方法。
【請求項19】
前記クライアントデバイスのオーディオバッファから前記オーディオデータの前記プリアンブル部分を取得するステップ、および/または
前記オーディオデータのストリームから前記オーディオデータの前記ポストアンブル部分を取得するステップ
をさらに含む、請求項1から18のいずれか一項に記載の方法。
【請求項20】
1つまたは複数のプロセッサによって実装される方法であって、前記方法が、
ウォームワードモデルを使用して、1つまたは複数の特定のワードまたはフレーズの発生を監視するためにオーディオデータのストリームを処理するステップであって、前記オーディオデータのストリームが、ユーザのクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、前記1つまたは複数の特定のワードまたはフレーズの各々が、アシスタントコマンドに関連付けられる、ステップと、
前記オーディオデータの部分が前記特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、および前記オーディオデータに対応する口頭発話を提供した前記ユーザの身元を検証すると判定したことに応答して、
話者識別(SID)モデルを使用して、前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であるかどうかを判定するために前記オーディオデータを処理するステップと、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であると判定したことに応答して、および前記口頭発話を提供した前記識別されたユーザが前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドの実行を引き起こすことを許可されていると判定したことに応答して、
自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップと、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが不十分であると判定したことに応答して、
前記口頭発話を提供した前記ユーザの前記身元の追加の検証を要求するプロンプトを生成するステップと、
前記クライアントデバイスにおける提示のために前記プロンプトを提供させるステップと
を含む、方法。
【請求項21】
ウォームワードアクティブ化イベントの発生を検出するステップと、
前記ウォームワードアクティブ化イベントの前記発生を検出したことに応答して、前記ウォームワードモデルを利用する1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップと
をさらに含み、
前記1つまたは複数の特定のワードまたはフレーズの前記発生を監視するために前記ウォームワードモデルを使用して前記オーディオデータのストリームを処理するステップが、前記ウォームワードモデルを利用する前記1つまたは複数の現在休止中の自動アシスタント機能をアクティブ化するステップに応答する、請求項20に記載の方法。
【請求項22】
前記ウォームワードアクティブ化イベントが、前記クライアントデバイスにおいて受信される通話、前記クライアントデバイスにおいて受信されるテキストメッセージ、前記クライアントデバイスにおいて受信される電子メール、前記クライアントデバイスにおいて鳴るアラーム、前記クライアントデバイスにおいて鳴るタイマ、前記クライアントデバイスもしくは前記クライアントデバイスの環境内の追加のクライアントデバイスにおいて再生されるメディア、前記クライアントデバイスにおいて受信される通知、前記クライアントデバイスの場所、または前記クライアントデバイスにおいてアクセス可能なソフトウェアアプリケーションのうちの1つまたは複数を含む、請求項21に記載の方法。
【請求項23】
前記オーディオデータの前記部分が前記特定のワードまたはフレーズのうちの1つまたは複数に対応すると判定したことに応答して、および前記オーディオデータに対応する前記口頭発話を提供した前記ユーザの前記身元を検証しないと判定したことに応答して、
自動アシスタントに、前記特定のワードまたはフレーズのうちの1つまたは複数に関連付けられた前記アシスタントコマンドを実行させるステップ
をさらに含む、請求項20から22のいずれか一項に記載の方法。
【請求項24】
前記口頭発話を提供した前記ユーザの前記身元を識別するのに前記オーディオデータが十分であるかどうかを判定するために前記オーディオデータを処理するステップが、
前記SIDモデルとしてテキスト依存(TD)SIDモデルを使用して、TD話者埋め込みを生成するために前記特定のワードまたはフレーズのうちの1つまたは複数に対応する前記オーディオデータの前記部分を処理するステップ
を含み、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であるかどうかを判定するステップが、
埋め込み空間において、前記TD話者埋め込みを、前記クライアントデバイスにおいてローカルに記憶された1つまたは複数の記憶されたTD話者埋め込みと比較するステップと、
前記TD話者埋め込みを前記1つまたは複数の記憶されたTD話者埋め込みと比較することに基づいて、前記口頭発話を提供した前記ユーザの前記身元を検証するのに前記オーディオデータの前記部分が十分であるかどうかを判定するステップと
を含む、請求項20から23のいずれか一項に記載の方法。
【請求項25】
前記TD SIDモデルを使用して前記TD話者埋め込みを生成するために、前記特定のワードまたはフレーズのうちの1つまたは複数に対応する前記オーディオデータの前記部分を処理するステップが、
前記記憶されたTD話者埋め込みのうちの1つまたは複数が前記特定のワードまたはフレーズに対応するかどうかを判定するステップ
を含み、
前記TD SIDモデルを使用して前記TD話者埋め込みを生成するために前記特定のワードまたはフレーズのうちの1つまたは複数に対応する前記オーディオデータの前記部分を処理するステップが、前記記憶されたTD話者埋め込みのうちの1つまたは複数が前記特定のワードまたはフレーズに対応すると判定したことに応答する、請求項24に記載の方法。
【請求項26】
前記口頭発話を提供した前記ユーザの前記身元の前記追加の検証を要求する前記プロンプトを生成するステップが、
前記ユーザが追加の口頭発話を提供することを要求するプロンプトを生成するステップであって、前記追加の口頭発話が、前記口頭発話を提供した前記ユーザの前記身元を検証する際に利用するためのTI SIDを実行するのに十分な長さのものである、ステップ
を含む、請求項24に記載の方法。
【請求項27】
前記口頭発話がTI SIDを実行するのに十分な長さであると判定したことに応答して、
前記SIDモデルとしてTI SIDモデルを使用して、TI話者埋め込みを生成するために前記オーディオデータのストリームを処理するステップ
をさらに含み、
前記口頭発話を提供した前記ユーザを識別するのに前記オーディオデータが十分であるかどうかを判定するステップが、
埋め込み空間において、前記TI話者埋め込みを、前記クライアントデバイスにおいてローカルに記憶された1つまたは複数の記憶されたTI話者埋め込みと比較するステップと、
前記TI話者埋め込みを前記1つまたは複数の記憶されたTI話者埋め込みと比較することに基づいて、前記口頭発話を提供した前記ユーザの前記身元を検証するのに前記オーディオデータの前記ストリームが十分であるかどうかを判定するステップと
を含む、請求項24に記載の方法。
【請求項28】
前記口頭発話を提供した前記ユーザの前記身元の前記追加の検証を要求する前記プロンプトを生成するステップが、
前記ユーザの前記身元を検証するために追加の生体情報を要求する前記プロンプトを生成するステップであって、前記ユーザの前記身元を検証するために前記追加の生体情報を要求することが、指紋識別または顔紋指紋識別のうちの1つまたは複数を要求することを含む、ステップ
を含む、請求項27に記載の方法。
【請求項29】
前記クライアントデバイスにおける提示のために前記プロンプトが提供されたことに応答して、追加のユーザ入力を受信するステップと、
前記追加のユーザ入力を受信したことに応答して、
前記口頭発話を提供した前記ユーザを識別するのに前記追加のユーザ入力が十分であるかどうかを判定するステップと
をさらに含む、請求項20から28のいずれか一項に記載の方法。
【請求項30】
前記口頭発話を提供した前記ユーザを識別するのに前記追加のユーザ入力が十分であると判定したことに応答して、
前記自動アシスタントに、前記対応するアシスタントコマンドを実行させるステップ
をさらに含む、請求項29に記載の方法。
【請求項31】
少なくとも1つのプロセッサと、
命令を記憶するメモリであって、前記命令は、実行されると、前記少なくとも1つのプロセッサに、請求項1から30のいずれか一項に
記載の方法を実行させる、メモリと
を備える、システム。
【請求項32】
命令を記憶す
るコンピュータ可読記憶媒体であって、前記命令は、実行されると、少なくとも1つのプロセッサに、請求項1から30のいずれか一項に
記載の方法を実行させる、非一時的なコンピュータ可読記憶媒体。
【国際調査報告】