(57)【特許請求の範囲】
【請求項１】
サーバにおいてオーディオ信号を受信するステップと、
前記オーディオ信号の1つまたは複数の部分と合致する1つまたは複数の候補語を識別するために、前記サーバによって前記オーディオ信号に対して音声認識を実行するステップと、
各候補語に対して1つまたは複数の蓋然的意図動作を識別するステップと、
各候補語に対して音声認識信頼性メトリックを決定するステップと、
各動作について、ユーザが前記動作を実際に意図した確実性のレベルを表す曖昧値を決定するステップであって、各動作の前記曖昧値が、前記動作に関連付けられた前記候補語について決定された前記音声認識信頼性メトリックに基づいて決定されるステップと、
クライアントデバイス上に表示される情報であって、前記候補語と各候補語に対する前記動作とを指定する情報を提供するステップと、
それぞれの曖昧値に基づいて、前記動作のランキングを生成するステップであって、前記ランキングは前記情報を提供するステップにおいて提供される、ステップと、
前記ユーザによって選択された動作であって、前記提供された情報に含まれる前記動作の中から選択された動作の指示を前記クライアントデバイスから受け取るステップと、
前記ユーザによって選択された前記動作を起動するステップと
を含むコンピュータ実施方法。
【請求項２】
前記サーバが、検索エンジンを含む、請求項1に記載の方法。
【請求項３】
クライアントデバイスからインデックスを受け取るステップをさらに含み、
前記音声認識を実行するステップが、前記オーディオ信号と合致する前記インデックス内の候補語を識別するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記インデックスが、前記クライアントデバイスによって保存される連絡先のインデックスをさらに含む、請求項3に記載の方法。
【請求項５】
候補語が人の名前を含む場合、前記候補語に関連付けられた1つまたは複数の前記動作が、前記人に電話を掛け、前記人に電子メールを送り、または前記人とのインスタントメッセージングセッションを確立する、請求項1に記載の方法。
【請求項６】
候補語が関心地点(POI)を含む場合、前記候補語に関連付けられた1つまたは複数の前記動作が、前記POIの地図、前記POIまでの道順、前記POIについての詳細情報、または前記POIまでの距離を獲得する、請求項1に記載の方法。
【請求項７】
候補語がメディアコンテンツを識別する場合、前記候補語に関連付けられた1つまたは複数の前記動作が、前記メディアコンテンツを再生し、前記メディアコンテンツのダウンロードを開始し、または前記メディアコンテンツについての詳細情報を獲得する、請求項1に記載の方法。
【請求項８】
候補語に関連付けられた1つまたは複数の前記動作が、前記候補語をクエリ語として使用して、ウェブ検索クエリを開始する、請求項1に記載の方法。
【請求項９】
前記ユーザによって選択された前記動作の前記指示を受け取るステップに応答して、前記ユーザ選択動作に関連する前記曖昧値を増加させるステップをさらに含む、請求項1に記載の方法。
【請求項１０】
特定の動作の前記曖昧値が閾値を満たすことを決定するステップと、
前記曖昧値が前記閾値を満たすとの決定に基づいて、前記特定の動作を自動的に起動するステップと、
ユーザが前記特定の動作をキャンセルしたことを決定するステップと、
前記ユーザが前記特定の動作をキャンセルしたとの決定に基づいて、前記特定の動作の前記曖昧値を減少させるステップとをさらに含み、
前記ユーザが前記特定の動作をキャンセルしたとの決定に基づいて、情報が提供される、請求項1に記載の方法。
【請求項１１】
特定の動作を識別する前記情報が、アイコンを含む、請求項1に記載の方法。
【請求項１２】
前記ユーザ選択動作を起動するステップが、クライアントデバイスに、前記クライアントデバイスによって保存されたアプリケーションを指定する情報を提供するステップをさらに含む、請求項1に記載の方法。
【請求項１３】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されたときに、
サーバにおいてオーディオ信号を受信するステップと、
前記オーディオ信号の1つまたは複数の部分と合致する1つまたは複数の候補語を識別するために、前記サーバによって前記オーディオ信号に対して音声認識を実行するステップと、
各候補語に対して1つまたは複数の蓋然的意図動作を識別するステップと、
各候補語に対して音声認識信頼性メトリックを決定するステップと、
各動作について、ユーザが前記動作を実際に意図した確実性のレベルを表す曖昧値を決定するステップであって、各動作の前記曖昧値が、前記動作に関連付けられた前記候補語について決定された前記音声認識信頼性メトリックに基づいて決定されるステップと、
クライアントデバイス上に表示される情報であって、前記候補語と各候補語に対する前記動作とを指定する情報を提供するステップと、
それぞれの曖昧値に基づいて、前記動作のランキングを生成するステップであって、前記ランキングは前記情報を提供するステップにおいて提供される、ステップと、
前記ユーザによって選択された動作であって、前記提供された情報に含まれる前記動作の中から選択された動作の指示を前記クライアントデバイスから受け取るステップと、
前記ユーザによって選択された前記動作を起動するステップと
を含む動作を前記1つまたは複数のコンピュータに実行させる命令が保存された、前記1つまたは複数のコンピュータに結合されたコンピュータ可読媒体と
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、検索エンジンに関する。
【背景技術】
【０００２】
インターネット上で利用可能な情報の量が劇的に増大したため、ユーザは、特定の関連情報を見出すための効果的な検索クエリを作成するのにますます多くの困難な時間を費やしている。近年では、検索エンジンプロバイダ間の競争は、検索エンジンアルゴリズムの進化においてのみならず、検索結果を表示するために使用されるユーザインタフェースにおいても、爆発的な加速を引き起こしている。
【０００３】
検索エンジンにクエリを提供するために、様々なメカニズムを使用することができる。例えば、ユーザは、コンピューティングデバイス上でキーボードを使用して検索ボックス内に明示的にクエリをタイプすることができ、その後、そのクエリをサブミットすることができる。クエリは、暗黙的なものとすることもでき、例えば、ユーザがコンピューティングデバイス上に表示された地図をパンした際に、地図の該当エリア内の商売に関する注釈情報を表示させるためにクエリが送信される。加えて、ユーザは、キーボードが小さいことがあり得る、またはハンズフリー操作が重要であり得るモバイルデバイス(例えばスマートフォンまたはアプリケーションフォン)を使用している場合は特に、クエリを発声することによって入力することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
音声コマンドの適切な解釈は一般に、少なくとも2つの次元において、音声コマンドの曖昧性が解消されることを必要とする。第1の次元における曖昧性解消は、本明細書では「認識品質(quality of recognition)」次元と呼ばれ、音声コマンドに含まれる音を、発話者が発声したであろう言葉(term)と合致させることを含む。一例では、認識品質次元における曖昧性解消は、発話者が「ka:bil」(国際音標文字(IPA)の音声表記を使用して表記)という音を有する音声コマンドを発したときに、類似音の言葉「call  bill」、「call Phil」、「cobble」、「cable」、「kill  bill」、「call  bull」、または「Kabul」のどれを発声しようと意図したのかを決定しようと試みることができる。本明細書は、音声コマンドに対して音声認識プロセスを実行した結果として出力される1つまたは複数の単語を「候補語(candidate term)」と呼ぶ。
【０００５】
第2の次元における曖昧性解消は、本明細書では「発話者意図(speaker  intent)」次元と呼ばれ、発話者が音声コマンドを構成する言葉を発声したときにおそらく意図したであろう動作が何であるかを決定することに関する。例えば、発話者が音声コマンドの中で「call bill」という言葉を発声したと仮定すると、発話者意図次元における曖昧性解消は、発話者が「call(電話)」しようとしているのがおそらくは、「Bill」という名前の第1の連絡先なのか、それとも「Bill」という名前の第2の連絡先なのか、発話者が「call」しようとしているのがおそらくは、自宅にいる「Bill」という名前の連絡先なのか、それとも職場にいる「Bill」という名前の連絡先なのか、または発話者がおそらくは、サービスプロバイダに「bill(請求書)」(または「請求明細書」)を要求するために、「call」すべきであることを命じているのかを決定しようと試みる。本明細書は、発話者が音声コマンドを構成する言葉を発声したときにおそらく意図したであろう動作を「蓋然的意図動作(possible  intended  action)」と呼ぶ。
【０００６】
したがって、これら2つの次元における音声コマンドの曖昧性解消は、「call  bill」という単一の言葉を「Bill」という名前の2人の連絡先の一方に電話する蓋然的意図動作に関連付けることができる場合などには、2つ以上の関連動作を有する1つの候補語をもたらすことがある。加えて、音声コマンドの曖昧性解消は、同じ音声コマンドが、「Bill」という名前の連絡先に電話をするための「call  bill」という言葉、およびカブール市までの航空券を購入するための「Kabul」という言葉に合致する場合などには、1つまたは複数の関連動作を各々が有する2つ以上の候補語をもたらすことがある。どちらの場合も、本明細書で説明される主題の革新的な一態様によれば、異なる候補語および動作の間の曖昧性を自動的に解決できない場合には、多次元曖昧性解消の結果をユーザに提供して、選択を行わせることができる。
【０００７】
一般に、本明細書で説明される主題の別の革新的な態様は、サーバにおいてオーディオ信号を受信するアクションと、オーディオ信号の1つまたは複数の部分と合致する1つまたは複数の候補語を識別するために、サーバによってオーディオ信号に対して音声認識を実行するアクションと、各候補語に対して1つまたは複数の蓋然的意図動作を識別するアクションと、クライアントデバイス上に表示される情報であって、候補語と各候補語に対する動作とを指定する情報を提供するアクションと、ユーザによって選択された動作であって、提供された情報に含まれる動作の中から選択された動作の指示をクライアントデバイスから受け取るアクションと、ユーザによって選択された動作を起動するアクションとを含む方法で具現することができる。この態様の他の実施形態は、対応するシステム、装置、およびコンピュータ記憶デバイス上に符号化され、方法のアクションを実行するように構成されたコンピュータプログラムを含む。
【０００８】
上記および他の実施形態は各々、1つまたは複数の以下の特徴を任意選択的に含むことができる。例えば、サーバは、検索エンジンとすることができる。クライアントデバイスからインデックスを受け取ることができ、その場合、音声認識の実行は、オーディオ信号と合致するインデックス内の候補語を識別することを含む。インデックスは、クライアントデバイスによって保存される連絡先のインデックスとすることができる。
【０００９】
さらなる例では、候補語が人の名前である場合、その候補語に関連付けられた1つまたは複数の動作は、その人に電話を掛け、その人に電子メールを送り、またはその人とのインスタントメッセージングセッションを確立することができる。候補語が関心地点(POI: point of interest)を含む場合、その候補語に関連付けられた1つまたは複数の動作は、そのPOIの地図、そのPOIまでの道順、そのPOIについての詳細情報、またはそのPOIまでの距離を獲得することができる。候補語がメディアコンテンツを識別する場合、その候補語に関連付けられた1つまたは複数の動作は、そのメディアコンテンツを再生し、そのメディアコンテンツのダウンロードを開始し、またはそのメディアコンテンツについての詳細情報を獲得することができる。候補語に関連付けられた1つまたは複数の動作は、候補語をクエリ語として使用して、ウェブ検索クエリを開始することができる。各動作について、曖昧値(ambiguity value)を決定することができ、その場合、ユーザ選択動作に関連する曖昧値を増加させることができる。
【００１０】
さらなる例では、アクションはまた、特定の動作の曖昧値が閾値を満たすことを決定するステップと、曖昧値が閾値を満たすとの決定に基づいて、特定の動作を自動的に起動するステップと、ユーザが特定の動作をキャンセルしたことを決定するステップと、ユーザが特定の動作をキャンセルしたとの決定に基づいて、特定の動作の曖昧値を減少させるステップとを含むことができ、ユーザが特定の動作をキャンセルしたとの決定に基づいて、情報が提供される。
【００１１】
他の例では、音声認識信頼性メトリック(speech recognition confidence metric)を各候補語に対して決定することができ、その場合、各動作の曖昧値は、その動作に関連付けられた候補語について決定された音声認識信頼性メトリックに基づいて決定することができる。それぞれの曖昧値に基づいて、動作のランキングを生成することができ、その場合、情報の提供は、ランキングの提供をさらに含むことができる。特定の動作を識別する情報は、アイコンとすることができる。ユーザ選択アプリケーションの起動は、クライアントデバイスによって保存されたアプリケーションを識別する情報をクライアントデバイスに提供することをさらに含むことができる。
【００１２】
一般に、本明細書で説明される主題の別の革新的な態様は、クライアントデバイスによってサーバにオーディオ信号を提供するアクションと、オーディオ信号の1つまたは複数の部分と合致する1つまたは複数の候補語および各候補語に対する1つまたは複数の蓋然的意図動作を指定する情報を獲得するアクションと、動作のユーザ選択を受け取るアクションと、ユーザ選択動作の指示をサーバに提供するアクションと、ユーザによって選択された動作を起動するアクションとを含む方法で具現することができる。この態様の他の実施形態は、対応するシステム、装置、およびコンピュータ記憶デバイス上に符号化され、方法のアクションを実行するように構成されたコンピュータプログラムを含む。
【００１３】
本明細書で説明される主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明において説明される。主題の他の潜在的な特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１４】
【図１】音声コマンドに対応した動作の起動を例示する概念図である。
【図２】例示的なシステムを示す図である。
【図３】例示的なプロセスのフローチャートである。
【図４】例示的なプロセスのフローチャートである。
【図５Ａ】例示的なユーザインタフェースを示す図である。
【図５Ｂ】例示的なユーザインタフェースを示す図である。
【図６Ａ】例示的なユーザインタフェースを示す図である。
【図６Ｂ】例示的なユーザインタフェースを示す図である。
【図７】例示的なシステムを示す図である。
【発明を実施するための形態】
【００１５】
同じ参照番号は、すべての図面にわたって類似の部分を表す。
【００１６】
図1は、音声コマンドの多次元曖昧性解消を実行するための例示的なフレームワークの概念図である。より詳細には、この図は、併せて情報検索システム100を構成する、クライアントデバイス104(例えば、セルラ電話、PDA、またはパーソナルコンピュータ)と、サーバ116とを示しており、また、クライアントデバイス104とサーバ116の間のデータの流れ、および(時系列状態(a)、(h)、(l)、(n)において、それぞれユーザインタフェース102、130、136、150とラベル付けされた)様々な状態におけるクライアントデバイス104のユーザインタフェースも示している。サーバ116は、検索エンジンとすることができ、または音声認識を実行するために、検索エンジンによって使用されるサーバとすることができる。
【００１７】
状態(a)に示されるように、クライアントデバイス104上に表示されるユーザインタフェース102は、クエリ語を受け取るための検索ボックスおよびコマンドを受け取るためのコマンドプロンプトの両方として機能するコントロール106を含む。コントロール106が検索機能性を実施している場合、クライアントデバイス104のユーザは、クエリ語の一部または1つもしくは複数の完全なクエリ語をコントロールに入力することによって、パブリックまたはプライベートネットワーク上に保存された情報の検索を開始することができる。
【００１８】
コントロール106がコマンド機能性を実施している場合、クライアントデバイスのユーザは、例えば、ユーザの連絡先リスト内の連絡先に電話するようクライアントデバイス104に命じるコマンド、電子通信文(例えば、電子メール、インスタントメッセージ、テキストメッセージ)を構成し、連絡先リスト内の連絡先に送信するようクライアントデバイス104に命じるコマンド、様々なタイプのメディアコンテンツ(例えば、オーディオ、ビデオ)を再生、ダウンロード、もしくは他の方法で対話するようクライアントデバイス104に命じるコマンド、他の任意のタイプの機能を実行するようクライアントデバイスに命じるコマンドなど、任意の適切なコマンドを発することができる。したがって、コントロール106は、ユーザが、単一の多機能コマンドボックスまたはプロンプトを介して、多数のタイプのコマンドを入力または発声すること、および多数のタイプの機能性を要求することを可能にする、簡素化された直感的で強力なユーザインタフェースを提供する。
【００１９】
ユーザインタフェースの異なる部分上または異なるユーザインタフェース上に異なる機能性を提供するクライアントデバイスと異なり、クライアントデバイス104は、特定の所望の機能性を起動するために最初にナビゲーション機能を入力するようユーザに要求することなく、コントロール106を使用して、検索機能性およびコマンド機能性の両方を実施することができる。クライアントデバイスがモバイルデバイスである場合、そのような手法は、ユーザインタフェース102が、小さな画面サイズ、限定的な処理能力、およびクライアントデバイス104にはそろっている全部のキーがそろっていないキーボードを最も上手く使用することを可能にする。
【００２０】
図1に示されるフレームワークの例では、音声コマンドによって、言葉がコントロール106に入力される。いくつかの例では、音声コマンドを使用して、言葉をコントロール106に入力することを可能にするために、ユーザは、音声コマンドを発声する前に、ユーザインタフェースコントロールを選択して、音声コントロールを活動化することができる。コントロール106は、例えば、ブラウザが実行している限りユーザインタフェース102上に存在し続ける、ブラウザツールバー上の検索ボックスなど、ユーザインタフェース102の持続的要素もしくは半持続的要素とすることができ、またはユーザは、例えば、コントロール106に関連するユニフォームリソースロケータ(URL)を入力することによって、コントロール106に移動することができる。
【００２１】
状態(b)に示されるように、言葉は、キーボードまたは他の入力メカニズムを使用して、コントロール106に入力される。音声コントロールが活動化されている場合、ユーザ108は、音声110をマイクロフォン112に向かって発声することができる。ユーザ108は、例えば、発声する前にマイクロフォン112上のボタンを押下し、音声コマンドを発声し、その後、マイクロフォン上のボタンを解放して、曖昧性解消プロセスを開始することができる。別の例として、マイクロフォン112は、クライアントデバイス104に埋め込むこと、または他の方法でインストールすることができ、ユーザ108は、発声する前にユーザインタフェースコントロール(例えばマイクロフォンのアイコン)を選択することができる。また別の例として、マイクロフォン112は、ユーザ108が発声する前に「オン」にすることができ、または「常時オン」状態にしておくことができる(例えば、ユーザ108は、マイクロフォン112を「オン」にすることなく、単に発声することができる)。
【００２２】
音声110は、1つまたは複数の音素を含むことができ、音素は、発声間で有意味な対照を形成するために利用される音声の最小単位である。例えば、音声110は、音素「ka:」と「bil」を含む。僅かながら例を挙げれば、音声110は、語句「call  Bill」、「kill  Bill」、「cobble」、または「Kabul」のうちの1つを表すことができる。
【００２３】
状態(c)に示されるように、音声110に対応するオーディオ信号114が、クライアントデバイス104からサーバ116に提供される。例えば、クライアントデバイス104は、音声110を記録することによって、音声ファイルまたはデータストリームを生成することができ、その音声ファイルをインターネットなどのネットワークを介して送信することができる。サーバ116は、1つまたは複数のサーバコンピューティングデバイスとすることができる。オーディオ信号をサーバ116に送信して、音声認識、コマンド曖昧性解消、およびコマンド実行に関する一部または全部の処理をサーバ116に任せることは、クライアントデバイス104の処理要件を低くすることを可能にすることができる。しかし、実施の他の例では、音声認識は、クライアントデバイス104において行うことができ、オーディオ信号の代わりに、音声認識の結果が、サーバ116に送信される。
【００２４】
状態(d)に示されるように、サーバ116は、受信したオーディオ信号に対して音声認識プロセスを実行して、オーディオ信号と合致する1つまたは複数の候補語118a〜118dを識別する。言葉は、1つまたは複数の単語を含むことができる。例えば、音声110の記録を含む受信した音声ファイルに対して実行される音声認識は、表120の左端の列に示されるように、候補語「call  Bill」118a、「kill  Bill」118b、「Kabul」118c、「cable」118dを識別することができる。
【００２５】
候補語118a〜118dの識別は、認識閾値を上回る対応する音声認識信頼性メトリックを有する候補語を選択することによって、実行することができる。例えば、音声認識プロセスは、サーバ116の音声認識モジュールによって返された候補語が、記録された音声と合致する、またはユーザ108が言ったことと合致する確率を識別することができる。信頼性メトリックは確率を反映し、スコアが高いほど、候補語が、記録された音声と合致する可能性が高い。
【００２６】
5パーセントの信頼性などの閾値を識別することができる。(例えば5パーセント以上の)閾値を満たす候補語を、発話者意図次元における曖昧性解消のために選択することができ、閾値を満たさない信頼性を有する候補語は、無視することができ、または識別された候補語118のリストから他の方法で除外することができる。閾値を5パーセントとすると、候補語118a〜118dにそれぞれ対応する、50パーセント122a、30パーセント122b、15パーセント122c、および5パーセント122dの信頼性メトリック値は各々、閾値を満たす。
【００２７】
別の例として、N個の最高の音声認識信頼性メトリック値を有するN個の候補語を識別することができ、ここで、Nは正の整数(例えば5)である。Nの選択は、例えば、ユーザインタフェース102のサイズの推定に基づくことができ、または典型的なモバイルデバイスのディスプレイのサイズの推定に基づくことができる(例えば、以下で説明されるように、ユーザインタフェース上に候補語を提示することができ、Nの選択は、特定または典型的なユーザインタフェースディスプレイ内に、いくつの候補語を垂直に並べることができるかに基づくことができる)。別の例として、信頼性メトリック値122a〜122dの合計が100パーセントまたは60パーセントに等しくなるように、信頼性メトリック122a〜122dを選択することができる。ユーザ108または一般にユーザらによって過去に選択されたことがある候補語に対する信頼性メトリック値は、調整する(例えば増加させる)ことができる。増加量は、過去の選択の多さまたは頻度に基づくことができる。
【００２８】
候補語は、クライアントデバイスから受け取ったデータのインデックスまたはデータベース内に含まれるデータに少なくとも部分的に基づいて、識別することができる。例えば、サーバ116は、連絡先のインデックスをクライアントデバイス104から定期的に受け取ることができる。音声認識は、受信したオーディオ信号と合致する、インデックス内に含まれる候補語を認識することを含むことができる。例えば、名前「Bill」がクライアントデバイス104から受け取った連絡先のインデックス内に含まれることに部分的に起因して、候補語「call  Bill」118aを認識することができる。「Bill」がクライアント提供のインデックス内に含まれない場合、候補語「call  Bill」118aは認識されないことがあり、より低い信頼性メトリックで認識されることがあり、または名前「Bill」は単に「invoice」と同義の単語として認識されることがある。クライアント提供のインデックスは、クライアントデバイスが実行できるアプリケーションプログラム、ユーザインタフェース次元、クライアントデバイス上で利用可能なメディアコンテンツなどに関する情報など、他の情報も含むことができる。
【００２９】
状態(e)および表123に示されるように、サーバ116は、識別された各候補語118a〜118dに関連付けられた1つまたは複数の動作124a〜124fを識別する。例えば、候補語「Call  Bill」118aに対して、「自宅にいるビルに電話する」124a、「職場にいるビルに電話する」124b、および「『Call Bill』のウェブ検索を実行する」124cなどの動作を識別することができる。他の例は、候補語「Kill  Bill」118bに関連付けられた「映画『Kill  Bill』をダウンロードする」動作124dを識別すること、候補語「Kabul」118cに関連付けられた「カブールまでの道順を取得する」動作124eを識別すること、および候補語「cable」118dに関連付けられた「ケーブルテレビの請求書に支払いを行う」動作124fを識別することを含む。動作の他の例は、人名に基づいて、その人に電子メールを送ること、もしくはその人とのインスタントメッセージングセッションを確立すること、メディアコンテンツのタイトルに基づいて、メディアコンテンツを再生すること、もしくはメディアコンテンツについての詳細情報を獲得すること、およびPOIの名前に基づいて、そのPOIの地図、そのPOIについての詳細情報、もしくはそのPOIまでの距離を獲得することを含む。
【００３０】
候補語がそれ自体では動作またはコマンドを識別しない場合、語/動作マッパまたは他のルールエンジンを使用して、適切な動作を決定することができる。例えば、名前を含む候補語に対しては、「連絡を開始する」動作を選択することができ、メディアコンテンツを識別する候補語に対しては、「ダウンロード」動作を選択することができ、ユーザ108が関係を有する事業を識別する候補語に対しては、「支払い」動作を選択することができ、POIを識別する候補語に対しては、「地図」動作を選択することができる。
【００３１】
状態(f)に示されるように、各動作について、曖昧値を決定することができ、曖昧値は、ユーザが当該動作を意図した尤度を表す。例えば、動作124a〜124fについて、それぞれ30の曖昧値128a、10の曖昧値128b、10の曖昧値128c、10の曖昧値128d、0の曖昧値128e、および10の曖昧値128fを決定することができる。高い曖昧値は、ユーザが関連動作を意図した確率についての高い信頼性を表すことができる。例えば、30の曖昧値128aは、関連動作124aが、より低い曖昧値(例えば10)を有する動作124bよりも、ユーザが意図した動作である点で高い確率を有することを意味することができる。いくつかの実施では、高い曖昧値は、関連動作がより曖昧である(例えば、意図された可能性が低い)ことを表すことができる。
【００３２】
例えば、いくつかの実施では、動作124aは、10の曖昧値128bよりも高い30の曖昧値128aに基づいて、動作124bよりも、意図された可能性が低いと見なすことができる。高い曖昧値は、サーバ116のユーザまたは他のユーザが過去に選択した動作に関連付けることができる。低い曖昧値は、サーバ116のユーザまたは他のユーザが過去に選択したことのない、またはまれにしか選択しなかった動作に関連付けることができる。以下でより完全に説明されるように、低い曖昧値は、ユーザが過去にキャンセルしたことのある動作に関連付けることもできる。
【００３３】
曖昧値は、音声認識信頼性メトリックと相関させることができる。例えば、高い音声認識信頼性メトリックは、関連動作について高い曖昧値(例えば意図についての高い尤度)をもたらすことができ、その逆も成り立つ。以下でより詳細に説明されるように、時間が経つにつれて、ユーザが選択した動作に関連する曖昧値は増加させることができ、ユーザがキャンセルした動作に関連する曖昧値は減少させることができる。動作の初期曖昧値は、その動作が以前にユーザによって選択されたことがない場合、または対応する候補語が以前にユーザのために認識されたことがない場合、ゼロとすることができる。
【００３４】
全部でM個の動作を識別することができ、ここで、Mは正の整数(例えば7)である。Mの選択は、例えば、ユーザインタフェース102のサイズの推定に基づくことができ、または典型的なモバイルデバイスのディスプレイのサイズの推定に基づくことができる(例えば、以下で説明されるように、ユーザインタフェース上に候補語/動作ペアを提示することができ、Mの選択は、特定または典型的なユーザインタフェースディスプレイ内に、いくつの候補語/動作ペアを垂直に並べることができるかに基づくことができる)。別の例として、識別された動作124a〜124fには、閾値(例えば10)を上回る対応する曖昧値を有する動作を含めることができ、閾値を下回る対応する曖昧値を有する動作は、識別された動作124a〜124fから除外することができる。また別の例として、識別された動作には、タイプごとに最大数の動作を含めることができる。例えば、いくつかの例では、「連絡先に電話する」タイプの動作は、識別された候補語に基づいて4つ以上の「連絡先に電話する」動作が他の方法で識別できたとしても、最大で3つしか含めることができない。
【００３５】
候補語について他のタイプの動作が識別されたかどうかにかかわらず、候補語について1つまたは複数のデフォルト動作を識別することができる。例えば、あらゆる候補語は、関連する「ウェブ検索」動作を有することができる。候補語について識別できる他のデフォルト動作は、オンライン辞書またはオンライン百科事典において候補語を検索することを含み得る。いくつかのオーディオ信号については、ただ1つの動作を識別することができる。
【００３６】
例えば、いくつかのオーディオ信号の場合、ただ1つの候補語を識別することができ、その候補語について、ただ1つのデフォルト動作(例えばウェブ検索)を識別することができる。いくつかのオーディオ信号の場合、音声認識プロセスは、許容可能な信頼性メトリックで任意の適切な候補語を識別できないことがあり、いくつかの実施では、サーバ116は、認識不能のオーディオ信号に関連するどのような動作も識別することができない。他の実施では、サーバ116は、コマンドの繰り返しをユーザに求めるようクライアントデバイス104をトリガできる認識不能なオーディオ信号については、動作を識別することができる。
【００３７】
曖昧値の組が、ユーザが特定の動作を意図している確率が高いことを示している場合、「暗黙的」な起動プロセスを使用して、その動作を自動的に起動することができる。そのような高い確率は、絶対的または相対的に、ユーザの意図がきわめて明確であることを示す高い曖昧値から確立することができる。動作が閾値(例えば30)よりも高い曖昧値を有する場合、動作を暗黙的に起動することができる。別の例として、最高の曖昧値が2番目に高い曖昧値の少なくとも3倍である場合、最高の曖昧値を有する動作を暗黙的に起動することができる。第3の例として、最高の曖昧値が2番目に高い曖昧値の少なくとも4倍であり、さらに閾値(例えば20)よりも大きい場合、最高の曖昧値を有する動作を暗黙的に起動することができる。言い換えると、いくつかの実施では、最高の曖昧値が4であり、他のあらゆる曖昧値が1以下であるような例においては、最高の曖昧値が他のあらゆる曖昧値より少なくとも4倍大きくても、最高の曖昧値が閾値を超えていないので、最高の曖昧値を有する動作を暗黙的に起動することはできない。
【００３８】
状態(g)は、特定の「自宅にいるビルに電話する」動作124aの暗黙的な起動を示している。動作124aは、例えば、関連する曖昧値128aが閾値を上回ったことに起因して(例えば、30の曖昧値が20などの閾値を超え得る)、暗黙的に起動することができる。サーバ116は、起動する動作のタイプ(例えば、連絡先にダイアルする)を示すメタデータと、さらに関連する候補語(例えば、「Bill」などの連絡先の名前)とをクライアントデバイス104に送ることができる。いくつかの例では、サーバ116は、連絡先の電話番号など、他の情報も送ることができる。言い換えれば、ユーザ108の待ち時間を減らすため、クライアントデバイス104が連絡先の番号を検索する必要がないように、サーバは、ダイアルする番号をクライアントデバイス104に送ることができる。上で述べられたように、連絡先に関連する電話番号は、クライアントデバイス104からサーバ116に定期的に送られるインデックス内に含めることができる。
【００３９】
サーバ116から受け取った情報は、動作124aを起動するようクライアントデバイス104をトリガすることができる。いくつかの例では、動作124aは、クライアントデバイス104によって直ちに起動することができる(例えば、サーバ116から情報を受け取ったら直ちに、ビルの電話番号にダイアルすることができる)。他の例では、動作124aが起動される前に、ウィンドウ130をユーザインタフェース102上に表示することができる。ウィンドウ130は、「カウントダウンタイマ」を実施することができ、その場合、カウントダウンタイマがゼロに達したら動作124aが実行される旨を通知するカウントダウンメッセージがユーザ108に提示される。ユーザがビルに電話することを意図していた場合、ユーザ108は、カウントダウンタイマがゼロに達するに任せることができ、ゼロに達した時点で、ビルへの発呼を起動することができる。
【００４０】
カウントダウンタイマがカウントダウンする時間の長さは、関連する動作の曖昧値に基づくことができる。例えば、曖昧値128aが、ユーザ108が動作124aを意図した確率が高いこと(例えば75パーセント)を示す場合、カウントダウンタイマをまったく使用しなくてもよい。曖昧値128aが、ユーザ108が動作124aを意図した確率が中位であること(例えば50パーセント)を示す場合、カウントダウンタイマは、小さな秒数(例えば2)で開始することができ、曖昧値128aが、低い確率(例えば20パーセント)を示す場合、カウントダウンタイマは、より大きな秒数(例えば4)で開始することができる。いくつかの実施では、サーバ116が、カウントダウンタイマ開始値を決定し、その値をクライアントデバイス104に送る。
【００４１】
ユーザ108が、動作124aが起動される前に動作124aをキャンセルできるようにするために(または電話番号のダイアルなどのいくつかの動作の場合は、その動作が進行中になってからキャンセルできるようにするために)、ウィンドウ130にキャンセルコントロール132を含めることができる。状態(h)に示されるように、ユーザ108はビルに電話することを意図しておらず、キャンセルコントロール132を選択して、動作124aの起動をキャンセルする。キャンセルコントロール132の選択に応答して、(状態(i)に示されるように)クライアントデバイス104からサーバ116に中断信号を送信することができる。
【００４２】
中断信号の受信に応答して、サーバ116は、動作124aがユーザ108の意図した動作ではなかったという事実を勘案して、動作124aの曖昧値を減少させることができる。例えば、状態(j)は、関連する曖昧値128aを値5だけ減少させることを示している。ユーザが手動でキャンセルした動作の曖昧値を減少させることで、将来の音声コマンドにおいて類似の音声パターンが発声された場合に、キャンセルされた動作が自動的に起動される可能性が減少する。
【００４３】
やはり中断信号の受信に応答して、サーバ116は、ユーザ108が実際に意図した動作を選ぶことができるように、候補語/動作ペアのリスト134をクライアントデバイス104に送ることができる。リスト134は、曖昧値128a〜128fのどれも閾値を上回らない場合に、または(例えば状態(g)において)動作を暗黙的に起動するメタデータとともに、クライアントデバイス104に送ることもできる。言い換えると、リスト134は、曖昧値128a〜128fのどれも関連する動作の暗黙的な起動を引き起こすほどには高くない場合に、クライアントデバイス104に送ることができる。いくつかの実施では、リスト134は、それぞれの曖昧値に基づいた、動作124a〜124fのランキングである。他の実施では、リスト134は、サーバ116によって送られる時点ではランク付けされておらず(例えば未ソート)、そのような例では、リスト134は、クライアントデバイス104によって後でランク付けすることができる。語/動作ペアは、リスト134の代わりに、表、データベース、またはXMLファイルを含む別のタイプのデータ構造内にパッケージすることができる。
【００４４】
リスト134を受け取ると、クライアントデバイス104は、ユーザインタフェース102上にウィンドウ136を表示することができる。いくつかの実施では、サーバ116は、ウィンドウ136を表示するためのコード(例えばHTML(ハイパーテキストマークアップ言語)コード)を生成し、リスト134と併せてそのコードを送る。ウィンドウ136は、動作124a〜124fにそれぞれ対応するリスト項目140a〜140fを表示するリスト138を含む。いくつかの実施では、ユーザ108が暗黙的な動作の起動をキャンセルした場合(例えば、ユーザ108は、キャンセルコントロール132を選択することによって、動作124aの暗黙的な起動をキャンセルすることができる)、リスト138は、キャンセルされた動作に対応するリスト項目を含まなくてよい。例えば、(例えば状態(h)において)ユーザが動作124aの暗黙的な起動をキャンセルした場合、リスト138は、リスト項目140aを含まなくてよい。
【００４５】
各リスト項目140a〜140fは、対応するアイコン142a〜142fを含む。アイコン142a〜142fは、それぞれのリスト項目140a〜140fに対応する動作のタイプを示す。例えば、アイコン142a〜142bは、リスト項目140a〜140bが「連絡先に電話する」動作に対応することを示す。アイコン142cは、リスト項目140cが「ウェブ検索」動作に対応することを示す。アイコン142dは、リスト項目140dが映画を再生する(例えば、ストリーム、または購入およびダウンロード)動作に対応することを示す。アイコン142eは、リスト項目140eが地図または道順動作に対応することを示し、アイコン142fは、リスト項目140fが「請求書に支払いを行う」動作に対応することを示す。
【００４６】
ウィンドウ136は、ユーザ108が意図した動作がリスト138に表示されていない場合に、ユーザ108が異なるコマンドまたは動作を入力または発声するために使用できる、検索ボックス144を含む。ユーザ108が意図した動作が対応するリスト項目140a〜140fに表示されている場合、ユーザ108は、意図した動作に対応するリスト項目140a〜140fを選択することができる。例えば、状態(l)に示されるように、ユーザ108は、リスト項目140eを選択して、カブールまでの道順を表示するために対応する動作124eを起動したいことを通知することができる。リスト項目140a〜140fのユーザ選択に対応して、クライアントデバイス104は、選択されたリスト項目140a〜140fに対応する動作の指示をサーバ116に送る。例えば、状態(m)は、カブールまでの道順の要求に対応する動作124eが選択されたことを通知する指示を、サーバ116に送ることを示している。状態(g)の暗黙的起動プロセスとは対照的に、状態(k)および状態(l)は、本明細書で「明示的」起動プロセスと呼ばれる、動作の手動選択を提供する。
【００４７】
ユーザ選択動作の指示の受け取りに応答して、サーバ116は、ユーザ選択動作を起動する。地図を生成する、またはある場所までの道順を生成するなどの、いくつかのタイプの動作の場合、処理はサーバ116上で行われ、結果(例えば、表示画像、HTMLコード)を表示するために使用される情報が、クライアントデバイス104に送られる。例えば、ユーザ選択動作124eの場合、サーバ116上で動作する地図アプリケーションによって、カブールの地図およびカブールまでの道順を生成することができる。状態(n)に示されるように、地図および道順を表示するためのHTMLコードをクライアントデバイス104に送ることができる。クライアントデバイスは、生成された地図および道順を、ウィンドウ150内などのユーザインタフェース102に表示することができる。
【００４８】
いくつかのタイプの動作の場合、サーバ116は、動作のタイプおよびおそらくは動作に関するメタデータを通知するメッセージを、クライアントデバイス104に送信することができる。メッセージを受信すると、クライアントデバイス104は、指示された動作を実行することができる。例えば、ユーザ108が、リスト項目140bを選択して、職場にいるビルに電話する動作124bの選択を指示した場合、サーバ116は、クライアントデバイス104が電話を掛けるよう指示するメッセージを、クライアントデバイス104に送信することができる。サーバ116からクライアントデバイス104に送信されたメッセージは、ビルの職場の番号を含むことができる。
【００４９】
いくつかのタイプの動作の場合、動作の起動は、サーバ116およびクライアントデバイス104の両方での処理(例えば、単に情報を検索するだけ、または情報を表示するだけ以外の処理)を含む。例えば、メディアタイトルを再生する動作の場合、サーバ116は、メディアサーバからタイトルをダウンロードし、クレジットカードトランザクションを処理し、デジタルメディア権利をアンロックすることができる。サーバ116は、メディアコンテンツをクライアントデバイス104に送信することができる。クライアントデバイス104は、メディアコンテンツを復号することができ、そのコンテンツを再生することができる。
【００５０】
動作のユーザ選択に応答して、関連する曖昧値を増加させることができる。例えば、状態(o)は、ユーザ選択動作124eに対応する曖昧値128eを5だけ増加させることを示している。時間が経つにつれて、関連する動作が後で候補語にマッピングされた場合には、その動作が暗黙的に起動され得るような閾値のポイントまたは閾値を上回るポイントまで、曖昧値が増加することがある。
【００５１】
図2は、音声コマンドまたは他のオーディオ信号に応答して、動作を起動するために使用できる例示的なシステム200を示している。システム200は、ネットワーク206を介して1つまたは複数のクライアントデバイス204に接続されるサーバ202を含む。サーバ202は、とりわけ、1つまたは複数のプロセッサ208と、ネットワークインタフェース210と、クエリ修正器212と、ユーザインタフェース213と、媒体214とを含む。サーバ202は検索エンジンとすることができ、または音声認識を実行するために、検索エンジンによってサーバ202を使用することができる。クライアントデバイス204は、1つまたは複数のプロセッサ220と、ユーザインタフェース222と、ネットワークインタフェース224と、マイクロフォン226と、媒体228とを含む。クライアントデバイス204は、モバイル電話、ラップトップコンピュータ、PDA、スマートフォン、Blackberry(商標)、または他のハンドヘルドもしくはモバイルデバイスとすることができる。別の実施では、クライアントデバイス204は、ポータブルまたはモバイルではなく、代わりにデスクトップコンピュータまたはサーバである。
【００５２】
媒体214および媒体228は、情報またはデータを保存および記録し、その各々は、光記憶媒体、磁気記憶媒体、フラッシュメモリ、または他の任意の適切な記憶媒体タイプとすることができる。媒体214は、語曖昧性解消器アプリケーション230と、おそらくは1つまたは複数の他のアプリケーション232とを含む。語曖昧性解消器アプリケーションは、音声認識モジュール234と、語/動作マッパ236と、信頼性スコア生成器238と、動作開始器240と、クライアントデバイスインデックス242とを含む。
【００５３】
音声認識モジュール234は、受信したオーディオ信号に対して音声認識を実行して、そのオーディオ信号と合致する1つまたは複数の候補語を識別する。音声認識モジュールは、識別された各語について、候補語がオーディオ信号と合致する信頼性を示す音声認識信頼性メトリックを決定することができる。語/動作マッパ236は、各候補語に関連付けられた1つまたは複数の動作を識別する。信頼性スコア生成器238は、ユーザが当該動作を意図した尤度を表す、各動作の曖昧値を決定する。クエリ修正器212は、ユーザ選択動作の曖昧値を増加させ、ユーザキャンセル動作の曖昧値を減少させるなど、曖昧値を調整することができる。
【００５４】
クライアントデバイスインデックス242は、1つまたは複数のクライアントデバイス204から受け取った1つまたは複数のタイプのインデックスを含むことができる。例えば、サーバ202は、クライアントデバイス204から連絡先のインデックスを定期的に受け取ることができる。音声認識モジュール234は、クライアントデバイスインデックス242内に含まれる、受信オーディオ信号と合致する候補語を認識することができる。クライアントデバイスインデックス242は、クライアントデバイス204が実行できるアプリケーションプログラム、ユーザインタフェース次元、クライアントデバイス204上で利用可能なメディアコンテンツなどに関する情報など、他の情報も含むことができる。他のアプリケーション232は、例えば、アプリケーションの中でもとりわけ、地図生成器アプリケーション、(例えば、電子請求書に支払いを行うため、またはメディアコンテンツの購入を管理するための)トランザクションアプリケーション、および検索アプリケーションを含むことができる。
【００５５】
媒体228は、検索アプリケーション250と、おそらくは1つまたは複数の他のアプリケーション252とを含む。媒体228は、ユーザプリファレンス254と、アイコンデータベース256と、連絡先データベース258も含む。連絡先データベース258は、例えば、クライアントデバイス204に保存された個人連絡先のリストを含むことができる。連絡先データベース258のコンテンツの一部または全部は、サーバ202に定期的に送ることができる。アイコンデータベース256は、特定のタイプの動作を指示するアイコンを含むことができる。アイコンは、クライアントデバイス204のユーザに提示される提案候補語/動作ペアのリスト内の候補語/動作ペアの隣に、または並べて表示することができる。
【００５６】
検索アプリケーション250は、ユーザが音声コマンドを入力して、インターネット検索を実行すること、および連絡先にダイアルする、電子メールもしくは他の電子通信を介して連絡先と通信する、電子請求書支払いを行う、POIへの道順もしくはPOIについての他の情報を取得する、または他の動作を行うなど、他の動作を実行することを可能にする検索ユーザインタフェースを、クライアントデバイス204のユーザに提供することができる。ユーザプリファレンス254は、ユーザが音声コマンドによって、例えばウェブ検索よりも連絡先に電話することを通常は意図すること、またはユーザがカウントダウンタイマを使用するよりも、直ちにコマンドが起動されるのを好むことを示す値など、特定のユーザのためのカスタム閾値を含むことができる。他のユーザプリファレンス254は、特定のタイプの動作(例えば連絡先にダイアルする)が自動的に起動されるのをユーザが好むこと、またはウェブ検索動作の提案が提案候補語/動作ペアのリストの最初に提示されているのを見ることをユーザが好むことを指示することができる。
【００５７】
サーバ202は、ネットワークインタフェース210を介して、ネットワーク206と、おそらくは1つまたは複数の他のネットワークに接続することができる。同様に、クライアントデバイス204も、ネットワークインタフェース224を介して、ネットワーク206と、おそらくは1つまたは複数の他のネットワークに接続することができる。ネットワーク206は、例えば、インターネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、アナログもしくはデジタルの有線および無線電話ネットワーク(例えば、PSTN、サービス統合デジタル網(ISDN)、デジタル加入者回線(xDSL))、無線、テレビ、ケーブル、衛星、および/またはデータサービスを伝送するための他の任意の適切な配信もしくはトンネリングメカニズムのうちの1つまたは複数を含むことができる。ネットワークは、多数のネットワークまたはサブネットワークを含むことができ、その各々は、例えば、有線または無線データ経路を含むことができる。
【００５８】
プロセッサ208は、1つまたは複数のプロセッサを含み、サーバ202のためのオペレーティングシステムまたはアプリケーションプログラムのコンピュータ命令を処理する。同様に、プロセッサ220は、1つまたは複数のプロセッサを含み、クライアントデバイス204のためのオペレーティングシステムまたはアプリケーションプログラムのコンピュータ命令を処理する。ユーザインタフェース222は、クライアントデバイス204上で動作するアプリケーションのためのユーザインタフェースコントロールを含むアプリケーションユーザインタフェースを表示する。例えば、ユーザインタフェース222は、検索アプリケーション250のためのインタフェースを表示することができる。ユーザインタフェース213は、サーバ202上で動作するアプリケーションのためのアプリケーションユーザインタフェースを表示する。例えば、ユーザインタフェース213は、語曖昧性解消器アプリケーション230を構成し、監視し、起動するために使用される管理者アプリケーションのためのインタフェースを表示することができる。
【００５９】
図3は、音声コマンドに基づいて動作を起動するためのコンピュータ実施プロセス300を示すフローチャートである。簡潔に言えば、プロセス300は、サーバにおいてオーディオ信号を受信するステップと、オーディオ信号の1つまたは複数の部分と合致する1つまたは複数の候補語を識別するために、サーバによってオーディオ信号に対して音声認識を実行するステップと、各候補語に対して1つまたは複数の蓋然的意図動作を識別するステップと、クライアントデバイス上に表示される情報であって、候補語と各候補語に対する動作とを指定する情報を提供するステップと、ユーザによって選択された動作であって、提供された情報に含まれる動作の中から選択された動作の指示をクライアントデバイスから受け取るステップと、ユーザによって選択された動作を起動するステップとを含む。プロセス300を使用して、音声コマンドを構成する音声は、少なくとも2つの次元において曖昧性が解消される。
【００６０】
さらに詳細には、プロセス300が開始したとき(302)、オーディオ信号が、クライアントデバイスからサーバによって受信される(303)。例えば、クライアントデバイスがオーディオ信号を検索エンジンに送信し、続いて検索エンジンがオーディオ信号をサーバに送信する場合など、サーバは、クライアントデバイスから間接的にオーディオ信号を受信することができる。
【００６１】
サーバは、オーディオ信号の1つまたは複数の部分と合致する1つまたは複数の候補語を識別するために、オーディオ信号に対して音声認識を実行する(304)。図1に示されるように、サーバ116は、候補語118a〜118dを識別するために、オーディオ信号114に対して音声認識を実行する。音声認識を実行するステップは、オーディオ信号と合致する、クライアントから受け取ったインデックス内の候補語(例えば連絡先の名前)を識別するステップを含む。
【００６２】
音声認識は、「認識品質」次元において音声コマンドの曖昧性解消を実行するために使用される。音声認識を使用して、音声コマンドを構成する音声は、発話者が発声したであろう言葉と合致させられる。一例では、認識品質次元における曖昧性解消は、発話者が音声コマンドを発したときに、類似音の言葉「directions  to  Paris」、「directions  to  Perris」、「direct  to  Perry's  house」、「do  you  reckon  two  pairs」、「door  erect  chintz  toupee  wrist」、または他の可能な候補語のどれを発声しようと意図したのかを決定しようと試みることができる。
【００６３】
各候補語に対して、1つまたは複数の蓋然的意図動作が識別される(306)。例えば、図1に示されるように、関連する候補語118a〜118dに対して、動作124a〜124fが識別される。動作は、例えば、連絡先にダイアルすること、候補語についてウェブ検索を実行すること、POIまでの道順を取得すること、メディアコンテンツを再生すること、またはオンライン請求書に支払いを行うことを含むことができる。動作の他の例は、人名に基づいて、その人に電子メールを送ること、またはその人とのインスタントメッセージングセッションを確立すること、メディアコンテンツのタイトルに基づいて、メディアコンテンツを再生すること、またはメディアコンテンツについての詳細情報を獲得すること、およびPOIの名前に基づいて、そのPOIの地図、そのPOIについての詳細情報、またはそのPOIまでの距離を獲得することを含む。
【００６４】
第2の「発話者意図」次元における曖昧性解消は、候補語を適切な動作と合致させ、各動作に関連する曖昧値を獲得する、クライアントデバイスまたはサーバ上のモジュールによって実行される。そのようにする中で、発話者が音声コマンドを構成する言葉を発声したときに意図したであろう動作。
【００６５】
候補語と各候補語に対する動作とを指定する情報が、クライアントデバイス上への表示のために提供される(308)。例えば、各候補語/動作ペアの隣にある、または各候補語/動作ペアとともに含まれる動作タイプを表すアイコンを伴った候補語/動作ペアのリストを含むユーザインタフェースを、クライアントデバイス上に表示することができる。候補語/動作ペアは、ユーザが動作を意図した尤度に基づいた順序でランク付けし、ユーザインタフェース内に提示することができる。
【００６６】
上で述べられた「directions  to  Paris」の例の場合、ユーザインタフェースは、フランスのパリ(Paris,  France)、テキサス州パリス(Paris,  Texas)、もしくはカリフォルニア州ペリス(Perris,  California)までの道順を獲得すること、ユーザの友人の「Perry」の自宅までの経路を決定すること、語「do  you  reckon  two  pairs」を用いてウェブ検索を実行すること、または映画「Directions  To  Paris」の上映時間を決定することからなる選択肢をユーザに提供することができる。ユーザが、フランス付近にも、テキサス州付近にも、もしくはカリフォルニア州付近にも住んでいないが、「Perry」という名前の友人をもっている場合、またはユーザプリファレンスが映画鑑賞を指示している場合、経路動作および上演時間動作を、道順動作およびウェブ検索動作よりも高くランク付けすることができる。
【００６７】
ユーザ選択動作が識別され、ユーザによって選択された動作の指示が受け取られる(310)。動作は、提供された情報に含まれる動作の中から選択される。例えば、ユーザは、ユーザインタフェースにおいて候補語/動作ペアを選択して、選択された動作を起動したいと望んでいることを知らせることができる。ユーザは、第2の識別動作を選択するために、例えば、「two」と番号を発声することができる。
【００６８】
ユーザによって選択された動作が起動され(312)、それによって、プロセス300が終了する(314)。地図を生成する、またはある場所までの道順を生成するなどの、いくつかのタイプの動作の場合、処理はサーバ上で行われ、結果(例えば、表示画像、HTMLコード)を表示するために使用される情報が、クライアントデバイスに送信される。他のタイプの動作の場合、サーバは、クライアントデバイス上で起動される動作のタイプおよびおそらくは動作に関するメタデータを通知するメッセージを、クライアントデバイスに送信することができる。メッセージを受信すると、クライアントデバイスは、指示された動作を実行することができる。例えば、クライアントデバイスは、連絡先に電話を掛けることができる。いくつかのタイプの動作の場合、動作の起動は、サーバおよびクライアントデバイスの両方での処理を含む。例えば、メディアタイトルを再生する動作の場合、サーバは、メディアサーバからタイトルをダウンロードし、クレジットカードトランザクションを処理し、デジタルメディア権利をアンロックすることができる。サーバは、メディアコンテンツをクライアントデバイスに送信することができ、クライアントデバイスは、メディアコンテンツを復号し、再生することができる。
【００６９】
図4は、オーディオ信号に基づいて動作を起動するためのコンピュータ実施プロセス400を示すフローチャートである。簡潔に言えば、プロセス400は、クライアントデバイスによってサーバにオーディオ信号を提供するステップと、オーディオ信号の1つまたは複数の部分と合致する1つまたは複数の候補語および各候補語に対する1つまたは複数の蓋然的意図動作を指定する情報を獲得するステップと、動作のユーザ選択を受け取るステップと、ユーザ選択動作の指示をサーバに提供するステップと、ユーザによって選択された動作を起動するステップとを含む。
【００７０】
さらに詳細には、プロセス400が開始したとき(402)、オーディオ信号が、クライアントデバイスによってサーバに提供される(404)。例えば、図1に示されるように、クライアントデバイス104は、オーディオ信号114をサーバ116に送信する。オーディオ信号114は、例えば、ユーザ108によってマイクロフォン112に向けて発声された音声コマンドを記録することによって、生成することができる。
【００７１】
オーディオ信号と合致する1つまたは複数の候補語および各候補語に関連付けられた1つまたは複数の動作を識別する情報が獲得される(406)。例えば、図1に示されるように、サーバ116は、候補語/動作ペアのリスト134をクライアントデバイス104に送信することができる。リスト134は、曖昧値によってランク付けすることができ、またはいくつかの実施では、リスト134は、ランク付けされない。
【００７２】
ユーザ選択の動作が受け取られる(408)。例えば、ユーザは、クライアントデバイスのユーザインタフェース上に表示される提案候補語/動作ペアのリストから動作を選択することができる。例えば、図1に示されるように、ユーザ108は、「directions  to  Kabul」動作124eに対応するリスト項目140eを選択することができる。
【００７３】
ユーザ選択動作を識別する情報が、サーバに提供される(410)。例えば、図1に示されるように、動作124eの選択の指示を、クライアントデバイス104からサーバ116に送ることができる。
【００７４】
ユーザ選択動作が起動され(412)、それによって、プロセス400が終了する(414)。地図を生成する、またはある場所までの道順を生成するなどの、いくつかのタイプの動作の場合、処理はサーバ上で行われ、結果(例えば、表示画像、HTMLコード)を表示するために使用される情報が、クライアントデバイスに送信される。他のタイプの動作の場合、サーバは、クライアントデバイス上で起動される動作のタイプおよびおそらくは動作に関するメタデータを通知するメッセージを、クライアントデバイスに送信することができる。メッセージを受信すると、クライアントデバイスは、指示された動作を実行することができる。例えば、クライアントデバイスは、連絡先に電話を掛けることができる。いくつかのタイプの動作の場合、動作の起動は、サーバおよびクライアントデバイスの両方での処理を含む。例えば、メディアタイトルを再生する動作の場合、サーバは、メディアサーバからタイトルをダウンロードし、クレジットカードトランザクションを処理し、デジタルメディア権利をアンロックすることができる。サーバは、メディアコンテンツをクライアントデバイスに送信することができ、クライアントデバイスは、メディアコンテンツを復号し、再生することができる。
【００７５】
図5A〜図5Bおよび図6A〜図6Bは、例示的なユーザインタフェースを示している。図5Aは、例えばモバイルクライアントデバイス上に表示できるユーザインタフェース500の一例を示している。ユーザインタフェース500は、ユーザが音声コマンドを発声する前に選択できるマイクロフォンコントロール502を含む。ユーザの音声コマンドは、記録することができ、対応するオーディオ信号は、サーバに送信することができる。サーバは、オーディオ信号と合致する1つまたは複数の候補語を識別するために、音声認識を実行することができる。サーバは、識別された各候補語に対応する1つまたは複数の動作も識別することができる。サーバは、ユーザインタフェース500のリスト領域506内のリスト項目504a〜504hにおいて識別され得る候補語/動作ペアのリストを送信することができる。いくつかの実施では、サーバは、リスト領域506を表示するために情報(例えば、表示画像、HTMLコード)を生成し、モバイルクライアントデバイスは、受信した情報を使用して、リスト領域506を描画する。
【００７６】
リスト項目504a〜504hの各々は、それぞれ関連するアイコン508a〜508hを含む。アイコン508a〜508hの各々は、それぞれのリスト項目504a〜504hに対応する動作または動作のタイプを表す。例えば、各々が対応する連絡先の絵を含むアイコン508a〜508fは、各々が「連絡先に電話する」動作タイプを表す。アイコン508g〜508hは各々、「ウェブ検索」動作タイプを表す。ユーザは、リスト項目504a〜504hを選択して、対応する動作を起動させることができる。例えば、ユーザは、リスト項目504bを選択して、「ホワン」という名前の連絡先のモバイルフォンに電話することができる。別の例として、ユーザは、リスト項目504gを選択して、「call  Bill」という語句についてウェブ検索を開始することができる。ユーザがリスト項目504eまたはリスト項目504fを選択した場合、モバイルクライアントデバイスはそれらの連絡先の電話番号をもたないので、対応する「ジェフ」または「billB」連絡先の電話番号を入力するようユーザを促すことができる。リスト項目504a〜504hのユーザ選択に応答して、サーバは、ユーザ選択動作に関連する曖昧値を増加させることができる。
【００７７】
図5Bは、ユーザインタフェース550の一例を示している。ユーザが図5Aを参照して上で説明されたリスト項目504aを選択した場合、ユーザインタフェース550を、例えばモバイルクライアントデバイス上に表示することができる。別の例として、「自宅にいるビルに電話する」動作が、音声コマンドを発声したときにユーザが意図した動作である確率が高いと思われる(例えば、「自宅にいるビルに電話する」動作が、ユーザによって頻繁に要求される動作であり、および/または音声認識プロセスが、後で「自宅にいるビルに電話する」動作にマッピングされる候補語の識別について高い信頼性閾値を決定した)場合など、「自宅にいるビルに電話する」動作が、サーバによって暗黙的に起動される場合に、ユーザインタフェース550を表示することができる。いくつかの実施では、ユーザインタフェース550を表示せずに、「自宅にいるビルに電話する」動作を暗黙的に起動することができる。
【００７８】
ユーザインタフェース550は、モバイルクライアントデバイスに「自宅にいるビルに電話する」動作を暗黙的に起動するよう指示するサーバによるメッセージの受信の後、クライアントデバイスによって表示することができる。いくつかの例では、「自宅にいるビルに電話する」動作は、ユーザインタフェース550の表示時に、モバイルクライアントデバイスによって直ちに開始することができる。他の例では、「自宅にいるビルに電話する」動作が起動される前に、ユーザインタフェース550上にウィンドウ552を表示することができる。いくつかの例では、「ダイアル」コントロール554のユーザ選択に応答して、「自宅にいるビルに電話する」動作が起動される。
【００７９】
他の例では、ウィンドウ552は、「カウントダウンタイマ」を実施することができ、その場合、カウントダウンタイマがゼロに達したら「自宅にいるビルに電話する」動作が実行される旨を通知するカウントダウンメッセージがユーザに提示される。ユーザがビルに電話することを意図していた場合、ユーザは、カウントダウンタイマがゼロに達するに任せることができ、ゼロに達した時点で、ビルへの発呼を起動することができる。ユーザは、タイマがゼロに達する前に発呼動作を起動するために、ダイアルコントロール554を選択することもできる。カウントダウンタイマがカウントダウンする時間の長さは、関連する動作の曖昧値に基づくことができる。例えば、曖昧値が、ユーザが「自宅にいるビルに電話する」動作を意図した確率が高いことを示す場合、カウントダウンタイマをまったく使用しなくてもよい。曖昧値が、ユーザが「自宅にいるビルに電話する」動作を意図した確率が中位であることを示す場合、カウントダウンタイマは、小さな秒数(例えば2)で開始することができ、曖昧値が、低い確率を示す場合、カウントダウンタイマは、より大きな秒数(例えば4)で開始することができる。
【００８０】
ユーザが、電話が掛けられる前に「自宅にいるビルに電話する」動作をキャンセルできるようにするため、または例えば、モバイルデバイスがダイアルはしたが、ビルの電話が応答するのを待っている場合に発呼をキャンセルできるようにするために、ウィンドウ552にキャンセルコントロール556を含めることができる。ユーザがキャンセルコントロール556を選択して、ビルへの発呼をキャンセルした場合、モバイルクライアントデバイスからサーバに中断信号を送信することができる。中断信号の受信に応答して、サーバは、「自宅にいるビルに電話する」動作がユーザの意図した動作ではなかったという事実を勘案して、当該動作の曖昧値を減少させることができる。加えて、「自宅にいるビルに電話する」動作を暗黙的に起動するとの決定に起因して、ユーザインタフェース550が表示された場合、サーバは、ユーザがキャンセルコントロール556を選択したのに応答して、ユーザが起動することを意図した動作を選択できるようにするために、候補語/動作ペアのリストをモバイルクライアントデバイスに送り、図5Aに関して上で説明されたインタフェース500を表示するようモバイルクライアントデバイスに命じることができる。
【００８１】
図6Aは、例えばモバイルクライアントデバイス上に表示できるユーザインタフェース600の一例を示している。ユーザインタフェース600は、サーバが、モバイルクライアントデバイスによってサーバに送信された音声コマンドに関連するオーディオ信号と合致する1組の候補語に対応する候補語/動作ペアのリストを送信したのに応答して、表示することができる。例えば、モバイルクライアントデバイスのユーザは、音声コマンド「directions  to  Paris」を発声することができる。受信された候補語/動作ペアのリストは、ユーザインタフェース600のリスト領域606内のリスト項目604a〜604hを表示するために使用することができる。
【００８２】
リスト項目604a〜604hの各々は、それぞれ関連するアイコン608a〜608hを含む。アイコン608a〜608hの各々は、それぞれのリスト項目604a〜604hに対応する動作のタイプを表す。例えば、アイコン608a〜608dは各々、(例えば、それぞれ「パリまでの道順」、「両親の家までの道順」、「パリスの家までの道順」、および「ティアーズの家までの道順」という動作に関連する)「道順を取得する」動作タイプを表す。アイコン608e〜608gは各々、(例えば、それぞれ語句「directions  to  Paris」、「directions  to  parents」、および「directions  to  tears」についてのウェブ検索に対応する)「ウェブ検索」動作タイプを表す。アイコン608hは、(例えば、「映画『Directions  to  Paris』をダウンロードする」動作に関連する)映画ダウンロード動作タイプを表す。
【００８３】
ユーザは、リスト項目604a〜604hを選択して、対応する動作を起動させることができる。例えば、ユーザは、リスト項目604bを選択して、「両親の家」までの道順を取得することができる。別の例として、ユーザは、リスト項目604gを選択して、「directions  to  tears」という語句についてウェブ検索を開始することができる。リスト項目604a〜604hのユーザ選択に応答して、サーバは、ユーザ選択動作に関連する曖昧値を増加させることができる。
【００８４】
図6Bは、ユーザインタフェース650の一例を示している。ユーザが図6Aを参照して上で説明されたリスト項目604aを選択した場合、ユーザインタフェース650を、例えばモバイルクライアントデバイス上に表示することができる。別の例として、「パリまでの道順」動作が、音声コマンドを発声したときにユーザが意図した動作である確率が高いと思われる場合など、「パリまでの道順」動作が、サーバによって暗黙的に起動される場合に、ユーザインタフェース650を表示することができる。ユーザインタフェース650は、モバイルクライアントデバイスに「パリまでの道順」動作を暗黙的に起動するよう指示するサーバによるメッセージの受信の後、モバイルクライアントデバイスによって表示することができる。いくつかの例では、「パリまでの道順」動作は、ユーザインタフェース650の表示時に、モバイルクライアントデバイスによって直ちに開始することができる。他の例では、「パリまでの道順」動作が起動される前に、ユーザインタフェース650上にウィンドウ652を表示することができる。いくつかの例では、「先へ」コントロール654のユーザ選択に応答して、「パリまでの道順」動作が起動される。
【００８５】
他の例では、ウィンドウ652は、「カウントダウンタイマ」を実施することができ、その場合、カウントダウンタイマがゼロに達したら「パリまでの道順」動作が実行される旨を通知するカウントダウンメッセージがユーザに提示される。ユーザは、カウントダウンタイマがゼロに達するに任せることができ、ゼロに達した時点で、動作を起動することができる。ユーザは、タイマがゼロに達する前に動作を起動するために、「先へ」コントロール654を選択することもできる。ユーザが、動作が起動される前に「パリまでの道順」動作をキャンセルできるようにするために、ウィンドウ652にキャンセルコントロール656を含めることができる。ユーザがキャンセルコントロール656を選択して、動作をキャンセルした場合、モバイルクライアントデバイスからサーバに中断信号を送信することができる。中断信号の受信に応答して、サーバは、「パリまでの道順」動作がユーザの意図した動作ではなかったという事実を勘案して、当該動作の曖昧値を減少させることができる。加えて、「パリまでの道順」動作を暗黙的に起動するとの決定に起因して、ユーザインタフェース650が表示された場合、サーバは、ユーザがキャンセルコントロール656を選択したのに応答して、ユーザが起動することを意図した動作を選択できるようにするために、候補語/動作ペアのリストをモバイルクライアントデバイスに送り、図6Aに関して上で説明されたインタフェース600を表示するようモバイルクライアントデバイスに命じることができる。
【００８６】
図7は、汎用コンピュータシステム700の一例の概略図である。システム700は、プロセッサ710と、メモリ720と、記憶デバイス730と、入出力デバイス740とを含む。コンポーネント710、720、730、740の各々は、システムバス750を使用して相互接続される。プロセッサ710は、システム700内で実行される命令を処理することが可能である。一実施では、プロセッサ710は、シングルスレッドプロセッサである。別の実施では、プロセッサ710は、マルチスレッドプロセッサである。プロセッサ710は、入出力デバイス740上にユーザインタフェースのためのグラフィカル情報を表示するために、メモリ720内または記憶デバイス730上に保存された命令を処理することが可能である。
【００８７】
メモリ720は、システム700内に情報を保存する。一実施では、メモリ720は、コンピュータ可読媒体である。別の実施では、メモリ720は、揮発性メモリユニットである。また別の実施では、メモリ720は、不揮発性メモリユニットである。
【００８８】
記憶デバイス730は、システム700に大容量記憶を提供することが可能である。一実施では、記憶デバイス730は、コンピュータ可読媒体である。様々な異なる実施では、記憶デバイス730は、フロッピディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイスとすることができる。
【００８９】
入出力デバイス740は、システム700に入出力動作を提供する。一実施では、入出力デバイス740は、キーボードおよび/またはポインティングデバイスを含む。別の実施では、入出力デバイス740は、グラフィカルユーザインタフェースを表示するためのディスプレイユニットを含む。
【００９０】
説明された特徴は、デジタル電子回路で、またはコンピュータハードウェアで、またはコンピュータハードウェアとファームウェアもしくはソフトウェアの組み合わせで実施することができる。装置は、プログラム可能プロセッサによって実行される、機械可読記憶デバイス内に有形に具現されるコンピュータプログラム製品で実施することができ、方法ステップは、入力データに操作を施して出力を生成することによって説明された実施の機能を実行するために、命令のプログラムを実行するプログラム可能プロセッサによって実行することができる。説明された特徴は、データ記憶システムからデータおよび命令を受信し、データ記憶システムにデータおよび命令を送信するように結合された少なくとも1つのプログラム可能プロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む、プログラム可能システム上で実行可能な1つまたは複数のコンピュータプログラムで有利に実施することができる。コンピュータプログラムは、ある活動を実行し、またはある結果をもたらすために、コンピュータ内で直接的または間接的に使用できる1組の命令である。コンピュータプログラムは、コンパイラ言語またはインタプリタ言語を含む任意の適切な形式のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他の単位としてなど、任意の適切な形態で配備することができる。
【００９１】
命令のプログラムを実行するのに適切なプロセッサは、例を挙げると、汎用および専用マイクロプロセッサの両方、ならびに任意の適切な種類のコンピュータの単一のプロセッサまたは多数のプロセッサの1つを含む。一般に、プロセッサは、リードオンリメモリもしくはランダムアクセスメモリまたはその両方から、命令およびデータを受け取る。コンピュータの基本要素は、命令を実行するためのプロセッサと、命令およびデータを保存するための1つまたは複数のメモリである。一般に、コンピュータは、データファイルを保存するための1つまたは複数の大容量記憶デバイスも含み、またはそれらと通信するために動作可能に結合され、そのようなデバイスは、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、光磁気ディスク、ならびに光ディスクを含む。コンピュータプログラム命令およびデータを有形に具現するのに適した記憶デバイスは、すべての形態の不揮発性メモリを含み、例を挙げると、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、ASIC(特定用途向け集積回路)によって補うことができ、またはASIC内に含むことができる。
【００９２】
ユーザとの対話を提供するため、上記の特徴は、ユーザに情報を表示するためのCRT(ブラウン管)またはLCD(液晶表示)モニタなどの表示デバイスと、ユーザがそれによってコンピュータに入力を提供できるキーボードおよびマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上で実施することができる。
【００９３】
上記の特徴は、データサーバなどのバックエンドコンポーネントを含む、またはアプリケーションサーバもしくはインターネットサーバなどのミドルウェアコンポーネントを含む、またはグラフィカルユーザインタフェースまたはインターネットブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピュータシステムにおいて、あるいはそれらの任意の動作可能な組み合わせで実施することができる。システムのコンポーネントは、通信ネットワークなどのデジタルデータ通信の任意の適切な形態または媒体によって接続することができる。通信ネットワークの例は、例えば、LAN、WAN、およびインターネットを形成するコンピュータとネットワークを含む。
【００９４】
コンピュータシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いから遠くにあり、通常は説明されたネットワークなどのネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【００９５】
(簡潔にするために単に文書と呼ばれる)電子文書は、必ずしもそうである必要はないが、ファイルに対応することができる。文書は、他の文書を保持するファイルの一部に、問題の文書専用の単一のファイルに、または多数の協調的ファイルに保存することができる。
【００９６】
本明細書で説明された主題および動作の実施形態は、本明細書で開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいはそれらの1つまたは複数による組み合わせで実施することができる。本明細書で説明された主題の実施形態は、データ処理装置によって実行するため、またはその動作を制御するための、コンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラムとして、すなわちコンピュータプログラム命令からなる1つまたは複数のモジュールとして実施することができる。
【００９７】
コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくは順次アクセスメモリアレイもしくはデバイス、またはそれらの1つもしくは複数の組み合わせとすることができ、あるいはそれらの中に含むことができる。さらに、コンピュータ記憶媒体は、伝播信号ではないが、人工的に生成される伝播信号内に符号化されるコンピュータプログラム命令の源泉または宛先とすることができる。コンピュータ記憶媒体は、1つもしくは複数の別個の物理的コンポーネントもしくは媒体(例えば、多数のCD、ディスク、または他の記憶デバイス)とすることができ、またはそれらの中に含むことができる。本明細書で説明された動作は、1つもしくは複数のコンピュータ可読記憶デバイスに保存されたデータまたは他の源泉から受け取ったデータに対してデータ処理装置によって実行される操作とすることができる。
【００９８】
「データ処理装置」という用語は、データを処理するためのすべての種類の装置、デバイス、および機械を包含し、例を挙げると、プログラム可能プロセッサ、コンピュータ、システムオンチップもしくはマルチプルチップ、またはそれらの組み合わせを含む。装置は、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置は、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、またはそれらの1つまたは複数による組み合わせを構成するコードなど、問題のコンピュータプログラムのための実行環境を生成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００９９】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)コンピュータプログラムは、コンパイラ言語またはインタプリタ言語、宣言型または手続き型言語を含む任意の適切な形式のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に適した他の単位としてなど、任意の動作可能な形態で配備することができる。コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応することができる。プログラムは、他のプログラムもしくはデータを保持するファイルの一部(例えば、マークアップ言語文書に保存される1つもしくは複数のスクリプト)に、問題のプログラム専用の単一のファイルに、または多数の協調的ファイル(例えば、1つもしくは複数のモジュール、サブルーチン、もしくはコードの部分を保存するファイル)に保存することができる。コンピュータプログラムは、1つのコンピュータ上で実行されるように、または1つのサイトに配置され、もしくは多数のサイト間に分散されて、通信ネットワークによって相互接続される、多数のコンピュータ上で実行されるように配備することができる。
【０１００】
本明細書で説明されたプロセスおよび論理フローは、入力データに操作を施して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサによって実行することができる。プロセスおよび論理フローは、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によっても実行することができ、装置は、そのような専用論理回路としても実施することができる。
【０１０１】
コンピュータプログラムを実行するのに適したプロセッサは、例を挙げると、汎用および専用マイクロプロセッサの両方、ならびに任意の適切な種類のデジタルコンピュータのいずれか1つまたは複数のプロセッサを含む。一般に、プロセッサは、リードオンリメモリもしくはランダムアクセスメモリまたはその両方から、命令およびデータを受け取る。コンピュータの基本要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを保存するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、例えば、磁気ディスク、光磁気ディスク、および光ディスクなどの、データを保存するための1つまたは複数の大容量記憶デバイスも含み、あるいはそれらからのデータ受信もしくはそれらへのデータ送信またはその両方を行うために動作可能に結合される。しかし、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、例えば、ごく僅かながら例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(例えばユニバーサルシリアルバス(USB)フラッシュドライブ)などの、別のデバイスに埋め込むことができる。コンピュータプログラム命令およびデータを保存するのに適したデバイスは、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、例を挙げると、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたは着脱可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路によって補うことができ、または専用論理回路内に含むことができる。
【０１０２】
ユーザとの対話を提供するため、本明細書で説明された主題の実施形態は、ユーザに情報を表示するための例えばCRT(ブラウン管)またはLCD(液晶表示)モニタなどの表示デバイスと、ユーザがそれによってコンピュータに入力を提供できるキーボードおよび例えばマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上で実施することができる。他の種類のデバイスも、ユーザとの対話を提供するために同様に使用することができ、例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、適切な形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の適切な形態で受け取ることができる。加えて、コンピュータは、例えば、ウェブブラウザから受け取った要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することなど、ユーザによって使用されるデバイスに文書を送信し、デバイスから文書を受信することによって、ユーザと対話することができる。
【０１０３】
本明細書で説明された主題の実施形態は、例えばデータサーバなどのバックエンドコンポーネントを含む、または例えばアプリケーションサーバなどのミドルウェアコンポーネントを含む、または本明細書で説明された主題の実施に伴いユーザがそれを介して対話を行えるグラフィカルユーザインタフェースまたはウェブブラウザを有する、例えばクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピュータシステムにおいて、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせで実施することができる。システムのコンポーネントは、通信ネットワークなどのデジタルデータ通信の任意の適切な形態または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、インターネットワーク(例えばインターネット)、およびピアツーピアネットワーク(例えばアドホックピアツーピアネットワーク)を含む。
【０１０４】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いから遠くにあり、通常は通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、(例えば、クライアントデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(例えばHTMLページ)を送信する。クライアントデバイスにおいて(例えばユーザ対話の結果)生成されたデータは、サーバにおいてクライアントデバイスから受信することができる。
【０１０５】
多くの実施が説明された。それにもかかわらず、本開示の主旨および範囲から逸脱することなく、様々な変更を施し得ることが理解されよう。したがって、以下の特許請求の範囲内には他の実施も含まれる。
【符号の説明】
【０１０６】
100  情報検索システム
102  ユーザインタフェース
104  クライアントデバイス
106  コントロール
108  ユーザ
110  音声
112  マイクロフォン
114  オーディオ信号
116  サーバ
118  候補語
120  表
122  信頼性メトリック
123  表
124  動作
128  曖昧値
130  ウィンドウ
132  キャンセルコントロール
134  候補語/動作ペアのリスト
136  ウィンドウ
138  リスト
140  リスト項目
142  アイコン
150  ウィンドウ
200  システム
202  サーバ
204  クライアントデバイス
206  ネットワーク
208  プロセッサ
210  ネットワークインタフェース
212  クエリ修正器
213  ユーザインタフェース
214  媒体
220  プロセッサ
222  ユーザインタフェース
224  ネットワークインタフェース
226  マイクロフォン
228  媒体
230  語曖昧性解消器アプリケーション
232  他のアプリケーション
234  音声認識モジュール
236  語/動作マッパ
238  信頼性スコア生成器
240  動作開始器
242  クライアントデバイスインデックス
250  検索アプリケーション
252  他のアプリケーション
254  ユーザプリファレンス
256  アイコンデータベース
258  連絡先データベース
500  ユーザインタフェース
502  マイクロフォンコントロール
504  リスト項目
506  リスト領域
508  アイコン
550  ユーザインタフェース
552  ウィンドウ
554  ダイアルコントロール
556  キャンセルコントロール
600  ユーザインタフェース
604  リスト項目
606  リスト領域
608  アイコン
650  ユーザインタフェース
652  ウィンドウ
654  先へコントロール
656  キャンセルコントロール
700  汎用コンピュータシステム
710  プロセッサ
720  メモリ
730  記憶デバイス
740  入出力デバイス
750  システムバス
【図１】
0005911669.tif 000002
【図２】
0005911669.tif 000003
【図３】
0005911669.tif 000004
【図４】
0005911669.tif 000005
【図５Ａ】
0005911669.tif 000006
【図５Ｂ】
0005911669.tif 000007
【図６Ａ】
0005911669.tif 000008
【図６Ｂ】
0005911669.tif 000009
【図７】
0005911669.tif 000010