(57)【要約】【課題】  ＶｏｉｃｅＸＭＬをＳＡＬＴなどの発話アプリケーション開発ツールと結合するためのシステムおよび方法を提供する。【解決手段】  本発明の一態様では、ＶｏｉｃｅＸＭＬモジュールは、ＶｏｉｃｅＸＭＬ実行可能命令を含む。ＳＡＬＴモジュールは、ＶｏｉｃｅＸＭＬモジュールに関連付けられた命令を実行するための音声アプリケーション言語タグを含む。【選択図】  図１
2005025760.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で実施されると、前記コンピュータに情報を処理させる命令を有するコンピュータ可読媒体であって、前記命令は、
実行アルゴリズムに基づいて定義された順序において実行される命令を含む逐次モジュールと、
前記命令に関連付けられたオペレーションを初期化するための一時的トリガを有する、少なくとも１つのオブジェクトを含む、オブジェクト指向モジュールとを備えることを特徴とするコンピュータ可読媒体。
【請求項２】
前記実行アルゴリズムは、少なくとも１つのオブジェクトに遭遇するとき、自動的に前記一時的トリガを呼び出すことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記逐次モジュールは、フォーム解釈アルゴリズムを実行するＶｏｉｃｅＸＭＬモジュールであることを特徴とする請求項１または２に記載のコンピュータ可読媒体。
【請求項４】
前記オブジェクト指向モジュールは、音声アプリケーション言語タグを有するＳＡＬＴモジュールであることを特徴とする請求項１から３のいずれかに記載のコンピュータ可読媒体。
【請求項５】
前記一時的トリガは音声認識イベントを初期化することを特徴とする請求項１から４のいずれかに記載のコンピュータ可読媒体。
【請求項６】
前記一時的トリガはＤＴＭＦ認識イベントを初期化することを特徴とする請求項１から５のいずれかに記載のコンピュータ可読媒体。
【請求項７】
前記一時的トリガはメッセージングイベントを初期化することを特徴とする請求項１から５のいずれかに記載のコンピュータ可読媒体。
【請求項８】
前記逐次モジュールは、第１のフィールドおよび第２のフィールドを宣言し、前記オブジェクト指向モジュールは、認識イベントを初期化して、ユーザからの発話入力を得て、前記第１のフィールドを、前記発話入力の第１の部分により満たし、前記第２のフィールドを、前記発話入力の第２の部分により満たすことを特徴とする請求項１から５のいずれかに記載のコンピュータ可読媒体。
【請求項９】
第１の文法は前記第１のフィールドに関連付けられ、第２の文法は前記第２のフィールドに関連付けられることを特徴とする請求項８に記載のコンピュータ可読媒体。
【請求項１０】
前記オブジェクト指向モジュールは、複数の文法を有する認識イベントを初期化して、認識結果を得て、前記認識結果を前記複数の文法の少なくとも１つに関連付けることを特徴とする請求項１から９のいずれかに記載のコンピュータ可読媒体。
【請求項１１】
前記逐次モジュールは、第１のフィールドおよび第２のフィールドを宣言し、前記オブジェクト指向モジュールは、認識イベントを初期化して、音声およびＤＴＭＦ入力を有する発声をユーザから得て、前記発話入力を前記第１のフィールドに、前記ＤＴＭＦ入力を前記第２のフィールドに関連付けることを特徴とする請求項１から１０のいずれかに記載のコンピュータ可読媒体。
【請求項１２】
前記逐次モジュールはフィールドを宣言し、前記オブジェクト指向モジュールは、認識イベントを初期化して、前記ユーザからの認識結果を得て前記フィールドを満たし、前記フィールドを前記ユーザにレンダリングするためのプロンプトを実行することを特徴とする請求項１から１１のいずれかに記載のコンピュータ可読媒体。
【請求項１３】
前記オブジェクト指向モジュールは、メッセージングイベントを実行してリモートアプリケーションに接続することを特徴とする請求項１から１２のいずれかに記載のコンピュータ可読媒体。
【請求項１４】
前記オブジェクト指向モジュールは、前記結果を前記メッセージングイベントに基づいて受信し、前記結果をユーザにレンダリングすることを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記実行アルゴリズムは、前記オペレーションの完了後、自動的に後続の命令に進むことを特徴とする請求項１から１４のいずれかに記載のコンピュータ可読媒体。
【請求項１６】
前記トリガは、エラー、例外、認識および認識なしの指示のうち１つであることを特徴とする請求項１から１５のいずれかに記載のコンピュータ可読媒体。
【請求項１７】
前記トリガは再生命令の完了であることを特徴とする請求項１から１６のいずれかに記載のコンピュータ可読媒体。
【請求項１８】
前記トリガはメッセージの受信であることを特徴とする請求項１から１７のいずれかに記載のコンピュータ可読媒体。
【請求項１９】
コンピュータによって実行可能であり、実施されるとき、前記コンピュータに情報を処理させるマークアップページを有するコンピュータ可読媒体であって、前記マークアップページは、
ＶｏｉｃｅＸＭＬ実行命令を有するＶｏｉｃｅＸＭＬモジュールと、
前記ＶｏｉｃｅＸＭＬモジュールに関連付けられた命令を実行するための音声アプリケーション言語タグを有する、ＳＡＬＴモジュールとを備えることを特徴とするコンピュータ可読媒体。
【請求項２０】
前記ＶｏｉｃｅＸＭＬモジュールは、第１のフィールドおよび第２のフィールドを宣言し、前記ＳＡＬＴモジュールは、認識イベントを初期化して、ユーザからの発話入力を得て、前記第１のＶｏｉｃｅＸＭＬフィールドを、前記発話入力の第１の部分により満たし、前記第２のＶｏｉｃｅＸＭＬフィールドを、前記発話入力の第２の部分により満たすことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
第１の文法は前記第１のＶｏｉｃｅＸＭＬフィールドに関連付けられ、第２の文法は前記第２のＶｏｉｃｅＸＭＬフィールドに関連付けられることを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
前記ＳＡＬＴモジュールは、複数の文法を有する認識イベントを初期化して、認識結果を得て、前記認識結果を前記複数の文法の少なくとも１つに関連付けることを特徴とする請求項１９から２１のいずれかに記載のコンピュータ可読媒体。
【請求項２３】
前記ＶｏｉｃｅＸＭＬモジュールは、第１のフィールドおよび第２のフィールドを宣言し、前記ＳＡＬＴモジュールは、認識イベントを初期化して、音声およびＤＴＭＦ入力を有する発声をユーザから得て、前記発話入力を前記第１のフィールドに、前記ＤＴＭＦ入力を前記第２のフィールドに関連付けることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２４】
前記ＶｏｉｃｅＸＭＬモジュールはフィールドを宣言し、前記ＳＡＬＴモジュールは、認識イベントを初期化して、ユーザからの認識結果を得て前記フィールドを満たし、前記フィールドを前記ユーザにレンダリングするためのプロンプトを前記マークアップページ内で実行することを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２５】
前記ＳＡＬＴモジュールは、メッセージングイベントを実行してリモートアプリケーションに接続することを特徴とする請求項１９から２４のいずれかに記載のコンピュータ可読媒体。
【請求項２６】
前記ＳＡＬＴモジュールは、結果を前記メッセージングイベントに基づいて受信し、前記結果をユーザにレンダリングすることを特徴とする請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
認識、プロンプト、およびメッセージングのうちの少なくとも１つに関連付けられたイベントを処理するためのオブジェクトを含む命令を、定義された順序で実行する逐次ダイアログを確立するステップと、
前記命令に関連付けられたオブジェクトと遭遇すると、認識、プロンプト、およびメッセージングに関連付けられたダイアログにおけるイベントのうちのすべてではないが少なくとも１つを提供するために、オブジェクト指向オペレーションを実行するステップと
を備えることを特徴とするインタラクティブなユーザインターフェースを提供するための方法。
【請求項２８】
前記オブジェクト指向オペレーションは音声認識イベントであることを特徴とする請求項２７に記載の方法。
【請求項２９】
前記オブジェクト指向オペレーションはＤＴＭＦ認識イベントであることを特徴とする請求項２７に記載の方法。
【請求項３０】
前記逐次ダイアログはＶｏｉｃｅＸＭＬモジュールにおいて実施されることを特徴とする請求項２７に記載の方法。
【請求項３１】
前記オブジェクト指向オペレーションはＳＡＬＴモジュールにおいて実施されることを特徴とする請求項２７に記載の方法。
【請求項３２】
前記逐次ダイアログを確立するステップは、第１のフィールドおよび第２のフィールドを宣言し、前記オブジェクト指向オペレーションを実行するステップは認識イベントを含み、これはユーザからの発話入力を得て、前記フィールドを前記発話入力の第１の部分により満たし、前記第２のフィールドを前記発話入力の第２の部分により満たすことを特徴とする請求項２７から３１のいずれかに記載の方法。
【請求項３３】
前記オブジェクト指向オペレーションを実行するステップはさらに、前記第１のフィールドに関連付けられた第１の文法、および、前記第２のフィールドに関連付けられた第２の文法を開始することを特徴とする請求項３２に記載の方法。
【請求項３４】
前記オブジェクト指向オペレーションは、複数の文法を有する認識イベントを初期化して、認識結果を得て、前記認識結果を前記複数の文法の少なくとも１つに関連付けることを特徴とする請求項２７から３３のいずれかに記載の方法。
【請求項３５】
前記逐次ダイアログを確立するステップは、第１のフィールドおよび第２のフィールドを宣言し、前記オブジェクト指向オペレーションを実行するステップは、認識イベントを初期化して、音声およびＤＴＭＦ入力を有する発声をユーザから得るステップを含み、前記発話入力を前記第１のフィールドに、前記ＤＴＭＦ入力を前記第２のフィールドに関連付けることを特徴とする請求項２７から３１のいずれかに記載の方法。
【請求項３６】
前記逐次ダイアログを確立するステップはフィールドを宣言し、前記オブジェクト指向オペレーションを実行するステップは、認識イベントを初期化して、ユーザからの認識結果を得て前記フィールドを満たし、前記フィールドを前記ユーザにレンダリングするためのプロンプトを実行するステップを含むことを特徴とする請求項２７から３５のいずれかに記載の方法。
【請求項３７】
前記オブジェクト指向オペレーションは、リモートアプリケーションに接続するためのメッセージングイベントであることを特徴とする請求項２７から３６のいずれかに記載の方法。
【請求項３８】
前記オブジェクト指向オペレーションは、結果を前記メッセージングイベントに基づいて受信し、前記結果をユーザにレンダリングすることを特徴とする請求項３７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は発話可能なアプリケーションのプログラミングに関する。より詳細には、本発明は、逐次音声マークアップ言語およびオブジェクト指向音声アプリケーション拡張の結合使用に関する。
【背景技術】
【０００２】
コンピュータユーザ／インターフェースの進歩により、ユーザは音声コマンドを通じてコンピュータと対話できるようになっている。ＶｏｉｃｅＸＭＬ（Ｖｏｉｃｅ  Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）の使用などを通じた音声ポータルの進歩により、音声入力を使用してインターネットコンテンツにアクセスすることが可能になっている。このアーキテクチャでは、ドキュメントサーバ（例えば、ウェブサーバ）は、ＶｏｉｃｅＸＭＬインタプリタを通じて、クライアントからのリクエストを処理する。ウェブサーバはＶｏｉｃｅＸＭＬドキュメントおよび応答を生成することができ、これらがＶｏｉｃｅＸＭＬインタプリタによって処理され、可聴的にユーザにレンダリングされる。音声認識を通じて指定の音声コマンドを使用することで、ユーザはウェブをナビゲートし、可聴的にレンダリングされたデータを聞くことができる。
【０００３】
ＶｏｉｃｅＸＭＬ開発言語は、創作者がユーザと発話アプリケーションとの間のダイアログをコントロールできるようにするために、設計されている。ＶｏｉｃｅＸＭＬは逐次的方法に従い、そこでアプリケーションは、フォームを満たすか、あるいはメニューから選択するために、ダイアログフローをコントロールし、ユーザに問い合わせる。ＶｏｉｃｅＸＭＬアプリケーションは、データをユーザへレンダリングするためあるいはフォームにデータを書き込むために、複数のステップを実行する。より詳細には、ＶｏｉｃｅＸＭＬは、ユーザとＶｏｉｃｅＸＭＬフォームまたはメニューとの間の対話を推進するフォーム解釈アルゴリズムに従う。このアルゴリズムは、値が書き込まれるか、選択が行われるか、あるいは例外に遭遇するまで、フォームまたはメニュー中をループし続ける。
【０００４】
また、発話可能なアプリケーションは、音声アプリケーション言語タグ（ＳＡＬＴ）など、マークアップ言語を拡張したものの使用を通じて開発することができる。ＳＡＬＴは、パーソナルコンピュータ、電話機、携帯情報端末、および他のコンピューティングデバイスからの情報、アプリケーションおよびウェブサービスへの、マルチモーダルでテレフォニー対応アクセスを可能にする。ＳＡＬＴは、ＨＴＭＬ、Ｘ−ＨＴＭＬおよびＸＭＬなど、既存のマークアップ言語を拡張する。ＳＡＬＴを使用したマルチモーダルアクセスにより、ユーザはアプリケーションと、例えば、キーボード、音声、マウスおよび／またはスタイラスあるいはこれらの組合せを使用する様々な異なる方法で、対話することができる。
【０００５】
ＶｏｉｃｅＸＭＬと対照的に、ＳＡＬＴは、オブジェクト指向プログラミング手法に基づいており、これにおいてアプリケーションは様々なオブジェクト、トリガおよびイベントから構成される。オブジェクト指向手法により、アプリケーション創作者はユーザとアプリケーションとの間のダイアログフローをカスタマイズすることができる。ＳＡＬＴにおいてイベントに遭遇でると、ＳＡＬＴベースのアプリケーションは様々なコマンドをイベントに基づいて実行する。このように、ユーザはダイアログフローをコントロールすることができ、より効率的および／または自然な形態のコンピュータ対話にすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＶｏｉｃｅＸＭＬの逐次的手法を利用するアプリケーションは現在、ＳＡＬＴなどの発話アプリケーションツールによって使用されるオブジェクト指向プログラミング手法によって提供される柔軟性を利用しない。結果として、ＶｏｉｃｅＸＭＬアプリケーションは、（ユーザがいくつかの異なるカテゴリからデータをリクエストすることができる）混合イニシアチブの状況、外部メッセージングおよび拡張呼び出し制御を扱う難点を有する。結果として、ＳＡＬＴのプログラミングの柔軟性をＶｏｉｃｅＸＭＬにおいて提供するシステムまたは方法は有益となるであろう。
【課題を解決するための手段】
【０００７】
本発明は、逐次命令実行アルゴリズムおよびオブジェクト指向モジュールを結合するためのシステムおよび方法を提供する。
【０００８】
本発明の一側面では、コンピュータによって実行可能なプログラムは、実行アルゴリズムに基づいて定義された順序において実行される命令を有する逐次モジュールを含む。オブジェクト指向モジュールは、命令に関連付けられたオペレーションを初期化するための一時的トリガ（temporal  trigger）を有する、オブジェクトを含む。
【０００９】
本発明の別の側面では、ＶｏｉｃｅＸＭＬモジュールはＶｏｉｃｅＸＭＬ実行可能命令を含む。ＳＡＬＴモジュールは、音声アプリケーション言語タグを含み、ＶｏｉｃｅＸＭＬモジュールに関連付けられた命令を実行する。さらなる実施形態では、ＶｏｉｃｅＸＭＬを使用して、第１および第２のＶｏｉｃｅＸＭＬフィールドを宣言することができ、ＳＡＬＴモジュールは認識イベントを初期化して、ユーザからの発話入力を得る。ＳＡＬＴモジュールは第１のＶｏｉｃｅＸＭＬフィールドを、発話入力の第１の部分により満たし、第２のＶｏｉｃｅＸＭＬフィールドを、発話入力の第２の部分により満たす。加えて、ＳＡＬＴモジュールは、発話入力を認識する多数の文法を含み、入力を、特定の文法および／またはフィールドに関連付けることができる。
【００１０】
本発明のさらなる別の側面は、インタラクティブなユーザインターフェースを提供するための方法である。この方法は、定義された順序で命令を実行する逐次ダイアログを確立する。命令は、認識、プロンプト、およびメッセージングのうち少なくとも１つに関連付けられたイベントを処理するためのオブジェクトを含む。オブジェクト指向オペレーションは、遭遇する（encountering）オブジェクトが命令に関連付けられた場合に、実行される。オペレーションは、認識、プロンプト、およびメッセージングに関連付けられたダイアログにおけるイベントのすべてではないが少なくとも１つを提供する。
【発明を実施するための最良の形態】
【００１１】
図１は、ＶｏｉｃｅＸＭＬなどの逐次言語、およびＳＡＬＴなどのオブジェクト指向発話アプリケーション開発ツールの使用を結合するためのシステム１０を例示する。システム１０は、例えばＶｏｉｃｅＸＭＬモジュールなどの逐次モジュール１２、および、例えばＳＡＬＴモジュールなどのオブジェクト指向発話アプリケーション開発ツールモジュール１４を含む。逐次モジュールは、実行アルゴリズムによって与えられる定義済み順序で実行される命令を含む。オブジェクト指向開発ツールモジュールは、様々なオペレーションを実行するプログラミングオブジェクトを含む。本明細書で使用されるとき、ＶｏｉｃｅＸＭＬはＶｏｉｃｅ  Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅを指し、これはＷ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂコンソーシアム）勧告候補である。ＶｏｉｃｅＸＭＬバージョン２．０に関する仕様の複製を、http://www.w3.org/TR/voicexml20  で見つけることができる。加えて、ＳＡＬＴは、ＳＡＬＴ  Ｆｏｒｕｍによって開発された音声アプリケーション言語タグを指す。ＳＡＬＴ１．０仕様の複製は、www.SALTforum.orgで入手可能である。ＶｏｉｃｅＸＭＬは逐次命令を、フォーム解釈アルゴリズムに基づいて実行する。
【００１２】
本発明の側面は、１つまたは複数のオブジェクト指向モジュール１４を、逐次モジュール１２の実行可能命令内に組み込むことを含む。オブジェクト指向モジュール１４は一時的トリガを含み、一時的トリガが、逐次モジュール１２の実行アルゴリズムによって取り込まれると、オペレーションを開始する。トリガは、エラー、例外、メッセージの受信、認識および／または認識なし、あるいはこれらの組合せなど、様々なイベントを含むことができる。実行されるオペレーションには、発話認識、ＤＴＭＦ認識、オーディオ収集、オーディオ再生およびその他などのオペレーションが含まれる。
【００１３】
逐次モジュール１２（例えば、ＶｏｉｃｅＸＭＬモジュール）のオペレーション下でオブジェクト指向モジュール１４（例えば、ＳＡＬＴタグ）と遭遇すると、ＳＡＬＴタグとＶｏｉｃｅＸＭＬモジュール１２との間の相互作用が定義され、ＳＡＬＴがＶｏｉｃｅＸＭＬ内で利用できるようにされる。例えば、ＳＡＬＴタグを用いて多数の文法に基づいた発話認識をトリガするとき、別々のフィールド内にユニットの各々を配置することに関係する命令は、ＳＡＬＴモジュールがＶｏｉｃｅＸＭＬモジュール内に埋め込まれることを可能にする。ＳＡＬＴのメッセージング機能を利用する場合、メッセージング命令がフォーム解釈アルゴリズムのループに埋め込まれる。オブジェクト指向モジュール１４を逐次モジュール１２内に埋め込むことによって、結果として生じるアプリケーションの機能性および柔軟性を、ＶｏｉｃｅＸＭＬなどの逐次言語を単に用いて使用可能とするものを超えて、拡張することができる。
【００１４】
インタラクティブユーザインターフェースを提供するための方法は、システム１０で実施することができる本発明の別の側面である。逐次モジュール１２は、例えばＶｏｉｃｅＸＭＬフォームまたはメニューにわたって、定義された順序で命令を実行するユーザとの逐次ダイアログを確立することができる。命令は、認識、プロンプトおよび／またはメッセージングに関連付けられたダイアログイベントを処理する。認識、プロンプトまたはメッセージングうちのすべてではないが少なくとも１つに関するダイアログ内で遭遇するとき、オブジェクト指向モジュール１４は、（例えば、ＳＡＬＴタグを実行することによって）オブジェクト指向オペレーションを実行する。一実施形態では、逐次ダイアログは、命令を実行するＶｏｉｃｅＸＭＬ、およびオブジェクト指向オペレーションを実行するＳＡＬＴタグを含む。
【００１５】
発話アプリケーションを開発するためのシステムの幅広い説明をする前に、上述のシステム１０内で機能することができるコンピューティングデバイスを全体的に説明することは有用である可能性がある。当業者には理解されるように、システム１０の構成要素を単一のコンピュータ内に位置付けること、あるいは、ネットワーク接続およびプロトコルを使用する分散コンピューティング環境に渡って分散させることができる。
【００１６】
図２を参照すると、（ＰＩＭ、ＰＤＡなど）データ管理デバイスのようなモバイルデバイスの例示的形態が３０で例示される。しかし、本発明はまた、後述の他のコンピューティングデバイスを使用して実施することもできることが企図されている。例えば、電話機および／またはデータ管理デバイスもまた、本発明から利益を得るようになる。このようなデバイスは、既存のポータブル個人情報管理デバイスおよび他のポータブル電子デバイスに比較して、向上された有用性を有するようになる。
【００１７】
データ管理モバイルデバイス３０の例示的形態を図２に例示する。モバイルデバイス３０はハウジング３２を含み、接触検知表示画面をスタイラス３３と共に使用するディスプレイ３４を含むユーザインターフェースを有しする。スタイラス３３を用いてディスプレイ３４の指定された座標を押すかあるいは接触して、フィールドを選択し、カーソルの開始位置を選択的に移動し、あるいはジェスチャーまたは手書きなどを通じてコマンド情報を供給する。あるいはこれに加えて、１つまたは複数のナビゲーション用のボタン３５をデバイス３０上に含めることができる。加えて、回転ホイール、ローラーなど、他の入力メカニズムを含むこともできる。しかし、本発明は、これらの形態の入力メカニズムに限定されるように意図されていないことに留意されたい。例えば、別の形態の入力には、コンピュータビジョンなどを通じたビジュアル入力が含まれる可能性がある。
【００１８】
図３を参照すると、ブロック図は、モバイルデバイス３０を構成する機能的構成要素を例示する。中央処理ユニット（ＣＰＵ）５０は、ソフトウェアコントロール機能を実施する。ＣＰＵ５０はディスプレイ３４に結合されて、制御ソフトウェアに従って生成されたテキストおよびグラフィックアイコンがディスプレイ３４上に現れるようにされる。スピーカ４３をＣＰＵ５０に結合し、通常はデジタル−アナログコンバータ５９を伴って可聴出力を提供することができる。ユーザによってモバイルデバイス３０にダウンロードまたは入力されるデータは、ＣＰＵ５０に双方向に結合された不揮発性読み取り／書き込みランダムアクセスメモリストア５４に格納される。ランダムアクセスメモリ（ＲＡＭ）５４は、ＣＰＵ５０によって実行される命令のための揮発性ストレージ、および、レジスタ値など、一時データのためのストレージを提供する。設定オプションのためのデフォルト値および他の変数は、読み取り専用メモリ（ＲＯＭ）５８に格納される。また、ＲＯＭ５８は、モバイルデバイス３０の基本機能性および他のオペレーティングシステムカーネル機能（例えば、ソフトウェアコンポーネントをＲＡＭ５４にロードすること）を制御する、デバイスのためのオペレーティングシステムソフトウェアを格納するために使用することもできる。
【００１９】
また、ＲＡＭ５４は、アプリケーションプログラムを格納するために使用されるＰＣ上のハードドライブの機能に類似の方法で、コードのためのストレージとしての機能も果たす。不揮発性メモリはコードを格納するために使用されるが、別法としてこれを、コードの実行のために使用されない揮発性メモリに格納することができることに留意されたい。
【００２０】
モバイルデバイスは、ＣＰＵ５０に結合される無線トランシーバ５２を通じて無線信号を送信／受信することができる。また、コンピュータ（例えば、デスクトップコンピュータ）あるいは望むなら有線ネットワークから、データを直接ダウンロードするためにオプショナルの通信インターフェース６０を備えることもできる。したがって、インターフェース６０は、例えば、赤外線リンク、モデム、ネットワークカードなど、様々な形態の通信デバイスを含むことができる。
【００２１】
モバイルデバイス３０は、マイクロフォン２９およびアナログ−デジタル（Ａ／Ｄ）コンバータ３７、および、ストア５４に格納された任意選択の（音声、ＤＴＭＦ、手書き、ジェスチャー、またはコンピュータビジョン）認識プログラムを含む。例として、デバイス３０のユーザからの可聴情報、命令またはコマンドに応答して、マイクロフォン２９はＡ／Ｄコンバータ３７によってデジタル化される発話信号を供給する。音声認識プログラムは、デジタル化音声信号について正規化および／または特徴抽出機能を実行して、中間音声認識結果を得ることができる。無線トランシーバ５２または通信インターフェース６０を使用して、発話データを、後述する図６のアーキテクチャ内に示されたリモート認識サーバ２０４に送信することができる。次いで、認識結果は、モバイルデバイス３０上で（例えば、可視的および／または可聴的）レンダリングし、最終的にウェブサーバ２０２（図６）に送信するためにモバイルデバイス２０へ返され、ウェブサーバ２０２とモバイルデバイス３０とはクライアント／サーバ関係で動作する。類似の処理を、他の形態の入力のために使用することができる。例えば、手書き入力をデバイス３０上で前処理の有無にかかわらずデジタル化することができる。音声データのように、この形態の入力を認識サーバ２０４へ認識のために送信することができ、認識結果はデバイス３０および／またはウェブサーバ２０２のうち少なくとも１つに返される。同様に、ＤＴＭＦデータ、ジェスチャーデータおよびビジュアルデータを類似の方法で処理することができる。入力の形態に応じて、デバイス３０（および、後述の他の形態のクライアント）には、ビジュアル入力のためのカメラなど、必要なハードウェアが含まれるようになる。
【００２２】
図４は、携帯電話機８０の例示的実施形態の平面図である。電話機８０は、ディスプレイ８２およびキーパッド８４を含む。一般に、図３のブロック図は図４の電話機に適用することができるが、他の機能を実行するために必要な追加の回路が必要とされる可能性がある。例えば、電話機として動作するために必要なトランシーバが図３の実施形態では必要となるが、このような回路は本発明には関連がない。
【００２３】
上述のポータブル電子デバイスまたはモバイルデバイスに加えて、汎用デスクトップコンピュータなど、多数の他のコンピューティングデバイスにより、本発明を使用できることも理解されたい。例えば、本発明により、身体的能力が制限されたユーザが、英数字フルキーボードなどの他の従来の入力デバイスを操作することが困難である場合に、テキストをコンピュータまたは他のコンピューティングデバイスに入力または記入することができるようになる。
【００２４】
本発明はまた、多数の他の汎用または専用コンピューティングシステム、環境または構成によっても動作可能である。本発明と共に使用することができる適切な周知のコンピューティングシステム、環境および／または構成の実施例には、それだけに限定されないが、（いかなる画面もない）通常の電話機、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルなコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００２５】
以下は、図５に例示する汎用コンピュータ１２０の簡単な説明である。しかし、コンピュータ１２０は、適切なコンピューティング環境のただ１つの実施例でしかなく、本発明の使用または機能性の範囲についてのいかなる限定をも示唆するように意図されていない。コンピュータ１２０は、本明細書に例示する構成要素のいずれか１つまたは組合せに関係するいかなる依存性または必要性を有すると解釈されるべきではない。
【００２６】
本発明を一般に、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令に関連して説明することができる。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実施する。また、本発明を分散コンピューティング環境において実施することもでき、この環境ではタスクが、通信ネットワークを通じてリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールが、メモリストレージデバイスを含む、ローカルおよびリモートのコンピュータストレージ媒体内に位置することができる。プログラムおよびモジュールによって実行されるタスクを、以下で、図面を用いて説明する。当業者は本明細書および図面の内容を、任意の形態のコンピュータ可読媒体上に記録することができるプロセッサ実行可能命令として実施することができる。
【００２７】
図５を参照すると、コンピュータ１２０の構成要素には、それだけに限定されないが、処理ユニット１４０、システムメモリ１５０、および、システムメモリを含む様々なシステム構成要素を処理ユニット１４０に結合するシステムバス１４１が含まれる可能性がある。システムバス１４１をいくつかのタイプのバス構造のいずれかにすることができ、これには、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスが含まれる。限定ではなく、例として、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、ユニバーサルシリアルバス（ＵＳＢ）、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、および、メザニンバスとしても知られるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスが含まれる。コンピュータ１２０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１２０によってアクセスすることができる任意の使用可能な媒体とすることができ、これには、揮発性および不揮発性の媒体、リムーバブルおよび非リムーバブルの媒体が含まれる。限定ではなく、例として、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を含むことができる。コンピュータストレージ媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体を含み、これらはコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報の格納のためのいずれかの方法または技術で実現される。コンピュータストレージ媒体には、それだけに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を格納するために使用することができ、コンピュータ１２０によってアクセスすることができる他の任意の媒体が含まれる。
【００２８】
通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを搬送波または他の伝送メカニズムなどの変調データ信号中に具現化する任意の情報配信媒体を含む。「変調データ信号」という用語は、信号における情報を符号化するような方法でその特性の１つまたは複数が設定または変更されている信号を意味する。限定ではなく、例として、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに、音響、ＦＲ、赤外線および他の無線媒体などの無線媒体が含まれる。上記の任意の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００２９】
システムメモリ１５０は、揮発性および／または不揮発性メモリの形態におけるコンピュータストレージ媒体を含み、これは読み取り専用メモリ（ＲＯＭ）１５１およびランダムアクセスメモリ（ＲＡＭ）１５２などである。基本入出力システム１５３（ＢＩＯＳ）は、起動中など、コンピュータ１２０内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、通常はＲＯＭ１５１に格納される。ＲＡＭ１５２は通常、処理ユニット１４０によって即時アクセス可能および／または現在操作中であるデータおよび／またはプログラムモジュールを含む。限定ではなく、例として、図５は、オペレーティングシステム１５４、アプリケーションプログラム１５５、他のプログラムモジュール１５６およびプログラムデータ１５７を例示する。
【００３０】
また、コンピュータシステム１２０は、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータストレージ媒体も含むことができる。例としてのみ、図５は、非リムーバブル、不揮発性の磁気媒体に対する読み書きを行うハードディスクドライブ１６１、リムーバブル、不揮発性磁気ディスク１７２に対する読み書きを行う磁気ディスクドライブ１７１、および、ＣＤ  ＲＯＭまたは他の光媒体など、リムーバブル、不揮発性の光ディスク１７６に対する読み書きを行う光ディスクドライブ１７５を例示する。例示的オペレーティング環境で使用することができる他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータストレージ媒体には、それだけに限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１６１は通常システムバス１４１に、インターフェース１６０などの非リムーバブルメモリインターフェースを通じて接続され、磁気ディスクドライブ１７１および光ディスクドライブ１７５は通常システムバス１４１に、インターフェース１７０などのリムーバブルメモリインターフェースによって接続される。
【００３１】
上述し、図５に例示したドライブおよびそれらの関連付けられたコンピュータストレージ媒体は、コンピュータ１２０用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータのストレージを提供する。図５では、例えば、ハードディスクドライブ１６１が、オペレーティングシステム１６４、アプリケーションプログラム１６５、他のプログラムモジュール１６６およびプログラムデータ１６７を格納するものとして例示される。これらの構成要素を、オペレーティングシステム１５４、アプリケーションプログラム１５５、他のプログラムモジュール１５６およびプログラムデータ１５７と同じものあるいは異なるものにすることができることに留意されたい。オペレーティングシステム１６４、アプリケーションプログラム１６５、他のプログラムモジュール１６６およびプログラムデータ１６７にはここで異なる番号が付してあり、最低限それらが異なる複製であることが例示されている。
【００３２】
ユーザは、キーボード１８２、マイクロフォン１８３、および、マウス、トラックボールまたはタッチパッドなど、ポインティングデバイス１８１などの入力デバイスを通じて、コマンドおよび情報をコンピュータ１２０へ入力することができる。他の入力デバイス（図示せず）には、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナなどを含むことができる。これらおよび他の入力デバイスは、しばしばシステムバスに結合されるユーザ入力インターフェース１８０を通じて処理ユニット１４０へ接続されるが、これを、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェースおよびバス構造によって接続することも可能である。モニタ１８４または他のタイプの表示デバイスもまたシステムバス１４１へ、ビデオインターフェース１８５などのインターフェースを介して接続される。モニタに加えて、コンピュータはまた、スピーカ１８７およびプリンタ１８６など、出力周辺インターフェース１８８を通じて接続することができる他の周辺出力デバイスを含むこともできる。
【００３３】
コンピュータ１２０はネットワーク環境において、リモートコンピュータ１９４など、１つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ１９４は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルーター、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードにすることができ、通常は、コンピュータ１２０に関連して上述した要素の多数またはすべてを含む。図５に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１９１およびワイドエリアネットワーク（ＷＡＮ）１９３を含むが、他のネットワークも含むことができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【００３４】
ＬＡＮネットワーキング環境において使用するとき、コンピュータ１２０がＬＡＮ１９１へ、ネットワークインターフェースまたはアダプタ１９０を通じて接続される。ＷＡＮネットワーキング環境において使用するとき、コンピュータ１２０は通常、モデム１９２、またはインターネットなどのＷＡＮ１９３を介して通信を確立するための他の手段を含む。モデム１９２を内部または外部にすることができ、システムバス１４１へ、ユーザ入力インターフェース１８０または他の適切なメカニズムを介して接続することができる。ネットワーク環境では、コンピュータ１２０に関連して示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに格納することができる。例として、限定ではなく、図５はリモートアプリケーションプログラム１９５をリモートコンピュータ１９４上に存在するものとして例示する。図示のネットワーク接続は例示的であり、複数のコンピュータの間で通信リンクを確立する他の手段を使用できることは理解されよう。
【００３５】
図６は、本発明のための１つの例示的環境であるウェブベースの認識（recognition）およびデータレンダリングのためのアーキテクチャ２００を例示す。一般に、ウェブサーバ２０２に格納された情報に、モバイルデバイス３０またはコンピュータ１２０（本明細書では、入力の形態に基づいて必要とされる、表示画面、マイクロフォン、カメラ、接触関知パネルなどを有する、他の形態のコンピューティングデバイスを表す）などのクライアント１００を通じて、あるいは、押し下げられたキーに応答して可聴的に生成されたトーンにより情報がリクエストされる電話機８０を通じてアクセスすることができ、ウェブサーバ２０２からの情報は可聴的にのみユーザに戻すように提供される。
【００３６】
この実施形態では、アーキテクチャ２００は、発話認識を用いて取得される情報が、クライアント１００を通じて得られるか、あるいは電話機８０を通じて得られるかにかかわらず、統合されており、単一の音声認識サーバ２０４がいずれのモードのオペレーションもサポートすることができる。加えて、アーキテクチャ２００は、周知のマークアップ言語（例えば、ＨＴＭＬ、ＸＨＴＭＬ、ｃＨＴＭＬ、ＸＭＬ、ＷＭＬなど）の拡張を使用して動作する。したがって、ウェブサーバ２０２上に格納された情報に、これらのマークアップ言語に備えられた周知のＧＵＩ方式を使用してアクセスすることができる。周知のマークアップ言語の拡張を使用することによって、ウェブサーバ２０２上のオーサリングがより容易となり、現存するレガシーアプリケーションを修正して、発話認識を含めることも容易にできる。
【００３７】
一般に、クライアント１００は、ブラウザを使用してウェブサーバ２０２によって提供されたＨＴＭＬページ、スクリプトなど（全体的に２０６で示す）を実行する。発話認識が必要とされるとき、発話データが、クライアント１００によって提供される音声認識中に使用するための文法または言語モデル２２０の指示と共に、認識サーバ２０４へ提供される。例えば、は、上述のようにオーディオ信号がクライアント１００によって前処理されている、デジタル化されたオーディオ信号または発話特性とすることができる。あるいは、発話サーバ２０４は言語モデル２２０を含むことができる。認識サーバ２０４の実施形態は、多数の形態を取ることができ、その１つを例示するが、一般にレコグナイザー２１１を含む。認識の結果は、必要に応じてあるいは適切である場合、ローカルのレンダリングのためにクライアント１００へ戻すように提供される。必要に応じて、テキスト−音声モジュール２２２を使用して、発話テキストをクライアント１００に提供することができる。認識、および（使用されている場合）いずれかのグラフィカルユーザインターフェースを通じて情報を編集（compilation）した後に、クライアント１００はこの情報をウェブサーバ２０２へ、さらなる処理、および、必要な場合はさらなるＨＴＭＬページ／スクリプトの受信のために送信する。
【００３８】
図６に例示したように、クライアント１００、ウェブサーバ２０２および認識サーバ２０４は、ネットワーク２０５、ここではインターネットなどのワイドエリアネットワークを通じて、一般的に接続され、別々にアドレス可能である。したがって、これらのデバイスのいずれかを物理的に互いに隣接して位置付けることは必要ではない。特に、ウェブサーバ２０２が認識サーバ２０４を含むことは必要ではない。このように、ウェブサーバ２０２でのオーサリングの焦点をアプリケーションに合わせることができ、創作者が認識サーバ２０４の複雑さを知る必要なしに、このオーサリングが意図される。むしろ、認識サーバ２０４は独立して設計され、ネットワーク２０５に接続されていて、それにより、ウェブサーバ２０２でさらなる変更を必要とされることなく、更新および改良することができる。ウェブサーバ２０２はまた、動的にクライアント側のマークアップおよびスクリプトを生成することができるオーサリングメカニズムも含むことができる。さらなる実施形態では、ウェブサーバ２０２、認識サーバ２０４およびクライアント１００を、マシンを実施する能力に応じて結合することができる。例えば、クライアント１００が例えばパーソナルコンピュータを含む汎用コンピュータの場合、クライアントは認識サーバ２０４を含むことができる。同様に、必要に応じて、ウェブサーバ２０２および認識サーバ２０４を単一のマシンに組み込むことができる。
【００３９】
電話機８０を通じたウェブサーバ２０２へのアクセスは、電話機８０を有線または無線電話網２０８に接続することを含み、電話網２０８は電話機８０をサードパーティのゲートウェイ２１０に接続する。ゲートウェイ２１０は、電話機８０をテレフォニーボイスブラウザ２１２に接続する。テレフォニーボイスブラウザ２１２は、テレフォニーインターフェースを提供するメディアサーバ２１４およびボイスブラウザ２１６を含む。クライアント１００のように、テレフォニーボイスブラウザ２１２はＨＴＭＬページ／スクリプトなどをウェブサーバ２０２から受信する。一実施形態では、ＨＴＭＬページ／スクリプトは、クライアント１００に提供されたＨＴＭＬページ／スクリプトに類似の形態のものである。この形態では、ウェブサーバ２０２はクライアント１００および電話機８０を別々にサポートする必要はなく、あるいはさらに、標準ＧＵＩクライアントを別々にサポートする必要もない。むしろ、一般的なマークアップ言語を使用することができる。加えて、クライアント１００の場合と同様に、電話機８０によって送信された可聴信号についての音声認識は、ボイスブラウザ２１６から認識サーバ２０４へ、ネットワーク２０５を通じてまたは専用回線２０７を通じて、例えばＴＣＰ／ＩＰを使用して提供される。ウェブサーバ２０２、認識サーバ２０４および電話ボイスブラウザ２１２は図５に例示した汎用デスクトップコンピュータなど、任意の適切なコンピューティング環境において実施されることができる。
【００４０】
ＶｏｉｃｅＸＭＬ内に組み込まれた発話アプリケーション開発ツールを利用することによって、ＶｏｉｃｅＸＭＬマークアップページの機能が拡張される。ＶｏｉｃｅＸＭＬのフォーム解釈アルゴリズムはインタラクティブ音声応答アプリケーション用に設計されるが、他のツールをＶｏｉｃｅＸＭＬ内で利用することにより、よりユーザフレンドリで堅調なアプリケーションが提供される。発話アプリケーション開発ツールをＶｏｉｃｅＸＭＬに組み込むために、ＶｏｉｃｅＸＭＬ命令と開発ツール命令との間の相互作用が提供される。
【００４１】
図７は、本発明の一実施形態による方法３００を例示する。この方法はステップ３０２で開始し、ＶｏｉｃｅＸＭＬ逐次アルゴリズムが初期化される。例えば、このアルゴリズムを、＜ｆｏｒｍ＞タグまたは＜ｍｅｎｕ＞タグをそれぞれ使用することによって、ＶｏｉｃｅＸＭＬマークアップページにおけるフォームまたはメニューの宣言において初期化することができる。このアルゴリズムが初期化された後、ＶｏｉｃｅＸＭＬページ内のステップは、ある条件が満たされるまで継続的にループする。ステップ３０２の後、この方法はステップ３０４に進み、複数の関連文法を有するＳＡＬＴ認識イベントが初期化される。ＳＡＬＴ認識イベントを、ｌｉｓｔｅｎタグを使用することによってトリガすることができる。複数の文法により、多数の文法タグが使用されて、各文法の使用が開始される。例えば、ユーザに住所について問い合わせるアプリケーションにおいて、ある文法を使用して都市を認識することができ、別の文法を使用して州を認識することができる。あるいは、ある文法はカテゴリを認識することができ、さらなる文法は、それらのカテゴリに関連付けられたサブカテゴリを認識することができる。
【００４２】
音声および／またはＤＴＭＦ入力の発声がユーザによって与えられた後、この方法はステップ３０６に進み、そこで認識結果が、複数の文法のうち少なくとも１つに関連付けられる。例えば、いくつかのカテゴリ（すなわち、スポーツ、天気、株価情報、映画、交通）およびいくつかのサブカテゴリ（すなわち、スポーツカテゴリでは、バスケットボール、野球、サッカー、ホッケー）を認識するｗｅｌｃｏｍｅページを有することにより、認識され、特定の文法に関連付けられるカテゴリの１つまたはサブカテゴリの１つをユーザが入力することができる。特定の文法に関連付けられた後、ユーザからの入力を音声アプリケーションによって分析および使用することができる。例えば、ユーザが「ホッケー」と発声する場合、その日のホッケーイベントからのスコアおよびハイライトをユーザにレンダリングすることができる。
【００４３】
ＶｏｉｃｅＸＭＬは、認識中に単一の文法のみを可能にする。したがって、ユーザは多数のカテゴリおよびサブカテゴリ中をナビゲートして、関連情報を得なければならず、あるいは比較的大きい文法を使用しなければならない。ＶｏｉｃｅＸＭＬ命令内に埋め込まれたＳＡＬＴ＜ｌｉｓｔｅｎ＞タグを使用することによって、発話入力を、例えば＜ｂｉｎｄ＞要素を使用することによって、特定の文法に関連付けることができ、かつ／または、特定のフィールドに関連付けることができる。
【００４４】
図８は、認識結果３２０および複数の文法３２１から３２４のブロック図を例示する。方法３００を使用するとき、認識結果３２０を各文法３２１〜３２４、および／または、各文法３２１乃至３２４内の特定の選択肢または見出し（heading）に関連付けることができる。
【００４５】
図９は、本発明の別の実施形態による方法３４０を例示する。ステップ３４２で、第１のＶｏｉｃｅＸＭＬフィールドおよび第２のＶｏｉｃｅＸＭＬフィールドが宣言される。ＶｏｉｃｅＸＭＬフィールドを宣言するとき、フォーム解釈アルゴリズムが初期化され、フォーム内のＶｏｉｃｅＸＭＬ実行可能命令中を、第１および第２のＶｏｉｃｅＸＭＬフィールドが満たされるまでループし続ける。フィールドが宣言された後、ステップ３４４で、ユーザから発話入力を得るためのＳＡＬＴ認識イベントが初期化される。認識イベントを、例えば、１つまたは複数の文法要素を含むｌｉｓｔｅｎタグを使用することによって、トリガすることができる。ユーザからの発話入力は、単一の発声からの多数の部分を含むことができる。ステップ３４６で、第１のＶｏｉｃｅＸＭＬフィールドは発話入力の第１の部分により満たされ、第２のＶｏｉｃｅＸＭＬフィールドは発話入力の第２の部分により満たされる。例えば、ユーザはフライト情報についての出発都市および到着都市を入力することを望む可能性があり、あるいはレストラン情報についての料理のタイプおよび場所を入力する可能性がある。
【００４６】
図１０は、フィールドおよび発話入力のブロック図を例示する。フィールド３５０およびフィールド３５２はＶｏｉｃｅＸＭＬモジュールによって宣言され、認識結果３６０は、ユーザからの発話入力に基づいて認識される。結果３６０は、第１の部分３６２および第２の部分３６４を含む。結果３６０を使用して、第１の部分３６２がフィールド３５０へ満たされ、第２の部分３６４がフィールド３５２へ満たされる。結果として、作成者は、音声アプリケーションを、ユーザからの多数の入力を認識してこれらを適切なフィールドへ、認識結果に基づいて配置するように、プログラムすることができる。
【００４７】
図１１は、本発明の一実施形態による別の方法３８０を例示する。方法３８０はステップ３８２で開始し、ＶｏｉｃｅＸＭＬ実行可能命令を有するマークアップページが確立される。ステップ３８４で、第１のフィールドおよび第２のフィールドが宣言される。第１のフィールドおよび第２のフィールドが宣言された後、音声およびＤＴＭＦ入力の発声がユーザから受信される。例えば、ユーザは「［ＤＴＭＦ入力］の金額のドルを自分の当座預金口座から自分の普通預金口座に振り替えてください」と発声することができる。この場合、振り替えられる金額を口頭で言うのではなく、ユーザはキーパッドを使用してこの金額を入力した。ステップ３８８で、発話入力がＳＡＬＴを使用して認識され、次いで第１のフィールドに関連付けられ、ＤＴＭＦ入力がＳＡＬＴを使用して認識され、次いで第２のフィールドに関連付けられる。例えば、ＤＴＭＦ入力として入力された金額を金額フィールドに入れることができ、発話入力を、当座から普通への振替に関連付けることができる。
【００４８】
図１２は、本発明の一実施形態による別の方法４００を例示する。方法４００を使用して、フォームをリモートサーバに送信（submit）する必要なく、あるいはさらにマークアップページにアクセスする必要なく、ランタイム変数を使用してデータをユーザにレンダリングすることができる。ステップ４０２で、ＶｏｉｃｅＸＭＬ実行可能命令を有するマークアップページが確立される。ステップ４０４で、音声認識結果がユーザの発話入力から得られる。ステップ４０６で、少なくとも一部の結果がフィールドに入れられる。結果がフィールドに入れられた後、この方法はステップ４０８へ進み、マークアップページが利用されてフィールドがユーザにレンダリングされる。例えば、ステップ４０８を使用して、ユーザによって入力された１つまたは複数のフィールドを確認することができる。さらに、フィールドを、ユーザに再生されるプロンプトの一部として使用することができる。ＳＡＬＴ＜ｐｒｏｍｐｔ＞タグを使用する場合、リモートサーバへのラウンドトリップなしで、ランタイム変数をレンダリングすることができる。この状況では、クライアントのコンピューティング能力が利用され、リモートサーバに接続する必要はない。
【００４９】
図１３は、本発明の別の実施形態による方法４２０を例示する。この方法はステップ４２２で開始し、ＶｏｉｃｅＸＭＬ実行可能命令を有するマークアップページが確立される。次に、ステップ４２４で、発話入力がユーザから得られる。ステップ４２６で、発話入力を使用して、ウェブサーバへの接続が行われ、メッセージングイベントが実行される。例えば、ウェブサーバは、ユーザがレンダリングされることを望む値を含むことができる。ステップ４２８で、メッセージングイベントから受信された情報に基づく結果がユーザにレンダリングされる。
【００５０】
図１４は、入力された都市に基づいて、ユーザへ郵便番号をレンダリングするマークアップページを例示する。マークアップページ４５０は、ＶｏｉｃｅＸＭＬ実行可能命令および後述するＳＡＬＴタグを含む。見出し４５２は、ＶｏｉｃｅＸＭＬおよびＳＡＬＴを参照するスキーマを含み、さらに「ｖ：」をＶｏｉｃｅＸＭＬタグのデリミタとして、「ｓ：」をＳＡＬＴタグのデリミタとして確立する。命令４５４はＶｏｉｃｅＸＭＬ内のフォームを宣言し、フォーム解釈アルゴリズムの実行を開始する。したがって、フォーム解釈アルゴリズムは、フォーム内の命令（＜ｖ：ｆｏｒｍ＞タグと＜／ｖ：ｆｏｒｍ＞タグとの間の命令を含む）を、フォーム内の値が満たされるまで実行するようになる。命令４５６は、変数「ａｎｓｗｅｒ」を宣言し、ヌル値をこの変数に割り当てる。次いで、フォーム解釈アルゴリズムは、ユーザに都市および州を入力するようにプロンプトして郵便番号を発見できるようにするために、ステップを通じて進む。
【００５１】
命令４５８は、フィールド名「ｃｉｔｙ」を宣言する。ＶｏｉｃｅＸＭＬでは、フィールドについてのデフォルトハンドラは認識イベントにおいてフィールドを満たすようになる。ｐｒｏｍｐｔタグ４６０（ＳＡＬＴまたはＶｏｉｃｅＸＭＬにすることができる）はユーザに、郵便番号について探索するための都市を言うようにプロンプトする。ＳＡＬＴのｌｉｓｔｅｎタグ４６２は、関連文法４６４を有する認識イベントをトリガし、これは都市名を認識する。別の関連文法４６５は、ユーザが発声中に州名を入力することを望む場合、州名を認識する。ユーザが、都市として認識される発話入力を入力する場合、認識イベントは「都市」フィールドを満たす。ユーザが、州として認識される発話入力を入力する場合、認識イベントは「州」フィールドを満たす。
【００５２】
フォーム解釈アルゴリズムは、都市フィールドが満たされている場合、命令４６６に進む。命令４６６は「州」という名前のフィールドを宣言し、このフィールドは州文法に関連付けられる認識イベントにおいて満たされる、このイベントはｌｉｓｔｅｎタグ４６２によって初期化された認識イベント中に発生する。プロンプト４６８はユーザに州を言うようにプロンプトし、ｌｉｓｔｅｎタグ４７０は、関連文法４７２および４７４を有する認識イベントを初期化する。文法４７２は都市を認識し、文法４７４は州を認識する。文法４７２により、ユーザは、認識される異なる都市を選択し、都市フィールドを満たすことができる。あるいは、ユーザは、州文法４７４に関連付けられ、州フィールドに入れられる州を入力することができる。
【００５３】
命令４７６は条件付き命令であり、これは、実際に変数「ｃｉｔｙ」および「ｓｔａｔｅ」が満たされている場合、＜ｖ：ｆｉｌｌｅｄ＞および＜／ｖ：ｆｉｌｌｅｄ＞タグの間の命令を実行するようになる。ＳＡＬＴメッセージングタグ４７４はメッセージングイベントを初期化し、これは郵便番号を、ユーザによって入力された都市に基づいて戻す。タグ４７４は、外部コンポーネントと通信する「ｓｍｅｘ」オブジェクトを使用した。ＳＡＬＴパラメータタグ４８０はリモートサーバを識別し、これが、郵便番号を都市に基づいて検索するためにアクセスされるようになる。パラメータタグ４８１は都市および州フィールドをリモートサーバに送信する。ＳＡＬＴのｂｉｎｄタグ４８２は、リモートサーバから受信された郵便番号を、命令４５６により宣言された変数ａｎｓｗｅｒにバインドする。ＳＡＬＴのｐｒｏｍｐｔタグ４８４は、ユーザによって入力された都市およびメッセージングイベントから決定された回答を含む出力を提供する。
【００５４】
本発明を特定の実施形態を参照して説明したが、本発明の要旨および範囲から逸脱することなく形態および詳細において変更を行うことができることは、当業者には理解されよう。
【図面の簡単な説明】
【００５５】
【図１】逐次モジュールおよびオブジェクト指向モジュールを利用するシステムのブロック図である。
【図２】コンピューティングデバイス動作状況の平面図である。
【図３】図２のコンピューティングデバイスのブロック図である。
【図４】電話機の平面図である。
【図５】汎用コンピュータのブロック図である。
【図６】クライアント／サーバシステムのためのアーキテクチャのブロック図である。
【図７】本発明の一実施形態による方法のブロック図である。
【図８】認識結果および複数の文法のブロック図である。
【図９】本発明の一実施形態による方法のブロック図である。
【図１０】認識結果および複数のフィールドのブロック図である。
【図１１】本発明の一実施形態による方法のブロック図である。
【図１２】本発明の一実施形態による方法のブロック図である。
【図１３】本発明の一実施形態による方法のブロック図である。
【図１４】本発明の一実施形態による例示的マークアップページの図である。
【符号の説明】
【００５６】
１２  逐次モジュール（例えば、ＶｏｉｃｅＸＭＬ）
１４  オブジェクト指向ツールモジュール（例えば、ＳＡＬＴ）
２９  マイクロフォン
３０  モバイルデバイス
３２  ハウジング
３３  スタイラス
３４  表示画面
３５  ボタン
３６，８４  キーパッド
３７  Ａ／Ｄ
４３  スピーカ
５０  ＣＰＵ
５２  無線トランシーバ
５４  ＲＡＭメモリ
５８  ＲＯＭ
５９  Ｄ／Ａ
６０  通信インターフェース
８０  電話機、携帯電話機
８２  ディスプレイ
１２０  汎用コンピュータ
１６１  ハードディスクドライブ
１７１  磁気ディスクドライブ
１７２  磁気ディスク
１７５  光ディスクドライブ
１７６  光ディスク
２０７  専用回線
【図１】
2005025760.tif 000003
【図２】
2005025760.tif 000004
【図３】
2005025760.tif 000005
【図４】
2005025760.tif 000006
【図５】
2005025760.tif 000007
【図６】
2005025760.tif 000008
【図７】
2005025760.tif 000009
【図８】
2005025760.tif 000010
【図９】
2005025760.tif 000011
【図１０】
2005025760.tif 000012
【図１１】
2005025760.tif 000013
【図１２】
2005025760.tif 000014
【図１３】
2005025760.tif 000015
【図１４】
2005025760.tif 000016