(57)【要約】  本明細書では、リソース制約付きデバイスに送達されてこのデバイス上で実装されることになる有限状態機械を、オンラインセマンティックプロセッサを利用して生成するための技法について述べる。様々な実装形態では、パーソナルアシスタントモジュールによってユーザ要求を受け取ることができる。例えばパーソナルアシスタントモジュールによって、ユーザ要求を示すデータをオンラインセマンティックプロセッサにアップロードすることができる。例えばパーソナルアシスタントモジュールによって、オンラインセマンティックプロセッサからデータを受け取ることができる。受け取られたデータは、パーソナルアシスタントモジュールの候補状態を有する状態機械を表すことができる。各候補状態は、要求に潜在的に応答するものとすることができる。リソース制約付きデバイスに対してローカルなリソースを分析して、オンラインセマンティックプロセッサによって利用可能でない信号を確認することができる。次いで、パーソナルアシスタントモジュールは、信号に基づいて選択された、複数の候補状態のうちの所与の状態に遷移することができる。
2019520644.tif 000002
【特許請求の範囲】
【請求項１】
リソース制約付きデバイスによって動作させられるパーソナルアシスタントモジュールによって要求を受け取るステップと、
前記パーソナルアシスタントモジュールによって、前記要求を示すデータをオンラインセマンティックプロセッサにアップロードするステップと、
前記パーソナルアシスタントモジュールによって、前記パーソナルアシスタントモジュールの複数の候補状態を含む状態機械を表すデータを前記オンラインセマンティックプロセッサから受け取るステップであって、各候補状態が前記要求に潜在的に応答する、ステップと、
前記パーソナルアシスタントモジュールによって、前記リソース制約付きデバイスに対してローカルな1つまたは複数のリソースを分析して、前記オンラインセマンティックプロセッサによって利用可能でない1つまたは複数の信号を確認するステップと、
前記パーソナルアシスタントモジュールによって前記複数の候補状態のうちの所与の状態に遷移するステップであって、前記所与の状態が前記1つまたは複数の信号に基づいて選択される、ステップと
を含むコンピュータ実装方法。
【請求項２】
前記所与の状態が、前記パーソナルアシスタントモジュールによって送達されることになる出力を含み、前記出力が、1つまたは複数の入力を求める要請を含む、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記パーソナルアシスタントモジュールによって、前記要請に応答して前記パーソナルアシスタントモジュールによって受け取られた1つまたは複数の入力に基づいて、前記所与の状態から前記複数の候補状態のうちの別の状態に遷移するステップをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項４】
前記リソース制約付きデバイスに対してローカルな前記1つまたは複数のリソースが、前記リソース制約付きデバイスを操作するユーザの連絡先リストを含む、請求項2または3に記載のコンピュータ実装方法。
【請求項５】
前記パーソナルアシスタントモジュールによって、前記1つまたは複数の入力に基づいて前記連絡先リスト中の2つまたはそれ以上の連絡先間の曖昧さを除くステップをさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項６】
前記パーソナルアシスタントモジュールによって、前記1つまたは複数の入力に基づいて、前記連絡先リスト中の単一の連絡先に関連する2つまたはそれ以上のアドレスまたは電話番号の間の曖昧さを除くステップをさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項７】
前記要求が、前記連絡先リスト中の個人との電話通話を開始する要求を含む、請求項4から6のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
前記要求が、前記連絡先リスト中の個人にメッセージを送る要求を含む、請求項4から6のいずれか一項に記載のコンピュータ実装方法。
【請求項９】
前記要求が、前記連絡先リスト中の個人に関連する場所への道順を求める要求を含む、請求項4から6のいずれか一項に記載のコンピュータ実装方法。
【請求項１０】
前記リソース制約付きデバイスに対してローカルな前記1つまたは複数のリソースが、前記リソース制約付きデバイスにインストールされた複数のアプリケーションを含み、前記パーソナルアシスタントモジュールによって、前記1つまたは複数の入力に基づいて前記複数のアプリケーションのうちの2つまたはそれ以上の間の曖昧さを除くステップをさらに含む、請求項2から9のいずれか一項に記載のコンピュータ実装方法。
【請求項１１】
前記リソース制約付きデバイスに対してローカルな前記1つまたは複数のリソースが、前記リソース制約付きデバイスのメモリに記憶された複数のメディアファイルを含み、前記パーソナルアシスタントモジュールによって、前記1つまたは複数の入力に基づいて前記複数のメディアファイルのうちの2つまたはそれ以上の間の曖昧さを除くステップをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項１２】
前記1つまたは複数の信号が、ユーザと前記パーソナルアシスタントモジュールとの間の対話履歴に関する1つまたは複数の記録を含む、請求項1から11のいずれか一項に記載のコンピュータ実装方法。
【請求項１３】
前記1つまたは複数の信号が、ユーザと前記パーソナルアシスタントモジュールとの間の対話履歴に関する前記1つまたは複数の記録に基づく1つまたは複数の統計を含む、請求項12に記載のコンピュータ実装方法。
【請求項１４】
前記1つまたは複数の信号が前記リソース制約付きデバイスの位置座標を含む、請求項1から13に記載のコンピュータ実装方法。
【請求項１５】
通信インタフェースと、
前記通信インタフェースに動作可能に結合された1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに動作可能に結合されたメモリと
を備えるオンラインセマンティックプロセッサであって、前記メモリが命令を記憶し、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、
リソース制約付きデバイス上で動作するパーソナルアシスタントモジュールから、前記通信インタフェースを介して、ユーザ要求を示すデータを受け取るステップと、
前記パーソナルアシスタントモジュールの複数の候補状態を含む状態機械を生成するステップであって、各候補状態が、前記オンラインセマンティックプロセッサによって利用不可能である、かつ前記リソース制約付きデバイスに対してローカルなリソースから確認可能である、1つまたは複数の信号に応じて、前記要求に潜在的に応答する、ステップと、
前記状態機械を表すデータを、前記通信インタフェースを介して前記リソース制約付きデバイスにダウンロードするステップと
を前記1つまたは複数のプロセッサに行わせる、オンラインセマンティックプロセッサ。
【請求項１６】
ユーザに関連する1つまたは複数のオンラインリソースを分析して1つまたは複数の情報信号を確認するための命令をさらに含み、前記状態機械が、前記1つまたは複数の情報信号に少なくとも部分的に基づいて生成される、請求項15に記載のオンラインセマンティックプロセッサ。
【請求項１７】
リソース制約付きデバイスによって実行されたときに、請求項1から14のいずれか一項に記載の方法を前記リソース制約付きデバイスに実行させる、コンピュータ可読命令。
【請求項１８】
通信インタフェースに動作可能に結合された1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに動作可能に結合されたメモリと
を備え、前記メモリが命令を記憶し、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、請求項1から14のいずれか一項に記載の方法を前記1つまたは複数のプロセッサに実行させる、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、選択的に辿ることが可能な状態機械のパーソナルアシスタントモジュールへの提供に関する。
【背景技術】
【０００２】
スマートフォン、タブレット、スタンドアロン音声コマンドデバイス、およびスマートウォッチなどのモバイルコンピューティングデバイス上で現在利用可能なパーソナルアシスタントモジュールは通常、部分的にはモバイルデバイス上で実装され、部分的にはオンラインまたはクラウドベースのサービス中で実装される。これは主として、このようなデバイスのメモリおよび/または処理キャパシティが、特にオンラインまたはクラウドベースのサービスのキャパシティと比較したときに、技術的、経済的、または他の理由に基づいて制約されるという点で、リソース制約を受けると考えられるからである。結果的に、パーソナルアシスタントモジュールと対話するのに必要とされる処理力の多くが、「オンラインセマンティックプロセッサ」の形でクラウド上にある場合がある。しかし、オンラインセマンティックプロセッサは、リソース制約付きデバイス上で利用可能な様々なデータポイントまたは「信号」に、容易にアクセスできないことがある。そのため、リソース制約付きデバイスに対してローカルな1つまたは複数の信号が、ユーザ介入をほとんどまたは全く伴わずに曖昧さ解決のためにすぐに利用可能である場合があっても、オンラインセマンティックプロセッサにおいて受け取られたリソース制約付きデバイスからの要求は、曖昧に見えることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本明細書は一般に、リソース制約付きデバイスに送達されてこのデバイス上で実装されることになる有限状態機械を、クラウドのほぼ無限のリソース(例えば「オンラインセマンティックプロセッサ」の形の)を利用して生成するための、様々な技法を対象とする。様々な実装形態では、リソース制約付きデバイスは、リソース制約付きデバイスに対してローカルなリソースから確認される1つまたは複数の信号に少なくとも部分的に基づいて、状態機械を実装することができる。
【課題を解決するための手段】
【０００４】
したがって、いくつかの実装形態では、方法は、リソース制約付きデバイスによって動作させられるパーソナルアシスタントモジュールによって要求を受け取るステップと、パーソナルアシスタントモジュールによって、要求を示すデータをオンラインセマンティックプロセッサにアップロードするステップと、パーソナルアシスタントモジュールによって、パーソナルアシスタントモジュールの複数の候補状態を含む状態機械を表すデータをオンラインセマンティックプロセッサから受け取るステップであって、各候補状態が要求に潜在的に応答する、ステップと、パーソナルアシスタントモジュールによって、リソース制約付きデバイスに対してローカルな1つまたは複数のリソースを分析して、オンラインセマンティックプロセッサによって利用可能でない1つまたは複数の信号を確認するステップと、パーソナルアシスタントモジュールによって複数の候補状態のうちの所与の状態に遷移するステップであって、所与の状態が1つまたは複数の信号に基づいて選択される、ステップとを含むことができる。
【０００５】
所与の状態への遷移に応答して、パーソナルアシスタントモジュールは、応答タスク(例えば、連絡先への電話発信)を開始することができ、それにより要求を満たすことができる。このように、リソース制約付きデバイスは、複雑で計算集約的であるように見える機能を、そのような機能の提供に普通なら必要とされるであろう処理力を必要とせずに、提供することができる。加えて、本明細書に記載の方法および装置は、機能を提供するためにリソース制約付きデバイスから公衆ネットワークを介してクラウドに送信される機密ユーザデータ(例えば、連絡先リスト、通話ログなど)の量を削減することができる。このようにして、データへの未許可アクセスのリスクを低減することができる。同様に、これらの方法および装置は、要求を満たすためにデバイスとクラウドとの間で必要とされるやり取りの回数を(2回に)削減することができる(追加情報が必要とされる場合であっても)。
【０００６】
様々な実装形態では、所与の状態は、パーソナルアシスタントモジュールによって送達されることになる出力を含むことができる。出力は、1つまたは複数の入力を求める要請を含むことができる。様々な実装形態では、この方法はさらに、パーソナルアシスタントモジュールによって、要請に応答してパーソナルアシスタントモジュールによって受け取られた1つまたは複数の入力に基づいて、所与の状態から複数の候補状態のうちの別の状態に遷移するステップを含むことができる。
【０００７】
様々な実装形態では、リソース制約付きデバイスに対してローカルな1つまたは複数のリソースは、リソース制約付きデバイスを操作するユーザの連絡先リストを含むことができる。様々な実装形態では、この方法はさらに、パーソナルアシスタントモジュールによって、1つまたは複数の入力に基づいて、連絡先リスト中の2つまたはそれ以上の連絡先の間の曖昧さを除くステップを含むことができる。様々な実装形態では、この方法はさらに、パーソナルアシスタントモジュールによって、1つまたは複数の入力に基づいて、連絡先リスト中の単一の連絡先に関連する2つまたはそれ以上のアドレスまたは電話番号の間の曖昧さを除くステップを含むことができる。
【０００８】
様々な実装形態では、要求は、連絡先リスト中の個人との電話通話を開始する要求を含むことができる。様々な実装形態では、要求は、連絡先リスト中の個人にメッセージを送る要求を含むことができる。様々な実装形態では、要求は、連絡先リスト中の個人に関連する場所への道順を求める要求を含むことができる。
【０００９】
様々な実装形態では、リソース制約付きデバイスに対してローカルな1つまたは複数のリソースは、リソース制約付きデバイスにインストールされた複数のアプリケーションを含むことができる。この方法はさらに、パーソナルアシスタントモジュールによって、1つまたは複数の入力に基づいて、複数のアプリケーションのうちの2つまたはそれ以上の間の曖昧さを除くステップを含むことができる。
【００１０】
様々な実装形態では、リソース制約付きデバイスに対してローカルな1つまたは複数のリソースは、リソース制約付きデバイスのメモリに記憶された複数のメディアファイルを含むことができる。この方法はさらに、パーソナルアシスタントモジュールによって、1つまたは複数の入力に基づいて、複数のメディアファイルのうちの2つまたはそれ以上の間の曖昧さを除くステップを含むことができる。
【００１１】
様々な実装形態では、1つまたは複数の信号は、ユーザとパーソナルアシスタントモジュールとの間の対話履歴に関する1つまたは複数の記録を含むことができる。様々な実装形態では、1つまたは複数の信号は、ユーザとパーソナルアシスタントモジュールとの間の対話履歴に関する1つまたは複数の記録に基づく1つまたは複数の統計を含むことができる。様々な実装形態では、1つまたは複数の信号は、リソース制約付きデバイスの位置座標を含むことができる。
【００１２】
別の態様では、オンラインセマンティックプロセッサによって実施可能な方法は、リソース制約付きデバイス上で動作するパーソナルアシスタントモジュールから、ユーザ要求を示すデータを受け取るステップと、パーソナルアシスタントモジュールの複数の候補状態を含む状態機械を生成するステップであって、各候補状態が、オンラインセマンティックプロセッサによって利用不可能である、かつリソース制約付きデバイスに対してローカルなリソースから確認可能である、1つまたは複数の信号に応じて、要求に潜在的に応答する、ステップと、状態機械を表すデータをリソース制約付きデバイスにダウンロードするステップとを含むことができる。
【００１３】
加えて、いくつかの実装形態は、メモリと、メモリに記憶された命令を実行するように動作可能な1つまたは複数のプロセッサとを備える装置を含み、命令は、前述の方法のいずれかを実施するように構成されている。いくつかの実装形態はまた、前述の方法のいずれかを実施するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶した非一時的なコンピュータ可読記憶媒体を含む。
【００１４】
前述の概念、および本明細書でより詳細に記述される追加の概念の、すべての組合せは、本明細書で開示される主題の一部であるものとして企図されることを認識されたい。例えば、本開示の最後に現れる特許請求される主題のすべての組合せは、本明細書で開示される主題の一部であるものとして企図される。
【図面の簡単な説明】
【００１５】
【図１】コンピュータシステムの例示的なアーキテクチャを示す図である。
【図２】例示的な分散型の音声入力処理環境のブロック図である。
【図３】図2の環境を使用して音声入力を処理する例示的な方法を示すフローチャートである。
【図４】様々な実装形態による、開示される技法を様々なシナリオでどのように実装できるかに関する例を示す図である。
【図５】様々な実装形態による、開示される技法を様々なシナリオでどのように実装できるかに関する例を示す図である。
【図６】様々な実装形態による、パーソナルアシスタントモジュールによって実施可能な例示的な方法を示すフローチャートである。
【図７】様々な実装形態による、オンラインセマンティックプロセッサによって実施可能な例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下で検討される実装形態では、リソース制約付きデバイスに送達されてこのデバイス上で実装されることになる有限状態機械が、クラウドのほぼ無限のリソース(例えば「オンラインセマンティックプロセッサ」の形の)を利用して生成される。様々な実装形態では、リソース制約付きデバイスは、リソース制約付きデバイスに対してローカルなリソースから確認される1つまたは複数の信号に少なくとも部分的に基づいて、状態機械を実装することができる。
【００１７】
ユーザが、自分のスマートウォッチ上で動作しているパーソナルアシスタントモジュールに、「ジョンに電話する」よう命令すると仮定する。オンラインセマンティックプロセッサは、ジョンと呼ばれるいずれかの連絡先が電話上にあるかどうか、または同じ連絡先に対して複数の番号があるかどうかを決定できるように、ユーザのスマートウォッチ(または、ユーザに関連するデバイスの調和的な「生態系」の、他のコンピューティングデバイス)にアクセスすることができない場合がある。複数のシナリオに対処するために、オンラインセマンティックプロセッサは、有限状態機械(または単に「状態機械」)を生成し、これをスマートウォッチに提供することができる。状態機械は複数の状態を含むことができ、各状態は、対応する出力、アクション、および/または別の状態への遷移を、有する場合もあり有さない場合もある。この例では、第1の状態は、「ジョン」という名前の複数の連絡先がユーザのスマートウォッチ上にあるシナリオを表すことができ、この場合、付随する出力は「どのジョンのことですか?」であろう。第2の状態は、複数の電話番号(例えば、職場、モバイルなど)を有する単一の連絡先「ジョン」があるシナリオを表すことができ、この場合、付随する出力は「どの電話番号ですか?」であろう。第3の状態は、1つの電話番号のみを有する1つの連絡先のみがあるシナリオを表すことができる。付随する出力は、ユーザのスマートウォッチ上で開かれていた電話アプリケーション中で例えば表示される、「ジョンに電話する」であろう。状態機械の第4の状態は、合致する連絡先がユーザの連絡先リスト中にないシナリオを表すことができ、この場合、付随する出力は「申し訳ありません。その名前の連絡先はありません。」であろう。
【００１８】
ユーザのスマートウォッチがこの状態機械を受け取ったとき、パーソナルアシスタントモジュールは、スマートウォッチに対してローカルな様々なリソース(例えば、ローカルメモリ、アプリケーションデータ、ログ、センサなど)をポーリングして、1つまたは複数の信号を確認することができ、次いでこの信号をパーソナルアシスタントモジュールが使用して、適切な状態を選択してその状態に遷移することができる。例えば、ユーザの連絡先リスト中に複数の「ジョン」がある場合は、パーソナルアシスタントモジュールは、前述の第1の状態に遷移することができる。しかし、ユーザのスマートウォッチの連絡先リスト中に「ジョン」が1つしかない場合は、パーソナルアシスタントモジュールは、第1の状態をスキップすることができる。複数の電話番号を有する単一の「ジョン」のみがある場合は、パーソナルアシスタントモジュールは、第2の状態に直接遷移することができる。複数の「ジョン」があり、少なくとも1つが複数の電話番号を有する場合は、パーソナルアシスタントモジュールは、最初に第1の状態に遷移し、次いで、曖昧さを除く入力をユーザから受け取った後で第1の状態から第2の状態に遷移することができる。
【００１９】
オンラインセマンティックプロセッサから受け取った状態機械をナビゲートするためにパーソナルアシスタントモジュールによって使用できる「信号」は、静的なデータポイントに限定されない。いくつかの実装形態では、信号は、ユーザとパーソナルアシスタントモジュールとの間の履歴対話データから引き出されてもよい。この情報は、ユーザのモバイルフォン上で利用可能とすることができ、例えば、1つまたは複数のログ(例えば、通話ログによって相互参照されるパーソナルアシスタントログ)から、かつ/または様々なログから生成された統計から、利用可能とすることができる。例えば、ユーザがどの連絡先と最も頻繁に通信するか、ユーザがどの連絡先と一番最近に通信したか、ユーザがどのアプリケーションと最も頻繁にまたは一番最近に対話したか、ユーザがメディアファイルを消費した総回数のうちユーザが特定のタイプまたはジャンルのメディアファイルを何パーセント消費したか、などを示す統計が利用可能である場合がある。このような信号に基づいて、1つまたは複数の状態が、ユーザ入力の要請なしに「スキップされる」(例えば、自動的に辿られる)ことが可能である。
【００２０】
選択された実装形態に関するさらに他の詳細について、以下で検討する。しかし、他の実装形態も企図され、したがって本明細書で開示される実装形態は排他的なものではないことを認識されたい。
【００２１】
次に図面に目を向けるが、いくつかの図を通して、同じ番号は同じ部分を示す。図1は、例示的なコンピュータシステム10の電子コンポーネントのブロック図である。システム10は通常、バスサブシステム14を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ12を備える。これらの周辺デバイスは、記憶サブシステム16(例えば、メモリサブシステム18およびファイル記憶サブシステム20を含む)、ユーザインタフェース入力デバイス22、ユーザインタフェース出力デバイス24、ならびにネットワークインタフェースサブシステム26を含むことができる。入力デバイスおよび出力デバイスは、システム10とのユーザ対話を可能にする。ネットワークインタフェースサブシステム26は、外部ネットワークへのインタフェースを提供し、他のコンピュータシステム中の対応するインタフェースデバイスに結合される。
【００２２】
いくつかの実装形態では、ユーザインタフェース入力デバイス22は、キーボード、ポインティングデバイス(マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなど)、スキャナ、ディスプレイに組み込まれたタッチスクリーン、オーディオ入力デバイス(音声認識システム、マイクロフォンなど)、および/または他のタイプの入力デバイスを含むことができる。一般に、用語「入力デバイス」の使用は、情報をコンピュータシステム10または通信ネットワークに入力するための、可能なすべてのタイプのデバイスおよび方法を含むものとする。
【００２３】
ユーザインタフェース出力デバイス24は、ディスプレイサブシステム、プリンタ、ファクス機、または、オーディオ出力デバイスなどの非視覚的ディスプレイを含むことができる。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または、可視画像を生み出すための他の何らかのメカニズムを含むことができる。ディスプレイサブシステムはまた、オーディオ出力デバイスなどを介して非視覚的な表示を提供することもできる。一般に、用語「出力デバイス」の使用は、情報をコンピュータシステム10からユーザに、または別の機械もしくはコンピュータシステムに出力するための、可能なすべてのタイプのデバイスおよび方法を含むものとする。
【００２４】
記憶サブシステム16は、本明細書に記載のモジュールのうちのいくつかまたはすべての機能を提供するプログラミングおよびデータ構成体を記憶する。例えば、記憶サブシステム16は、以下で開示される方法の選択された態様を実施するためのロジックを含むことができる。
【００２５】
これらのソフトウェアモジュールは一般に、プロセッサ12単独によって、または他のプロセッサとの組合せで実行される。記憶サブシステム16中で使用されるメモリサブシステム18は、いくつかのメモリを含むことができ、これらは、プログラム実行中に命令およびデータを記憶するための主要ランダムアクセスメモリ(RAM)28と、固定された命令が記憶される読取専用メモリ(ROM)30とを含む。ファイル記憶サブシステム20は、プログラムおよびデータファイルのための永続的な記憶域を提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスク(登録商標)ドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含むことができる。いくつかの実装形態の機能を実装するモジュールは、ファイル記憶サブシステム20によって、記憶サブシステム16に記憶されるか、またはプロセッサ12からアクセス可能な他の機械に記憶されるものとすることができる。
【００２６】
バスサブシステム14は、システム10の様々なコンポーネントおよびサブシステムが相互と意図されたように通信できるようにするためのメカニズムを提供する。バスサブシステム14は単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用してもよい。
【００２７】
システム10は、モバイルデバイス、ポータブル電子デバイス、組込みデバイス、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルデバイス、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または他のいずれかのデータ処理システムもしくはコンピューティングデバイスを含めた、種々のタイプのものであってよい。加えて、システム10によって実装される機能は、1つまたは複数のネットワークを介して(例えば、クライアント-サーバ、ピアツーピア、または他のネットワーキング配置構成において)相互接続された複数のシステム間で分散されてもよい。コンピュータおよびネットワークは絶えず変化する性質を持つので、図1に描かれるシステム10に関する記述は、いくつかの実装形態を例証するための具体例とするに過ぎない。図1に描かれるコンピュータシステムよりも多いかまたは少ないコンポーネントを有する、システム10の他の多くの構成も可能である。
【００２８】
以下で検討される実装形態は、本明細書で開示される機能の様々な組合せを実装する1つまたは複数の方法を含むことができる。他の実装形態は、本明細書に記載の方法のうちの1つまたは複数などの方法を実施するためにプロセッサによって実行可能な命令を記憶した非一時的なコンピュータ可読記憶媒体を含むことができる。さらに他の実装形態は、メモリと、メモリに記憶された命令を実行して本明細書に記載の方法のうちの1つまたは複数などの方法を実施するように動作可能な1つまたは複数のプロセッサとを備える装置を含むことができる。
【００２９】
後述の様々なプログラムコードは、それが具体的な実装形態において実装される応用例に基づいて識別される場合がある。しかし、後続のいずれかの特定のプログラム命名法は、便宜上使用されるに過ぎないことを認識されたい。さらに、コンピュータプログラムがルーチン、手続き、メソッド、モジュール、オブジェクトなどに編成され得る方式は無数にあり、また、通常のコンピュータ内にある様々なソフトウェア層(例えば、オペレーティングシステム、ライブラリ、API、アプリケーション、アプレットなど)の間でプログラム機能が割り振られ得る方式は様々であることから、いくつかの実装形態は、本明細書に記載のプログラム機能の具体的な編成および割振りに限定されない場合があることを認識されたい。
【００３０】
さらに、任意のプログラムコードによって実施できる、または任意のルーチンやワークフローなどにおいて実施できる、本明細書に記載の様々な動作は、結合、分離、並べ替え、省略、逐次的実施もしくは並行実施、および/または他の技法による補足がなされてもよく、したがって、いくつかの実装形態は本明細書に記載の特定の動作シーケンスに限定されないことは、認識されるであろう。
【００３１】
図2に、例えばオンラインセマンティックプロセッサ54などのオンラインサービスと通信する音声対応デバイス52と共に使用するための、例示的な分散型の音声入力処理環境50を示す。以下で検討される実装形態では、例えば、音声対応デバイス52は、セルラーフォンやタブレットコンピュータなどのモバイルデバイスとして記述される。しかし、他の実装形態は、他の多様な音声対応デバイスを利用することができ、したがって、以下でモバイルデバイスに言及する場合、これは、以下の検討を単純にするために過ぎない。数えきれない他のタイプの音声対応デバイスが、本明細書に記載の機能を使用することができ、例えばこれらのデバイスは、ラップトップコンピュータ、腕時計、頭部搭載デバイス、仮想または拡張現実デバイス、他のウェアラブルデバイス、オーディオ/ビデオシステム、ナビゲーションシステム、自動車および他の車両システム、スタンドアロン音声コマンドデバイスなどを含む。さらに、このような音声対応デバイスの多くは、リソース制約を受けると考えることができる。すなわち、ほぼ無限のコンピューティングリソースを個々のタスクに充てることができるオンラインまたはクラウドベースのサービスのキャパシティと比較したときは特に、このようなデバイスのメモリおよび/または処理キャパシティが、技術的、経済的、または他の理由に基づいて制約される場合があるという点で、リソース制約を受けると考えることができる。
【００３２】
いくつかの実装形態におけるオンラインセマンティックプロセッサ54は、クラウドインフラストラクチャを採用するクラウドベースのサービスとして実装されるものとすることができる(例えば、複数のユーザからの高ボリュームの要求を扱うのに適したソフトウェアを実行する、サーバファーム、または高性能コンピュータのクラスタを使用して)。オンラインセマンティックプロセッサ54は、音声ベースの要求に限定されるとは限らず、例えばテキストベースの要求や画像ベースの要求など、他のタイプの要求を扱うことができる場合もある。いくつかの実装形態では、オンラインセマンティックプロセッサ54は、電話やテキストや電子メールなどを介してアラームもしくはリマインダを設定すること、リストを管理すること、他のユーザとの通信を開始すること、または、音声入力を介して開始できる他のアクションを実施することなど、音声ベースの要求を扱うことができる。本開示においては、音声ベースの要求および他の形の音声入力は、音声ベースの要求が検索の開始、質問の提起、コマンドの発行などのどれを求めるものかにかかわらず、音声ベースの要求と総称される場合がある。したがって、一般に、1つまたは複数の単語または句を例えば含むどんな音声入力も、例証される実装形態のコンテキスト内で、音声ベースの要求と考えることができる。
【００３３】
図2の実装形態では、音声対応デバイス52から受け取られた音声入力は、音声対応アプリケーション(または「アプリ」)によって処理され、このアプリは、図2ではパーソナルアシスタントモジュール56の形をとっている。他の実装形態では、音声入力は、音声対応デバイス52のオペレーティングシステムまたはファームウェア内で扱われる場合がある。例証される実装形態におけるパーソナルアシスタントモジュール56は、音声アクションモジュール58、オンラインインタフェースモジュール60、およびレンダリング/同期モジュール62を備える。音声アクションモジュール58は、パーソナルアシスタントモジュール56に向けられた音声入力を受け取り、音声入力の分析と、音声対応デバイス52のユーザのための1つまたは複数のアクションの実施とを調和させる。オンラインインタフェースモジュール60は、音声入力をオンラインセマンティックプロセッサ54に転送することおよびそれに対する応答を受け取ることを含めて、オンラインセマンティックプロセッサ54とのインタフェースを提供する。レンダリング/同期モジュール62は、例えば特定の音声対応デバイスに適した視覚表示、話されるオーディオ、または他のフィードバックインタフェースを介した、ユーザへの応答のレンダリングを管理する。加えて、いくつかの実装形態では、モジュール62は、オンラインセマンティックプロセッサ54との同期も扱う。これは例えば、応答またはアクションが、オンライン検索サービス中でユーザについて維持されているデータに影響を及ぼすときは常に行われる(例えば、音声入力が、クラウドベースのカレンダ中で維持される予約の作成を要求する場合)。
【００３４】
パーソナルアシスタントモジュール56は、音声入力を扱うために、様々なミドルウェア、フレームワーク、オペレーティングシステム、および/またはファームウェアモジュールに依拠することができ、これらは例えば、ストリーミング音声-テキストモジュール64およびセマンティックプロセッサモジュール66を含む。セマンティックプロセッサモジュール66は、パーサモジュール68、ダイアログマネージャモジュール70、およびアクションビルダモジュール72を備える。
【００３５】
モジュール64は、音声入力のオーディオ録音を、例えばディジタルオーディオデータの形で受け取り、ディジタルオーディオデータを1つまたは複数のテキスト単語または句(本明細書では「トークン」とも呼ばれる)に変換する。例証される実装形態では、モジュール64はストリーミングモジュールでもあり、したがって、音声入力は、リアルタイムまたはほぼリアルタイムでトークンごとにテキストに変換され、それにより、トークンは、ユーザの発話と実質的に同時に、したがってユーザが完全な口頭要求を発音する前に、モジュール64から出力されることが可能である。モジュール64は、ローカルに記憶された1つまたは複数のオフライン音響および/または言語モデル74に依拠することができ、これらは共に、オーディオ信号と、言語における音声学的単位(言語における単語シーケンスと共に)との関係をモデリングする。いくつかの実装形態では、単一のモデル74が使用される場合があるが、他の実装形態では、複数のモデルがサポートされる場合があり、例えばそれにより、複数の言語や複数の話者などがサポートされる。
【００３６】
モジュール64が発話をテキストに変換するのに対して、モジュール66は、適切な応答を形成するために、モジュール64によって出力されたテキストのセマンティクスまたは意味を見分けようとする。パーサモジュール68は、例えば、1つまたは複数のオフライン文法モデル76に依拠して、テキストを特定のアクションにマッピングし、そのようなアクションの実施を制約する属性(例えば、そのようなアクションへの入力変数)を識別する。いくつかの実装形態では、単一のモデル76が使用される場合があるが、他の実装形態では、複数のモデルがサポートされる場合があり、例えばそれにより、異なる複数のアクションまたはアクション領域(すなわち、通信関係アクション、検索関係アクション、視聴覚関係アクション、カレンダ関係アクション、デバイス制御関係アクションなど、関係するアクションの集合)がサポートされる。
【００３７】
例として、オフライン文法モデル76は、「リマインダを設定する」などのアクションをサポートすることができ、このアクションは、どんなタイプのリマインダを設定するかを指定するリマインダタイプパラメータと、リマインダに関連する1つまたは複数のアイテムを指定するアイテムパラメータと、リマインダをアクティブ化してユーザに注意喚起する時刻を指定する時刻パラメータとを有する。パーサモジュール68は、「〜するよう注意喚起してください」、「買う」、「パン」、および「仕事の後で」などの一連のトークンを受け取り、一連のトークンを、「買物リマインダ」に設定されたリマインダタイプパラメータと、「パン」に設定されたアイテムパラメータと、「午後5時00分」の時刻パラメータとを有するリマインダ設定アクションにマッピングすることができ、それにより、この日の午後5時00分にユーザは「パンを買う」リマインダを受け取る。
【００３８】
パーサモジュール68はまた、ユーザとのダイアログを管理するダイアログマネージャモジュール70と共に働くこともできる。ダイアログは、このコンテキスト内では、2人の個人間の会話に類似する音声入力および応答のセットのことを指す。したがって、モジュール70は、ダイアログの「状態」を維持して、前の音声入力においてユーザから得られた情報が後続の音声入力の処理時に使用されるのを可能にする。よって、例えば、ユーザが「パンを買うよう注意喚起してください」と言う場合、応答は、「わかりました。いつ注意喚起されたいですか?」と言うように生成されてよく、それにより、後続の音声入力「仕事の後で」が元の要求に逆戻りに結び付けられて、リマインダが作成されることになる。いくつかの実装形態では、モジュール70は、パーソナルアシスタントモジュール56の一部として実装されてもよい。
【００３９】
本明細書に記載の様々な実装形態では、ダイアログマネージャモジュール70は、例えば音声対応デバイス52を操作するユーザからオンラインセマンティックプロセッサ54が要求を受け取った後でオンラインセマンティックプロセッサ54から、パーソナルアシスタントモジュール56の複数の候補状態を含む状態機械を表すデータを受け取ることができる。各候補状態は、ユーザからの要求に潜在的に応答するものとすることができる。モジュール70は、単独でまたはパーソナルアシスタントモジュール56と共に、音声対応デバイス52に対してローカルな1つまたは複数のリソースを分析して、オンラインセマンティックプロセッサ54によって利用可能でない1つまたは複数の信号を確認することができる。この1つまたは複数の信号に基づいて、次いでダイアログマネージャモジュール70および/またはパーソナルアシスタントモジュール56は、複数の候補状態のうちの所与の状態を選択し、その状態に遷移することができる。
【００４０】
アクションビルダモジュール72は、音声入力解釈を表す解析されたテキストをパーサモジュール68から受け取り、パーソナルアシスタントモジュール56のモジュール62によって処理されるように、1つまたは複数の応答アクションまたは「タスク」を、関連するパラメータがあればそれと共に生成する。アクションビルダモジュール72は、解析されたテキストからアクションを作成するための様々な規則を組み込んだ1つまたは複数のオフラインアクションモデル78に依拠することができる。いくつかの実装形態では、例えば、アクションは、F(IT)=AUのような関数Fとして定義されてよく、ここで、Tは、入力された解釈のタイプを表し、Uは、出力されるアクションを表す。したがって、Fは、相互に(例えばf(it)=auとして)マッピングされる複数の入力ペア(T,U)を含むことができ、ここで、itは、タイプtの入力プロト変数であり、auは、タイプuの出力モジュラー引数またはパラメータである。いくつかのパラメータは、音声入力として直接受け取られる場合があり、いくつかのパラメータは、他の方式で、例えば、ユーザの場所や人口統計情報に基づいて、またはユーザに特有な他の情報に基づいて決定される場合があることは、認識されるであろう。例えば、ユーザが「食料雑貨店でパンを買うよう注意喚起してください」と言う場合、ユーザの現在場所や、職場と家との間のユーザの既知の経路や、ユーザがいつも行く食料雑貨店などの追加情報なしでは、場所パラメータは決定可能でないことがある。
【００４１】
いくつかの実装形態では、モデル74、76、および78は、より少ないモデルに結合させるかまたは追加のモデルに分離させることができること、またモジュール64、68、70、および72の機能も同様とすることができることは、認識されるであろう。さらに、モデル74〜78が音声対応デバイス52上にローカルに記憶され、したがってデバイス52がオンラインセマンティックプロセッサ54と通信していないときにオフラインでアクセス可能である限り、これらのモデルは本明細書ではオフラインモデルと呼ばれる。さらに、モジュール56は、本明細書ではパーソナルアシスタントモジュールであるものとして記述されるが、これは限定とするものではない。様々な実装形態では、音声対応デバイス52上で動作する任意のタイプのアプリが、本明細書に記載の技法を実施して、オンラインセマンティックプロセッサ54から受け取った状態機械を実装することができる。
【００４２】
様々な実装形態では、オンラインセマンティックプロセッサ54は、様々な音響/言語、文法、および/またはアクションモデル82に依拠する音声ベースのクエリプロセッサ80を例えば使用して音声入力を扱うための補足的機能を備えることができる。いくつかの実装形態では、音声対応デバイス52がリソース制約付きデバイスであるときは特に、音声ベースのクエリプロセッサ80およびそれによって使用されるモデル82は、音声対応デバイス52に対してローカルである場合よりも複雑で計算リソース集約的な音声処理機能を実装することができることは、認識されるであろう。
【００４３】
いくつかの実装形態では、複数の音声ベースのクエリプロセッサ80が採用されてよく、各音声ベースのクエリプロセッサ80は、1つまたは複数の個別のパーソナルアシスタントモジュール56に対するオンライン相対物としての働きをする。例えば、いくつかの実装形態では、ユーザの生態系中の各デバイスが、ユーザに関連する(例えば、ユーザの選好で構成される、同じ対話履歴に関連する、など)パーソナルアシスタントモジュール56のインスタンスを動作させるように構成されることがある。ユーザがその時にどのデバイスを操作しているかに応じて、パーソナルアシスタントモジュール56のこれらの複数のインスタンスのそれぞれから、音声ベースのクエリプロセッサ80の単一のユーザ中心オンラインインスタンスにアクセス可能とすることができる。
【００４４】
いくつかの実装形態では、オンライン機能とオフライン機能の両方がサポートされてよく、例えばそれにより、オンライン機能は、デバイスがオンラインサービスと通信しているときはいつでも使用され、オフライン機能は、接続性が存在しないときに使用される。他の実装形態では、オンライン機能とオフライン機能に、異なるアクションまたはアクション領域が割り振られてよく、さらに他の実装形態では、オンライン機能は、オフライン機能が特定の音声入力を適切に扱うことができないときにのみ使用されるものとすることができる。しかし、他の実装形態では、補足的なオンライン機能は使用されないものとすることができる。
【００４５】
例えば、図3に、音声入力を扱うために音声対応デバイス52によって実行できる音声処理ルーチン100を示す。ルーチン100は、ブロック102で、音声入力を例えばディジタルオーディオ信号の形で受け取ることによって開始する。この実装形態では、音声入力をオンライン検索サービスに転送する最初の試みがなされる(ブロック104)。不成功であった場合、例えば接続性がないかまたはオンライン検索サービスからの応答がないせいで不成功であった場合は、ブロック106は制御をブロック108に渡して、音声入力をテキストトークンに変換し(ブロック108。例えば図2のモジュール64を使用して)、テキストトークンを解析し(ブロック110。例えば図2のモジュール68を使用して)、解析されたテキストからアクションを構築する(ブロック112。例えば図2のモジュール72を使用して)。次いで、得られたアクションを使用してクライアント側のレンダリングおよび同期が実施され(ブロック114。例えば図2のモジュール62を使用して)、音声入力の処理は完了する。
【００４６】
ブロック106に戻り、音声入力をオンライン検索サービスに転送する試みが成功した場合は、ブロック106はブロック108〜112を迂回し、制御をブロック114に直接渡して、クライアント側のレンダリングおよび同期を実施する。次いで、音声入力の処理は完了する。他の実装形態では、上で言及したように、例えば音声入力をローカルに扱えるときに不要なデータ通信を回避するために、オンライン処理の前にオフライン処理が試みられてもよいことは、認識されるであろう。
【００４７】
図4で、例示的なシナリオ420を概略的に実証するが、このシナリオでは、パーソナルアシスタントモジュール56は、例えば音声ベースのクエリプロセッサ80を用いて、オンラインセマンティックプロセッサ54から状態機械を受け取ることができ、それにより、パーソナルアシスタントモジュール56は、音声対応デバイス52に対してローカルな1つまたは複数のリソースを分析して、オンラインセマンティックプロセッサ54および/または音声ベースのクエリプロセッサ80によって利用不可能な1つまたは複数の信号を確認することができる。分析に基づいて、パーソナルアシスタントモジュール56は、1つまたは複数の信号に基づいて選択された、複数の候補状態のうちの所与の状態に遷移することができる。
【００４８】
この例では、ユーザ要求422は、話された句「この瞬間を取り込もう」の形の音声入力を含む。ユーザ要求422に応答して、パーソナルアシスタントモジュール56の複数の候補状態4241〜3を含む状態機械が、例えばオンラインセマンティックプロセッサ54によって生成されてよい。各候補状態424は、クエリに潜在的に応答するものとすることができる。例えば、第1の候補状態4241では、パーソナルアシスタントモジュール56は、音声対応デバイス52にインストールされている可能性のある潜在的に複数のカメラアプリからの特定のカメラアプリの標識を、ユーザに要請することができる。第1の候補状態4241は、「わかりました。どのカメラアプリケーションを使いたいですか?」などの出力(可聴または視覚的)を含むことができる。第2の候補状態4242では、パーソナルアシスタントモジュール56は、例えば「写真ですか?それともビデオですか?」などの発話を出力することによって、写真を取り込みたいのかそれともビデオを取り込みたいのかを示す標識をユーザに要請することができる。第3の候補状態4243では、パーソナルアシスタントモジュール56は、フラッシュを使用したいかどうかを示すようユーザに要請することができる。
【００４９】
矢印によって示されるように、状態機械の状態424は、状態機械の他の状態に至ることができる。例えば、ユーザが第1の候補状態4241のプロンプトに応答した後、パーソナルアシスタントモジュール56は、第2の候補状態4242に遷移して、ユーザが写真を撮りたいのかそれともビデオを撮りたいのかを示す入力を要請することができ、次いで第3の候補状態4243に遷移して、ユーザがフラッシュを使用したいかどうかを示す入力を要請することができる。しかし、ユーザが要求422を発行するたびに3つの状態すべてを辿ることがユーザに必要とされるなら、プロセスに時間がかかりすぎることになるので、ユーザはいらだたしく感じる可能性が高いであろう。さらに、発話出力を提供してそれに対する応答を得ることは、電池電力、プロセッササイクル、および/またはメモリなど、計算リソースを消費するであろう。したがって、様々な実装形態では、パーソナルアシスタントモジュール56は、音声対応デバイス52に対してローカルなリソースを分析して、ユーザに入力を要請することなくいずれかの状態424をスキップできるかどうかを決定することができる。
【００５０】
図4の状態機械を受け取ると、パーソナルアシスタントモジュール56は、例えば音声対応デバイス52に対してローカルに記憶された(かつオンラインセマンティックプロセッサ54によって容易に利用可能でない)、インストール済みアプリケーションのレジストリおよび/またはユーザ対話ログなどのソースから、ユーザが写真およびビデオの撮影に特定のカメラアプリをほぼ排他的に使用していることを決定する、と仮定する。この決定に基づいて、パーソナルアシスタントモジュール56は、第1の候補状態4241を「スキップ」することができる。いくつかの実装形態では、パーソナルアシスタントモジュール56は、要求422に応答してトリガされる(例えば、不揮発性メモリから立ち上げられる、またはアクティブにされる)べきアプリが特定のカメラアプリであることを、アクションビルダ72など音声対応デバイス52の他のコンポーネントに通知することができる。
【００５１】
第2の候補状態4242で、パーソナルアシスタントモジュール56は、選択されたカメラアプリケーションに関連する使用ログなど、音声対応デバイス52に対してローカルなリソースをもう一度分析して、ビデオか写真かを尋ねるプロンプトが必要かどうかを決定することができる。使用ログがこの2つの間のどんな明確な選好も明らかにしない場合は、パーソナルアシスタントモジュール56は、ユーザがビデオを撮りたいのかそれとも写真を撮りたいのかを決定するために、第2の候補状態4242に関連する出力を発行することができる。ユーザの応答は、例えばパラメータとしてパーソナルアシスタントモジュール56によってアクションビルダ72に提供されてよく、それにより、選択されたカメラアプリがトリガされたとき、カメラアプリはすでに、ユーザが示したように写真またはビデオを撮影するように設定されている。他方、ユーザが一方または他方の撮影を明確に選好することを使用ログが示す場合は、好まれるフォーマットに関連するパラメータがアクションビルダ72に提供されてよい。
【００５２】
様々な実装形態では、このような選好は、様々な方法で決定することができる。いくつかの実装形態では、ユーザが履歴的に、選択されたカメラアプリを操作してアプリの総使用回数の少なくともしきい値パーセンテージにわたり写真またはビデオを撮影してきた場合は、モードは自動的に選択されるものとすることができる。他の実装形態では、パーソナルアシスタントモジュール56は、選択されたカメラアプリの一番最近の使用を分析して、ユーザが最近にどのように操作していたかを決定することができ、この分析に基づいてモードを選択することができる。例えば、ユーザが誕生パーティの場におり一連のビデオを撮影していた場合は、ユーザが選択されたアプリを操作して履歴的に普通は写真を撮るにもかかわらず、ビデオモードが選択されるものとすることができる。
【００５３】
写真またはビデオを撮る決定がなされた(自動的な決定であっても、ユーザ入力に応答した決定であっても)後、パーソナルアシスタントモジュール56は、第3の候補状態4243に遷移することができる。第3の候補状態4243で、パーソナルアシスタントモジュール56は、環境中の周囲光を検出するように構成された光センサからの信号など、音声対応デバイス52に対してローカルなリソースをもう一度分析して、フラッシュの使用が正当化されるかどうかを決定することができる。光センサからの信号が、暗い環境を示す場合は、パーソナルアシスタントモジュール56は、選択されたカメラアプリがトリガされたときにフラッシュがイネーブルにされるべきであることを、アクションビルダ72などのコンポーネントに通知することができる。光センサからの信号が、十分に照明された環境(例えば日中の屋外)を示す場合は、パーソナルアシスタントモジュール56は、選択されたカメラアプリがトリガされたときにフラッシュがディセーブルにされるべきであることを、アクションビルダ72などのコンポーネントに通知することができる。光センサからの信号が決定的でない場合は、パーソナルアシスタントモジュール56は、例えば発話出力を使用して、フラッシュがイネーブルにされるべきか否かを示すようユーザに促すことができる。
【００５４】
図5に、オンラインセマンティックプロセッサによって提供された状態機械をパーソナルアシスタントモジュール56が受け取って辿ることができる、別の例示的なシナリオ520を描く。この例では、ユーザ要求522は、口頭要求「ジョンに電話しよう」を含む。ユーザ要求522を発行したユーザが「John」または「Jon」という名前の複数の連絡先を有すると仮定すると、ユーザ要求522は、ユーザがどの「ジョン」に言及しているのかに関して曖昧である。したがって、オンラインセマンティックプロセッサ54は、潜在的に複数ある連絡先の間の曖昧さを除くためにパーソナルアシスタントモジュール56によって辿ることのできる、複数の候補状態5241〜Nを識別することができる。
【００５５】
第1の候補状態5241では、パーソナルアシスタントモジュール56は、どのジョンに電話するのかを示す入力をユーザに要請することになる。第2の候補状態5242では、パーソナルアシスタントモジュール56は、選択された「ジョン」連絡先のどの番号(例えば、モバイル、家、職場)にダイヤルするのかを示す入力を、ユーザに要請することになる。第3の候補状態5243では、パーソナルアシスタントモジュール56は、通話を開始して対応する出力を提供することになる。第4の候補状態5244では、パーソナルアシスタントモジュール56は、そのような連絡先が存在しないことをユーザに通知することになる。矢印で示されるように、様々なシナリオで、第1の候補状態5241は第2の候補状態5242に遷移することができ、そして第2の候補状態5242は第3の候補状態5243に遷移することができる。
【００５６】
図5に描かれる状態機械を受け取ると、パーソナルアシスタントモジュール56は、名前「John」または「Jon」を有する連絡先を求めて、連絡先リストやソーシャルネットワーキング友達リストなど、音声対応デバイス52に対してローカルなリソースをポーリングすることができる。単一の合致する連絡先が見つかった場合、パーソナルアシスタントモジュール56は、合致する連絡先に対して複数の電話番号があるならば、第2の候補状態5242に直接進むことができ、合致する連絡先の単一の電話番号のみがあるならば、スキップして第3の候補状態5243に進むことができる。他方、合致する連絡先が複数見つかった場合は、パーソナルアシスタントモジュール56は、どのJohn/Jonかを示すようユーザに促す(例えば発話出力を使用して)ことができ、または、情報信号を求めて、音声対応デバイス52に対してローカルなリソースをポーリングすることができ、次いでこの情報信号を使用して、特定の連絡先を自動的に選択することができる。
【００５７】
様々な情報信号に基づいて、複数の潜在的な合致する連絡先から連絡先が自動的に選択されるものとすることができ、より一般的には、複数のオプション/入力パラメータから、所与の候補状態についてのオプション/入力パラメータが自動的に選択されるものとすることができる。いくつかの実装形態では、オプション/入力パラメータは、ユーザと、前に言及したデバイスの「生態系」など、ユーザによって操作される1つまたは複数のコンピューティングデバイスとの間の対話の履歴に、少なくとも部分的に基づくことができる。ユーザと1つまたは複数のコンピューティングデバイスとの間の対話の履歴は、共にまたは別々に記憶されている場合のある様々なユーザ対話記録を含むことができる。
【００５８】
例えば、複数の合致する連絡先から選択するとき、パーソナルアシスタントモジュール56は、通話ログ(または、複数の代替的な電話発信アプリケーションがある場合は、1つよりも多い通話ログ)、テキストメッセージ履歴、電子メール履歴(例えば、受信箱および送信済みメール)、ならびに他の類似のソースなど、音声対応デバイスに対してローカルなリソースを調べて、ユーザがどの合致する連絡先を意味したのかを「推測」することができる。例えば、ユーザ要求522を発行したユーザが連絡先リスト中の「John」または「Jon」という名前を有する誰かに連絡を取るときに、「ジョンゼニス」という名前の特定の連絡先が、履歴的に、ユーザによって標的にされた最もポピュラーな「John/Jon」であり、その次に「ジョンアダムズ」という名前の別の連絡先が続き、以下続くことが、例えば通話ログ、テキストメッセージ履歴、電子メール履歴などから決定される場合がある。いくつかの実装形態では、「John」または「Jon」という名前の最もポピュラーな連絡先が自動的に選択されるものとすることができる。次いで、パーソナルアシスタントモジュール56は、複数の電話番号がある場合は第2の候補状態5242に直接遷移することができ、「John/Jon」という名前の選択された連絡先に対して電話番号が1つしかない場合は、どんな出力も発行せずに第2の候補状態5242をスキップし、第3の候補状態5243に直接進むことができる。
【００５９】
いくつかの実装形態では、候補状態についてのオプション/入力パラメータは、十分に類似すると見なされる別のタスクに関連する1つまたは複数の情報信号に少なくとも部分的に基づいて、パーソナルアシスタントモジュール56によって自動的に選択されるものとすることができる。例えば、複数の「John/Jon」のうちの誰に電話するかを決定する際、電話アプリを使用した以前の電話通話や、SMSアプリを使用して送られた以前のテキストなど、「John/Jon」という名前の特定の連絡先との任意の形の以前の接触が、電話すべき特定の連絡先を自動的に選択するかどうかを決定するときに一括して考慮されるものとすることができる。「ジョンに電話する」というパーソナルアシスタントモジュールへの要求に応答して特に、ユーザのメッセージング履歴中で検出された以前の電話発信アクティビティがないと仮定する。しかし、「ジョンにテキスト送信する」というパーソナルアシスタントモジュールへの以前のユーザ要求に応答して、ユーザが「ジョンジョーンズ」という名前の連絡先にテキストメッセージを送った記録がある。このメッセージングタスクと電話発信タスクは十分に類似すると見なすことができ、したがって、「ジョンに電話する」要求に応答して、パーソナルアシスタントモジュール56は、ユーザがジョンジョーンズに電話したいと思っていると推論することができる。
【００６０】
生ポピュラリティに加えて、またはそれに代えて、様々な実装形態では、ユーザが最近にどのように挙動したかに少なくとも部分的に基づいて特定のオプション/入力パラメータが選択されてもよい。ユーザが履歴的に、「ジョンに電話する」要求を発行した後で「ジョンゼニス」を「ジョンアダムズ」よりも頻繁に選んだと仮定する。しかし、ユーザが、最近の事例では(例えば先週にわたって)、「ジョンアダムズ」を「ジョンゼニス」よりも頻繁に選択したと仮定する。いくつかの実装形態では、このことが考慮に入れられて、ジョンゼニスでなくジョンアダムズが選択されるものとすることができる。
【００６１】
特定のオプション/入力パラメータがパーソナルアシスタントモジュール56によって自動的に選択される可能性は、様々な信号に応答して時間の経過に伴って変化することがある。いくつかの実装形態では、特定のオプション/入力パラメータが選択される可能性は、選択されたタスクの開始に続く、ユーザと生態系の1つまたは複数の音声対応デバイス52との間の1つまたは複数の対話に基づくことができる。第1の候補状態5241にある間に、ジョンアダムズがパーソナルアシスタントモジュール56によって自動的に選択され、ジョンアダムズの電話番号が事前ダイヤルされた状態で電話アプリが開始されると仮定する。さらに、ユーザが「話す」を押して通話を開始すると仮定する。このユーザ対話はポジティブフィードバックと解釈されてよく、したがってこれは、将来に第1の候補状態5241でジョンアダムズが自動的に選択される可能性を高める。同様に、ユーザが、ジョンアダムズの番号が事前ダイヤルされた状態での電話アプリのインスタンス化を拒否し、その代わりに新しい番号を手動でダイヤルした場合は、この対話はネガティブフィードバックと解釈されてよく、これは、将来にジョンアダムズが自動的に選択される可能性を低下させる。
【００６２】
協働するアプリもまた、特定のオプション/入力パラメータがパーソナルアシスタントモジュール56によって自動的に選択されるかどうかに影響を及ぼすことがある。ユーザが、図5のユーザ要求522によって表される音声コマンドを音声対応デバイス52に発行すると仮定する。さらに、SMSアプリがすでにバックグラウンドで開いており、ユーザが最近、ジョンブラッドリーという名前の連絡先とテキスト通信していたと仮定する。SMSアプリがすでに開いていることは、それだけで、またはユーザが最近にジョンブラッドリーとテキスト通信していたことと共に、ジョンブラッドリーが自動的に選択される可能性をやはり高める。
【００６３】
追加または代替として、パーソナルアシスタントモジュール56に発行された曖昧な要求に応答して、オプション/入力パラメータに関連する他の情報信号を使用してこれらのオプション/入力パラメータから自動的に選択されてもよい。例えば、「スヴェン」という名前の2つの連絡先を有するユーザが、「スヴェンに電話する」要求を発行すると仮定する。一方のスヴェン連絡先が、通常は好まれるものとすることができる。しかし、パーソナルアシスタントモジュール56が、音声対応デバイス52に対してローカルなリソース(例えば、カレンダ、電子メール、テキストメッセージなど)をポーリングして、ユーザが他方のスヴェンとスケジュールされたミーティングを近い将来に有すると決定した場合は、他方のスヴェンが選択される可能性が、ミーティングまで、ミーティング中、およびおそらくはミーティング後しばらくの間、少なくとも一時的に高められるものとすることができる。同様に、音声対応デバイス52に対してローカルなリソースが、一方のスヴェンの誕生日が近づいていること、または一方のスヴェンが特定のフライトで町に到着するようスケジュールされていることを明らかにする場合は、一方のスヴェンが他方のスヴェンよりも自動的に選択される可能性が少なくとも一時的に高まるものとすることができる。
【００６４】
いくつかの実装形態では、特定のオプション/入力パラメータがパーソナルアシスタントモジュール56によって(例えば第1の候補状態5241で)選択される可能性は、ユーザの現在のコンテキストと、ユーザが過去に同じまたは類似のタスクを実施したときのユーザのコンテキストとの間の類似度に基づくことができる。ユーザが通常、平日は同僚のデイヴィッドスミスに電話し、週末は兄弟のデイヴィッドジョーンズに電話すると仮定する。ユーザが平日に「デイヴに電話する」要求を発行した場合、ユーザのコンテキストは、ユーザがデイヴィッドスミスに電話した以前の事例に、より類似するであろう。それにより、デイヴィッドスミスが選択される可能性が高められる。同様に、ユーザが週末にこの要求を発行した場合、ユーザのコンテキストは、ユーザがデイヴィッドジョーンズに電話した以前の事例に、より類似するであろう。このことは、第1の候補状態5241でデイヴィッドジョーンズが選択される可能性を高めることができる。
【００６５】
連絡先を選択するために、より複雑なコンテキスト上の比較が実施されてもよい。いくつかの実装形態では、以前および現在のコンテキストから特徴が抽出されて、これらが比較されて類似度が決定されてよい。様々な技法を採用してコンテキスト間の類似度が計算されてよく、これらの技法は、次のものに限定されないが、カルバック-ライブラー(KL)ダイバージェンス、コサイン類似度、レーベンシュタイン距離などを含む。例えば、522などの要求が発行されると、ユーザのパーソナルアシスタントモジュール56によって、ユーザの現在のコンテキストに対応する特徴ベクトルが、図5の状態機械に類似する状態機械の以前の実装中にユーザのコンテキストについて生成された特徴ベクトルと比較されるものとすることができる。ユーザの現在のコンテキストを表す特徴ベクトルに最も類似する過去の特徴ベクトルが、応答となる見込みが最も高いと見なされるものとすることができ、したがって、この特徴ベクトルを使用して複数の連絡先からの選択がなされてよい。ユーザの現在のコンテキストを表す特徴ベクトルに最も類似しない過去の特徴ベクトルは、応答となる見込みが最も低いと見なされるものとすることができる。結果的に、この以前のコンテキストでユーザによって電話がかけられた連絡先は、第1の候補状態5241で自動的に選択される可能性が最も低いものとすることができる。
【００６６】
上の例では、第1の候補状態5241でパーソナルアシスタントモジュール56によって複数の連絡先から自動的に選択されることを述べている。しかし、これは限定とするものではない。パーソナルアシスタントモジュール56は、様々な候補状態で同様の技法を採用して、複数のオプションおよび/または入力パラメータから選択することができる。例えば、第2の候補状態5242で同様の技法をパーソナルアシスタントモジュール56によって採用して、「John/Jon」という名前の特定の連絡先のどの電話番号にかけるべきかを選択することができる。
【００６７】
図6に、音声ベースのクエリプロセッサ80を例えば用いてユーザ要求をオンラインセマンティックプロセッサ54に提供し、それに応答して有限状態機械を受け取って実装するために、パーソナルアシスタントモジュール56によって実行するのに適したルーチン650を示す。ルーチン650は、音声ベースのクエリを処理するサービスと同じサービスによって実行されてもよく、または全く異なるサービスであってもよい。
【００６８】
ブロック652で、音声入力が、例えばディジタルオーディオ信号の形で受け取られる。ブロック654で、ユーザ要求は、オンラインセマンティックプロセッサ54にアップロードされるものとすることができる。いくつかの実装形態では、音声入力は、アップロードの前にテキストトークンに変換されてよい(例えば、図2のモジュール64および/またはモデル82を使用して)。他の実装形態では、オーディオデータは、オンラインセマンティックプロセッサ54に直接アップロードされてよく、オンラインセマンティックプロセッサ54自体が音声入力をテキストトークンに変換することができる。
【００６９】
ブロック656で、パーソナルアシスタントモジュール56は、例えばオンラインセマンティックプロセッサ54から直接にまたは間接的に、状態機械を受け取ることができる。ブロック658で、パーソナルアシスタントモジュール56は、音声対応デバイス52に対してローカルなリソースを分析(例えばポーリング)して、1つまたは複数の情報信号を確認する。例えば、また前述のように、パーソナルアシスタントモジュール56は、様々なローカルリソースから情報信号を得ることができ、これらのローカルリソースは、次のものに限定されないが、連絡先リスト;通話ログ;テキストメッセージングログ;インストール済みアプリケーションレジストリ;カレンダ;電子メール;ソーシャルネットワーキングログ;位置座標センサ(例えば、GPS、セルラー三角測量)、光センサ、および/または加速度計などのセンサ;タスクリスト;アプリケーションログなどを含む。
【００７０】
ブロック660で、パーソナルアシスタントモジュール56は、ブロック658で確認された信号のうちの1つまたは複数に基づいて、所与の状態に遷移することができる。例えば、また前述のように、音声対応デバイス52に対してローカルなリソースに対するポーリングから、単一のカメラアプリケーションのみがインストールされていると決定された場合は、パーソナルアシスタントモジュール56は、ユーザ要求422から第2の候補状態4242に直接遷移することができる(第1の候補状態4241を本質的にスキップして)。
【００７１】
遷移先の状態およびローカルに利用可能な情報信号に応じて、いくつかの実装形態では、ブロック662で、パーソナルアシスタントモジュール56は、例えばコンピュータによって生成された発話をレンダリングすることによって、ユーザに入力を要請することができる。例えば、第2の候補状態4242で、パーソナルアシスタントモジュール56は、「写真を撮りたいですか?それともビデオを撮りたいですか?」などの発話を出力することができる。いくつかの実装形態では、ブロック662で要請された入力を、ブロック664でパーソナルアシスタントモジュール56が使用して、2つまたはそれ以上のオプション/入力パラメータ(例えば、連絡先、2つまたはそれ以上のインストール済みアプリ、アプリ設定、アドレス、電話番号、メディアファイルなど)間の曖昧さを除くことができる。他方、ブロック660で遷移した先の状態でパーソナルアシスタントモジュール56が入力を要請しないことになる場合(例えば、図5の5243または5244)は、パーソナルアシスタントモジュール56は単に、遷移先の状態に関連するアクション(電話発信、テキスト送信、タスクリマインダの設定、カレンダエントリの作成など)を開始することができる。
【００７２】
図示されていないが、いくつかの実装形態では、受け取られた状態機械は、リソース制約付きデバイスによって記憶され、同じまたは類似するユーザ要求が再び行われた場合に再使用されてもよい。したがって、特定の要求が2回目にデバイスによって受け取られたときは、クラウドとのやり取りを必要とせずに機能が提供されることが可能である。このように、いくつかの状況では、クラウドへのアクセスがないときでも、機能はある程度提供されることが可能である。よって、デバイスは、ネットワーク条件にかかわらず、より信頼性があると言える。
【００７３】
本明細書に記載の実装形態では、主に電話アプリおよびカメラアプリの呼出しを実証してきたが、これは限定とするものではない。本明細書に記載の技法を使用して、他の様々なタイプのアプリを呼び出すことができ、またはより一般的には、他のタイプの応答タスクを開始することができる。例えば、ユーザが「自分へのアラームをXX時に設定する」要求を発行したとき、ユーザの生態系の1つまたは複数の音声対応デバイス52に対してローカルなリソースから得られた情報信号が分析されて、アラーム設定に関するユーザの習慣が決定されてよい。これらの習慣および他の様々な情報信号(日付、時刻、および場所など)に基づいて、オンラインセマンティックプロセッサ54からパーソナルアシスタントモジュール56によって受け取られた状態機械は、少なくとも部分的には、ユーザ入力を要請することなくナビゲートされることが可能である。
【００７４】
別の例では、開示される技法をどのように使用してメディアファイルを消費することができるかを実証する。ユーザが、要求「アーティストAからのいくらかの音楽が欲しい」を発行すると仮定する。このような要求に応答してオンラインセマンティックプロセッサ54によって返される状態機械は、音楽再生アプリを選択する(例えば、ローカルに記憶された音楽の再生と、それに対するストリーミングの再生)ようユーザに要請するための状態、特定のアルバムまたは曲を選択するようユーザに要請するための状態、「ランダム再生」や「音量」などのパラメータを選択するようユーザに要請するための状態、などを含むことができる。パーソナルアシスタントモジュール56は、リソース制約付きデバイスに対してローカルな様々なリソースをポーリングして、ユーザの聴取習慣、選好、ローカルに記憶された合致する曲などを決定し、オンラインセマンティックプロセッサ54によって生成され提供された状態機械の少なくとも一部の中を自動的にナビゲートすることができる。これらの例に加えて、開示される技法はまた、テキスト/電子メールメッセージを送る要求、場所(例えば、連絡先リスト中の個人に関連する)への道順を求める要求、予約(例えば、航空路線、レストラン、ホテル、レンタカーなど)等を求める要求など、他のユーザ要求に応答して使用されることも可能である。
【００７５】
図7に、ユーザ要求に基づいて有限状態機械を生成してパーソナルアシスタントモジュール56に提供するためにオンラインセマンティックプロセッサ54(および/または音声ベースのクエリプロセッサ80)によって実行するのに適したルーチン770を示す。ブロック772で、オンラインセマンティックプロセッサは、音声入力、および/または、例えばパーサモジュール68によってすでに解析されたテキストトークンなど、ユーザ要求を示すデータを受け取ることができる。
【００７６】
ブロック774で、オンラインセマンティックプロセッサ54は、様々なオンラインリソースを分析して、パーソナルアシスタントモジュール56に関連するユーザに特に関する様々な情報信号、および/または、ユーザ一般に関する様々な情報信号を確認することができる。特定のユーザに関しては、オンラインリソースは、次のものに限定されないが、ソーシャルネットワークプロフィール、電子メール(ユーザがそのようなアクセスを許可したと仮定して)、ユーザの検索履歴(やはりユーザがそのようなアクセスを許可したと仮定して)、ユーザが権利を有するアプリケーション(例えば、ユーザがアカウントを有する「アプリストア」から確認できる)などを含むことがある。ユーザ一般に関しては、オンラインリソースは、次のものに限定されないが、ユーザ検索履歴総計、ユーザアクティビティログ総計(これらは個々のユーザの匿名性を維持することができる)などを含むことがある。
【００７７】
ブロック776で、オンラインセマンティックプロセッサ54は、ブロック772で受け取ったユーザ要求と、ブロック774で確認した信号とに基づいて、パーソナルアシスタントモジュール56によって辿ることが可能な状態機械を生成することができる。前述のように、状態機械の1つまたは複数の状態は、発話、テキスト、グラフィックスなど様々な出力モダリティを介してユーザに対してレンダリングされることが可能な、関連する出力を含む場合がある。状態機械の1つまたは複数の状態はまた、電話をかけること、テキストメッセージを送ること、電子メールを送ること、リマインダを設定すること、カレンダエントリを作成することおよび/またはカレンダエントリに少なくとも部分的にデータ投入すること、メディア再生アプリを開いて特定のメディアファイルを出力すること、メディアストリーミングサービスを立ち上げること、予約を行うこと、あるアプリを別のアプリに対して開くことなど、応答アクションに関連する場合もある。
【００７８】
いくつかの実装形態では、オンラインセマンティックプロセッサ54は、ブロック774で確認した1つまたは複数の情報信号を使用して、状態機械を最初に生成することができ、例えば、したがって、そのような要求に応答する第1の「デフォルト」状態は、ユーザの要求に応答する可能性が最も高いと見なされる応答である。しかし、状態機械の他の状態は代替オプションを表すことができ、これらの代替オプションは、音声対応デバイス52に対してローカルなリソースからポーリングされた1つまたは複数の情報信号(図6のブロック658参照)に応じて、オンラインセマンティックプロセッサに知られているデフォルトを場合によってはオーバライドすることができる。
【００７９】
例えば、オンラインセマンティックプロセッサ54は、オンライン通話ログまたは他の情報から、家にいるジョンスミスに電話することがユーザ要求「ジョンに電話する」への最も可能性の高い応答であると決定することができる。したがって、オンラインセマンティックプロセッサ54は、家にいるジョンスミスに電話することに関連するデフォルト状態を有する状態機械を生成することができる。しかし、ユーザのモバイルデバイス上の他の信号は、同じシナリオで、同じ要求に応答して別の電話番号が実際には望まれる可能性があることを示唆することがある。デフォルトのジョンスミスが、ユーザによって通常共有される中央時間帯に位置しているが、ユーザが遠くの時間帯に移動したと仮定する。さらに、ユーザの連絡先リスト中に、「ジョンジョーンズ」という名前の、利用頻度のより低い第2の連絡先があると仮定する。さらに、「ジョンジョーンズ」が、この遠くの時間帯に位置していると仮定する。音声対応デバイス52上の位置座標コンポーネント(例えば、GPS、セルタワー識別、または三角測量)からの信号に少なくとも基づいて、通常ならユーザはジョンスミスに電話しようとしているはずだがこれらの特定状況下ではユーザは実際にはジョンジョーンズに電話しようとしているであろうと決定することができる。このような可能性を反映させるために、オンラインセマンティックプロセッサ54は、音声対応デバイス52に対してローカルなリソースから得られた情報信号によってデフォルト状態がオーバライドされた場合にパーソナルアシスタントモジュール56が遷移するための、代替の「フォールバック」または「キャッチオール」状態(例えば、「どのジョンのことですか?」)を状態機械に含めることができる。
【００８０】
図7に戻り、ブロック778で、オンラインセマンティックプロセッサ54は、ブロック776で生成した状態機械を示すデータを、パーソナルアシスタントモジュール56にダウンロードすることができる。このデータは、パーソナルアシスタントモジュール56によって実行可能かつ/または解釈可能とすることのできる様々な形でもたらされてよい。いくつかの実装形態では、状態機械を示すデータは、パーソナルアシスタントモジュール56によって解釈できる拡張可能マークアップ言語(XML)などのマークアップ言語の形であってよい。いくつかの実装形態では、状態機械を示すデータは、パーソナルアシスタントモジュール56によって解釈できる統一モデリング言語(UML)などのモデリング言語の形であってよい。いくつかの実装形態では、状態機械は、グラフの形でもたらされてよく、例えばこのグラフは、状態(および対応する出力/応答アクション)を表すノードと、状態間の遷移を表すエッジとを含む。いくつかの実装形態では、状態機械は、パーソナルアシスタントモジュール56によって解釈および/または実行できる、様々なコンパイル段階におけるバイトコード、スクリプト、または他のコンピュータ実行可能命令の形でもたらされてよい。
【００８１】
上で説明したように、リソース制約付きデバイスは、デバイスによってローカルに利用可能な計算リソースが、クラウド中で利用可能な計算リソースよりも少ないという意味で、リソース制約を受けることがある。したがって、リソース制約付きデバイスは、いくつかの実装形態では、ユーザデバイスまたはユーザ端末と呼ばれることがある。このようなデバイスは、クラウドと通信するように動作可能でありパーソナルディジタルアシスタントモジュールを備える、任意のタイプのデバイスを含むことができる(例えば、次のものに限定されないが、モバイルフォンやタブレットコンピュータなどのモバイルデバイス)。
【００８２】
本明細書ではいくつかの実装形態について記述および例証したが、本明細書に記載の機能を実施するため、ならびに/あるいは、本明細書に記載の結果、および/または利点の1つもしくは複数を得るための、他の様々な手段および/または構造を利用することができ、そのような各変形および/または修正は、本明細書に記載の実装形態の範囲内と見なされる。より一般的には、本明細書に記載のすべてのパラメータ、寸法、材料、および構成は、例示的なものとし、実際のパラメータ、寸法、材料、および/または構成は、本教示が使用される具体的な応用例に依存することになる。本明細書に記載の具体的な実装形態に対する多くの均等物を、当業者なら認識するであろうし、またはルーチン実験より多くのものを使用せずに確認できるであろう。したがって、前述の実装形態は例として提示されるに過ぎないこと、および、添付の特許請求の範囲およびその均等物の範囲内で、具体的に記述され特許請求されるのとは別の方法で実装形態が実践されてもよいことを理解されたい。本開示の実装形態は、本明細書に記載の個別の各特徴、システム、物品、材料、キット、および/または方法を対象とする。加えて、2つまたはそれ以上のそのような特徴、システム、物品、材料、キット、および/または方法のどんな組合せも、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾しない場合には、本開示の範囲内に含まれる。
【符号の説明】
【００８３】
10  コンピュータシステム
12  プロセッサ
14  バスサブシステム
16  記憶サブシステム
18  メモリサブシステム
20  ファイル記憶サブシステム
22  ユーザインタフェース入力デバイス
24  ユーザインタフェース出力デバイス
26  ネットワークインタフェースサブシステム
28  ランダムアクセスメモリ(RAM)
30  読取専用メモリ(ROM)
50  分散型の音声入力処理環境
52  音声対応デバイス
54  オンラインセマンティックプロセッサ
56  パーソナルアシスタントモジュール
58  音声アクションモジュール
60  オンラインインタフェースモジュール
62  レンダリング/同期モジュール
64  ストリーミング音声-テキストモジュール
66  セマンティックプロセッサモジュール
68  パーサモジュール
70  ダイアログマネージャモジュール
72  アクションビルダモジュール
74  オフライン音響/言語モデル
76  オフライン文法モデル
78  オフラインアクションモデル
80  音声ベースのクエリプロセッサ
82  オンライン音響/言語、文法、およびアクションモデル
422  ユーザ要求
4241  第1の候補状態
4242  第2の候補状態
4243  第3の候補状態
522  ユーザ要求
5241  第1の候補状態
5242  第2の候補状態
5243  第3の候補状態
5244  第4の候補状態
【図１】
2019520644.tif 000003
【図２】
2019520644.tif 000004
【図３】
2019520644.tif 000005
【図４】
2019520644.tif 000006
【図５】
2019520644.tif 000007
【図６】
2019520644.tif 000008
【図７】
2019520644.tif 000009
【手続補正書】
【提出日】平成31年1月28日(2019.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リソース制約付きデバイスによって動作させられるパーソナルアシスタントモジュールによって要求を受け取るステップであって、前記リソース制約付きデバイスがユーザデバイスである、ステップと、
前記パーソナルアシスタントモジュールによって、前記要求を示すデータをオンラインセマンティックプロセッサにアップロードするステップと、
前記パーソナルアシスタントモジュールによって、前記要求を示す前記データをアップロードするのに応答して、前記パーソナルアシスタントモジュールの複数の候補状態を含む状態機械を表すデータを、前記リソース制約付きデバイスにおいて前記オンラインセマンティックプロセッサから受け取るステップであって、各候補状態が前記要求に潜在的に応答する、ステップと、
前記パーソナルアシスタントモジュールによって、前記受け取られたデータによって表される前記状態機械を前記リソース制約付きデバイスにおいて実装するステップと
を含み、
前記パーソナルアシスタントモジュールによって前記状態機械を前記リソース制約付きデバイスにおいて実装するステップが、
前記パーソナルアシスタントモジュールによって、前記リソース制約付きデバイスに対してローカルな1つまたは複数のリソースを前記リソース制約付きデバイスにおいて分析して、前記オンラインセマンティックプロセッサによって利用可能でない1つまたは複数の信号を確認するステップと、
前記パーソナルアシスタントモジュールによって、前記リソース制約付きデバイスにおいて、前記リソース制約付きデバイスのユーザから曖昧さ除去入力を受け取ることなく、前記複数の候補状態のうちの第1の状態を通り越して前記複数の候補状態のうちの第2の状態に遷移するステップであって、前記遷移することが1つまたは複数の信号に基づき、前記第1の状態が、前記第1の状態から前記第2の状態への遷移に必要とされる1つまたは複数の曖昧さ除去入力を要請する、前記パーソナルアシスタントモジュールによって送達されることになる出力を含む、ステップと
を含む、コンピュータ実装方法。
【請求項２】
前記リソース制約付きデバイスに対してローカルな前記1つまたは複数のリソースが、前記リソース制約付きデバイスを操作するユーザの連絡先リストを含む、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記パーソナルアシスタントモジュールによって、前記1つまたは複数の信号に基づいて前記連絡先リスト中の2つまたはそれ以上の連絡先間の曖昧さを除くステップをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項４】
前記パーソナルアシスタントモジュールによって、前記1つまたは複数の信号に基づいて、前記連絡先リスト中の単一の連絡先に関連する2つまたはそれ以上のアドレスまたは電話番号の間の曖昧さを除くステップをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項５】
前記要求が、前記連絡先リスト中の個人との電話通話を開始する要求を含む、請求項2から4のいずれか一項に記載のコンピュータ実装方法。
【請求項６】
前記要求が、前記連絡先リスト中の個人にメッセージを送る要求を含む、請求項2から4のいずれか一項に記載のコンピュータ実装方法。
【請求項７】
前記要求が、前記連絡先リスト中の個人に関連する場所への道順を求める要求を含む、請求項2から4のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
前記リソース制約付きデバイスに対してローカルな前記1つまたは複数のリソースが、前記リソース制約付きデバイスにインストールされた複数のアプリケーションを含み、前記パーソナルアシスタントモジュールによって、前記1つまたは複数の信号に基づいて前記複数のアプリケーションのうちの2つまたはそれ以上の間の曖昧さを除くステップをさらに含む、請求項1から7のいずれか一項に記載のコンピュータ実装方法。
【請求項９】
前記リソース制約付きデバイスに対してローカルな前記1つまたは複数のリソースが、前記リソース制約付きデバイスのメモリに記憶された複数のメディアファイルを含み、前記パーソナルアシスタントモジュールによって、前記1つまたは複数の信号に基づいて前記複数のメディアファイルのうちの2つまたはそれ以上の間の曖昧さを除くステップをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項１０】
前記1つまたは複数の信号が、ユーザと前記パーソナルアシスタントモジュールとの間の対話履歴に関する1つまたは複数の記録を含む、請求項1から9のいずれか一項に記載のコンピュータ実装方法。
【請求項１１】
前記1つまたは複数の信号が、ユーザと前記パーソナルアシスタントモジュールとの間の対話履歴に関する前記1つまたは複数の記録に基づく1つまたは複数の統計を含む、請求項10に記載のコンピュータ実装方法。
【請求項１２】
前記1つまたは複数の信号が前記リソース制約付きデバイスの位置座標を含む、請求項1から11のいずれか一項に記載のコンピュータ実装方法。
【請求項１３】
通信インタフェースと、
前記通信インタフェースに動作可能に結合された1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに動作可能に結合されたメモリと
を備えるオンラインセマンティックプロセッサであって、前記メモリが命令を記憶し、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、
リソース制約付きデバイス上で動作するパーソナルアシスタントモジュールから、前記通信インタフェースを介して、ユーザ要求を示すデータを受け取るステップであって、前記リソース制約付きデバイスがユーザデバイスである、ステップと、
前記要求を示す前記データを受け取るのに応答して、
前記パーソナルアシスタントモジュールの複数の候補状態を含む状態機械を生成するステップであって、各候補状態が、前記オンラインセマンティックプロセッサによって利用不可能であり、かつ前記リソース制約付きデバイスに対してローカルなリソースから確認可能である、1つまたは複数の信号に応じて、前記要求に潜在的に応答する、ステップと、
前記リソース制約付きデバイスにおいて実装するために、前記状態機械を表すデータを、前記通信インタフェースを介して前記リソース制約付きデバイスにダウンロードするステップと
を前記1つまたは複数のプロセッサに行わせる、オンラインセマンティックプロセッサ。
【請求項１４】
ユーザに関連する1つまたは複数のオンラインリソースを分析して1つまたは複数の情報信号を確認するための命令をさらに含み、前記状態機械が、前記1つまたは複数の情報信号に少なくとも部分的に基づいて生成される、請求項13に記載のオンラインセマンティックプロセッサ。
【請求項１５】
リソース制約付きデバイスによって実行されたときに、請求項1から12のいずれか一項に記載の方法を前記リソース制約付きデバイスに実行させるコンピュータ可読命令。
【請求項１６】
通信インタフェースに動作可能に結合された1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに動作可能に結合されたメモリと
を備え、前記メモリが命令を記憶し、前記命令が、前記1つまたは複数のプロセッサによって実行されたとき、請求項1から12のいずれか一項に記載の方法を前記1つまたは複数のプロセッサに実行させる、デバイス。
【国際調査報告】
2019520644.tif 000010
2019520644.tif 000011
2019520644.tif 000012
2019520644.tif 000013