IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7571199アシスタントアプリケーションのための音声ユーザインタフェースショートカット
<>
  • 特許-アシスタントアプリケーションのための音声ユーザインタフェースショートカット 図1
  • 特許-アシスタントアプリケーションのための音声ユーザインタフェースショートカット 図2
  • 特許-アシスタントアプリケーションのための音声ユーザインタフェースショートカット 図3
  • 特許-アシスタントアプリケーションのための音声ユーザインタフェースショートカット 図4
  • 特許-アシスタントアプリケーションのための音声ユーザインタフェースショートカット 図5
  • 特許-アシスタントアプリケーションのための音声ユーザインタフェースショートカット 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-11
(45)【発行日】2024-10-22
(54)【発明の名称】アシスタントアプリケーションのための音声ユーザインタフェースショートカット
(51)【国際特許分類】
   G06F 3/16 20060101AFI20241015BHJP
   G06F 3/01 20060101ALI20241015BHJP
   G10L 13/00 20060101ALI20241015BHJP
   G10L 15/22 20060101ALI20241015BHJP
【FI】
G06F3/16 630
G06F3/01 510
G06F3/16 650
G06F3/16 690
G10L13/00 100M
G10L15/22 300Z
G10L15/22 453
【請求項の数】 9
【外国語出願】
(21)【出願番号】P 2023097191
(22)【出願日】2023-06-13
(62)【分割の表示】P 2021161285の分割
【原出願日】2018-10-02
(65)【公開番号】P2023115067
(43)【公開日】2023-08-18
【審査請求日】2023-06-19
(31)【優先権主張番号】62/567,726
(32)【優先日】2017-10-03
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/785,100
(32)【優先日】2017-10-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ユジャオ・ニ
(72)【発明者】
【氏名】ルーカス・パーマー
【審査官】渡辺 慶人
(56)【参考文献】
【文献】米国特許出願公開第2016/0240189(US,A1)
【文献】韓国公開特許第10-2016-0117403(KR,A)
【文献】特開2007-323296(JP,A)
【文献】特開2001-027540(JP,A)
【文献】特開2015-141226(JP,A)
【文献】特開2008-096541(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
3/16
3/048- 3/04895
G10L 13/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実施される方法であって、
自動アシスタントアプリケーションのためのアシスタントインタフェースにおいてコマンドフレーズを受信するステップであって、前記コマンドフレーズは、前記アシスタントインタフェースを含むコンピューティング装置のユーザにより提供される音声コマンドに対応する、ステップと、
前記自動アシスタントアプリケーションに、前記コマンドフレーズから、ショートカットコマンドフレーズおよび補足的なコマンドフレーズを識別させるステップであって、
前記補足的なコマンドフレーズは、前記アシスタントインタフェースにおいて以前に受信されなかったコマンド呼び出しフレーズである、ステップと、
前記ショートカットコマンドフレーズと前記補足的なコマンドフレーズとの間の対応を提供する記憶エントリを生成させるステップと、
前記記憶エントリを生成した後に、前記アシスタントインタフェースにおいて前記ショートカットコマンドフレーズを受信するステップと、
前記ショートカットコマンドフレーズの受信に応答して、前記補足的なコマンドフレーズに関連付けられた1つまたは複数のアクションを前記自動アシスタントアプリケーションに実行させるステップと
を含む、方法。
【請求項2】
前記アシスタントインタフェースは、前記コンピューティング装置における音声インタフェースであり、前記1つまたは複数のアクションは、前記コンピューティング装置から可聴出力を提供させることを含む、
請求項1に記載の方法。
【請求項3】
前記補足的なコマンドフレーズに関連付けられた1つまたは複数のアクションを前記自動アシスタントアプリケーションに実行させるステップは、
アシスタント・ティーチング・エージェント・アプリケーションに前記記憶エントリを識別させ、コマンドデータを前記自動アシスタントアプリケーションに提供させることをさらに含み、前記コマンドデータは、前記補足的なコマンドフレーズを識別する、
請求項1に記載の方法。
【請求項4】
前記1つまたは複数のアクションは、ウェブサイトを提供するリモートサーバにウェブ問い合わせを提供することを含む、
請求項1に記載の方法。
【請求項5】
前記ウェブ問い合わせを提供するアクションは、前記補足的なコマンドフレーズに対応する、
請求項4に記載方法。
【請求項6】
前記補足的なコマンドフレーズは、前記ウェブ問い合わせ内に含まれるべきスロット値を識別する、
請求項5に記載の方法。
【請求項7】
前記記憶エントリを生成させることは、前記補足的なコマンドフレーズを前記自動アシスタントアプリケーションに提供させるトリガとして前記ショートカットコマンドフレーズを指定するアシスタントティーチングエージェントを呼び出すことを含む、
請求項1に記載の方法。
【請求項8】
コンピューティングシステムの1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに請求項1~7のいずれか一項に記載の方法を実行させる命令を備えたコンピュータプログラム。
【請求項9】
請求項1~7のいずれか一項に記載の方法を実行するように構成された1つまたは複数のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アシスタントアプリケーションのための音声ユーザインタフェースショートカットに関する。
【背景技術】
【0002】
人間は、本明細書において、「自動アシスタント」と称される(「デジタルエージェント」、「チャットボット」、「対話型個人的アシスタント」、「インテリジェントな個人的アシスタント」、「会話型エージェント」などとも称される)対話型ソフトウェアアプリケーションを用いて、人間とコンピュータ間のダイアログに従事することができる。例えば、人間(自動アシスタントと対話するときは「ユーザ」と称され得る)は、場合によってはテキストに変換されてもよく、その後処理されてもよい話された自然言語入力(すなわち発言)を用いてコマンドを提供することによっておよび/またはテキストの(例えばタイプされた)自然言語入力を提供することによって、自動アシスタントと対話することができる。
【0003】
典型的には、自動アシスタントは、さまざまなコマンドによって予め構成され、さまざまなコマンドは、自動アシスタントへの入力として提供されるとき、その各々が自動アシスタントに対応するアクションを実行させる。しかしながら、予め構成されていないコマンドが提供されるとき、自動アシスタントは、典型的には、失敗する(例えば、「私は、どうすべきか分かりません。」のようなデフォルトエラーメッセージを提示する)。追加的にまたは代替的に、複数のコマンドに関連付けられたアクションを実行するために、自動アシスタントは、典型的には、複数のコマンドの各々ための別々の入力を要求する。例えば、自動アシスタントにネットワークライトをつけさせ、音楽を再生させるために、ユーザは、2つの別々の入力、例えば、「ライトをつけて」という第1の入力および「音楽を再生して」という第2の入力を提供しなければならない。さらに、いくつかのコマンドに応答して、いくつかの自動アシスタントは、常に、ユーザとのさらなるダイアログに従事し、対応するアクションを実行するのに必要なスロットのための値を決定する。例えば、「ライトをつけて」に応答して、自動アシスタントは、「どのライトかを特定してください」とユーザに常に促し、対応するアクションの「ライト識別」スロットのための値を決定し得る。
【発明の概要】
【課題を解決するための手段】
【0004】
この開示は、自動アシスタントアプリケーションのためのショートカットコマンドを生成および/または利用するためのシステム、方法および装置に関する。いくつかの実装形態では、ユーザは、自動アシスタントインタフェースを通して、自動アシスタントと相互作用し、1つまたは複数の予め構成されたコマンドフレーズのためのショートカットコマンドフレーズを提供する。自動アシスタントは、提供されるショートカットコマンドフレーズを予め構成されたコマンドフレーズおよび/または予め設定されたコマンドフレーズに対応するアクションに相関させる記憶エントリを生成することができる。
【0005】
一例として、自動アシスタントが「私の目覚ましを設定して」および「ライトを消して」というコマンドフレーズに応答するために予め構成されていると仮定する。さらに、アシスタントがコマンドフレーズ「おやすみ」に応答するように予め構成されていないと仮定する。ユーザが、自動アシスタントインタフェースを介して、「おやすみ」という自然言語(例えば、タイプされたかまたは話された)入力を提供する場合、入力(またはその変換)は、アシスタントアプリケーションに提供可能であり、アシスタントアプリケーションによって処理され、それが認識されていない(すなわち、「おやすみ」というフレーズにマップされる特定のアクションがない)と決定することができる。認識されていないフレーズに応答して、「私は、どうすべきか分かりません」のようなデフォルトメッセージのみを提示する代わりに、自動アシスタントアプリケーションは、ユーザが自動アシスタントに1つまたは複数のアクションを「教える」ことを(例えば、聴覚的におよび/または視覚的に)促し、認識されていないフレーズに応答して実行することができる。例えば、促しは、「私はそれにどう反応すべきか分かりませんが、あなたは私に教えることができます。あなたが「おやすみ」と言うと、あなたが私に何をして欲しいのかを教えて」とすることができる。次に、ユーザは、「私の電話の目覚まし時計を設定して、ライトを消して」というさらなる自然言語入力を提供することができる。応答して、自動アシスタントアプリケーションは、「おやすみ」というフレーズ(および、オプションでその変化)を「私の目覚まし時計を設定して」および「ライトを消して」という認識されたコマンドフレーズにマップする、および/または、「私の電話の目覚まし時計を設定して」に関連付けられたアクションおよび「ライトを消して」に関連付けられたアクションにマップする記憶エントリを作成することができる。ユーザがその後「おやすみ」というフレーズを提供するとき、自動アシスタントアプリケーションは、「私の電話の目覚まし時計を設定して」および「ライトを消して」に関連付けられたアクションを実行させることができる。多くの実装形態では、記憶エントリは、ユーザに個人的なものとすることができ、この種のアクションは、ユーザからの「おやすみ」の受信に応答してのみ、「おやすみ」に応答して実行されることを意味する(例えば、ユーザの装置の自動アシスタントインタフェースにおいて、または、「共有」装置において、かつ、ユーザの音声特徴の認識に応じて)。
【0006】
これらおよび他の方法では、改良された自動アシスタントは、自動アシスタントが応答するコマンドフレーズの拡大を通して達成可能である。さらに、これらおよび他の方法では、ネットワークおよび/または計算リソースを減少することができる。例えば、ショートカットコマンドフレーズは、さもなければ関連付けられたアクションを実行するのに必要な予め構成されたコマンドフレーズに対して短縮可能である。例えば、「おやすみ」がコマンドフレーズとして構成された後に話されるときの音声データの送信は、「私の電話の目覚ましを設定して」および「ライトを消して」の両方が話されるときの音声データの送信より少ない帯域幅を消費し得る。さらに、音声データの音声をテキストに変換する処理および/または他の処理における計算負荷を減少することができる。
【0007】
いくつかの実装形態では、ショートカットコマンドフレーズにマップされるアクションは、1つまたは複数のスロットを有することができ、アクションが自動アシスタントアプリケーションによって実行可能になる前に、スロットの値を決定する必要がある。例えば、「電話の目覚まし時計を設定して」に関連付けられたアクションは、「目覚まし時間」のためのスロットを有することができ、アクションが実行可能になる前に、スロットの値を決定する必要がある。それらの実装形態のいくつかでは、ショートカットコマンドフレーズが構成されるとき、自動アシスタントアプリケーションは、ユーザがそれらのスロットのためのスロット値を定義することを促すことができ、オプションでその後、ショートカットコマンドフレーズの受信に応答して、アクションのためのそれらのスロット値を利用する。上述した例を続けると、ユーザが「私の電話の目覚まし時計を設定して、ライトを消して」を提供するとき、自動アシスタントアプリケーションは、「私の電話の目覚まし時計を設定して」にマップされるアクションが、「私の目覚まし時計を設定して、ライトを消して」によって特定されなかった「アラーム時間」スロットのための必要なスロット値を有することを決定することができる。応答して、自動アシスタントアプリケーションは、「あなたは、目覚ましの標準時間を設定したいですか、または、あなたがおやすみと言うたびに促して欲しいですか?」というさらなる促しを提供することができる。ユーザが、特定の時間(例えば、午前8時00分)で促しに応答する場合、自動アシスタントアプリケーションは、その後、「おやすみ」に応答して、オプションでユーザに確認する必要なく、ユーザの電話の目覚まし時計を午前8時00分に設定することができる。これらおよび他の方法では、改良された自動アシスタントは、アクションに、および、それらのアクションのスロットのための特定のスロット値にコマンドフレーズをマッピングするショートカットを通して達成可能である。さらに、これらおよび他の方法では、ショートカットコマンドフレーズの受信に応答して、スロット値をアクションに自動的に組み込むことができる、および/または、ユーザからさらなる確認を要求することなく、アクションを実行することができ、このことは、さもなければスロット値を提供および/またはアクションを確認するのに必要なダイアログのやりとりを除去することができる。ダイアログのやりとりの除去は、ネットワークおよび計算リソースを節約することができる。
【0008】
いくつかの追加および/または代替の実装形態では、ショートカットコマンドフレーズは、ショートカットコマンドフレーズおよび1つまたは複数の予め構成されたコマンドフレーズを含む単一の発言に応答して構成可能である。例えば、自動アシスタントが「私の目覚ましを設定して」および「ライトを消して」というコマンドフレーズに応答するように予め構成されていると仮定する。さらに、アシスタントがコマンドフレーズ「おやすみ」に応答するように予め構成されていないと仮定する。ユーザが、自動アシスタントインタフェースを介して、「私がおやすみと言うと、私の電話の目覚まし時計を設定して、ライトを消して」という(例えば、タイプされたかまたは話された)自然言語入力を提供する場合、応答して、自動アシスタントアプリケーションは、「おやすみ」というフレーズ(および、オプションでその変化)を「私の目覚まし時計を設定して」および「ライトを消して」というコマンドフレーズにマップする、および/または、「私の目覚まし時計を設定して」に関連付けられたアクションおよび「ライトを消して」に関連付けられたアクションにマップする記憶エントリを作成することができる。ユーザがその後、「およすみ」というフレーズを提供するとき、自動アシスタントアプリケーションは、「私の目覚まし時計を設定して」および「ライトを消して」に関連付けられたアクションを実行させることができる。
【0009】
上述した説明は、開示のいくつかの実装形態の概要として提供される。それらのうちの追加の説明および他の実装形態は、本明細書において提供される。
【0010】
いくつかの実装形態では、1つまたは複数のプロセッサによって実施される方法は、コンピューティング装置の自動アシスタントインタフェースにおいて1つまたは複数のコマンドフレーズを受信するステップのようなステップを含むものとして記載される。1つまたは複数のコマンドフレーズは、コンピューティング装置にとってアクセス可能な自動アシスタントアプリケーションによって入力データとして処理可能である。ステップはまた、入力データを用いて、自動アシスタントアプリケーションによって実行されるべき1つまたは複数のアクションを識別するステップと、自動アシスタントインタフェースにおいてショートカットコマンドフレーズを受信するステップと、を含むことができる。ショートカットコマンドフレーズは、ショートカットコマンドフレーズに応答して、1つまたは複数のアクションを自動アシスタントアプリケーションによって実行させる要求に対応することができる。ステップは、自動アシスタントアプリケーションから促しを提供させるステップをさらに含むことができる。促しは、1つまたは複数のアクションのうちの1つのアクションのためのスロット値を求める要求を含むことができる。さらに、ステップは、促しに応答して、アクションのためのスロット値を満たすためのユーザ入力を受信するステップと、ショートカットコマンドフレーズ、スロット値および1つまたは複数のアクションの間の相関を提供する記憶エントリを生成するステップと、を含むことができる。記憶エントリを生成するステップの後に、方法は、コンピューティング装置の自動アシスタントインタフェースにおいてショートカットコマンドフレーズを受信するステップと、ショートカットコマンドフレーズの受信に応答して、ショートカットコマンドフレーズ、スロット値および1つまたは複数のアクションの間の相関を提供する記憶エントリに基づいて、自動アシスタントアプリケーションによって、スロット値を有する1つまたは複数のアクションを実行するステップと、を含むことができる。
【0011】
いくつかの実装形態では、自動アシスタントインタフェースは、音声インタフェースであり、1つまたは複数のコマンドフレーズの各コマンドフレーズは、ユーザによって以前に提供された複数の音声コマンドの1つに対応する。1つまたは複数のコマンドフレーズのうちの少なくとも1つのコマンドフレーズは、自動アシスタントアプリケーションにエージェントコマンドを別のコンピューティング装置に送信させることでき、エージェントコマンドは、スロット値を含むことができる。1つまたは複数のコマンドフレーズを識別するステップは、入力データを自動アシスタントアプリケーションにとってアクセス可能なコマンドフレーズエントリと比較し、入力データの一部分がコマンドフレーズエントリ内で識別されるか否かを決定するステップを含むことができる。ショートカットコマンドフレーズを受信するステップは、複数のショートカットコマンドフレーズを受信するステップ含むことができ、方法は、複数のショートカットコマンドフレーズ内のショートカットコマンドフレーズの総数を識別するステップと、ショートカットコマンドフレーズの総数をショートカット閾値と比較するステップと、をさらに含むことができる。方法は、ショートカットコマンドフレーズの総数がショートカット閾値の外にあるとき、ショートカットコマンドフレーズの総数がショートカット閾値を超えることを自動アシスタントアプリケーションに示させるステップをさらに含むことができる。
【0012】
他の実装形態では、システムは、1つまたは複数のプロセッサと、命令を格納するように構成されたメモリと、を含むものとして記載され、命令は、1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに、アシスタントインタフェースにおいてユーザにより提供される第1のコマンドフレーズを受信することを含むステップを実行させる。アシスタントインタフェースは、1つまたは複数のプロセッサにとってアクセス可能な自動アシスタントアプリケーションに関連付け可能である。ステップはまた、第1のコマンドフレーズと、自動アシスタントアプリケーションが利用できる1つまたは複数のコマンドフレーズとの間に相関がないことに少なくとも基づいて、第1のコマンドフレーズが自動アシスタントアプリケーションによって認識されていないと決定することを含むことができる。ステップは、アシスタントインタフェースを介して応答フレーズをユーザに提示させることをさらに含むことができる。応答フレーズは、第1のコマンドフレーズを実行する命令のための要求を含むことができる。さらに、ステップは、応答フレーズの提供に応答して、1つまたは複数の第2のコマンドフレーズを受信することを含むことができる。1つまたは複数の第2のコマンドフレーズは、第1のコマンドフレーズに応答して、自動アシスタントアプリケーションによって実行されるべき1つまたは複数のアクションを識別することができる。さらに、ステップは、1つまたは複数の第2のコマンドフレーズ内で識別される1つまたは複数のアクションに関連して、第1のコマンドフレーズに対応するコマンドフレーズを自動アシスタントアプリケーションに格納させることを含むことができる。ステップはまた、1つまたは複数の第2のコマンドフレーズ内で識別される1つまたは複数のアクションに関連して、コマンドフレーズを自動アシスタントアプリケーションに格納させることの後に、アシスタントインタフェースまたは追加のアシスタントインタフェースにおいて、コマンドフレーズに対応する入力を受信することと、コマンドフレーズに対応する入力の受信に応答して、1つまたは複数のアクションに関連して格納されるコマンドフレーズに基づいて、1つまたは複数のアクションを自動アシスタントアプリケーションによって実行させることと、を含むことができる。
【0013】
いくつかの実装形態では、1つまたは複数のアクションのうちの1つのアクションは、別のコンピューティング装置において提供される第三者エージェントアプリケーションを、第三者エージェントアプリケーションに呼び出し要求を送信することによって呼び出すことを含む。ステップは、第2のコマンドフレーズの1つ内で提供されるスロット値を識別することと、スロット値を、コマンドフレーズに関連して格納される1つまたは複数のアクションのうちの少なくとも1つに組み込むことと、を含むことができる。第三者エージェントアプリケーションを呼び出すことは、スロット値を、第三者エージェントアプリケーションに送信される呼び出し要求に組み込むことを含むことができる。スロット値を、スロット値がコマンドフレーズに関連して格納される1つまたは複数のアクションに組み込まれることに基づいて、呼び出し要求に組み込むことができる。スロット値を、コマンドフレーズに対応する入力の受信に応答して、スロット値の確認を促すことなく、組み込むことができる。
【0014】
いくつかの実装形態では、ステップは、アシスタントインタフェースにおいて第3のコマンドフレーズを受信することを含むことができる。第3のコマンドフレーズは、コマンドフレーズに対応する音声コマンドとすることができる。ステップはまた、第3のコマンドフレーズを音声処理アプリケーションによって解析される入力データに変換させることと、入力データから、コマンドフレーズが第3のコマンドフレーズ内で識別されることを決定することと、を含むことができる。1つまたは複数のアクションは、制御信号を1つまたは複数のプロセッサにとってアクセス可能な周辺装置に送信することを含むことができる。
【0015】
さらに他の実装形態では、非一時的コンピュータ可読媒体は、命令を格納するように構成され、命令は、1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに、自動アシスタントアプリケーションのためのアシスタントインタフェースにおいてコマンドフレーズを受信することを含むステップを実行させる。コマンドフレーズは、アシスタントインタフェースを含むコンピューティング装置のユーザにより提供される音声コマンドに対応することができる。ステップはまた、自動アシスタントアプリケーションに、コマンドフレーズから、ショートカットコマンドフレーズおよび補足的なコマンドフレーズを識別させることを含むことができる。補足的なコマンドフレーズは、アシスタントインタフェースにおいて以前に受信されなかったコマンド呼び出しフレーズとすることができる。ステップは、ショートカットコマンドフレーズと補足的なコマンドフレーズとの間の対応を提供する記憶エントリを生成させることと、記憶エントリを生成した後に、アシスタントインタフェースにおいてショートカットコマンドフレーズを受信することと、ショートカットコマンドフレーズの受信に応答して、補足的なコマンドフレーズに関連付けられた1つまたは複数のアクションを自動アシスタントアプリケーションに実行させることと、をさらに含むことができる。アシスタントインタフェースは、コンピューティング装置における音声インタフェースとすることができ、1つまたは複数のアクションは、コンピューティング装置から可聴出力を提供させることを含むことができる。いくつかの実装形態では、ステップは、アシスタント・ティーチング・エージェント・アプリケーションに記憶エントリを識別させ、コマンドデータを自動アシスタントアプリケーションに提供させることを含むことができる。コマンドデータは、補足的なコマンドフレーズを識別することができる。1つまたは複数のアクションは、ウェブサイトを提供するリモートサーバにウェブ問い合わせを提供することを含むことができる。ウェブ問い合わせを提供するアクションは、補足的なコマンドフレーズに対応することができる。補足的なコマンドフレーズは、ウェブ問い合わせ内に含まれるべきスロット値を識別することができる。記憶エントリを生成させることは、補足的なコマンドフレーズを自動アシスタントアプリケーションに提供させるトリガとしてショートカットコマンドフレーズを指定するアシスタントティーチングエージェントを呼び出すことを含むことができる。
【0016】
さらに、いくつかの実装形態は、1つまたは複数のコンピューティング装置の1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連付けられたメモリに格納される命令を実行するように動作可能であり、命令は、上述した方法のいずれかを実行させるように構成される。いくつかの実装形態はまた、上述した方法のいずれかを実行する1つまたは複数のプロセッサによって実行可能なコンピュータ命令を格納する1つまたは複数の非一時的コンピュータ可読記憶媒体を含む。
【0017】
上述した概念および本明細書により詳細に記載されている追加の概念のすべての組み合わせが、本明細書において開示される内容の一部であるとみなされることを認識されたい。例えば、この開示の最後に現れる請求項の内容のすべての組み合わせは、本明細書において開示される内容の一部であるとみなされる。
【図面の簡単な説明】
【0018】
図1】自動アシスタントに複数の異なるアクションを実行させることができるショートカットコマンドフレーズに応答することができる自動アシスタントを提供するシステムを示す。
図2】自動アシスタントアプリケーションを用いてショートカットコマンドフレーズを確立するユーザの例を提供する図を示す。
図3】自動アシスタントを制御するためにショートカットコマンドフレーズを利用できるようにする方法を示す。
図4】自動アシスタントが以前に認識されていないショートカットコマンドフレーズに応答するように構成する方法を示す。
図5】自動アシスタントを動作するために既存のコマンドフレーズを補足するショートカットコマンドフレーズを提供する方法を示す。
図6】一例のコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0019】
本明細書において記載される実装形態は、自動アシスタントのためのショートカットコマンドを可能にするシステム、方法および装置に関する。ショートカットコマンドは、ユーザによって話され、自動アシスタントを通して利用可能な複数のコマンドを呼び出すコマンドフレーズとすることができる。例えば、コンピューティング装置を動作するユーザは、音声コマンドフレーズを用いてコンピューティング装置を通して自動アシスタントにアクセスすることができる。コマンドフレーズは、自動アシスタントにユーザにより特定された特定のアクションを実行させることができる。ユーザは、コマンドフレーズに応答してさまざまな異なるアクションを実行し、および/または、複数のコマンドフレーズを単一のコマンドフレーズに統一するように自動アシスタントに要求することができる。例えば、自動アシスタントは、新たなコマンドフレーズを複数の既存のコマンドフレーズにマップすることができ、自動アシスタントは、新たなコマンドフレーズの受信に応答して既存のコマンドフレーズに関連付けられたアクションを実行することができる。代替的には、新たなコマンドフレーズは、既存のコマンドフレーズとすでに相関しているアクションにマップ可能であり、自動アシスタントは、新たなコマンドフレーズの受信に応答してアクションを実行することができる。このようにして、ユーザは、既存のコマンドフレーズの各々を復唱し、アクションを実行させる必要はなく、むしろ、単一のコマンドフレーズを提供し、アクションを実行させることができる。
【0020】
一例として、既存の呼び出しフレーズは、自動アシスタントに特定のアクションを実行させることができる。例えば、呼び出しフレーズ「私のパーティプレイリストを再生して」は、自動アシスタントに音楽ストリーミングアプリケーションを開かせ、音楽ストリーミングアプリケーションにとってアクセス可能なプレイリスト内で識別される音楽をストリーミングすることができる。しかしながら、ユーザは、異なるフレーズを用いて、既存の呼び出しフレーズに関連付けられたアクションを達成することを望んでもよい。例えば、ユーザは、異なった新たな呼び出しが提供されるとき、既存の呼び出しフレーズが処理されるように要求することができる。例えば、新たな呼び出しフレーズは、「パーティ時間」とすることができ、(「アシスタント、私が「パーティ時間」と言うと、私のパーティプレイリストを再生して」)のようなコマンドを通して構成される既存の呼び出しフレーズにマップ可能である。コマンドは、別のアシスタントアプリケーションまたは自動アシスタントの一部とすることができるアシスタントティーチングエージェントまたはショートカットアシスタントエージェントを呼び出すことができ、新たな呼び出しフレーズを最初の呼び出しフレーズにマップすることができる。その後、ユーザが新たな呼び出しフレーズを提供するとき、新たな呼び出しフレーズと最初の呼び出しフレーズとの間のマッピングが識別可能であり、最初の呼び出しフレーズは、自動アシスタントによって処理可能である。次に、自動アシスタントは、最初の呼び出しフレーズに対応する1つまたは複数のアクションを実行することができる。
【0021】
いくつかの実装形態では、ユーザが、新たな呼び出しフレーズに、1つまたは複数の既存の呼び出しフレーズに関連付けられた機能を実行するように割り当てているとき、自動アシスタントは、特定のアクションを実行するための追加の詳細をユーザに問い合わせることができる。例えば、ユーザには、特定の掃除用品を注文することに関する呼び出しフレーズを自動アシスタントに提供した経験を有することがあり得る。呼び出しフレーズは、「アシスタント、紙タオルを注文して」、「アシスタント、バスルームクリーナを注文して」および「アシスタント、スポンジを注文して」を含むことができる。その後、ユーザは、自動アシスタントに上述した呼び出しフレーズに関連付けられたアクションを実行させるショートカットまたは新たな呼び出しフレーズを作成することができる。新しい呼び出しフレーズを作成するコマンドは、例えば、「アシスタント、私が「掃除用品を注文して」と言うと、紙タオル、バスルームクリーナおよびスポンジを注文して」とすることができる。
【0022】
コマンドに応答して、自動アシスタントは、問い合わせを実行し、ユーザからのコマンドに対応するように構成された呼び出しフレーズがあるか否かを決定することができる。例えば、自動アシスタントは、自動アシスタントのための設定を含むデータベースにおいて問い合わせを実行させることができる。問い合わせは、結果として、予め構成された呼び出しフレーズおよびそれらの対応するアクションの識別を生ずることができる。自動アシスタントは、さらなる問い合わせを実行し、予め構成された呼び出しフレーズに対する応答を強化することができる。例えば、紙タオルを注文することは、自動アシスタントが、掃除用品エンティティに関連付けられた第三者エージェントと対話することを含むことができる。新たな呼び出しフレーズを構成するためのコマンドの受信に応答して、自動アシスタントは、第三者エージェントに問い合わせ、第三者エージェントが入力として受け入れるスロット値(例えば、ブランド、量など)を識別することができる。次に、自動アシスタントは、新たな呼び出しフレーズの特異性を強化するためのユーザに対する応答を編集することができる。例えば、上述した呼び出しフレーズ(すなわち、「・・・掃除用品を注文して・・・」)を作成するコマンドに応答して、自動アシスタントは、ユーザにより多くの情報を求める応答を提供することができる。例えば、自動アシスタントは、「OK、私が紙タオルを注文するとき、どのブランドおよび量を注文して欲しいですか?」のような応答を提供することができる。このようにして、自動アシスタントは、新しく生成された呼び出しフレーズに応答するのに十分用途が広くなり得るだけでなく、既存の呼び出しフレーズを自動的に強化することもできる。
【0023】
いくつかの実装形態では、活動データ(例えば、ウェブサイト活動、インターネットオブシングス(IOT)装置活動、物理的活動データなど)を用いて、予め構成された呼び出しフレーズに応答して実行されるべきアクションを強化することができる。例えば、ユーザは、例えば、「アシスタント、ライトを消して」のような特定の呼び出しフレーズに応答して、自動アシスタントがそれらのIOT(インターネットオブシングス)装置を制御するように予め構成したかもしれない。その後、ユーザは、自動アシスタントに、新たな呼び出しフレーズに従って複数のアクションを実行するように指示することができ、新たな呼び出しフレーズは、ユーザからのコマンドによって確立可能である。例えば、コマンドは、「アシスタント、私が「おやすみ」と言うと、ライトを消して、音楽を消して、目覚ましをオンにして」とすることができる。コマンドに応答して、自動アシスタントは、IOT装置における変化のためにスキャンすることができる。例えば、ユーザは、新たなIOT装置、例えばWiFi可能な屋外のライトをセットアップしたかもしれない。自動アシスタントは、屋外のライトを識別することができ、屋外のライトが新たな呼び出しフレーズに関連付けられるべきか否かに関してユーザに求めることができる。例えば、自動アシスタントは、例えば、「OK、あなたがおやすみと言うとき、屋外のライトを消して欲しいですか?」と言ってコマンドに応答することができる。ユーザがはいと答える場合、新たな呼び出しフレーズを、屋外のライトを消すアクションならびにライトを消すためのコマンドに以前に関連付けられた他のあらゆるライトを消すアクションに関連付けることができる。このようにして、自動アシスタントは、新たな呼び出しフレーズに応答して実行されるべきアクションを直観的に強化することができ、新たな呼び出しフレーズは、予め構成された呼び出しフレーズのためのショートカットとして作用する。いくつかの実装形態では、予め構成された呼び出しフレーズ(すなわち、ライトを消して)を更新することもできるので、呼び出しフレーズに応答して実行されるべきアクションは、新たな屋外のライトを消すことを含むことができる。
【0024】
いくつかの実装形態では、ユーザは、構成された呼び出しフレーズのためのショートカットを作成することができ、ショートカットは、条件または他のスロット値を構成された呼び出しフレーズに追加する。例えば、ユーザは、自動アシスタントが呼び出しフレーズ「アシスタント、私に映画のチケットを注文してください」に応答するように予め構成したかもしれない。応答して、自動アシスタントは、映画のチケットを注文するステップを通してユーザを導くことができる。ステップは、映画を観る場所を識別するステップと、ユーザが観たい映画を識別するステップと、ユーザが暇な時間を識別するステップと、映画のチケットの支払いを行うステップと、を含むことができる。その後、ユーザは、新たな呼び出しフレーズを作成するためのコマンドを提供することができ、新たな呼び出しフレーズは、アクションを実行するための追加のパラメータまたは条件を以外の、構成された呼び出しフレーズに関連付けられたアクションを自動アシスタントに実行させる。例えば、ユーザは、コマンド「アシスタント、私が私に映画のチケットを注文してと言うと、最も人気のある映画の映画チケットを注文して」を提供することができる。自動アシスタントは、新たな呼び出しフレーズを予め構成された呼び出しフレーズと比較することができ、2つのフレーズ間の違いを決定することができる。違いが新しいパラメータまたは条件(例えば、「最も人気のある」)を含む場合、自動アシスタントは、新たな呼び出しフレーズに関連付けられたアクションを実行するための機能におけるスロット値として新しいパラメータを含むことができる。例えば、映画ウェブサイトは、人気に従って映画をフィルタリングするためのオプションを含むことができる。新たな呼び出しフレーズに応答して、自動アシスタントは、フィルタを操作して、最も人気のある映画を識別して、自動アシスタントの予め構成されたアクションに従って、最も人気のある映画のチケットを注文するのを継続することができる。
【0025】
いくつかの実装形態では、自動アシスタントは、呼び出しフレーズを受信することができ、呼び出しフレーズを、自動アシスタントによって実行されるべきアクションに関連付け可能な類似のフレーズと比較することができる。例えば、自動アシスタントは、「アシスタント、私の最近の楽曲リストを再生してください」のような呼び出しフレーズを受信することができる。応答して、自動アシスタントは、ユーザが以前に提供した類似のフレーズを検索することができる。例えば、ユーザは、自動アシスタントにとってアクセス可能な音楽アプリケーションに関連付けられた楽曲を自動アシスタントに再生させるために、呼び出しフレーズ「アシスタント、私の最近のプレイリストを再生してください」を以前に提供した可能性がある。類似のフレーズを検索するとき、自動アシスタントは、呼び出しフレーズ「私の最近の楽曲リストを再生して」が「私の最近のプレイリストを再生して」という以前に受信したフレーズに類似していると決定することができる。フレーズ「私の最近の楽曲リストを再生して」の受信に応答して、自動アシスタントは、音楽アプリケーションに最新のプレイリストを再生させることができる。さらに、自動アシスタントは、呼び出しフレーズ「私の最近の楽曲リストを再生して」を、音楽アプリケーションによって最新のプレイリストを再生するアクションに関連して格納することができる。
【0026】
いくつかの実装形態では、自動アシスタントは、呼び出しフレーズを受信することができ、自動アシスタントが呼び出しフレーズをまだ受信していなかったと決定することができる。応答して、自動アシスタントは、問い合わせをユーザに提供し、呼び出しフレーズを提供することによって、ユーザが要求しているアクションをどのように実行するべきかを正確に決定することができる。例えば、ユーザは、「アシスタント、家でパーティの準備をして」のような呼び出しフレーズを提供することができる。自動アシスタントは、呼び出しフレーズの記憶を検索し、提供された呼び出しフレーズに対する完全一致または部分一致を識別することができる。一致が識別されない場合、自動アシスタントは、「私は、そのコマンドを認識しません。教えてもらえますか?」のような問い合わせでユーザに返答することができる。その後、ユーザは、自動アシスタントによって実行されるべきアクションを設定するコマンドの文字列を提供し、呼び出しフレーズに示される要求を全うすることができる。例えば、ユーザは、「分かりました、ライトを薄暗くして、私のパーティプレイリストの再生を開始して」というフレーズを自動アシスタントに提供することができる。応答して、自動アシスタントは、上述したフレーズ(例えば、ライトを薄暗くして、パーティプレイリストを再生する)に関連付けられたアクションを識別することができ、アクションと最初の呼び出しフレーズ(例えば、家でパーティの準備をして)との間の相関を生成することができる。代替的には、自動アシスタントは、アクションの代わりに、最初の呼び出しフレーズと、最初の呼び出しフレーズを説明するフレーズ内で識別されるコマンドと、の間の相関を生成することができる。このようにして、単に一般的なエラー(例えば、「すみません、私は、まだどうすべきか分かりません」)と言って知らないコマンドに応答する代わりに、自動アシスタントは、認識されていないコマンドに応答することができる。さらに、自動アシスタントは、自動アシスタントが新たなコマンドフレーズを学ぶことができる方法で応答することができ、それにより、時間とともに受信される、知っているコマンドの数を増加させる。
【0027】
いくつかの実装形態では、自動アシスタントが特定のアクションを実行するように設定する間、ユーザは、1つまたは複数のアクションのための確認を省略するように要求し、アクションの完了を促進することができる。例えば、自動アシスタントを用いて特定のメニューアイテムをレストランに注文する間、自動アシスタントは、注文を実行する前に問い合わせ応答を提供し、注文が正しいことを確実にすることができる。問い合わせ応答は、自動アシスタントを通して特定の注文のために予め構成可能である、または、注文が出される前に、確認を必要とするレストランエージェントアプリケーションから中継可能である。自動アシスタントとの特定の相互作用の確認ステップを迂回するために、ユーザは、確認ステップを迂回するように要求することができる、または、自動アシスタントは、確認ステップを迂回するべきか否かに関してユーザに問い合わせることができる。例えば、ユーザは、ペパロニおよびタマネギピザをソーダおよびスティックパンとともにピザ会社に注文するように自動アシスタントに要求した経験を有することがあり得る。自動アシスタントは、応答して、ユーザのために注文を復唱し、その後注文を言葉で確認することができる。その後、ユーザは、例えば、「アシスタント、私が「私のいつものピザ注文を出して」と言うと、注文を確認せずに、ペパロニおよびタマネギピザをソーダおよびスティックパンとともにピザ会社に注文してください。」のようなショートカット呼び出しフレーズがピザ会社に注文のために作成されるように要求することができる。応答して、自動アシスタントは、自動アシスタントに提供された以前の呼び出しフレーズを検索し、以前の呼び出しフレーズに関連付けられたアクションを決定することができる。次に、決定されたアクションを、呼び出しフレーズ「いつものピザを注文して」にマップすることができ、呼び出しフレーズに関連付けられた設定は、注文を確認するためにユーザに問い合わせるのではなく、むしろ、ユーザからの次の確認なしで、注文を続行するように確立可能である。
【0028】
いくつかの実装形態では、自動アシスタントは、コマンドの文字列を受信すると直ちに、コマンドの文字列をショートカット呼び出しフレーズに変換するよう要求可能である。例えば、コマンドの文字列は、「アシスタント、家のライトを消してください」、「アシスタント、目覚ましシステムをオンしてください」および「アシスタント、温度を70度に設定してください」を含むことができる。コマンドの文字列を提供した後に瞬間的に、ユーザは、自動アシスタントに、「アシスタント、私が「私は寝ます」と言うと、それらのアクションを実行して。」のようなコマンドを用いてショートカット呼び出しフレーズを作成させることができる。応答して、自動アシスタントは、コマンドの文字列を通して最新に要求されたアクションを、ショートカット呼び出しフレーズ(例えば「私は寝ます」)に相関することができる。このようにして、ユーザがショートカット呼び出しフレーズ「私は寝ます」を提供する次のとき、自動アシスタントは、家のライトを消して、目覚ましシステムをオンにして、温度を70度に設定するアクションを実行することができる。
【0029】
自動アシスタントは、ショートカット呼び出しフレーズを既存の呼び出しフレーズおよび/または既存のアクションにマップすることができるシステムを用いて、新たなアシスタントショートカットまたは新たな呼び出しフレーズに応答することができる。例えば、ユーザは、ユーザに関連付けられたコンピューティング装置を通してアクセス可能な自動アシスタントインタフェースを通して、自動アシスタントと対話することができる。コンピューティング装置は、ユーザからの言葉の入力をアシスタントサーバに通信することができるアシスタントインタフェースを含むことができ、アシスタントサーバは、自動アシスタントアプリケーショを提供することができる。アシスタントサーバはまた、アシスタントティーチングエージェントを含むことができ、アシスタントティーチングエージェントは、アシスタントティーチング記憶と対話型アプリケーションに対応することができる。アシスタントティーチング記憶は、予め構成された呼び出しフレーズおよび/または予め構成された呼び出しフレーズのための予め構成されたアクションに対する新たなショートカット呼び出しフレーズのマッピングを含むことができる。ユーザがショートカット呼び出しフレーズをアシスタントインタフェースに、例えば、言葉によるコマンドを通して提供するとき、記録された音声は、処理のためにアシスタントサーバに送信可能である。次に、アシスタントサーバは、音声を処理し、音声が対応するショートカット呼び出しフレーズを識別することができる。次に、アシスタントティーチングエージェントは、処理された音声データから、ショートカット呼び出しフレーズと既存の予め構成された呼び出しフレーズまたは関連付けられたアクションとの間のマッピングを識別することができる。次に、アクションは、アシスタントインタフェースにおいて受信されているショートカット呼び出しフレーズに応答して、自動アシスタントによって実行可能である。
【0030】
以下、図面に戻って、図1は、自動アシスタントに複数の異なるアクションを実行させることができるショートカットコマンドフレーズに応答することができる自動アシスタントを提供するシステム100を示す。自動アシスタントは、コンピューティング装置102またはリモート装置124、例えばサーバ装置112において提供されるアシスタントアプリケーション118の一部として動作することができる。ユーザは、アシスタントインタフェース110を介して自動アシスタントと対話することができ、アシスタントインタフェース110は、マイクロホン、カメラ、タッチスクリーンディスプレイ、ユーザインタフェースおよび/またはユーザとアプリケーションとの間のインタフェースを提供することができる他の任意の装置とすることができる。例えば、ユーザは、言葉の、テキストの、または図形の入力をアシスタントインタフェース110に提供することによって、自動アシスタントを初期化し、自動アシスタントに機能を実行させることができる(例えば、データを提供する、周辺装置を制御する、エージェントにアクセスするなど)。コンピューティング装置102は、ディスプレイ装置108を含むことができ、ディスプレイ装置108は、タッチ入力および/またはジェスチャを受信するためのタッチインタフェースを含むディスプレイパネルとすることができ、タッチインタフェースを介してユーザは、コンピューティング装置102のアプリケーションを制御できる。他の実装形態では、コンピューティング装置102は、ディスプレイ装置108を欠くことができる(例えば、グラフィカルユーザインタフェース出力を提供せず、可聴のユーザインタフェース出力を提供する)。
【0031】
図1には、単一のコンピューティング装置102が示されるが、種々の実装形態では、複数のコンピューティング装置は、本明細書において開示されるさまざまな技術を実行する際にアシスタントアプリケーション118と入出力を行うことができる。例えば、ショートカットコマンドフレーズは、コンピューティング装置102のアシスタントインタフェース110に提供可能であり、応答データは、ショートカットコマンドフレーズに応答して別のコンピューティング装置において聴覚的におよび/または視覚的に提示可能である。別のコンピューティング装置は、コンピューティング装置102にリンク可能である。例えば、別のコンピューティング装置がコンピューティング装置102にリンク可能であるのは、両方のコンピューティング装置において利用されている同じユーザーアカウントに基づいて、同じセキュアなネットワークに接続されている両方のコンピューティング装置に基づいて、互いに直接のピアツーピア通信にある両方のコンピューティング装置に基づいてなどである。他の例として、ショートカットコマンドフレーズを1つまたは複数のアクションに相関させる記憶エントリは、(サーバ装置112との相互作用を通して)コンピューティング装置102のアシスタントインタフェース110を利用するユーザにより提供されるユーザインタフェース入力を通して生成可能である。その後、ユーザは、別のコンピューティング装置においてショートカットコマンドフレーズを提供することができ、記憶エントリは、応答して1つまたは複数のアクションを実行するためにアクセスされる。さらに他の例として、ショートカットコマンドフレーズは、1つまたは複数の周辺装置(例えばIoT装置)の状態を変更させるコマンドをアシスタントアプリケーション118に送信させることができる。例えば、ショートカットコマンドフレーズは、ライトをつけさせまたは消させ、そのルーメン出力を変更させ、その光出力色を変更させるなどのコマンドをネットワーク「スマート」ライトに送信させることができる。また、例えば、ショートカットコマンドフレーズは、追加的にまたは代替的に、家132の暖房または冷房装置の設定温度を変更させ、暖房または冷房装置をオンまたはオフさせるなどのネットワーク「スマート」サーモスタットに送信可能である。また、例えば、ショートカットコマンドフレーズは、追加的にまたは代替的に、ガレージドアを開閉させる家132におけるネットワーク「スマート」ガレージドアオープナーに送信可能である。
【0032】
コンピューティング装置102は、ネットワーク122、例えばインターネットを介してリモート装置124と通信することができる。コンピューティング装置102は、計算タスクをサーバ装置112に移し、コンピューティング装置102における計算リソースを節約することができる。例えば、サーバ装置112は、アシスタントアプリケーション118を提供することができ、コンピューティング装置102は、アシスタントインタフェース110において受信した入力をサーバ装置112に送信することができる。しかしながら、いくつかの実装形態では、アシスタントアプリケーション118は、コンピューティング装置102において提供可能である。さまざまな実装形態では、アシスタントアプリケーション118の全部または一部の態様は、コンピューティング装置102上で実施可能である。それらの実装形態のいくつかでは、アシスタントアプリケーション118の態様は、コンピューティング装置102のローカルアシスタントアプリケーションを介して実施され、アシスタントアプリケーション118の他の態様を実施するサーバ装置112と入出力を行う。サーバ装置112は、オプションで、複数のスレッドを介して複数のユーザおよびそれらの関連付けられたアシスタントアプリケーションを供給することができる。アシスタントアプリケーション118の全部または一部の態様がコンピューティング装置102のローカルアシスタントアプリケーションを介して実施される実装形態では、ローカルアシスタントアプリケーションは、コンピューティング装置102のオペレーティングシステムとは別のアプリケーションとすることができる(例えば、オペレーティングシステムの「上部に」設置される)、または代替的には、コンピューティング装置102のオペレーティングシステムによって直接実施可能である(例えば、オペレーティングシステムのアプリケーションであるが、オペレーティングシステムと一体とみなされる)。
【0033】
いくつかの実装形態では、サーバ装置112は、音声をテキストに変換するエンジン116を含むことができ、音声をテキストに変換するエンジン116は、アシスタントインタフェース110において受信される音声データを処理し、音声データ内で具体化されるテキストを識別することができる。音声データをテキストに変換するための方法は、言語認識アルゴリズムを含むことができ、言語認識アルゴリズムは、ニューラルネットワークおよび/または統計モデルを使用し、ワードまたはフレーズに対応する音声データのグループを識別することができる。音声データから変換されたテキストは、コマンドフレーズを生成および/または識別するために用いることができるテキストデータとして、アシスタントアプリケーション118が利用することができる。
【0034】
いくつかの実装形態では、サーバ装置112は、アシスタントアプリケーション118にとってアクセス可能なコマンドのデータベースを管理するコマンドエンジン114を動作することができる。データベースは、コマンドフレーズおよびアクションを相関させるエントリを含むことができる。コマンドフレーズは、話すのに適したコマンドとすることができ、ユーザがアシスタントインタフェース110に対して話すとき、アシスタントアプリケーション118に1つまたは複数の異なるアクションを実行させることができる。いくつかの実装形態ではまた、コマンドエンジン114は、ユーザによって要求されるとき、および/または、さもなければ別のエンティティ(例えばデベロッパー)によってショートカットコマンドフレーズを作成するタスクを与えられるとき、ショートカットコマンドフレーズを含むようにデータベースを変更することができる。例えば、ユーザは、典型的には、「私のパーティプレイリストを再生して」というコマンドフレーズを用いて、週末の晩の間パーティ音楽を再生するようにアシスタントアプリケーション118に要求することができる。しかしながら、時間とともに、ユーザは、「パーティの時間です」のような異なるコマンドフレーズに応答してパーティ音楽が再生されるのを望むことができる。「パーティの時間です」というフレーズに対応するショートカットコマンドフレーズを作成するために、ユーザは、「私が「パーティの時間です」と言うと、そのとき、私のパーティプレイリストを再生して」のようなコマンドフレーズを提供することができる。後者のコマンドフレーズは、アシスタントインタフェース110において受信可能であり、処理のためのサーバ装置112に送信可能である。コマンドエンジン114は、コマンドフレーズに基づいた入力データを用いて、ユーザのためのショートカットコマンドフレーズを生成することができる。
【0035】
コマンドエンジン114は、入力データを解析し、意図されたショートカットコマンドフレーズ(例えば「パーティの時間です」)、条件指標(例えば「そのとき」)および実行されるべきアクション(例えば「私のパーティプレイリストを再生して」)を識別することができる。いくつかの実装形態では、アシスタントアプリケーション118は、入力データを受信することができ、入力データの解析部分をさまざまなデータベースエントリと比較させることができる。例えば、入力データは、さまざまな条件指標を識別する予め構成されたエントリと比較され、意図されたショートカットコマンドフレーズに対応する入力データの一部分と、実行されるべきアクションに対応する部分と、を区別することができる。この種の条件指標は、「そのとき」、「お願いできますか」、「してください」などを含むことができる。アシスタントアプリケーション118またはコマンドエンジン114はまた、ショートカットコマンドフレーズを識別されたアクションに相関させるためにエントリを生成させることができる。例えば、「パーティの時間です」というショートカットコマンドフレーズを識別するエントリは、パーティプレイリストを再生するアクションに相関することができる。このようにして、ユーザは、コマンドを提供するときのユーザの時間を節約することができるとともに、アシスタントアプリケーション118を提供する装置における計算リソースを節約することができる短縮されたコマンドフレーズを作成した。
【0036】
いくつかの実装形態では、アシスタントアプリケーション118は、複数の異なるショートカットコマンド120に応答することができ、複数の異なるショートカットコマンド120は、各々、複数の異なるアクションに関連付け可能である。例えば、ユーザは、典型的には、さまざまなコマンドを用いて、ムービーナイトにゲストを迎えるために家の準備をしてもよい。コマンドは、「アシスタント、私の電話の私の映画アプリケーションを開き、ピザを注文し、娯楽システムをオンにしてください」を含むことができる。このコマンドを受信したアシスタントアプリケーション118に応答して、アシスタントアプリケーション118は、コマンドに対応するアクションを実行するために複数の異なる装置(例えば携帯電話126)とネットワーク122を介して通信することができる。ユーザは、上述したコマンドよりも短縮されたショートカットコマンドフレーズにアクションを統一するようにアシスタントアプリケーション118に要求することができる。例えば、「アシスタント、私が「ムービーナイトの準備をして」と言うと、それらのコマンドを実行してください。」というコマンドを提供することによって、ユーザは、ショートカットコマンドフレーズを作成するようにアシスタントアプリケーション118に要求することができる。応答して、アシスタントアプリケーション118は、最新のコマンドの文字列および/またはコマンドによって誘導されるアクションを識別し、アクションをショートカットコマンドフレーズ「ムービーナイトの準備をして」に相関させるデータベースエントリを生成することができる。その後、ユーザがショートカットコマンドフレーズ「ムービーナイトの準備をして」をアシスタントインタフェース110に提供するとき、アシスタントアプリケーション118は、以前に復唱されたコマンドのすべてを復唱するようにユーザに要求することなく、アクションを実行することができる。
【0037】
いくつかの実装形態では、ユーザがショートカットコマンドフレーズに従ってアシスタントアプリケーション118を動作するように構成しているとき、アシスタントアプリケーション118は、ショートカットコマンドフレーズに応答して実行されるべきアクションに関するフィードバックを提供することができる。例えば、ショートカットコマンドフレーズ「ムービーナイトの準備をして」は、アシスタントアプリケーション118に、1、例えばサーバまたは他のコンピューティング装置によって提供されるウェブサイトまたはアプリケーションに関連付けられた第三者エージェントと通信させることができる。アシスタントアプリケーション118は、コマンドフレーズまたは第三者エージェントを通して注文を完成するためのスロット値を含む符号化機能を用いて第三者エージェントと通信することができる。例えば、ショートカットコマンドフレーズ「ムービーナイトの準備をして」の受信に応答してアシスタントアプリケーション118によって実行されるべきアクションは、ピザを注文することとすることができる。それゆえ、注文を完成するスロット値は、ピザのサイズおよび/またはピザのためのトッピングに対応することができる。ユーザがショートカットコマンドフレーズに従ってアシスタントアプリケーション118を動作するように構成しているとき、アシスタントアプリケーション118は、特定のスロット値を提供するようにユーザに要求することができる。このようにして、ユーザがショートカットコマンドフレーズを提供する次のとき、アシスタントアプリケーション118はそれらのスロット値を用いる。
【0038】
いくつかの実装形態では、ユーザは、特定のスロット値を使用し、および/または、特定のスロット値に関する補足の質問を提供するようにアシスタントアプリケーション118に要求することができる。例えば、ユーザは、コマンド「アシスタント、私が「ムービーナイトの準備をして」と言うと、私の電話の私の映画アプリケーションを開いて、ピザを注文して、娯楽システムをオンにしなければならない」を提供することができる。応答して、アシスタントアプリケーション118は、コマンド「ピザを注文して」を全うするのに必要なスロットを識別し、フィードバック応答をユーザに提供することができる。フィードバック応答は、例えば、「OK、私がピザを注文するとき、どんなサイズのピザおよびどんなトッピングが欲しいですか?」とすることができる。その後、ユーザは、同じ注文を常に提供するようにアシスタントアプリケーション118に要求することができる(例えば、「常に、ペパロニを有するラージピザを注文して。」)、または、スロット値のいくつかについて常に問い合わせるようにアシスタントアプリケーション118に要求することができる(例えば、「常に、ラージピザを注文するが、毎回、私にトッピングについて尋ねて。」)。その後、アシスタントアプリケーション118に常にスロット値の1つまたは複数について問い合わせてもらうようにユーザが選択した場合、アシスタントアプリケーション118は、コマンドフレーズに応答してそれらのスロット値のためにユーザを促すことができ、一方、ユーザによって特定された他のスロット値を自動で追加する。例えば、ユーザがショートカットコマンドフレーズ「ムービーナイトの準備をして」をその後提供するとき、アシスタントアプリケーション118は、映画アプリケーションを開き、娯楽システムをオンにし、ピザにどんなトッピングが欲しいかについてユーザに尋ねることができる(しかし、「ピザサイズ」スロットのために特定された「ラージ」スロット値を自動で追加する)。このようにして、ユーザは、短縮したコマンドフレーズ(「ムービーナイトの準備をして」)を提供することができ、応答して、アシスタントアプリケーション118は、複数のアクションを自動的に実行し(映画アプリケーションを開くためのコマンドを送信し、娯楽システムをオンにするためのコマンドを送信し)、他のコマンドのためのスロットのためのスロット値(「ラージ」)を自動で追加する。スロット値の自動追加は、そのスロット値を決定するためのダイアログのやりとりの必要を除去し、それにより、ネットワークリソースおよび/または計算リソース(例えば、アシスタントアプリケーション118を提供している装置の計算リソース)を節約する。さらに、短縮したコマンドフレーズの処理および作用は、音声テキスト処理の量を減少させ、および/または、他の計算リソースの使用を減少させる。
【0039】
図2は、コンピューティング装置206を通してアクセス可能な自動アシスタントアプリケーションを用いてショートカットコマンドフレーズを確立するユーザ202の例を提供する図200を示す。ユーザ202は、自動アシスタントアプリケーションを制御するためのダイアログ208をコンピューティング装置206に提供することができ、自動アシスタントアプリケーションは、ダイアログ208に応答して応答210をユーザ202に提供することができる。いくつかの実装形態では、ユーザ202が個々のコマンドを復唱するとき、ユーザ202は、自動アシスタントアプリケーションを呼び出し、さまざまな異なるアクションを実行することができる。しかしながら、コマンドをショートカットコマンドフレーズに統一するために、ユーザ202は、ショートカットコマンドフレーズを最初に提供することによって、自動アシスタントアプリケーションにショートカットコマンドフレーズに応答させることができる。ユーザ202によるこの最初のダイアログ208は、自動アシスタントアプリケーションに、ユーザが将来の使用のためにショートカットコマンドフレーズをセットアップしたいか否かを質問させることができる。
【0040】
例えば、ユーザ202は、ダイアログ208「アシスタント、読書の時間です。」を提供することができる。応答して、自動アシスタントアプリケーションは、データベースまたは他のデータ記憶装置をチェックし、ダイアログ208が以前に受信されたか否か、または、さもなければ自動アシスタントアプリケーションがダイアログ208に応答することができるか否かを決定することができる。ダイアログ208が以前に受信されていなかった場合、自動アシスタントアプリケーションは、コンピューティング装置206に「OK、何かご用でしょうか?」のような応答210を提供させることができる。このようにして、自動アシスタントアプリケーションは、どのようにユーザ202が自動アシスタントアプリケーションに最初のダイアログ208に応答して欲しいかを説明するようにユーザ202を促すことができる。
【0041】
いくつかの実装形態では、自動アシスタントアプリケーションは、複数の異なるルールに従って動作し、ショートカットコマンドフレーズを作成するようにユーザ202を促す際に応答210が有効であることを確実にすることができる。例えば、自動アシスタントアプリケーションは、新たなショートカットコマンドフレーズを識別するエントリを生成する前にトリガおよびアクションをユーザ202が識別したことを決定することができる。例えば、ユーザ202が自動アシスタントアプリケーションに「あなたにお願いがあるのですが・・・、」と言って応答し、その後、合理的な時間(例えば1分)の間何も言わない場合、自動アシスタントアプリケーションは、「すみません、私は、追加情報がないと、ショートカットコマンドフレーズを作成することができません」のようなエラーメッセージによって応答することができる。このようにして、自動アシスタントアプリケーションは、何のアクションにも対応しないショートカットコマンドフレーズを作成することはない。
【0042】
いくつかの実装形態では、自動アシスタントアプリケーションは、ショートカットコマンドフレーズがすでに作成されたかどうか見るためにチェックすることができる。ショートカットコマンドフレーズがすでに作成された場合、自動アシスタントアプリケーションは「私はそのショートカットコマンドフレーズをすでに作成しました、それを訂正したいですか?」のようなエラーメッセージを提供することができる。応答して、ユーザ202は、自分たちがショートカットコマンドフレーズを訂正し、自動アシスタントアプリケーションにより多いアクション、より少ないアクションおよび/または異なるアクションを実行させたいことを確認することができる。しかしながら、自動アシスタントアプリケーションがショートカットコマンドフレーズをすでに作成していなかった場合、自動アシスタントアプリケーションは、ショートカットコマンドフレーズに応答してどんなアクションをとるべきかに関してユーザ202に問い合わせを継続することができる。
【0043】
ユーザ202は、「OK、何かご用でしょうか?」という自動アシスタントアプリケーションの問い合わせに、ショートカットコマンドフレーズを実行するアクションを識別する追加のダイアログ208によって応答することができる。例えば、追加のダイアログ208は、「私の読書アプリケーションを開いて、私がアクセスした最新のいくつかの本を識別して、私のすべての装置をサイレントモードにして。」を含むことができる。応答して、自動アシスタントは、識別されるアクションを実行することができ、また、アクションを「読書の時間です」というショートカットコマンドフレーズに相関させる、データベース内のエントリを生成することができる。自動アシスタントによって実行されるべきアクションは、ネットワーク212を介して、リモート装置214によって提供される読書アプリケーション216にアクセスすることを含むことができる。ショートカットコマンドフレーズを提供することは、自動アシスタントにユーザログインデータを読書アプリケーション216に提供させることができ、最新の閲覧された本を識別し、ユーザ202に報告することができる。自動アシスタントは、その後、最新の閲覧された本を識別する応答を提供するアクションを実行することができる(例えば、「あなたは最後に「Catcher in the Rye」および「6 Easy Pieces」を開きました。)。
【0044】
ショートカットコマンドフレーズに相関可能な追加のアクションは、自動アシスタントにリモート装置218によって提供される音楽アプリケーション220にアクセスさせること、および、音楽アプリケーション220にクラシック音楽プレイリストを再生させることを含むことができる。クラシック音楽プレイリストは、自動アシスタントにより音楽アプリケーション220に提供されるデータを用いて識別可能である。例えば、自動アシスタントは、ダイアログ208からのテキストを、音楽アプリケーション220または音楽アプリケーション220に関連付けられたエージェントモジュールに提供し、クラシックプレイリストを識別することができる。さらに、アクションはまた、自動アシスタントに、リモート装置222において格納されるユーザ装置設定224にアクセスさせることを含むことができる。ユーザ装置設定224は、ユーザ202に関連付けられたさまざまな装置と対話するためのアプリケーションを制御することに対応し得る。いくつかの実装形態では、ユーザ202がすべての装置を「サイレントモード」に入れるように要求したので、自動アシスタントは、応答して、サイレントモードに関連付けられたまたはさもなければサイレントモードで動作することができる装置のためのユーザ装置設定224を検索することができる。
【0045】
次に、結果として生ずる装置は識別可能であり、装置のための識別子は、ショートカットコマンドフレーズに関連して格納可能である。このようにして、ユーザ202がショートカットコマンドフレーズを提供する次のとき、識別された装置は、それらの現在の動作モードからサイレント動作モードに変換可能である。いくつかの実装形態では、新たな装置がユーザ202に関連付けられていた場合、自動アシスタントは、ショートカットコマンドフレーズを更新するバックグラウンドプロセスを通して新たな装置を識別することができる。新たな装置がサイレントモードを含む場合、例えば、新たな装置はまた、ユーザ202がショートカットコマンドフレーズ「読書の時間です」を提供するとき、サイレントモードに切り替えられる装置に含まれ得る。他の実装形態では、ユーザ202がショートカットコマンドフレーズを提供する次のとき、自動アシスタントは、ユーザ202に新たな装置について問い合わせることができる。例えば、自動アシスタントアプリケーションは、ショートカットコマンドフレーズに「OK、私は、あなたの新たな携帯電話がサイレントモードを有するものとして識別しました。あなたの新たな携帯電話をサイレントモードにしたいですか?」と言って応答することができる。ユーザ202が、肯定的に応答する場合(例えば「はい。」)、ユーザ202が「読書の時間です」と言うとき、自動アシスタントアプリケーションは、サイレントモードにしなければならない装置であるとして新たな携帯電話を識別するエントリを変更または追加することができる。
【0046】
いくつかの実装形態では、ショートカットコマンドフレーズは、自動アシスタントアプリケーションの第1言語とは別の言語で提供可能である。例えば、ユーザ202は、ショートカットコマンドフレーズ「il est temps de lire」が自動アシスタントにダイアログ208内で識別されるそのアクションを実行させるように要求することができる。フランス語は、特定の自動アシスタントアプリケーションの第1言語にしてはならないが、自動アシスタントアプリケーションは、将来の使用のために、フランス語のショートカットコマンドフレーズをダイアログ208内のアクションに相関させるエントリを格納することができる。
【0047】
図3は、自動アシスタントを制御するためにショートカットコマンドフレーズを利用できるようにする方法300を示す。方法300は、1つまたは複数のコンピューティング装置および/または自動アシスタントアプリケーションと対話することができる他の任意の装置によって実行可能である。方法300は、コンピューティング装置の自動アシスタントインタフェースにおいて1つまたは複数のコマンドフレーズを受信するブロック302を含むことができる。1つまたは複数のコマンドフレーズは、異なる時間に提供され、自動アシスタントに1つまたは複数の異なるアクションを実行させることができる。コマンドフレーズは、コンピューティング装置にとってアクセス可能な自動アシスタントアプリケーションによって、入力データとして処理可能である。例えば、コンピューティング装置は、ユーザからの入力を収集することができる自動アシスタントインタフェースを含むことができ、コンピューティング装置は、別の装置、例えば自動アシスタントアプリケーションを提供するサーバ装置に入力を提供することができる。
【0048】
方法300は、入力データを用いて、自動アシスタントアプリケーションによって実行されるべき1つまたは複数のアクションを識別するブロック304をさらに含むことができる。アクションは、自動アシスタントアプリケーションが直接的または間接的に実行できる機能または動作とすることができる。この種のアクションは、自動アシスタントアプリケーションにとってアクセス可能な検索アプリケーションを用いて検索問い合わせを実行することを含むことができる。アクションは、追加的にまたは代替的に、周辺装置(例えば、コンピューティング装置に接続されている装置および/またはホームWiFiネットワーク介してアシスタントアプリケーション)、別のアプリケーション(例えば、電話アプリケーション、カレンダアプリケーションなど)および/またはコンピューティング装置によって制御できる他の任意のソフトウェアまたはハードウェアを制御することを含むことができる。アクションは、自動アシスタントアプリケーションを作成したエンティティによって予め構成可能であり、自動アシスタントアプリケーションのユーザによって構成可能であり、および/または、自動アシスタントアプリケーションにアクセスするのを許可された第三者によってセットアップ可能である。いくつかの実装形態では、アクションは、追加的にまたは代替的に、別のアプリケーション、ウェブサイト、装置および/または第三者サービスを提供することができる他の任意のエンティティに関連付けられた第三者エージェントを制御することを含むことができる。
【0049】
方法300はまた、1つまたは複数のコマンドフレーズと1つまたは複数のアクションとの間の相関を提供する第1の記憶エントリを生成するブロック306を含むことができる。記憶エントリは、自動アシスタントアプリケーションを提供するサーバ装置または自動アシスタントアプリケーションにとってアクセス可能な別の装置において生成可能である。いくつかの実装形態では、記憶エントリは、1つまたは複数のコマンドフレーズおよび1つまたは複数のアクションを識別するテーブルまたはデータベースのエントリとして提供可能である。ユーザが異なるコマンドフレーズを用いて自動アシスタントを呼び出すのを継続するので、新たな記憶エントリが生成され、自動アシスタントは、ユーザにより良くサービスするのに適することができる。例えば、ユーザは、典型的には、コマンドフレーズ「私のトレーニングプレイリストを再生して」を用いて、自動アシスタントに音楽アプリケーションによって管理されるトレーニングプレイリストを再生させてもよい。しかしながら、ユーザはまた、コマンドフレーズ「私のトレーニングプレイリストを開始して」を用いてもよく、このコマンドフレーズもまた、自動アシスタントにトレーニングプレイリストを再生させることができる。コマンドフレーズ(「私のトレーニングプレイリストを再生して」および「私のトレーニングプレイリストを開始して」)の各々を、エントリを有するコマンドデータベースに組み込むことができ、エントリは、コマンドフレーズを、トレーニングプレイリストを再生するアクションに相関させる。すなわち、時間とともに、複数のコマンドフレーズを同じアクションに相関することができるので、ユーザは、特定のアクションを実行させるために、必ずしも同じコマンドフレーズを提供しなければいけないわけではない。
【0050】
方法300はまた、自動アシスタントインタフェースにおいてショートカットコマンドフレーズを受信するブロック308を含むことができる。ショートカットコマンドフレーズは、ショートカットコマンドフレーズに応答して1つまたは複数のアクションを実行させる要求に対応することができる。換言すれば、ユーザは、自動アシスタントアプリケーションを呼び出し、1つまたは複数のアクションを実行するショートカットコマンドフレーズを作成するための要求を自動アシスタントインタフェースに言葉で提供することができる。例えば、ユーザは、自分たちの家の外に長いランニングに出かける前に、3つのコマンドフレーズを自動アシスタントに順次提供する経験を有することがあり得る。3つのコマンドフレーズには、「トレーニングプレイリストを再生して」、「警報機をオンにして」、「私の家の温度を一時的に下げて」を含むことができる。応答して、自動アシスタントは、ユーザの携帯機器上の音楽アプリケーションを初期化し、トレーニングプレイリストを再生することができ、ユーザの警報機を初期化することができ、ユーザのサーモスタットをより低温に設定し、ユーザが外出している間エネルギーを節約することができる。しかしながら、時間とともに、ユーザは、3つの上述したコマンドフレーズを提供しなければならない代わりに、これらのアクションを単一のショートカットコマンドフレーズに統一することを望んでもよい。アクションの実行を単一のショートカットコマンドフレーズに統一するために、ユーザは、要求を自動アシスタントインタフェースに提供することができる。例えば、要求は、「アシスタント、私がランニングに出かけると言うと、トレーニングプレイリストを再生して、警報機をオンにして、家の温度を一時的に下げてください。」とすることができる。コマンドフレーズおよびショートカットコマンドフレーズは、コマンドフレーズをショートカットコマンドフレーズから分離する条件(例えば、「私が言うと」)に少なくとも基づいて、要求において識別可能である。例えば、要求は、音声をテキストに変換するエンジンによって処理される言葉によるコマンドとすることができ、エンジンは、その後解析され、条件フレーズと比較されるテキストを生成する。言葉によるコマンドが要求に対応してショートカットコマンドフレーズを生成する条件フレーズを含む場合、テキストは、(i)ショートカットコマンドフレーズのためのトリガに対応するテキストの部分および(ii)ショートカットコマンドフレーズに応答して実行されるべき1つまたは複数のアクションに関連付けられたテキストの部分を識別するためにさらに処理可能である。
【0051】
方法300のブロック310は、ショートカットコマンドフレーズと1つまたは複数のアクションとの間の相関を提供する第2の記憶エントリを生成することを含むことができる。例えば、第2の記憶エントリは、「私はランニングに出かける」というフレーズを直接的または間接的に識別することができるとともに、ユーザの携帯機器上の音楽アプリケーションを初期化し、トレーニングプレイリストを再生するアクションを直接的または間接的に識別することができ、ユーザの警報機を初期化させ、ユーザのサーモスタットにより低温に設定させる。このようにして、ユーザは、複数の異なるコマンドフレーズを復唱する必要なく、アクションを実行させることができる。さらに、これによって、自動アシスタントは、ユーザの好みの変化に適応することができる。
【0052】
図4は、自動アシスタントが以前に認識されていないショートカットコマンドフレーズに応答するように構成する方法400を示す。方法400は、1つまたは複数のコンピューティング装置および/または自動アシスタントのための設定を管理することができる他の任意の装置によって実行可能である。図4に示すように、方法400は、アシスタントインタフェースにおいてユーザにより提供される第1のコマンドフレーズを受信するブロック402を含むことができる。アシスタントインタフェースは、1つまたは複数のプロセッサにとってアクセス可能な自動アシスタントアプリケーションに関連付け可能である。例えば、アシスタントインタフェースは、ユーザによって所有されるコンピューティング装置において動作するアプリケーションとすることができ、アプリケーションは、コンピューティング装置に第1のコマンドフレーズを別のコンピューティング装置において位置する自動アシスタントアプリケーションに送信させることができる。別のコンピューティング装置は、音声をテキストに変換するエンジンを含むことができ、エンジンは、コンピューティング装置からの送信(例えば、コンピューティング装置のマイクロホンによって録音される音声)をテキストに変換し、自動アシスタントアプリケーションによってさらに処理することができる。
【0053】
方法400は、第1のコマンドフレーズが自動アシスタントアプリケーションによって認識されていないと決定するブロック404をさらに含むことができる。ブロック404での決定は、第1のコマンドフレーズと、自動アシスタントアプリケーションにとって利用可能な1つまたは複数のコマンドフレーズと、の間に相関がないことに少なくとも基づくことができる。相関がないことは、自動アシスタントアプリケーションが応答できるさまざまな異なるコマンドフレーズを格納するための自動アシスタントアプリケーションにとってアクセス可能なデータベースにおいて表現可能である。自動アシスタントアプリケーションは、第1のコマンドフレーズの受信に応答して、データベースにアクセスすることができ、データベースにおいて利用可能なデータに基づいて、第1のコマンドフレーズが自動アシスタントアプリケーションによって以前に受信されていない、および/または、ユーザのためにいかなる関連付けられたアクションにもマップされていないと決定することができる。例えば、第1のコマンドフレーズは、「訪ねて来る隣人のために準備して」とすることができる。自動アシスタントは、第1のコマンドフレーズをデータベース内のデータと比較し、第1のコマンドフレーズがデータ内で識別されないと結論することによって、上述したフレーズが自動アシスタントによって以前に受信されていない、および/または、ユーザのためにいかなる関連付けられたアクションにマップされていないと決定することができる。
【0054】
方法400は、アシスタントインタフェースを介して応答フレーズをユーザに提示させるブロック406をさらに含むことができる。応答フレーズは、第1のコマンドフレーズを実行する命令のための要求を含む。換言すれば、自動アシスタントアプリケーションは、コンピューティング装置にユーザにメッセージ(例えば、視覚または可聴メッセージ)を提供させ、第1のコマンドフレーズをどのように全うすべきかを説明するようにユーザに要求することができる。メッセージは、例えば、「私は、まだどうすべきか分かりません。どうすべきか教えてもらえますか?」とすることができる。このようにして、最初に新たなコマンドを認識しないにもかかわらず、自動アシスタントが新たなコマンドを学ぶことができることをユーザに通告することができる。ユーザは、その後、自動アシスタントにどのように第1のコマンドフレーズを全うすべきかについて説明することができる。
【0055】
方法400のブロック408は、応答フレーズの提供に応答して第2のコマンドフレーズを受信することを含むことができる。第2のコマンドフレーズは、第1のコマンドフレーズに応答して、自動アシスタントアプリケーションによって実行されるべき1つまたは複数のアクションを識別することができる。例えば、第2のコマンドフレーズは、ユーザからの言葉による応答内で具体化可能であり、ユーザが自動アシスタントから応答フレーズを受信した後、提供可能である。第2のコマンドフレーズは、ユーザによる第1のコマンドフレーズの提供に応答して実行されることをユーザが意図するアクションに関連付けられた複数の異なるコマンドを含むことができる。言葉による応答は、例えば、3つの異なるコマンド「分かりました、ピザを注文して、私のパーティプレイリストを再生して、家に掃除機をかけて」を含むことができる。第1のコマンドは、自動アシスタントに、ユーザがピザを注文するのに経験的に用いた第三者エージェントを通してピザを注文させることができる。第二コマンドは、自動アシスタントに、ユーザによって識別されるパーティプレイリストを再生するための音楽アプリケーションにアクセスさせることができる。最後に、第3のコマンドは、自動アシスタントに、インターネットまたは自動アシスタントにとってアクセス可能なローカルネットワークに接続されているインターネットオブシングス(IoT)装置と相互作用させることができる。IoT装置は、例えば、WiFi可能な自律掃除機とすることができ、自律掃除機は、典型的には、設定されたスケジュールに従ってユーザの家を掃除するが、ユーザまたは自動アシスタントからコマンドに応答して家に掃除機をかけることもできる。
【0056】
いくつかの実装形態では、自動アシスタントは、ユーザからの言葉による応答の受信に応答して、さらなる質問を提供することができる。例えば、複数の異なる第三者エージェント(例えば、第三者サービスアプリケーション)がコマンドを全うするのに利用できるとき、自動アシスタントは、コマンドを全うするのに使用される第三者エージェントを特定するようにユーザに要求することができる。例えば、第2のコマンドフレーズの受信に応答して、自動アシスタントは、「A社かB社にビザの注文を出して欲しいですか?」と言って応答することができる。応答して、ユーザは、「A社」を特定することができ、自動アシスタントは、自動アシスタントによって第1のコマンドフレーズを完成するために使用される機能のためのスロット値として、「A社」を指定することができる。
【0057】
方法400は、第2のコマンドフレーズに相関した1つまたは複数のアクションに関連して、第1のコマンドフレーズに対応するコマンドフレーズを自動アシスタントアプリケーションに格納させるブロック410を含むことができる。換言すれば、自動アシスタントアプリケーションは、記憶エントリをデータベース内で生成させることができ、記憶エントリは、第1のコマンドフレーズと1つまたは複数のアクションとの間の相関を提供することができる。例えば、記憶エントリは、ピザを注文し、パーティプレイリストを再生し、家に掃除機をかけるというアクションならびに第1のコマンドフレーズ「訪ねて来る隣人のために準備して」を直接的または間接的に識別することができる。結果として、自動アシスタントアプリケーションは、ユーザにより提供される新たなコマンドフレーズに適応し、また、自動アシスタントを呼び出し、複数のアクションを実行するフレーズにコマンドを統一した。
【0058】
図5は、自動アシスタントを動作するために既存のコマンドフレーズを補足するショートカットコマンドフレーズを提供する方法500を示す。方法500は、1つまたは複数のコンピューティング装置および/または自動アシスタントアプリケーションと対話することができる他の任意の装置によって実行可能である。方法500は、自動アシスタントアプリケーションのためのアシスタントインタフェースにおいてコマンドフレーズを受信するブロック502を含むことができる。コマンドフレーズは、アシスタントインタフェースを含むコンピューティング装置のユーザにより提供される音声コマンドに対応することができる。コマンドフレーズは、「私が「掃除用品を注文して」と言うと、紙タオルもまた注文して」を含むことができる。このようにして、コマンドフレーズは、現在のショートカットコマンドフレーズを訂正し、追加のアクションを含むための命令を含むことができる。
【0059】
方法500は、自動アシスタントアプリケーションに、コマンドフレーズからショートカットコマンドフレーズおよび補足的なコマンドフレーズを識別させるブロック504をさらに含むことができる。補足的なコマンドフレーズは、アシスタントインタフェースにおいて以前に受信されなかったコマンドフレーズとすることができる。ショートカットコマンドフレーズおよび補足的なコマンドフレーズを識別するために、自動アシスタントは、音声コマンドを音声記録からテキストデータに変換させることができる。テキストデータは、その後、解析可能であり、自動アシスタントにとって利用可能な格納されたコマンドフレーズおよびアクションを識別するエントリを含むデータベースと比較可能である。例えば、コマンドフレーズ「私が「掃除用品を注文して」と言うと、紙タオルもまた注文して」は、テキストに変換され、ショートカットコマンドフレーズとして「掃除用品を注文して」を識別し、補足的なコマンドフレーズとして「紙タオルを注文して」を識別するように解析可能である。後者のフレーズは、「私が言うと」および「また」というワードを含むコマンドフレーズに少なくとも基づいて、補足的なコマンドフレーズとして指定可能である。これらのワードはまた、データベースのエントリと比較され、現在存在するショートカットコマンドフレーズ(すなわち、「掃除用品を注文して」)を訂正することをユーザが自動アシスタントに命じていると決定することができる。既存のショートカットコマンドフレーズは、自動アシスタントに複数の異なるアクションを実行させることができ、さもなければ、ユーザが独立コマンドフレーズを提供する場合、複数の異なるアクションは、個々に実行可能である。
【0060】
方法500は、ブロック506において、ショートカットコマンドフレーズと補足的なコマンドフレーズに関連付けられたアクションとの間の対応を提供する記憶エントリを生成させることを含むことができる。換言すれば、自動アシスタントにとってアクセス可能なデータベースまたは他のメモリ位置は、ショートカットコマンドフレーズおよび補足的なコマンドフレーズに関連付けられたアクションの両方を直接的または間接的に識別するエントリを含むように変更可能である。いくつかの実装形態では、ショートカットコマンドフレーズは、さまざまな異なるアクションとすでに相関していることができ、生成された記憶エントリは、他のアクションをショートカットコマンドフレーズに相関させることができる。例えば、ショートカットコマンドフレーズは、データベース内のエントリを通して「ゴム手袋を注文して」、「風呂用洗剤を注文して」および「たわしを注文して」というアクションに相関することができる。紙タオル注文するアクションは、ユーザがコマンドフレーズの提供に応答して、生成された記憶エントリによってショートカットコマンドフレーズに相関することができる。
【0061】
方法500は、記憶エントリが生成された後に、アシスタントインタフェースにおいてショートカットコマンドフレーズを受信するブロック508をさらに含むことができる。例えば、ユーザは、追加のアクション(例えば、「紙タオルを注文して」)を組み込むように以前に変更されたショートカットコマンドフレーズ「掃除用品を注文して」を提供することができる。さらに、方法500は、ショートカットコマンドフレーズの受信に応答して、自動アシスタントアプリケーションに補足的なコマンドフレーズおよびショートカットコマンドフレーズに関連付けられた1つまたは複数のアクションを実行させるブロック510を含むことができる。例えば、自動アシスタントは、ショートカットコマンドフレーズに対応するデータベース内のエントリを識別することができる。エントリは、ショートカットコマンドフレーズに以前に関連付けられ、かつ、補足的なコマンドフレーズに関連付けられたアクションを識別することができる。この種のアクションは、ウェブサイトを通してゴム手袋を注文し、第三者エージェントを通して、たわしを注文し、および/または、電話アプリケーションを通し風呂用洗剤を注文することを含むことができる。さらに、ブロック502においてユーザがコマンドフレーズを提供することの結果として、アクションは、電話アプリケーションに紙タオルを注文することを含むことができる。このようにして自動アシスタントを動作することによって、ユーザは、予め構成されたショートカットコマンドフレーズを訂正し、新たなアクションおよび/またはコマンドフレーズを組み込み、ユーザと自動アシスタントとの間の多くの相互作用を減少することができる。これは、ユーザの時間を節約することができ、また、自動アシスタントを提供するコンピュータにおける計算リソースを節約することができる。
【0062】
図6は、一例のコンピュータシステム610のブロック図である。コンピュータシステム610は、典型的には、バスサブシステム612を介して多くの周辺装置と通信する少なくとも1つのプロセッサ614を含む。これらの周辺装置は、例えば、メモリ625およびファイル記憶サブシステム626を含む記憶サブシステム624、ユーザインタフェース出力装置620、ユーザインタフェース入力装置622およびネットワークインタフェースサブシステム616を含んでもよい。入出力装置は、ユーザがコンピュータシステム610と対話するのを可能にする。ネットワークインタフェースサブシステム616は、外部ネットワークに対するインタフェースを提供し、他のコンピュータシステムの対応するインタフェース装置に結合される。
【0063】
ユーザインタフェース入力装置622は、キーボード、ポインティングデバイス、例えばマウス、トラックボール、タッチパッドまたはグラフィックスタブレット、スキャナ、ディスプレイに組み込まれるタッチスクリーン、音声入力装置、例えば音声認識システム、マイクロホンおよび/または他のタイプの入力装置を含んでもよい。一般的に、「入力装置」という用語の使用は、コンピュータシステム610に、または、通信ネットワークに情報を入力するためのすべての可能なタイプの装置および方法を含むことを意図する。
【0064】
ユーザインタフェース出力装置620は、ディスプレイサブシステム、プリンタ、ファックス機または非視覚的ディスプレイ、例えば音声出力装置を含んでもよい。ディスプレイサブシステムは、陰極線管(CRT)、フラットパネル装置、例えば液晶ディスプレイ(LCD)、投影装置または可視画像を作成する他の機構を含んでもよい。ディスプレイサブシステムはまた、音声出力装置を介するような非視覚的ディスプレイを提供してもよい。一般的に、「出力装置」という用語の使用は、ユーザにまたは他の機械またはコンピュータシステムにコンピュータシステム610からの情報を出力するすべての可能なタイプの装置および方法を含むことを意図する。
【0065】
記憶サブシステム624は、本明細書において記載されているモジュールの一部もしくは全部の機能を提供するプログラミングおよびデータ構造を格納する。例えば、記憶サブシステム624は、方法300、方法400、方法500、および/または、コンピューティング装置102、コンピューティング装置206、サーバ装置112、リモート装置および/または本明細書において議論される他の任意の装置または装置の選択された態様を実行するロジックを含んでもよい。
【0066】
これらのソフトウェアモジュールは、一般的に、プロセッサ614単独によって、または、他のプロセッサと組み合わせて実行される。記憶サブシステム624内で用いられるメモリ625は、プログラム実行の間、命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)630、および、固定命令が格納される読み出し専用メモリ(ROM)632を含む多くのメモリを含むことができる。ファイル記憶サブシステム626は、プログラムおよびデータファイルのための永続記憶装置を提供することができ、ハードディスクドライブ、関連付けられた取り外し可能媒体と一緒のフロッピーディスクドライブ、CD-ROMドライブ、光ドライブまたは取り外し可能媒体カートリッジを含んでもよい。特定の実装形態の機能を実施するモジュールは、ファイル記憶サブシステム626によって、記憶サブシステム624内に、または、プロセッサ614がアクセス可能な他の機械内に格納されてもよい。
【0067】
バスサブシステム612は、コンピュータシステム610のさまざまな構成要素およびサブシステムが意図するように互いに通信するための機構を提供する。バスサブシステム612は、単一バスとして概略的に示されるが、バスサブシステムの代替実装形態は、複数のバスを用いてもよい。
【0068】
コンピュータシステム610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファームまたは他の任意のデータ処理システムまたはコンピューティング装置を含むさまざまなタイプとすることができる。コンピュータおよびネットワークの絶えず変化する性質のため、図6において表されるコンピュータシステム610の説明は、いくつかの実装形態を示すことを目的とした具体例のみとして意図される。図6において表されるコンピュータシステムよりも多いまたは少ない構成要素を有するコンピュータシステム610の多くの他の構成が可能である。
【0069】
本明細書において記載されているシステムが、ユーザ(またはしばしば本明細書において参照されるように、「参加者」)に関する個人情報を収集するか、または、個人情報を利用してもよい状況において、ユーザは、プログラムまたは特徴がユーザ情報(例えば、ユーザのソーシャルネットワーク、社会的行為または活動、職業、ユーザの好みまたはユーザの現在の居場所に関する情報)を収集するか否かを制御する機会、または、コンテンツサーバからユーザにより関連し得るコンテンツを受信する否かおよび/または受信する方法を制御する機会を提供されてもよい。また、特定のデータは、格納または利用される前に、個人を識別できる情報が削除されるように、1つまたは複数の方法で取り扱われてもよい。例えば、ユーザ識別は、個人を識別できる情報がユーザのために決定できないように取り扱われてもよい、または、ユーザの居場所は、ユーザの特定の居場所が決定できないように、居場所情報が得られるところで(例えば都市、郵便番号または州レベルに)一般化されてもよい。このように、ユーザは、ユーザに関する情報がどのように収集されおよび/またはどのように用いられるのかの制御を有し得る。
【0070】
いくつかの実装形態が本明細書において説明および図示されてきたが、機能を実行するおよび/または結果および/または本明細書において記載されている利点の1つまたは複数を得るためのさまざまな他の手段および/または構造が利用されてもよく、この種の変化および/または変更の各々は、本明細書において記載されている実装形態の範囲内であると考えられる。より一般的に言えば、本明細書において記載されているすべてのパラメータ、寸法、材料および構成は、例示的であることを意味し、実際のパラメータ、寸法、材料および/または構成が、教示が用いられる特定の1つまたは複数の用途に依存することを意味する。当業者は、本明細書において記載されている特定の実装形態に対する多くの均等物を認識する、または、日常実験のみを用いて確認することができる。それゆえ、上述した実装形態が一例のみとして提示され、添付の請求の範囲およびその均等物の範囲内において、特に記載および請求される以外にも、実装形態が実施され得ることを理解されたい。本開示の実装形態は、本明細書において記載されている個々の特徴、システム、物品、材料、キットおよび/または方法に向けられる。さらに、二つ以上のこの種の特徴、システム、物品、材料、キットおよび/または方法の任意の組み合わせは、この種の特徴、システム、物品、材料、キットおよび/または方法が相互に矛盾していない場合、本開示の範囲内に含まれる。
【符号の説明】
【0071】
100 システム
102 コンピューティング装置
106 ユーザデータ
108 ディスプレイ装置
110 アシスタントインタフェース
112 サーバ装置
114 コマンドエンジン
116 音声をテキストに変換するエンジン
118 アシスタントアプリケーション
120 ショートカットコマンド
122 ネットワーク
124 リモート装置
126 携帯電話
128 リモート装置
130 アプリケーション
132 家
200 図
202 ユーザ
206 コンピューティング装置
208 ダイアログ
210 応答
212 ネットワーク
214 リモート装置
216 読書アプリケーション
218 リモート装置
220 音楽アプリケーション
222 リモート装置
224 ユーザ装置設定
300 方法
400 方法
500 方法
610 コンピュータシステム
612 バスサブシステム
614 プロセッサ
616 ネットワークインタフェースサブシステム
620 ユーザインタフェース出力装置
622 ユーザインタフェース入力装置
624 記憶サブシステム
625 メモリ
626 ファイル記憶サブシステム
630 RAM
632 ROM
図1
図2
図3
図4
図5
図6