(57)【要約】  モバイルデバイスなどのリソース制約のある音声対応デバイスのオフライン意味論プロセッサは、リソース制約のある音声対応デバイスにおけるオフライン意味論処理を容易にするために、リソース要件が低減されたオフライン文法モデルを利用する。様々な実装形態では、リソース制約のあるデバイスにおいて発行されたクエリは、リソース制約のあるデバイスによって実行可能な候補応答アクションを識別するために、意味論的に処理され得る。1つまたは複数の候補応答アクションから適格応答アクションを選択するために、候補応答アクション実行統計が解析され得る。様々な実装形態では、候補応答アクション実行統計は、クエリの発行に続くリソース制約のあるデバイスによる1つまたは複数の候補応答アクションの実行に関連することができる。リソース制約のあるデバイス内に記憶されたオフライン文法モデルは、発行されたクエリと適格応答アクションとの間のマッピングを含むように更新され得、オフライン文法モデルは、オフライン中にリソース制約のあるデバイスによって実行可能なアクションにクエリをマッピングする。
2019516150.tif 000002
【特許請求の範囲】
【請求項１】
リソース制約のあるデバイスのうちの1つまたは複数によって実行可能な1つまたは複数の候補応答アクションを識別するために、オンライン意味論プロセッサによって、ユーザによって制御される前記リソース制約のあるデバイスの協調的なエコシステムの第1のリソース制約のあるデバイスにおいて発行されたロングテールの音声ベースのクエリを意味論的に処理するステップであって、前記ロングテールの音声ベースのクエリが、クエリの検索ボリューム内で一意であるか、または比較的まれにしか発生しない、ステップと、
前記リソース制約のあるデバイスのうちの1つまたは複数における出力として、前記1つまたは複数の候補アクションの各々の実行を示唆する1つまたは複数のプロンプトを提供するステップと、
前記1つまたは複数の候補応答アクションから適格応答アクションを選択するために、前記1つまたは複数のプロンプトに対するユーザによる1つまたは複数の応答を解析するステップと、
前記発行されたロングテールの音声ベースのクエリと前記適格応答アクションとの間のマッピングを含むように、前記リソース制約のあるデバイスの協調的なエコシステムの各々において記憶されたオフライン文法モデルを更新するステップであって、前記オフライン文法モデルが、音声ベースのクエリを、オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々によって実行可能なアクションにマッピングする、ステップと
を備える方法。
【請求項２】
前記1つまたは複数のプロンプトが、選択可能なグラフィカル要素を備える、請求項1に記載の方法。
【請求項３】
前記1つまたは複数のプロンプトが、可聴プロンプトまたは触覚プロンプトを備える、請求項1に記載の方法。
【請求項４】
オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々の各意味論プロセッサによる使用のため、および記憶のために、前記オフライン文法モデルを、前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々に通信するステップをさらに備える、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記通信するステップが、前記リソース制約のあるデバイス内に記憶された前記オフライン文法モデルを動的に更新する、請求項4に記載の方法。
【請求項６】
前記意味論的に処理するステップが、オンライン文法モデルを使用して実行され、前記オフライン文法モデルが、前記オンライン文法モデルに対して低減されたリソース要件を有する、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記マッピング、前記発行されたクエリ、および前記オフライン文法のうちの1つまたは複数へのアクセスを前記リソース制約のあるデバイスに制限するステップをさらに備える、請求項1から6のいずれか一項に記載の方法。
【請求項８】
メモリと、前記メモリ内に記憶された命令を実行するように動作可能な1つまたは複数のプロセッサとを含むシステムであって、前記命令が、
リソース制約のあるデバイスのうちの1つまたは複数によって実行可能な1つまたは複数の候補応答アクションを識別するために、ユーザによって制御される前記リソース制約のあるデバイスの協調的なエコシステムの第1のリソース制約のあるデバイスにおいて発行されたロングテールの音声ベースのクエリを意味論的に処理する命令であって、前記ロングテールの音声ベースのクエリが、クエリの検索ボリューム内で一意であるか、または比較的まれにしか発生しない、命令と、
前記リソース制約のあるデバイスのうちの1つまたは複数における出力として、前記1つまたは複数の候補アクションの各々の実行を示唆する1つまたは複数のプロンプトを提供する命令と、
前記1つまたは複数の候補応答アクションから適格応答アクションを選択するために、前記1つまたは複数のプロンプトに対するユーザによる1つまたは複数の応答を解析する命令と、
前記発行されたロングテールの音声ベースのクエリと前記適格応答アクションとの間のマッピングを含むように、前記リソース制約のあるデバイスの協調的なエコシステムの各々において記憶されたオフライン文法モデルを更新する命令であって、前記オフライン文法モデルが、音声ベースのクエリを、オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々によって実行可能なアクションにマッピングする、命令と
を備える、システム。
【請求項９】
前記1つまたは複数のプロンプトが、選択可能なグラフィカル要素を備える、請求項8に記載のシステム。
【請求項１０】
前記1つまたは複数のプロンプトが、可聴プロンプトまたは触覚プロンプトを備える、請求項8に記載のシステム。
【請求項１１】
オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々の各意味論プロセッサによる使用のため、および記憶のために、前記オフライン文法モデルを、前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々に通信する命令をさらに備える、請求項8に記載のシステム。
【請求項１２】
コンピュータシステムによって実行されたとき、前記コンピュータシステムによって請求項1から11のいずれか一項に記載の方法を実行させるコンピュータ実行可能命令。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソース制約のあるデバイスにおけるオフライン意味論処理の促進に関する。
【背景技術】
【０００２】
音声ベースのユーザインターフェースは、コンピュータおよび他の電子デバイスの制御においてますます使用されている。音声ベースのユーザインターフェースの1つの特に有用な用途は、携帯電話、腕時計、タブレットコンピュータ、ヘッドマウント型デバイス、仮想または拡張現実デバイスなどのようなポータブル電子デバイスに関する。別の有用な用途は、ナビゲーション機能およびオーディオ機能を組み込んだ自動車システムのような車両用電子システムに関する。さらに別の有用な用途は、「モノのインターネット」(IoT)のカテゴリに関連する、照明、器具、暖房および配管、セキュリティシステムなどのような、従来はコンピュータに関連していない器具および他のデバイスに関する。そのような用途は、一般に、より従来型のキーボード入力もしくはタッチスクリーン入力の有用性、および/またはユーザが運転している、もしくは歩いているときのような、ユーザが他のタスクに集中し続けることを奨励することが望ましい状況における使用を制限する非従来型のフォームファクタによって特徴付けられる。
【０００３】
音声ベースのユーザインターフェースは、単純で直接的なコマンドのみを理解することができる早期の原始的なインターフェースから、自然言語の要求に応答し、文脈を理解し、ユーザとの往復する(back-and-forth)対話または会話を管理することができるより洗練されたインターフェースへと進化し続けている。多くの音声ベースのユーザインターフェースは、人間の音声のオーディオ記録をテキストに変換する初期スピーチ-テキスト変換と、ユーザの要求の意味を決定する試みにおいてテキストを解析する意味論解析の両方を組み込んでいる。ユーザの記録された音声の決定された意味に基づいて、探索を実行するか、またはコンピュータもしくは他の電子デバイスを他の方法で制御するなどのアクションが着手され得る。
【０００４】
たとえば、プロセッサおよび/またはメモリリソースに関して、音声ベースのユーザインターフェースのコンピューティングリソース要件は、相当なものである場合があり、結果として、いくつかの従来の音声ベースのユーザインターフェース手法は、音声入力が比較的低電力のクライアントデバイスによって受信および記録され、記録が、インターネットなどのネットワークを介して、スピーチ-テキスト変換および意味論処理のためのオンラインサービスに送信され、適切な応答がオンラインサービスによって生成され、クライアントデバイスに返送されるクライアント-サーバアーキテクチャを採用する。オンラインサービスは、音声入力を処理することに相当なコンピューティングリソースをつぎ込むことができ、クライアントデバイス内にローカルに他の方法で実装され得るよりも複雑なスピーチ認識および意味論解析機能が実装されることを可能にする。しかしながら、クライアント-サーバ手法は、音声入力を処理するときにクライントがオンラインである(すなわち、オンラインサービスと通信する)ことを必然的に必要とする。特に、モバイル用途および自動車用途では、連続的なオンライン接続性が、すべての時間およびすべての場所では保証されない可能性があるので、クライント-サーバ音声ベースのユーザインターフェースは、そのデバイスが「オフライン」であり、したがってオンラインサービスに接続されていないときはいつでも、クライアントデバイスにおいて無効化される可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書は、概して、リソース制約のある音声対応デバイスにおけるオフライン意味論処理を促進する様々な実装形態に向けられている。本明細書で説明されている様々な実装形態は、たとえば、デバイスがネットワークへのアクセスを有するかどうかにかかわらず、音声ベースのクエリを効率的に扱うことができるより堅牢な音声対応デバイスの提供を可能にするか、または他の方法で寄与することができる。また、デバイスがネットワークへのアクセスを有する状況であっても、デバイスは、ネットワークにアクセスする必要なく、音声ベースのクエリを扱うことができる場合があり、それによって、そのようなアクセスに関連する処理および帯域幅を節約することができる。さらに、場合によっては、リソース制約のある音声対応デバイスは、特に、ネットワークへの遅いおよび/または低品質の接続のみ利用可能であるとき、ネットワークアクセスが利用される場合よりも迅速に音声ベースのクエリに応答してアクションを実行することができる場合がある。
【０００６】
そのようなデバイスのオフライン意味論プロセッサは、デバイスによって受信された音声ベースのクエリを構文解析するために、リソース要件が低減されたオフライン文法モデルを利用する。いくつかの実装形態では、オフライン文法モデルは、いわゆる「ロングテール」音声ベースクエリと、オフライン文法モデルを使用するリソース制約のあるデバイスによって実行可能な応答アクションとの間のマッピングを含むように更新され得る。このようにして、ユーザは、ユーザのパーソナルコンピューティングデバイスに関連するオフライン意味論プロセッサによって使用されるオフライン文法にカスタム化されたクエリ-アクションマッピングを追加することができる。
【０００７】
したがって、いくつかの実装形態では、方法は、リソース制約のあるデバイスによって実行され得る1つまたは複数の候補応答アクションを識別するために、リソース制約のあるデバイスにおいて発行されたクエリを意味論的に処理するステップと、1つまたは複数の候補応答アクションから適格応答アクションを選択するために、候補応答アクション実行統計を解析するステップであって、候補応答アクション実行統計が、クエリの発行に続くリソース制約のあるデバイスによる1つまたは複数の候補応答アクションの実行に関する、ステップと、発行されたクエリと適格応答アクションとの間のマッピングを含むように、リソース制約のあるデバイス内に記憶されたオフライン文法モデルを更新するステップであって、オフライン文法モデルが、クエリを、オフラインの間にリソース制約のあるデバイスによって実行され得るアクションにマッピングする、ステップとを含むことができる。リソース制約のあるデバイスの能力、性能、および効率は、それによって改善され得る。
【０００８】
いくつかの実装形態では、方法は、リソース制約のあるデバイスを操作するユーザへの出力として、それぞれの1つまたは複数の候補アクションの実行を示唆する1つまたは複数のプロンプトを提供することをさらに含むことができる。いくつかの実装形態では、解析するステップは、1つまたは複数のプロンプトに対するユーザによる応答に属する統計を解析するステップを含むことができる。いくつかの実装形態では、1つまたは複数のプロンプトは、選択可能なグラフィック要素を含むことができる。いくつかの実装形態では、1つまたは複数のプロンプトは、可聴プロンプトまたは触覚プロンプトを含むことができる。
【０００９】
いくつかの実装形態では、方法は、リソース制約のあるデバイスによって記憶するため、およびオフライン中にリソース制約のあるデバイスの意味論プロセッサによって使用するために、オフライン文法モデルをリソース制約のあるデバイスに通信するステップをさらに含むことができる。いくつかの実装形態では、オフライン文法モデルをリソース制約のあるデバイスに通信するステップは、リソース制約のあるデバイス内に記憶されたオフライン文法モデルを動的に更新する。
【００１０】
いくつかの実装形態では、発行されたクエリは、音声ベースのクエリであってもよく、オフライン文法モデルは、音声ベースのクエリをアクションにマッピングする。いくつかの実装形態では、方法は、リソース制約のあるデバイスを操作するユーザに関連する複数のリソース制約のあるデバイスによる1つまたは複数の候補アクションの実行を示すデータを収集するステップをさらに含むことができる。いくつかの実装形態では、統計を解析するステップは、収集されたデータに基づくことができる。
【００１１】
いくつかの実装形態では、意味論処理は、オンライン文法モデルを使用して実行されてもよく、オフライン文法モデルは、オンライン文法モデルに対してリソース要件を低減している。いくつかの実装形態では、方法は、マッピング、発行されたクエリ、およびオフライン文法のうちの1つまたは複数へのアクセスをリソース制約のあるデバイスに制限するステップをさらに含むことができる。
【００１２】
加えて、いくつかの実装形態は、メモリと、メモリ内に記憶された命令を実行するように動作可能な1つまたは複数のプロセッサとを含む装置を含み、命令は、前述の方法のうちのいずれかを実行するように構成される。いくつかの実装形態は、前述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体も含む。
【００１３】
本明細書でより詳細に説明される前述の概念および追加の概念のすべての組み合わせは、本明細書で開示される主題の一部であるとみなされることが理解されるべきである。たとえば、本開示の最後に現れる特許請求された主題のすべての組み合わせは、本明細書で開示される主題の一部であるとみなされる。
【図面の簡単な説明】
【００１４】
【図１】コンピュータシステムの例示的なアーキテクチャを示す図である。
【図２】例示的な分散型音声入力処理環境のブロック図である。
【図３】図2の環境を使用して音声入力を処理する例示的な方法を示すフローチャートである。
【図４】アクション領域内の音声入力を処理する際に使用する例示的な文法モデルを示す図である。
【図５】オフライン文法モデルを構築および/または更新する例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下で議論される実装形態では、リソース制約のある音声対応デバイスのオフライン意味論プロセッサは、デバイスによって受信された音声ベースのクエリを構文解析するために、リソース要件が低減されたオフライン文法モデルを利用する。いくつかの実装形態では、オフライン文法モデルは、いわゆる「ロングテール」音声ベースクエリと、オフライン文法モデルを使用するリソース制約のあるデバイスによって実行可能な応答アクションとの間のマッピングを含むように更新され得る。本明細書で使用されるとき、「ロングテールクエリ」は、クエリの検索ボリューム内で一意であるかまたは比較的まれにしか発生しないクエリである。いくつかの例では、ロングテールクエリは、文字通り長くてもよい(たとえば、比較的多数のトークンを含む)が、これは必須ではない。一例として、音声ベースのクエリ「再生<アーティスト名>」は、特定のアーティストの再生を開始するために多数の人口の多くのユーザによって使用される場合があり、したがって、ロングテールクエリとはみなされない。対照的に、1人の特定のユーザが、「私は、本当にいくらか<アーティスト名>の気分になっている」などのフレーズを使用してアーティストの再生を開始しようとしたとする。後者のクエリは、(将来多数のユーザがそれを同じように使用し始めない限り)多分ロングテールクエリとしての資格を得る。
【００１６】
選択された実装形態に関するさらなる詳細は、以下で議論される。しかしながら、本明細書で開示された実装形態が排他的でないように、他の実装形態が企図されることが理解されよう。
例示的なハードウェアおよびソフトウェア環境
【００１７】
ここで、いくつかの図を通して同様の数字が同様の部分を示す図面に向かうと、図1は、例示的なコンピュータシステム10内の電子構成要素のブロック図である。システム10は、典型的には、バスサブシステム14を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ12を含む。これらの周辺デバイスは、たとえば、メモリサブシステム18およびファイル記憶サブシステム20を含む記憶サブシステム16と、ユーザインターフェース入力デバイス22と、ユーザインターフェース出力デバイス24と、ネットワークインターフェースサブシステム26とを含むことができる。入力デバイスおよび出力デバイスは、システム10とのユーザ対話を可能にする。ネットワークインターフェースサブシステム26は、外部ネットワークへのインターフェースを提供し、他のコンピュータシステム内の対応するインターフェースデバイスに結合される。
【００１８】
いくつかの実装形態では、ユーザインターフェース入力デバイス22は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロホン、および/または他のタイプの入力デバイスを含むことができる。一般に、「入力デバイス」という用語の使用は、情報をコンピュータシステム10または通信ネットワークに入力するためのすべての可能なタイプのデバイスおよび方法を含むことが意図されている。
【００１９】
ユーザインターフェース出力デバイス24は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含むことができる。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を作成するなにか他の機構を含むことができる。ディスプレイサブシステムは、オーディオ出力デバイスを介してなどの非視覚的ディスプレイを提供することもできる。一般に、「出力デバイス」という用語の使用は、コンピュータシステム10からの情報をユーザまたは別の機械もしくはコンピュータシステムに出力するためのすべての可能なタイプのデバイスおよび方法を含むことが意図されている。
【００２０】
記憶サブシステム16は、本明細書で説明されるモジュールのいくつかまたはすべての機能を提供するプログラミングおよびデータ構成を記憶する。たとえば、記憶サブシステム16は、以下に開示される方法の選択された態様を実行するロジックを含むことができる。
【００２１】
これらのソフトウェアモジュールは、一般に、プロセッサ12によって単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム16で使用されるメモリサブシステム18は、プログラム実行中に命令およびデータを記憶するための主ランダムアクセスメモリ(RAM)28と、固定された命令が記憶される読み出し専用メモリ(ROM)30とを含むいくつかのメモリを含むことができる。ファイル記憶サブシステム20は、プログラムおよびデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブル媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブル媒体カートリッジを含むことができる。特定の実装形態の機能を実装するモジュールは、記憶サブシステム16内のファイル記憶サブシステム20によって記憶されてもよく、またはプロセッサ12によってアクセス可能な他の機械内に記憶されてもよい。
【００２２】
バスサブシステム14は、システム10の様々な構成要素およびサブシステムが意図したとおりに互いに通信することを可能にするための機構を提供する。バスサブシステム14は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装形態は、複数のバスを使用することができる。
【００２３】
システム10は、モバイルデバイス、ポータブル電子デバイス、組み込みデバイス、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルデバイス、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプのものであり得る。加えて、システム10によって実装される機能は、たとえば、クライアント-サーバ、ピアツーピア、または他のネットワーク構成において、1つまたは複数のネットワークを介して互いに相互接続された複数のシステム間に分散され得る。コンピュータおよびネットワークの時々刻々と変化する性質のために、図1に示すシステム10の説明は、いくつかの実装形態を説明する目的のための特定の例としてのみ意図されている。図1に示すコンピュータシステムよりも多いまたは少ない構成要素を有するシステム10の多くの他の構成が可能である。
【００２４】
以下で議論される実装形態は、本明細書で開示される機能性の様々な組み合わせを実装する1つまたは複数の方法を含むことができる。他の実装形態は、本明細書で説明される方法のうちの1つまたは複数のような方法を実行するためにプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含むことができる。さらに他の実装形態は、メモリと、本明細書で説明される方法のうちの1つまたは複数のような方法を実行するために、メモリ内に記憶された命令を実行するように動作可能な1つまたは複数のプロセッサとを含む装置を含むことができる。
【００２５】
以下で説明される様々なプログラムコードは、それが特定の実装形態において実装されるアプリケーションに基づいて識別され得る。しかしながら、以下の任意の特定のプログラム命名法は、単に便宜上使用されることを理解すべきである。さらに、コンピュータプログラムがルーチン、プロシージャ、メソッド、モジュール、オブジェクトなどに編成され得る無限の方法、ならびに、プログラム機能が典型的なコンピュータ内に存在する様々なソフトウェア層(たとえば、オペレーティングシステム、ライブラリ、API、アプリケーション、アプレットなど)間に割り当てられ得る様々な方法を考慮すると、いくつかの実装形態は、本明細書で説明されるプログラム機能の特定の編成および割り当てに限定されない場合があることを理解すべきである。
【００２６】
さらに、任意のプログラムコードによって実行され得る、または任意のルーチン、ワークフローなどにおいて実行され得る本明細書で説明される様々な動作は、組み合わされ得、分割され得、再配列され得、省略され得、順次にもしくは並行して実行され得、および/または他の技法を補足され得、したがって、いくつかの実装形態は、本明細書で説明される動作の特定のシーケンスに限定されないことが理解されよう。
分散型音声入力処理環境
【００２７】
図2は、たとえば、オンライン検索サービス54のようなオンラインサービスと通信する音声対応デバイス52と共に使用するための、例示的な分散型音声入力処理環境50を示す。以下に議論される実装形態では、たとえば、音声対応デバイス52は、セルラ電話またはタブレットコンピュータなどのモバイルデバイスとして説明される。他の実装形態は、多種多様な他の音声対応デバイスを利用することができるが、以下のモバイルデバイスへの参照は、単に以下の議論を簡単にする目的のためのものである。たとえば、ラップトップコンピュータ、腕時計、ヘッドマウント型デバイス、仮想または拡張現実デバイス、他のウェアラブルデバイス、オーディオ/ビデオシステム、ナビゲーションシステム、自動車および他の車両システムなどを含む、無数の他のタイプの音声対応デバイスが、本明細書で説明される機能を使用することができる。さらに、そのような音声対応デバイスの多くは、特に、事実上無制限のコンピューティングリソースを個々のタスクに当てることができるオンラインまたはクラウドベースのサービスの能力と比較すると、そのようなデバイスのメモリおよび/または処理能力が技術的、経済的、または他の理由に基づいて制約を受ける可能性があるという点で、リソース制約があるとみなされ得る。いくつかのそのようなデバイスは、たとえば、そのようなデバイスが通常の使用の下で随時一時的なネットワーク接続の停止を経験する可能性があるという予想に基づいて、そのようなデバイスが、少なくとも一部の時間において「オフライン」かつオンラインサービスに接続されずに動作することが可能であり得る程度にオフラインデバイスであるともみなされ得る。
【００２８】
いくつかの実装形態におけるオンライン検索サービス54は、たとえば、複数のユーザからの大量の要求を処理するのに適したソフトウェアを実行する高性能コンピュータのサーバファームまたはクラスタを使用して、クラウドインフラストラクチャを採用するクラウドベースサービスとして実装され得る。図示された実装形態では、オンライン検索サービス54は、たとえば、要求された情報を含むウェブサイトのリストを提供するために、要求された情報の位置を特定するために、1つまたは複数のデータベースに問い合わせることができる。オンライン検索サービス54は、音声ベースの検索に限定されなくてもよく、他のタイプの検索、たとえば、テキストベースの検索、画像ベースの検索などを処理することも可能であり得る。他の実装形態では、オンラインシステムは、必ずしも検索を処理する必要はなく、アラームまたはリマインダを設定すること、リストを管理すること、電話、テキスト、電子メールなどを介して他のユーザとの通信を開始すること、または、音声入力を介して開始され得る他のアクションを実行することなどの非検索アクションに対する音声ベースの要求を処理することに限定されてもよい。本開示の目的のために、音声ベースの要求および他の形式の音声入力は、音声ベースのクエリが検索を開始する、質問を提示する、コマンドを発行する、などをしようとするかどうかにかかわらず、まとめて音声ベースのクエリと呼ばれる場合がある。したがって、一般に、たとえば、1つまたは複数の単語またはフレーズを含む任意の音声入力は、図示された実装形態の文脈内の音声ベースのクエリであるとみなされ得る。
【００２９】
図2の実装形態では、音声対応デバイス52によって受信された音声入力は、いくつかの実装形態では検索アプリケーションであり得る音声対応アプリケーション(または「アプリ」)56によって処理される。他の実装形態では、音声入力は、音声対応デバイスのオペレーティングシステムまたはファームウェア内で処理されてもよい。図示された実装形態におけるアプリケーション56は、音声アクションモジュール58と、オンラインインターフェースモジュール60と、レンダリング/同期モジュール62とを含む。音声アクションモジュール58は、アプリケーションに向けられた音声入力を受信し、音声入力の解析と、音声対応デバイス52のユーザに対する1つまたは複数のアクションの実行とを調整する。オンラインインターフェースモジュール60は、音声入力をサービス54に転送することと、それに対する応答を受信することとを含む、オンライン検索サービス54とのインターフェースを提供する。レンダリング/同期モジュール62は、たとえば、視覚表示、話された音声、または、特定の音声対応デバイスに適した他のフィードバックインターフェースを介して、ユーザへの応答のレンダリングを管理する。加えて、いくつかの実装形態では、モジュール62は、たとえば、応答またはアクションがオンライン検索サービスにおいてユーザのために維持されるデータに影響を及ぼすときはいつも(たとえば、音声入力が、クラウドベースのカレンダーにおいて維持される予約の作成を要求する場合)、オンライン検索サービス54との同期も処理する。
【００３０】
アプリケーション56は、音声入力を処理するために、たとえば、ストリーミング音声対テキストモジュール64と、構文解析モジュール68、対話マネージャモジュール70およびアクションビルダモジュール72を含む意味論プロセッサモジュール66とを含む、様々なミドルウェア、フレームワーク、オペレーティングシステムおよび/またはファームウェアモジュールに依存する。
【００３１】
モジュール64は、たとえば、デジタルオーディオデータの形式において音声入力のオーディオ記録を受信し、デジタルオーディオデータを1つまたは複数のテキスト単語またはフレーズ(本明細書では「トークン」とも呼ばれる)に変換する。図示された実装形態では、モジュール64は、トークンがユーザのスピーチと実質的に同時に、したがって、ユーザが完全な発声された要求をはっきり発音する前にモジュール64から出力され得るように、音声入力がトークンごとに、リアルタイムまたはほぼリアルタイムでテキストに変換されるように、ストリーミングモジュールでもある。モジュール64は、オーディオ信号と言語における音声単位との間の関係を言語における単語シーケンスと一緒にモデル化する、1つまたは複数のローカルに記憶されたオフライン音響モデルおよび/または言語モデル74に依存してもよい。いくつかの実装形態では、単一のモデル74が使用されてもよく、他の実装形態では、たとえば、複数の言語、複数の話者などをサポートするために、複数のモデルがサポートされてもよい。
【００３２】
モジュール64は、スピーチをテキストに変換するが、モジュール66は、適切な応答を形成する目的のために、モジュール64によって出力されたテキストの意味論または意味を識別しようとする。たとえば、構文解析モジュール68は、テキストを特定のアクションにマッピングし、そのようなアクションの実行を制約する属性、たとえば、そのようなアクションに対する入力変数を特定するために、1つまたは複数のオフライン文法モデル76に依存する。いくつかの実装形態では、単一のモデル76が使用されてもよく、他の実装形態では、たとえば、異なるアクションまたはアクション領域(すなわち、通信関連のアクション、検索関連のアクション、オーディオ/ビジュアル関連のアクション、カレンダー関連のアクション、デバイス制御関連のアクションなどのような関連のアクションの集合)をサポートするために、複数のモデルがサポートされ得る。
【００３３】
一例として、オフライン文法モデル76は、どのタイプのリマインダを設定すべきかを指定するリマインダタイプパラメータと、リマインダに関連付けられた1つまたは複数の項目を指定する項目パラメータと、リマインダを起動し、ユーザに思い出させる時間を指定する時間パラメータとを有する、「リマインダを設定する」などのアクションをサポートすることができる。構文解析モジュール68は、「〜を私に思い出させて」、「持ち帰る」、「パン」、および「仕事の後に」などのトークンのシーケンスを受信し、その日の午後5時にユーザが「パンを買う」というリマインダを受信するように、トークンのシーケンスを、「ショッピングリマインダ」に設定されたリマインダタイプパラメータと、「パン」に設定された項目パラメータと、「午後5時」の時間パラメータとを有するリマインダを設定するアクションにマッピングすることができる。
【００３４】
構文解析モジュール68は、ユーザとの対話を管理する対話マネージャモジュール70と関連して動作することもできる。この文脈内での対話は、2人の個人の間の会話に類似する音声入力および応答のセットを指す。したがって、モジュール70は、前の音声入力においてユーザから得られた情報が後続の音声入力を処理するときに使用されることを可能にするために、対話の「状態」を維持する。したがって、たとえば、ユーザが、「パンを持ち帰ることを私に思い出させて」と言った場合、「仕事の後に」の後続の音声入力がリマインダを作成する元の要求に結び付けられるように、「はい、あなたはいつ思い出させてほしいですか?」と言うように応答が生成され得る。
【００３５】
アクションビルダモジュール72は、音声入力解釈を表す構文解析モジュール68からの構文解析されたテキストを受信し、音声対応アプリケーション56のモジュール62によって処理するための任意の関連するパラメータと共にアクションを生成する。アクションビルダモジュール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と通信していないときにオフラインでアクセス可能である限りにおいて、オフラインモデルと呼ばれる。
【００３７】
さらに、オンライン検索サービス54は、一般に、たとえば、様々な音響/言語、文法および/またはアクションモデル82に依存する音声ベースのクエリプロセッサ80を使用する、音声入力を処理するための補完的な機能を含む。いくつかの実装形態では、特に、音声対応デバイス52がリソース制約のあるデバイスであるとき、それによって使用される音声ベースのクエリプロセッサ80およびモデル82は、音声対応デバイス52にローカルであるよりも複雑で計算的なリソース集約型音声処理機能を実装してもよい。しかしながら、他の実装形態では、補完的なオンライン機能は、使用されなくてもよい。
【００３８】
いくつかの実装形態では、たとえば、デバイスがオンラインサービスと通信しているときはいつもオンライン機能が使用され、接続がないときはオフライン機能が使用されるように、オンライン機能とオフライン機能の両方がサポートされてもよい。他の実装形態では、異なるアクションまたはアクション領域がオンライン機能およびオフライン機能に割り振られてもよく、さらに他の実装形態では、オフライン機能が特定の音声入力を適切に処理できないときにのみオンライン機能が使用されてもよい。
【００３９】
図3は、たとえば、音声入力を処理するために音声対応デバイス52によって実行され得る音声処理ルーチン100を示す。ルーチン100は、ブロック102において、たとえば、デジタルオーディオ信号の形式で音声入力を受信することによって開始する。この実装形態では、音声入力をオンライン検索サービスに転送するための最初の試みが行われる(ブロック104)。たとえば、接続性の欠如またはオンライン検索サービスからの応答の欠如のために失敗した場合、ブロック106は、音声入力をテキストトークンに変換し(ブロック108、たとえば、図2のモジュール64を使用する)、テキストトークンを構文解析し(ブロック110、たとえば、図2のモジュール68を使用する)、構文解析されたテキストからアクションを構築する(ブロック112、たとえば、図2のモジュール72を使用する)ために、制御をブロック108に渡す。結果として得られたアクションは、次いで、クライアント側のレンダリングおよび同期(ブロック114、たとえば、図2のモジュール62を使用する)を実行するために使用され、音声入力の処理は、完了する。
【００４０】
ブロック106に戻ると、音声入力をオンライン検索サービスに転送する試みが成功した場合、ブロック106は、ブロック108〜112をバイパスし、クライアント側のレンダリングおよび同期を実行するために制御をブロック114に直接渡す。音声入力の処理は、次いで完了する。上述したように、他の実装形態では、たとえば、音声入力がローカルで処理され得るときに不必要なデータ通信を回避するために、オンライン処理の前にオフライン処理が試みられてもよいことが理解されよう。
リソース制約のあるオフラインデバイスのための動的に更新可能なオフライン文法モデル
【００４１】
上述したように、いくつかの実装形態では、音声対応デバイスは、リソース制約されている場合があり、オンラインサービスの生のコンピューティング能力および/または記憶能力が不足している場合がある。音声ベースのユーザインターフェースを実装することに関連する複雑さの大部分は、たとえば、テキストをアクションにマッピングする文法モデルを含む、そのような機能を実装する様々なモジュールによって使用されるモデルにおいて具体化される。
【００４２】
これに関して、文法モデルは、1つまたは複数のテキスト単語またはフレーズ(本明細書ではまとめて「トークン」と呼ぶ)を、デバイスによって実施されるべき1つまたは複数のアクションにマッピングするのに適した任意のデータ構造を指すことができる。特定のアクションにマッピングされたテキスト単語またはフレーズは、アクションにマッピングされた別個の音声ベースのクエリを構成するともみなされ得る。文法モデルは、たとえば、遷移状態グラフとして、または他の適切なデータ構造において実装され得る。さらに、文法モデルは、たとえば、プログラミングを介して、トレーニングを介してなど、いくつかの方法において生成され得る。
【００４３】
アクションは、検索を実行すること、電話をかけること、テキストメッセージを送信すること、電子メールを送信すること、リマインダを設定すること、方向を取得すること、予約を設定すること、デバイス設定を変更すること、ノートを作成すること、歌またはビデオを再生すること、音量を変更することなどのような、特定のデバイスによって実行され得る実質的に任意の動作を指すことができる。いくつかの実装形態では、アクションは、アクション領域、たとえば、中でも、通信アクション領域(電話をかけるため、メッセージを送信するためなど)、メディアアクション領域(歌を再生するため、ビデオを再生するためなど)、プランニングアクション領域(リマインダを作成するため、予約を作成するためなど)、およびナビゲーションアクション領域(地図を表示するため、方向を取得するためなど)、と呼ばれる集合にグループ化され得る。文法モデルは、異なる言語に対して、異なる話者に対して、ならびに異なるエンドユーザアプリケーションに対して異なり得ることが理解されよう。
【００４４】
文法モデルの有用性は、異なるアクションのために作成された異なるマッピングの数に少なくとも部分的に基づく。言語は、絶えず進化しており、異なる話者は、たとえば、年齢、国、地域などの違いに基づいて、同じアクションを実行するために異なる命令を話す場合がある。しかしながら、文法モデル内で具体化されるマッピングの数は、一般に、モデルを記憶するために必要とされるメモリの量と、モデルにおける特定のマッピングを識別するために必要とされる処理時間およびリソースの量の両方を増加させる。
【００４５】
多くのオンラインサービスにおいて利用可能な広範なコンピューティングリソースを考慮すると、多くのそのようなサービスは、多種多様なマッピングを扱うことができる大規模で複雑な文法モデルを用いる。たとえば、図4は、項目パラメータと、時刻/日付パラメータと、位置パラメータ128、130および132とを有する「ショッピングリマインダを作成する」アクション126にマッピングされた複数の状態122および遷移124を組み込んだ有限状態遷移グラフとして実装された例示的な文法モデル120の一部を示す。図において見られるように、複数のトークンが、リマインダ(たとえば、「〜を私に思い出させて」、「〜にリマインダを設定して」、「〜を私に忘れさせないで」など)をトリガすることと、リマインダがショッピングリマインダ(たとえば、「〜を得るために店に立ち寄る」、「買う」、「持ち帰る」、「得る」、「いくらか掴む」、「立ち寄り、持ち帰る」など)であることを指定することの両方のためにサポートされ、結果として、ショッピングリマインダを作成するために使用され得る多数の潜在的なマッピング、ならびに、したがって、類句または音声ベースのクエリが発生する。
【００４６】
さらに、各パラメータ128、130、132について、多数の潜在的な値が文法モデル内でマッピングされ得る。項目のリスト128について、たとえば、項目の総称と特定のブランド名の両方を含む無数の製品名および説明134が可能であり得る(たとえば、「パン」、「ミルク」など)。時刻/日付パラメータ130について、数値(たとえば、「午後6時」)と非数値(たとえば、「仕事の後」、「明日の朝」など)の両方を含む時間および/または日付に関連する様々なフレーズ136がサポートされ得る。位置パラメータ132について、住所(たとえば、「101メインストリート」)、一般的な場所(たとえば、「食料雑貨店」)、商号(たとえば、特定の食料雑貨店)などが指定され得る。いくつかの実装形態では、1つまたは複数のパラメータがオプションであり得る。加えて、いくつかの実装形態では、1つまたは複数のパラメータは、非音声データ、たとえば、現在のGPS位置、ユーザの好きな企業、ユーザの典型的な勤務時間の知識などに基づいて、いくつかの例では、音声データと非音声データの組み合わせ(たとえば、ユーザが「食料雑貨店」を述べ、この入力が、ユーザの既知の家までの経路と組み合わせて、経路沿いの特定の食料雑貨店を識別するために使用される場合)に基づいて規定され得る。さらに、パラメータは、パラメータが事前の音声入力から少なくとも部分的に推測されるように、いくつかの実装形態では、対話または会話に基づいて導出され得る。
【００４７】
グラフ120は、文法モデル内に含まれ得る潜在的なマッピングの小さいサブセットのみを表し、ユーザから受信され得る音声ベースのクエリのすべての可能な変形例をカバーするために、それらの可能な変形例のすべてに関するマッピングが文法モデルに組み込まれる必要があることが理解されよう。個々のコンピュータおよび電子デバイスのリソース制約の多くを欠いているオンラインサービスは、文法モデルの有用性を最大化するために、多数のマッピングを組み込むという贅沢を有する。しかしながら、結果として、オンラインサービスによって使用される文法モデル(本明細書では「オンライン」文法モデルと呼ばれる)は一般に、個々のコンピュータおよび電子デバイス、特に、音声ベースのユーザインターフェースに対して最大のニーズを有するタイプのデバイスの多くにおいて使用されるには、大き過ぎ、および/またはプロセッサ集中的過ぎる。
【００４８】
しかしながら、本明細書で議論される実装形態では、オフライン文法モデルは、リソース制約のある音声対応オフラインデバイスでの使用のために、より小さく、および/またはよりプロセッサ集中的でなく生成され得、それによって、デバイスのメモリ制限および/または処理制限に適応する。さらに、オフライン文法モデルは、多数のユーザによって複数のリソース制約のあるデバイスにわたって頻繁に発行される音声ベースのクエリに加えて、またはその代わりに、1人または複数の特定のユーザによって1つまたは複数の特定のリソース制約のあるデバイスにおいて発行された音声ベースのクエリに基づいて生成され得る。結果として、オフライン意味論プロセッサが、オフライン文法モデルと比較してリソース要件を低減しながら、特定のリソース制約のあるデバイスにおいて使用される可能性がある音声ベースのクエリに応答することが望ましいように、望ましくは、少数の特定のリソース制約のあるデバイスおよび/またはそのようなリソース制約のあるデバイスの限られた数のユーザにカスタマイズされた音声ベースのクエリを含む。
【００４９】
様々な実装形態では、オフライン文法モデルは、音声ベースのクエリの発行に続くリソース制約のあるデバイスにおけるアクション実行の統計的解析に基づいて構築され得る。たとえば、いくつかの実装形態では、リソース制約のあるデバイスにおいて発行されたクエリは、リソース制約のあるデバイスによって実行可能な1つまたは複数の候補応答アクションを識別するために意味論的に処理され得る。1つまたは複数の候補応答アクションから適格応答アクションを選択するために、いわゆる「候補応答アクション実行統計」が解析され得る。候補応答アクション実行統計は、クエリの発行に続くリソース制約のあるデバイスによる1つまたは複数の候補応答アクションの実行に関連し得る。適格応答アクションは、音声ベースのクエリの発行に続いてデバイスによって実行されるアクションであり得る。さらに、いくつかの実装形態では、音声ベースのクエリの発行に続くアクションの実行は、1つまたは複数の適格基準を満たすために必要とされ得る。たとえば、適格基準は、発行されたクエリと実行されたアクションとの間の相関関係に関連してもよい(たとえば、相関関係が閾値を上回る)。相関関係は、たとえば、以下の要因、音声クエリとアクションの実行との間の経過時間、任意の介在するアクションが存在したかどうか、アクションの実行がデバイスによって提供されたプロンプトに応答して引き起こされたかどうか、およびプロンプトが提供されたいくつかの候補アクション、のうちの1つまたは複数に依存してもよい。いくつかの例では、適格基準は、上記の要因のうちの1つまたは複数に直接関連してもよい。たとえば、実行されたアクションは、クエリの発行とアクションの実行との間の経過時間が閾値未満である場合、および/または介在するアクションが存在しなかった場合、適格なアクションとみなされ得る。同様に、実行されたアクションは、アクションがデバイスによって提供されたプロンプトに応答して実行された場合、適格なアクションとみなされ得る。
【００５０】
クエリをリソース制約のあるデバイスによって実行可能なアクションにマッピングし得る、リソース制約のあるデバイス内に記憶されたオフライン文法モデルは、次いで、発行されたクエリと適格応答アクションとの間のマッピングを含むように更新され得る。結果として、オンライン文法モデルによってサポートされるクエリのすべてがオフライン文法モデルに組み込まれるわけではないが、オフライン文法モデルのメモリフットプリントおよびオフライン文法モデルを利用するために必要な処理要件は、オフラインデバイスのリソース制約をよりよく考慮するために低減される。
【００５１】
図5は、たとえば、候補応答アクション実行統計の解析に少なくとも部分的に基づいてオフライン文法モデルを構築するためのオンラインまたはオフラインサービスによる実行に適したルーチン150を示す。ルーチン150は、音声ベースのクエリを処理するサービスと同じサービスによって実行されてもよく、またはまったく異なるサービスであってもよい。さらに、ルーチン150は、オフライン文法モデルを最初に生成するために、または、以前に生成されたオフライン文法モデルを置き換えるために使用される更新されたオフライン文法モデルを生成するために使用され得る。
【００５２】
ルーチン150のブロック152〜156は、図3に示すルーチン100の様々なブロックと同様である。ブロック152において、音声入力が、たとえば、デジタルオーディオ信号の形式で受信される。ブロック154において、音声入力は、(たとえば、図2のモジュール64および/または82を使用して)テキストトークンに変換される。ブロック156において、テキストトークンは、(たとえば、図2のモジュール68および/または82を使用して)構文解析され得る。
【００５３】
ブロック158において、発行されたクエリに潜在的に応答する1つまたは複数の候補アクションが、たとえば、リソース制約のあるデバイス52のモジュール64、68および72によって、または、オンラインの場合、モジュール82によって識別され得る。いくつかの実装形態では、ブロック158において実行される候補応答アクションの識別は、ブロック112の動作と同様の方法で実行されてもよい。ユーザが、「少年、私は、確かになにかクレイジーヘア(Crazy Hair)が欲しい」などの特定のロングテールクエリを発行したとする。意味論プロセッサ(たとえば、図2中の66または82)は、知識グラフなどからのエンティティ識別などの様々な技法を使用して、「クレイジーヘア」が音楽アーティストを指すことを決定し得る。その決定に基づいて、デバイス52の次の論理的アクション(すなわち、候補応答アクション)が、音楽プレーヤを開き、クレイジーヘアバンド(The Crazy Hair Band)によって記録された音楽を再生することであることがさらに決定され得る。
【００５４】
様々な実装形態では、識別された複数の潜在的な応答候補アクションが存在し得る。たとえば、特定のアーティストによる音楽を再生するための複数のオプションが存在し得る。ストリーミングアプリケーションは、アーティストに(および/または同様の音楽的嗜好に関連する音楽に)関連するストリーミング「チャネル」からの音楽を、1つまたは複数のネットワークを介してリソース制約のあるデバイスにストリーミングすることができる。別の音楽プレーヤアプリケーションは、リソース制約のあるデバイス上にローカルに記憶された音楽を再生することができる。そのようなシナリオでは、クレイジーヘアバンドを再生するためにいずれかのアプリケーションを開くことは、「少年、私は、確かになにかクレイジーヘアが欲しい」というクエリに潜在的に応答する候補アクションを構成する。
【００５５】
多くのユーザは、たとえば、ユーザがロングテールの音声ベースのクエリを発行することができる協調的な「エコシステム」の一部として、複数のリソース制約のあるデバイスを操作することができる。たとえば、ユーザは、携帯電話とスマートウォッチの両方を操作することができる。場合によっては、スマートウォッチは、Bluetooth(登録商標)、Wi-Fiなどの低電力および/または短距離ワイヤレス技術を使用して携帯電話に接続することができるが、これは必須ではない。ユーザがデバイスのうちの1つにおいてロングテールの音声ベースのクエリを発行した(たとえば、スマートウォッチのマイクロホンに話しかけた)場合、ユーザは、応答アクションがその同じデバイスまたは他のデバイスにおいて実行されることを望むことができる。したがって、様々な実装形態では、ブロック158において、一方または両方のデバイスにおいて実行可能な1つまたは複数の候補応答アクションが識別され得る。
【００５６】
いくつかの実施形態では、ブロック160に示すように、ブロック158において識別された1つまたは複数の候補応答アクションに対応する1つまたは複数のプロンプトが、リソース制約のあるデバイス52においてユーザに対して提供され得る。各プロンプトは、リソース制約のあるデバイス52において、対応する候補応答アクションの実行を示唆することができる。プロンプトは、オーディオ、ビジュアル、および/または触覚(たとえば、振動)フィードバックなどの様々な形態で来ることができる。たとえば、上記で説明したシナリオを続けると、ユーザは、ブルーススプリングスティーンチャネルを再生するためにストリーミングプレーヤを開始するための1つのグラフィカル要素と、ローカルに記憶されたブルーススプリングスティーンのコンテンツの再生を開始するための別のグラフィカル要素の2つの選択可能なグラフィカル要素を提示され得る。
【００５７】
プロンプトは、様々な形態および様式で、リソース制約のあるデバイス上に提示(たとえば、出力)され得る。たとえば、いくつかの実装形態では、プロンプトは、別のアプリケーションのグラフィカルユーザインターフェースの一部として提示され得る。アプリケーションは、たとえば、ウェブブラウザ、ソーシャルメディアアプリケーション、インテリジェントパーソナルアシスタントアプリケーションなどであり得る。プロンプトは、ユーザが選択、無視、および/または拒否することができる、ポップアップ、ハイパーリンク(見た目がテキストもしくはグラフィック)、ならびに/またはいわゆる「カード」として視覚的に提示され得る。加えて、または代替的に、プロンプトは、聴覚的に提示され得る。たとえば、複数の候補応答アクションが存在し得る音声ベースのクエリに応答して、リソース制約のあるデバイスは、「アクションxを実行するつもりでしたか、またはアクションyを実行するつもりでしたか?」のようななにかを音声で出力することができる。
【００５８】
加えて、上述したように、一部のユーザは、単一の協調的なエコシステムの一部として複数のデバイスを操作することができる。いくつかのそのような実装形態では、1つまたは複数のプロンプトは、複数のデバイスのうちの1つまたは複数において提供され得る。ユーザが自分のスマートウォッチにおいて「場所Xまでの道を見つけて」という音声ベースのクエリを発行したとする。スマートウォッチは、ディスプレイを有する場合があるが、ユーザが自動車を運転しているか、または自転車に乗っている場合、ユーザがディスプレイ上に提示された視覚的プロンプトに応答することは望ましくない場合がある。しかしながら、ユーザの携帯電話は、スピーカを有する場合があるか、または、カーステレオもしくはユーザが着用するBluetooth(登録商標)ヘッドホンなどの別のオーディオデバイスとペアリングされる場合がある。そのようなスピーカは、可聴プロンプトをユーザに提供するのに適している場合がある。そのような場合、ユーザが自分のスマートウォッチ上で音声ベースのクエリを発行することに応答して、ユーザの電話は、たとえば、「都市Aまたは都市Bの場所Xのつもりでしたか?」という可聴プロンプトをユーザに提供させることができる。
【００５９】
ブロック162において、候補応答アクション実行統計が、ユーザによって操作される1つまたは複数のリソース制約のあるデバイスから収集され得る。様々な実装形態では、候補応答アクション実行統計は、ブロック158において識別された1つまたは複数の候補応答アクションの実行に関連してもよく、および/またはそれを示してもよい。様々な実装形態では、リソース制約のあるデバイスは、たとえば、音声ベースのクエリの発行後の様々な時間間隔においてユーザの行動を観察し記録することによって、これらの統計自体を収集することができる。いくつかの実装形態では、リソース制約のあるデバイスは、ユーザがどれくらい迅速にプロンプトに応答したか、ユーザがプロンプトを却下し、リソース制約のあるデバイスに代替のアクションを実行させたかどうか、など、ブロック160において提供されたプロンプトに対するユーザ応答(またはその欠如)に属する様々なデータを観察し記録することができる。
【００６０】
ブロック164において、ブロック162において収集された候補応答アクション実行統計は、解析され得る。ブロック160においてプロンプトが提供されなかった場合、クエリの発行後の1つまたは複数のリソース制約のあるデバイスとの1つまたは複数の観察されたユーザ対話が、発行されたクエリと1つまたは複数の潜在的な応答アクションとの間の相関関係の間接的な(たとえば、状況的な)証拠を構成することができる。しかし、音声ベースのクエリの発行と任意の候補応答アクションの開始との間に比較的長い時間期間が経過するとする。それは、特に、その間、ユーザが候補応答アクションとしてブロック158において識別されていない1つまたは複数のアクションを実行するために1つまたは複数のリソース制約のあるデバイスを操作する場合、そのような相関関係の証拠にはあまりならない場合がある。
【００６１】
ユーザが、「少年、私は、確かになにかスプリングスティーンが欲しい」のような特定のロングテールクエリを発行したとする。上述したように、リソース制約のあるデバイス52のモジュール64、68および72、またはオンラインの場合、モジュール82は、ブルーススプリングスティーンによる音楽の再生を含む1つまたは複数の候補応答アクションを識別することができる。たとえば、1つの候補応答アクションは、ブルーススプリングスティーンチャネルをストリーミングするためにストリーミングアプリを開くことであってもよく、別のものは、ローカルに記憶されたブルーススプリングスティーンの歌を再生するために音楽プレーヤアプリを開くことであってもよい。ブロック162において収集された統計が、音声ベースのクエリの発行後、ユーザがブルーススプリングスティーンチャネルをストリーミングするためにストリーミング音楽プレーヤアプリケーションをすぐに開いたことを示す場合、ブロック164において、発行されたクエリとローカルに記憶された音楽を再生するための音楽プレーヤとの間に存在するよりも、発行されたユーザクエリとストリーミングアプリとの間により強い相関関係が存在することが決定され得る。
【００６２】
加えて、または代替的に、1つまたは複数のプロンプトがブロック160において提供されたとする。1つまたは複数のプロンプトに対するユーザの応答は、グラフィカルアイコンを選択する形式であっても、または可聴プロンプトに対して音声応答を提供する形式であっても、解析され得る。プロンプトは、発行されたクエリに応答して提供されるので、プロンプトに対する肯定的なユーザ応答は、発行されたクエリとプロンプトによって開始されたアクションとの間の相関関係のより直接的な証拠を提供することができる。ユーザがプロンプトに応答したかどうかに加えて、ユーザがどれくらい迅速にプロンプトに応答したか、どれくらい多くの代替プロンプトが応答することになっていたか、などの評価もあり得る。
【００６３】
ブロック164における解析に基づいて、ブロック166において、発行されたクエリと1つまたは複数の候補応答アクションとの間の1つまたは複数のマッピングが識別され得る。いくつかの実装形態では、リソース制約のあるデバイス52は、識別された1つまたは複数のマッピングをモジュール82(または別のオンライン構成要素)に返送することができる。マッピングが機密情報(たとえば、ガレージのドアを操作するための秘密のパスワード)を含むか、または暗示している状況では、マッピングは、送信前に匿名化されてもよい。加えて、または代替的に、ユーザは、デバイス52におけるマッピングをプライベートマッピングとして保持し、マッピングをモジュール82に提供しないようにデバイス52を構成することができる。
【００６４】
ブロック168において、ユーザによって操作される1つまたは複数のリソース制約のあるデバイスによって用いられる1つまたは複数のオフライン文法モデル(たとえば、図2中の76)は、ブロック166において識別された1つまたは複数のマッピングを含むように(たとえば、デバイス52および/またはモジュール82において)更新され得る。たとえば、オフライン文法モデルは、モジュール82においてパッケージ化され、1つまたは複数のリソース制約のある音声対応オフラインデバイス(たとえば、特有のロングテールの音声ベースのクエリを使用する特定のユーザによって操作される複数のデバイス)に配信され得る。1つまたは複数のオフラインのリソース制約のあるデバイスは、次に、パッケージ化されたオフライン文法モデルを受信して展開し、モデルをそれぞれのデバイス上に記憶することができる。パッケージ化は、送信サイズを低減するためにオフライン文法モデルを圧縮するために、そうでなければ、それぞれのデバイスによって使用可能な方法でモデルをフォーマットするために使用され得る。したがって、リソース制約のあるデバイスは、その後、オフラインのとき、またはオンラインのときであっても、音声ベースのクエリを処理するためにオフライン文法を利用することができる。
【００６５】
初期オフライン文法モデルを構築するために使用されているルーチン150に加えて、またはその代りに、ルーチン150は、たとえば、時間の経過と共に使用の変化をよりよく追跡する、特定のユーザに関する追加のロングテールの音声ベースのクエリを組み込むなどのために、オフライン文法モデルを更新するためにも使用され得る。そのような更新は、リソース制約のあるデバイスが、システム更新の一部、アプリケーションの更新、またはそうでなければユーザから隠されているバックグラウンドの更新のいずれかとして更新され得るという点で、動的更新であるとみなされ得る。
【００６６】
いくつかの実装形態では、ロングテールクエリと応答アクションとの間のマッピングは、1つまたは複数のオフライン文法モデルに加えてオンライン文法モデルに組み込まれ得る。そのようにして、新しいユーザが、以前に識別され別のユーザにマッピングされたロングテールクエリを発行した場合、同じマッピングが、新しいユーザによって操作される1つまたは複数のリソース制約のあるデバイスによって使用される1つまたは複数のオフライン文法に追加され得る。しかしながら、いくつかの実装形態では、ユーザは、ユーザの潜在的に機密であるロングテールクエリのプライバシー、匿名性、および/またはセキュリティを維持するために、そのような協調をやめることができる。
【００６７】
本明細書では、いくつかの実装形態について説明し、例示してきたが、本明細書で説明した機能を実行し、ならびに/または結果および/もしくは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  音響/言語、文法および/またはアクションモデル、モデル、モジュール
120  文法モデル、グラフ
122  状態
124  遷移
126  アクション
128  項目パラメータ、パラメータ
130  時刻/日付パラメータ、パラメータ
132  位置パラメータ、パラメータ
134  製品名および説明
136  フレーズ
【図１】
2019516150.tif 000003
【図２】
2019516150.tif 000004
【図３】
2019516150.tif 000005
【図４】
2019516150.tif 000006
【図５】
2019516150.tif 000007
【手続補正書】
【提出日】平成30年10月2日(2018.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータにより実行される方法であって、
リソース制約のあるデバイスのうちの1つまたは複数によって実行可能な1つまたは複数の候補応答アクションを識別するために、オンライン意味論プロセッサによって、ユーザによって制御される前記リソース制約のあるデバイスの協調的なエコシステムの第1のリソース制約のあるデバイスにおいて発行されたロングテールの音声ベースのクエリを意味論的に処理するステップであって、前記ロングテールの音声ベースのクエリが、クエリの検索ボリューム内で一意であるか、または比較的まれにしか発生しない、ステップと、
前記リソース制約のあるデバイスのうちの1つまたは複数における出力として、前記1つまたは複数の候補アクションの各々の実行を示唆する1つまたは複数のプロンプトを提供するステップと、
前記1つまたは複数の候補応答アクションから適格応答アクションを選択するために、前記1つまたは複数のプロンプトに対するユーザによる1つまたは複数の応答を解析するステップと、
前記発行されたロングテールの音声ベースのクエリと前記適格応答アクションとの間のマッピングを含むように、前記リソース制約のあるデバイスの協調的なエコシステムの各々において記憶されたオフライン文法モデルを更新するステップであって、前記オフライン文法モデルが、音声ベースのクエリを、オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々によって実行可能なアクションにマッピングする、ステップと
を備える方法。
【請求項２】
前記1つまたは複数のプロンプトが、選択可能なグラフィカル要素を備える、請求項1に記載の方法。
【請求項３】
前記1つまたは複数のプロンプトが、可聴プロンプトまたは触覚プロンプトを備える、請求項1に記載の方法。
【請求項４】
オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々の各意味論プロセッサによる使用のため、および記憶のために、前記オフライン文法モデルを、前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々に通信するステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記通信するステップが、前記リソース制約のあるデバイス内に記憶された前記オフライン文法モデルを動的に更新する、請求項4に記載の方法。
【請求項６】
前記意味論的に処理するステップが、オンライン文法モデルを使用して実行され、前記オフライン文法モデルが、前記オンライン文法モデルに対して低減されたリソース要件を有する、請求項1に記載の方法。
【請求項７】
前記マッピング、前記発行されたクエリ、および前記オフライン文法のうちの1つまたは複数へのアクセスを前記リソース制約のあるデバイスに制限するステップをさらに備える、請求項1に記載の方法。
【請求項８】
メモリと、前記メモリ内に記憶された命令を実行するように動作可能な1つまたは複数のプロセッサとを含むシステムであって、前記命令が、
リソース制約のあるデバイスのうちの1つまたは複数によって実行可能な1つまたは複数の候補応答アクションを識別するために、ユーザによって制御される前記リソース制約のあるデバイスの協調的なエコシステムの第1のリソース制約のあるデバイスにおいて発行されたロングテールの音声ベースのクエリを意味論的に処理する命令であって、前記ロングテールの音声ベースのクエリが、クエリの検索ボリューム内で一意であるか、または比較的まれにしか発生しない、命令と、
前記リソース制約のあるデバイスのうちの1つまたは複数における出力として、前記1つまたは複数の候補アクションの各々の実行を示唆する1つまたは複数のプロンプトを提供する命令と、
前記1つまたは複数の候補応答アクションから適格応答アクションを選択するために、前記1つまたは複数のプロンプトに対するユーザによる1つまたは複数の応答を解析する命令と、
前記発行されたロングテールの音声ベースのクエリと前記適格応答アクションとの間のマッピングを含むように、前記リソース制約のあるデバイスの協調的なエコシステムの各々において記憶されたオフライン文法モデルを更新する命令であって、前記オフライン文法モデルが、音声ベースのクエリを、オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々によって実行可能なアクションにマッピングする、命令と
を備える、システム。
【請求項９】
前記1つまたは複数のプロンプトが、選択可能なグラフィカル要素を備える、請求項8に記載のシステム。
【請求項１０】
前記1つまたは複数のプロンプトが、可聴プロンプトまたは触覚プロンプトを備える、請求項8に記載のシステム。
【請求項１１】
前記命令が、オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々の各意味論プロセッサによる使用のため、および記憶のために、前記オフライン文法モデルを、前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々に通信する命令をさらに備える、請求項8に記載のシステム。
【請求項１２】
命令を備える少なくとも1つのコンピュータ可読記録媒体であって、前記命令は、コンピュータシステムによる前記命令の実行に応答して、前記コンピュータシステムに、
リソース制約のあるデバイスのうちの1つまたは複数によって実行可能な1つまたは複数の候補応答アクションを識別するために、オンライン意味論プロセッサによって、ユーザによって制御される前記リソース制約のあるデバイスの協調的なエコシステムの第1のリソース制約のあるデバイスにおいて発行されたロングテールの音声ベースのクエリを意味論的に処理する動作であって、前記ロングテールの音声ベースのクエリが、クエリの検索ボリューム内で一意であるか、または比較的まれにしか発生しない、動作と、
前記リソース制約のあるデバイスのうちの1つまたは複数における出力として、前記1つまたは複数の候補アクションの各々の実行を示唆する1つまたは複数のプロンプトを提供する動作と、
前記1つまたは複数の候補応答アクションから適格応答アクションを選択するために、前記1つまたは複数のプロンプトに対するユーザによる1つまたは複数の応答を解析する動作と、
前記発行されたロングテールの音声ベースのクエリと前記適格応答アクションとの間のマッピングを含むように、前記リソース制約のあるデバイスの協調的なエコシステムの各々において記憶されたオフライン文法モデルを更新する動作であって、前記オフライン文法モデルが、音声ベースのクエリを、オフライン中に前記リソース制約のあるデバイスの協調的なエコシステムのリソース制約のあるデバイスの各々によって実行可能なアクションにマッピングする、動作と
を実行させる、少なくとも1つのコンピュータ可読記録媒体。
【国際調査報告】
2019516150.tif 000008
2019516150.tif 000009
2019516150.tif 000010