(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-13
(54)【発明の名称】グラフィカルユーザインターフェース内への内容の音声制御入力
(51)【国際特許分類】
G06F 3/16 20060101AFI20220906BHJP
G06F 3/0481 20220101ALI20220906BHJP
G10L 15/22 20060101ALI20220906BHJP
G06F 16/90 20190101ALI20220906BHJP
G06F 3/0484 20220101ALI20220906BHJP
【FI】
G06F3/16 620
G06F3/16 610
G06F3/16 630
G06F3/16 650
G06F3/0481
G10L15/22 453
G06F16/90 100
G06F3/0484
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021574849
(86)(22)【出願日】2019-12-13
(85)【翻訳文提出日】2022-02-01
(86)【国際出願番号】 US2019066211
(87)【国際公開番号】W WO2021076166
(87)【国際公開日】2021-04-22
(32)【優先日】2019-10-15
(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)【発明者】
【氏名】アンガナ・ゴーシュ
(72)【発明者】
【氏名】シュ・リウ
(72)【発明者】
【氏名】ヤン・ル
(72)【発明者】
【氏名】スティーヴ・チェン
【テーマコード(参考)】
5B175
5E555
【Fターム(参考)】
5B175EA01
5B175GA04
5E555AA44
5E555AA46
5E555AA76
5E555BA01
5E555BA04
5E555BB01
5E555BB04
5E555BC04
5E555BC17
5E555CA24
5E555CA47
5E555CB02
5E555CB64
5E555CC01
5E555CC03
5E555DA01
5E555DB25
5E555DB41
5E555DC13
5E555EA19
5E555EA23
5E555EA28
5E555FA00
(57)【要約】
本明細書で説明される実装は、音声発話の部分の逐語的解釈を入力フィールド内に取り込み、かつ/または入力フィールド内に同義的内容を取り込むかを選択的に決定し得る自動アシスタントに関する。たとえば、ユーザは、ユーザ入力を受け取るための入力フィールド(たとえば、住所フィールド)を提供するインターフェースにアクセス中であり得る。入力フィールドついての入力を与えるために、ユーザは、入力フィールドを選択し、かつ/またはGUIキーボードにアクセスして、入力フィールドに記入することを援助するための自動アシスタントを初期化し得る。ユーザが音声発話を与えた場合、ユーザは、所期の入力(たとえば、実際の住所)または所期の入力に対する参照(たとえば、名前)を盛り込む音声発話を与えることを選び得る。音声発話に応答して、自動アシスタントは、ユーザからの別の入力を必要とせずに、所期の入力で入力フィールドに記入し得る。
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、
コンピューティングデバイスにおいてレンダリングされているアプリケーションのグラフィカルユーザインターフェースの入力フィールドの選択が与えられたことを判定するステップであって、
前記コンピューティングデバイスが、前記アプリケーションとは別々の自動アシスタントへのアクセスを提供し、前記コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを利用する、ステップと、
前記入力フィールドが選択されたことを判定したことに続いて、ユーザから音声発話を受け取るステップと、
前記音声発話に基づいて、前記ユーザによって与えられた前記音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成するステップであって、
前記候補テキスト文字列が、前記コンピューティングデバイスに記憶された前記1つまたは複数の音声-テキストモデルを使用して生成される、ステップと、
前記自動アシスタントによって、前記候補テキスト文字列に基づいて、前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に追加の内容を取り込むかを決定するステップと、
前記入力フィールド内に前記追加の内容を取り込むように決定が行われたとき、
前記グラフィカルユーザインターフェースの前記入力フィールドに対する入力として前記追加の内容を提供させるステップであって、前記追加の内容が、前記候補テキスト文字列に基づく1つまたは複数の自動アシスタントアクションの実施を介して生成される、ステップと、
前記候補テキスト文字列を前記入力フィールド内に取り込むように異なる決定が行われたとき、
前記グラフィカルユーザインターフェースの前記入力フィールドに対する入力として前記候補テキスト文字列を提供させるステップと
を含む方法。
【請求項2】
前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に前記追加の内容を取り込むかを決定するステップが、
前記入力フィールドが特定のタイプの入力内容に制限されるかどうかを判定するステップと、
前記候補テキスト文字列が前記入力フィールドに関連付けられる前記特定のタイプの入力内容に対応するかどうかを判定するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記特定のタイプの入力内容が、前記ユーザまたは別の人についての連絡先情報を含み、
前記1つまたは複数の自動アシスタントアクションの実施を介して前記追加の内容を生成させるステップが、
前記コンピューティングデバイスを介してアクセス可能な連絡先データが前記追加の内容を含み、前記候補テキスト文字列の少なくとも一部に関連して記憶されることを決定するステップ
を含む、請求項2に記載の方法。
【請求項4】
前記追加の内容には、前記ユーザの主言語から導出されるテキスト文字が欠けている、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記追加の内容が少なくとも1つのイメージを含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記グラフィカルユーザインターフェースの前記入力フィールドの前記選択が与えられたことを判定するステップが、
キーボードインターフェースが前記アプリケーションの前記グラフィカルユーザインターフェースの上にレンダリングされていることを判定するステップ
を含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記グラフィカルユーザインターフェースの前記入力フィールドに対する入力として前記候補テキスト文字列を提供させるステップが、
前記自動アシスタントからキーボードアプリケーションに対する入力として前記候補テキスト文字列を提供させるステップであって、
前記キーボードアプリケーションが、前記グラフィカルユーザインターフェースの上にレンダリングされる前記キーボードインターフェースを提供する、ステップ
を含む、請求項6に記載の方法。
【請求項8】
前記キーボードアプリケーションが前記自動アシスタントとは別々のアプリケーションである、請求項7に記載の方法。
【請求項9】
前記追加の内容が、前記1つまたは複数の音声-テキストモデルをさらに使用せずに生成され、前記候補テキスト文字列とは異なる、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記自動アシスタントによって、前記候補テキスト文字列に基づいて、前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に前記追加の内容を取り込むかを決定するステップが、
前記候補テキスト文字列が何らかの自動アシスタントコマンドに対応するかどうかを判定するステップと、
前記候補テキスト文字列がどんな自動アシスタントコマンドにも対応しないとき、前記候補テキスト文字列を前記入力フィールド内に取り込むことを決定するステップと
を含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記候補テキスト文字列が何らかの自動アシスタントコマンドに対応するかどうかを判定するステップが、
前記自動アシスタントの自然言語理解(NLU)エンジンを使用して前記候補テキスト文字列を処理するステップと、
前記NLUエンジンを使用する前記処理に基づいて、自動アシスタント意図が前記候補テキスト文字列内に盛り込まれるかどうかを判定するステップと
を含む、請求項10に記載の方法。
【請求項12】
前記自動アシスタントによって、前記候補テキスト文字列に基づいて、前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に前記追加の内容を取り込むかを決定するステップが、
前記候補テキスト文字列を処理することに基づいて前記追加の内容を生成するステップと、
前記追加の内容の1つまたは複数の追加の内容プロパティに基づいて、前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に前記追加の内容を取り込むかを決定するステップと
を含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記追加の内容の前記1つまたは複数の追加の内容プロパティに基づいて、前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に前記追加の内容を取り込むかを決定するステップが、
前記1つまたは複数の追加の内容プロパティを、前記入力フィールドの1つまたは複数の入力フィールドプロパティと比較するステップ
を含む、請求項12に記載の方法。
【請求項14】
前記入力フィールドの前記1つまたは複数の入力フィールドプロパティを、
前記入力フィールドに関連付けられるHTMLもしくはXMLタグ、または前記入力フィールドのしきい距離以内のテキストおよび/もしくはグラフィックス
に基づいて決定するステップ
をさらに含む、請求項13に記載の方法。
【請求項15】
前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に前記追加の内容を取り込むかを決定するステップが、
前記候補テキスト文字列の1つまたは複数の最初の用語が1つまたは複数の事前定義された用語に合致するかどうかを判定するステップと、
前記1つまたは複数の最初の用語が前記1つまたは複数の事前定義された用語に合致するとの判定に応答して、前記追加の内容を取り込むように決定することに偏向するステップと
を含む、請求項1から14のいずれか一項に記載の方法。
【請求項16】
1つまたは複数のプロセッサによって実装される方法であって、
アプリケーションのグラフィカルユーザインターフェースの入力フィールドがコンピューティングデバイスにおいてレンダリングされているとき、ユーザから音声発話を受け取るステップであって、
前記コンピューティングデバイスが、前記アプリケーションとは別々の自動アシスタントへのアクセスを提供し、前記コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを利用する、ステップと、
前記音声発話に基づいて、前記ユーザによって与えられた前記音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成するステップであって、
前記候補テキスト文字列が、前記コンピューティングデバイスに記憶された前記1つまたは複数の音声-テキストモデルを使用して生成される、ステップと、
前記自動アシスタントによって、前記候補テキスト文字列に基づいて、前記候補テキスト文字列の何らかの特定の部分を、前記入力フィールド内に前記候補テキスト文字列の特定の部分を取り込む動作とは異なり、前記入力フィールド内に追加の内容を取り込む別の動作とは異なる特定のアシスタント動作を起動するものと見なすかどうかを決定するステップと、
前記候補テキスト文字列の前記特定の部分を、前記アシスタント動作を起動するものと見なすように決定が行われたとき、
前記自動アシスタントに、少なくとも前記候補テキスト文字列の前記特定の部分に基づいて前記特定のアシスタント動作を実施させるステップと、
前記候補テキスト文字列の前記特定の部分を、前記アシスタント動作を起動しないものと見なすように異なる決定が行われたとき、
前記自動アシスタントによって、前記候補テキスト文字列の前記特定の部分に基づいて、前記候補テキスト文字列の前記特定の部分を前記入力フィールド内に取り込むか、または前記追加の内容を前記入力フィールド内に取り込むかを決定するステップと、
前記候補テキスト文字列の前記特定の部分を前記入力フィールド内に取り込むか、または前記追加の内容を前記入力フィールド内に取り込むかを決定したことに基づいて、前記候補テキスト文字列の前記特定の部分または前記追加の内容を、前記グラフィカルユーザインターフェースの前記入力フィールドに対する入力として提供させるステップと
を含む方法。
【請求項17】
前記候補テキスト文字列の前記特定の部分を前記入力フィールド内に取り込むか、または前記追加の内容を前記入力フィールド内に取り込むかを決定するステップが、
前記入力フィールドが特定のタイプの入力内容に制限されるかどうかを判定するステップと、
前記候補テキスト文字列の前記特定の部分が、前記入力フィールドに関連付けられる前記特定のタイプの入力内容に対応するかどうかを判定するステップと
を含む、請求項16に記載の方法。
【請求項18】
前記追加の内容が、前記1つまたは複数の音声-テキストモデルをさらに使用せずに生成され、前記候補テキスト文字列とは異なる、請求項16または17に記載の方法。
【請求項19】
前記追加の内容には、前記ユーザの主言語から導出されるテキスト文字が欠けている、請求項16から18のいずれか一項に記載の方法。
【請求項20】
前記追加の内容が少なくとも1つのイメージを含む、請求項16から19のいずれか一項に記載の方法。
【請求項21】
前記自動アシスタントに前記アシスタント動作を実施させるステップが、前記候補テキスト文字列の前記特定の部分に基づいてウェブ検索を実行するステップを含む、請求項16から20のいずれか一項に記載の方法。
【請求項22】
1つまたは複数のプロセッサによって実装される方法であって、
アプリケーションがコンピューティングデバイスを介してアクセスされているとき、ユーザから音声発話を受け取るステップであって、
前記コンピューティングデバイスが、前記アプリケーションとは別々の自動アシスタントへのアクセスを提供し、1つまたは複数の音声-テキストモデルを利用する、ステップと、
前記音声発話に基づいて、前記ユーザによって与えられた前記音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成するステップであって、
前記候補テキスト文字列が、前記コンピューティングデバイスに記憶された前記1つまたは複数の音声-テキストモデルを使用して生成される、ステップと、
前記自動アシスタントによって、前記候補テキスト文字列に基づいて、前記候補テキスト文字列を前記アプリケーションに対する入力として提供するか、または追加の内容を前記アプリケーションに対する入力として提供するかを決定するステップと、
前記アプリケーション内に前記追加の内容を取り込むように決定が行われたとき、
前記候補テキスト文字列およびコンテキストデータに基づいて前記追加の内容を生成するステップであって、
前記コンテキストデータが、前記ユーザが前記音声発話を与えたコンテキストを特徴付ける、ステップと、
前記追加の内容を前記アプリケーションに対する入力として提供させるステップと
を含む方法。
【請求項23】
前記候補テキスト文字列を前記アプリケーションに対する入力として提供するように異なる決定が行われたとき、
前記候補テキスト文字列を前記アプリケーションに対する入力として提供させるステップ
をさらに含む、請求項22に記載の方法。
【請求項24】
前記アプリケーション内に前記追加の内容を取り込むように決定が行われたとき、
前記コンピューティングデバイスのグラフィカルユーザインターフェースにおいて前記候補テキスト文字列をレンダリングすることを迂回するステップ
をさらに含む、請求項22または23に記載の方法。
【請求項25】
前記コンテキストデータが、前記アプリケーションのグラフィカルユーザインターフェースの内容を特徴付ける、請求項22から24のいずれか一項に記載の方法。
【請求項26】
前記コンテキストデータが、前記ユーザと前記自動アシスタントとの間の1つまたは複数の以前の対話を特徴付ける、請求項22から25のいずれか一項に記載の方法。
【請求項27】
前記コンテキストデータが、前記アプリケーションの入力フィールド内に取り込まれるべき内容のフォーマッティングに関する制限を特徴付ける、請求項22から26のいずれか一項に記載の方法。
【請求項28】
1つまたは複数のプロセッサによって実装される方法であって、
キーボード要素の選択がコンピューティングデバイスにおいてレンダリングされているキーボードアプリケーションのグラフィカルユーザインターフェースに与えられたことを判定するステップであって、
前記コンピューティングデバイスが、前記キーボードアプリケーションとは別々の自動アシスタントへのアクセスを提供し、1つまたは複数の音声-テキストモデルを利用する、ステップと、
前記キーボード要素が選択されたことを判定したことに続いて、ユーザから音声発話を受け取るステップであって、
前記ユーザが前記音声発話を与えるとき、前記ユーザが、入力フィールドを含む特定のアプリケーションにアクセスしている、ステップと、
前記音声発話に基づいて、前記ユーザによって与えられた前記音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成するステップであって、
前記候補テキスト文字列が、前記コンピューティングデバイスに記憶された前記1つまたは複数の音声-テキストモデルを使用して生成される、ステップと、
前記自動アシスタントによって、前記候補テキスト文字列に基づいて、前記入力フィールド内に前記候補テキスト文字列を取り込むか、または前記入力フィールド内に追加の内容を取り込むかを決定するステップと、
前記入力フィールド内に前記追加の内容を取り込むように決定が行われたとき、
前記グラフィカルユーザインターフェースの前記入力フィールドに対する入力として前記追加の内容を提供させるステップであって、
前記追加の内容が、前記候補テキスト文字列に基づく1つまたは複数の自動アシスタントアクションの実施を介して生成される、ステップと
を含む方法。
【請求項29】
前記入力フィールド内に取り込むための前記追加の内容を生成するように異なる決定が行われたとき、
前記グラフィカルユーザインターフェースの前記入力フィールドに対する入力として前記候補テキスト文字列を提供させるステップ
をさらに含む、請求項28に記載の方法。
【請求項30】
前記追加の内容には、前記ユーザの主言語から導出されるテキスト文字が欠けている、請求項28または29に記載の方法。
【請求項31】
前記追加の内容が少なくとも1つのイメージを含む、請求項28から30のいずれか一項に記載の方法。
【請求項32】
前記追加の内容が、前記1つまたは複数の音声-テキストモデルをさらに使用せずに生成され、前記候補テキスト文字列とは異なる、請求項28から31のいずれか一項に記載の方法。
【請求項33】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から32のいずれか一項に記載の方法を実施させる命令を含むコンピュータプログラム。
【請求項34】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から32のいずれか一項に記載の方法を実施させる命令を含むコンピュータ可読記憶媒体。
【請求項35】
請求項1から32のいずれか一項に記載の方法を実施するための1つまたは複数のプロセッサを備えるシステム。
【発明の詳細な説明】
【背景技術】
【0001】
人間は、本明細書で「自動アシスタント」と呼ばれる(「デジタルエージェント」、「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話型エージェント」などとも呼ばれる)対話型ソフトウェアアプリケーションとの人間-コンピュータ対話に関わることがある。たとえば、人間(自動アシスタントと対話するときは「ユーザ」と呼ばれることがある)は、あるケースではテキストに変換され、次いで処理され得る音声自然言語入力(すなわち発話)を使用して、かつ/またはテキストの(たとえば、タイプ入力された)自然言語入力を与えることによって、自動アシスタントにコマンドおよび/または要求を与え得る。自動アシスタントは、応答ユーザインターフェース出力を提供することによって要求に応答し、応答ユーザインターフェース出力は、可聴および/または視覚ユーザインターフェース出力を含み得る。
【0002】
前述のように、自動アシスタントは、ユーザの音声発話(spoken utterance)に対応するオーディオデータを、対応するテキスト(または他の意味表現)に変換し得る。たとえば、オーディオデータは、ユーザが自動アシスタントと対話することを可能にするためのアシスタントインターフェースを含むクライアントデバイスの1つまたは複数のマイクロフォンを介して、ユーザの音声発話の検出に基づいて生成され得る。自動アシスタントは、音声発話によって生成された音(たとえば、音素)、生成された音の順序、音声のリズム、イントネーションなどの、オーディオデータ内に取り込まれた音声発話の様々な特徴を認識しようと試みる音声認識エンジンを含み得る。さらに、音声認識エンジンは、そのような特徴によって表されるテキスト語または語句を識別し得る。次いでテキストは、音声発話に対する応答内容(responsive content)を決定する際に、自動アシスタントによって(たとえば、自然言語理解(NLU)エンジンおよび/または対話状態エンジンを使用して)さらに処理され得る。音声認識エンジンは、クライアントデバイス、および/またはクライアントデバイスから遠隔であるが、クライアントデバイスとネットワーク通信している1つもしくは複数の自動アシスタント構成要素によって実装され得る。
【0003】
自動アシスタントとは別々に、あるキーボードアプリケーションは、キーボードアプリケーションによってレンダリングされている仮想キーとの対話を通じて、タイプ入力されたキーボード入力をユーザが与えることを可能にし得る。キーボードアプリケーションのうちのいくつかはまた、ディクテーションを介してユーザがテキスト入力を与えることを可能にする。たとえば、ユーザは、キーボード上の「マイクロフォン」グラフィカル要素を選択し、次いで音声発話を与え得る。次いでキーボードアプリケーションは、音声発話を特徴付ける任意のオーディオデータを、対応するテキストに変換し、対応するテキストをアプリケーションへの入力として利用し得る。したがって、そうしたキーボードアプリケーションは、ユーザがタイピングの代わりに音声によってディクテーションし、厳密な逐語的ディクテーションをアプリケーションに対するテキストとして利用することを可能にする。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書において開示されるいくつかの実装は、ユーザの音声発話を取り込むオーディオデータを処理して、音声発話についての認識されたテキストを生成すること、および入力フィールドに取り込むために、(1)認識されたテキスト自体を提供するか、または(2)認識されたテキストに基づいて決定される代替内容を提供するかを決定することに関する。代替内容は、音声発話の代替音声-テキスト認識ではなく、認識されたテキストに基づいて決定される代替内容である。認識されたテキストおよび/または代替内容の1つまたは複数のプロパティが、入力フィールド内に認識されたテキストを取り込むか、または代替内容を取り込むかを決定する際に考慮され得る。
【0005】
いくつかの実装では、入力フィールド内に認識されたテキストを取り込むか、または代替内容を取り込むかを決定する際に、認識された内容および/または代替内容の1つまたは複数のプロパティが、ユーザが音声発話を与えたコンテキストに関係するパラメータと比較され得る。一例として、あるコンテキストでは、ユーザが、ウェブページによって提供されるサービスを受けるための連絡先情報を与えるために、ウェブページと対話していることがある。ユーザは、「番地(street address)」フィールドと識別される入力フィールドに対応するウェブページの一部を選択し得る。その後で、ユーザは、キーボード要素を選択して自動アシスタントを起動し(または任意の他の方式で、たとえばキーボードアプリケーションがフォアグラウンドにされることに自動的に応答して、自動アシスタントが起動され得る)、「私の自宅(My home)」などの音声発話を与え得る。それに応答して、自動アシスタントは音声発話を処理し、キーボードアプリケーションに、認識されたテキスト「私の自宅」の代わりに、ユーザの完全な自宅住所(たとえば、「1111 West Muhammed Ali Blvd」)である代替内容を入力フィールド内に取り込ませる。これは、たとえば、自動アシスタントが、入力フィールドが「番地」入力フィールドであり、代替内容がそれ自体番地であることを判定することに基づき得る。言い換えれば、自動アシスタントは、認識されたテキストの代わりに代替内容を取り込む際に、コンテキストに関係するパラメータ(たとえば、入力フィールドが「番地」フィールドであること)を代替内容のプロパティ(たとえば、代替内容が番地であること)と比較し得る。自動アシスタントは、たとえば、ウェブページのXMLまたはHTML(たとえば、入力フィールドについてのXMLまたはHTMLタグ)の考慮、入力フィールドの近くのテキストおよび/またはグラフィカル要素の考慮、および/または他の技法などの様々な技法を利用して、入力フィールドが住所であることを判定し得る。
【0006】
しかしながら、ユーザがメッセージングアプリケーションを介して別の人と通信しているとき、ユーザは、他の人から「今夜はどこで会いましょうか(Where are we meeting tonight?)」などのメッセージを受信し得る。それに応答して、ユーザは自動アシスタントを起動して、「私の自宅」などの音声発話を与え得る。それに応答して、自動アシスタントは、音声発話を処理して、キーボードアプリケーションに、ユーザの完全な自宅住所ではなく、音声発話の逐語的解釈(すなわち、テキスト「私の自宅」)を取り込ませ得る。逐語的解釈を取り込むという決定は、ユーザと他の人が通信した以前の例を特徴付けるコンテキストデータおよび/または履歴対話データに基づき得る。追加または代替として、この決定は、類似のコンテキストにおいてユーザがユーザの完全な自宅住所を与えたかどうか、および/またはユーザがいつ他の人にメッセージングしているかに基づき得る。この情報に基づいて、逐語的内容を取り込むか、または代替内容を取り込むかを決定するとき、完全な番地よりも逐語的解釈に偏向され得る。
【0007】
音声発話の逐語的解釈とは異なる内容を適応的に選択する自動アシスタントを提供することは、ユーザと自動アシスタントとの間の対話時間を短縮することを可能にし得る。これにより、実施しなければならない自動音声認識(ASR)処理量、さらには音声発話を受け取り、かつ/または処理するデバイスがオンのままとどまる時間量が削減され、それによって、デバイスによって費やされ得る電力および他の計算資源が保持され得る。たとえば、ユーザがユーザの自宅住所(たとえば、「1111 West Muhammed Ali Blvd.」)を述べるのにかかる時間量は、ユーザが「私の自宅」という語句を述べるのに費やす時間量と比較してかなり長くなり得る。同様に、完全な住所を認識するには、より短い語句を認識するのにかかるよりも多くのASR処理を必要とし得る。普通なら長々と続く音声発話を、凝縮された音声発話で置き換えることを可能にすることにより、ユーザ/デバイス対話の全持続時間が短縮され、それによって、普通ならユーザ/デバイス対話の持続時間が延長されることによって消費されることになる電力および/または他のリソースが保持され得る。たとえば、ユーザ/デバイス対話は、より迅速に結論を下し得、対話の停止に基づいて、デバイスがより迅速に省電力状態に移行することが可能となる。
【0008】
さらに、本明細書において開示される実装は、ユーザがそれを介して音声発話を与え得、結果として入力フィールドに対して認識されたテキストを提供すべきである発話と、結果として入力フィールドに対して代替内容を提供すべきである発話とを自動的に(たとえば、別のどんなユーザ入力も必要とすることなく)区別する共通インターフェースを提供する。この結果、「ディクテーションモード」と「代替内容」モードとの間で切り換えるために別のユーザインターフェース入力が必要とされない、改良型の人間-コンピュータ対話が得られる。言い換えれば、対応する認識されたテキストが対応する入力フィールド内に挿入するために提供される音声発話、ならびに代替内容がそれに基づいて決定され、対応する入力フィールド内に挿入するために提供される音声発話を与えるために、同一のインターフェースがユーザによって利用され得る。音声発話の「ディクテーション」が提供されるか、または音声発話に基づく「代替内容」が提供されるかは、本明細書において説明される1つまたは複数の考慮に基づき得、どちらが提供されるべきかを明示的に指示する明示的なユーザ入力を必要とすることなく自動的に決定され得る。
【0009】
さらに、別々のアプリケーションおよび/または別々のインターフェースをコンピューティングデバイス上で立ち上げて、別々のアプリケーションおよび/またはインターフェースとの長引くユーザ対話を通じて代替内容を識別する必要がない。たとえば、「あなたのフライトは明日のいつ出発/到着しますか(when does your flight leave / arrive tomorrow)」というメッセージに応答して、ユーザは、キーボードアプリケーションがメッセージ応答入力フィールドについてアクティブであるとき、「明日の私のフライトについての詳細を挿入(insert details for my flight tomorrow)」という音声発話を与え得る。それに応答して、ユーザのフライト詳細を含む代替内容(たとえば、出発空港および出発時刻、到着空港および到着時刻)が決定され、認識されたテキスト「明日の私のフライトについての詳細を挿入」の代わりに、応答入力フィールド内にキーボードアプリケーションによって挿入するために、キーボードアプリケーションに提供され得る。そのような代替内容は、ユーザが別々のアプリケーションを開き、別々のアプリケーションを使用してフライト情報を検索し、フライト情報をコピーし、次いでキーボードアプリケーションに戻ってフライト情報を挿入することを必要とせずに、決定され、挿入のために提供される。別々のアプリケーションおよび/またはインターフェースとのユーザ対話を不要とすることにより、人間-コンピュータ対話の持続時間が削減され、かつ/または別々のアプリケーションが実行されることが防止され、それによって様々なコンピュータリソースが保持され得る。
【0010】
様々な実装では、代替内容は、自動アシスタントを使用する、認識されたテキストの別の処理に基づいて生成された自動アシスタント内容であり得る。たとえば、認識されたテキストは、自動アシスタントの自然言語理解(NLU)エンジンを使用して処理され、自動アシスタント意図および/または意図についての値が決定され、意図および/または値に応答することに基づいて代替内容が決定され得る。
【0011】
いくつかの実装では、自動アシスタントは、キーボードアプリケーションとは別々のアプリケーションであり得、自動アシスタントは、アプリケーションプログラミングインターフェース(API)および/または任意の他のソフトウェアインターフェースを介してキーボードアプリケーションとインターフェースし得る。キーボードアプリケーションはキーボードインターフェースを提供し得る。任意選択で、キーボードインターフェースは、たとえばキーボードインターフェースにおいてレンダリングされたキーボード要素をタップすることによって、ユーザが自動アシスタントを起動することを可能にする。追加または代替として、キーボードインターフェースが浮上すること、および任意選択で、他の条件が満たされる(たとえば、音声活動が検出される)ことに応答して、自動アシスタントが自動的に起動され得、かつ/またはウェイクフレーズ(たとえば、「オーケーアシスタント(OK Assistant)」、「アシスタント」など)、一定のタッチジェスチャ、および/または一定のタッチフリージェスチャの検出などの他の自動アシスタント起動ユーザ入力に応答して、自動アシスタントが起動され得る。自動アシスタントが起動され、キーボードがアプリケーション(たとえば、サードパーティアプリケーション)のGUI内に浮上したとき、ユーザは音声発話を与え得る。音声発話は、自動アシスタントが起動されたことに応答して、自動アシスタントによって処理され得、自動アシスタントは、音声発話のディクテーションが提供されるべきか、または音声発話に基づく代替内容が提供されるべきかを決定し得る。次いで自動アシスタントは、キーボードによってディクテーションまたは代替内容のどちらかを対応する入力フィールド内に挿入させるコマンドをキーボードアプリケーションに提供し得る。言い換えれば、自動アシスタントは、ディクテーションが提供されるべきか、または代替内容が提供されるべきかを決定し、次いで(たとえば、キーボードアプリケーションAPIまたはオペレーティングシステムAPIを介して)対応する内容のみをキーボードアプリケーションに通信し得る。たとえば、キーボードインターフェースがレンダリング中であり、自動アシスタントが起動されるとき、「私の住所(My address)」などの音声発話を与えることは、音声発話が
与えられたコンテキストに基づいて、自動アシスタントに、キーボードアプリケーションにコマンドを提供させ得る。コマンドは、たとえば、キーボードアプリケーションに、音声発話の逐語的解釈であるテキスト(たとえば、「私の住所」)、またはキーボードによって出力される他の内容(たとえば、「1111 West Muhammed Ali Blvd.」)が得られる異なる解釈を提供させ得る。このようにして自動アシスタントがキーボードアプリケーションとインターフェースすることを可能にすることにより、メモリへのすべての自動アシスタント機能のインスタンス化、および/またはキーボードアプリケーション自体への自動アシスタント機能の組込みを必要としない、より軽いキーボードアプリケーションが提供される(それによって、キーボードアプリケーションによって必要とされる記憶空間が削減される)。むしろ、キーボードアプリケーションは、自動アシスタントからのAPI呼出しを利用して、自動アシスタント機能を実質的に示し得る。さらに、自動アシスタントが音声発話に基づいて音声発話のディクテーションを提供するか、または代替内容を提供するかを決定し、対応するデータをキーボードアプリケーションに通信することを可能にすることにより、様々な異なるキーボードアプリケーションのいずれかでこの拡張機能を利用することが可能となる。キーボードアプリケーションおよび/または基礎となるオペレーティングシステムがキーボードによって挿入されるべき内容の、キーボードアプリケーションへのプロビジョニングをサポートする限り、自動アシスタントは、様々なキーボードアプリケーションのいずれか1つとインターフェースし得る。
【0012】
本明細書において説明されるいくつかの追加の実装および/または代替実装は、ユーザがユーザの意図を逐語的に明示的に述べることなく、ユーザが自動アシスタントに何をするように指示している可能性があるかを推論し得る自動アシスタントに関する。言い換えれば、ユーザは、ユーザが自動アシスタントに識別させることを意図する内容を参照する音声発話を与え得、それに応答して、自動アシスタントは、音声発話内の語に関する参照された内容を使用して、一定の動作を実施させ得る。一例として、ユーザは、ユーザによってアクセスされているウェブサイトを運用する別の人などのエンティティによって提供されている特定のサービスについてサインアップするために、ウェブブラウザなどのアプリケーションと対話していることがある。ユーザがアプリケーションのインターフェースにおいてレンダリングされている特定の入力フィールドを選択したとき、キーボードインターフェースおよび/または自動アシスタントが初期化され得る。次いで、ユーザは、ユーザが選択した特定の入力フィールド内に一定の内容を取り込ませるために音声発話を与えることを選び得る。
【0013】
いくつかの実装では、ユーザは、自動アシスタントを対象とし、ユーザが入力フィールド内に取り込むことを意図する内容であるが、内容を逐語的に述べることなく参照する音声発話を与え得る。一例として、入力フィールドが、ユーザが入力フィールド内に物件住所を与えることを意図する住所フィールドであるとき、ユーザは、入力フィールドが、ユーザが位置する所-ユーザの自宅住所(たとえば、2812 First St., Lagrange, KY)であることを意図し得る。自宅住所を入力フィールド内に取り込ませるために、ユーザは、「私がいる所、アシスタント(Where I'm at, Assistant)」などの音声発話を与え得る。音声発話を受け取ったことに応答して、音声発話の逐語的内容の1つまたは複数の部分(たとえば、「私がいる所...」)を入力フィールド内に取り込むか、またはユーザが参照している可能性がある他の内容を取り込むかを決定するために、音声発話を特徴付けるオーディオデータが処理され得る。この決定を行うために、ユーザが音声発話を与えたコンテキストを特徴付けるコンテキストデータが処理され得る。
【0014】
いくつかの実装では、コンテキストデータは、ユーザがアクセスしているインターフェースに関連して記憶されるメタデータを特徴付け得る。たとえば、メタデータは、家屋番号(たとえば、「2812」)を必要とする「住所」フィールドとして入力フィールドを特徴付け得る。したがって、「私がいる所、アシスタント」という音声発話を受け取ったことに応答して、オーディオデータが処理され、ユーザが何らかの数字を明示的に述べたかどうかが判定され得る。音声発話に数字が欠けていると判定されたとき、オーディオデータおよび/またはコンテキストデータが処理され、入力フィールド内に他の内容を取り込む(たとえば、音声発話の少なくとも一部の逐語的口述である内容を取り込まない)かどうかが決定され得る。いくつかの実装では、他の内容が補足され、入力フィールド内に取り込むために考慮されるように、オーディオデータが処理され、音声発話の同義的解釈が識別され得る。追加または代替として、ユーザが同様の音声発話において、ならびに/またはコンピューティングデバイスおよび/もしくはアプリケーションへの任意の他の入力を介して、意図する内容を履歴的に参照したかどうかを判定するために、オーディオデータが処理され得る。たとえば、オーディオデータは、自動アシスタントによって実施することのできる他のアクションに鑑みて処理され得る。
【0015】
一例として、自動アシスタントは、ユーザが「アシスタント、私の場所にバスはいつ到着する?(Assistant, when does the bus arrive at my location?)」などの音声発話を与えたときに、ナビゲーションデータをレンダリングするための機能を含み得る。音声発話に応答して、自動アシスタントは、ユーザの現在位置を含む公共交通機関経路を識別するために、ユーザの現在位置の住所を識別し得る。同様に、自動アシスタントは、音声発話の「私の場所」という自然言語内容を処理し、自動アシスタントにユーザの現住所をパラメータとして取り込むコマンドを使用させるためにユーザが「私の場所」という語句を使用したときの以前の例に少なくとも基づいて、音声発話が住所を参照し得ると判定し得る。したがって、音声発話に応答して、自動アシスタントを介して識別された他の内容は、ユーザの現在位置の住所(たとえば、2812 First St., Lagrange, KY)を含み得る。識別された他の内容は、入力フィールドがある量の数字(たとえば、家屋番号)を有するように意図されることを示すコンテキストデータに基づいてさらに処理され得る。したがって、他の内容が数字を有し、入力フィールドを満たし、音声発話の逐語的解釈の1つまたは複数の部分よりも少なくとも満足の行くものであるので、他の内容が入力フィールド内に取り込まれ得る(たとえば、「アドレス入力:2812 First St., Lagrange, KY」)。
【0016】
いくつかの実装では、ユーザは、選択された入力フィールドへの入力のための部分と、自動アシスタントへの照会として与えられる別の部分とを含む音声発話を与え得る。たとえば、ユーザは、サードパーティアプリケーションと対話しており、入力フィールド内へのテキストの入力を促進するために入力フィールドを選択し得る。入力フィールドを選択したことに応答して、キーボードインターフェースが、サードパーティアプリケーションのグラフィカルユーザインターフェース(GUI)においてレンダリングされ得る。キーボードインターフェースは、ユーザによって選択されるとき、自動アシスタントを起動させるGUI要素を含み得る。たとえば、ユーザが最近受信したテキストメッセージ(たとえば、「ジャック:あなたはいつ映画に向かうのですか?(Jack: When are you heading to the movie?)」に応答しようと試みているとき、ユーザは、コンピューティングデバイスのディスプレイパネルにおいてキーボードインターフェースを浮上させるためにテキスト応答フィールドを選択し得る。次いでユーザは、自動アシスタントを起動させるために、キーボードインターフェースと共にレンダリングされたGUI要素(たとえば、マイクロフォングラフィック)を選択し得る。自動アシスタントが起動されたとき、ユーザは、受信したテキストメッセージに応答する内容と、自動アシスタントに対する照会である内容とを含む音声発話(たとえば、「私は今向かっているところです。それと、天気はどう、アシスタント?(I'm heading over now. Also, what is the weather, Assistant?)」)を与え得る。
【0017】
音声発話を受け取ったことに応答して、1つまたは複数の音声-テキストモデルを使用して、音声発話を特徴付けるために生成されたオーディオデータが処理され得る。処理の結果として得られるテキストが、選択された入力フィールド内にテキストのすべてを取り込むか、入力フィールド内にテキストの一部を取り込むか、かつ/または得られるテキストの1つもしくは複数の部分に基づいて他の内容を生成するかを決定するためにさらに処理され得る。いくつかの実装では、得られるテキストは、音声発話の部分を、選択された入力フィールドを対象とするもの、または自動アシスタントに対する照会として与えられるものとして分類し得る1つまたは複数のモデルを使用して処理され得る。追加または代替として、得られるテキストの処理は、ユーザが音声発話を与えたコンテキストを特徴付けるコンテキストデータを使用して実施され得る。たとえば、ユーザからの事前の許可と共に、コンテキストデータは、ユーザからの以前の入力、現在アクティブなメッセージインターフェースを介してアクセス可能であるテキスト、選択された入力フィールドに関連して記憶されたメタデータ、ならびに/またはコンピューティングデバイスのサードパーティアプリケーションおよび/もしくは別々のアプリケーションを介してアクセス可能である任意の他の入力フィールドに基づき得る。得られるテキストの部分の処理は、選択された入力フィールドに適しており、かつ/または自動アシスタントに対する照会としては適していないとテキストの一部を特徴付ける偏向を生成し得る。たとえば、得られるテキストの一部は、自動アシスタントに対する照会としては適していないと指定され得、コンテキストデータに基づいて、選択された入力フィールド内への取込みに適していると指定され得る。
【0018】
得られるテキストが処理されたとき、テキストの一部は、選択された入力フィールド内への取込みのために指定され得、テキストの別の部分は、自動アシスタントに対する照会として指定され得る。たとえば、テキストの第1の部分が「私は今向かっているところです」を含み得、これが、選択された入力フィールド内に組み込まれ得、テキストの第2の部分が「それと、天気はどう、アシスタント?」を含み得、これが、自動アシスタントを介して照会として処理され得る。したがって、自動アシスタントは、テキストの第1の部分を選択された入力フィールド内に取り込ませ得、「明日の天気は曇で、最高72度および最低65度です(The weather tomorrow is cloudy with a high of 72 and a low of 65)」などのテキストの第2の部分に対する応答を生成し得る。
【0019】
いくつかの実装では、テキストの第1の部分(たとえば、「私は今向かっているところです」)が、メッセージに応答するためのテキストフィールド内に含まれているとき、自動アシスタントは、ユーザがメッセージを送りたいという確認を待ち得る。たとえば、テキストの第1の部分が、着信メッセージに応答するためのテキストフィールドを占有し得、ユーザは、メッセージを送信させるために、「メッセージを送って(Send message)」などの音声発話を自動アシスタントに与え得る。いくつかの実装では、テキストフィールドは、サードパーティメッセージングアプリケーションのインターフェースとしてレンダリングされ得、したがって、「メッセージを送って」という音声発話を受け取ったことに応答して、自動アシスタントは、サードパーティメッセージングアプリケーションと通信し、メッセージを送信させ得る。
【0020】
代替または追加として、ユーザは、メッセージを送るように自動アシスタントに指示する前に、下書きメッセージの内容を修正するように自動アシスタントに命令することによってメッセージを修正することを選び得る。たとえば、自動アシスタントが、メッセージングアプリケーションのテキストフィールドに、「私は今向かっているところです」という音声発話の内容を含めさせたとき、ユーザは、「最後の語を削除して(Delete the last word)」、「最後の語を「15分」で置き換えて(Replace the last word with 'in 15 minutes')」、「「今」を「間もなく」で置き換えて(Replace 'now' with 'soon')」などの後続の音声発話を発行し得る。それに応答して、自動アシスタントは、ユーザからの後続の音声発話に従って下書きメッセージの内容を修正するために、メッセージングアプリケーションと対話し得る。いくつかの実装では、自動アシスタントは、メッセージングアプリケーションを実行中のコンピューティングデバイスのオペレーティングシステムに対する1つまたは複数の入力を介して、内容に対する変更を達成し得る。代替または追加として、自動アシスタントは、自動アシスタントがメッセージングアプリケーションを制御することを可能にするアプリケーションプログラミングインターフェース(API)を介してメッセージングアプリケーションとインターフェースすることによって、内容に対する変更を達成し得る。
【0021】
追加または代替として、自動アシスタントは、キーボードアプリケーションとインターフェースするためのAPIを介して内容に対する変更を達成し得る。キーボードアプリケーションは、ユーザが内容を編集し、検索を実行し、かつ/または別々のキーボードアプリケーションを介して少なくとも初期化され得るサードパーティアプリケーションの任意の他の機能を実施することを可能にするために、サードパーティメッセージングアプリケーションなどのサードパーティアプリケーションと対話するための機能を有し得る。したがって、キーボードAPIは、サードパーティアプリケーションのそのような機能の実行を初期化するために、自動アシスタントがキーボードアプリケーションも制御することを可能にし得る。したがって、下書きメッセージの内容を編集するための後続の音声発話(たとえば、「「今」という語を削除して(Delete the word 'now')」)を受け取ったことに応答して、自動アシスタントは、下書きメッセージの内容から「今」という語を削除させるために、キーボードAPIを介してキーボードアプリケーションと対話し得る。その後で、ユーザは、ユーザがキーボードGUIの「send」ボタンを押したかのように「send」コマンドがメッセージングアプリケーションに通信されるように自動アシスタントにキーボードAPIとインターフェースさせ得る、「メッセージを送って」という音声発話を与えることによってメッセージに送らせ得る。
【0022】
いくつかの実装では、ユーザがイメージ、絵文字、他のメディアなどの追加の内容を下書きメッセージに追加することを選んだ場合、ユーザは、「「サムズアップ」を追加して(Add a 'thumbs up')」などの後続の音声発話を与え得る。それに応答して、自動アシスタントは、下書きメッセージ内に挿入する適切なグラフィックを識別するために、「サムズアップ」という後続の音声発話の内容を使用して、メッセージングアプリケーションおよび/またはオペレーティングシステムによって提供されるメディアデータを検索し得る。代替または追加として、ユーザは、自動アシスタントに、後続の音声発話の内容に対応し得る「GIF」についての検索結果をレンダリングさせ得る。たとえば、「「サムズアップ」GIFを見せて(Show me 'thumbs up' GIFs)」などの後続の音声発話を受け取ったことに応答して、自動アシスタントは、オペレーティングシステムおよび/またはメッセージングアプリケーションに、キーボードGUIの検索インターフェースを開かせ、検索インターフェースにおいて「サムズアップ」の検索照会を実行させ得る。次いでユーザは、キーボードGUIの特定の場所をタップすることによって、またはユーザの所望のGIFを述べる別の音声発話を発行することによって所望のGIFを選択し得る。たとえば、ユーザは、自動アシスタントに検索結果においてリストされる「第3の」GIFを選択させ、下書きメッセージの内容に「第3の」GIFを取り込ませるために、「3番目(The third one)」などの別の音声発話を与え得る。その後で、ユーザは、「メッセージを送って」という音声発話を発行することによってメッセージを送ることを選び得る。
【0023】
上記の説明は、本開示の実装の概要として与えられる。そうした実装、および他の実装のさらなる説明が、以下でより詳細に説明される。
【0024】
他の実装は、前述の方法および/または本明細書の別の箇所において説明される方法のうちの1つまたは複数などの方法を実施するように1つまたは複数のプロセッサ(たとえば、中央演算処理装置(CPU)、グラフィックス処理装置(GPU)、および/またはテンソル処理装置(TPU))によって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含み得る。さらに別の実装は、記憶された命令を実行して、前述の方法および/または本明細書の別の箇所において説明される方法のうちの1つまたは複数などの方法を実施するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のコンピュータのシステムを含み得る。
【0025】
本明細書においてより詳細に説明される前述の概念および追加の概念のすべての組合せが、本明細書において開示される主題の部分であるものとして企図されることを理解されたい。たとえば、本開示の終わりに現れる、特許請求される主題のすべての組合せが、本明細書において開示される主題の部分であるものとして企図される。
【図面の簡単な説明】
【0026】
【
図1A】逐語的に内容を述べて、または必ずしも逐語的に内容を述べずに、入力フィールド内に取り込まれるべき内容に対する参照を述べるユーザのビューを示す図である。
【
図1B】逐語的に内容を述べて、または必ずしも逐語的に内容を述べずに、入力フィールド内に取り込まれるべき内容に対する参照を述べるユーザのビューを示す図である。
【
図1C】逐語的に内容を述べて、または必ずしも逐語的に内容を述べずに、入力フィールド内に取り込まれるべき内容に対する参照を述べるユーザのビューを示す図である。
【
図2A】イメージ内容を明示的に選択することなく、入力フィールド内に取り込まれるべきイメージ内容に対する参照を述べるユーザのビューを示す図である。
【
図2B】イメージ内容を明示的に選択することなく、入力フィールド内に取り込まれるべきイメージ内容に対する参照を述べるユーザのビューを示す図である。
【
図3】音声発話の部分の逐語的解釈を入力フィールド内に取り込み、かつ/または入力フィールド内に同義的内容を取り込むかを選択的に決定し得る自動アシスタントを提供するためのシステムを示す図である。
【
図4】複数の候補解釈のうちの1つを入力フィールド内に取り込むかどうかを決定し得る自動アシスタントを提供するための方法を示す図である。
【
図5A】アプリケーションインターフェースを介してユーザが選択した入力フィールド内に逐語的解釈および/または参照される内容を取り込むかを決定し得る自動アシスタントを提供するための方法を示す図である。
【
図5B】アプリケーションインターフェースを介してユーザが選択した入力フィールド内に逐語的解釈および/または参照される内容を取り込むかを決定し得る自動アシスタントを提供するための方法を示す図である。
【
図6】例示的コンピュータシステムのブロック図である。
【発明を実施するための形態】
【0027】
図1A、
図1B、
図1Cは、それぞれ、逐語的に内容を述べて、または必ずしも逐語的に内容を述べずに、入力フィールド内に取り込まれるべき内容に対する参照を述べるユーザ102のビュー100、ビュー140、およびビュー160を示す。ユーザ102は当初、サーモスタットアプリケーション108がその間に低電力モードに従って動作するスケジュール110をセットアップするために、サーモスタットアプリケーション108などのアプリケーションと対話し得る。たとえば、ユーザ102は、ユーザ102の手118を用いてサーモスタットアプリケーション108のスケジュール110インターフェースの特定の入力フィールドを選択することによって、サーモスタットアプリケーション108と対話し得る。ユーザ102が入力フィールドを選択したことに応答して、任意選択で、サーモスタットアプリケーション108、自動アシスタント130、および/またはコンピューティングデバイス104のオペレーティングシステムが、コンピューティングデバイス104のディスプレイパネル106においてキーボードインターフェース112をレンダリングさせ得る。
【0028】
選択された入力フィールド内に取り込まれるべき内容を与えるために、ユーザ102は、キーボードインターフェース112を介して内容をタイプ入力し、かつ/または内容を含む、かつ/もしくは参照する音声発話を与え得る。たとえば、
図1Aにおいて与えられるように、ユーザ102は、「明日の日付は、アシスタント?(Tomorrow's date, Assistant?)」などの音声発話116を与え得る。音声発話に基づいて生成されたオーディオデータは、候補内容122を生成するために、コンピューティングデバイス104のデータエンジン126において処理され得る。候補内容122は、アシスタントデータ120、アプリケーションデータ124、および/または自動アシスタント130によってアクセスされ得る任意の他のデータに基づいて生成され得る。いくつかの実装では、アプリケーションデータ124は、選択された入力フィールドが日付を受け取るようにフォーマットされることを示し得る。したがって、候補内容122がデータエンジン126によって生成されているとき、データエンジン126は、他の候補内容122よりも、日付としてフォーマットされる候補内容122を選択することに偏向し得る。
【0029】
図1Bは、メッセージングアプリケーション146の選択された入力フィールド(たとえば、新しいメッセージ148)内に内容を取り込むためにメッセージングアプリケーション146と対話するユーザのビュー140を示す。さらに、自動アシスタント130は、同一の音声発話(たとえば、「明日の日付」)が与えられているにも関わらず、
図1Aにおいて生成された内容(たとえば、「3/14/19」)と同一の入力フィールド150についての内容を生成するか、または異なる内容を生成するかを決定するために、ユーザ102からの音声発話142をさらに処理し得る。たとえば、入力フィールド150内に取り込むのに適した内容を決定するために、音声発話142から生成されたオーディオデータが、コンテキストデータと組み合わせて処理され得るテキストに変換され得る。たとえば、テキストは、音声発話が与えられたコンテキストに少なくとも部分的に基づいて、テキストについての候補解釈を提供するようにトレーニングされる1つまたは複数の機械学習モデルを使用して処理され得る。その後で、各候補解釈が処理され、与えられたコンテキストに最も適している候補解釈が識別され得る。
【0030】
たとえば、
図1Aの環境に基づいて生成されたコンテキストデータは、ユーザ102がサーモスタットを制御するためのスケジュール110内に日付を与えるためにサーモスタットアプリケーション108にアクセスしていることを示し得る。さらに、コンテキストデータは、フィールドが日付を特徴付ける少なくとも何らかの量の数字入力を受けなければならないという制限などの、フィールドの制限を特徴付け得る。したがって、自動アシスタント130によって生成される、数字を含む任意の候補解釈が、数字を含まない候補解釈よりも優先され得る。さらに、
図1Bの環境に基づいて生成されたコンテキストデータは、ユーザ102が以前に受信したメッセージ(たとえば、「アイリーン:「何のチケット?(Irene: What are the tickets for?)」」)に対する応答メッセージを与えるためにメッセージングアプリケーション146にアクセスしていることを示し得る。このコンテキストデータは、メッセージングアプリケーション146のステータス、メッセージングアプリケーション146のインターフェースにおいてレンダリングされている内容(たとえば、「アイリーン」からの以前のメッセージ、および/または他の先行するメッセージ)、および/またはコンピューティングデバイス104を介してメッセージにアクセスするユーザの環境に関連する任意の他の情報を特徴付け得る。
【0031】
いくつかの実装では、音声発話142の候補解釈は「明日の日付」であり得、他の追加の内容が、音声発話142のテキストに基づいて生成され得る。候補解釈および他の内容を含み得る候補内容144が処理され、入力フィールド150内に取り込むのに最も適した内容が識別され得る。たとえば、候補内容144内のエントリが「3/14/19」を含み得、これは、ユーザ102がメッセージングアプリケーション146にアクセスしている日に続く日の数字表現であり得る。候補内容144は、1つまたは複数の機械学習モデルを使用して処理され得、この1つまたは複数の機械学習モデルは、音声発話142を特徴付けるオーディオデータを処理するために使用される1つまたは複数の機械学習モデルとは異なるものであり得る。候補内容144の処理に基づいて、「明日の日付」という候補解釈が任意の他の候補内容よりも優先され得、候補解釈が入力フィールド150内に取り込まれ得る。このようにして音声発話を処理することにより、ユーザが音声発話の各部分の目的をよりはっきりと指定することが必要とされる環境内で普通なら浪費され得る計算資源が保持され得る。前述のように、「3/14/19」という候補内容144の代わりに「明日の日付」という候補解釈を提供することを決定する際に利用されるコンテキスト情報は、「アイリーン」からの前のメッセージを含み得る。いくつかの実装では、アイリーンのメッセージが、たとえば「何日だっけ?(what date again?)」であった場合、「3/4/29」という候補内容144が「明日の日付」という候補解釈の代わりに提供され得ることに留意されたい。
【0032】
いくつかの実装では、
図1Cのビュー160において与えられるように、音声発話142の自然言語内容が処理され、自然言語内容が自動アシスタントコマンドを盛り込むかどうかが決定され得る。たとえば、自然言語内容が自然言語理解エンジンを使用して処理され、特定のアシスタントアクションに対応する意図が自然言語内容に盛り込まれるかどうかが決定され得る。自然言語内容が意図を盛り込むとき、自動アシスタントは、特定のアシスタントアクションの実施を初期化し得る(たとえば、入力フィールド150内に「挿入」されるべき日付を思い起こさせる)。しかしながら、意図が自然言語内容に盛り込まれないとき、自然言語内容の1つまたは複数の部分が入力フィールド150内に取り込まれ得る。いくつかの実装では、自然言語内容、および/または代替として自然言語内容を入力フィールド150内に取り込む決定は、入力フィールド150の1つまたは複数のプロパティ(たとえば、入力フィールドからしきい距離以内のHTML、XML、テキスト、および/またはグラフィックス)に基づき得る。
【0033】
図1Cに示されるように、ユーザ102は、ユーザ102のコンピューティングデバイス104において新しいメッセージ148を受信し、送信側(たとえば、「アイリーン」)に対する応答メッセージを与えるために、新しいメッセージ148をレンダリングするインターフェースの一部を選択し得る。
図1Bに示されるように、ユーザ102は、ユーザ102の音声発話においてアシスタント意図を盛り込む自然言語(たとえば、「...応答して(Respond...)」、「...挿入して(Insert...)」など)を省略することによって、自動アシスタント130に「明日の日付」という語句を取り込ませ得る。しかしながら、自動アシスタント130に代替内容(たとえば、逐語的自然言語内容とは異なり得る内容)を取り込ませるために、ユーザ102は、アシスタント意図を音声発話162内に取り込み得る。たとえば、音声発話162は、「明日の日付を挿入(Insert tomorrow's date)」というコマンドを含み得る。候補内容164が、音声発話162に応答して生成され得、入力フィールド150内に取り込む内容の選択が、ユーザ102が音声発話162を与えたコンテキストに従って偏向され得る。たとえば、自動アシスタント130は、入力フィールド150内に「明日の日付を挿入」という逐語的内容を挿入することから離れるように偏向し、その代わりに、識別された意図(たとえば、「挿入」)から分離される自然言語内容(たとえば、「明日の日付」)の代替解釈に偏向することを決定し得る。その結果、適切な追加の内容が識別され(たとえば、2019年3月15日(March 15, 2019))、入力フィールド150内に組み込まれ得る。
【0034】
図2Aおよび
図2Bは、それぞれ、必ずしもイメージ内容を明示的に選択することなく、入力フィールド内に取り込まれるべきイメージ内容に対する参照を述べるユーザ202のビュー200およびビュー240を示す。ユーザ202は当初、特定の連絡先(たとえば、リチャード)に新しいメッセージ210を送るために、メッセージングアプリケーション208などのアプリケーションと対話し得る。たとえば、ユーザ202は、ユーザ202の手218を用いてメッセージングアプリケーション208のグラフィカルユーザインターフェースの特定の入力フィールド246を選択することによって、メッセージングアプリケーション208と対話し得る。ユーザ202が入力フィールドを選択したことに応答して、任意選択で、メッセージングアプリケーション208、自動アシスタント230、および/またはコンピューティングデバイス204のオペレーティングシステムが、コンピューティングデバイス204のディスプレイパネル206においてキーボードインターフェース212をレンダリングさせ得る。キーボードインターフェース212は、ユーザによって選択されたとき、自動アシスタント230を起動して、選択された入力フィールド246内に取り込まれるべき内容をユーザが与えるのを援助するキーボード要素232を含み得る。自動アシスタント230は、キーボードインターフェース212を提供するキーボードアプリケーションとは別々のアプリケーションであり得る。しかしながら、自動アシスタント230は、ユーザ202によって与えられる音声発話に基づいて、キーボードアプリケーションにコマンドを提供し得る。コマンドは、自動アシスタント230によって、API、プロセス間通信、および/またはアプリケーション間で通信するための任意の他の技法を介して、キーボードアプリケーションに提供され得る。いくつかの実装では、自動アプリケーションのコンテナがメモリ内にインスタンス化されるのと同時に、キーボードアプリケーションのコンテナがメモリ内にインスタンス化され得る。
【0035】
選択された入力フィールド246内に取り込まれるべき内容を与えるために、ユーザ202は、キーボードインターフェース212を介して内容をタイプ入力し、かつ/または内容を含む、かつ/もしくは参照する音声発話を与え得る。たとえば、
図2Aにおいて与えられるように、ユーザ202は、メッセージ(たとえば、「あなたの家のために何か必要ですか?(Do you
need anything for your house?)」)に応答して、音声発話216を与え得る。音声発話216は、「ハンマー絵文字、くぎ絵文字、さらに、どこでトラックを予約することができますか?(Hammer emoji, nails emoji, and also, where can I reserve a truck?)」であり得る。音声発話に基づいて生成されたオーディオデータは、候補内容222を生成するために、コンピューティングデバイス204のデータエンジン226において処理され得る。候補内容222は、アシスタントデータ220、アプリケーションデータ224、および/または自動アシスタント230によってアクセスされ得る任意の他のデータに基づいて生成され得る。いくつかの実装では、アプリケーションデータ224は、選択された入力フィールドがテキストおよび/またはイメージを受け取るようにフォーマットされることを示し得る。
【0036】
図2Bは、メッセージングアプリケーション208の選択された入力フィールド246内に内容を取り込むために、メッセージングアプリケーション208において応答データ244をレンダリングするコンピューティングデバイス204のビュー240を示す。たとえば、いくつかの絵文字を特徴付けるためのメタデータがコンピューティングデバイス204において記憶され得る。したがって、音声発話216を受け取ったことに応答して、コンピューティングデバイス204は、「ハンマー」という語が特定の絵文字に関連して記憶され、「くぎ」という語が特定の絵文字に関連して記憶されることを決定し得る。次いで、
図2Bにおいて与えられるように、各絵文字が入力フィールド246内に取り込まれ得る。
【0037】
さらに、自動アシスタント230は、音声発話216の任意の他の部分が自動アシスタント230によって応答されていないかどうかを判定するために、ユーザ202からの音声発話216をさらに処理し得る。たとえば、音声発話216から生成されたオーディオデータがテキストに変換され得、テキストは、ユーザ202の別々の意図に対応するテキストの別々の部分を識別するために解析され得る。たとえば、テキストは、ユーザ202からの連続的入力として共に集められた自然言語内容の各部分を分類するようにトレーニングされる1つまたは複数の機械学習モデルを使用して処理され得る。その後で、テキストの特定の部分が、特定の部分に対応するテキストの分類に対応する別の機械学習モデル(たとえば、イメージ記述モデル)を使用して処理され得、テキストの別の部分が、テキストの他の部分に対応するテキストの別の分類に対応する異なる機械学習モデル(たとえば、ナビゲーション検索モデル)を使用して処理され得る。
【0038】
一例として、テキストの第1の部分は「ハンマー絵文字、くぎ絵文字」であり得、それが処理されるとき、
図2Bの入力フィールド246内に描かれる各絵文字のファイル位置などの候補内容222が得られ得る。さらに、テキストの第2の部分は、「さらに、どこでトラックを予約することができますか?」であり得、それが処理されるとき、「Louisville Trucker Company」などの他の候補内容222が得られ得る。次いで、自動アシスタント230が入力フィールド246内に候補内容122を取り込むのと同時に、他の候補内容122が自動アシスタント230の出力242内に取り込まれ得る。このようにして音声発話を処理することにより、ユーザが音声発話の各部分の目的をよりはっきりと指定することが必要とされる環境内で普通なら浪費され得る計算資源が保持され得る。
【0039】
図3は、音声発話の部分の逐語的解釈を入力フィールド内に取り込み、かつ/または入力フィールド内に同義的内容を取り込むかを選択的に決定し得る自動アシスタントを提供するためのシステム300を示す。自動アシスタント304は、コンピューティングデバイス302および/またはサーバデバイスなどの1つまたは複数のコンピューティングデバイスにおいて提供されるアシスタントアプリケーションの部分として動作し得る。ユーザは、アシスタントインターフェース320を介して自動アシスタント304と対話し得、アシスタントインターフェース320は、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションとの間のインターフェースを提供することのできる任意の他の装置であり得る。たとえば、ユーザは、アシスタントインターフェース320に口頭入力、テキスト入力、および/またはグラフィカル入力を与えて、自動アシスタント304に機能を実施させる(たとえば、データを提供させ、周辺デバイスを制御させ、エージェントにアクセスさせ、入力および/または出力を生成させるなど)ことによって、自動アシスタント304を初期化し得る。コンピューティングデバイス302は、タッチインターフェースを介してユーザがコンピューティングデバイス302のアプリケーション334を制御することを可能にするためのタッチ入力および/またはジェスチャを受け取るためのタッチインターフェースを含むディスプレイパネルであり得るディスプレイデバイスを含み得る。いくつかの実装では、コンピューティングデバイス302にはディスプレイデバイスが欠如し得、それによって、グラフィカルユーザインターフェース出力を提供することなく、可聴ユーザインターフェース出力を提供する。さらに、コンピューティングデバイス302は、ユーザから音声自然言語入力を受けるための、マイクロフォンなどのユーザインターフェースを提供し得る。いくつかの実装では、コンピューティングデバイス302はタッチインターフェースを含み得、カメラが欠けていることがあるが、任意選択で、1つまたは複数の他のセンサを含み得る。
【0040】
コンピューティングデバイス302および/または他のサードパーティクライアントデバイスは、インターネットなどのネットワークを介してサーバデバイスと通信していることがある。さらに、コンピューティングデバイス302および任意の他のコンピューティングデバイスは、Wi-Fiネットワークなどのローカルエリアネットワーク(LAN)を介して互いに通信していることがある。コンピューティングデバイス302は、コンピューティングデバイス302において計算資源を保持するために、計算タスクをサーバデバイスにオフロードし得る。たとえば、サーバデバイスは、自動アシスタント304をホストし得、および/またはコンピューティングデバイス302は、1つもしくは複数のアシスタントインターフェース320において受け取られた入力をサーバデバイスに送り得る。しかしながら、いくつかの実装では、自動アシスタント304は、コンピューティングデバイス302においてホストされ得、自動アシスタントオペレーションに関連付けられ得る様々なプロセスが、コンピューティングデバイス302において実施され得る。
【0041】
様々な実装では、自動アシスタント304のすべてまたはすべて未満の態様が、コンピューティングデバイス302上で実装され得る。そうした実装のうちのいくつかでは、自動アシスタント304の態様が、コンピューティングデバイス302を介して実装され、サーバデバイスとインターフェースし得、サーバデバイスは、自動アシスタント304の他の態様を実装し得る。任意選択で、サーバデバイスは、複数のスレッドを介して複数のユーザおよびユーザの関連するアシスタントアプリケーションにサービスし得る。自動アシスタント304のすべてまたはすべて未満の態様がコンピューティングデバイス302を介して実装される実装では、自動アシスタント304は、コンピューティングデバイス302のオペレーティングシステムとは別々のアプリケーションであり得(たとえば、オペレーティングシステムの「上」にインストールされる)、または代替として、コンピューティングデバイス302のオペレーティングシステムによって直接的に実装され得る(たとえば、オペレーティングシステムとは一体ではなく、オペレーティングシステムのアプリケーションと見なされる)。
【0042】
いくつかの実装では、自動アシスタント304は入力処理エンジン306を含み得、入力処理エンジン306は、コンピューティングデバイス302および/またはサーバデバイスに対する入力および/または出力を処理するための複数の異なるモジュールを利用し得る。たとえば、入力処理エンジン306は音声処理エンジン308を含み得、音声処理エンジン308は、アシスタントインターフェース320において受け取ったオーディオデータを処理して、オーディオデータ内に盛り込まれたテキストを識別し得る。オーディオデータは、たとえば、コンピューティングデバイス302において計算資源を保持するために、コンピューティングデバイス302からサーバデバイスに送信され得る。追加または代替として、オーディオデータは、コンピューティングデバイス302において排他的に処理され得る。
【0043】
オーディオデータをテキストに変換するためのプロセスは音声認識アルゴリズムを含み得、音声認識アルゴリズムは、語または語句に対応するオーディオデータのグループを識別するためのニューラルネットワーク、および/または統計モデルを利用し得る。オーディオデータから変換されたテキストは、データ解析エンジン310によって解析され、コマンド語句、意図、アクション、スロット値、および/またはユーザによって指定される任意の他の内容を生成および/または識別するために使用され得るテキストデータとして自動アシスタント304にとって利用可能にされ得る。いくつかの実装では、データ解析エンジン310によって提供される出力データがパラメータエンジン312に提供され、自動アシスタント304および/または自動アシスタント304を介してアクセスすることのできるアプリケーションもしくはエージェントによって実施することのできる特定の意図、アクション、および/またはルーチンに対応する入力をユーザが与えたかどうかが判定され得る。たとえば、アシスタントデータ338が、サーバデバイスおよび/またはコンピューティングデバイス302において記憶され得、自動アシスタント304によって実施することのできる1つまたは複数のアクション、ならびにアクションを実施するのに必要なパラメータを定義するデータを含み得る。パラメータエンジン312は、意図、アクション、および/またはスロット値についての1つまたは複数のパラメータを生成し、出力生成エンジン314に1つまたは複数のパラメータを提供し得る。出力生成エンジン314は、1つまたは複数のパラメータを使用して、ユーザに出力を提供するためにアシスタントインターフェース320と通信し、かつ/または1つまたは複数のアプリケーション334に出力を提供するために1つまたは複数のアプリケーション334と通信し得る。
【0044】
いくつかの実装では、自動アシスタント304は、コンピューティングデバイス302のオペレーティングシステムの「上」にインストールされ得るアプリケーションであり得、かつ/またはそれ自体でコンピューティングデバイス302のオペレーティングシステムの部分(または全体)を形成し得る。自動アシスタントアプリケーションは、オンデバイス音声認識、オンデバイス自然言語理解、およびオンデバイス履行を含み、かつ/またはそれらにアクセスできる。たとえば、コンピューティングデバイス302にローカルに記憶されたエンドツーエンド音声認識機械学習モデルを使用して(マイクロフォンによって検出された)オーディオデータを処理するオンデバイス音声認識モジュールを使用して、オンデバイス音声認識が実施され得る。オンデバイス音声認識は、オーディオデータ内に存在する音声発話(それが存在する場合)についての認識されたテキストを生成する。さらに、たとえば、オンデバイス自然言語理解(NLU)が、オンデバイス音声認識を使用して生成された、認識されたテキストと、任意選択でコンテキストデータとを処理してNLUデータを生成するオンデバイスNLUモジュールを使用して実施され得る。
【0045】
NLUデータは、音声発話に対応する意図と、任意選択で意図についてのパラメータ(たとえば、スロット値)とを含み得る。(オンデバイスNLUからの)NLUデータと、任意選択で他のローカルデータとを利用するオンデバイス履行モジュールを使用してオンデバイス履行が実施され、音声発話の意図(および任意選択で意図についてのパラメータ)を解決するためのアクションを取ることが決定され得る。これは、音声発話、に対するローカルおよび/またはリモート応答(たとえば、回答)、音声発話に基づいて実施するための、ローカルにインストールされたアプリケーションとの対話、音声発話に基づいてモノのインターネット(IoT)デバイスに(直接的に、または対応するリモートシステムを介して)送信するためのコマンド、および/または音声発話に基づいて実施するための他の解決アクションを決定することを含み得る。次いで、オンデバイス履行は、決定したアクションのローカルおよび/またはリモート実施/実行を開始して、音声発話を解決し得る。
【0046】
様々な実装では、リモート音声処理、リモートNLU、および/またはリモート実施が、少なくとも選択的に利用され得る。たとえば、認識されたテキストは、リモートNLUおよび/またはリモート履行のためにリモート自動アシスタント構成要素に少なくとも選択的に送信され得る。たとえば、任意選択で、認識されたテキストは、オンデバイス実施と並列に、またはオンデバイスNLUおよび/もしくはオンデバイス履行の失敗に応答して、リモート実施のために送信され得る。しかしながら、オンデバイス音声処理、オンデバイスNLU、オンデバイス履行、および/またはオンデバイス実行は、少なくとも、音声発話を解決するときに実現する待ち時間短縮のために(音声発話を解決するためにクライアントサーバラウンドトリップが必要とされないために)優先され得る。さらに、オンデバイス機能は、ネットワーク接続性がなく、または限られている状況で利用可能な唯一の機能であり得る。
【0047】
いくつかの実装では、コンピューティングデバイス302は、コンピューティングデバイス302および/または自動アシスタント304を提供したエンティティとは異なるサードパーティエンティティによって提供され得る1つまたは複数のアプリケーション334を含み得る。自動アシスタント304および/またはコンピューティングデバイス302のアプリケーション状態エンジン316が、アプリケーションデータ330にアクセスして、1つまたは複数のアプリケーション334によって実施することのできる1つまたは複数のアクション、ならびに1つまたは複数のアプリケーション334の各アプリケーションの状態を判定し得る。さらに、アプリケーションデータ330および/または任意の他のデータ(たとえば、デバイスデータ332)が自動アシスタント304によってアクセスされ、コンテキストデータ336が生成され得、コンテキストデータ336は、特定のアプリケーション334がコンピューティングデバイス302において実行中であり、および/または特定のユーザがコンピューティングデバイス302にアクセスしている、かつ/もしくはアプリケーション334にアクセスしているコンテキストを特徴付け得る。
【0048】
1つまたは複数のアプリケーション334がコンピューティングデバイス302において実行中である間、デバイスデータ332は、コンピューティングデバイス302において実行中の各アプリケーション334の現動作ステータスを特徴付け得る。さらに、アプリケーションデータ330は、1つまたは複数のアプリケーションの指示でレンダリングされている1つまたは複数のグラフィカルユーザインターフェースの内容などの、実行中のアプリケーション334の1つまたは複数の特徴を特徴付け得る。代替または追加として、アプリケーションデータ330はアクションスキーマを特徴付け得、アクションスキーマは、それぞれのアプリケーションによって、および/または自動アシスタント304によって、それぞれのアプリケーションの現動作ステータスに基づいて更新され得る。代替または追加として、1つまたは複数のアプリケーション334についての1つまたは複数のアクションスキーマは静的なままであり得るが、自動アシスタント304を介して初期化するための適切なアクションを決定するために、アプリケーション状態エンジン316によってアクセスされ得る。
【0049】
いくつかの実装では、自動アシスタント304は、ユーザが選択した特定の入力フィールドが特定のプロパティおよび/またはメタデータに関連付けられるかどうかを判定するためのフィールドエンジン324を含み得る。たとえば、特定の入力フィールドは、数字、文字、日付、年、通貨、記号、イメージ、および/またはインターフェースの入力フィールドに提供され得る任意のデータに制限され得る。ユーザが入力フィールドを選択し、音声発話を与えたとき、入力処理エンジン306は、音声発話を特徴付ける自然言語テキストを生成するために、音声発話に対応するオーディオデータを処理し得る。自動アシスタント304の分類エンジン322が、テキストの部分を処理し、テキストが自動アシスタント304を対象とするコマンド、またはコンピューティングデバイス302を介して取り込まれた可能性のある他の音声に対応するかどうかを判定し得る。
【0050】
自動アシスタント304に対するコマンドであることが意図されると識別されたテキストは、フィールドエンジン324によって処理され、テキストのいずれかの部分が、ユーザによって選択された入力フィールド内に取り込むのに適しているかどうかが判定され得る。テキストの部分が入力フィールドに適していると判定されたとき、テキストの部分が、自動アシスタント304によって入力フィールド内に取り込まれ得る。追加または代替として、テキストが候補エンジン318によって処理され、入力フィールド内に取り込まれる内容であることが意図される何らかの代替解釈および/または参照内容があるかどうかが判定され得る。たとえば、候補エンジン318は、テキストの他の適切な解釈および/または他の適切な内容(たとえば、イメージ、ビデオ、オーディオなど)を生成するために、音声発話のテキストの1つまたは複数の部分をコンテキストデータ336と共に処理し得る。候補解釈が識別されたとき、候補解釈がフィールドエンジン324によって処理され、候補解釈が入力フィールド内への入力に適しているかどうかが判定され得る。候補解釈が入力フィールドに適しており、入力フィールド内への入力のための任意の他の候補よりも関連性があると判定されたとき、自動アシスタント304は、候補解釈を入力フィールド内に取り込ませ得る。
【0051】
候補解釈が入力フィールド内への入力に適していないと判定されたとき、候補解釈に対応するテキストが、入力処理エンジン306によってさらに処理され得る。入力処理エンジン306は、候補解釈が自動アシスタント304によって応答され得る照会に対応するかどうかを判定し得る。候補解釈に対応するテキストが、自動アシスタント304が応答し得る照会であると自動アシスタント304が判定した場合、自動アシスタント304は、照会に応答することに進む。このようにして、ユーザは、音声発話を与える直前に入力フィールドを選択したにも関わらず、ユーザの音声発話を必ずしも反復する必要はない。さらに、これにより、オーディオデータがどれほどバッファリングされるかを制限することによって自動アシスタント304が計算資源を保持することが可能となる。たとえば、この例では、ユーザは、自動アシスタント304を毎回初期化するために起動語句を反復的に与える必要なしに、自動アシスタント304と流動的に会話することができ、それによって、コンピューティングデバイス302のメモリを占有しているオーディオデータ量が低減される。
【0052】
図4は、アプリケーションインターフェースを介してユーザが選択した入力フィールド内に逐語的解釈および/または参照される内容を取り込むかをどうかを決定し得る自動アシスタントを提供するための方法400を示す。方法400は、自動アシスタントに関連付けられ得る1つまたは複数のコンピューティングデバイス、アプリケーション、および/または任意の他の装置もしくはモジュールによって実施され得る。方法400は、入力フィールドがユーザによって選択されたかどうかを決定する動作402を含み得る。入力フィールドがユーザによって選択されたと判定されたとき、方法400は、自動アシスタントおよび/またはキーボードインターフェースを初期化する動作404に進み得る。ユーザが選択した入力フィールドを含むアプリケーションにユーザがアクセスしているとき、自動アシスタントおよび/またはキーボードインターフェースが初期化され得る。
【0053】
方法400は、動作404から、ユーザが自動アシスタントに音声発話を与えたかどうかを判定するための動作406に進み得る。ユーザが自動アシスタントに音声発話を与えたと判定されたとき、方法400は動作410に進み得る。ユーザが音声発話を与えていないと判定されたとき、方法400は、動作406から動作408に進み得、動作408は、ユーザが入力フィールドにテキスト入力を与えたかどうかを判定することを含み得る。ユーザが入力フィールドにテキスト入力を与えていないと判定されたとき、方法400は動作402に戻り得る。しかしながら、ユーザが入力フィールドにテキスト入力を与えたと判定されたとき、方法400は、動作508から、選択された入力フィールド内にテキストを取り込むための動作416に進み得る。
【0054】
ユーザが自動アシスタントに音声発話を与えたと判定されたとき、方法400は動作410に進み得、動作410は、音声発話の1つまたは複数の部分を特徴付ける候補テキスト文字列を生成することを含み得る。いくつかの実装では、候補テキスト文字列を生成することは、音声発話の逐語的特徴付けであるテキスト文字列を生成することを含み得る。方法400は、動作410から、音声発話に基づいて他の内容を生成するための動作412に進み得る。音声発話、候補テキスト文字列、ならびに/またはユーザが音声発話を与えた状況を特徴付けるコンテキストデータおよび/もしくはユーザとアプリケーションとの間の対話に関連する履歴データに基づいて、他の内容が生成され得る。
【0055】
方法400は、動作412から動作414に進み得、動作414は、候補テキスト文字列および/または他の内容を処理して、入力フィールド内にどれを取り込むかを決定することを含む。言い換えれば、動作414は、選択された入力フィールド内に、候補テキスト文字列の1つまたは複数の部分、および/または他の内容の1つまたは複数の部分を取り込むかどうかを決定することを含む。入力フィールド内に候補テキスト文字列または他の内容を取り込むかどうかに関する決定が行われたとき、方法400は、動作414から動作416に進み得る。動作416は、選択された入力フィールド内に、音声発話に基づく内容を取り込むことを含み得る。言い換えれば、候補テキスト文字列または他の内容が動作414において優先されたかどうかに応じて、方法400は、動作416において、選択された入力フィールド内に候補テキスト文字列および/または他の内容を取り込み得る。
【0056】
図5Aおよび
図5Bは、アプリケーションインターフェースを介してユーザが選択した入力フィールド内に逐語的解釈および/または参照される内容を取り込むかどうかを決定し得る自動アシスタントを提供するための方法500および方法520を示す。方法500および方法520は、自動アシスタントに関連付けられ得る1つまたは複数のコンピューティングデバイス、アプリケーション、および/または任意の他の装置もしくはモジュールによって実施され得る。方法500は、入力フィールドがユーザによって選択されたかどうかを判定する動作502を含み得る。入力フィールドは、ユーザが入力フィールドについての特定の内容を指定するためのエリアを含むアプリケーションインターフェースの1つまたは複数の部分である。一例として、入力フィールドは、ユーザがユーザの電話番号を指定し得るウェブページ上のスペースであり得る。たとえば、ウェブページは、ウェブページを制御するエンティティがウェブページによって提供されるサービス(たとえば、旅行予約サービス)に関してユーザに電話をかけ得るように、「電話番号:__-______」などの入力フィールドを含み得る。
【0057】
入力フィールドが選択されたと判定されたとき、方法500は、動作502から動作504に進み得、動作504は、キーボードインターフェースおよび/または自動アシスタントを初期化することを含み得る。そうでない場合、アプリケーションおよび/または対応するコンピューティングデバイスは、アプリケーションに対する入力を引き続き監視し得る。いくつかの実装では、ユーザがアプリケーションインターフェースの入力フィールドを選択したことに応答して、キーボードインターフェースおよび/または自動アシスタントが初期化され得る。たとえば、入力フィールドは、コンピューティングデバイスのタッチディスプレイパネルにおいてレンダリングされ得、ユーザは、入力フィールドの選択を示すタッチジェスチャを実施することによって入力フィールドを選択し得る。追加または代替として、ユーザは、音声発話を与えること、および/または別々のコンピューティングデバイスに入力を与えることによって入力フィールドを選択し得る。
【0058】
方法500は、動作504から動作506に進み得、動作506は、ユーザが自動アシスタントに音声発話を与えたかどうかを判定することを含み得る。ユーザが入力フィールドの選択を与えたことに続いて、任意選択で、ユーザは、自動アシスタントが入力フィールド内に内容を取り込むことを援助することが意図され、かつ/または別に意図される音声発話を与えることを選び得る。たとえば、ユーザがウェブページの電話番号入力フィールドを選択した後、ユーザは、「トリプルファイブ、トリプルシックス、エイト...それと、明日の天気はどう、アシスタント?(Triple five, triple six, eight...also, what is the weather tomorrow, Assistant?)」などの音声発話を与え得る。しかしながら、代替として、ユーザは音声発話を与えないことを選び得る。
【0059】
ユーザが音声発話を与えないことを選んだとき、方法500は、動作506から動作508に進み得、動作508は、ユーザが入力フィールドにテキスト入力を与えたかどうかを判定することを含み得る。ユーザが入力フィールドにテキスト入力を与えていないと判定されたとき、方法500は動作502に戻り得る。しかしながら、ユーザが入力フィールドにテキスト入力を与えたと判定されたとき、方法500は、動作508から動作514に進み得る。動作514は、選択された入力フィールド内にテキストおよび/または内容を取り込むことを含み得る。このようにして、ユーザがテキスト入力を与えた(たとえば、ユーザがキーボード上で「555-6668」とタイプ入力した)場合、テキスト入力が入力フィールド内に取り込まれ得る。代替として、動作506において、ユーザが入力フィールドを選択した後に音声発話を与えたと判定されたとき、方法500は、動作506から動作510に進み得る。
【0060】
動作510は、音声発話の1つまたは複数の部分を特徴付ける候補テキスト文字列を生成することを含み得る。たとえば、ユーザによって与えられる音声発話は、「トリプルファイブ、トリプルシックス、エイト...それと、明日の天気はどう、アシスタント?」であり得、音声発話の特定の部分が、「トリプルファイブ、トリプルシックス、エイト」などの候補テキスト文字列を提供するように処理され得る。次いで方法500は、動作510から動作512に進み得、動作512は、候補テキスト文字列が選択された入力フィールドに適しているかどうかを判定することを含み得る。候補テキスト文字列が選択された入力フィールドに適していると判定されたとき、方法500は、選択された入力フィールド内に候補テキストを取り込ませるために動作514に進み得る。しかしながら、候補テキスト文字列が選択された入力フィールドに適していないと判定されたとき、方法500は、動作512から、継続要素「A」を介して、
図5Bに与えられる方法520の動作518に進み得る。
【0061】
方法520は、継続要素「A」から動作518に進み得、動作518は、音声発話に基づいて他の内容を生成することを含み得る。他の内容は、ユーザが入力フィールドを選択した状況に関連し得るコンテキストデータおよび/または任意の他の構成に基づいて生成され得る。たとえば、アプリケーションは、選択された入力フィールドのプロパティを特徴付けるデータを含み得、候補テキスト文字列は、候補テキスト文字列に基づく一定の他の内容に偏向するために、データに基づいて処理され得る。たとえば、他の内容は、「トリプル5、トリプル6、8(triple 5, triple 6, 8)」、「5556668」などの他のテキスト解釈を含み得る。さらに、データは、選択された入力フィールドが数字で排他的に占められるという要件、および最小で7つの数字があるという要件を特徴付け得る。したがって、要件データおよび他の内容の処理の結果、「トリプル5、トリプル6、8」よりもテキスト解釈「5556668」への偏向が生じ得る。
【0062】
方法520は、動作518から動作522に進み得、動作522は、生成された他の内容が選択された入力フィールドに適しているかどうかを判定することを含み得る。たとえば、候補内容「5556668」は、数字を排他的に含むので、選択された入力フィールドに適していると判定され得るのに対して、他の候補内容「トリプル5、トリプル6、8」は、文字を含むので適していないと判定され得る。選択された入力フィールドに適していると判定された他の内容がないとき、方法500は、動作522から任意選択の動作526に進み得、動作526は、選択された入力フィールドに関する別の命令を求めてユーザに促すことを含み得る。たとえば、自動アシスタントは、選択された入力フィールドに関連するコンテキストデータおよび/または任意の他のデータに基づくプロンプトを提供し得る。自動アシスタントは、たとえば、他の内容が文字を含むので他の内容は適していなかったという判定に基づいて生成され得る、「このフィールドは数字用です」などのオーディオ出力をレンダリングし得る。その後で、方法520は、動作526および/または動作522から、継続要素「C」を介して、
図5Aの方法500の動作506に進み得る。
【0063】
他の内容が選択された入力フィールドに適していると判定されたとき、方法520は、動作522から任意選択の動作524に進み得る。動作524は、他の内容が選択された入力フィールドに適していると判定したことに基づいて、モデルを更新することを含み得る。このようにして、自動アシスタントは、一定の音声発話が、選択された入力フィールド内に内容を組み込むことを促進することをユーザが意図しているかどうか、および/またはユーザが自動アシスタントに1つまたは複数の他のアクションを取るように指示しているかどうかを適応的に学習し得る。方法520は、動作524および/または動作522から、継続要素「B」を介して動作414に進み得、動作414では、自動アシスタントは、選択された入力フィールド内に他の内容(たとえば、任意の他の生成された内容よりも偏向される他の内容)を取り込ませ得る(たとえば、「電話番号:555-6668」)。
【0064】
方法500は、動作414から、音声発話の他の部分がアシスタント動作に対応するかどうかを判定するための動作516に進み得る。言い換えれば、自動アシスタントは、自動アシスタントによって実施されるべき1つまたは複数の動作を促進するために(たとえば、他の内容についての基礎であった部分に加えて)候補テキスト文字列の任意の他の特定の部分が与えられたかどうかを判定し得る。候補テキスト文字列および/または音声発話の他の部分がアシスタント動作を促進するためのものではないと判定されたとき、方法500は動作502に進み得る。
【0065】
しかしながら、候補テキスト文字列の別の部分が自動アシスタント動作を促進するために与えられたと判定されたとき(たとえば、「それと、明日の天気はどう、アシスタント?」)、方法500は、方法500および方法520を介して動作526に進み得、動作526では、候補テキスト文字列の他の部分に基づいて、対応する自動アシスタント動作が実行される。言い換えれば、動作522において、候補テキスト文字列の他の部分によって、選択された入力フィールドに適した任意の他の内容が得られず、動作526において、他の候補テキスト文字列が自動アシスタント動作を参照するので、自動アシスタント動作が実行され得る。このようにして、ユーザは、一定のフィールドに記入し、自動アシスタントに他のアクションを取るように指示するために、音声のより効率的な方法を利用して、インターフェースに入力を同時に与え得る。
【0066】
図6は、例示的コンピュータシステム610のブロック図である。コンピュータシステム610は通常、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえばメモリ625およびファイル記憶サブシステム626を含む記憶サブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含み得る。入力および出力デバイスは、コンピュータシステム610とのユーザ対話を可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークに対するインターフェースを提供し、他のコンピュータシステム内の対応するインターフェースデバイスに結合される。
【0067】
ユーザインターフェース入力デバイス622は、キーボードと、マウス、トラックボール、タッチパッド、グラフィックスタブレットなどのポインティングデバイスと、スキャナと、ディスプレイ内に組み込まれたタッチスクリーンと、音声認識システム、マイクロフォン、および/または他のタイプの入力デバイスなどのオーディオ入力デバイスとを含み得る。一般には、「入力デバイス」という用語の使用は、コンピュータシステム610内に、または通信ネットワーク上に情報を入力するためのすべての可能なタイプのデバイスおよび方式を含むものとする。
【0068】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または視覚イメージを生み出すための何らかの他の機構を含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介してなど、非視覚ディスプレイをも提供し得る。一般には、「出力デバイス」という用語の使用は、コンピュータシステム610からユーザに、または別のマシンもしくはコンピュータシステムに情報を出力するためのすべての可能なタイプのデバイスおよび方式を含むものとする。
【0069】
記憶サブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構成を記憶し得る。たとえば、記憶サブシステム624は、方法400、方法500、および/または方法520の選択された態様を実施し、かつ/あるいはシステム300、コンピューティングデバイス104、コンピューティングデバイス204、ならびに/または本明細書において論じられる任意の他のアプリケーション、デバイス、装置、および/またはモジュールのうちの1つもしくは複数を実装するための論理を含み得る。
【0070】
これらのソフトウェアモジュールは一般に、プロセッサ614だけで、または他のプロセッサと組み合わせて実行される。記憶サブシステム624内に使用されるメモリ625は、プログラム実行中の命令およびデータの記憶用のメインランダムアクセスメモリ(RAM)630と、固定命令が記憶される読取り専用メモリ(ROM)632とを含むいくつかのメモリを含み得る。ファイル記憶サブシステム626は、プログラムおよびデータファイル用の永続的記憶を提供し得、ハードディスクドライブ、フロッピィディスクドライブおよび関連する取外し可能媒体、CD-ROMドライブ、光学ドライブ、または取外し可能媒体カートリッジを含み得る。いくつかの実装の機能を実装するモジュールが、ファイル記憶サブシステム626によって記憶サブシステム624内に、またはプロセッサ614によってアクセス可能な他のマシン内に記憶され得る。
【0071】
バスサブシステム612は、コンピュータシステム610の様々な構成要素およびサブシステムが互いに所期の通りに通信することを許可する機構を提供する。バスサブシステム612が概略的に単一のバスとして示されているが、バスサブシステムの代替実装は複数のバスを使用し得る。
【0072】
コンピュータシステム610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプであり得る。コンピュータおよびネットワークの常に変化する性質のために、
図6に示されるコンピュータシステム610の説明は、いくつかの実装を示すための特定の例として意図されるに過ぎない。
図6に示されるコンピュータシステムよりも多い、または少ない構成要素を有する、コンピュータシステム610の多くの他の構成が可能である。
【0073】
本明細書において説明されるシステムがユーザ(または、本明細書においてしばしば参照されるように、「参加者」)についての個人情報を収集し、または個人情報を利用し得る状況において、ユーザは、プログラムまたは機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくは活動、職業、ユーザのプリファレンス、またはユーザの現地理的位置についての情報)を収集するかどうかを制御する機会、またはユーザにより関連し得るコンテンツをコンテンツサーバから受け取るかどうか、かつ/もしくはどのように受け取るかを制御する機会がユーザに提供され得る。さらに、一定のデータが、記憶または使用される前に、個人識別可能情報が除去されるように1つまたは複数の方式で処理され得る。たとえば、ユーザについて個人識別可能情報が決定されないように、または地理的位置情報が取得される場合に(都市、郵便番号、州レベルなど)、ユーザの地理的位置が一般化され得、その結果、ユーザの特定の地理的位置を決定することができないように、ユーザの識別が処理され得る。したがって、ユーザは、ユーザについて情報がどのように収集され、かつ/または使用されるかに関して制御し得る。
【0074】
本明細書においていくつかの実装が説明され、図示されたが、機能を実施し、かつ/または結果および/もしくは本明細書において説明される利点のうちの1つもしくは複数を取得するための様々な他の手段および/または構造が利用され得、そのような変形および/または修正のそれぞれは、本明細書において説明される実装の範囲内にあると見なされる。より一般には、本明細書において説明されるすべてのパラメータ、寸法、材料、および構成は例示的なものであり、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の適用例に依存する。型通りの実験を用いるだけで、本明細書において説明される特定の実装に対する多くの均等物を当業者は理解し、確認することができる。したがって、前述の実装は単に例として提示され、添付の特許請求の範囲およびその均等物の範囲内で、具体的には説明され、特許請求される以外の方法で実装が実施され得ることを理解されたい。本開示の実装は、本明細書において説明されるそれぞれの個々の特徴、システム、物品、材料、キット、および/または方法を対象とする。さらに、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せが、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾しない場合に、本開示の範囲内に含まれる。
【0075】
いくつかの実装では、1つまたは複数のプロセッサによって実装される方法が、入力フィールドの選択がコンピューティングデバイスにおいてレンダリングされているアプリケーションのグラフィカルユーザインターフェースに提供されたことを判定することなどの動作を含むものとして説明される。コンピューティングデバイスは、アプリケーションとは別々の、コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを利用する自動アシスタントへのアクセスを提供し得る。方法は、入力フィールドが選択されたことを判定したことに続いて、ユーザから音声発話を受け取る動作をさらに含み得る。方法は、音声発話に基づいて、ユーザによって与えられた音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成する動作をさらに含み得、候補テキスト文字列が、コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを使用して生成される。方法は、自動アシスタントによって、候補テキスト文字列に基づいて、入力フィールド内に候補テキスト文字列を取り込むか、または入力フィールド内に追加の内容を取り込むかを決定する動作をさらに含み得る。方法は、入力フィールド内に追加の内容を取り込むように決定が行われたとき、グラフィカルユーザインターフェースの入力フィールドに対する入力として追加の内容を提供させる動作をさらに含み得、追加の内容が、候補テキスト文字列に基づく1つまたは複数の自動アシスタントアクションの実施を介して生成される。方法は、入力フィールド内に取り込むための追加の内容を生成するように異なる決定が行われたとき、グラフィカルユーザインターフェースの入力フィールドに対する入力として候補テキスト文字列を提供させる動作をさらに含み得る。
【0076】
いくつかの実装では、入力フィールド内に候補テキスト文字列を取り込むか、または入力フィールド内に追加の内容を取り込むかを決定することは、入力フィールドが特定のタイプの入力内容に制限されるかどうかを判定すること、および候補テキスト文字列が入力フィールドに関連付けられる特定のタイプの入力内容に対応するかどうかを判定することを含む。いくつかの実装では、特定のタイプの入力内容は、ユーザまたは別の人についての連絡先情報を含み、1つまたは複数の自動アシスタントアクションの実施を介して追加の内容を生成させることは、コンピューティングデバイスを介してアクセス可能な連絡先データが追加の内容を含み、候補テキスト文字列の少なくとも一部に関連して記憶されることを決定することを含む。
【0077】
いくつかの実装では、追加の内容には、ユーザの主言語から導出されるテキスト文字が欠けている。いくつかの実装では、追加の内容は少なくとも1つのイメージを含む。いくつかの実装では、入力フィールドの選択がグラフィカルユーザインターフェースに提供されたことを判定することは、キーボードインターフェースがアプリケーションのグラフィカルユーザインターフェースの上にレンダリングされていることを判定することを含む。いくつかの実装では、グラフィカルユーザインターフェースの入力フィールドに対する入力として候補テキスト文字列を提供させることは、自動アシスタントからキーボードアプリケーションに対する入力として候補テキスト文字列を提供させることを含み、キーボードアプリケーションは、グラフィカルユーザインターフェースの上にレンダリングされるキーボードインターフェースを提供する。いくつかの実装では、キーボードアプリケーションは自動アシスタントとは別々のアプリケーションである。いくつかの実装では、追加の内容が、1つまたは複数の音声-テキストモデルをさらに使用せずに生成され、候補テキスト文字列とは異なる。
【0078】
他の実装では、1つまたは複数のプロセッサによって実装される方法が、アプリケーションのグラフィカルユーザインターフェースの入力フィールドがコンピューティングデバイスにおいてレンダリングされているとき、ユーザから音声発話を受け取ることなどの動作を含むものとして説明され、コンピューティングデバイスは、アプリケーションとは別々の自動アシスタントへのアクセスを提供し、コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを利用する。いくつかの実装では、方法は、音声発話に基づいて、ユーザによって与えられた音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成する動作をさらに含み得、候補テキスト文字列が、コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを使用して生成される。いくつかの実装では、方法は、自動アシスタントによって、候補テキスト文字列に基づいて、候補テキスト文字列の何らかの特定の部分を、入力フィールド内に候補テキスト文字列の特定の部分を取り込む動作とは異なり、入力フィールド内に追加の内容を取り込む別の動作とは異なる特定のアシスタント動作を起動するものと見なすかどうかを決定する動作をさらに含み得る。
【0079】
いくつかの実装では、方法は、候補テキスト文字列の特定の部分を、アシスタント動作を起動するものと見なすように決定が行われたとき、自動アシスタントに、少なくとも候補テキスト文字列の特定の部分に基づいて特定のアシスタント動作を実施させる動作をさらに含み得る。いくつかの実装では、方法は、候補テキスト文字列の特定の部分を、アシスタント動作を起動しないものと見なすように異なる決定が行われたとき、自動アシスタントによって、候補テキスト文字列の特定の部分に基づいて、候補テキスト文字列の特定の部分を入力フィールド内に取り込むか、または追加の内容を入力フィールド内に取り込むかを決定する動作と、候補テキスト文字列の特定の部分をールド内に取り込むか、または追加の内容を入力フィールド内に取り込むかを決定したことに基づいて、候補テキスト文字列の特定の部分または追加の内容を、グラフィカルユーザインターフェースの入力フィールドに対する入力として提供させる動作とをさらに含み得る。
【0080】
いくつかの実装では、候補テキスト文字列の特定の部分を入力フィールド内に取り込むか、または追加の内容を入力フィールド内に取り込むかを決定することは、入力フィールドが特定のタイプの入力内容に制限されるかどうかを判定すること、および候補テキスト文字列の特定の部分が、入力フィールドに関連付けられる特定のタイプの入力内容に対応するかどうかを判定することを含む。いくつかの実装では、追加の内容が、1つまたは複数の音声-テキストモデルをさらに使用せずに生成され、候補テキスト文字列とは異なる。いくつかの実装では、追加の内容には、ユーザの主言語から導出されるテキスト文字が欠けている。いくつかの実装では、追加の内容は少なくとも1つのイメージを含む。いくつかの実装では、自動アシスタントにアシスタント動作を実施させることは、候補テキスト文字列の特定の部分に基づいてウェブ検索を実行することを含む。
【0081】
さらに別の実装では、1つまたは複数のプロセッサによって実装される方法が、アプリケーションがコンピューティングデバイスを介してアクセスされているとき、ユーザから音声発話を受け取ることなどの動作を含むものとして説明され、コンピューティングデバイスは、アプリケーションとは別々の自動アシスタントへのアクセスを提供し、1つまたは複数の音声-テキストモデルを利用する。方法は、音声発話に基づいて、ユーザによって与えられた音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成する動作をさらに含み得、候補テキスト文字列が、コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを使用して生成される。方法は、自動アシスタントによって、候補テキスト文字列に基づいて、候補テキスト文字列をアプリケーションに対する入力として提供するか、または追加の内容をアプリケーションに対する入力として提供するかを決定する動作をさらに含み得る。方法は、入力フィールド内に追加の内容を取り込むように決定が行われたとき、候補テキスト文字列およびコンテキストデータに基づいて追加の内容を生成する動作であって、コンテキストデータが、ユーザが音声発話を与えたコンテキストを特徴付ける、動作と、追加の内容をアプリケーションに対する入力として提供させる動作とをさらに含み得る。
【0082】
いくつかの実装では、方法は、候補テキスト文字列をアプリケーションに対する入力として提供するように異なる決定が行われたとき、候補テキスト文字列をアプリケーションに対する入力として提供させる動作をさらに含み得る。いくつかの実装では、方法は、入力フィールド内に追加の内容を取り込むように決定が行われたとき、コンピューティングデバイスのグラフィカルユーザインターフェースにおいて候補テキスト文字列をレンダリングすることを迂回する動作をさらに含み得る。いくつかの実装では、コンテキストデータは、アプリケーションのグラフィカルユーザインターフェースの内容を特徴付ける。いくつかの実装では、コンテキストデータは、ユーザと自動アシスタントとの間の1つまたは複数の以前の対話を特徴付ける。いくつかの実装では、コンテキストデータは、入力フィールド内に取り込まれるべき内容のフォーマッティングに関する制限を特徴付ける。
【0083】
さらに別の実装では、1つまたは複数のプロセッサによって実装される方法が、キーボード要素の選択がコンピューティングデバイスにおいてレンダリングされているキーボードアプリケーションのグラフィカルユーザインターフェースに与えられたことを判定することなどの動作を含むものとして説明され、コンピューティングデバイスは、キーボードアプリケーションとは別々の自動アシスタントへのアクセスを提供し、1つまたは複数の音声-テキストモデルを利用する。方法は、キーボード要素が選択されたことを判定したことに続いて、ユーザから音声発話を受け取る動作をさらに含み得、ユーザが音声発話を与えるとき、ユーザは、入力フィールドを含む特定のアプリケーションにアクセスしている。方法は、音声発話に基づいて、ユーザによって与えられた音声発話の少なくとも一部を特徴付ける候補テキスト文字列を生成する動作をさらに含み得、候補テキスト文字列が、コンピューティングデバイスに記憶された1つまたは複数の音声-テキストモデルを使用して生成される。方法は、自動アシスタントによって、候補テキスト文字列に基づいて、入力フィールド内に候補テキスト文字列を取り込むか、または入力フィールド内に追加の内容を取り込むかを決定する動作をさらに含み得る。方法は、入力フィールド内に追加の内容を取り込むように決定が行われたとき、グラフィカルユーザインターフェースの入力フィールドに対する入力として追加の内容を提供させる動作をさらに含み得、追加の内容が、候補テキスト文字列に基づく1つまたは複数の自動アシスタントアクションの実施を介して生成される。
【0084】
いくつかの実装では、方法は、入力フィールド内に取り込むための追加の内容を生成するように異なる決定が行われたとき、グラフィカルユーザインターフェースの入力フィールドに対する入力として候補テキスト文字列を提供させる動作をさらに含み得る。いくつかの実装では、追加の内容には、ユーザの主言語から導出されるテキスト文字が欠けている。いくつかの実装では、追加の内容は少なくとも1つのイメージを含む。いくつかの実装では、追加の内容が、1つまたは複数の音声-テキストモデルをさらに使用せずに生成され、候補テキスト文字列とは異なる。
【符号の説明】
【0085】
100 ビュー
104 コンピューティングデバイス
106 ディスプレイパネル
108 サーモスタットアプリケーション
110 スケジュール
112 キーボードインターフェース
120 アシスタントデータ
122 候補内容
124 アプリケーションデータ
126 データエンジン
130 自動アシスタント
140 ビュー
144 候補内容
146 メッセージングアプリケーション
148 新しいメッセージ
150 入力フィールド
160 ビュー
164 候補内容
200 ビュー
204 コンピューティングデバイス
206 ディスプレイパネル
208 メッセージングアプリケーション
210 新しいメッセージ
212 キーボードインターフェース
220 アシスタントデータ
222 候補内容
224 アプリケーションデータ
230 自動アシスタント
232 キーボード要素
240 ビュー
244 応答データ
246 入力フィールド
300 システム
302 コンピューティングデバイス
304 自動アシスタント
306 入力処理エンジン
308 音声処理エンジン
310 データ解析エンジン
312 パラメータエンジン
314 出力生成エンジン
316 アプリケーション状態エンジン
318 候補エンジン
320 アシスタントインターフェース
322 分類エンジン
324 フィールドエンジン
330 アプリケーションデータ
332 デバイスデータ
334 アプリケーション
336 コンテキストデータ
338 アシスタントデータ
610 コンピュータシステム
612 バスサブシステム
614 プロセッサ
616 ネットワークインターフェースサブシステム
620 ユーザインターフェース出力デバイス
622 ユーザインターフェース入力デバイス
624 記憶サブシステム
625 メモリ
626 ファイル記憶サブシステム
630 メインランダムアクセスメモリ(RAM)
632 読取り専用メモリ(ROM)
【国際調査報告】