(57)【要約】【課題】  音声クエリに基づいてユーザに情報をレンダリングする方法を提供すること。【解決手段】  この方法は、音声の発話から第１のオブジェクトと第２のオブジェクトとを識別することを含む。第１のオブジェクトおよび第２のオブジェクトは、記憶された情報に対応するタグに関連付けられる。記憶された情報は、第１のオブジェクトおよび第２のオブジェクトに基づいて選択的にレンダリングされる。【選択図】  図１
2004310748.tif 000002
【特許請求の範囲】
【請求項１】
クエリに基づいてユーザに情報をレンダリングする方法であって、
前記クエリから第１のオブジェクトおよび第２のオブジェクトを識別すること、
前記第１のオブジェクトおよび前記第２のオブジェクトを、レンダリングされる記憶された情報の一部に対応するタグに関連付けること、および
前記記憶された情報の一部を選択的にレンダリングすること
を含むことを特徴とする方法。
【請求項２】
前記第１のオブジェクトおよび前記第２のオブジェクトの少なくとも１つは、前記記憶された情報に対応するタグに関連する情報を含むクエリオブジェクトであることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のオブジェクトおよび前記第２のオブジェクトの少なくとも１つは、前記記憶された情報中をナビゲートするための情報を含むナビゲーションオブジェクトであることを特徴とする請求項１に記載の方法。
【請求項４】
前記第１のオブジェクトおよび前記第２のオブジェクトの少なくとも１つは、前記記憶された情報に選択されたコマンドを実行するための情報を含むコマンドオブジェクトであることを特徴とする請求項１に記載の方法。
【請求項５】
前記識別することは、言語モデルを使用して前記第１のオブジェクトおよび前記第２のオブジェクトを識別することを含むことを特徴とする請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記識別することはさらに、スタイルコントロールを使用して、前記第１のオブジェクトおよび前記第２のオブジェクトについての代替フレーズを認識することを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記記憶された情報は、多次元的な構造に構成され、前記第１のオブジェクトおよび前記第２のオブジェクトの少なくとも１つは、前記多次元的構造の少なくとも１つの次元に対応することを特徴とする請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記多次元的構造は、複数の行および複数の列を含むテーブルであり、前記第１のオブジェクトは、特定の行に関連する情報を含み、前記第２のオブジェクトは、特定の列に関連する情報を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記記憶された情報の一部を選択的にレンダリングすることは、前記一部をレンダリングするスクリプトを実行することを含むことを特徴とする請求項１乃至８のいずれかに記載の方法。
【請求項１０】
音声クエリに基づいてユーザに情報をレンダリングする方法であって、
情報のセグメントをユーザにレンダリングすることであって、前記セグメントは、前記セグメントの一部に対応するタグを含むこと、
前記クエリから少なくとも１つのオブジェクトを識別すること、
前記少なくとも１つのオブジェクトを、前記セグメントの一部に対応するタグに関連付けること、および
前記タグに対応する前記セグメントの一部をレンダリングすること
を含むことを特徴とする方法。
【請求項１１】
前記セグメントを分析して、前記セグメント中の関連情報のタグを識別することをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記情報のセグメントは文であり、前記タグは、前記文中のデータに対応することを特徴とする請求項１０または１１に記載の方法。
【請求項１３】
前記情報のセグメントは行であり、前記タグは前記行内の列に対応することを特徴とする請求項１０乃至１２のいずれかに記載の方法。
【請求項１４】
前記記憶された情報の一部を選択的にレンダリングすることは、前記第１のオブジェクトおよび前記第２のオブジェクトの少なくとも１つに基づくことを特徴とする請求項１乃至１３のいずれかに記載の方法。
【請求項１５】
前記記憶された情報の一部を選択的にレンダリングすることは、前記第１のオブジェクトおよび前記第２のオブジェクトに基づいて、記憶されたコンテクストと組み合わせて前記記憶された情報の一部をレンダリングすることを含むことを特徴とする請求項１乃至１４のいずれかに記載の方法。
【請求項１６】
前記一部を選択的にレンダリングすることは、スクリプトを実行することを含むことを特徴とする請求項１０乃至１５のいずれかに記載の方法。
【請求項１７】
ユーザに情報を提供する方法であって、
テキストを処理して、前記テキスト中の情報の一部に対応する識別子を提供すること、
ユーザ入力中のオブジェクトを識別するステップであって、前記オブジェクトは、情報の識別子に関連すること、および
前記オブジェクトおよび前記識別子に基づいて、前記テキスト中の前記情報の一部を選択的にレンダリングすること
を含むことを特徴とする方法。
【請求項１８】
ユーザに情報を提供する方法であって、
ユーザ入力から、第１のオブジェクト、第２のオブジェクト、およびコマンドオブジェクトを識別すること、
前記第１のオブジェクトおよび前記第２のオブジェクトを、記憶された情報の第１の部分と記憶された情報の第２の部分とに対応するタグに関連付けること、および
前記コマンドオブジェクトに基づいて前記第１の部分および前記第２の部分を用いて演算を行って情報をレンダリングすること
を含むことを特徴とする方法。
【請求項１９】
コンピューティングデバイス可読の命令を含むコンピュータ可読媒体であって、前記命令は、実施されると、前記コンピューティングデバイスに、
言語モデルを確立して、ユーザ入力から第１のオブジェクトおよび第２のオブジェクトを識別するステップと、
タグを処理して、前記第１のオブジェクトおよび前記第２のオブジェクトを記憶された情報の一部に関連付けるステップと、
前記記憶された情報の一部を選択的にレンダリングするステップと
を実行することにより情報を処理させることを特徴とするコンピュータ可読媒体。
【請求項２０】
前記ステップは、マークアップ言語として実施されることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記タグおよび前記記憶された情報を含むデータ構造をさらに含むことを特徴とする請求項１９または２０に記載のコンピュータ可読媒体。
【請求項２２】
コンピューティングデバイス可読の命令を含むコンピュータ可読媒体であって、前記命令は、実施されると、前記コンピューティングデバイスに、
テキストを処理して、前記テキスト中の情報の一部の識別子を提供するステップと、
言語モデルを確立して、前記一部に対応するオブジェクトを識別するステップと、
タグを処理して、前記オブジェクトを前記一部に関連付けるステップと、
前記記憶された情報の一部を選択的にレンダリングするステップと
を実行することにより情報を処理させることを特徴とするコンピュータ可読媒体。
【請求項２３】
前記ステップはマークアップ言語として実施されることを特徴とする請求項２２に記載のコンピュータ可読媒体。
【請求項２４】
前記タグおよび前記記憶された情報を含むデータ構造をさらに含むことを特徴とする請求項２２または２３に記載のコンピュータ可読媒体。
【請求項２５】
請求項１乃至１８のいずれかに記載の方法を実行することを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおける情報のアクセスおよびレンダリングに関する。より詳細には、本発明は、ユーザからの音声入力に基づくデータの提示に関する。
【背景技術】
【０００２】
多くのコンピュータインターフェースは、コンピュータ主導の対話を基本としており、ユーザは、コンピュータによって設定される実行の流れに従うか、またはコンピュータによって公開される１つまたは複数のコマンドを覚えなければならない。すなわち、大半のコンピュータインターフェースは、ユーザが望むコンピュータとの対話方式に適応するのではなく、特定のインターフェースセットを通じた対話をユーザに強制する。
【０００３】
コンピュータ／ユーザインターフェースの進歩により、ユーザが音声コマンドを通じてコンピュータと対話することが可能になっている。ＶｏｉｃｅＸＭＬ（音声拡張可能マークアップ言語）の使用などを通じた音声ポータルが発達し、音声入力を使用してインターネットコンテンツにアクセスすることができる。このアーキテクチャでは、ドキュメントサーバ（例えばウェブサーバ）がＶｏｉｃｅＸＭＬインタープリタを通じてクライアントからの要求を処理する。ウェブサーバは、ＶｏｉｃｅＸＭＬのドキュメントを生成し、返信することができ、返信はＶｏｉｃｅＸＭＬインタープリタによって処理され、ユーザに対して音声でレンダリングされる。ユーザは、指定された音声コマンドを音声認識を通じて使用して、ウェブをナビゲートし、音声でレンダリングされるデータを耳で聞くことができる。
【０００４】
しかし、例えば運転の道案内、交通情報、天気情報、映画の上映予定などのデータをユーザに提示する多くのアプリケーションは、ユーザにとって特に使い勝手がよいわけではない。詳細には、そうしたアプリケーションは、すでにレンダリングされた情報の一部分、あるいはテーブルに格納された構造化された情報のレンダリングに問題がある。例えば各種のサービスが道案内を提供するが、長い１回の読み上げでユーザに提供されるか、あるいは所定のステップで提供される。その結果、ユーザは、道案内をすべて書き留めるか、あるいは関連する情報を記憶しようとして道案内全体または所定のステップを再生し続ける必要がある場合がある。これらの状況はいずれも多くの状況で望ましいものではない。
【０００５】
【非特許文献１】http://www.SALTforum.org
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、より高い柔軟性をもってデータの一部にアクセスし、レンダリングする必要性がある。そのようなレンダリングのシステムまたは方法は、ユーザにとってより自然であることにより、より容易に使用することができる。
【課題を解決するための手段】
【０００７】
本発明は、音声入力に基づいてユーザにデータをレンダリングするための改良されたインターフェースを提供する。本発明の一態様では、ユーザに情報をレンダリングする方法は、音声の発話から第１のオブジェクトと第２のオブジェクトとを識別することを含む。第１のオブジェクトと第２のオブジェクトは、記憶された情報に対応するタグに関連付けられる。記憶された情報は、第１のオブジェクトおよび第２のオブジェクトに基づいて選択的にレンダリングされる。一実施形態では、識別されるオブジェクトは、情報を選択的にレンダリングするためのクエリオブジェクト、ナビゲーションオブジェクト、および／またはコマンドオブジェクトとすることができる。特定の一態様では、記憶された情報は、複数の行と複数の列とを有するテーブルに構成される。第１のオブジェクトは、特定の行に関連する情報を含み、第２のオブジェクトは、特定の列に関連する情報を含む。
【０００８】
本発明の別の態様では、情報のセグメントをユーザにレンダリングすることを含む方法が提供される。このセグメントは、当該セグメントの一部に対応するタグを含む。この方法はさらに、音声の発話から少なくとも１つのオブジェクトを識別し、そのオブジェクトをセグメントの一部に対応するタグに関連付けることを含む。次いで、タグに対応するセグメントの一部がレンダリングされる。さらなる実施形態では、セグメントの一部をレンダリングするために、テキストノーマライザ／アナライザを使用してセグメント中の関連する部分を識別することができる。
【０００９】
その結果、本発明は、多次元的なデータを提示し、データベースに記憶された情報の一部をレンダリングするのに適した方式を提供する。ユーザには、音声入力に基づいてデータを提示する、より自然なインターフェースが提示される。例えば、ユーザは、テーブルの個々のセルを問い合わせる、あるいは記憶された情報に基づいて双方向のダイアログを作成することができる。
【発明を実施するための最良の形態】
【００１０】
図１は、音声入力に基づいてデータをレンダリングするデータ提示システム１０のブロック図である。システム１０は、音声インターフェースモジュール１２、音声認識理解モジュール１４、およびデータレンダリングモジュール１６を含む。ユーザは、音声クエリの形態の入力を音声インターフェースモジュール１２に提供する。音声インターフェースモジュール１２は、ユーザから音声情報を集め、その情報を表す信号を提供する。音声インターフェースモジュール１２によって入力音声が集められると、音声認識理解モジュール１４が音声レコグナイザを使用して音声を認識し、ユーザがシステム１０にレンダリングさせたい情報に関連するキーワードまたはキーフレーズなどのオブジェクトを識別する。データベース１８からデータを抽出するために、そのオブジェクトがデータレンダリングモジュール１６によって使用される。オブジェクトを使用してデータベース１８で関連する情報が識別されると、関連する情報をユーザに対してレンダリングすることができる。データレンダリングモジュール１６の出力は、音声および／または視覚的な出力を含む様々な形態であってよい。
【００１１】
音声クエリに基づくデータレンダリングについての広範囲にわたる説明を考えると、上述のシステム１０で機能することが可能なコンピューティングデバイスを概説することが有用であろう。当業者には理解されるように、システム１０の構成要素は、単一のコンピュータ内に配置しても、ネットワーク接続およびプロトコルを使用する分散コンピューティング環境内に分散してもよい。
【００１２】
次いで図２を参照すると、データ管理デバイス（ＰＩＭ、ＰＤＡなど）のモバイルデバイスの例示的な形態を符号３０に示す。ただし、本発明は、下記で述べる他のコンピューティングデバイスを使用した実施も可能であることが企図される。例えば、電話機および／またはデータ管理デバイスも本発明から利益を得る。そのようなデバイスは、既存の携帯型個人情報管理デバイスおよびその他の携帯型電子デバイスに比べて高度な有用性を持つ。
【００１３】
データ管理モバイルデバイス３０の例示的な一形態を図２に示す。モバイルデバイス３０は、筐体３２を含み、ディスプレイ３４を含むユーザインターフェースを有し、このインターフェースは、スタイラス３３と併せて接触反応型（ｃｏｎｔａｃｔ  ｓｅｎｓｉｔｉｖｅ）ディスプレイ画面を使用する。スタイラス３３は、フィールドを選択する、カーソルの開始位置を選択的に移動する、あるいはジェスチャーや手書きなどを通じてその他の形でコマンド情報を提供するために、ディスプレイ３４の指定された座標を押下する、あるいは接触するために使用される。スタイラスの代わりに、あるいはスタイラスに加えて、１つまたは複数のボタン３５をナビゲーションのためにデバイス３０に含めることができる。また、回転可能なホイール、ローラなど他の入力機構も提供することができる。ただし、本発明はこれらの形態の入力機構によって限定されないことに留意されたい。例えば、他の形態の入力は、コンピュータビジョンなどを利用した視覚的な入力を含むことができる。
【００１４】
次いで図３を参照すると、ブロック図により、モバイルデバイス３０を構成する機能コンポーネントを示している。中央演算処理装置（ＣＰＵ）５０は、ソフトウェア制御機能を実施する。ＣＰＵ５０はディスプレイ３４に結合され、制御を行うソフトウェアに従って生成されたテキストおよびグラフィックアイコンがディスプレイ３４に表示される。スピーカ４３は、通例は音声出力を提供するデジタル／アナログ変換器５９と共にＣＰＵ５０に結合することができる。ユーザによってモバイルデバイス３０にダウンロードまたは入力されるデータは、ＣＰＵ５０に双方向に結合された揮発性の読み取り／書き込みランダムアクセスメモリストア５４に記憶される。ランダムアクセスメモリ（ＲＡＭ）５４は、ＣＰＵ５０によって実行される命令の揮発性の記憶と、レジスタ値などの一時的データの記憶を提供する。構成のオプションおよびその他変数のデフォルト値は、読み取り専用メモリ（ＲＯＭ）５８に記憶される。ＲＯＭ５８は、モバイルデバイス３０の基本的機能と他のオペレーティングシステムカーネル機能（ＲＡＭ５４へのソフトウェアコンポーネントのロードなど）を制御する、デバイスのオペレーティングシステムソフトウェアの記憶にも使用することができる。
【００１５】
ＲＡＭ５４は、アプリケーションプログラムの記憶に使用されるＰＣ上のハードドライブの機能に似た形でコードの記憶機構としても機能する。コードの記憶には不揮発性メモリを使用しているが、コードは代わりに、コードの実行には使用されない揮発性メモリに記憶してもよいことに留意されたい。
【００１６】
ＣＰＵ５０に結合された無線トランシーバ５２を通じて、モバイルデバイスにより無線信号を送受信することができる。必要な場合は、コンピュータ（例えばデスクトップコンピュータ）、あるいは配線ネットワークから直接データをダウンロードするためにオプションの通信インターフェース６０も提供することができる。したがって、通信インターフェース６０は、例えば赤外線リンク、モデム、ネットワークカードなど各種形態の通信デバイスを含むことができる。
【００１７】
モバイルデバイス３０は、マイクロフォン２９、アナログ／デジタル（Ａ／Ｄ）変換器３７、およびＲＡＭ５４に記憶されたオプションの認識プログラム（音声、ＤＴＭＦ、手書き、ジェスチャー、あるいはコンピュータビジョン）を含む。例として、デバイス３０のユーザからの音声による情報、命令、またはコマンドに応答して、マイクロフォン２９が音声信号を提供し、その音声信号がＡ／Ｄ変換器３７によってデジタル化される。音声認識プログラムは、デジタル化された音声信号に正規化および／または特徴抽出機能（ｆｅａｔｕｒｅ  ｅｘｔｒａｃｔｉｏｎ  ｆｕｎｃｔｉｏｎ）を行って中間の音声認識結果を得ることができる。無線トランシーバ５２または通信インターフェース６０を使用して、下記で説明し、図６のアーキテクチャに示すリモートの認識サーバ２０４に音声データを送信することができる。認識結果は次いで（例えば視覚および／または音声による）レンダリング、そして最終的なウェブサーバ（図６）への送信のためにモバイルデバイス３０に返されるが、ここでウェブサーバ２０２とモバイルデバイス３０とはクライアント／サーバの関係で動作する。同様の処理を他の形態の入力にも使用することができる。例えば、手書き入力を、デバイス３０で前処理を行って、または行わずにデジタル化することができる。音声データと同様にこの形態の入力も認識のために認識サーバ２０４に送信することができ、認識結果は、デバイス３０および／またはウェブサーバ２０２の少なくとも１つに返される。同様に、ＤＴＭＦデータ、ジェスチャーデータ、およびビジュアルデータも同様の方式で処理することができる。入力の形態に応じて、デバイス３０（および下記の他形態のクライアント）は、視覚的な入力を行うためのカメラなど必要なハードウェアを含む。
【００１８】
図４は、携帯電話８０の例示的実施形態の平面図である。電話機８０は、ディスプレイ８２およびキーパッド８４を含む。一般に、図３のブロック図は図４の電話機に当てはまるが、他の機能を行うのに必要な追加的な回路が必要となる可能性がある。例えば、電話機として動作するために必要なトランシーバが図３の実施形態に必要となるが、そのような回路は本発明には関連しない。
【００１９】
上述の携帯型または移動型のコンピューティングデバイスに加えて、本発明は、一般的なデスクトップコンピュータなど多数の他のコンピューティングデバイスに使用できることを理解されたい。例えば、本発明は、身体能力に制約のあるユーザが完全な英数文字のキーボードなどの他の従来の入力装置の操作が難しい場合に、コンピュータまたは他のコンピューティングデバイスに入力を行う、またはテキストを入力することを可能にする。
【００２０】
本発明は、多数の他の汎用または特殊目的のコンピューティングシステム、環境、または構成でも動作する。本発明に使用するのに適する可能性がある周知のコンピューティングシステム、環境、および／または構成の例には、これらに限定しないが、（画面のない）標準的な電話機、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスを含む分散コンピューティング環境などがある。
【００２１】
以下は、図５に示す汎用コンピュータ１２０の簡単な説明である。ただし、ここでもコンピュータ１２０は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲について何らの制限を示唆するものではない。また、コンピュータ１２０は、この図に示す構成要素の任意の１つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。
【００２２】
本発明について、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的な関係で説明する。一般に、プログラムモジュールには、特定タスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、通信ネットワークを通じてリンクされた遠隔の処理装置によってタスクを行う分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、メモリ記憶装置を含むローカルおよびリモート両方のコンピュータ記憶媒体にプログラムモジュールを置くことができる。プログラムおよびモジュールによって行われるタスクについて、図を使用して下記で説明する。当業者は、任意形態のコンピュータ可読媒体に書くことが可能なプロセッサ実行可能命令として、この説明および図を実施することができる。
【００２３】
図５を参照すると、コンピュータ１２０の構成要素は、これらに限定しないが、処理装置１４０、システムメモリ１５０、およびシステムメモリを含む各種のシステム構成要素を処理装置１４０に結合するシステムバス１４１を含むことができる。システムバス１４１は、各種のバスアーキテクチャの任意のものを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数タイプのバス構造のいずれでもよい。これらに限定しないが、例として、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＵＳＢ（ユニバーサルシリアルバス）、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも称されるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスが含まれる。コンピュータ１２０は通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１２０がアクセスすることができる任意の利用可能媒体でよく、揮発性および不揮発性の媒体、取り外し可能および取り外し不能媒体が含まれる。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術に実装された揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは、所望の情報の記憶に用いることができ、コンピュータ１２０によるアクセスが可能な任意の他の媒体が含まれる。
【００２４】
通信媒体は、通例、搬送波または他の搬送機構などの変調データ信号にコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化する方式でその特性の１つまたは複数を設定または変化させた信号を意味する。例として、これらに限定しないが、通信媒体には、配線ネットワークまたは直接配線接続などの配線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の媒体のいずれの組み合わせもコンピュータ可読媒体の範囲に含めるべきである。
【００２５】
システムメモリ１５０は、読み取り専用メモリ（ＲＯＭ）１５１およびランダムアクセスメモリ（ＲＡＭ）１５２など、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ１２０内の要素間の情報転送を助ける基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）１５３は、通例ＲＯＭ１５１に記憶される。ＲＡＭ１５２は通例、処理装置１４０から即座にアクセス可能な、かつ／または現在処理装置１４０によって操作中のデータおよび／またはプログラムモジュールを含む。これに限定しないが、例として、図５にはオペレーティングシステム１５４、アプリケーションプログラム１５５、他のプログラムモジュール１５６、およびプログラムデータ１５７を示している。
【００２６】
コンピュータ１２０は、この他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図５には、取り外し不能、不揮発性の磁気媒体の読み取りまたは書き込みを行うハードディスクドライブ１６１、取り外し可能、不揮発性の磁気ディスク１７２の読み取りまたは書き込みを行う磁気ディスクドライブ１７１、およびＣＤ−ＲＯＭや他の光学媒体などの取り外し可能、不揮発性の光ディスク１７６の読み取りまたは書き込みを行う光ディスクドライブ１７５を示す。例示的動作環境で使用できるこの他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１６１は通例、インターフェース１６０などの取り外し不能なメモリインターフェースを通じてシステムバス１４１に接続され、磁気ディスクドライブ１７１および光ディスクドライブ１７５は通例、インターフェース１７０など取り外し可能なメモリインターフェースによってシステムバス１４１に接続される。
【００２７】
上記で説明し、図５に示すドライブとそれに関連付けられたコンピュータ記憶媒体は、コンピュータ１２０のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を提供する。例えば図５では、ハードディスクドライブ１６１にオペレーティングシステム１６４、アプリケーションプログラム１６５、他のプログラムモジュール１６６、およびプログラムデータ１６７を記憶している。これらのコンポーネントは、オペレーティングシステム１５４、アプリケーションプログラム１５５、他のプログラムモジュール１５６、およびプログラムデータ１５７と同じものでも、異なるものでもよいことに留意されたい。ここではオペレーティングシステム１６４、アプリケーションプログラム１６５、他のプログラムモジュール１６６、およびプログラムデータ１６７には、それらが少なくとも異なるコピーであることを表すために異なる参照符号をつけている。
【００２８】
ユーザは、キーボード１８２、マイクロフォン１８３、およびマウス、トラックボール、タッチパッドなどのポインティングデバイス１８１などの入力装置を通じてコンピュータ１２０にコマンドと情報とを入力することができる。他の入力装置（図示せず）には、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、システムバスに結合されたユーザ入力インターフェース１８０を通じて処理装置１４０に接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス（ＵＳＢ）など他のインターフェースおよびバス構造によって接続することも可能である。モニタ１８４または他タイプの表示装置も、ビデオインターフェース１８５などのインターフェースを介してシステムバス１４１に接続される。コンピュータは、モニタに加えて、スピーカ１８７やプリンタ１８６など他の周辺出力装置も含むことができ、それらは出力周辺インターフェース１８８を通じて接続することができる。
【００２９】
コンピュータ１２０は、リモートコンピュータ１９４など１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ１９４はパーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、あるいはその他の一般的なネットワークノードでよく、通例はコンピュータ１２０との関連で上記で挙げた要素の多くまたはすべてを含む。図５に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１９１とワイドエリアネットワーク（ＷＡＮ）１９３が含まれるが、この他のネットワークを含むことも可能である。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。
【００３０】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１２０はネットワークインターフェースまたはアダプタ１９０を通じてＬＡＮ１９１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１２０は通例、インターネットなどのＷＡＮ１９３を通じて通信を確立するためのモデム１９２またはその他の手段を含む。モデム１９２は内蔵型でも外付け型でもよく、ユーザ入力インターフェース１８０または他の適切な機構を介してシステムバス１４１に接続することができる。ネットワーク環境では、コンピュータ１２０との関連で図示したプログラムモジュール、またはその一部は遠隔のメモリ記憶装置に格納することができる。これに限定しないが、例として図５ではリモートアプリケーションプログラム１９５がリモートコンピュータ１９４に常駐している。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。
【００３１】
図６に、本発明のための例示的な１環境である、ウェブベースの認識およびデータレンダリングのためのアーキテクチャ２００を示す。一般に、ウェブサーバ２０２に記憶された情報には、モバイルデバイス３０またはコンピュータ１２０（ここでは入力の形態に応じて必要な表示画面、マイクロフォン、カメラ、タッチセンシティブパネルなどを備える他の諸形態のコンピューティングデバイスを表す）などのクライアント１００を通じて、または電話機８０を通じてアクセスすることができ、情報は、音声を通じて要求されるか、またはキーが押下されるのに応答して電話機８０で生成されるトーンを通じて要求され、ウェブサーバ２０２からの情報は音声のみによりユーザに提供される。
【００３２】
この実施形態では、アーキテクチャ２００は、音声認識を使用してクライアント１００を通じて情報を取得する場合でも電話機８０を通じて取得する場合でも、単一の認識サーバ２０４がどちらの動作モードもサポートできる点で一元化されている。また、アーキテクチャ２００は、よく知られるマークアップ言語（例えばＨＴＭＬ、ＸＨＴＭＬ、ｃＨＴＭＬ、ＸＭＬ、ＷＭＬなど）の拡張を使用して動作する。したがって、ウェブサーバ２０２に記憶された情報には、これらのマークアップ言語に使用される周知のＧＵＩ方式を使用してアクセスすることもできる。周知のマークアップ言語の拡張を使用することにより、ウェブサーバ２０２でのオーサリングがより容易になり、既存のレガシーアプリケーションが音声認識を含むように容易に修正することもできる。
【００３３】
一般に、クライアント１００は、符号２０６で大まかに示すように、ウェブサーバ２０２から提供されるＨＴＭＬページ、スクリプトなどをブラウザを使用して実行する。音声認識が必要とされる場合は、一例として音声データが認識サーバ２０４に提供されるが、この音声データは、例えばデジタル化されたオーディオ信号または音声の特徴（オーディオ信号は上述のようにクライアント１００によって前処理されている）であり、クライアント１００から提供することが可能な、音声認識の際に使用する文法または言語モデル２２０の指示と共に提供される。あるいは、認識サーバ２０４が言語モデル２２０を含んでもよい。認識サーバ２０４の実施は、多くの形態をとることができ、その１つを図示するが、一般にはレコグナイザ（ＳＲ）２１１を含む。認識の結果は、必要な場合、あるいは適切である場合は、ローカルのレンダリングのためにクライアント１００に返される。必要な場合は、テキスト／音声変換モジュール（ＴＴＳ）２２２を使用して読み上げられたテキストをクライアント１００に提供することができる。認識と、使用される場合はグラフィカルユーザインターフェースを通じて情報を集めると、クライアント１００は、さらなる処理と、必要な場合はさらなるＨＴＭＬページ／スクリプトの受信とのためにその情報をウェブサーバ２０２に送信する。
【００３４】
図６に示すように、クライアント１００、ウェブサーバ２０２、および認識サーバ２０４は、本明細書ではインターネットなどのワイドエリアネットワークであるネットワーク２０５を通じて共通に接続され、別個にアドレス指定することができる。したがって、これらのデバイスが物理的に互いと隣接して位置することは必要でない。詳細には、ウェブサーバ２０２が認識サーバ２０４を含む必要はない。このようにして、ウェブサーバ２０２におけるオーサリングを、そのオーサー（ａｕｔｈｏｒ）が認識サーバ２０４の複雑性を知る必要なしに、そのオーサリングが対象とするアプリケーションに集中させることができる。認識サーバ２０４は、独立して設計し、ネットワーク２０５に接続することができ、それにより、ウェブサーバ２０２でさらなる変更を必要とせずに更新および改良することができる。ウェブサーバ２０２は、クライアントサイドのマークアップおよびスクリプトを動的に生成できるオーサリング機構も含むことができる。さらなる実施形態では、実施マシンの能力に応じて、ウェブサーバ２０２、認識サーバ２０４、クライアント１００を組み合わせてもよい。例えば、クライアント１００がパーソナルコンピュータなどの汎用コンピュータである場合は、クライアントが認識サーバ２０４を含むことができる。同様に、必要な場合は、ウェブサーバ２０２と認識サーバ２０４とを一体化して単一のマシンとすることができる。
【００３５】
電話機８０を通じたウェブサーバ２０２へのアクセスは、電話機８０を配線または無線の電話網（ＰＳＴＮ）２０８に接続し、電話網２０８が電話機８０を第３者のゲートウェイ２１０に接続することを含む。ゲートウェイ２１０は、電話機８０を電話音声ブラウザ２１２に接続する。電話音声ブラウザ２１２は、電話インターフェースを提供するメディアサーバ２１４と音声ブラウザ２１６とを含む。クライアント１００と同様に、電話音声ブラウザ２１２は、ウェブサーバ２０２からＨＴＭＬページ／スクリプトなどを受信する。一実施形態では、ＨＴＭＬページ／スクリプトは、クライアント１００に提供されるＨＴＭＬページ／スクリプトと同様の形態である。このように、ウェブサーバ２０２は、クライアント１００と電話機８０とを別々にサポートする必要がなく、あるいは標準的なＧＵＩクライアントを個別にサポートする必要すらない。代わりに、共通のマークアップ言語を使用することができる。また、クライアント１００と同様に、電話機８０から送信される可聴信号からの音声認識は、音声ブラウザ２１６から、例えばＴＣＰ／ＩＰを使用してネットワーク２０５または専用線２０７を通じて認識サーバ２０４に提供される。ウェブサーバ２０２、認識サーバ２０４、および電話音声ブラウザ２１２は、図５の汎用デスクトップコンピュータなど任意の適切なコンピューティング環境に実施することができる。
【００３６】
システム１０で機能する各種の環境およびアーキテクチャについて説明したので、システム１０の各種コンポーネントおよび機能についてより詳細に説明する。図７に、音声認識理解モジュール１４のブロック図を示す。音声インターフェースモジュール１２から受け取った入力音声は、音声認識理解モジュール１４に送られる。音声認識理解モジュール１４は、関連付けられた言語モデル３１０を有する認識エンジン３０６を含む。認識エンジン３０６は、言語モデル３１０を使用して、個々の入力を表す可能な表層的意味構造（ｓｕｒｆａｃｅ  ｓｅｍａｎｔｉｃ  ｓｔｒｕｃｔｕｒｅ）を識別する。認識エンジン３０６は、入力音声に基づいて少なくとも１つの表層的意味の出力オブジェクトを提供する。一部の実施形態では、認識エンジン３０６は、各代替の構造につき２つ以上の代替の表層的意味オブジェクトを提供することができる。
【００３７】
図７では音声入力が提供されるが、本発明は、手書き認識、ジェスチャー認識、またはグラフィカルユーザインターフェース（これらの場合ユーザはキーボードまたは他の入力装置と対話する）と共に使用することができる。そうした他の実施形態では、音声レコグナイザ３０６を、当技術分野で知られる適切な認識エンジンに置き換える。グラフィカルユーザインターフェースの場合、文法（言語モデルを有する）は、入力ボックスなどを通じたユーザ入力に関連付けられる。したがって、ユーザの入力は、入力の方式に基づく多大な変更を行わずに一定の方式で処理される。
【００３８】
音声や手書きなど言語に基づくユーザ入力の場合、認識エンジン３０６が使用する言語モデル３１０は、知られる確率論的模型（ｓｔｏｃｈａｓｔｉｃ  ｍｏｄｅｌ）の集合の任意の１つであってよい。例えば、言語モデルは、入力中のＮ個の先行する単語からなるグループを考慮して言語の単語の確率をモデル化するＮグラムモデル（Ｎ−ｇｒａｍ  ｍｏｄｅｌ）とすることができる。言語モデルは、意味情報および／または構文情報を特定の単語およびフレーズに関連付ける文脈自由文法としてもよい。本発明のさらなる実施形態では、Ｎグラム言語モデルと文脈自由文法を組み合わせた統一言語モデルを使用する。この統一モデルでは、意味および／または構文のトークンを単語の桁の値（ｐｌａｃｅ  ｖａｌｕｅ）として扱い、仮定される単語とトークンとの組み合わせそれぞれについてＮグラムの確率を計算する。
【００３９】
言語モデル３１０は、データレンダリングモジュール１６がそれに提供されるオブジェクトに相関して関連情報をレンダリングするのに必要な情報に基づいて、階層的な表層的意味構造を生成することができる。一実施形態では、入力音声を分析して、入力テキスト中の各種の意味のトークンまたはオブジェクトを識別する。このオブジェクトは、言語モデル３１０に見つかるオブジェクトのセットから識別される。一般に、このオブジェクトは、データレンダリングモジュール１６が情報をレンダリングするために使用する情報を表す。下記で説明するように、オブジェクトは、クエリオブジェクト、ナビゲーションオブジェクト、および／またはコマンドオブジェクトを含むことができる。クエリオブジェクトは、データベース１８に記憶された情報に関連する情報を含む。ナビゲーションオブジェクトは、記憶された情報をナビゲートするために使用される情報を含み、コマンドオブジェクトは、記憶された情報に基づく各種のコマンドを実行することができる。
【００４０】
音声認識理解モジュール１４は、スタイルコントロール３１２を使用して、入力音声中のオブジェクトを識別するための代替のフレーズを認識することもできる。スタイルコントロール３１２は言語モデル３１０に関連付けられて、データレンダリングモジュール１６に関連オブジェクトを提供するのを支援する。図６に示す環境では、スタイルコントロール３１２に関連する情報は、ワシントン州レドモンドのマイクロソフト社のＡＳＰ．ＮＥＴなどのオーサリングツールを使用して、ウェブサーバ２０２のアプリケーションオーサーによって実施することができる。あるいは、ＪＳＰ、Ｊ２ＥＥ、Ｊ２ＳＥ、Ｊ２ＭＥなどの他のオーサリングツールも使用することができる。例えば、フレーズ「次に曲がるまでの距離はどれほどか」は、「次に曲がるまでどれほどあるか」というようなフレーズに「スタイル」することができる。また、「次に曲がる時の方向は？」は、「次はどちらに曲がればいいのか」あるいは「次はどの方向に曲がればよいか？」とフレーズし直すことができる。このように、スタイルコントロール３１２を使用して、データベース１８中の関連データを識別することができ、またユーザに提供するのに適した応答を識別することができる。
【００４１】
言語モデルが認識しない音声をユーザが提供した場合、システムは、入力を繰り返すようにユーザを促すことができる。ただし、システムが入力中の意味情報またはその欠如に基づく入力に関連する情報を持たない場合、システムは、適切なヘルプルーチンを実行してユーザに利用可能な選択肢を指示することができる。
【００４２】
図８に、データレンダリングモジュール１６の詳細なブロック図を示す。データレンダリングモジュール１６は、コマンドオペレータモジュール６０２、テキストアナライザ／ノーマライザモジュール６０４、データベースインターフェースモジュール６０６、応答ジェネレータモジュール６０７、オーディオインターフェースモジュール６０８、視覚インターフェースモジュール６１０、およびテキスト音声変換モジュール（ＴＴＳ）６１２を含む。データレンダリングモジュール１６は、音声認識理解モジュール１４からオブジェクトを受け取り、関連情報の（音声および／または視覚による）出力をユーザに提供する。上述のように、キーワードまたはフレーズが音声認識理解モジュール１４によって識別され、その相関的要素としてのオブジェクトを提供する。データレンダリングモジュール１６は、データベースインターフェース６０６を使用してデータベース１８からデータを取り出すか、かつ／または抽出するために、音声認識理解モジュール１４から受け取るオブジェクトを解釈する。データベースインターフェース６０６は、データベース１８に記憶されたデータの構造またはスキーマに関する情報を含む。データベースインターフェース６０６は、例えばローカルコンピュータ、またはワイドエリアネットワーク内に位置するウェブサーバなどの各種の異なるソースからのデータにアクセスすることが可能な汎用モジュールであってよいことに留意されたい。関連情報を抽出するために、データレンダリングモジュール１６は、音声認識理解モジュール１４から受け取ったオブジェクトを、データベース１８の記憶情報に対応するタグまたは識別子に関連付ける。
【００４３】
実施形態によっては、データベース１８に記憶されたデータが、データベース１８の情報のタイプまたは情報の構造に対応する各種のタグまたは識別子をすでに含んでいる。他の実施形態では、テキストアナライザ／ノーマライザ６０４を使用してタグを生成するか、ないしはデータ中の関連情報を識別することができる。ユーザに対して関連情報をレンダリングする前に、データの追加的な処理を行うことができる。例えば、コマンドオペレータ６０２を使用して、受け取ったオブジェクトに基づき、データベース１８から得る各種のデータの組み合わせを処理することができる。
【００４４】
ユーザからの要求に従って関連情報が処理されると、データが応答ジェネレータ６０７に送られる。応答ジェネレータ６０７は、ユーザから提供された入力に対する適切な応答を展開することができる。応答ジェネレータ６０７は、次いで、オーディオインターフェース６０８および／またはビジュアルインターフェース６１０にデータを送信し、それがユーザに対してレンダリングされる。オーディオインターフェース６０８中のテキスト音声変換モジュール６１２は、データを音声でレンダリングするために使用することができる。
【００４５】
図９に、クエリを通じて選択的にユーザに対してレンダリングすることができるデータベース１８のテーブル６５０を概略的に示す。テーブル６５０は、２００２年の各四半期終了時の各種企業の株の終値を示している。テーブル６５０は、行６５２に記憶された企業名、２００２年の各四半期の列６５４、および列と行とに対応する株価６５６を含む。テーブル６５０に関連付けられたタグは、列と行とに対応する。テーブル６５０中のデータをレンダリングするために、クエリオブジェクト６６０およびナビゲーションオブジェクト６６２が言語モデル３１０によって定義される。
【００４６】
テーブル６５０のデータを選択的にレンダリングするために、ユーザは、クエリオブジェクト６６０および／またはナビゲーションオブジェクト６６２を含むクエリを提供する。クエリを認識理解モジュール１４によって解釈して、関連するクエリおよびナビゲーションオブジェクトを識別する。次いでオブジェクトを、列および行に対応するタグに関連付ける。
【００４７】
クエリオブジェクト６６０を使用して、テーブル６５０の特定セルの情報をレンダリングすることができる。例えば、音声クエリが「第２四半期のマイクロソフトの株の終値はいくらだったか」であるとする。この場合、音声理解モジュール１４は、クエリオブジェクト「マイクロソフト」および「第２四半期」をデータレンダリングモジュール１６に提供する。データレンダリングモジュール１６は、それらのオブジェクトを使用して、それらのオブジェクトをデータベース１８のタグに関連付けて、レンダリングすべき該当するセル（テーブル６５０の網かけしたセル）を判断する。この場合、「マイクロソフト」は、オブジェクト＜ｃｏｍｐａｎｙ  ｎａｍｅ＞に関連する情報を含むクエリオブジェクトであり、「第２四半期」は、オブジェクト＜ｑｕａｒｔｅｒ＞に関連する情報を含むクエリオブジェクトである。
【００４８】
「マイクロソフト」は、「ＭＳＦＴ」と示す行に対応するタグに関連付けられ、「第２四半期」は、「Ｑ２」と示す列に対応するタグに関連付けられる。オブジェクトを該当するタグに関連付けると、株価「５４．１２」が応答ジェネレータ６０７に提供される。この関連する情報を使用して応答を生成し、オーディオインターフェース６０８および／またはビジュアルインターフェース６１０を使用してユーザに対してレンダリングすることができる。例えば、応答は「第２四半期のマイクロソフト株の終値は５４ドル１２セントでした」等となる。
【００４９】
この例では、応答ジェネレータ６０７は、値「５４．１２」を受け取り、取り出したデータをレンダリングするために、記憶されたコンテクストと組み合わせてその値を使用する。この例では、記憶されたコンテクストは、「＜ｑｕａｒｔｅｒ＞の＜ｃｏｍｐａｎｙ  ｎａｍｅ＞の終値の株価は＜ｒｅｓｕｌｔ＞でした」であり、＜ｑｕａｒｔｅｒ＞と＜ｒｅｓｕｌｔ＞とは正規化も行われている。取り出したデータをレンダリングするために使用するコンテクストは、必要に応じて、個々にそのデータについてのタグまたは識別子に関連付けるか、かつ／またはオブジェクトの相関的要素として関連付けることができる。視覚的な出力が提供される場合、応答ジェネレータ６０７は、取り出されたデータを視覚的に表示する方式についての指示を提供することができる。
【００５０】
また、クエリオブジェクト６６０は、一行または一列全体をレンダリングするオブジェクトを含むことができる。例えば、ユーザが「２００２年の全四半期のマイクロソフトの株価の終値は？」と尋ねるとする。この例では、データレンダリングモジュール１６は、２００２年のマイクロソフトの株価の各値をユーザに対してレンダリングすることになる。
【００５１】
ユーザがテーブル６５０中のある位置との関係でテーブル６５０をナビゲートするために、ナビゲーションオブジェクト６６２を使用することができる。例えば、ユーザが、第２四半期のマイクロソフトの株の終値を尋ねた後に「次の四半期のマイクロソフトの株の終値はいくらか」と尋ねるとする。この場合、音声認識理解モジュール１４は、オブジェクト「マイクロソフト」および「次の四半期」を識別する。これらのオブジェクトは、行「マイクロソフト」のタグと、次の列のタグ、例えば列「Ｑ３」に関連付けられる。その結果、「マイクロソフト」の行の次の四半期のデータがレンダリングされる。
【００５２】
本発明を実施するには各種の音声アプリケーションプログラムインターフェースを使用することが可能である。そのようなインターフェースの１つは、例えばワシントン州レドモンドのマイクロソフト社が開発したＳＡＰＩである。また、本発明は、音声アプリケーション言語タグ（ＳＡＬＴ）などのマークアップ言語拡張を使用して実施することができる。ＳＡＬＴは、例えばパーソナルコンピュータ、電話機、タブレットＰＣ、および無線デバイスから、情報、アプリケーション、およびウェブサービスにアクセスすることを可能にする開発標準である。ＳＡＬＴは、ＨＴＭＬ、ＸＨＴＭＬ、およびＸＭＬなどの既存のマークアップ言語を拡張する。ＳＡＬＴ１．０の仕様は、オンラインで得ることができる（非特許文献１参照）。ＳＡＬＴは、例えば認識-サーバ２０４からユーザの入力に基づく意味情報を提供することができ、そのような情報が、データレンダリングモジュール１６に提供されるオブジェクトを形成することに留意されたい。下記でさらに述べるように、ＳＡＬＴの拡張または同様の拡張を使用することにより、データを選択的にレンダリングするイベント駆動型のユーザ対話のサポートが得られる。
【００５３】
図１０Ａ〜１０Ｃに、上述のテーブル６５０のデータをレンダリングするためのＳＡＬＴを使用した例示的なＸＭＬコードを示す。図１０Ａに示すように、このコードは、ヘッダ部分６７０、データ部分６７２、および入力部分６７４を含む。ヘッダ部分６７０は、ウェブページまたはアプリケーションの要素を初期化し、確立するための各種の情報を含む。データ部分６７２は、各種のタグを用いてテーブル６５０のデータを表す。例えば、データ部分６７２は、行を表す＜ｃｏｍｐａｎｙ＞のタグ６７６、＜ｎａｍｅ＞のタグ６７７、＜Ｑ２＞のタグ６７８を含み、＜ｎａｍｅ＞、＜Ｑ１＞＜Ｑ２＞などは列を表す。図ではデータ部分６７２はレンダリングされる情報を含んでいるが、データ部分６７２は、例えばユニフォームリソースロケータ（ＵＲＬ）を使用するなどして、その情報がある他の場所へのリンクを含んでもよい。入力部分６７４は、ユーザから予想される各種の入力を定義する。
【００５４】
図１０Ｂに、テーブル６５０のデータをレンダリングするコードの続きを示す。図１０Ｂでは、各種の音声アプリケーションタグがタグ「ＳＡＬＴ」と共に示されている。例えば、それらのタグには、「ｌｉｓｔｅｎ」タグ６８０、「ｇｒａｍｍａｒ」タグ６８２、および「ｐｒｏｍｐｔ」タグ６８４および６８６が含まれる。「ｌｉｓｔｅｎ」タグ６８０は音声入力に使用される。ｌｉｓｔｅｎタグは、音声レコグナイザを構成し、認識を実行し、音声入力イベントを処理する。ｇｒａｍｍａｒタグ６８２は、認識で使用される文法を指定するために使用される。このようにして、ｇｒａｍｍａｒ６８２は言語モデルを識別する。この例で、文法の規則部分６８８は、テーブル６５０の各種の企業名について定義され、規則部分６９０は、テーブル６５０の各四半期について定義されている。ｐｒｏｍｐｔタグ６８４および６８６は、システム出力、すなわち上述のコンテクストを指定するために使用される。ｐｒｏｍｐｔタグは、単純なテキスト、音声出力マークアップ、可変値、オーディオファイルへのリンク、あるいはそれらの組み合わせであってよい。下記で述べるように、取り出したデータをフォーマットするために関数および／またはスクリプトメソッドも使用することができる。ｐｒｏｍｐｔ６８４は、ユーザの要求に基づく応答を生成し、図８の応答ジェネレータ６０７として機能する。ｐｒｏｍｐｔ６８６は、ユーザにクエリを入力するように要求する。
【００５５】
図１０Ｃは図１０Ｂからのコードの続きであり、ユーザの音声クエリに基づいて関連情報をレンダリングするスクリプト６９２を含む。スクリプト６９２は、レンダリングすべき関連するセルを識別し、識別されたオブジェクトと、そのオブジェクトとデータ部分６７２のデータに対応するタグとの関連付けに基づいて、レンダリングのためにｐｒｏｍｐｔ６８４を呼び出す。この例は、イベンティングのサポートと埋め込みスクリプトのホストも例示しており、オブジェクトの認識と識別とが起動されると、スクリプト部分６９２で関数が呼び出されるか、実行されて、データを選択的にレンダリングする。
【００５６】
データレンダリングモジュール１６は、コンピュータとユーザとの間のダイアログを作成する際にも特に有用である。ダイアログは、ユーザがデータベースに記憶された情報の一部を要求により取り出したいシナリオで特に有用である。そのようなシナリオの１つは、道案内のレンダリングである。図１１に、運転の道順指示の例を含むテーブル７００を示す。テーブル７００は、複数の行７０２と複数の列７０４とに構成される。各行７０２は、運転の道順における方向転換を表し、各列７０４は、それぞれの方向転換についての詳細な情報を表す。符号７０６に示す追加的な情報もテーブル７００に関連付けることができる。追加的情報７０６は、１回の移動についての合計値として示しているが、他の情報または他の情報へのリンクを含むことができる。一実施形態では、銀行や飲食店などの近隣の商施設に関連する情報が提供される。複数のクエリオブジェクト７０８および複数のナビゲーションオブジェクト７１０もテーブル７００に関連付けられる。
【００５７】
ユーザに対して道案内をレンダリングする際、データレンダリングモジュール１６は、デフォルトで最初の行の情報（方向転換）をレンダリングすることができる。データレンダリングモジュール１６は、ユーザに対して最初の方向転換についてのすべてをレンダリングするようにプログラムしても、一部分をレンダリングするようにプログラムしてもよい。例えば、最初の行の指示にある情報を与えられて、応答ジェネレータ６０７は、ユーザに対して「Ｃｏｎｃｏｒｄ通りで左折して０．８ｋｍ（０．５マイル）進んでください」と音声でレンダリングすることができる。それに対し、ユーザは、「目印にする案内標識は何？」など、その方向転換についてさらなる情報を要求する可能性がある。あるいは、ユーザは、方向転換についての一部分を繰り返すように要求することもできる。例えば、ユーザは「どの方向に曲がるのか？」と尋ねる。この場合、道案内のオブジェクトは、現在の方向、すなわち「左」についてのタグに関連付けられる。データレンダリングモジュール１６は、テーブル７００から関連する情報を取り出し、「左折してください」などの適切な応答をレンダリングする。ここで、「左」は最初の行の最初の列から取得されたものである。ユーザが次の方向転換について知りたい時、ユーザは、「次の方向転換は？」などのクエリを提供することができる。
【００５８】
ナビゲーションオブジェクト７１０を使用して、データレンダリングモジュール１６は、現在の位置に相対的な方向転換についての関連情報をレンダリングすることができる。例えばユーザが「次に方向転換する通りの名前は？」と尋ねる。ナビゲーションオブジェクト「次」は、テーブル７００における現在の位置を考慮して、次の方向転換（すなわち行）についてのタグに関連付けられ、クエリオブジェクト「通りの名前」が該当する列に関連付けられ、関連情報がレンダリングされる。
【００５９】
任意の時に、ユーザは、適切なクエリを使用してテーブル７００の任意の部分にアクセスすることができ、そのクエリから対応するオブジェクトが提供される。また、＜ｔｏｔａｌ＞オブジェクトに関連付けられた該当するクエリを行うと、全距離とおよその移動時間７０６にアクセスすることもできる。あるいは、クエリは、現在の場所とユーザからの入力とに基づく新しい道案内のセットを要求することもできる。例えば、ユーザが「ここから一番近いメキシコ料理店までの道順を教えてほしい」と言うとする。この入力が解釈されて、現在の場所と、最も近いメキシコ料理店の住所を提供するデータとに基づいて、新しい道案内のセットを生成する。したがって、道案内に関連付けられた言語モデルを拡張して、この情報に基づいて各種のクエリ、ナビゲーション、またはコマンドのオブジェクトを認識し、必要であればコード、例えばリモートの情報にアクセスために使用されるリモートデータベースに含まれる新しいデータを取得するスクリプトを実行するようにすることができる。このシステムは、新しいデータを選択的にレンダリングするために新しい言語モデルを入手することもできる。一実施形態では、例えばマークアップページまたは他のコードからレンダリングされていた１つ前のデータ（すなわちテーブル７００）を、現在の位置を記録して保存することができ、新しい情報のレンダリングが完了すると、システムは、その現在の位置から１つ前の情報（すなわちテーブル７００）のレンダリングに戻ることができる。
【００６０】
データレンダリングモジュール１６は、特定のコマンドを実行するためにも使用することができる。図１２に、テーブル７５０および７５２としてのデータを概略的に示し、これらのテーブルはそれぞれ２００１年と２００２年との製品の売上データを含んでいる。ユーザは、上述のように個々のセルを照会し、テーブル中をナビゲートするのに加えて、記述された情報をレンダリングするためにテーブル７５０および７５２のデータを処理するコマンドを使用して情報を要求することができる。テーブル７５０および７５２からのデータをレンダリングする際には、クエリオブジェクト７６０、ナビゲーションオブジェクト７６２、およびコマンドオブジェクト７６４がすべて使用される。ユーザは、コマンドオブジェクト７６４を使用して、テーブル７５０および７５２の情報に基づいて関連情報を選択的にレンダリングし、その情報に基づくコマンドを実行することができる。
【００６１】
例えば、＜ｃｏｍｐａｒｅ＞オブジェクトを使用する場合、ユーザは「２００１年の第１四半期と２００２年の第１四半期との部品１００１の売上データが欲しい」と要求する。このクエリが行われると、データレンダリングモジュール１６は、追加的なコンテクストを使用するか、または使用せずに、値「＄３０４８．２６」と「＄４１２５．０６」とを選択的にレンダリングする。一実施形態では、これらの値は、ユーザが容易に比較できるように横並びの関係で表示することができ、また音声でレンダリングすることもできる。
【００６２】
コマンドオペレータ６０２は、コマンドオブジェクト７６４を使用して、ユーザからの要求に基づいてデータを計算することもできる。例えば、ユーザが「２００２年の第１四半期と２００２年の第２四半期との部品１００１の売上を足してほしい」と要求する。このコマンドは＜ａｄｄ＞オブジェクトを用い、このオブジェクトもユーザの入力から識別される。この場合、データベースインターフェース６０６は、２００２年の関連する四半期における部品１００１についての情報の値を抽出し、その関連データをコマンドオペレータ６０２に送る。次いで、コマンドオペレータ６０２は、それらの各値を足し、その結果を応答ジェネレータ６０７に送り、応答ジェネレータ６０７は、オーディオインターフェース６０８および／またはビジュアルインターフェース６１０を使用してそのデータをレンダリングする。コマンドオペレータ６０２は、例えば１行全体分の情報など３つ以上の値を足すこともできる。特定の応用例に応じて他のコマンドも使用することができる。例えば＜ｓｕｂｔｒａｃｔ＞および＜ｐｅｒｃｅｎｔ＞は、２つ以上のデータ値に基づく値をレンダリングすることができる。
【００６３】
データレンダリングモジュール１６は、テキストの段落などの非構造化（ｕｎｓｔｒｕｃｔｕｒｅｄ）データを選択的にレンダリングすることもでき、そのようなデータはデータベース１８中では本来は音声ファイルか、または適切な変換を行った手書き入力の形をとることができる。図１３に、株式市場の概要に関連するテキストの段落８００を示す。ユーザからの音声入力に基づいて段落８００を選択的にレンダリングするために、クエリオブジェクト８０２およびナビゲーションオブジェクト８０４が定義される。段落８００を選択的にレンダリングするには、各種のタグが段落８００中の関連情報に対応していなければならない。一実施形態では、テキストノーマライザ／アナライザ６０４を使用して段落８００の関連部分を識別し、その関連部分に基づいて各種のタグを生成する。例えば、テキストノーマライザ／アナライザ６０４は、文（上述のテーブルの行に類似する）、数、企業名などを識別することができる。処理は、データの一部分についての意味情報を確定することを含むことができる。
【００６４】
段落８００を前処理して関連するタグを識別すると、段落８００をレンダリングすることができる。初めに、データレンダリングモジュール１６は、テキストの最初の文のレンダリングを開始する。ユーザが沈黙するか、または「ｎｅｘｔ」のナビゲーションオブジェクトを認識すると、データレンダリングモジュール１６は、次の文のレンダリングを開始する。
【００６５】
ユーザは、段落８００の特定部分のレンダリングを要求することもできる。例えば、ユーザは、「最後の株価指数はいくつだったか？」等のクエリを使用して、最後の株価指数を繰り返すように要求することができる。＜ｓｔｏｃｋ  ｉｎｄｅｘ＞オブジェクトが音声認識理解モジュール１４によって識別されると、データレンダリングモジュール１６は、そのオブジェクトを段落８００中のタグに関連付ける。例えば、段落８００の最初の文がレンダリングされた後に、データレンダリングモジュール１６は、株価指数オブジェクトを、「スタンダード＆プアーズ５００種指数」に対応するタグに関連付ける。このように、情報のセグメント（すなわち文）をレンダリングすると、ユーザからの音声入力に基づいてそのセグメントの一部をレンダリングすることができる。所望の情報にアクセスするための対応するオブジェクトを提供する適切なクエリを使用して、段落の任意の部分を取り出せることに留意されたい。非構造化データを処理し、ユーザがクエリ、ナビゲーション、およびコマンドを提供することを可能にするこの技術は、新聞や雑誌全体、あるいはその他の情報源をレンダリングするように容易に拡張することができる。このような技術には、情報をレンダリングするために定義された階層構造（例えば新聞のスポーツ欄、ビジネス欄、首都圏欄など）を補うことができる。それでもなお、この技術は、ユーザから提供されるオブジェクトを確定し、そのオブジェクトを使用して選択的に情報をレンダリングすることを含む。
【００６６】
図１４Ａ〜１４Ｄに、段落８００をレンダリングするためのＳＡＬＴを用いた例示的なＸＭＬコードを示す。図１４Ａを参照すると、ヘッダ部分８１０とデータ部分８１２とを示している。ヘッダ部分８１０は、ドキュメントを初期化するデータを含む。データ部分８１２は、テキストノーマライザ／アナライザ６０４によって段落が分析され、正規化された後の段落８００を示す。図に示すように、＜ｓｅｎｔｅｎｃｅ＞、＜ｅｎｔｉｔｙ  ｎａｍｅ＝”ｓｔｏｃｋ  ｉｎｄｅｘ”＞および＜ｅｎｔｉｔｙ  ｎａｍｅ＝”ｎｕｍｂｅｒ”＞などの各種のタグが、段落８００の様々な部分に関連付けられている。
【００６７】
このコードは図１４Ｂに続き、同図には各種の音声アプリケーション言語のタグを示す。例えば、このコードは、ｌｉｓｔｅｎタグ８１４、ｇｒａｍｍａｒタグ８１６、およびｐｒｏｍｐｔタグ８１８および８２０を含む。ｌｉｓｔｅｎタグ８１４は、音声レコグナイザを初期化し、ユーザの音声入力中のオブジェクトの識別を開始する。ｇｒａｍｍａｒタグ８１６は言語モデルを初期化し、この例では言語モデルはナビゲーション規則８２０とクエリ規則８２２を定義する。
【００６８】
図１４Ｃに図１４Ｂのコードの続きを示す。スクリプトタグ８２６は、コードのスクリプト部分の始まりを識別する。このスクリプト部分は、データレンダリングモジュール１６を作動させるための各種関数を含む。コマンド実行関数８２８は、ナビゲーションまたはクエリコマンドを認識し、認識されたオブジェクトに基づいて必要な関数を呼び出す。初期化関数８３０は、段落８００を最初から再生し始める。ｍｏｖｅ  ｂａｃｋ関数８３２およびｍｏｖｅ  ｎｅｘｔ関数８３４は、それぞれ１センテンス前に移動するため、および１センテンス先に移動するために提供される。図１４Ｄで、項目抽出関数８３６は、ユーザの音声入力に基づいて段落８００から関連情報を抽出する。ｄｉｓｐｌａｙ８３８は、例えば画面に段落８００を表示する。
【００６９】
先に指摘したように、データレンダリングモジュール１６は、他の形態の非構造化テキストのレンダリングにも使用することができる。例えば図１５に音声メールメッセージ８４０を示す。オブジェクト８４２を使用してこのメッセージの一部分をレンダリングする。音声メールメッセージ８４０の一部分をレンダリングするために、データベースインターフェース６０６（図８）は、音声メールメッセージ８４０をテキストに変化する音声レコグナイザを含む。メッセージがテキストに変換されると、テキストノーマライザ／アナライザ６０４を使用して、音声メールメッセージの関連部分を識別する。例えば、テキストノーマライザ／アナライザ６０４は、個人、メッセージの主題、および／または電話番号などの数を識別することができる。段落８００について上述した識別と同様のこの識別に基づいてタグが生成される。音声メールメッセージまたは音声メールメッセージの一部がレンダリングされると、ユーザは、関連部分を繰り返すように要求することができる。例えば、図１５の音声メールメッセージでは、ユーザは、電話番号またはメッセージの主題を繰り返すことを要求することができる。オブジェクト８４２を使用して、データレンダリングモジュール１６は、オブジェクトを音声メールメッセージ８４０中のデータに対応するタグに関連付ける。次いで要求されるデータをレンダリングする。
【００７０】
さらなる実施形態では、複数の音声メールメッセージを処理して、ナビゲーションオブジェクトを使用して各メッセージへの選択的なアクセスを提供することができる。メッセージ中の情報（すなわち電話番号）を使用する、あるいは電話番号を持っている個人のリストなどの他の情報にアクセスすることにより、コマンドオブジェクトを使用して折り返しの電話を指示すること等ができる。別の例として、図１１の運転の道順指示の例に関して、近隣の商施設に関連する情報には、リモートの情報ストアおよび／またはリモートアプリケーションからもアクセスすることができる。
【００７１】
本発明について特定の実施形態を参照して説明したが、当業者には、本発明の精神および範囲から逸脱せずに形態と詳細に変更を加えてよいことが認識されよう。
【図面の簡単な説明】
【００７２】
【図１】データ提示システムのブロック図である。
【図２】コンピューティングデバイス動作環境の平面図である。
【図３】図２のコンピューティングデバイスのブロック図である。
【図４】電話機の平面図である。
【図５】汎用コンピュータのブロック図である。
【図６】クライアント／サーバシステムのアーキテクチャのブロック図である。
【図７】音声認識理解モジュールのブロック図である。
【図８】データレンダリングモジュールのブロック図である。
【図９】株価のテーブルとテーブル中のデータをレンダリングするためのオブジェクトとの図である。
【図１０Ａ】図９のテーブルをレンダリングするのに使用される例示的コードの図である。
【図１０Ｂ】図９のテーブルをレンダリングするのに使用される例示的コードの図である。
【図１０Ｃ】図９のテーブルをレンダリングするのに使用される例示的コードの図である。
【図１１】運転の道順指示のテーブルとテーブル中のデータをレンダリングするためのオブジェクトとの図である。
【図１２】売上データのテーブルとテーブル中のデータをレンダリングするためのオブジェクトとの図である。
【図１３】テキストの一段落とそのテキスト段落中のデータをレンダリングするためのオブジェクトとの図である。
【図１４Ａ】図１３の段落中のデータをレンダリングするために使用される例示的コードの図である。
【図１４Ｂ】図１３の段落中のデータをレンダリングするために使用される例示的コードの図である。
【図１４Ｃ】図１３の段落中のデータをレンダリングするために使用される例示的コードの図である。
【図１４Ｄ】図１３の段落中のデータをレンダリングするために使用される例示的コードの図である。
【図１５】音声メールメッセージと音声メールメッセージ中のデータをレンダリングするためのオブジェクトとの図である。
【符号の説明】
【００７３】
１０  データ提示システム
１２  音声インターフェースモジュール
１４  音声認識理解モジュール
１６  データレンダリングモジュール
１８  データベース
３０  データ管理モバイルデバイス
３２  筐体
２９  マイクロフォン
３０  モバイルデバイス
３３  スタイラス
３４、８２  ディスプレイ
３５  ボタン
３７、５９  Ａ／Ｄ変換器
４３  スピーカ
５０  ＣＰＵ
５２  トランシーバ
５４、１５２  ＲＡＭ
５８、１５１  ＲＯＭ
６０  通信インターフェース
８０  電話機
１２０、１９４  コンピュータ
８４  キーパッド
１００  クライアント
１４０  処理装置
１４１  システムバス
１５０  システムメモリ
１５３  ＢＩＯＳ
１５４、１６４  オペレーティングシステム
１５５、１６５、１９５  アプリケーションプログラム
１５６、１６６  プログラムモジュール
１５７、１６７  プログラムデータ
１６０、１７０  インターフェース
１６１  ハードディスクドライブ
１７１  磁気ディスクドライブ
１７２  磁気ディスク
１７５  光ディスクドライブ
１７６  光ディスク
１８０  ユーザ入力インターフェース
１８１  ポインティングデバイス
１８２  キーボード
１８３  マイクロフォン
１８４  モニタ
１８５  ビデオインターフェース
１８６  プリンタ
１８７  スピーカ
１８８  出力周辺インターフェース
１９０  アダプタ
１９１  ＬＡＮ
１９２  モデム
１９３  ＷＡＮ
２０２  ウェブサーバ
２０５  ネットワーク
２０４  認識サーバ
２０８  電話網
２１０  ゲートウェイ
２１１  レコグナイザ
２１２  電話音声ブラウザ
２１４  メディアサーバ
２１６  音声ブラウザ
２２０、３１０  言語モデル
２２２  テキスト／音声変換モジュール
３０６  認識エンジン
３１２  スタイルコントロール
６０２  コマンドオペレータモジュール
６０４  テキストアナライザ／ノーマライザモジュール
６０６  データベースインターフェースモジュール
６０７  応答ジェネレータモジュール
６０８  オーディオインターフェースモジュール
６１０  視覚インターフェースモジュール
６１２  テキスト音声変換モジュール
【図１】
2004310748.tif 000003
【図３】
2004310748.tif 000004
【図４】
2004310748.tif 000005
【図５】
2004310748.tif 000006
【図６】
2004310748.tif 000007
【図７】
2004310748.tif 000008
【図８】
2004310748.tif 000009
【図９】
2004310748.tif 000010
【図１０Ａ】
2004310748.tif 000011
【図１０Ｂ】
2004310748.tif 000012
【図１０Ｃ】
2004310748.tif 000013
【図１１】
2004310748.tif 000014
【図１２】
2004310748.tif 000015
【図１３】
2004310748.tif 000016
【図１４Ａ】
2004310748.tif 000017
【図１４Ｂ】
2004310748.tif 000018
【図１４Ｃ】
2004310748.tif 000019
【図１４Ｄ】
2004310748.tif 000020
【図１５】
2004310748.tif 000021
【図２】
2004310748.tif 000022
【外国語明細書】
2004310748000001.pdf