(58)【調査した分野】(Int.Cl.,DB名)
新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語を指定するデータと、前記新しい音声アクションがトリガされ得るときの前記ソフトウェアアプリケーションのステータスを指定するコンテキストとを、アプリケーション開発者の端末から音声アクションシステムによって受信するステップと、
前記新しい音声アクションに関する発見可能性の例を、前記アプリケーション開発者の端末から前記音声アクションシステムによって受信するステップであって、前記発見可能性の例が、前記ソフトウェアアプリケーションのステータスが前記指定されたコンテキストを満たすときに前記新しい音声アクションを実行するように前記ソフトウェアアプリケーションをトリガする前記トリガ用語のうちの1つまたは複数を含む、ステップと、
前記ソフトウェアアプリケーションに関する発見可能性の例の要求を、前記ソフトウェアアプリケーションがインストールされているユーザデバイスから前記音声アクションシステムによって受信するステップと、
前記ユーザデバイスのコンテキスト情報を前記音声アクションシステムによって受信するステップであって、前記コンテキスト情報が、前記ユーザデバイスにインストールされた前記ソフトウェアアプリケーションのステータスと、前記ユーザデバイスのステータスとを示す、ステップと、
前記要求に応答して、前記受信したコンテキスト情報を解釈することによって決定されたコンテキストに関連付けられる発見可能性の例を前記ユーザデバイスに前記音声アクションシステムによって提供するステップとを含む、コンピュータによって実施される方法。
前記トリガ用語のうちの前記1つまたは複数についての通知としてユーザデバイスにおいて提示可能な発見可能性の例を、前記アプリケーション開発者の前記端末から前記音声アクションシステムによって受信するステップを含み、前記ユーザデバイスが、少なくとも前記提示可能な発見可能性の例に基づいて、前記ソフトウェアアプリケーションのステータスが前記指定されたコンテキストを満たすときに前記トリガ用語のうちの前記1つまたは複数についての通知として前記提示可能な発見可能性の例を提示するように構成される、請求項1に記載のコンピュータによって実施される方法。
前記新しい音声アクションに関する1つまたは複数の一意の候補の発見可能性の例を前記音声アクションシステムによって生成するステップであって、前記1つまたは複数の一意の候補の発見可能性の例の各々が、前記トリガ用語のうちの1つまたは複数を含む、ステップと、
前記1つまたは複数の一意の候補の発見可能性の例の中からの特定の候補の発見可能性の例の選択を示すデータを、前記アプリケーション開発者の前記端末から前記音声アクションシステムによって受信するステップとを含み、
前記ユーザデバイスが、少なくとも前記特定の候補の発見可能性の例に基づいて、前記ソフトウェアアプリケーションのステータスが前記指定されたコンテキストを満たすときに前記特定の候補の発見可能性の例に対応する前記トリガ用語のうちの前記1つまたは複数についての通知として、前記特定の候補の発見可能性の例を提供するように構成される、請求項1に記載のコンピュータによって実施される方法。
前記ソフトウェアアプリケーションのステータスを示すデータを、前記ソフトウェアアプリケーションがインストールされている前記ユーザデバイスから前記音声アクションシステムによって受信するステップと、
前記ソフトウェアアプリケーションの前記ステータスを示す前記データに基づいて、前記音声アクションシステムによって、前記ソフトウェアアプリケーションの前記ステータスが前記指定されたコンテキストを満たすと判定するステップと、
前記ソフトウェアアプリケーションの前記ステータスが前記指定されたコンテキストを満たすと判定することに応じて、前記発見可能性の例を前記ユーザデバイスに前記音声アクションシステムによって提供するステップであって、前記ユーザデバイスが、少なくとも前記発見可能性の例に基づいて、前記発見可能性の例を受信し、前記発見可能性の例を受信することに応じて前記トリガ用語のうちの前記1つまたは複数についての通知として、前記発見可能性の例を提供するように構成される、ステップとを含む請求項1に記載のコンピュータによって実施される方法。
前記指定されたコンテキストが、前記ソフトウェアアプリケーションがインストールされているユーザデバイスのフォアグラウンドで前記ソフトウェアアプリケーションが動作していることを示す請求項1に記載のコンピュータによって実施される方法。
前記指定されたコンテキストが、前記ソフトウェアアプリケーションがインストールされているユーザデバイスのバックグラウンドで前記ソフトウェアアプリケーションが動作していることを示す請求項1に記載のコンピュータによって実施される方法。
(i)第2の新しい音声アクションを実行するように前記ソフトウェアアプリケーションをトリガするトリガ用語と(ii)前記指定されたコンテキストとを指定するデータを、前記アプリケーション開発者の端末から前記音声アクションシステムによって受信するステップと、
前記第2の新しい音声アクションに関する第2の発見可能性の例を、前記アプリケーション開発者の端末から前記音声アクションシステムによって受信するステップであって、前記第2の発見可能性の例が、前記ソフトウェアアプリケーションのステータスが前記指定されたコンテキストを満たすときに前記第2の新しい音声アクションを実行するように前記ソフトウェアアプリケーションをトリガする前記トリガ用語のうちの1つまたは複数を含む、ステップと、
前記要求に応答して、前記第2の発見可能性の例を前記ユーザデバイスに前記音声アクションシステムによって提供するステップであって、前記ユーザデバイスが、少なくとも前記第2の発見可能性の例に基づいて、前記ソフトウェアアプリケーションのステータスが前記指定されたコンテキストを満たすときに、前記新しい音声アクションを実行するように前記ソフトウェアアプリケーションをトリガする前記トリガ用語のうちの前記1つまたは複数についての、および前記第2の新しい音声アクションを実行するように前記ソフトウェアアプリケーションをトリガする前記トリガ用語のうちの前記1つまたは複数についての通知として、前記第2の発見可能性の例を提供するように構成される、ステップとを含む請求項1に記載のコンピュータによって実施される方法。
前記音声アクションを実行するように前記ソフトウェアアプリケーションをトリガするトリガ用語の通知を要求するユーザ入力を前記ユーザデバイスにおいて検出することに応じて前記ソフトウェアアプリケーションのステータスが決定される請求項1に記載のコンピュータによって実施される方法。
前記ソフトウェアアプリケーションのステータスが変わったと判定することに応じて前記ソフトウェアアプリケーションのステータスが決定される請求項1に記載のコンピュータによって実施される方法。
前記ソフトウェアアプリケーションが前記ユーザデバイスにおいて起動されたと判定することに応じて前記ソフトウェアアプリケーションのステータスが決定される請求項1に記載のコンピュータによって実施される方法。
前記音声アクションシステムにおいて、前記発見可能性の例をデータベースに記憶するステップであって、前記データベースが、前記新しい音声アクションとは異なる音声アクションに関する発見可能性の例を含む、ステップを含む請求項1に記載のコンピュータによって実施される方法。
1つまたは複数のコンピュータによって実行され得る命令を含むソフトウェアを記憶する非一時的コンピュータ可読ストレージデバイスであって、前記命令が、そのように実行されると、前記1つまたは複数のコンピュータに
新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語を指定するデータと、前記新しい音声アクションがトリガされ得るときの前記ソフトウェアアプリケーションのステータスを指定するコンテキストとを、アプリケーション開発者の端末から音声アクションシステムによって受信する動作と、
前記新しい音声アクションに関する発見可能性の例を、前記アプリケーション開発者の端末から前記音声アクションシステムによって受信する動作であって、前記発見可能性の例が、前記ソフトウェアアプリケーションのステータスが前記指定されたコンテキストを満たすときに前記新しい音声アクションを実行するように前記ソフトウェアアプリケーションをトリガする前記トリガ用語のうちの1つまたは複数を含む、動作と、
前記ソフトウェアアプリケーションに関する発見可能性の例の要求を、前記ソフトウェアアプリケーションがインストールされているユーザデバイスから前記音声アクションシステムによって受信する動作と、
前記ユーザデバイスのコンテキスト情報を前記音声アクションシステムによって受信する動作であって、前記コンテキスト情報が、前記ユーザデバイスにインストールされた前記ソフトウェアアプリケーションのステータスと、前記ユーザデバイスのステータスとを示す、動作と、
前記要求に応答して、前記受信したコンテキスト情報を解釈することによって決定されたコンテキストに関連付けられる発見可能性の例を前記ユーザデバイスに前記音声アクションシステムによって提供する動作とを含む動作を実行させる、非一時的コンピュータ可読ストレージデバイス。
【発明を実施するための形態】
【0021】
様々な図面における同様の参照符号は、同様の要素を示す。
【0022】
図1Aは、音声アクションシステム100の例を示す。音声アクションシステム100は、アプリケーション開発者がその他のユーザのデバイスに既にインストールされたアプリケーションのための新しい音声アクションを確立し得るプラットフォームおよびサービスを提供する。その後、自分のデバイスにアプリケーションをインストールしたアプリケーションのユーザは、アプリケーションに新しい音声アクションによって指定されたとおりに特定の動作を実行させるために音声コマンドを使用することができる。音声アクションシステム100は、
図1Bおよび
図1Cに関連して詳細に検討されるプラットフォームおよびサービスも含んでよく、それらのプラットフォームおよびサービスによって、アプリケーション開発者は、音声アクションに関する発見可能性の例を確立することができる。発見可能性の例は、利用可能である音声アクションおよびそれらの音声アクションがどのようにしてトリガされ得るかをユーザに知らせるためにユーザに提供され得る。
【0023】
音声アクションシステム100は、アプリケーション開発者101a〜101nによって送られた新しい音声アクションを定義するデータを端末102a〜102nから受信し、新しい音声アクションは、1つまたは複数の異なるアプリケーションのためのものである。音声アクションシステム100は、それぞれの新しい音声アクションが有効な音声アクションであるかどうかを判定することができる。有効であると判定されるそれぞれの新しい音声アクションは、新しい音声アクションに対応する意図を生成するために受け入れられてよく、新しい音声アクションに対応する意図は、音声アクションシステム100のアプリケーション音声アクションデータベース110に記憶され得る。
【0024】
たとえば、音声アクションシステム100は、新しい音声アクションを定義するデータを受信し、確認する確認エンジンを有してよい。データを確認することは、音声アクションを定義するデータのフォーマットは要件に準拠すると判定すること、新しい音声アクションが指定されたアプリケーションと互換性があると判定すること、またはそうではなく、音声アクションがアプリケーション開発者101a〜101nから受信されたデータに基づいて確立され得ると判定することを含み得る。音声アクションシステム100のインジケーションエンジンが、新しい音声アクションを定義する確認されたデータを受信し、新しい音声アクションに対応する意図を生成するためにデータを受け入れてよい。それから、意図は、アプリケーション音声アクションデータベース110に記憶され得る。
【0025】
アプリケーション音声アクションデータベース110は、多数の異なるソフトウェアアプリケーション内で実行され得るアクティビティまたはアクションに関する音声アクションを記憶し得る。アプリケーション音声アクションデータベース110に含まれる音声アクションは、アプリケーションが構築されたときにアプリケーション開発者101a〜101nによって送られた組み込み音声アクションと、アプリケーションによってサポートされる動作に関して、アプリケーションが構築された後にアプリケーション開発者101a〜101nによって送られた音声アクションとを含み得る。
【0026】
音声アクションは、オペレーティングシステムによってデフォルトでサポートされるアプリケーションに固有の音声アクションも含み得る。これらの予めサポートされた音声アクションは、アプリケーション開発者101a〜101nによって音声アクションシステム100に送られる必要なしにアプリケーションにおいて実施され得る音声アクションであってよい。たとえば、フォアグラウンドで実行されるタスクまたはアクティビティ音声アクションを終了するための音声アクション「アプリケーションを終了」は、アプリケーション開発者101a〜101nが「アプリケーションを終了」音声アクションを定義するために音声アクションシステム100に情報を送る必要なしに、任意のアプリケーションに関して自動的に利用可能になり、各アプリケーションに関してアプリケーション音声アクションデータベース110に含まれ得る。
【0027】
アプリケーション音声アクションデータベース110に加えて、音声アクションシステム100は、いかなる特定のアプリケーションまたはコンテキストにも関連付けられない音声アクションを記憶するオペレーティングシステム(OS)音声アクションデータベース120を含み得る。たとえば、デバイスをロック状態にする「電話をロック」音声アクションは、特定のアプリケーションに関連付けられないかまたは例外なくアクセス可能である、つまり、「デバイスをロック」音声アクションが検出されるときのデバイスのステータスに無関係である音声アクションとしてOS音声アクションデータベース120内で指定される音声アクションであってよい。概して、OS音声アクションデータベース120に記憶された音声アクションは、サードパーティアプリケーション開発者101a〜101nによって生成されたいかなる特定のアプリケーションでもなく、ユーザデバイスの動作環境に対して汎用的であるので、OS音声アクションデータベース120に記憶された音声アクションは、アプリケーション開発者101a〜101nが音声アクションを定義することに基づいて生成されない音声アクションである。
【0028】
音声アクションシステム100は、ユーザデバイス104を有するユーザ105がユーザデバイス104またはそのユーザのユーザデバイス104上で動作するアプリケーションによってアクションを実行させるためにそのユーザのユーザデバイス104に発話された音声入力を与えることを可能にする。たとえば、ユーザデバイス104を有するユーザ105は、そのユーザのユーザデバイス104上でメディアプレイヤーアプリケーションを実行し、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで実行されている間に発話された入力「先へスキップ」を与え、メディアプレイヤーアプリケーションをオーディオプレイヤーモードで動作させている。
【0029】
発話された入力に対応するオーディオデータと、ユーザデバイス104上で実行されるアプリケーションのステータスを含むユーザデバイス104のステータスを指定するコンテキスト情報とが、音声アクションシステム100に送信される。特に、
図1Aに示される例に関しては、音声入力「先へスキップ」に対応するオーディオデータが、音声アクションシステム100の音声認識エンジン130によって受信され、ユーザデバイス104のステータスを示すコンテキスト情報が、音声アクションシステム100のコンテキスト分析エンジン140によって受信される。コンテキスト情報は、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで実行されていること、メディアプレイヤーアプリケーションが現在オーディオプレイヤーモードであることを示し、ユーザデバイス104およびユーザデバイス104にインストールされたアプリケーションのステータスについてのその他の情報を示し得る。
【0030】
音声認識エンジン130は、音声入力に対応するオーディオデータを受信し、音声入力の書き起こしを生成し、音声入力の書き起こしを音声アクションセレクタ150に提供する。コンテキスト分析エンジン140は、ユーザデバイス104からコンテキスト情報を受信し、関連するコンテキスト情報を決定するためにコンテキスト情報を処理する。たとえば、コンテキスト分析エンジン140は、コンテキスト情報を分析してユーザデバイス104にインストールされるアプリケーションを特定し、それらのアプリケーションの各々に関連するメタデータが、アプリケーションのための利用可能な音声アクションと、音声アクションのうちのどれが所与のデバイスのステータスに関して可能にされ得るかを決定することに関連するコンテキスト情報とを指定してよい。場合によっては、分析に基づいて、コンテキスト分析エンジン140が、どの音声アクションがユーザデバイス104の特定のステータスに関して可能にされるべきなのかを特定するために追加的なコンテキスト情報を決定してよく、したがって、コンテキスト分析エンジン140は、ユーザデバイス104からの追加的なコンテキスト情報を要求し得る。コンテキスト分析エンジン140は、処理されたコンテキスト情報を音声アクションセレクタ150に転送する。
【0031】
たとえば、
図1Aに示されるように、音声認識エンジン130は、音声入力「先へスキップ」に対応するオーディオデータを受信してよく、音声入力の書き起こしを取得し得る。コンテキスト分析エンジン140は、メディアプレイヤーアプリケーションがフォアグラウンドで実行されていること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードで動作していること、およびユーザデバイス104についてのその他の情報を指定する、ユーザデバイス104からのコンテキスト情報を受信する。たとえば、コンテキスト情報は、ソーシャルネットワークアプリケーションがユーザデバイス104のバックグラウンドで動作しており、ユーザデバイス104のバッテリ寿命が現在50%であることも示し得る。コンテキスト分析エンジン150は、ユーザデバイス104がメディアプレイヤーアプリケーションとソーシャルネットワークアプリケーションとの両方がインストールされていることを示す情報を受信し、デバイスのバッテリ寿命を示すコンテキスト情報に基づいてメディアプレイヤーアプリケーションもソーシャルネットワークアプリケーションも音声アクションを可能にしないと判定し得る。したがって、コンテキスト分析エンジン140は、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで動作していること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードであること、およびソーシャルネットワークアプリケーションがユーザデバイス104のバックグラウンドで動作していることのみを示すようにコンテキスト情報をフィルタリングし得る。それから、フィルタリングされたコンテキスト情報および音声入力「先へスキップ」の書き起こしが、音声アクションセレクタ150に提供され得る。
【0032】
音声アクションセレクタ150は、音声認識エンジン130から発話された入力の書き起こしを受信し、処理されたコンテキスト情報を含むコンテキストをコンテキスト分析エンジン140から受信する。音声アクションセレクタ150は、書き起こしおよびコンテキストを使用して、ユーザデバイス104においてトリガする特定の音声アクションに関連する特定の意図を特定する。たとえば、音声アクションセレクタ150は、アプリケーション音声アクションデータベース110およびOS音声アクションデータベース120にアクセスして、ユーザデバイス104の現在のコンテキストに関して可能にされる1組の候補音声アクションを特定し得る。1組の候補音声アクションを特定することは、音声アクションセレクタ150によって受信されたコンテキストに一致するコンテキストを指定する、アプリケーション音声アクションデータベース110またはOS音声アクションデータベース120に記憶された1組の意図を特定することを含み得る。
【0033】
提示されたコンテキストに関して可能にされる1組の候補音声アクションを特定すると、音声アクションセレクタ150は、音声入力の書き起こしを、可能にされる音声アクションの各々に関連する1つまたは複数のトリガフレーズと比較し得る。概して、トリガフレーズは、1つまたは複数のトリガ用語を含み、特定のトリガフレーズの1つまたは複数のトリガ用語の検出が特定のトリガフレーズに対応する音声アクションの特定およびトリガをもたらすように音声アクションの識別子として働く。たとえば、音声アクションセレクタ150は、書き起こしを、可能にされる音声アクションの意図に関連するそれぞれのトリガフレーズと比較し得る。音声アクションセレクタ150は、書き起こしが特定の音声アクションに関連する意図によって指定されたトリガ用語に一致すると判定することに基づいて特定の音声アクションに関する特定の意図を特定する。
【0034】
たとえば、音声アクションセレクタ150は、音声入力「先へスキップ」の書き起こしおよびユーザデバイス104に関するコンテキストを受信し、受信されたコンテキストを使用して、ユーザデバイス104において開始する候補音声アクション、すなわち、ユーザデバイス104の現在のステータスに基づいてユーザデバイス104において開始され得る音声アクションを特定することができる。ユーザデバイス104のコンテキストに関する1組の候補音声アクションを決定した後、音声アクションセレクタ150は、音声入力「先へスキップ」の書き起こしを候補音声アクションの意図によって指定されたトリガフレーズと比較する。音声アクションセレクタ150は、書き起こし「先へスキップ」がメディアプレイヤーアプリケーションのための「先へスキップ」音声アクションの意図によって指定されたトリガフレーズに一致すると判定し得る。
【0035】
「先へスキップ」音声アクションは、メディアプレイヤーアプリケーションにメディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップさせるための音声アクションであってよい。たとえば、「先へスキップ」音声アクションは、メディアプレイヤーアプリケーションに、30秒、60秒、またはたとえばアプリケーション開発者101a〜101nもしくはユーザ105によって指定された時間のその他の量などの所定の時間量だけ早送りをさせ得る。したがって、メディアプレイヤーアプリケーションが歌を再生しており、そのメディアプレイヤーアプリケーションが「先へスキップ」音声アクションを受信するときに、歌の1分15秒のところまで進んでいる場合、メディアプレイヤーアプリケーションは、歌の1分45秒の時点へと、歌を先へスキップしてよい。一部の例において、「先へスキップ」音声アクションが受信されるときの歌の残りの時間の量が所定の時間量未満である場合、メディアプレイヤーアプリケーションは、メディアプレイヤーアプリケーションに次の歌まで先へスキップさせてよい。
【0036】
書き起こしは、書き起こしの少なくとも一部がトリガフレーズの1つまたは複数の語に一致すると判定することに基づいてトリガフレーズに一致すると特定される。たとえば、書き起こしとトリガフレーズとの間の一致は、書き起こしの語の各々がトリガフレーズの語の各々に一致することに基づいて特定され得る。一部の実装において、一致は、書き起こしの語のすべてがトリガフレーズの語に一致すると判定することに基づいて特定され得る。たとえば、書き起こしは、たとえトリガフレーズの語の一部が書き起こしにないとしても、書き起こしがトリガフレーズの語以外の語を含むとしても、または書き起こしの1つもしくは複数の語がトリガフレーズの語と異なるとしても、トリガフレーズに一致することがある。したがって、書き起こし「新しい電子メール」、「新しい電子メールを送信」、または「新しい電子メールを開ける」の各々は、書き起こしの各々がトリガフレーズと厳密に一致しないにもかかわらずトリガフレーズ「新しい電子メールを開く」に一致すると特定され得る。場合によっては、書き起こしは、書き起こしがトリガフレーズによって明示された順序とは異なる順序でトリガフレーズの語の一部またはすべてを含む場合、トリガフレーズに一致すると特定され得る。たとえば、書き起こし「ロック電話」は、「電話ロック」トリガフレーズに一致すると特定され得る。場合によっては、書き起こしは、書き起こしがトリガフレーズの語の1つまたは複数の類義語または代替用語(alternate term)を含むと判定することに基づいてトリガフレーズに一致すると特定され得る。したがって、書き起こし「新しい電子メールの下書き」または「新しい電子メールを開く」は、「下書き」が「書く」の類義語であり、「開く」が「書く」の特定された代替用語であることに基づいてトリガフレーズ「新しい電子メールを書く」に一致すると特定され得る。
【0037】
特定の音声アクションを特定すると、音声アクションセレクタ150は、特定の音声アクションに関連するアクティビティまたはアクションを開始させるアクショントリガデータをユーザデバイス104に提供する。そのようにするために、音声アクションセレクタ150は、選択された音声アクションに関連するアクションまたはアクティビティを実行するようにユーザデバイス104を制御するための情報を取得し得る。場合によっては、選択された音声アクションに関連するアクションまたはアクティビティを実行するようにユーザデバイス104を制御することは、選択された音声アクションの意図を発することを含み得る。選択された音声アクションの意図を発することは、選択された音声アクションに関連するアクティビティまたはアクションを開始するための情報をユーザデバイス104提供させ得る。
【0038】
たとえば、選択された音声アクションに関する意図は、音声アクションに関連するアクションまたはアクティビティを音声アクションに関連するアプリケーションによって実行させるデータを含み得る。選択された意図は、ユーザデバイス104による意図の受信が要求として働き得るかまたは音声アクションに関連するアクションまたはアクティビティの実行をトリガし得るようにユーザデバイス104に送信され得る。代替的に、音声アクションセレクタ150は、選択された音声アクションをユーザデバイス104において実行させるアクショントリガデータとして働くその他のデータを決定し、情報をユーザデバイス104に送信してよい。たとえば、意図は、音声アクションを実行するためにユーザデバイス104によって実行されるアクションまたはアクティビティを特定するだけであり、音声アクションセレクタ150が、音声アクションに関連するアクションまたはアクティビティを実行するようにユーザデバイス104上のアプリケーションを制御し得るアクショントリガデータを決定してよい。決定されたアクショントリガデータは、アクショントリガデータが音声アクションに関連するアクションまたはアクティビティを実行させるようにユーザデバイス104に送信され得る。
【0039】
たとえば、1組の候補音声アクションの中から「先へスキップ」音声アクションを選択した後、音声アクションセレクタ150は、「先へスキップ」音声アクションに関する意図をユーザデバイス104に送信するか、またはメディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップするようにユーザデバイス104上で実行されるメディアプレイヤーアプリケーションを制御するためのその他の情報を取得する。音声アクションセレクタ150は、歌を所定の時間量だけ先へスキップするようにメディアプレイヤーアプリケーションを制御するためのデータをユーザデバイス104に送信し、そして今度は、ユーザデバイス104が、ユーザデバイス104上で実行されるメディアプレイヤーアプリケーションが歌を所定の時間量だけ先へスキップするための、たとえば、デビッド・ボウイの歌「フェイム」を所定の時間量だけ先へスキップするためのプロセスを開始する。
【0040】
簡潔に言えば、検討されるように、
図1Aのシステムは、1人または複数のアプリケーション開発者101a〜101nに対応する1つまたは複数の端末102a〜102nを含む。端末102a〜102nは、たとえば、1つまたは複数の有線またはワイヤレスネットワークを介して音声アクションシステム100とそれぞれ通信し得る。端末102a〜102nの各々は、セルラ電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、ネットブックコンピュータ、もしくはその他のモバイルコンピューティングデバイスなどのモバイルデバイスであり、またはデスクトップコンピュータもしくはその他の固定的なコンピュータなどの任意の固定的なコンピューティングデバイスであってよい。ユーザ105に関連するユーザデバイス104も、1つまたは複数の有線またはワイヤレスネットワークを介して音声アクションシステム100と通信し得る、ユーザデバイス104も、セルラ電話、スマートフォン、タブレットコンピュータ、ネットブック、携帯情報端末、ラップトップコンピュータ、デスクトップコンピュータ、またはその他のコンピューティングデバイスなどのモバイルまたは固定的なコンピューティングデバイスであってよい。
【0041】
図1Aに示された例示的な音声アクションシステム100は、アプリケーション音声アクションデータベース110、オペレーティングシステム(OS)音声アクションデータベース120、音声認識エンジン130、コンテキスト分析エンジン140、および音声アクションセレクタ150を含む。アプリケーション音声アクションデータベース110、OS音声アクションデータベース120、音声認識エンジン130、コンテキスト分析エンジン140、および音声アクションセレクタ150を含む音声アクションシステム100の構成要素の各々は、電子的な通信のそのやりとりを可能にする1つまたは複数の有線またはワイヤレスデータ経路を介して音声アクションシステム100の1つまたは複数のその他の構成要素と通信し得る。一部の実装において、音声アクションシステム100の構成要素のうちの1つまたは複数は、それらの構成要素の機能が単一の構成要素によって実行されるように組み合わされてよく、またはそれらの構成要素の機能が2つ以上の構成要素に分散されるように2つ以上の構成要素によって代表されてよい。音声アクションシステム100の構成要素は、単一のサーバシステムなどの単一のコンピューティングデバイスに実装されてよく、または構成要素の間の電子的な通信のやりとりを可能にする1つもしくは複数の有線もしくはワイヤレスデータ経路を介して通信する複数のコンピューティングデバイスに実装されてよい。
【0042】
図1Bは、アプリケーション開発者が音声アクションに関する発見可能性の例を確立し、適切な発見可能性の例をユーザに提供することを可能にする音声アクションシステム100を示す。アプリケーション開発者によって送られる発見可能性の例は、特定のアプリケーションに関してアプリケーション開発者によって確立された新しい音声アクションに関することがあり、新しい音声アクションをトリガする方法をユーザに知らせるために、アプリケーションがインストールされているユーザデバイスにおいて提示され得る。
【0043】
図1Bに示されるように、音声アクションシステム100は、アプリケーション開発者101a〜101nによって送られた発見可能性の例を指定するデータを端末102a〜102n受信する。アプリケーション開発者101a〜101nによって音声アクションシステム100に送られたそれぞれの発見可能性の例は、特定のソフトウェアアプリケーションに関してアプリケーション開発者101a〜101nによって送られた新しい音声アクションに関し得る。アプリケーション開発者によって送られた発見可能性の例は、音声アクションシステム100の音声アクション発見可能性例データベース170に記憶され得る。
【0044】
たとえば、一部の実装において、アプリケーション開発者101a〜101nは、
図1Aに関連して説明されたように、新しい音声アクションを定義するために音声アクションシステム100に情報を送り得る。新しい音声アクションを定義する情報に加えて、アプリケーション開発者101a〜101nは、新しい音声アクションをトリガする方法をソフトウェアアプリケーションのユーザに知らせることができる1つまたは複数の発見可能性の例を指定する情報を送り得る。一部の実装において、新しい音声アクションに関する発見可能性の例を定義する情報は、発見可能性の例が関連する新しい音声アクションを指定するか、新しい音声アクションがユーザに利用され得るときのコンテキストを指定するか、新しい音声アクションをトリガするために使用される1つもしくは複数のトリガ用語を指定するか、またはその他の情報を含み得る。一部の実装において、アプリケーション開発者101a〜101nによって音声アクションシステム100に送られる発見可能性の例を指定する情報は、発見可能性の例の内容を含み得る。たとえば、音声アクションシステム100に送信される情報は、テキストの通知もしくはメッセージ、画像、動画、オーディオデータ、または音声アクションをトリガする方法をユーザに知らせるためにユーザに提供され得るその他の内容を含み得る。アプリケーション開発者101a〜101nは、同じ音声アクションに関する複数の発見可能性の例を定義する情報を提供してよく、異なる発見可能性の例は、異なるユーザに、異なるタイプのユーザデバイスに、または異なる状況下で提示するように意図され得る。
【0045】
例として、メディアプレイヤーアプリケーションのための「先へスキップ」音声アクションを開発するアプリケーション開発者101a〜101nが、「先へスキップ」音声アクションに関する発見可能性の例を定義する情報を端末102a〜102nを使用して送ってよい。「先へスキップ」音声アクションに関する発見可能性の例を定義するために、アプリケーション開発者101a〜101nは、「先へスキップ」音声アクションをトリガするために使用される1つまたは複数のトリガ用語を指定する情報と、「先へスキップ」音声アクションがユーザによってトリガされ得るときのコンテキストを指定する情報とを送ってよい。発見可能性の例を定義する送られる情報は、トリガ用語「先へスキップ」と、メディアプレイヤーアプリケーションがユーザデバイスのフォアグラウンドで動作しており、オーディオプレイヤーモードで動作しているときに音声アクションが実行され得ることを指定するコンテキストとを指定し得る。追加的なまたは異なる情報も、発見可能性の例を確立するためにアプリケーション開発者101a〜101nによって送られ得る。たとえば、アプリケーション開発者101a〜101nは、ユーザに提示されるメッセージ「『先へスキップ』と言ってみて」などの発見可能性の例の内容を指定する情報を送ってよい。その他の例において、アプリケーション開発者101a〜101nは、新しい音声アクションが音声アクションシステム100によって生成されるために、発見可能性の例に関するその音声アクション指定する情報を提供することのみを必要としてよい。一部の実装において、アプリケーション開発者101a〜101nは、「先へスキップ」音声アクションに関する複数の発見可能性の例を定義する情報を送ってよい。たとえば、アプリケーション開発者101a〜101nは、メッセージ「『先へスキップ』と言ってみて」などの「先へスキップ」音声アクションに関するテキストの発見可能性の例に関する情報と、「『先へスキップ』といってみて」と言う声の録音などの「先へスキップ」音声アクションに関するオーディオの発見可能性の例に関する情報とを送ってよい。
【0046】
その他の実装において、音声アクションシステム100は、アプリケーション開発者101a〜101nが提案された発見可能性の例の中から選択しさえすればよいようにアプリケーション開発者101a〜101nに発見可能性の例を提案し得る。たとえば、アプリケーション開発者101a〜101nがアプリケーションのための新しい音声アクションを確立するとき、音声アクションシステム100は、新しい音声アクションに関する1つまたは複数の候補の発見可能性の例を生成するように構成され得る。音声アクションシステム100は、アプリケーション開発者101a〜101nが新しい音声アクションに関して確立する1つまたは複数の発見可能性の例を選択することを可能にする情報をアプリケーション開発者101a〜101nの端末102a〜102nに提供する。そして、アプリケーション開発者101a〜101nの選択を示すデータが、端末102a〜102nによって音声アクションシステム100に提供され得る。
【0047】
たとえば、アプリケーション開発者101a〜101nが
図1Aに関連して説明されたように「先へスキップ」音声アクションを定義する情報を送るとき、音声アクションシステム100は、「先へスキップ」音声アクションに関する1つまたは複数の候補の発見可能性の例を生成してよい。候補の発見可能性の例は、たとえば、テキストメッセージ「『先へスキップ』と言ってみて」、テキストメッセージ「30秒早送りするには『先へスキップ』と言って」、および「『先へスキップ』と言ってみて」と言う声の録音を含み得る。音声アクションシステム100は、アプリケーション開発者101a〜101nの端末102a〜102nに候補の発見可能性の例を提供し、アプリケーション開発者101a〜101nは、候補の発見可能性の例のうちの1つまたは複数を選択するための入力を端末102a〜102nに提供し得る。選択を示すデータが、音声アクションシステム100に提供され得る。
【0048】
音声アクションシステム100は、アプリケーション開発者101a〜101nの端末102a〜102nから発見可能性の例を指定するまたは選択する情報を受信することができ、受信された情報に基づいて発見可能性の例に関するデータを生成することができる。たとえば、音声アクションシステム100は、発見可能性の例を指定する情報を受信し、特定のデータタイプまたはフォーマットで発見可能性の例を生成するために受信されたデータを受け入れてよい。音声アクションシステム100が選択のためにアプリケーション開発者101a〜101nに発見可能性の例を提案する一部の実装において、音声アクションシステムは、アプリケーション開発者101a〜101nに提案を与える前に発見可能性の例を特定のデータタイプまたはフォーマットで生成し得る。そのような実装においては、特定の提案された発見可能性の例のユーザの選択を受信すると、音声アクションシステム100が、音声アクションシステム100が生成した選択されなかった発見可能性の例を破棄することができ、選択された発見可能性の例を記憶するために保持し得る。代替的に、音声アクションシステム100は、提案の発見可能性の例に対応する発見可能性の例を生成することなくアプリケーション開発者101a〜101nに発見可能性の例を提供し得る。したがって、アプリケーション開発者101a〜101nに提供される提案は、潜在的な発見可能性の例の表現であってよい。特定の提案された発見可能性の例の選択を受信すると、音声アクションシステム100は、発見可能性の例を特定のデータタイプまたはフォーマットで生成し得る。
【0049】
発見可能性の例を指定する情報を受け入れることは、新しい音声アクションを定義する情報の受け入れが新しい音声アクションをトリガする意図の生成をもたらすのと同様にしてユーザデバイスにおける発見可能性の例の提示に必要であってよい特定のデータタイプまたはフォーマットで発見可能性の例を生成する。たとえば、新しい音声アクションをトリガするために使用されるトリガ用語と新しい音声アクションがトリガされ得るときのコンテキストとだけを指定する情報をアプリケーション開発者101a〜101nが送るとき、音声アクションシステム100は、ユーザに提示されるテキストメッセージの生成およびフォーマットなどの発見可能性の例の提示のために必要な情報、特定の発見可能性の例と互換性があるデバイスを示す情報、またはユーザデバイスにおける発見可能性の例の提示に必要とされるその他の情報を指定する特定のデータタイプまたはフォーマットのアイテムを生成するために情報を受け入れてよい。
【0050】
受け入れられた発見可能性の例は、音声アクション発見可能性例データベース170に記憶され得る。たとえば、音声アクション発見可能性例データベース170は、1つまたは複数の異なるアプリケーション、オペレーティングシステム、またはデバイスに関連して実行され得る1つまたは複数の異なる音声アクションに関する発見可能性の例を含み、受け入れられた発見可能性の例は、音声アクション発見可能性例データベース170に記憶され得る。音声アクション発見可能性例データベース170は、音声アクションシステム100に含まれ、または1つもしくは複数の有線もしくはワイヤレスデータ経路を介して音声アクションシステム100によってアクセスされ得る。
【0051】
図1Bに示されるように、音声アクションシステム100は、ユーザデバイス104から受信された発見可能性の例の要求を処理することもでき、1つまたは複数の発見可能性の例をユーザ105に提示させる情報をユーザデバイス104に提供することによって要求に応答することもできる。たとえば、新しい音声アクションに関する発見可能性の例が音声アクション発見可能性例データベース170に記憶された後、音声アクションシステム100は、ユーザデバイス104から受信された発見可能性の例の要求を検出し、それに応答して、ユーザデバイス104に提供する発見可能性の例を特定し得る。
【0052】
図に1Bに示されるように、一例において、ユーザ105は、音声入力「どの音声コマンドを言える?」をユーザデバイス104に与えることによって発見可能性の例を要求してよい。ユーザデバイス104は、1つまたは複数の有線またはワイヤレスデータ経路を介した音声アクションシステム100への接続を有し、したがって、音声入力に対応するオーディオデータを音声アクションシステム100に送信し、その音声入力は、音声認識エンジン130によって受信される。音声認識エンジン130は、受信されたオーディオデータに基づいて音声入力の書き起こしを生成し得る。たとえば、ユーザ105の音声入力に対応するオーディオデータを受信すると、音声認識エンジン130は、書き起こし「どの音声コマンドを言える?」を生成し、音声アクションシステム100の発見可能性例セレクタ160に書き起こしを提供し得る。
【0053】
発見可能性の例の要求は、その他の方法でも音声アクションシステム100に与えられ得る。たとえば、ユーザデバイス104は、たとえば、ユーザがユーザデバイス104において特定のキーまたは記号を押すことによって助けを要求するかまたは発見可能性の例を要求する入力を与えることに応答して音声アクションシステム100からの発見可能性の例を要求し得る。ユーザデバイス104は、明示的なユーザ入力を必要とせずに音声アクションシステム100からの発見可能性の例を要求することもある。たとえば、ユーザデバイス104は、新しいアプリケーションがユーザデバイス104において起動されるかもしくは再開される(たとえば、ユーザデバイス104のフォアグラウンドに出される)と判定するか、またはアプリケーションもしくはユーザデバイス104のステータスが変わったと判定するか、またはユーザデバイスにおいて表示される内容が変わったと判定し、判定に応じて、音声アクションシステム100からの発見可能性の例を要求してよい。
【0054】
発見可能性の例を要求するために、たとえば、ユーザ105の音声入力に応答して、ユーザデバイス104は、ユーザデバイス104およびユーザデバイス104上で動作するアプリケーションのコンテキストを決定することもある。ユーザデバイス104は、音声アクションシステム100にコンテキストの情報を送信し、そのコンテキストの情報は、コンテキスト分析エンジン140によって受信され得る。コンテキスト分析エンジン140は、発見可能性の例を特定することに関連するコンテキストを決定するために受信されたコンテキスト情報を処理し得る。
【0055】
たとえば、
図1Aに関連して検討されたように、コンテキスト分析エンジン140は、ユーザデバイス104から様々なコンテキスト情報を受信し、ユーザデバイス104のユーザ105に提示されるべき発見可能性の例を特定することに関するコンテキスト情報のサブセットを決定し得る。たとえば、コンテキスト分析エンジン140は、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで動作していること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードで動作していること、およびユーザデバイス104のバッテリ寿命が50%であることを示すコンテキストの情報をユーザデバイス104から受信し得る。コンテキスト分析エンジン140は、バッテリ寿命情報がユーザ105に提示する発見可能性の例を決定することと無関係であると判定し、したがって、メディアプレイヤーアプリケーションがユーザデバイス140のフォアグラウンドで動作しており、オーディオプレイヤーモードで動作していることを示すコンテキスト情報のみを発見可能性例セレクタ160に提供し得る。
【0056】
発見可能性例セレクタ160は、音声認識エンジン130からユーザ104の音声入力の書き起こしを受信し、コンテキスト分析エンジン140から関連するコンテキストを受信し、受信された情報に基づいて、ユーザ105に出力するためにユーザデバイス104に提供する1つまたは複数の発見可能性の例を特定し得る。たとえば、発見可能性例セレクタ160は、書き起こしに基づいて、ユーザ105の音声入力が発見可能性の要求であったと判定し得る。
【0057】
音声入力が発見可能性の例の要求であったと判定することに基づいて、発見可能性例セレクタ160は、コンテキスト分析エンジン140から受信されたコンテキストを満たすコンテキストに関連する発見可能性の例を特定するために音声アクション発見可能性例データベース170にアクセスし得る。たとえば、発見可能性例セレクタ160は、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで動作しており、メディアプレイヤーアプリケーションがオーディオプレイヤーモードで動作していることを示すコンテキスト情報を受信し、したがって、デバイスのフォアグラウンドで動作しており、オーディオプレイヤーモードであるメディアプレイヤーアプリケーションを含むコンテキストをやはり指定する、音声アクション発見可能性例データベース170に記憶された発見可能性の例を特定し得る。発見可能性の例を特定するために、発見可能性例セレクタ160は、コンテキスト分析エンジン140から受信されたコンテキストを音声アクション発見可能性例データベース170に含まれる発見可能性の例の各々と比較し、または受信されたコンテキストを音声アクション発見可能性例データベース170に記憶された発見可能性の例のサブセットと比較し得る。比較に基づいて、発見可能性例セレクタ160は、ユーザ105に提示するためにユーザデバイス104に提供する1つまたは複数の発見可能性の例を特定し得る。
【0058】
図1Bに示された例において、発見可能性例セレクタ160は、「先へスキップ」音声アクションに関してアプリケーション開発者101a〜101nによって確立された発見可能性の例によって指定されたコンテキストがコンテキスト分析エンジン140から受信されたコンテキストと一致すると判定し得る。この判定に応じて、発見可能性例セレクタ160は、「先へスキップ」に関する発見可能性の例を出力させる情報をユーザデバイス104に送信し得る。たとえば、発見可能性例セレクタ160は、「先へスキップ」音声アクションに関する受け入れられた発見可能性の例を特定のデータタイプまたはフォーマットでユーザデバイス104に送信し、受け入れられた情報を受信すると、ユーザデバイス104は、出力するために「先へスキップ」音声アクションに関する発見可能性の例を提供し得る。たとえば、ユーザデバイス104は、「先へスキップ」音声アクションに関する発見可能性の例に対応する受け入れられた情報を受信し、受信された情報は、「『先へスキップ』と言ってみて」と述べるテキストの通知を表示するようにユーザデバイス104を制御し得る。ユーザ105への「『先へスキップ』と言ってみて」の発見可能性の例の提示は、「先へスキップ」音声アクションがユーザデバイス104およびユーザデバイス104上で実行されるアプリケーションの現在のステータスのために利用可能な音声アクションであることをユーザに知らせることができる。したがって、ユーザ105は、その後、音声入力「先へスキップ」を与え、音声入力は、メディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップするために、
図1Aに関連して検討されたように処理され得る。
【0059】
一部の実装において、発見可能性例セレクタ160は、ユーザデバイス104において提示するために複数の発見可能性の例を選択し、選択された複数の発見可能性の例に対応する情報をユーザデバイス104に送信し得る。たとえば、発見可能性例セレクタ160は、コンテキスト分析エンジン140から受信されたコンテキストが、「先へスキップ」音声アクションに関する発見可能性の例、ならびにメディアプレイヤーアプリケーションを制御するための「一時停止」音声アクションおよびユーザデバイス104をホーム画面に戻すユーザデバイス104の動作に関連する「ホーム」音声アクションに関する発見可能性によって指定されたコンテキストを満たすと判定し得る。発見可能性例セレクタ160は、発見可能性の例の3つすべてがユーザ105に提示されるかまたは提示されるために利用され得るように発見可能性の例の各々に関するデータをユーザデバイス104に提供し得る。
【0060】
図1Cは、アプリケーション開発者が音声アクションに関する発見可能性の例を確立することを可能にし、発見可能性の例がユーザに提供されるための音声アクションシステム100を示す。以下で検討されるように、
図1Cのシステムは、
図1Bに関連して検討された同じ動作の多くを実行する。しかし、
図1Cにおいて、これらの動作の多くは、音声アクションシステム100におけるのと対照的にユーザデバイス104において実行される。
図1Bの音声アクションシステム100によって実行される構成要素および動作の一部をユーザデバイス104にまかせることによって、たとえユーザデバイス104がオフラインであるとしても、発見可能性の例がユーザ105に提供され得る。また、この実装は、発見可能性の例がユーザデバイス104において出力されるべきである度に音声アクションシステム100に連絡するユーザデバイス104の必要を減らし、それによって、ユーザデバイス104によって使用されるネットワーク帯域幅を減らす。ネットワークにアクセスすることなく発見可能性の例を提供する能力は、発見可能性の例を提供することによって引き起こされる電力消費を削減し、ユーザへの発見可能性の例のより迅速な提供を可能にする。
【0061】
図1Cに示されるように、アプリケーション開発者101a〜101nは、
図1Bと同様に端末102a〜102nを使用して音声アクションシステム100に新しい音声アクションに関する発見可能性の例を指定する情報をそれぞれ送ってよい。それぞれの送られる発見可能性の例を指定する情報は、特定のソフトウェアアプリケーションのための音声アクションに対応し得る。音声アクションに対応する新しい発見可能性の例に関する音声アクションシステム100に送られる情報は、たとえば、音声アクションをトリガするために使用される1つもしくは複数のトリガ用語を指定する情報、音声アクションに関して指定されたコンテキスト、発見可能性の例が出力されるときにユーザに提示される通知の内容、またはその他の情報を含み得る。代替的に、音声アクションシステム100は、新しい音声アクションを確立するための情報をアプリケーション開発者101a〜101nから受信し、音声アクションシステム100は、候補の発見可能性の例を生成し、アプリケーション開発者101a〜101nは、それらの候補の発見可能性の例から選択することができる。そのような実装において、音声アクションシステム100は、アプリケーション開発者101a〜101nにそれらの対応する端末102a〜102nにおいて候補の発見可能性の例を提示し、候補の発見可能性の例のうちの1つまたは複数の選択を示す情報を受信し得る。
【0062】
受信された情報に基づいて、音声アクションシステム100は、発見可能性の例を生成し、音声アクション発見可能性例データベース170に記憶する。音声アクション発見可能性例データベース170は、1つまたは複数の異なるアプリケーション、オペレーティングシステム、またはデバイスを制御するための音声アクションに対応する発見可能性の例を含み得る。
【0063】
図1Cに示されるように、音声アクション発見可能性例データベース170に記憶される適切な発見可能性の例が、ユーザデバイスに提供され、それらの発見可能性の例は、各デバイスに一意であるアプリケーションメタデータバックエンドに記憶される。たとえば、ユーザデバイス104は、ユーザデバイス104およびユーザデバイス104にインストールされたアプリケーションまたはオペレーティングシステムに関する発見可能性の例を記憶するように構成されるアプリケーションメタデータバックエンド180を含み得る。ユーザデバイス104は、ユーザデバイス104、ユーザデバイス104にインストールされたアプリケーション、および/またはユーザデバイス104のオペレーティングシステムに関する発見可能性の例を特定するために1つまたは複数の有線またはワイヤレスデータ経路を介して音声アクションシステム100と定期的に通信し得る。ユーザデバイス104、ユーザデバイス104にインストールされたアプリケーション、および/またはユーザデバイス104のオペレーティングシステムに関連すると特定された発見可能性の例は、音声アクション発見可能性データベース170から取り出され、ユーザデバイス104のアプリケーションメタデータバックエンド180に記憶され得る。
【0064】
たとえば、一部の実装において、ユーザデバイス104は、ユーザデバイス104、ユーザデバイス104にインストールされたアプリケーション、および/またはユーザデバイス104のオペレーティングシステムに関連すると特定される音声アクション発見可能性例データベース170に記憶された発見可能性の例を受信するように構成されるアプリケーションインターフェース190を備え得る。アプリケーションインターフェース190は、音声アクション発見可能性例データベース170から特定された発見可能性の例を取得し、特定された発見可能性の例をアプリケーションメタデータバックエンド180に記憶し得る。音声アクションシステム100は、ユーザデバイス104またはユーザデバイス104にインストールされたソフトウェアに関連する発見可能性の例を自動的に特定し、関連する発見可能性の例をユーザデバイス104に提供するように構成され得る。たとえば、音声アクションシステム100は、発見可能性の例が更新されることを要求するユーザ入力に応答して、ユーザデバイス104のステータスが変わったと判定することに応じて、異なるアプリケーションもしくはアプリケーションの異なるバージョンがユーザデバイス104にインストールされていると判定することに応じて、異なるオペレーティングシステムもしくはオペレーティングシステムの異なるバージョンがユーザデバイス104上で動作していると判定することに応じて、またはその他のイベントに応じて、アプリケーションメタデータバックエンド180に記憶するためにユーザデバイス104に関連する発見可能性の例を周期的に提供し得る。
【0065】
ユーザデバイス104に発見可能性の例を記憶することに加えて、
図1Cのシステムは、ユーザ105に発見可能性の例を提示するための
図1Bに関連して検討された構成要素をユーザデバイス104にやはり含む。たとえば、
図1Cに示されるユーザデバイス104は、
図1Aおよび
図1Bのコンテキスト分析エンジンと同様のコンテキスト分析エンジン140と、
図1Bの発見可能性例セレクタ160と同様の発見可能性例セレクタ160とを含む。加えて、ユーザデバイス104は、
図1Bの音声認識エンジン130と同様にして音声入力の書き起こしを生成することができる。
【0066】
ユーザデバイス104のアプリケーションインターフェース190またはその他の構成要素は、発見可能性の例がユーザデバイス104において出力するために提供されるべきであるときを決定し得る。たとえば、ユーザデバイス104のユーザ105が、「どの音声コマンドを使える?」と述べる音声入力を与え、ユーザデバイス104が、音声入力の書き起こしを生成し得る。アプリケーションインターフェース190は、音声入力の書き起こしを受信し、音声入力が発見可能性の例の要求であると判定し得る。代替的に、アプリケーション開発者190は、ユーザデバイス104において出力するために発見可能性の例を提供するとそれ以外の方法で決定し得る。たとえば、アプリケーションインターフェース190は、ユーザデバイス104またはユーザデバイス104上で動作するアプリケーションもしくはオペレーティングシステムの現在のステータスに関する発見可能性の例を要求する、ユーザデバイス104のボタンの長押しの特徴などのその他の入力をユーザ105がユーザデバイス104に与えたと判定し得る。アプリケーションインターフェース190は、ユーザデバイス104、ユーザデバイス104にインストールされたアプリケーション、またはユーザデバイス104のオペレーティングシステムのステータスが変わったという判定に基づいて発見可能性の例を提供すると決定し得る。一部の例において、発見可能性の例は、ユーザ105の前の音声入力が音声アクションに関するいかなる知られているトリガ用語とも一致しないと判定することに応じて、使用され得るトリガ用語をユーザ105に知らせるためにユーザデバイス104において提供されし得る。
【0067】
アプリケーションインターフェース190によって実行されると上で説明されたが、一部の実装においては、ユーザデバイス104の別の構成要素が、発見可能性の例がユーザデバイス104において出力するために提供されるべきであると決定し得る。たとえば、
図1Cに示されるように、音声入力「どの音声コマンドを言える?」の書き起こしが、発見可能性セレクタ160に提供され、書き起こしに基づいて、発見可能性例セレクタ160が、発見可能性の例がユーザデバイス104において出力するために提供されるべきであると判定し得る。同様に、発見可能性例セレクタ160は、ユーザデバイス104におけるその他のユーザ入力を示す情報などのその他の情報に基づいて、あるいはユーザデバイス104、ユーザデバイス104にインストールされたおよび/もしくはユーザデバイス104上で実行されるアプリケーション、ならびに/またはユーザデバイス104のオペレーティングシステムのステータスの変化があったことを検出することに基づいて、ユーザデバイス104において発見可能性の例を提示することを決定し得る。
【0068】
アプリケーションインターフェース190がユーザデバイス104において出力するために発見可能性の例を提供すると決定するとき、アプリケーションインターフェースは、ユーザデバイス104、ユーザデバイス104にインストールされたおよび/もしくはユーザデバイス104上で実行される1つもしくは複数のアプリケーション、ならびに/またはユーザデバイス104のオペレーティングシステムのステータスを示すユーザデバイス104に関するコンテキストの情報を取得し得る。
図1Bに関連して検討された実装と同様に、コンテキストの情報を取得すると、アプリケーションインターフェース190は、コンテキストの情報が処理されるコンテキスト分析エンジン140にコンテキスト情報を提供し得る。
【0069】
コンテキスト分析エンジン140は、コンテキスト情報を取得し、情報を処理して、ユーザデバイス104において出力するために発見可能性の例を特定することに関連するコンテキストを特定し得る。たとえば、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで現在実行されていること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードであること、およびユーザデバイス104のバッテリ寿命が現在50%であることを示すコンテキストの情報をコンテキスト分析エンジン140がアプリケーションインターフェース190から受信する場合、コンテキスト分析エンジン140は、メディアプレイヤーアプリケーションがフォアグラウンドで実行されていることおよびメディアプレイヤーアプリケーションがオーディオプレイヤーモードであることを示すコンテキストの情報のみがユーザデバイス104において提示する発券可能性の例を選択することに関連すると判定し得る。したがって、コンテキスト分析エンジン140は、ユーザデバイス104にインストールされたメディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードであることを示し、ユーザデバイス104のバッテリ寿命を示さないコンテキストを発見可能性例セレクタ160に提供し得る。
【0070】
発見可能性例セレクタ160は、コンテキスト分析エンジン140からコンテキストを受信し、受信されたコンテキストを使用して、出力するために提供するアプリケーションメタデータバックエンド180に記憶された発見可能性の例を特定し得る。たとえば、
図1Bに関連して検討されたように、発見可能性例セレクタ160は、出力するために提供する1つまたは複数の発見可能性の例を特定するために、受信されたコンテキストをアプリケーションメタデータバックエンド180に記憶された発見可能性の例によって指定されたコンテキストと比較し得る。たとえば、発見可能性例セレクタ160は、コンテキスト分析エンジン140から受信されたコンテキストが「先へスキップ」音声アクションに関する発見可能性の例のコンテキストに一致すると判定することに基づいて「先へスキップ」音声アクションに関する発見可能性の例を特定し得る。一部の実装において、発見可能性例セレクタ160は、ユーザデバイス104において出力するために提供する複数の発見可能性の例を特定し得る。たとえば、発見可能性例セレクタ160は、「先へスキップ」音声アクション、メディアプレイヤーアプリケーションを制御するための「一時停止」音声アクション、およびホーム画面に戻るようにユーザデバイス104を制御する「ホーム」音声アクションに関する発見可能性の例を選択し得る。
【0071】
発見可能性例セレクタ160は、ユーザデバイス104において出力するために選択された発見可能性の例を提供し得る。たとえば、発見可能性例セレクタ160は、アプリケーションインターフェース190を介して出力するために選択された発見可能性の例を提供することができる。
図1Cに示されたように、たとえば、「先へスキップ」音声アクションに関する選択された発見可能性の例は、ユーザデバイス104において出力され、それによって、テキストの通知「『先へスキップ』と言ってみて」をユーザデバイス104のディスプレイに出力させる。
【0072】
図2は、音声アクションおよび音声アクションに関する発見可能性の例の確率を可能にするように構成される例示的な音声アクションシステム200を示す。簡潔に言えば、音声アクションシステム200は、確認基準215にアクセスすることができる確認エンジン210、発見可能性例受け入れエンジン220、および発見可能性の例を記憶するように構成される音声アクション発見可能性例データベース235を含む。音声アクションシステム200は、アプリケーション開発者201が端末202によって音声アクションおよびそれらの音声アクションに関する発見可能性の例を確立することを可能にするサービスまたはツールを提供するプラットフォームとして動作し得る。一部の実装において、アプリケーション開発者201は、2016年3月1日に出願した米国特許出願第15/057,453号において開示された方法に従って音声アクションを確立し、この特許出願は、その全体が参照により本明細書に組み込まれる。
【0073】
図2に示されるように、アプリケーション開発者201は、新しい音声アクションを定義する情報を音声アクションシステム200に送ってよい。一部の例において、音声アクションを定義する情報は、音声アクションに関する意図を生成するために音声アクションシステム200によって処理され得るフォーマットの文法として送られ得る。たとえば、アプリケーション開発者201は、新しい音声アクションがメディアプレイヤーアプリケーションのために確立されるべきであることを指定する情報を端末202において入力し得る。アプリケーション開発者201は、メディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップするようにメディアプレイヤーアプリケーションを制御するために新しい音声アクションがトリガフレーズ「先へスキップ」を使用することを指定し得る。アプリケーション開発者201は、メディアプレイヤーアプリケーションがユーザデバイスのフォアグラウンドで動作しているときおよびオーディオプレイヤーモードで動作しているときにのみ「先へスキップ」音声アクションがトリガされ得るだけであるような「先へスキップ」音声アクションに関するコンテキストをさらに指定し得る。アプリケーション開発者201によって送られる情報は、音声アクションシステム200によって処理され得る文法の形態であり、またはアプリケーション開発者201によって送られる情報は、音声アクションシステム200に送るための文法のフォーマットに変換され得る。
【0074】
新しい音声アクションを定義する情報は、1つまたは複数の優先またはワイヤレスデータ経路を介して端末202によって音声アクションシステム200に送られ得る。音声アクションシステム200は、アプリケーション開発者によって送られた新しい音声アクションを確認するように構成される確認エンジン210において新しい音声アクションを定義する情報を受信し得る。たとえば、確認エンジン210は、アプリケーション開発者201によって送られた新しい音声アクションを定義する文法を受信し得る。新しい音声アクションを確認するために、確認エンジン210は、新しい音声アクションを定義することに関連する1つまたは複数の規則を含み得る1つまたは複数の確認基準215にアクセスし得る。確認エンジン210は、アクセスされた確認基準215を考慮して新しい音声アクションを定義する情報を評価し得る。
【0075】
図2に示された例示的な「先へスキップ」音声アクションに関して、確認エンジン210は、指定されたアプリケーションのために新しい音声アクションが生成され得るように、メディアプレイヤーアプリケーションが既存のアプリケーションであるかどうかを判定し得る。確認エンジン210は、トリガフレーズが2つ以上の発話音節の長さでなければならないことを指定する規則にアクセスし、トリガフレーズ「先へスキップ」が2つ以上の発話音節の長さであると判定することに基づいてトリガフレーズ「先へスキップ」を確認し得る。確認規則は、メディアプレイヤーアプリケーションが実行し得る可能なアクションのリストを指定し、メディアプレイヤーアプリケーションがアプリケーションにおいて現在再生されている歌を所定の時間量だけ先へスキップすることができると判定することに基づいて、メディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップする指定されたアクションを確認し得る。確認エンジン210は、文法によって指定されたコンテキストを確認して、コンテキストが矛盾を含まないことを保証し得る。たとえば、確認エンジンは、新しい音声アクションが可能にされるためにアプリケーションがフォアグラウンドで動作しており、さらにバックグラウンドで動作していることを指定されたコンテキストが必要としないことを保証し、その理由は、それら2つの条件のうちの一方のみが満たされ得るからである。アプリケーション開発者201によって送られた新しい音声アクションが有効であり、新しい音声アクションに関する意図を生成するために受け入れられ得るかどうかを判定するために、新しい音声アクションを定義する情報にその他の確認基準215が適用され得る。
【0076】
その他の形態の確認が、確認エンジン210によって実行され得る。たとえば、確認エンジン210は、アプリケーション開発者201が指定されたアプリケーションのための新しい音声アクションを生成する権限を与えられているかどうかを判定し得るか、新しい音声アクションを生成するために必要とされる料金が支払われたかどうかを判定するか、またはそうでなければアプリケーション開発者201によって送られた文法が新しい音声アクションに関する意図の生成をもたらし得るかどうかを判定し得る。
【0077】
アプリケーション開発者201によって送られた新しい音声アクションを定義する文法またはその他の情報が有効であると判定することに基づいて、音声アクションシステム200は、
図1Aに関連して検討されたように、新しい音声アクションに関する意図を生成するために新しい音声アクションを定義する情報を受け入れ得る。生成された意図は、アプリケーション音声アクションデータベース110と同様の音声アクションデータベースに記憶され、それから、音声アクションは、自分のユーザデバイスにアプリケーションがインストールされているユーザに関してアプリケーションを有効化するためにアプリケーション開発者201によって展開され得る。たとえば、「先へスキップ」音声アクションを定義する文法またはその他の情報は、「先へスキップ」音声アクションに関する意図を生成するために音声アクションシステム200によって受け入れられ、「先へスキップ」音声アクションに関する意図は、アプリケーション音声アクションデータベースに記憶され得る。アプリケーション開発者201は、自分のユーザデバイスにメディアプレイヤーアプリケーションがインストールされているユーザに関して「先へスキップ」音声アクションを可能にするために「先へスキップ」音声アクションを展開し得る。
【0078】
図2に示されるように、新しい音声アクションに関する意図を生成することに加えて、音声アクションシステム200は、新しい音声アクションに関する1つまたは複数の候補の発見可能性の例を生成するために新しい音声アクションを定義する情報を受け入れてよい。たとえば、新しい音声アクションを定義する確認された情報は、発見可能性例受け入れエンジン220に送られ、発見可能性例受け入れエンジン220は、新しい音声アクションに関する1つまたは複数の候補の発見可能性の例を生成するために新しい音声アクションを定義する情報を受け入れ得る。
【0079】
一部の実装において、発見可能性例受け入れエンジン220は、1つまたは複数の候補の発見可能性の例を生成するために新しい音声アクションを定義する情報を受け入れ得る。候補の発見可能性の例は、ユーザデバイスに提供されるときに、ユーザデバイスにおいて出力されるように発見可能性の例によって指定された通知を提供するようにユーザデバイスを制御するか、またはユーザデバイスにおいて出力されるように発見可能性の例によって指定された通知をユーザデバイスが提供することを可能にし得るフォーマットであってよい。たとえば、音声アクションを定義するデータを受け入れることは、ユーザデバイスによって受信されるかまたはユーザデバイスにおいてトリガされるときに、ユーザデバイスにおいて関連する音声アクションをトリガするために使用され得るトリガ用語をデバイスのユーザに知らせるために出力するためのテキスト、画像、動画、オーディオ、またはその他の通知を提示するようにユーザデバイスを制御する特定のデータアイテムまたは特定のフォーマットのデータアイテムの生成をもたらし得る。
【0080】
一部の実装において、候補の意図を生成するために新しい音声アクションを定義するデータを受け入れることは、関連する音声アクションをトリガするためのトリガ用語を明示する1つまたは複数のテキストのフレーズ、発話されたオーディオのフレーズ、画像、または動画を生成することを含み得る。たとえば、発見可能性例受け入れエンジン220は、新しい音声アクションに関するトリガ用語を示すデータを受信し、1つまたは複数の候補の発見可能性の例に対応する1つまたは複数の候補フレーズを生成し得る。
図2に示された例において、発見可能性例受け入れエンジン220は、「『先へスキップ』と言ってみて」、「30秒早送りするには『先へスキップ』と言って」、「『OK、コンピュータ、先へスキップ』と言って」、または任意の数のその他の候補フレーズなどの候補フレーズを生成し得る。発見可能性例受け入れエンジン220は、候補フレーズの発話されたバージョン、新しい音声アクションに関連するトリガフレーズ「先へスキップ」を示す候補画像、またはトリガフレーズ「先へスキップ」を示す候補動画を候補の発見可能性の例に関する候補通知として生成し得る。
【0081】
一部の実装において、音声アクションに関するトリガフレーズは、1つまたは複数の列挙型などの1つまたは複数のプレースホルダーを含み、発見可能性例受け入れエンジン220は、プレースホルダーを含む通知に関連する候補の発見可能性の例を生成し得る。たとえば、音声コマンドは、トリガフレーズ「%CurrentSongをお気に入りに追加」に関連付けられ、「%CurrentSong」は、メディアプレイヤーアプリケーションにおいて現在再生されている歌を指すプレースホルダーである。発見可能性例受け入れエンジン220は、フレーズ「『%CurrentSongをお気に入りに追加』と言ってみて」を含む候補の発見可能性の例を生成し、プレースホルダーは、出力するために、フレーズが与えられるときにメディアプレイヤーアプリケーションにおいて現在再生されている歌の名前によって置き換えられ得る。
【0082】
一部の実装において、発見可能性例受け入れエンジン220によって生成される候補の発見可能性の例は、さらに、ユーザデバイス、ユーザデバイス上で実行されるアプリケーション、またはユーザデバイスのオペレーティングシステムのステータスが対応する音声アクションによって指定されたコンテキストと一致するときにのみ新しい音声アクションに関する発見可能性の例がユーザデバイスにおいて出力され得るように、新しい音声アクションがトリガされ得るときのコンテキストをそれぞれ指定する。このようにして、任意の特定の状況でユーザに提供される発見可能性の例は、そのときにトリガされ得る音声アクションに関する発見可能性の例に制限される。
【0083】
すでに検討されたように、音声アクションが可能にされるために、つまり、コンテキストがやはり満たされるまで音声アクションに関連するトリガフレーズによって音声アクションがトリガされないように満たされなければならない1つまたは複数の条件を指定する。アプリケーション開発者201は、1つまたは複数の異なる要件または条件を有するものとしてコンテキストを定義することができる。
【0084】
場合によっては、コンテキストは、ユーザデバイスの特定のステータスを必要とし、またはユーザデバイスが特定の属性を有することを必要としてよい。たとえば、コンテキストは、ユーザデバイスが電源をオンにされているかもしくはロックされているかどうか、またはユーザデバイスがカメラ、ジャイロスコープ、気圧計、もしくはその他の構成要素もしくは特徴を有するかどうかを指定してよい。したがって、たとえば、ユーザデバイスにインストールされたアプリケーションを使用して写真を撮る音声アクションは、ユーザデバイスから受信されたコンテキストの情報がユーザデバイスがカメラを持たないことを示す場合、可能にされないことがある。
【0085】
その他の例において、コンテキストは、特定のアプリケーションがユーザデバイスのフォアグラウンドまたはバックグラウンドで動作していることを必要としてよい。たとえば、
図2に示されるように、「先へスキップ」音声アクションは、メディアプレイヤーアプリケーションがユーザデバイス204のフォアグラウンドで動作しているときにのみ可能にされ、メディアプレイヤーアプリケーションが閉じられるかまたはユーザデバイス204のバックグラウンドで動作している場合は可能にされないことがある。その他の例において、音声アクションは、アプリケーションがバックグラウンドで動作しているときに音声アクションを可能にするコンテキストを用いて定義され得る。たとえば、ソーシャルネットワークアプリケーションは、別のユーザとつながる要求を受け付けるための関連する音声アクションを有し、ユーザは、たとえばソーシャルネットワークアプリケーションがユーザデバイスのバックグラウンドでのみ動作しているとしても別のユーザとつながる要求を受け付けるための音声アクションをトリガすることができる。
【0086】
コンテキストは、追加的にまたは代替的に、音声アクションが可能にされるために特定のアプリケーションが特定のモードで動作していることを必要としてよい。モードは、アプリケーションが実行している特定のアクティビティまたはタスクであってよい。たとえば、電子メールアプリケーションが、電子メール執筆モードであると判定され、メディアプレイヤーアプリケーションが、オーディオプレイヤーモードであり、またはカメラアプリケーションが、カメラモードもしくは写真アルバムビューワモードであってよい。ユーザデバイスは、モードのうちのどれで特定のアプリケーションが動作しているかを判定することができ、その情報を特定の音声アクションが可能にされるかどうかを判定するために使用されるコンテキスト情報に含め得る。
【0087】
加えて、場合によっては、コンテキストは、アプリケーションのモードが特定のステータスを有することを必要としてよい。たとえば、コンテキストは、メディアプレイヤーアプリケーションがムービープレイヤーモードであるときおよびムービープレイヤーモードのアプリケーションのステータスがアプリケーションがムービーを現在再生していることであるときにのみムービーを「一時停止する」音声アクションが可能にされ得ることを示し得る。場合によっては、ユーザデバイスは、特定のモードで動作するアプリケーションのステータスを判定することができないことがある。それらの場合、特定のモードのアプリケーションのステータスを示す情報を提供するようにアプリケーションを構成することが必要であることがある。したがって、特定のアプリケーションに関するコンテキスト内でそのような条件を指定することは、ユーザデバイスによって提供されるコンテキスト情報が必要とされるステータス情報を含むために、アプリケーション自体への修正を必要としてよい。
【0088】
一部の例において、音声アクションに関して指定されたコンテキストは、音声アクションを可能にするために、特定のオブジェクトまたはオブジェクトのタイプがユーザデバイスの画面上に表示されることを必要としてよい。たとえば、コンテキストは、「画像を保存」音声アクションが画像がユーザデバイスのディスプレイにおいて出力されている場合にのみ可能にされることを指定してよく、または「ハイライト」音声アクションがテキストがディスプレイ上で提示される場合にのみ利用可能であることを指定し得る。別の例において、「第1の項目を選択」するための音声アクションなどのリスト内の特定の項目を選択するための音声アクションは、数字「1」もしくは箇条書きの黒点がユーザデバイスのディスプレイ上に提示されていることをコンテキスト情報が示す場合またはディスプレイ上に提示されている項目のリストが存在する場合にのみ利用可能であってよい。場合によっては、ユーザデバイスは、所与の瞬間に、たとえば、アプリケーションがディスプレイを制御しているときに、そのユーザデバイスのディスプレイにおいてどの情報が提示されているかを判定することができないことがある。したがって、音声アクションが可能にされるために特定の情報または情報のタイプがディスプレイにおいて出力されなければならないことをコンテキストが指定する場合、その情報を提供するためにアプリケーションを修正することが必要であることがある。そのとき、ユーザデバイスは、特定の音声アクションが可能にされるべきであるかどうかを判定するために使用されるコンテキストの情報にユーザデバイスのディスプレイにおいて何が出力されているかを示す情報を含め得る。
【0089】
その他の場合、コンテキストは、通知または通知の特定のタイプがユーザデバイスにおいて出力されたことを必要としてよい。たとえば、新しい電子メールが受信されるときにユーザにポップアップ通知を提供する電子メールアプリケーションは、新しい電子メールの通知がアプリケーションによってユーザデバイスのディスプレイに出力されているときに可能にされる「電子メールを読む」ための関連する音声アクションを有し得る。したがって、コンテキスト情報は、通知がユーザデバイスのディスプレイに出力されているかどうか、および「電子メールを読む」音声アクションが可能にされるべきであるかを判定する際に情報が使用され得ることを示し得る。
【0090】
一部の例において、コンテキストは、音声アクションが可能にされるためにユーザデバイスが特定の地理的位置にあることを必要としてよい。ユーザデバイスは、セルラ電話の通信塔(cellular tower)の三角測量を使用して、特定の地理的位置に関連付けられるインターネット接続にアクセスすることに基づいて、全地球測位システム(GPS)テクノロジーを使用して、またはその他の手段を使用してそのユーザデバイスの地理的位置を決定することができる。ユーザデバイスは、コンテキスト情報にそのユーザデバイスの地理的位置を示す情報を含めてよく、音声アクションは、地理的位置がコンテキストのジオロケーションの要件を満たすことに基づいて可能にされる。例として、小売業者のアプリケーションのための音声アクションに関連するコンテキストは、小売業者のアプリケーションを有するユーザデバイスが小売業者の店舗のうちの1つのある範囲内にある場合にのみ特定の音声アクションが処理されるべきであると指定し得る。小売業者のアプリケーションのための音声アクションは、ユーザデバイスの地理的位置が小売業者の店舗のうちの1つのある範囲内にある地理的位置に対応することを示すユーザデバイスからのコンテキスト情報に基づいて可能にされる。
【0091】
アプリケーション開発者によって定義されるコンテキストは、コンテキストに関連する音声アクションが特定の時間、日付、月、季節の間、またはその他の時間の条件が満たされるときにのみ可能にされることも示し得る。たとえば、コンテキストは、ユーザデバイスからまたは別の情報ソースから受信されたコンテキスト情報が時間の条件を満たす場合にのみ特定の音声アクションが可能にされることを指定し得る。たとえば、銀行アプリケーションのための音声アクションは、音声アクションが送られる時間が6:00 AMと10:00 PMとの間であることをコンテキスト情報が示す場合にのみ音声アクションが可能にされるように、時間の条件を含むコンテキストに関連付けられ得る。
【0092】
コンテキストは、音声アクションがトリガされることを可能にするためのその他の要件を指定し得る。たとえば、音声アクションシステム200は、ユーザデバイス以外のソースからの情報にアクセスすることができ、または1つもしくは複数の情報ソースから取得される情報をユーザデバイスから受信することができる。その他のソースから受信された情報は、音声アクションを可能にするための必要とされるコンテキスト情報であってよい。そのような情報は、たとえば、天気の情報、ユーザに関する感情の情報、ニュースの情報、株式市場の情報、またはその他の情報を含み得る。たとえば音声アクションシステム200は、サーバシステムへの1つまたは複数の有線またはワイヤレスネットワーク接続、たとえば、インターネット接続またはその他のネットワーク接続を通じてその他の情報ソースにアクセスすることができる。音声アクションに関するコンテキストは、関連するユーザデバイスの位置に対応する地理的地域に関する天気の情報がその位置で雨が降っていることを示す場合にのみ音声アクションが可能にされることを指定し得る。コンテキストの条件が満たされるかどうかをチェックするために、音声アクションシステム200は、1つまたは複数のネットワーク接続を介してユーザデバイスの知られている位置に関する天気の情報にアクセスすることができる。
【0093】
一部の実装において、発見可能性例受け入れエンジン220は、異なるオペレーティングシステム、ユーザデバイスの異なるタイプ、またはアプリケーションの異なるバージョンに対応する候補の発見可能性の例の複数のバージョンを生成し得る。1つの特定のデータタイプまたはフォーマットがすべてのタイプのデバイス、オペレーティングシステム、またはアプリケーションのバージョンにおいて発見可能性の例を出力するために使用されないことがあるので、発見可能性例受け入れエンジン220は、発見可能性の例の複数のバージョンを生成し得る。したがって、発見可能性の例の正しいバージョンが、異なるユーザデバイスにおける発見可能性の例の適切な出力を保証するためにそれらのユーザデバイスに提供され得る。追加的にまたは代替的に、一部の実装において、発見可能性の例は、異なるユーザデバイス、オペレーティングシステム、またはアプリケーションのバージョンにおいて提供するために修正されてよい。たとえば、生成される発見可能性の例は、たとえば、特定のサイズ、解像度、カラーマップなどを使用する1つのフォーマットで画像の通知を含み、画像の通知は、ユーザデバイスの異なるタイプにおいて、異なるオペレーティングシステムにおいて、またはアプリケーションの異なるバージョン内で提示するために修正またはフォーマットされ得る。
【0094】
一部の実装において、候補の発見可能性の例は、選択のためにアプリケーション開発者201に提示され得る。たとえば、アプリケーション開発者201によって送られた新しい音声アクションに関する候補の発見可能性の例を生成すると、音声アクションシステム200は、アプリケーション開発者201が新しい音声アクションに関して実装したい特定の発見可能性の例をそれらのアプリケーション開発者201が選択することを可能にする情報をアプリケーション開発者201の端末202に提供し得る。
図2に示された例において、発見可能性例受け入れエンジン220は、候補フレーズ「『先へスキップ』と言ってみて」、「30秒早送りするには『先へスキップ』と言って」、および「『OK、コンピュータ、先へスキップ』と言って」を示す情報を端末202において提示し、アプリケーション開発者201は、候補フレーズのうちの1つまたは複数を選択し得る。たとえば、アプリケーション開発者は、候補フレーズ「『先へスキップ』と言ってみて」を選択し、「先へスキップ」音声アクションに関する発見可能性の例が、「『先へスキップ』と言ってみて」と述べる、ユーザに対して出力されるテキストの通知であってほしいことを示す。
【0095】
追加的にまたは代替的に、アプリケーション開発者201が、音声アクションに関する発見可能性の例を定義する情報を送ってよい。たとえば、
図1Bおよび
図1Cに関連して検討されたように、アプリケーション開発者201が、音声アクションに関する発見可能性の例を定義する情報を音声アクションシステム200に送ってよい。発見可能性の例を定義する送られる情報は、「先へスキップ」音声アクションを指定する情報のように、発見可能性の例が関連する音声アクションを指定し、「先へスキップ」音声アクションに関して指定されるコンテキストなどの、発見可能性の例がユーザデバイスにおいて出力するために利用可能であるべきであるときのコンテキストを指定し、音声アクションに関する発見可能性の例として提示されるトリガ用語を含む通知に関する内容を送り得る。
図2に示された例において、アプリケーション開発者201は、「先へスキップ」音声アクションを指定し、メディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードであるときにのみ「先へスキップ」音声アクションに関する発見可能性の例が出力に利用可能であるべきであるというコンテキストを指定する情報を音声アクションシステム201に送り、「『先へスキップ』と言ってみて」と言うオーディオクリップを音声アクションシステム200に送り得る。メディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップするための音声アクションが「先へスキップ」と述べる音声入力を与えることによってトリガされ得ることをデバイスのユーザに知らせるためにユーザデバイスにおいて出力するために提供され得るテキストのフレーズ、画像、動画、またはその他の内容などのその他の内容が、アプリケーション開発者201によって送られ得る。一部の例においては、発見可能性の例を指定するためにアプリケーション開発者からのより少ない、追加の、または異なる情報が必要とされてよい。たとえば、アプリケーション開発者201は、音声アクションと、発見可能性の例に関連する通知として出力される内容とを示す情報を送ることのみを要求されることがある。
【0096】
音声アクションシステム200は、アプリケーション開発者201によって選択された候補の発見可能性の例を示すデータを受信し、選択された候補の発見可能性の例を音声アクション発見可能性例データベース235に記憶し得る。音声アクションシステム200は、アプリケーション開発者201によって定義された1つまたは複数の発見可能性の例を定義するデータを受信し、データアイテムを適切な発見可能性の例のフォーマットで生成するために1つまたは複数の発見可能性の例を定義するデータを受け入れ、受け入れプロセスによって生成された発見可能性の例を音声アクション発見可能性例データベース235に記憶し得る。
【0097】
たとえば、テキストのフレーズ「『先へスキップ』と言ってみて」を含む発見可能性の例の選択を示すデータを受信することに基づいて、音声アクションシステムは、音声アクション発見可能性例データベース235に発見可能性の例を記憶し得る。
図2に示されるように、記憶された発見可能性の例は、「先へスキップ」音声アクション、音声アクションに関するトリガフレーズ「先へスキップ」、発見可能性の例がトリガされるときに出力するために提供される通知「『先へスキップ』と言ってみて」、およびメディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードであることを必要とする、発見可能性の例が出力に利用可能であるときのコンテキストを指定する「例Y」と名付けられた特定のデータアイテムまたは特定のフォーマットのデータであってよい。
【0098】
同様に、アプリケーション開発者201によって定義された発見可能性の例は、発見可能性の例に関する特定のフォーマットのデータのアイテムを生成するために受け入れられ得る。一部の例において、アプリケーション開発者201によって定義された発見可能性の例は、音声アクションが関連するアプリケーションの異なるバージョン、異なるデバイス、または異なるオペレーティングシステムに対応する発見可能性の例のバージョンなどの発見可能性の例の生成される1つまたは複数のバージョンに導かれる。発見可能性例受け入れエンジン220によって実行される受け入れプロセス中に生成された1つまたは複数の発見可能性の例が、提供され、音声アクション発見可能性例データベース235に記憶され得る。たとえば、アプリケーション開発者201によって定義され、発見可能性の例を生成するために受け入れられた発見可能性の例が、音声アクション発見可能性例データベース235に「例X」として記憶され得る。
【0099】
音声アクション発見可能性例データベース235は、1つまたは複数のアプリケーションに関する1つまたは複数の音声アクションに対応する複数の発見可能性の例を記憶し得る。たとえば、音声アクション発見可能性例データベース235は、複数の異なるアプリケーション、デバイス、またはオペレーティングシステムに関して開発された複数の異なる音声アクションの各々に関する複数の発見可能性の例を含み得る。音声アクション発見可能性例データベース235は、ルックアップテーブルなどの構造化されたテーブル、連結リスト、ノードおよびノードの間のエッジを含むグラフであり、または発見可能性の例がユーザデバイス、オペレーティングシステム、もしくはアプリケーションの適切なステータスに関して後で特定され、提供され得るように発見可能性の例を記憶することができる任意のその他のデータ構造であってよい。場合によっては、音声アクション発見可能性例データベース235内のそれぞれの発見可能性の例が、発見可能性の例が関連するアプリケーション、発見可能性の例が互換性のあるアプリケーションのバージョン、発見可能性の例が互換性のある1つのデバイスもしくは複数のデバイス、発見可能性の例が互換性のある1つのオペレーティングシステムもしくは複数のオペレーティングシステムを指定する情報、または特定の発見可能性の例を選択することに関するその他の情報に関連付けられ、したがって、適切な発見可能性の例が、そのような情報に関して発見可能性の例自体に含まれるデータを解析する必要なしに音声アクション発見可能性例データベース235内で特定され得る。そのような構成は、出力のために提供する適切な発見可能性の例のより高速な特定を可能にし得る。
【0100】
音声アクション発見可能性例データベース235に記憶された発見可能性の例は、発見可能性の例を出力するようにユーザデバイスを制御するかまたはユーザデバイスが発見可能性の例を出力することを可能にするためにユーザデバイスに提供され得る。たとえば、
図1Bの実装において、音声アクション発見可能性例データベース235に記憶された1つまたは複数の発見可能性の例は、ユーザデバイスから発見可能性の例の要求を受信することに応じて、出力するためにユーザデバイスに提供され得る。あるいは、
図1Cの実装に示されたように、音声アクション発見可能性例データベース235内の発見可能性の例のうちの1つまたは複数は、それらが後でユーザデバイスにおいて出力するためにトリガされ得るように、ユーザデバイスに提供され、ユーザデバイスに記憶され得る。
【0101】
一部の実装においては、発見可能性の例がユーザデバイスにおいて出力するために提供され得るようになる前に、アプリケーション開発者201が、新しい発見可能性の例を試験することができ、発見可能性の例の承認後に、発見可能性の例がユーザデバイスにおいて出力するために提供されることを可能にするために発見可能性の例を展開し得る。たとえば、アプリケーション開発者201は、発見可能性の例の通知がユーザデバイスのディスプレイにおいてどのように見えるのかまたはユーザデバイスによって再生されるときにどのように音が鳴るのかなどの、発見可能性の例がユーザデバイスにおいて出力するためにどのように提供されるのかの例をアプリケーション開発者201が示され得る試験を端末202において実行する試験を行うことができる。一部の実装において、アプリケーション開発者201は、異なるユーザデバイスにおいて提示されるときに発見可能性の例がどのように見えるのかまたはどのように音が鳴るのかを判定するために発見可能性の例が試験され得る、端末202とは別の1つまたは複数のその他のユーザデバイスを指示し得る。アプリケーション開発者201が発見可能性の例を承認する場合、アプリケーション開発者201は、発見可能性の例を展開するために端末202において入力を与え、それによって、発見可能性の例がユーザデバイスにおいて出力されることを可能にする。加えて、一部の実装において、アプリケーション開発者201は、発見可能性の例がユーザデバイスにおいて出力するためにもはや提供され得ないように、発見可能性の例の展開を撤回することができる。
【0102】
図3は、音声アクションをトリガし得るトリガフレーズをユーザデバイス304のユーザ305に知らせるためにユーザデバイス304において発見可能性の例を提示するように構成される音声アクションシステム300を示す。一部の実装において、音声アクションシステム300は、別のシステムと通信することなくユーザデバイス304がユーザ305に出力するために発見可能性の例を提供し得るようにユーザデバイス304に含まれ得る。その他の例において、音声アクションシステム300は、ユーザデバイス304と別であり、ユーザデバイス304は、出力するために発見可能性の例を提供するときに1つまたは複数の有線またはワイヤレスデータ経路を介して音声アクションシステム300と通信し得る。
【0103】
簡潔に言えば、音声アクションシステム300は、
図1Aおよび
図1Bの音声認識エンジン130と同様の音声認識エンジン330、
図1Aから
図1Cのコンテキスト分析エンジン140と同様のコンテキスト分析エンジン340、マッチャ350、曖昧性除去エンジン360、およびフォーマットエンジン380を含み得る。マッチャ350は、ユーザデバイス304において出力するために提供され得る1つまたは複数の発見可能性の例を含むアプリケーションメタデータバックエンド310にアクセスすることができる。曖昧性除去エンジン360は、ユーザデバイス304において実行された過去の動作を示す情報を含むユーザアクティビティ履歴370にアクセスすることができる。加えて、フォーマットエンジン380は、ユーザデバイス304において出力するための発見可能性の例のフォーマットに関連する情報を示すユーザデバイス情報390にアクセスすることができる。一部の実装においては、音声アクションシステム300がユーザデバイス104に含まれるときなどに、音声アクションシステム300は、
図1Cのアプリケーションインターフェース190と同様のアプリケーションインターフェース(図示せず)を含み得る。
【0104】
発見可能性の例は、ユーザ305が発見可能性の例を要求したと判定することに応じて、または出力するために発見可能性の例を提供することに関連する条件が満たされたと判定することに応じて、ユーザデバイス304において出力するために提供され得る。たとえば、
図3に示されるように、ユーザ305は、音声入力「どの音声コマンドを言える?」をユーザデバイス304に与え得る。音声入力に対応するオーディオデータが、音声認識エンジン330に提供され、書き起こし「どの音声コマンドを言える?」が、オーディオデータに基づいて生成され得る。書き起こし「どの音声コマンドを言える?」は、たとえば、音声アクションシステム300のマッチャ350によって発見可能性の例の要求として解釈され得る。
【0105】
その他の場合、異なる音声入力、「ヘルプ」ボタンの選択、ユーザデバイス304のコントロールの長押し入力、またはその他のユーザ入力などの異なるユーザ入力が、ユーザデバイス304において出力するために発見可能性の例を提供すると音声アクションシステムが決定する結果をもたらすことがある。さらにその他の場合、ユーザデバイス304、ユーザデバイス304上で動作するアプリケーション、またはユーザデバイス304のオペレーティングシステムのステータスが変わったことを示す情報などのその他の情報が、音声アクションシステム300に発見可能性の例を提供すると決定させる。一部の例において、発見可能性の例は、ユーザ305がいずれかの特定の音声アクションのトリガフレーズに一致しない音声入力をユーザデバイス304に与えたと判定することに基づいてユーザデバイス304において出力するために提供され得る。そのような例において、ユーザ305に提供される発見可能性の例は、発見可能性の例がユーザデバイス304において実行することをユーザ305が意図したアクションに対応し得ると判定することに基づいて選択され得る。
【0106】
ユーザデバイス304において出力するために発見可能性の例を提供すると決定することに基づいて、ユーザデバイス304、ユーザデバイス304にインストールされた1つもしくは複数のアプリケーション、またはユーザデバイス304のオペレーティングシステムのステータスを示すコンテキストの情報が、音声アクションシステム300に提供され得る。たとえば、音声アクションシステム300は、ユーザデバイス104において出力するために発見可能性の例を提供すると決定され、それに応じて、コンテキストの情報を取得し得る。その他の実装において、音声アクションシステム300は、コンテキストの情報を受信することに応じてユーザデバイス304において発見可能性の例を提供すると決定し得る。たとえば、音声アクションシステム300は、ユーザデバイス304の1つもしくは複数のハードウェア構成要素、ユーザデバイス304にインストールされた1つもしくは複数のアプリケーション、またはユーザデバイス304のオペレーティングシステムがそれらのステータスを示す情報を音声アクションシステム300に提供することに応じてユーザデバイス304において出力するために発見可能性の例を提供すると決定し得る。一部の実装において、音声アクションシステム300は、特定の間隔でまたは継続的にコンテキストの情報を取得するかまたは提供され得る。
【0107】
コンテキストの情報は、コンテキスト分析エンジン340によって受信され、コンテキスト分析エンジン340は、コンテキストの情報を処理して関連するコンテキストを決定し得る。たとえば、すでに検討されたように、コンテキスト分析エンジン340は、ユーザデバイス304の多数の構成要素、ユーザデバイス304にインストールされた多数のアプリケーション、またはユーザデバイス304上で動作するもしくはユーザデバイス304に関連する1つもしくは複数のオペレーティングシステムのステータスを示すコンテキストの情報を受信し得る。コンテキスト分析エンジン340は、受信された情報からユーザデバイス304の関連するコンテキストを決定し得る。コンテキスト分析エンジン340は、関連するコンテキストを得るために不必要なコンテキストの情報をフィルタリングし得るか、関連するコンテキストを決定するために受信されたコンテキストの情報を解釈し得るか、または関連するコンテキストを決定するために受信されたコンテキストの情報をその他の方法で使用し得る。
【0108】
図3に示された例に関して、たとえば、コンテキスト分析エンジン340は、メディアプレイヤーアプリケーションがユーザデバイス304のフォアグラウンドで動作していること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードで動作していること、およびユーザデバイス304のバッテリ寿命が50%であることを示すコンテキストの情報を受信し得る。コンテキスト分析エンジン340は、メディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードであることのみを示す関連するコンテキストを生成するためにバッテリ寿命のコンテキストの情報をフィルタリングして取り除き得る。別の例において、コンテキスト分析エンジン340は、メディアプレイヤーアプリケーションがユーザデバイス304のフォアグラウンドで動作していること、ユーザデバイス304のヘッドフォンジャックが出力を提供していること、およびユーザデバイス304のディスプレイが現在暗くされていることを示すコンテキストの情報を受信する。コンテキスト分析エンジン340は、関連するコンテキストを決定するために受信されたコンテキストの情報を解釈し得る。たとえば、コンテキスト分析エンジン340は、ヘッドフォンジャックが音声出力を提供している一方、ディスプレイが暗くされているので、フォアグラウンドで動作するメディアプレイヤーアプリケーションがオーディオプレイヤーモードである可能性が高いと判定し得る。
【0109】
コンテキスト分析エンジン340によって決定された関連するコンテキストは、マッチャ350に提供され、マッチャ350は、ユーザデバイス305、ユーザデバイス305にインストールされたアプリケーション、またはユーザデバイス305のオペレーティングシステムの現在のステータスを前提として、ユーザデバイス304において出力するために提供され得る発見可能性の例を特定する。マッチャ350は、マッチャ350によって決定された関連するコンテキストに一致するコンテキストに関連付けられる発見可能性の例を選択し得る。コンテキスト分析エンジン340から受信された関連するコンテキストに一致する発見可能性の例を決定するために、マッチャ350は、関連するコンテキストをアプリケーションメタデータバックエンド310に記憶された1つまたは複数の発見可能性の例によって指定されたコンテキストと比較する。たとえば、
図2に関連して検討されたように、アプリケーションメタデータバックエンド310は、多数の異なるアプリケーション、デバイス、またはオペレーティングシステムに関する多数の音声アクションに関連付けられ得る多数の発見可能性の例を記憶し得る。アプリケーションメタデータバックエンド310内のそれぞれの発見可能性の例は、対応する音声アクションがトリガされるために利用可能であるときを示し、発見可能性の例がユーザデバイスにおいて出力するために提供されるために利用可能であるときも定義するコンテキストを指定し得る。受信されたコンテキストをアプリケーションメタデータバックエンド310内の発見可能性の例によって指定されたコンテキストと比較することによって、マッチャ350は、ユーザデバイス304において出力するために提供されるのにふさわしい1組の候補の発見可能性の例を特定する。
【0110】
図3に示された例において、たとえば、マッチャ350は、メディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードであることを示すコンテキストをアプリケーションメタデータバックエンド310に記憶された複数の発見可能性の例と比較し得る。比較に基づいて、マッチャは、このコンテキストを前提としてユーザによってトリガされ得る音声アクションに対応する4つの発見可能性の例の組を特定し得る。これらの発見可能性の例は、たとえば、「先へスキップ」音声アクションに関する発見可能性の例、オーディオプレイヤーアプリケーションにおける歌の再生を一時停止するようにメディアプレイヤーアプリケーションを制御するための「一時停止」音声アクションに関する発見可能性の例、メディアプレイヤーアプリケーションにおいて現在再生されている歌に似ていると判定される歌に関してデータベースまたはインターネットを検索するようにメディアプレイヤーアプリケーションを制御する「似た歌を検索」音声アクションに関する発見可能性の例、およびユーザデバイス304のホーム画面(たとえば、ユーザデバイス304のディスプレイにおいてオペレーティングシステムがユーザに対して提示するデスクトップまたはメニュー画面)に戻るようにユーザデバイス304を制御する「ホーム」音声アクションに関する発見可能性の例を含み得る。
【0111】
マッチャ350は、候補の発見可能性の例を特定し、候補の発見可能性の例を曖昧性除去エンジン360に提供し得る。一部の実装において、候補の発見可能性の例を曖昧性除去エンジン360に提供することは、候補の発見可能性の例に対応するデータアイテムをマッチャ350に送信することを必要としてよい。その他の実装において、曖昧性除去エンジン360は、マッチャ350が候補の発見可能性の例に対応するデータのアイテムを曖昧性除去エンジン360に送信する必要とせずに候補の発見可能性の例を特定する情報を曖昧性除去エンジン360に提供することのみを必要とするように、アプリケーションメタデータバックエンド310の候補の発見可能性の例にアクセスすることができる。一部の例において、候補の発見可能性の例を特定することは、候補の発見可能性の例の1つまたは複数のバージョンを候補の発見可能性の例として特定することを含む。たとえば、「先へスキップ」音声アクションは、テキストの通知の発見可能性の例および話し言葉のオーディオの通知の発見可能性の例などの、コンテキスト分析エンジン340から受信されたコンテキストに対応するコンテキストをそれぞれが指定する複数の発見可能性の例に関連付けられ、テキストの通知と話し言葉のオーディオの通知との両方が、曖昧性除去エンジン360に提供されるかまたは特定される得る。
【0112】
曖昧性除去エンジン360は、マッチャ350から候補の発見可能性の例または候補の発見可能性の例を特定する情報を受信することができ、ユーザデバイス304に出力するために提供するために候補の発見可能性の例の中から1つまたは複数の発見可能性の例を選択することができる。一部の実装において、曖昧性除去エンジン360は、ユーザアクティビティ履歴370の詳細に基づいて、発見可能性の例を提示するユーザデバイス304の能力に基づいて、またはユーザデバイス304のステータスに基づいて候補の発見可能性の例の中から発見可能性の例を選択し得る。曖昧性除去エンジン360によって選択される発見可能性の例の数は、たとえば、ユーザに提示される発見可能性の例のタイプ、たとえば、ユーザ305に対して出力される発見可能性の例がテキストであるのか、画像であるのか、オーディオであるのか、動画であるのかなどに依存してよい。選択される発見可能性の例の数は、ユーザデバイス304の能力に依存し、たとえば、ユーザデバイス304において提示され得るテキストのまたは画像の通知の量の制限要因であり得るユーザデバイス304のディスプレイサイズに基づいてよい。その他の要因が、曖昧性除去エンジン360による発見可能性の例の選択に影響を与え得る。たとえば、一部の実装において、曖昧性除去エンジンは、表示される発見可能性の例の数、ユーザデバイス304のディスプレイのサイズ、またはその他の情報に関するユーザの好みを示す情報を受信し、受信された情報は、曖昧性除去エンジン360によって選択される特定の発見可能性の例または選択される発見可能性の例の数に影響を与え得る。
【0113】
たとえば、曖昧性除去エンジン360は、ユーザデバイス304において前に実行された動作を示すユーザ履歴370にアクセスすることができ、曖昧性除去エンジン360は、ユーザ履歴370に基づいて出力するために提供される発見可能性の例を選択し得る。一部の実装において、ユーザ履歴370は、ユーザデバイス304のステータスが現在のコンテキストに一致するとき、メディアプレイヤーアプリケーションのステータスが現在のコンテキストに一致するとき、ユーザが利用可能な音声アクションを示す発見可能性の例を要求したときにユーザデバイス304においてメディアプレイヤーアプリケーション内で前に実行された動作、ユーザデバイス304において前に実行された動作を示し、またはそうではなくユーザデバイス304において実行されたユーザの操作の履歴を示し得る。曖昧性除去エンジン360は、ユーザデバイス304において出力するために提供する発見可能性の例を特定するためにユーザ履歴370に依拠してもよい。たとえば、曖昧性除去エンジン360は、以前にメディアプレイヤーアプリケーションをフォアグラウンドでおよびオーディオプレイヤーモードで動作させている間にユーザが以前に歌を先へスキップした(たとえば、早送りした)と判定し、したがって、「先へスキップ」音声アクションに関する発見可能性の例をユーザデバイス304において出力される発見可能性の例として選択し得る。
【0114】
曖昧性除去エンジン360は、マッチャ350によって特定された候補の発見可能性の例の中から発見可能性の例を選択する際に別の方法でユーザアクティビティ履歴370を利用し得る。たとえば、曖昧性除去エンジン360は、ユーザアクティビティ履歴370にアクセスし得るか、ユーザが特定の候補の発見可能性の例に対応する音声アクションを以前実行したことを示すユーザアクティビティ履歴370に基づいて特定の候補の発見可能性の例を選択すると決定するか、ユーザが特定の候補の発見可能性の例に対応する音声アクションを以前実行したことを示すユーザアクティビティ履歴370に基づいて特定の候補の発見可能性の例を選択しないと決定するか、特定の候補の発見可能性の例に関連するトリガフレーズと同様である音声入力をユーザが以前もしくは最近入力したと判定することに基づいて特定の候補の発見可能性の例を選択すると決定するか、特定の候補の発見可能性の例が関連付けられるアクションに一致する動作をユーザがユーザデバイス304において以前実行したと判定することに基づいて特定の候補の発見可能性の例を選択すると決定するか、または曖昧性除去エンジン360は、特定の候補の発見可能性の例の選択の際に別の方法でユーザアクティビティ履歴370を利用し得る。
【0115】
一部の実装において、曖昧センター360は、発見可能性の例を選択するためにその他の利用可能な情報を利用し得る。たとえば、曖昧性除去エンジン360は、ユーザデバイス情報390などのユーザデバイス304についての情報、またはユーザデバイス304から受信されるコンテキストの情報などのユーザデバイス304のステータスにアクセスすることができ、利用可能な情報に基づいて発見可能性の例を選択し得る。たとえば、曖昧性除去エンジン360は、ユーザデバイス304がディスプレイを持たないことを示す情報にアクセスし、したがって、曖昧性除去エンジン360は、テキスト、画像、または動画の発見可能性の例がユーザデバイス304において出力するために効果的に提供され得ないので、オーディオの発見可能性の例のみを選択し得る。代替的に、曖昧性除去エンジン360がユーザデバイス304がディスプレイを有し、現在「サイレント」モードであることを示す情報にアクセスする場合、曖昧性除去エンジン360は、ユーザデバイス304が「サイレント」モードである間はオーディオのまたは動画の発見可能性の例のためのオーディオが出力されないことがあるので、オーディオのまたは動画の発見可能性の例ではなくテキストのまたは画像の発見可能性の例である候補の発見可能性の例を選択し得る。曖昧性除去エンジン360は、候補の発見可能性の例の中から選択する際に、特定のタイプの発見可能性の例を受信するユーザ305の好みを示すユーザの好みなどのその他の情報に依拠してよい。
【0116】
一部の実装において、曖昧性除去エンジン360は、候補の発見可能性の例にランク付けまたは関連するスコアを割り当てることに基づいて、ユーザアクティビティ履歴370などのアクセスされた情報に基づいて候補の発見可能性の例の中から選択し得る。たとえば、曖昧性除去エンジン360は、発見可能性の例を、ユーザデバイス304のステータスとのそれらの発見可能性の例の関連性、ユーザ305の予測される意図、またはその他の基準に従ってランク付けするためにアクセスされた情報を使用し、ランク付けに基づいて候補の発見可能性の例の中から選択し得る。さらに、一部の実装において、1つまたは複数の発見可能性の例は、ユーザデバイス304においてユーザに常に提示される発見可能性の例であってよい。たとえば、前の画面に戻るようにユーザデバイス304を制御する「戻る」音声アクションに関する発見可能性の例は、出力するために常に選択され、または「戻る」音声アクションに関連する特定のコンテキストが満たされるときに出力するために常に選択され得る。
【0117】
一部の実装において、曖昧性除去エンジン360は、ユーザデバイス304において出力するために提供され得る候補の発見可能性の例の異なるグループを異なる方法で選択し得る。たとえば、曖昧性除去エンジン360は、オーディオの通知として出力される一部の候補の発見可能性の例を特定し、テキストの通知として出力されるその他の候補の発見可能性の例を特定し得る。一部の例において、曖昧性除去エンジン360は、一部の発見可能性の例がユーザデバイス304において表示される主な発見可能性の例のウィンドウまたはペイン内に出力されるべきであると決定し、ドロップダウンメニュー、ユーザインターフェースの「もっと見る」エリア、またはユーザインターフェースのその他の別個の領域に含めるためにその他の候補の発見可能性の例を選択し得る。
【0118】
選択された候補の発見可能性の例または選択された発見可能性の例を特定する情報は、フォーマットエンジン380に送信され、フォーマットエンジン380は、ユーザデバイス304において出力するために選択された発見可能性の例をフォーマットし得る。たとえば、フォーマットエンジン380は、ユーザデバイス304において発見可能性の例を提示することに関するユーザデバイス304の特徴を示すユーザデバイス情報390にアクセスすることができ、ユーザデバイス情報390に基づいてユーザデバイス304において出力するために発見可能性の例を準備し得る。ユーザデバイス情報390は、たとえば、ディスプレイサイズ、解像度、色スペクトル、リフレッシュレート、またはその他のパラメータ、オーディオ出力の周波数の範囲またはその他のスピーカもしくはヘッドフォンジャックの出力パラメータ、アプリケーションプログラミングインターフェースプロトコルまたは入力/出力フォーマット、あるいはユーザデバイス304において出力するために発見可能性の例を提供するための関連するその他の情報を含み得る。
【0119】
フォーマットエンジン380は、曖昧性除去エンジン370によって選択された候補の発見可能性の例を受信するかまたは曖昧性除去エンジン370によって選択された候補の発見可能性の例にアクセスすることができ、ユーザデバイス304において出力するために選択された候補の発見可能性の例をフォーマットすることができる。たとえば、フォーマットエンジン380は、選択された候補の発見可能性の例のデータアイテムを受信し、またはアプリケーションメタデータバックエンド310の選択された候補の発見可能性の例にアクセスすることができ、選択された候補の発見可能性の例をフォーマットすることに基づいてユーザデバイス304において出力するためにフォーマットされた発見可能性の例を提供することができる。たとえば、曖昧性除去エンジン360が「先へスキップ」音声アクション、「一時停止」音声アクション、および「ホーム」音声アクションに関する候補の発見可能性の例を選択することに基づいて、フォーマットエンジン380は、選択された候補の発見可能性の例をフォーマットすることができ、出力するためにフォーマットされた発見可能性の例を提供するようにユーザデバイス304を制御することができる。たとえば選択された候補の発見可能性の例の各々が選択された発見可能性の例に対応する音声アクションをトリガするために使用されるトリガ用語を示すテキストの通知である場合、フォーマットエンジン380は、テキストの通知をフォーマットし、ユーザデバイス304のディスプレイにおいて出力するためにフォーマットされたテキストの通知を提供させ得る。したがって、フォーマットされた発見可能性の例は、「先へスキップ」、「一時停止」、および「ホーム」音声アクションの各々をトリガするために使用されるトリガフレーズが後に続くフレーズ「言ってみて」を提示することによって
図3に示されるようにユーザデバイス304において出力され得る。
【0120】
ユーザ305は、トリガフレーズ「先へスキップ」、「一時停止」、および「ホーム」を特定するテキストの通知を提示され、発見可能性の例がユーザデバイス304において提供されることに基づいて、ユーザ305は、提案されたトリガフレーズに対応する音声アクションのうちの1つをトリガするための音声入力を与え得る。たとえば、ユーザ305は、メディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップするようにユーザデバイス304のフォアグラウンドで動作するメディアプレイヤーアプリケーションを制御するために発見可能性の例を提示されることに応じて音声入力「先へスキップ」を与え得る。
【0121】
図4は、ユーザデバイスにおいて出力するために発見可能性の例を確立し、提供するための例示的なプロセス400の流れ図である。一部の実装において、プロセス400は、
図1Aから
図1Cの音声アクションシステム100などの音声アクションシステムによって実行されてよい。
【0122】
音声アクションシステムが、新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語を指定するデータと、新しい音声アクションがトリガされ得るときのソフトウェアアプリケーションのステータスを指定するコンテキストとを受信する(402)。たとえば、端末102a〜102nを使用するアプリケーション開発者101a〜101nが、1つまたは複数のユーザデバイス104にインストールされるアプリケーションのための新しい音声アクションを定義するための情報を音声アクションシステム100に送り得る。アプリケーション開発者101a〜101nによって送られる情報は、新しい音声アクションがユーザデバイス104においてトリガされ得るときのソフトウェアアプリケーションのステータスを示すコンテキストを指定し得る。情報は、ユーザ105が音声アクションをトリガするためにユーザデバイス104に話すことができるトリガ用語をさらに指定し得る。
【0123】
たとえば、アプリケーション開発者101a〜101nは、メディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップするようにメディアプレイヤーアプリケーションを制御するメディアプレイヤーアプリケーションのための新しい「先へスキップ」音声アクションを定義する情報を音声アクションシステム100に送り得る。送られる情報は、トリガフレーズ「先へスキップ」が新しい音声アクションをトリガするために使用されるべきであることと、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで動作しており、オーディオプレイヤーモードで動作しているときにのみ音声アクションがトリガされ得ることとを示す情報を含み得る。送られる情報は、音声アクションがトリガされることに応じて実行されるアクションを示す情報またはその他の情報などのその他の情報も含み得る。
【0124】
音声アクションシステムが、新しい音声アクションに関する発見可能性の例を定義するデータを受信し、発見可能性の例を定義するデータは、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときに新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語のうちの1つまたは複数を含む(404)。たとえば、アプリケーション開発者101a〜101nは、新しい音声アクションに関する発見可能性の例を指定する情報を音声アクションシステム100に送り得る。アプリケーション開発者101a〜101nによって送られ、音声アクションシステム100によって受信される情報は、ユーザデバイス104において新しい音声アクションをトリガするためにユーザ105によって使用され得るトリガ用語のうちの1つまたは複数を指定し得る。このようにして、アプリケーション開発者101a〜101nは、ユーザデバイス104にインストールされたソフトウェアアプリケーションのステータスが新しい音声アクションに関する指定されたコンテキストを満たすときにユーザデバイス104において出力するために通知を提供させ得る発見可能性の例を指定することができ、通知は、新しい音声アクションをトリガするためにユーザが使用することができるトリガ用語をそのユーザ105に知らせるためにユーザ105にトリガ用語のうちの1つまたは複数を提示する。
【0125】
一部の実装において、新しい音声アクションを定義する情報は、1つまたは複数のトリガ用語の通知を提供するためにユーザデバイスが発見可能性の例を使用することを可能にする特定の必要とされるフォーマットであってよい。その他の実装において、音声アクションシステム100は、新しい音声アクションに関する1つもしくは複数のトリガ用語またはその他の情報を特定するが、特定の必要とされるフォーマットではない情報をアプリケーション開発者101a〜101nから受信し得る。それらの場合に発見可能性の例を生成するために、音声アクションシステム100は、発見可能性の例を定義するデータを生成するために受信されたデータを受け入れ、受け入れプロセスによって生成される発見可能性の例を定義するデータは、特定の必要とされるフォーマットである。その他の実装において、音声アクションシステム100は、新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語を指定する情報などの、新しい音声アクションを指定する受信された情報にのみ基づいて発見可能性の例を生成し得る。その他の例において、音声アクションシステム100は、新しい音声アクションを指定する受信された情報に基づいて、および音声アクションシステム100によって決定されるかまたは音声アクションシステム100においてアプリケーション開発者101a〜101nから受信される発見可能性の例についての情報を指定するその他の情報に基づいて、発見可能性の例を生成し得る。そのような情報は、たとえば、発見可能性の例に関連付ける通知の内容を含み得る。その他の例において、音声アクションシステム100は、1つまたは複数の候補の発見可能性の例を決定し、発見可能性の例を定義するデータを受信することは、アプリケーション開発者101a〜101nによる候補の発見可能性の例のうちの特定の1つの選択を受信することを含み得る。
【0126】
たとえば、音声アクションシステム100は、「先へスキップ」音声アクションに関する発見可能性の例を定義する情報をアプリケーション開発者101a〜101nから受信し、発見可能性の例を定義するデータは、メディアプレイヤーアプリケーションが現在再生している歌を所定の時間量だけ先へスキップするようにメディアプレイヤーアプリケーションをトリガするトリガ用語「先へスキップ」を指定する。アプリケーション開発者101a〜101nから受信される情報は、特定の必要とされるフォーマットであり、または音声アクションシステム100が、特定の必要とされるフォーマットを有する発見可能性の例を生成するために「先へスキップ」音声アクションに関する発見可能性の例を指定する情報を受け入れ得る。その他の例において、音声アクションシステム100は、「先へスキップ」音声アクションを定義するデータを生成するために、「先へスキップ」音声アクション自体を指定する情報を、つまり、「先へスキップ」音声アクションに関する発見可能性の例を別に定義するその他の情報を受信することなく受け入れ得る。その他の実装において、音声アクションシステム100は、受信された情報に基づいて「先へスキップ」音声アクションに関する候補通知を決定し、アプリケーション開発者101a〜101nは、特定の候補を選択し得る。音声アクションシステム100は、選択された候補の発見可能性の例を定義する情報を受信し、または特定の候補の選択を示す情報を受信し、選択に応じて、選択に従って「先へスキップ」音声アクションに関する発見可能性の例を生成し得る。生成された発見可能性の例は、音声アクションをトリガするために使用されるトリガ用語「先へスキップ」を示すテキスト、画像、オーディオ、または動画の通知などの通知に関する情報を含み得る。一部の例において、アプリケーション開発者101a〜101nは、通知の内容を含む追加的な情報を送り、音声アクションシステム100は、通知の内容を含む「先へスキップ」音声アクションに関する発見可能性の例を生成し得る。
【0127】
一部の実装において、発見可能性の例を定義するデータは、ユーザデバイス104にインストールされたソフトウェアアプリケーションのコンテキストが指定されたコンテキストを満たすときに、ソフトウェアアプリケーションがインストールされているユーザデバイス104が出力するために通知を提供することを可能にするために、音声アクションシステム100のソフトウェアアプリケーションに関連付けられる。たとえば、音声アクションシステム100は、発見可能性の例を、ソフトウェアアプリケーションに関連して音声アクション発見可能性データベース170に記憶し得る。ソフトウェアアプリケーションに関連して記憶されると、発見可能性の例は、ソフトウェアアプリケーションのコンテキストが新しい音声アクションに関して指定されたコンテキストを満たすときにユーザデバイス104のユーザ105に出力するために提供され得る。
【0128】
音声アクションシステムが、ソフトウェアアプリケーションがインストールされているユーザデバイスからソフトウェアアプリケーションに関する発見可能性の例の要求を受信する(406)。たとえば、
図1Cに示されたように発見可能性の例が音声アクション発見可能性例データベース170に記憶されると、音声アクションシステム100は、ソフトウェアアプリケーションに関する発見可能性の例の要求をユーザデバイス104から受信し得る。ユーザデバイス104は、様々な理由に基づいてソフトウェアアプリケーションに関する発見可能性の例を要求し得る。たとえば、ユーザデバイス104は、ソフトウェアアプリケーションのステータスが変わったと判定することに基づいてユーザデバイス104にインストールされたソフトウェアアプリケーションに関する発見可能性の例を要求し得るか、ユーザデバイス104のユーザ105がソフトウェアアプリケーションを起動することもしくはソフトウェアアプリケーションをユーザデバイス104のフォアグラウンドに出すことに基づいてアプリケーションに関する発見可能性の例を要求し得るか、周期的スケジュールもしくはユーザ105によって設定されたスケジュールに基づいてアプリケーションに関する発見可能性の例を要求し得るか、またはそれ以外の方法で音声アクションシステム100からのソフトウェアアプリケーションに関する発見可能性の例を要求し得る。一部の例において、ユーザデバイス104から受信される発見可能性の例の要求は、音声アクションシステム100がユーザデバイス104に提供する発見可能性の例を選択する際にコンテキストの情報を利用し得るように、ユーザデバイス104にインストールされたソフトウェアアプリケーションのステータスを示すコンテキストの情報を含み得る。
【0129】
音声アクションシステムが、要求に応答して、発見可能性の例を定義するデータをユーザデバイスに提供し、ユーザデバイスは、少なくとも発見可能性の例を定義するデータに基づいて、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときにトリガ用語のうちの1つまたは複数についての通知を提供するように構成される(408)。たとえば、ユーザデバイス104から受信された要求に応答して、音声アクションシステム100は、ユーザデバイス104のアプリケーションメタデータバックエンド180などのユーザデバイス104における記憶のために、新しい音声アクションに関する発見可能性の例を定義するデータをユーザデバイス104に提供し得る。一部の実装においては、
図1Bに示されたように、音声アクションシステム100が、たとえば、発見可能性の例としてまたは発見可能性の例と一緒にユーザデバイス104から受信されたコンテキストの情報が新しい音声アクションに関して指定されたコンテキストを満たすと判定することができ、したがって、ユーザデバイス104において発見可能性の例に関連する通知の出力を制御またはトリガするために、新しい音声アクションに関する発見可能性の例を定義するデータをユーザデバイス104に提供すると決定し得る。その他の例においては、
図1Cに示されたように、音声アクションシステム100が受信された要求に応答して発見可能性の例を定義する情報をユーザデバイス104に提供し得ると、ユーザデバイス104は、発見可能性の例を定義するデータをアプリケーションメタデータバックエンド180に新しい音声アクションに関連して記憶し得る。発見可能性の例を定義するデータをアプリケーションメタデータバックエンド180に記憶することは、発見可能性の例に関連する通知を出力するようにユーザデバイス104を構成し得る。たとえば、ユーザデバイス104にインストールされたソフトウェアアプリケーションのステータスが新しい音声アクションに関して指定されたコンテキストを満たすとユーザデバイス104が判定するとき、ユーザデバイス104は、ユーザデバイス104において出力するために新しい音声アクションをトリガするために使用される1つまたは複数のトリガ用語の通知を提供し得る。
【0130】
たとえば、「先へスキップ」音声アクションに関する発見可能性の例は、メディアプレイヤーアプリケーションに関連して音声アクション発見可能性例データベース170に記憶され得る。発見可能性の例の要求と一緒にまたは発見可能性の例の要求としてユーザデバイス104から音声アクションシステム100によって受信されたコンテキストの情報が「先へスキップ」音声アクションに関して指定されたコンテキストを満たすと判定されるとき、「先へスキップ」音声アクションに関する発見可能性の例は、ユーザデバイス104に提供される。ユーザデバイス104によって受信された発見可能性の例は、テキストの通知「『先へスキップ』と言ってみて」をユーザデバイス104において出力するために提供させる。別の例において、音声アクションシステム100は、発見可能性の例の要求に応答して「先へスキップ」音声アクションに関する発見可能性の例を定義するデータを提供することができる。ユーザデバイス104は、たとえば、アプリケーションメタデータバックエンド180において、またはユーザデバイス104のキャッシュメモリ内に「先へスキップ」音声アクションに関する発見可能性の例をキャッシュすることによって、「先へスキップ」音声アクションに関する発見可能性の例を記憶し得る。そのとき、ユーザデバイス104は、メディアプレイヤーアプリケーションのステータスが「先へスキップ」音声アクションに関して指定されたコンテキストを満たすという判定がなされるときに出力するためにテキストの通知「『先へスキップ』と言ってみて」を提供することができる。たとえば、テキストの通知は、音声アクションに関する発見可能性の例を提示するように構成されるユーザデバイス104において表示されるユーザインターフェースの音声プレート領域(voice plate region)内に提示され得る。代替的に、通知は、ユーザデバイス104において表示される検索結果ページ内に提示されるか、ユーザデバイス104において表示されるユーザインターフェース内の別個のウィンドウ内に出力するために提供されるか、ユーザデバイス104においてオーディオ、画像、もしくは動画として提供されるか、それ以外の方法でユーザデバイス104において出力するために提供され得る。
【0131】
いくつかの実装が、説明された。しかしながら、本開示の精神および範囲を逸脱することなく様々な修正がなされ得ることが理解されるであろう。たとえば、上で示された様々な形式のフローは、ステップの順序を変えるか、ステップを追加するか、またはステップを削除して使用され得る。したがって、その他の実装は、添付の請求項の範囲内にある。
【0132】
本明細書において検討されたシステムおよび/または方法がユーザについての個人情報を収集し得るか、または個人情報を利用し得る場合、ユーザは、プログラムまたは特徴が個人情報、たとえば、ユーザのソーシャルネットワーク、ソーシャルなアクションもしくはアクティビティ、職業、好み、または現在位置を収集するかどうかを制御する、あるいはシステムおよび/または方法がユーザにより関連性がある動作を実行し得るかどうかおよび/またはどのようにして実行し得るかを制御する機会を与えられ得る。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で匿名化されてよい。たとえば、ユーザの識別情報が、個人を特定できる情報がユーザに関して決定され得ないか、または位置情報が取得される場合にユーザの地理的な位置が都市、郵便番号、もしくは州のレベルなどに一般化され、したがって、ユーザの特定の位置が決定され得ないように匿名化されてよい。したがって、ユーザは、情報がユーザについてどのように収集されるかおよび/または使用されるかを制御することができる。
【0133】
上述の実施形態は主にユーザデバイスにインストールされたアプリケーションによって使用するための音声アクションの開発に関連して説明されたが、説明された特徴は、機械、その他のデバイス、ロボット、またはその他のシステムに関連して使用され得る。たとえば、
図1Aから
図1Cの音声アクションシステム100は、関連するコンピューティングシステムを有する機械とインタラクションするための音声アクションおよび発見可能性の例を開発し、実装するために利用されてよく、ロボットもしくはロボットの構成要素を有するシステムとインタラクションするための音声アクションを開発し、実装するために使用されてよく、家電製品、エンターテインメントシステム、もしくはその他のデバイスとインタラクションするための音声アクションを開発し、実装するために使用されてよく、車両もしくはその他の輸送システムとインタラクションするための音声アクションを開発し、実装するために使用されてよい。
【0134】
本明細書に記載の実施形態および機能的動作のすべては、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されてよい。実施形態は、1つまたは複数のコンピュータプログラム製品、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されてよい。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号を生じる組成物、またはそれらのうちの1つもしくは複数の組合せでよい。用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。伝播信号は、人為的に生成される信号、たとえば、好適な受信機装置に送信するために情報を符号化するように生成される機械によって生成される電気的信号、光学的信号、または電磁的信号である。
【0135】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語を含む任意の形態のプログラミング言語で記述されてよく、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適したその他の単位としての形態を含む任意の形態で展開されてよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように展開され得る。
【0136】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を果たす1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって行われてよい。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)によって実行されてよく、さらに、装置は、それらの専用の論理回路として実装されてよい。
【0137】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受け取る。
【0138】
コンピュータの必須の要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、タブレットコンピュータ、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレイヤー、全地球測位システム(GPS)受信機に組み込まれてよい。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれてよい。
【0139】
ユーザとのインタラクションを提供するために、実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT (ブラウン管)またはLCD (液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与え得るキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されてよい。その他の種類のデバイスが、ユーザとのインタラクションを行うためにさらに使用されてよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響、話、または触覚による入力を含む任意の形態で受け取られてよい。
【0140】
実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが実装とインタラクションし得るグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装されてよい。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットを含む。
【0141】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【0142】
本明細書は多くの詳細を含むが、これらは、本開示の範囲または特許請求され得るものの範囲に対する限定と見なされるべきではなく、むしろ、特定の実施形態に固有の特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されてよい。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の好適な部分的組合せで実装され得る。さらに、特徴は、特定の組合せで動作するものとして上で説明されて、最初にそのように主張されてさえいることがあるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることがあり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象としてよい。
【0143】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利であってよい。さらに、上述の実施形態における様々なシステム構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされてよいと理解されるべきである。
【0144】
HTMLファイルが言及されるそれぞれの場合に、その他のファイルタイプまたはフォーマットが代わりに使用されてよい。たとえば、HTMLファイルが、XML、JSON、プレーンテキスト、またはその他の種類のファイルによって置き換えられてよい。さらに、テーブルまたはハッシュテーブルが言及される場合に、(表計算、リレーショナルデータベース、または構造化されたファイルなどの)その他のデータ構造が使用されてよい。
【0145】
さらなる実装が、以下の例に要約される。
【0146】
例1:新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語を指定するデータと、新しい音声アクションがトリガされ得るときのソフトウェアアプリケーションのステータスを指定するコンテキストとを音声アクションシステムによって受信するステップと、
新しい音声アクションに関する発見可能性の例を定義するデータを音声アクションシステムによって受信するステップであって、発見可能性の例を定義するデータが、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときに新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語のうちの1つまたは複数を含む、ステップと、
ソフトウェアアプリケーションに関する発見可能性の例の要求を、ソフトウェアアプリケーションがインストールされているユーザデバイスから音声アクションシステムによって受信するステップと、
要求に応答して、発見可能性の例を定義するデータをユーザデバイスに音声アクションシステムによって提供するステップであって、ユーザデバイスが、少なくとも発見可能性の例を定義するデータに基づいて、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときにトリガ用語のうちの1つまたは複数についての通知を提供するように構成される、ステップとを含む、コンピュータによって実施される方法。
【0147】
例2:トリガ用語のうちの1つまたは複数についての通知としてユーザデバイスにおいて提示可能な内容に対応するデータを音声アクションシステムによって受信するステップと、
要求に応答して、内容に対応するデータをユーザデバイスに音声アクションシステムによって提供するステップであって、ユーザデバイスが、少なくとも内容に対応するデータに基づいて、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときにトリガ用語のうちの1つまたは複数についての通知として内容を提示するように構成される、ステップとを含む例1のコンピュータによって実施される方法。
【0148】
例3:新しい音声アクションに関する1つまたは複数の一意の候補の発見可能性の例を定義するデータを音声アクションシステムによって生成するステップであって、1つまたは複数の一意の候補の発見可能性の例の各々を定義するデータが、トリガ用語のうちの1つまたは複数を含む、ステップと、
1つまたは複数の一意の候補の発見可能性の例の中からの特定の候補の発見可能性の例の選択を示すデータを音声アクションシステムによって受信するステップと、
要求に応答して、特定の候補の発見可能性の例を定義するデータをユーザデバイスに音声アクションシステムによって提供するステップであって、ユーザデバイスが、少なくとも特定の候補の発見可能性の例を定義するデータに基づいて、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときに特定の候補の発見可能性の例に対応するトリガ用語のうちの1つまたは複数についての通知を提供するように構成される、ステップとを含む例1または2のコンピュータによって実施される方法。
【0149】
例4:ソフトウェアアプリケーションのステータスを示すデータを、ソフトウェアアプリケーションがインストールされているユーザデバイスから音声アクションシステムによって受信するステップと、
ソフトウェアアプリケーションのステータスを示すデータに基づいて、音声アクションシステムによって、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすと判定するステップと、
ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすと判定することに応じて、発見可能性の例を定義するデータをユーザデバイスに音声アクションシステムによって提供するステップであって、ユーザデバイスが、少なくとも発見可能性の例を定義するデータに基づいて、発見可能性の例を受信し、発見可能性の例を受信することに応じてトリガ用語のうちの1つまたは複数についての通知を提供するように構成される、ステップとを含む例1から3のうちの1つのコンピュータによって実施される方法。
【0150】
例5:指定されたコンテキストが、ソフトウェアアプリケーションが特定のアクティビティを実行していることを示す例1から4のうちの1つのコンピュータによって実施される方法。
【0151】
例6:指定されたコンテキストが、ソフトウェアアプリケーションが実行している特定のアクティビティが特定のアクティビティの状態であることを示す例1から4のうちの1つのコンピュータによって実施される方法。
【0152】
例7:指定されたコンテキストが、ソフトウェアアプリケーションがインストールされているユーザデバイスのフォアグラウンドでソフトウェアアプリケーションが動作していることを示す例1から4のうちの1つのコンピュータによって実施される方法。
【0153】
例8:指定されたコンテキストが、ソフトウェアアプリケーションがインストールされているユーザデバイスのバックグラウンドでソフトウェアアプリケーションが動作していることを示す例1から4のうちの1つのコンピュータによって実施される方法。
【0154】
例9:(i)第2の新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語と(ii)指定されたコンテキストとを指定するデータを音声アクションシステムによって受信するステップと、
第2の新しい音声アクションに関する第2の発見可能性の例を定義するデータを音声アクションシステムによって受信するステップであって、第2の発見可能性の例を定義するデータが、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときに第2の新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語のうちの1つまたは複数を含む、ステップと、
要求に応答して、第2の発見可能性の例を定義するデータをユーザデバイスに音声アクションシステムによって提供するステップであって、ユーザデバイスが、少なくとも第2の発見可能性の例を定義するデータに基づいて、ソフトウェアアプリケーションのステータスが指定されたコンテキストを満たすときに、新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語のうちの1つまたは複数についての、および第2の新しい音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語のうちの1つまたは複数についての通知を提供するように構成される、ステップとを含む例1から8のうちの1つのコンピュータによって実施される方法。
【0155】
例10:音声アクションを実行するようにソフトウェアアプリケーションをトリガするトリガ用語の通知を要求するユーザ入力をユーザデバイスにおいて検出することに応じてソフトウェアアプリケーションのステータスが決定される例1から9のうちの1つのコンピュータによって実施される方法。
【0156】
例11:ソフトウェアアプリケーションのステータスが変わったと判定することに応じてソフトウェアアプリケーションのステータスが決定される例1から10のうちの1つのコンピュータによって実施される方法。
【0157】
例12:ソフトウェアアプリケーションがユーザデバイスにおいて起動されたと判定することに応じてソフトウェアアプリケーションのステータスが決定される例1から10のうちの1つのコンピュータによって実施される方法。
【0158】
例13:トリガ用語のうちの1つまたは複数についての通知が、テキストの通知、画像の通知、動画の通知、またはオーディオの通知のうちの1つである例1から12のうちの1つのコンピュータによって実施される方法。
【0159】
例14:音声アクションシステムにおいて、発見可能性の例を定義するデータを、1つまたは複数のその他の発見可能性の例を定義するデータを含むデータベースに記憶するステップであって、1つまたは複数のその他の発見可能性の例のうちの少なくとも1つが、異なる音声アクションに関する発見可能性の例である、ステップを含む例1から13のうちの1つのコンピュータによって実施される方法。
【0160】
例15:ユーザデバイスが、
ソフトウェアアプリケーションのステータスが2つ以上の異なる音声アクションの各々に関して指定されたコンテキストを満たすと判定することと、
2つ以上の異なる音声アクションに関して定義される発見可能性の例を特定することであって、発見可能性の例の各々が、2つ以上の異なる音声アクションのうちの1つを実行するようにソフトウェアアプリケーションをトリガする1つまたは複数のトリガ用語を含む、特定することと、
発見可能性の例のサブセットを選択することと、
サブセットに含まれる発見可能性の例の各々の1つまたは複数のトリガ用語の通知を提供することとを行うように構成される例1から14のうちの1つのコンピュータによって実施される方法。
【0161】
例16:発見可能性の例のサブセットを選択することが、
2つ以上の異なる音声アクションに関して定義される発見可能性の例をランク付けすることと、
少なくともランク付けに基づいて発見可能性の例のサブセットを選択することとを含む例15のコンピュータによって実施される方法。
【0162】
例17:発見可能性の例のサブセットを選択することが、
2つ以上の異なる音声アクションの各々に関して指定されたコンテキストとの2つ以上の異なる音声アクションの各々の関連性を決定することと、
2つ以上の異なる音声アクションの各々に関して指定されたコンテキストとの2つ以上の異なる音声アクションの各々の決定された関連性に少なくとも基づいて、発見可能性の例のサブセットを選択することとを含む例15のコンピュータによって実施される方法。
【0163】
例18:発見可能性の例のサブセットを選択することが、
ソフトウェアアプリケーションのステータスが2つ以上の異なる音声アクションの各々に関して指定されたコンテキストを満たすときのユーザデバイスにおける過去のユーザのアクティビティを示す情報にアクセスすることと、
ソフトウェアアプリケーションのステータスが2つ以上の異なる音声アクションの各々に関して指定されたコンテキストを満たすときのユーザデバイスにおける過去のユーザのアクティビティを示すアクセスされた情報に少なくとも基づいて、発見可能性の例のサブセットを選択することとを含む例15のコンピュータによって実施される方法。
【0164】
例19:1つまたは複数のコンピュータによって実行され得る命令を含むソフトウェアを記憶する非一時的コンピュータ可読ストレージデバイスであって、命令が、そのように実行されると、1つまたは複数のコンピュータに例1から18のステップを含む動作を実行させる、非一時的コンピュータストレージデバイス。
【0165】
このように、特定の実施形態が説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられたアクションは、異なる順序で実行されてよく、それでも所望の結果を達成してよい。