(57)【特許請求の範囲】
【請求項１】
複数の認識器を利用してマークアップ言語ドキュメントに基づいて発話を処理するコンピュータ実行方法であって、
クライアントコンピューティングデバイスが、前記マークアップ言語ドキュメントを受信するステップと、
前記クライアントコンピューティングデバイスが、前記発話を受信するステップと、
前記クライアントコンピューティングデバイスが、前記マークアップ言語ドキュメントに基づいて前記発話に対する結果セットを戻す前記複数の認識器のうちの少なくとも１つを選択するステップであって、前記選択するステップは、
前記発話に使用される文法を認識するステップと、
前記文法に基づいて前記発話に対する前記結果セットを戻す前記複数の認識器のうちの少なくとも１つを特定させる少なくとも１つのマークアップ言語タグについて前記マークアップ言語ドキュメントを解析するステップと、
前記少なくとも１つのマークアップ言語タグによって特定された前記複数の認識器のうちの前記少なくとも１つを選択するステップであって、前記複数の認識器のうちの前記選択された少なくとも１つは、前記文法が前記クライアントコンピューティングデバイス上に記憶されたデータを含む場合、前記クライアントコンピューティングデバイス上に組み込まれたローカル認識器であり、前記文法がネットワークサーバからリモートサーチエンジンへのクエリを介して取得されたデータを含む場合、前記ネットワークサーバ上のネットワーク認識器である、選択するステップと
を含む、選択するステップと、
前記クライアントコンピューティングデバイスが、前記結果セットを、前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定されたフォーマットにおける前記複数の認識器のうちの前記選択された少なくとも１つから受信するステップと、
前記クライアントコンピューティングデバイスが、前記結果セットを受信することに応答してイベントを実行するステップと
を含むコンピュータ実行方法。
【請求項２】
前記クライアントコンピューティングデバイスが、前記複数の認識器のうちの前記少なくとも１つに対するバージョンデータを、第１のコンピューティングデバイスへ送信するステップと、
前記クライアントコンピューティングデバイスが、前記バージョンデータが前記複数の認識器のうちの前記少なくとも１つに対する更新後のバージョンを特定する場合、更新されたマークアップ言語ドキュメントを、前記第１のコンピューティングデバイスから受信するステップと
をさらに含み、前記更新されたマークアップ言語ドキュメントは、前記更新後のバージョンにおいて新たに付加された特徴を利用するための命令に関する記述を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記イベントは、前記結果セットを受信することに応答して、前記発話に対する音声認識の精度を示す信頼スコアに少なくとも基づいて、実行すべき動作を判定することを含み、前記動作は、前記結果セットが前記発話に対する未処理の結果を含み、かつ前記信頼スコアが、所定の閾値より低い場合、前記結果セットを無視し、前記結果セットを前記クライアントコンピューティングデバイスに表示することを防止することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記結果セットを、前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定されたフォーマットの前記複数の認識器のうちの前記選択された少なくとも１つから受信する前記ステップは、未処理の結果フォーマット及び処理された結果フォーマットのうちの少なくとも１つにおける前記結果セットを受信するステップを含み、前記未処理の結果フォーマットは、前記発話の音声認識を含む１つ以上の用語を含み、前記処理された結果フォーマットは、前記発話に関連付けられた１つ以上の用語の音声認識を含むことを特徴とする請求項１に記載の方法。
【請求項５】
マークアップ言語ドキュメントに基づいて複数の認識器を利用して発話を処理するシステムであって、前記システムは、クライアントコンピューティングデバイスを含み、前記クライアントコンピューティングデバイスは、
実行可能なプログラムコードを記憶するメモリと、
前記メモリに機能的に接続されたプロセッサと
を含み、前記プロセッサは、前記プログラムコードに含まれたコンピュータ実行可能命令に応答し、かつ
前記マークアップ言語ドキュメントを受信し、
前記発話を受信し、
前記マークアップ言語ドキュメントにおけるマークアップ言語に基づいて前記発話に対する結果セットを戻す前記複数の認識器のうちの少なくとも１つを選択し、前記マークアップ言語に基づいて選択することは、
前記発話に使用される文法を認識し、
前記文法に基づいて前記発話に対する前記結果セットを戻す前記複数の認識器のうちの少なくとも１つを特定させる少なくとも１つのマークアップ言語タグについて前記マークアップ言語ドキュメントを解析し、
前記少なくとも１つのマークアップ言語タグによって特定された前記複数の認識器のうちの前記少なくとも１つを選択し、前記複数の認識器のうちの前記選択された少なくとも１つは、前記文法が前記クライアントコンピューティングデバイス上に記憶されたデータを含む場合、前記クライアントコンピューティングデバイス上に組み込まれたローカル認識器であり、前記文法がネットワークサーバからリモートサーチエンジンへのクエリを介して取得されたデータを含む場合、前記ネットワークサーバ上のネットワーク認識器であり、
前記結果セットを、前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定されたフォーマットにおける前記複数の認識器のうちの前記選択された少なくとも１つから受信し、および、
前記結果セットを受信することに応答して、イベントを実行するよう動作する
ことを特徴とするシステム。
【請求項６】
前記プロセッサは、
更新後のバージョンが前記複数の認識器のうちの少なくとも１つに対して利用可能であるかどうかを決定し、
更新後のバージョンが前記複数の認識器のうちの前記少なくとも１つに対して利用可能である場合、前記更新後のバージョンにおいて新たに付加された特徴を操作するための命令に関する記述を含む更新されたマークアップ言語ドキュメントを受信する
ようにさらに動作することを特徴とする請求項５に記載のシステム。
【請求項７】
前記イベントは、前記結果セットを受信することに応答して、前記発話に対する音声認識の精度を示す信頼スコアに少なくとも基づいて、実行すべき動作を判定することを含み、前記動作は、前記結果セットが前記発話に対する未処理の結果を含み、かつ前記信頼スコアが、所定の閾値より低い場合、前記結果セットを無視し、前記結果セットを前記クライアントコンピューティングデバイスに表示することを防止することを含むことを特徴とする請求項５に記載のシステム。
【請求項８】
前記プロセッサは、前記発話を前記複数の認識器のうちの前記選択された少なくとも１つに送信するようさらに動作することを特徴とする請求項５に記載のシステム。
【請求項９】
前記複数の認識器のうちの前記選択された少なくとも１つからの前記結果セットは、前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定されたフォーマットにおいて、受信され、前記フォーマットは、未処理の結果フォーマット及び処理された結果フォーマットのうちの少なくとも１つを含み、前記未処理の結果フォーマットは、前記発話の音声認識を含む１つ以上の用語を含み、前記処理された結果フォーマットは、前記発話の音声認識と関連付けられた１つ以上の用語を含むことを特徴とする請求項５に記載のシステム。
【請求項１０】
コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令がクライアントコンピューティングデバイス上で実行されると、前記クライアントコンピューティングデバイスに、マークアップ言語ドキュメントに基づいて複数の認識器を利用して発話を処理する方法を実行させ、前記方法は、
前記クライアントコンピューティングデバイスが、前記マークアップ言語ドキュメントを受信するステップと、
前記クライアントコンピューティングデバイスが、前記発話を受信するステップと、
前記クライアントコンピューティングデバイスが、前記マークアップ言語ドキュメントにおけるマークアップ言語に基づいて前記発話に対する結果セットを戻す前記複数の認識器のうちの少なくとも１つを選択するステップと、
前記クライアントコンピューティングデバイスが、前記発話を、前記複数の認識器のうちの前記選択された少なくとも１つに流すステップと、
前記クライアントコンピューティングデバイスが、前記結果セットを、前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定されたフォーマットにおける前記複数の認識器のうちの前記選択された少なくとも１つから受信するステップと、
前記クライアントコンピューティングデバイスが、前記結果セットを受信することに応答してイベントを実行するステップと
を備え、前記マークアップ言語ドキュメントを受信する前記ステップは、
前記クライアントコンピューティングデバイス上のローカルに記憶されたマークアップ言語ドキュメントを受信するステップ、及び、
遠隔的に記憶されたマークアップ言語ドキュメントをネットワークサーバから受信するステップ、のうち少なくとも１つを含み、
前記マークアップ言語ドキュメントにおけるマークアップ言語に基づいて前記発話に対する結果セットを戻す前記複数の認識器のうちの少なくとも１つを選択する前記ステップは、
前記発話に使用される文法を認識するステップと、
少なくとも１つのマークアップ言語タグについて前記マークアップ言語ドキュメントを解析するステップと、
前記文法に基づいて前記発話に対する結果セットを戻す前記複数の認識器のうちの少なくとも１つを特定するステップと、
少なくとも１つのマークアップ言語タグによって特定された前記複数の認識器のうちの少なくとも１つを選択するステップと
を含み、前記複数の認識器のうちの前記選択された少なくとも１つは、前記文法が前記クライアントコンピューティングデバイス上に記憶されたデータを含む場合、前記クライアントコンピューティングデバイス上に組み込まれたローカル認識器であり、前記文法がネットワークサーバからリモートサーチエンジンへのクエリを介して取得されたデータを含む場合、前記ネットワークサーバ上のネットワーク認識器である
ことを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
前記方法は、
前記クライアントコンピューティングデバイスが、更新後のバージョンが前記複数の認識器のうちの少なくとも１つに対して利用可能であるかどうかを決定するステップと、
前記クライアントコンピューティングデバイスが、更新後のバージョンが前記複数の認識器のうちの前記少なくとも１つに対して利用可能である場合、前記更新後のバージョンにおいて新たに付加された特徴を操作する付加的マークアップ言語を含む更新されたマークアップ言語ドキュメントを受信するステップと
をさらに含む請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記結果セットを、前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定されたフォーマットの前記複数の認識器のうちの前記選択された少なくとも１つから受信する前記ステップは、未処理の結果フォーマット及び処理された結果フォーマットのうち少なくとも１つにおける前記結果セットを受信するステップを含み、前記未処理の結果フォーマットは、前記発話の音声認識を含む１つ以上の用語を含み、前記処理された結果フォーマットは、前記発話に関連付けられた１つ以上の用語の音声認識を含むことを特徴とする請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記イベントは、前記結果セットを受信することに応答して、前記発話に対する音声認識の精度を示す信頼スコアに少なくとも基づいて、実行すべき動作を判定することを含み、前記動作は、前記結果セットが前記発話に対する未処理の結果を含み、かつ前記信頼スコアが、所定の閾値より低い場合、前記結果セットを無視し、前記結果セットを前記クライアントコンピューティングデバイスに表示することを防止することを含むことを特徴とする請求項１０に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
＜著作権表示＞
本願明細書の内容の一部は著作権保護に従う要素を含む。著作権者は、特許文献又は特許開示の如何なる者による複製が米国特許商標局内で公的に入手可能なファイル又は記録を生じる場合、これに異議を申し立てないが、その他の場合の全ての著作権は如何なる場合にも保護される。
【背景技術】
【０００２】
モバイルコンピューティングデバイスは、音声認識技術を利用して、ダイヤリングや情報クエリ等の様々な音声起動機能を実行する。モバイルコンピューティングデバイスの記憶装置の限界に帰属して、総合的な音声認識を実行するために、（単純なコマンド及び単純なクエリを処理する）ローカル認識器又はデバイスベースの認識器並びに（オンラインサービスへのアクセスを必要とするより複雑なクエリを処理する）ネットワーク認識器を含む複数の「認識器」が必要とされ得る。しかしながら、現在のモバイルコンピューティングデバイスは、単一の認識器のみを使用することによって、又は、シリアル形式のローカル認識器及びネットワーク認識器を使用することによって、クエリを処理することが制限されている。当該シリアル形式において、結果の処理のためにネットワーク認識器に対して発信される前に、結果がローカル認識器によって処理されなければならない。ローカル認識器のみを使用する関連する欠点としては、結果が、（記憶装置限界に帰属して）単純な命令及び制御の要求に制限されてしまうことである。ネットワーク認識器のみを使用することに関連する欠点としては、単純な命令及び制御の要求に対する結果を受信するための過度の待ち時間である。ローカル認識器及びネットワーク認識器をシリアルに使用することに関連する欠点としては、ローカル認識器が十分な結果処理を提供することができないときでさえも、ローカル認識器が、ネットワーク認識器に先立って利用されなければならないということである。これら問題及び他の問題に関し、本願発明の様々な実施形態が構成されている。
【発明の概要】
【０００３】
本概要は、発明の詳細な説明においてさらに後述する単純化した形態で概念の選択を導くために与えられている。この発明の概要は、特許請求の範囲に記載された発明の重要な特徴若しくは本質的な特徴を特定することを目的とはしておらず、また、特許請求の範囲に記載された発明を決定することを目的とはしていない。
【０００４】
マークアップ言語ドキュメントに基づいて複数の認識器を選択し且つ利用して、発話を処理する実施形態が提供されている。マークアップ言語ドキュメント及び発話は、コンピューティングデバイスにおいて受信される。１つ以上の認識器は、前記マークアップ言語ドキュメントにおけるマークアップ言語に基づいて前記発話に対する結果セットを戻す複数の認識器の中から選択され得る。結果セットは、選択された認識器から又は前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定された形態の認識器から受信され得る。そして、前記結果セットを受信することに応答して、イベントがコンピューティングデバイスにおいて実行される。
【０００５】
これら及び他の特徴及び利点が、下記の詳細な説明を読み、関連する図面を検討することにより、明らかになるであろう。上述の一般的な説明及び以下の詳細な説明の双方は、例示的であるに過ぎず、特許請求の範囲に記載された本発明を制限するものではないと理解されるべきである。
【図面の簡単な説明】
【０００６】
【図１】様々な実施形態に係るマークアップ言語ドキュメントに基づいて複数の認識器を選択し且つ利用して、発話を処理するネットワークアーキテクチャを図示するブロック図である。
【図２】様々な実施形態に係るマークアップ言語ドキュメントに基づいて複数の認識器を選択し且つ利用して発話を処理するために利用され得るクライアントコンピューティング環境を図示するブロック図である。
【図３】様々な実施形態に係るマークアップ言語ドキュメントに基づいて複数の認識器を選択し且つ利用して、発話を処理するルーチンを図示するフロー図である。
【図４】様々な実施形態に係るマークアップ言語ドキュメントに基づいて発話を処理する更新後の認識器を利用するルーチンを図示するフロー図である。
【図５】様々な実施形態に係る発話を処理し且つ発話に対する結果セットを処理する複数の認識器から選択するのに利用され得るタグを含むマークアップ言語ドキュメントを示す図である。
【発明を実施するための形態】
【０００７】
マークアップ言語ドキュメントに基づいて、複数の認識器を選択し且つ利用して発話を処理する実施形態を提供する。マークアップ言語ドキュメント及び発話は、コンピューティングデバイスにおいて受信される。当該マークアップ言語ドキュメントにおけるマークアップ言語に基づいて、１つ以上の認識器は、発話に対する結果セットを戻す複数の認識器の中から選択され得る。結果セットは、選択された認識器から、又は、前記マークアップ言語ドキュメントにおいて指定された処理方法によって決定された形態の認識器から受信され得る。そして、結果セットを受信することに応答して、イベントがコンピューティングデバイスにおいて実行される。
【０００８】
以下の詳細な説明において、本明細書の一部を形成し、例示として特定の実施形態又は実施例が示されている添付図面を参照する。これら実施形態は、組み合わせられ得るし、他の実施形態が利用され得るし、構造的な変更が、本願発明の趣旨及び範囲から逸脱しないで行われ得る。したがって、以下の詳細な説明は、限定的な意味では捉えられるべきではないし、本発明の範囲は、添付した特許請求の範囲及びそれら均等物によって画定される。
【０００９】
いくつかの図面を介して同様の番号が同様の要素を表す図面を参照すると、本発明の様々な態様が記載されているであろう。図１は、様々な実施形態に係るマークアップ言語ドキュメントに基づいて複数の認識器を選択し且つ利用して、発話を処理するネットワークアーキテクチャを図示するブロック図である。ネットワークアーキテクチャは、ネットワーク４上のファイルサーバー７０と通信するクライアントコンピューティングデバイス２を含む。クライアントコンピューティングデバイス２は、音声認識サーバアプリケーション３０、イベントハンドラアプリケーション３８、認識器４０、発話４２、マークアップ言語ドキュメント４４、結果セット４６、デバイスインタフェースアプリケーション５０、及び、同期サービスアプリケーション６０を含み得る。様々な実施形態によれば、認識器４０は１つ以上の認識器を含むと理解されるべきである。様々な実施形態によれば、クライアントコンピューティングデバイス２は、モバイル若しくはポータブルコンピュータ、又は、１つ以上のアプリケーションプログラムを実行することができる他のタイプのコンピュータを含み得る。当該他のタイプのコンピュータは、ラップトップコンピュータ、「スマートフォン」（すなわち、コンピュータの機能性を有し、そして／又は、アプリケーション開発者に対して標準化インタフェース及びプラットフォームを提供するためにオペレーティングシステムソフトウエアを駆動することができる）、及び、自動車ベースのコンピューティングデバイスを含むもののこれらに限定されない。
【００１０】
クライアントコンピューティングデバイス２の音声認識サーバアプリケーション３０は、音声認識を利用し得る様々な生産性ソフトウェアアプリケーションを含み得る。当該音声認識は、検索エンジン（例えば、事業検索、株価検索、スポーツのスコア、映画の時間、気象データ、星占い、ドキュメントの検索）、ナビゲーション、音声ダイヤル（「ＶＡＤ」）、自動車ベースのソフトウェア（すなわち、無線通信をオンし又はオフし、クルーズコントロール機能を始動せしめ、温度を制御し、ビデオ表示ファンクションを制御し、「ＤＶＤ」を再生する）、デバイス制御機能（例えば、クライアントコンピューティングデバイス２をオフにし、ノートを記録する、ファイルを削除、作成、又は移動する）、メッセージング（例えば、テキスト及びＭＭＳ）、媒体（例えば、写真を撮る）、及び、コンテンツを含むものの、これらに限定されない。（図２ー３の説明においてさらに詳細に説明する）様々な実施形態によれば、イベントハンドラアプリケーション３８は、発話４２をクライアントコンピューティングデバイス２から受信し、文法に対する発話４２を処理するよう利用され得る。発話４２が、（住所録からコンタクトにダイヤルする等の）コマンドを含み得るし、又は、クライアントコンピューティングデバイス２上の音声認識サービスアプリケーション３０のユーザによる情報のクエリを含み得ることが十分理解されるだろう。イベントハンドラアプリケーション３８は、発話４２に用いられた文法に基づいて認識器（すなわち、認識器４０又は認識器７２）を指定して、発話４２に応答して１つ以上の結果（すなわち、１つ以上の結果セット４６又は結果セット７６）を返信するタグに対するマークアップ言語ドキュメント４４を解析するのにさらに利用され得る。実施形態によれば、認識器４０は、発話４２に対する結果を処理するクライアントコンピューティングデバイス２に対して実行され得る別々のアプリケーションを含み得る。別の実施形態によれば、認識器４０は、クライアントコンピューティングデバイス２のオペレーティングシステムに組み込まれ得る。
【００１１】
クライアントコンピューティングデバイス２のデバイスインタフェースアプリケーション５０は、クライアントコンピューティングデバイス２によって実行され得る様々な機能に対するアプリケーションプログラムインターフェイス（「ＡＰＩ」）を含み得る。当該様々な機能は、ユーザインタフェースを作成すること、ネットワーキング、オーディオキャプチャ、音声認識、オーディオの再生、カメラ、住所録、及び、全地球位置発見システム（「ＧＰＳ」）機能を含むものの、これらに限定されない。クライアントコンピューティングデバイス２の同期サービスアプリケーション６０は、クライアントコンピューティングデバイス２とファイルサーバー７０との同期を円滑にする。
【００１２】
クライアントコンピューティングデバイス２は、ネットワーク４上でファイルサーバー７０と通信し得る。ネットワーク４は、ローカルネットワーク又は広域ネットワーク（例えば、インターネット）を含み得る。ファイルサーバー７０は、認識器７２，マークアップ言語ドキュメント７４，及び結果セット７６を含み得る。様々な実施形態によれば、認識器７２は１つ以上の認識器を含むものと理解されるべきである。実施形態によれば、ファイルサーバー７０は、データセンターにおいて複数のコンピューティングデバイスを含み得る。当該データセンターは、発話４２をクライアントコンピューティングデバイス２から受信し且つ（前記イベントハンドラアプリケーション３８からの要求に応答して）認識器７２を使用して、発話４２に応答して結果セット７６を決定してクライアントコンピューティングデバイス２に返信する。
【００１３】
様々な実施形態によれば、図４に関して以下でさらに詳細に説明するように、マークアップ言語ドキュメント７４は、マークアップ言語ドキュメント４４の１のバージョンを含み得る。イベントハンドラアプリケーション３８は、クライアントコンピューティングデバイス２におけるマークアップ言語ドキュメント４４をマークアップ言語ドキュメント７４と比較するよう構成され得る。そして、マークアップ言語ドキュメント７４が更新されたバージョンである場合（例えば、マークアップ言語ドキュメント７４が、認識器４０によって利用され得る新たに付加された特徴を操作する付加的マークアップ言語を含み得る場合）、マークアップ言語ドキュメント４４は、付加的マークアップ言語を用いて更新される。
【００１４】
ファイルサーバー７０を含む複数のコンピューティングデバイス（図示せず）は、アプリケーションゲートウェイ、アプリケーションサーバ、同期ゲートウェイ及び認識ＰＯＤ、又は、複製デバイスを含み得るものの、これらに限定されない。当業者であれば、ファイルサーバー７０を含む複数のコンピューティングデバイスとクライアントコンピューティングデバイス２との間での通信が多くのネットワークプロトコールの使用によって円滑にされ得ると容易に理解できるであろう。例えば、クライアントコンピューティングデバイス２とアプリケーションゲートウェイとの間の保護データ通信は、トランスミッションコントロールプロトコル（「ＴＣＰ」）及び「ＨＴＴＰＳ」（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ  ｐｒｏｔｏｃｏｌ）の使用によって円滑にされ得る。アプリケーションゲートウェイ、アプリケーションサーバ、認識ＰＯＤの間の通信は、ハイパーテキストトランスファプロトコル（「ＨＴＴＰ」）の使用によって円滑にされ得る。前述のプロトコルは、当業者にとって周知であり、本明細書においてさらに議論しない。実施形態によれば、ファイルサーバー７０によって受信された発話４２と結果セット７６とは、（例えば、認識ＰＯＤ及びアプリケーションサーバに送信される前にアプリケーションゲートウェイによって）、（音声を用いた）ＨＴＴＰ  ＰＯＳＴ方法を使用して処理され得る。（例えば、アプリケーションサーバを介した）ファイルサーバー７０は、結果セット７６をクライアントコンピューティングデバイス２に送信する前に、結果セット７６をマークアップ言語ドキュメント（すなわち、マークアップ言語ドキュメント４４及び７４とは無関係のマークアップ言語ドキュメント）に変換もし得る（この実施形態によれば、イベントハンドラアプリケーション３８は、結果セット７６を含むマークアップ言語ドキュメントを処理するマークアップ言語インタープリタ（図示せず）を含み得る）。実施形態によれば、クライアントコンピューティングデバイス２に通信する前に、結果セット７６は、１つ以上の圧縮方法を使用して圧縮され得る。種々の実施形態で利用され得る圧縮方法の実施例は、周知のワイヤレス・アプリケーション・プロトコル・バイナリ拡張マークアップ言語（「ＷＢＸＭＬ」）及びＧＮＵジップ（「ＧＺＩＰ」）圧縮法である。
【００１５】
＜例示的なオペレーティング環境＞
図２を参照して、以下の説明は、様々な例示的実施形態が実装され得る好適なコンピューティング環境について簡潔で且つ一般的な説明を提供することを目的としている。種々の実施形態は、コンピューティングデバイス上のオペレーティングシステムで駆動するプログラムモジュールと連結して実行するプログラムモジュールに関する一般的な内容で記載されるであろうが、当業者であれば、様々な実施形態が他のタイプのコンピュータシステム及びプログラムモジュールと組み合わせて実装され得ると認識するであろう。
【００１６】
一般に、プログラムモジュールは、ルーチン、プログラム、要素、データ構造及び特定のタスクを実行するか又は特定の抽象型データを実装する他のタイプの構造を含む。その上、当業者であれば、様々な実施形態が多くのコンピュータシステム構成により実施され得ることを十分理解するだろう。当該多くのコンピュータシステム構成は、携帯端末、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品若しくはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等を含む。本発明の様々な実施形態は、分散コンピュータ環境においても実施され得る。当該分散コンピュータ環境において、タスクは通信ネットワークを介してリンクされた遠隔処理デバイスによって実行される。分散コンピュータ環境においては、プログラムモジュールはローカル記憶デバイス及びリモートメモリ記憶デバイスの双方に設けられ得る。
【００１７】
図２は、１つ以上のアプリケーションプログラムを実行することができるモバイルコンピュータ若しくはポータブルコンピュータ又は他のタイプのコンピュータを含み得るクライアントコンピューティングデバイス２を示している。当該他のタイプのコンピュータは、ラップトップコンピュータ、「スマートフォン」（すなわち、コンピュータの機能性を有し、そして／又は、アプリケーション開発者に対して標準化インタフェース及びプラットフォームを提供するためにオペレーティングシステムソフトウエアを駆動することができる携帯電話）、及び、自動車ベースのコンピューティングデバイスを含む。クライアントコンピューティングデバイス２は、少なくとも１つの中央演算処理装置８（「ＣＰＵ」）、ランダムアクセスメモリ１８（「ＲＡＭ」）及びリードオンリーメモリ（「ＲＯＭ」）２０を含むシステムメモリ１２並びにメモリをＣＰＵ８に連結するシステムバス１０を含む。例えばスタートアップ中にコンピュータ内の要素間の情報を転送するのに有益な基本ルーチンを含む基本入出力システムは、ＲＯＭ２０において記憶される。
【００１８】
クライアントコンピューティングデバイス２は、オペレーティングシステム３２を記憶する大容量記憶装置１４、音声認識サービスアプリケーション３０、イベントハンドラアプリケーション３８は、認識器４０、発話４２、マークアップ言語ドキュメント４４、結果セット４６、デバイスインタフェースアプリケーション５０及び同期アプリケーション６０をさらに含む。当業者であれば、認識器４０が、大容量記憶装置１４上に常駐するソフトウェアとして実装されることに加えて、ハードウェアにおいて完全に実装され得ることを容易に理解できるであろう。例えば、認識器４０は、音声分析、認識過程及びシステム制御機能を有するシングルチップＣＭＯＳ音声認識ＬＳＩ回路として実装され得る。
【００１９】
様々な実施形態によれば、ワシントン州レッドモンドのマイクロソフト社のＷＩＮＤＯＷＳオペレーティングシステム等のオペレーティングシステム３２が、ネットワークでつながれたパーソナルコンピュータの動作を制御するのに適切であり得る。大容量記憶装置１４は、バス１２に接続された大容量記憶コントローラ（図示せず）を介してＣＰＵ８に接続されている。大容量記憶装置１４及びその関連コンピュータ読取可能媒体は、コンピューティングデバイス２に対して非揮発性記憶を提供する。本明細書に含まれるコンピュータ読取可能媒体に関する説明はハードディスク又はＣＤ−ＲＯＭドライブ等の大容量記憶装置を意味しているものの、当業者であれば、コンピュータ読取可能媒体はクライアントコンピューティングデバイス２によりアクセスされ得るし、クライアントコンピューティングデバイス２によって利用され得るいかなる媒体であり得ると容易に理解できるであろう。限定ではなく、例示として、コンピュータ読取可能媒体はコンピュータ記憶媒体及び通信媒体を含み得る。
【００２０】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、若しくは他のデータ等の情報を記憶する全ての方法若しくは技術において実装された揮発性であり且つ不揮発性である脱着可能媒体及び脱着不可能媒体を含み得る。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他の固体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は所望の情報を記憶するのに使用され且つクライアントコンピューティングデバイス２によってアクセスされ得る他の磁気記憶装置を含むものの、これらに限定されない。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は伝送波若しくは他の転送機構等の変調されたデータ信号における他のデータを通常具現化し、いかなる情報配信媒体をも含む。「変調されたデータ信号」という用語は、信号の情報をエンコードするような方法で設定され又は変化された特性のうち１つ以上を有する信号を意味している。限定ではなく、例示として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体、音響媒体、ＲＦ媒体、赤外線媒体及び他の無線媒体等の無線媒体とを含む。上記のあらゆる組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。コンピュータ読取可能媒体は、コンピュータプログラム製品としても参照され得る。
【００２１】
本発明の様々な実施形態によれば、クライアントコンピューティングデバイス２は、ネットワーク４を介したリモートコンピュータに対する論理接続を使用してネットワーク化された環境において動作し得る。当該ネットワーク４は、上述したように、ローカルネットワーク又は広域ネットワーク（例えば、インターネット）を含み得る。クライアントコンピューティングデバイス２は、バス１０に接続されたネットワークネットワークインタフェースユニット１６を介してネットワーク４に接続し得る。また、ネットワークインタフェースユニット１６は、他のタイプのネットワーク及びリモートコンピュータシステムに接続することにも利用され得ることが十分理解されるべきである。クライアントコンピューティングデバイス２は、マイクロホン８０並びにキーボード、マウス、ペン、スタイラス、指及び／又は他の手段（図示せず）を含む多くの入力タイプから入力を受信し且つ処理する入出力コントローラ２２をも含み得る。同様に、入出力コントローラ２２は、表示装置８２及びプリンタ又は他のタイプの出力装置（図示せず）に出力を供給し得る。
【００２２】
図３は、様々な実施形態に係るマークアップ言語ドキュメントに基づいて複数の認識器を選択し且つ利用して、発話を処理するルーチン３００を図示するフロー図である。本明細書に提示されたルーチンに関する説明を読む時に、本発明の様々な実施形態の論理動作が、（１）コンピュータによって実装される動作若しくはコンピュータシステム上で動作するプログラムモジュールのシーケンスとして、そして／又は、（２）相互接続された機械論理回路若しくはコンピュータシステム内の回路モジュールとして、実装され得ることが十分理解されるべきである。実装は、本発明を実装するコンピュータシステムの性能の要求に依存した選択の問題である。従って、図３−４において図示され、且つ、本明細書において説明された種々の実施形態を形成する論理演算は、オペレーション、構造デバイス、動作又はモジュールとして、様々に参照される。添付された特許請求の範囲において画定された本発明の趣旨と範囲から逸脱することなく、当業者であれば、これらオペレーション、構造デバイス、動作、及びモジュールは、ソフトウェア、ファームウェア、専用デジタル論理回路、及びそれらのあらゆる組合せにおいて、実装され得ると容易に理解できるであろう。
【００２３】
ルーチン４００は動作３０５において開始する。当該動作３０５において、マークアップ言語ドキュメント（例えば、マークアップ言語ドキュメント４４）が、クライアントコンピューティングデバイス２によって受信され得る。１つの実施形態において、マークアップ言語ドキュメントは、イベントハンドラアプリケーション３８によってファイルサーバー７０に対してなされた要求を介して受信され得る。
【００２４】
動作３０５から、ルーチン３００は動作３０７に継続する。当該動作３０７において、イベントハンドラアプリケーション３８は、受信されたマークアップ言語ドキュメント４４において指定された認識器が、更新されたかどうかを決定する。更新された認識器を決定するルーチンが、図４に関する説明の以下においてさらに詳細に説明されている。
【００２５】
動作３０７から、ルーチン３００は動作３１０に継続する。動作３１０において、クライアントコンピューティングデバイス２において実行するイベントハンドラアプリケーション３８は、ユーザからのストリームとして発話（例えば、発話４２）を受信し始める。様々な実施形態によれば、全体の発話４２は、ユーザから受信される必要はないと理解されるべきである。特に、発話４２は、ユーザがクライアントコンピューティングデバイス２に対して話しかけると、文法認識のためにイベントハンドラアプリケーション３８に流され得る。例えば、クライアントコンピューティングデバイス２は、イベントハンドラアプリケーション３８と連動して音声認識サービスアプリケーション４０の内の１つ以上を利用して、（図２に示された）マイクロホン８０に話すことによって、音声ダイヤルを介した呼出しのクエリ、又は、企業、道路交通情報、方向、気象情報若しくは映画の情報の位置に対するクエリを含む発話をし得る。
【００２６】
動作３１０から、ルーチン３００は動作３１５に継続する。当該動作３１５において、イベントハンドラアプリケーション３８は、動作３１０で受信された発話４２に使用される文法を認識する。特に、イベントハンドラアプリケーション３８は、発話において話された文法（すなわち、単語）を認識するために音声処理を実行するように構成され得る。１つの実施形態によれば、イベントハンドラアプリケーション３８は、マークアップ言語ドキュメント４４に関連して認識された文法を利用して、発話に対する結果を提供する認識器（すなわち、ローカル認識器又はネットワーク認識器）を決定し得る。
【００２７】
動作３１５から、ルーチン３００は動作３２０に継続する。当該動作３２０において、イベントハンドラアプリケーション３８は、動作３１５において認識された文法に基づいて、発話を処理する認識器を特定するマークアップ言語タグに対するマークアップ言語ドキュメント４４を解析する。特に、イベントハンドラアプリケーション３８は、＜ｇｒａｍｍａｒ＞というマークアップ言語タグに対するマークアップ言語ドキュメント４４を解析するよう構成され得る。当該＜ｇｒａｍｍａｒ＞というマークアップ言語タグは、ローカル又はネットワーク（例えば、ユニフォームリソースロケータ（「ＵＲＬ」））を特定し得る。当該ローカル又はネットワークから、動作３１５において認識された文法と比較するために記憶された文法が発話４２から取り出され得る。
【００２８】
動作３２０から、ルーチン３００は動作３２５に継続する。当該動作３２５において、イベントハンドラアプリケーション３８は、マークアップ言語ドキュメント４４におけるマークアップ言語タグによって特定されたローカル認識器（すなわち、認識器４０）又はネットワーク認識器（すなわち、認識器７２）のうち一方を選択する。特に、イベントハンドラアプリケーション３８は、当該受信された発話４２に対する結果を戻す文法に関連づけられた認識器を選択し得る。例えば、発話４２がクライアントコンピューティングデバイス２に記憶された住所録に含まれるコンタクトの音声ダイヤルの要求を含む場合、イベントハンドラアプリケーション３８は、クライアントコンピューティングデバイス２に対する住所録のコンタクトを含む文法と関連づけられるようにマークアップ言語ドキュメント４４において特定される（ローカル）認識器４０を選択し得る。他方では、発話４２がローカルな事業検索の要求を含む場合、イベントハンドラアプリケーション３８は、ファイルサーバー７０からリモートインターネット検索エンジンまでクエリを介して取り出され得る事業検索情報を含む文法と関連づけられるようにマークアップ言語ドキュメント４４において特定された（ネットワーク）認識器７２を選択し得る。
【００２９】
動作３２５から、ルーチン３００は動作３３０に継続する。当該動作３３０において、イベントハンドラアプリケーション３８は、発話４２を選択された認識器（例えば、認識器４０又は認識器７２）に送信し又は流す。一度、発話４２が選択された認識器によって受信される場合、発話が結果に対して処理され得る。
【００３０】
動作３３０から、ルーチン３００は、動作３３５に継続する。動作３３５において、イベントハンドラアプリケーション３８は、マークアップ言語ドキュメント４４において指定されたフォーマットに応じて、１つ以上の結果セットを前記選択された認識器から受信する。特に、認識器４０及び７２は、様々な実施形態によれば、未処理のフォーマットの若しくは「生」のフォーマットの又は処理されたフォーマットの発話４２に対する結果セットを返信するよう構成され得る。未処理の認識器の結果は、認識器４０又は認識器７２による発話４２の音声認識を含む１つ以上の用語を含み得る。他方では、処理された認識器の結果は、発話４２に関連付けられた１つ以上の用語の音声認識を含み得る。例えば、「コーヒー」という用語を含む発話に対する未処理の結果は、認識器によって割り当てられた信頼スコアと共にコーヒーという用語を含み得る。当該信頼スコアは、発話に対する音声認識の精度（例えば、８０％）を示す。他方では、「コーヒー」という用語を含む発話に対する処理された結果は、コーヒーを販売する地元企業の名前及びアドレスを含む事業の検索結果を含み得る。マークアップ言語ドキュメント４４は、マークアップ言語タグを含み得る。当該マークアップ言語タグは、発話に対する結果セットが返信されるフォーマットを特定する。
【００３１】
動作３３５から、ルーチン３００は動作３４０に継続する。当該動作３４０において、イベントハンドラアプリケーション３８は、１つ以上の結果セットを前記選択された認識器から受信することに応答して、イベントを実行する。イベントは、多くの動作を含み得る。当該動作は、（例えば、表示装置８２における）クライアントコンピューティングデバイス２のユーザに１つ以上の結果セットを表示するステップ、結果セットに基づいて音声ダイヤル機能を実行するステップ、結果セットを無視するステップ及びクライアントコンピューティングデバイス２に対する表示のために結果セットを先に受信された結果セットと結合するステップを含むものの、これらに限定されない。１つの実施形態によれば、複数の結果セットは、各タブが結果セットに関連づけられているタブ付けユーザインタフェース（図示せず）に表示され得る。また、ユーザインタフェースは、各々の結果セット又は結果のタイプによってソートされたリストと関連付けられた表示カテゴリを有するドリルダウンリストを含み得る。イベントハンドラアプリケーション３８は、多くの基準に基づいて、受信された結果がどのように処理されるかを決定する（すなわち、取るべき動作を決定する）よう構成され得る。当該基準は、結果セットにおける多くの結果、結果セットの信頼スコア、結果セットに対する戻りコード（すなわち、戻りコードは、ファイルサーバー７０がダウンしていることを示すエラーコードを含み得る）及び結果セットに対する特定の（すなわち、所定の）値の存在を含むものの、これらに限定されない。例えば、イベントハンドラアプリケーション３８は、発話を認識する信頼スコアが低い（例えば、５０％未満）場合、結果セットを無視して、結果セットがクライアントコンピューティングデバイス２のユーザに対して表示されることを防止し得る。別の例として、イベントハンドラアプリケーション３８は、結果を処理するサーバがダウンしていることを示す結果セットに対する戻りコードを受信することに応答して、エラーダイアログをクライアントコンピューティングデバイス２のユーザに対して作成し且つ表示し得る。別の例として、イベントハンドラアプリケーション３８は、結果セットとともに戻された所定の値を処理し得る。当該値は、会社のロゴ又は広告を用いて結果セットを提示する等結果のプレゼンテーションをユーザに表す。動作３４０から、ルーチン３００は終了する。
【００３２】
図４は、様々な実施形態に係るマークアップ言語ドキュメントに基づいて発話を処理する更新された認識器を利用するルーチン４００を図示するフロー図である。（上述した）図３の動作３０５から、ルーチン４００は動作４０５において開始する。当該動作４０５において、イベントハンドラアプリケーション３８は、（ローカルな）認識器４０に対するバージョンデータをクライアントコンピューティングデバイス２からファイルサーバー７０に送信する。図１の説明において先に説明したように、認識器４０は、クライアントコンピューティングデバイス２のオペレーティングシステム（すなわち、オペレーティングシステム３２）内に存在し得る。認識器がオペレーティングシステムに組み込まれているとき、イベントハンドラアプリケーション３８は、オペレーティングシステムのバージョンをファイルサーバー７０に送信するように構成され得ることが十分理解されるだろう。
【００３３】
動作４０５から、ルーチン４００は、動作４１０に継続する。当該動作４１０において、イベントハンドラアプリケーション３８は、バージョンデータに基づいて認識器４０がクライアントコンピューティングデバイス２上で更新されたかどうかを決定する。例えば、組み込まれた認識器に対して、認識器４０は、クライアントコンピューティングデバイス２上のオペレーティングシステムの更新後に更新され得る。
【００３４】
動作４１０において、（受信されたバージョンデータに基づいて、ファイルサーバー７０によって決定された際に）認識器４０が更新された場合、ルーチン４００は動作４１５において継続する。当該動作４１５において、イベントハンドラアプリケーション３８は、付加的マークアップ言語（すなわち、マークアップ言語ドキュメント７４）をファイルサーバー７０から受信する。マークアップ言語ドキュメント７４は、認識器４０の更新後のバージョンにおいて新たに付加された特徴（例えば、音声ダイヤル等）を利用する付加的マークアップ言語タグを含み得る。ルーチン４００は、図３の動作３１０に戻る。動作４１０において、（受信されたバージョンデータに基づいてファイルサーバー７０によって決定されるように）認識器４０が更新されていない場合、ルーチン４００は、図３の動作３１０にまた戻る。
【００３５】
図５は、タグを含むマークアップ言語ドキュメントを示している。当該タグは、様々な実施形態に係る発話を処理し且つ発話に対する結果セットを処理する複数の認識器から選択するのに利用され得る。特に、図５は、クライアントコンピューティングデバイス２上のマークアップ言語ドキュメント４４を示している。マークアップ言語ドキュメント４４は、＜ｌｉｓｔｅｎｅｒ＞タグ９０、＜ｒｅｃｏｇｎｉｚｅ＞タグ９２、＜ｇｒａｍｍａｒ＞タグ９４、＜ｒｅｃｏｇｎｉｚｅ＞タグ９６、＜ｇｒａｍｍａｒ＞タグ９８、＜ｌｉｓｔｅｎｅｒ＞タグ１００、＜ｉｆ＞タグ１０２、＜ａｓｓｉｇｎ＞タグ１０４、＜ｉｆ＞タグ１０６、＜ｔｈｒｏｗ  ｅｖｅｎｔ＞タグ１０８、＜ｅｌｓｅ／＞タグ１０９、＜ｉｆ＞タグ１１０、＜ａｓｓｉｇｎ＞タグ１１１、及び＜ｔｈｒｏｗ  ｅｖｅｎｔ＞タグ１１２を含む。
【００３６】
＜ｌｉｓｔｅｎｅｒ＞タグ９０は、発話４２をクライアントコンピューティングデバイス２のユーザから受信するイベントハンドラアプリケーション３８によって利用され得る。＜ｒｅｃｏｇｎｉｚｅ＞タグ９２は、「ローカル」認識器を特定する「タイプ」属性を含む。＜ｇｒａｍｍａｒ＞タグ９４は、ローカル認識器によって用いられた文法にアクセスするための「ｈｔｔｐ」アドレス（すなわち、ウェブサイトアドレス）を特定する「ｕｒｌ」属性を含む。＜ｒｅｃｏｇｎｉｚｅ＞タグ９６は、「ネットワーク」認識器を特定する「タイプ」属性を含む。＜ｇｒａｍｍａｒ＞タグ９８は、ネットワーク認識器によって用いられた文法にアクセスするための「ｈｔｔｐ」アドレス（すなわち、ウェブサイトアドレス）を特定する「ｕｒｌ」属性を含む。図３に関して上述したように、イベントハンドラアプリケーション３８は、マークアップ言語ドキュメントにおけるタグを解析して、発話に使用される文法を認識し得るし、かつ、認識された文法に基づいて認識器を選択して発話を処理し得る。
【００３７】
図３に関して上述したように、イベントハンドラアプリケーション３８は、選択された認識器から１つ以上の結果セットを受信して、信頼スコアに基づいて１つ以上の結果セットを処理し得る。＜リスナ＞タグ１００は、前記発話に応答して、選択された認識器から結果セットを受信するイベントハンドラアプリケーション３８によって利用され得る。タグ１０２，１０４，１０６，１０８，１０９，１１０，及び１１１は、イベントハンドラアプリケーション３８によって利用されて、発話を認識するための信頼スコアが高い場合（例えば、５０％より大−「ｇＳｅｌｅｃｔｅｄｒｅｓｕｌｔ．ｃｏｎｆｉｄｅｎｃｅ＞０．５」）、クライアントコンピューティングデバイス２において動作を実行するために１つ以上の結果セットを使用するかどうかを決定し得るし（例えば、＜ｔｈｒｏｗ  ｅｖｅｎｔ＝”ｐｒｏｃｅｓｓ＿ｓｅｌｅｃｔｅｄｒｅｓｕｌｔ”／＞）、又は、発話を認識する信頼スコアが低い場合（例えば、＜ｉｆ  ｅｘｐｒ＝”ｅｖｅｎｔ．ｒｅｓｕｌｔ＞ｇＳｅｌｅｃｔｅｄｒｅｓｕｌｔ．ｃｏｎｆｉｅｎｃｅ”＞、ｅｖｅｎｔ．ｒｅｓｕｌｔは「ヌル結果」である）、「ヌル」の結果セットを使用するかどうかを決定し得るし、その結果、クライアントコンピューティングデバイス２における結果セットに関する動作の実行を防止する。
【００３８】
本発明について様々な例示的実施形態を参照して説明してきたものの、当業者であれば、多くの変形例が、以下の特許請求の範囲内においてなされ得ることを理解するであろう。従って、本発明の範囲は、いかなる場合においても、上記明細書によって限定されるべきでないことを意図しておらず、代わって、完全に以下の特許請求の範囲を参照して、決められるべきである。
【図１】
0005542156.tif 000002
【図２】
0005542156.tif 000003
【図３】
0005542156.tif 000004
【図４】
0005542156.tif 000005
【図５】
0005542156.tif 000006