JP4467226B2 - ウェブ対応音声認識用サーバの方法および記録媒体 - Google Patents

ウェブ対応音声認識用サーバの方法および記録媒体 Download PDF

Info

Publication number
JP4467226B2
JP4467226B2 JP2002132052A JP2002132052A JP4467226B2 JP 4467226 B2 JP4467226 B2 JP 4467226B2 JP 2002132052 A JP2002132052 A JP 2002132052A JP 2002132052 A JP2002132052 A JP 2002132052A JP 4467226 B2 JP4467226 B2 JP 4467226B2
Authority
JP
Japan
Prior art keywords
recognition
computer
grammar
voice
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002132052A
Other languages
English (en)
Other versions
JP2003044093A5 (ja
JP2003044093A (ja
Inventor
クァンサン ウァン
シャオ−ウェン ホン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/960,229 external-priority patent/US7409349B2/en
Priority claimed from US10/117,141 external-priority patent/US7610547B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003044093A publication Critical patent/JP2003044093A/ja
Publication of JP2003044093A5 publication Critical patent/JP2003044093A5/ja
Application granted granted Critical
Publication of JP4467226B2 publication Critical patent/JP4467226B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/24Speech recognition using non-acoustical features
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72445User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/74Details of telephonic subscriber devices with voice recognition means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • H04M3/4936Speech interaction details

Description

【0001】
【発明の属する技術分野】
本発明は、インターネットなどのワイドエリアネットワークを介した情報のアクセスに関する。より詳細には、本発明は、各種の方法を使用してクライアント側で情報およびコントロールを入力することを可能にするウェブ対応認識に関する。
【0002】
【従来の技術】
人々が、個人情報マネジャ(PIM)、デバイス、および携帯電話のような小型のコンピューティングデバイスを日常活動で使用する頻度は増す一方である。現在では、こうしたデバイスを作動させるのに使用されるマイクロプロセッサに利用できる処理能力が増大したことにより、これらデバイスの機能性が高まっており、場合によっては機能を一体化している。例えば現在、携帯電話の多くは、アドレス、電話番号などの個人情報の記憶に使用できるだけでなく、インターネットのアクセスおよびブラウズにも使用することができる。
【0003】
こうしたコンピューティングデバイスをインターネットブラウズに使用し、あるいは他のサーバ/クライアントアーキテクチャで使用することから、情報をコンピューティングデバイスに入力することが必要となる。不都合なのは、携行を容易にするためにこうしたデバイスを可能な限り小さくしたいという要求があり、利用可能なコンピューティングデバイス筐体の表面面積が限られているために、アルファベットの全文字を個別のボタンとして備える従来型のキーボードが通例は不可能であることである。
【0004】
最近、VoiceXML(音声拡張可能マークアップ言語)の使用によるなどの音声ポータルが進歩し、電話だけを使用してインターネットコンテンツにアクセスすることが可能になっている。このアーキテクチャでは、ドキュメントサーバ(例えばウェブサーバ)が、VoiceXMLインタープリタを通じてクライアントからの要求を処理する。ウェブサーバはそれに応答してVoiceXMLドキュメントを生成することができ、このドキュメントはVoiceXMLインタープリタによって処理し、ユーザに対して音声としてレンダリングされる。ユーザは、音声認識を通じて音声コマンドを使用することにより、ウェブをナビゲートすることができる。
【0005】
VoiceXMLは、フロー制御タグを用いるマークアップ言語であるが、フロー制御は、イベンティング(eventing)および個別のスクリプトを含むHTML(ハイパーテキストマークアップ言語)のフロー制御モデルには従わない。VoiceXMLは一般に、電話ベースの音声のみの対話に特に適したフォーム解釈アルゴリズムを含むが、このアルゴリズムでは通例、ユーザから得られる情報をシステムまたはアプリケーションによって制御する。グラフィカルユーザインタフェースも提供し、クライアント−サーバ関係で利用することのできるアプリケーションにVoiceXMLを直接組み込むには、開発者は、2つの形態のウェブオーサリングを習得する必要がある。すなわち、VoiceXMLのオーサリングと、HTML(など)を使用したオーサリングであるが、これらはそれぞれ異なるフロー制御モデルに従っている。
【0006】
【発明が解決しようとする課題】
したがって、インターネットなどのサーバ/クライアントアーキテクチャで音声認識を提供するのに使用されるアーキテクチャ、またはその部分、および方法に改良を加えることが現在必要とされている。音声認識用のオーサリングツールは、PIM、電話などの小型のコンピューティングデバイスに容易に適合できなければならない。前述の不利点の1つ、いくつか、またはすべてに対処するウェブオーサリングのアーキテクチャまたは方法が特に必要とされる。
【0007】
本発明は、このような課題に鑑みてなされたもので、その目的とするところは、インターネットなどのサーバ/クライアントアーキテクチャで音声認識を提供するのに使用される、統一したアーキテクチャを備えたウェブ対応音声認識用サーバの方法および記録媒体を提供することにある。
【0008】
【課題を解決するための手段】
データ処理用のサーバ/クライアントシステムは、リモートにアクセスできる情報を含んだウェブサーバを有するネットワークを含む。クライアントデバイスは、マイクロフォンなどの入力装置と、スピーカまたはディスプレイなどのレンダリング構成要素を含む。クライアントデバイスは、ウェブサーバから情報を入手して、その情報に含まれるフィールドと関連付けられた入力データを記録するように構成する。クライアントデバイスは、認識に使用する文法の指示とともに入力データを遠隔位置に送信するように適合する。
【0009】
本発明の一態様として、認識サーバは入力データおよび文法の指示を受け取る。認識サーバは、何が入力されたかを示すデータをクライアントおよびウェブサーバの少なくとも1つに戻す。
【0010】
本発明の第2の態様として、クライアント/サーバシステム中のクライアントデバイスで実行するマークアップ言語は、各クライアントデバイスと対話するウェブサーバのために、非表示式の音声入力ベースのクライアントデバイスとマルチモーダルベースのクライアントにおける、認識に関連するイベント、GUIイベント、および電話イベントのうち少なくとも1つを統一する命令を含む。
【0011】
【発明の実施の形態】
ウェブベース認識のアーキテクチャおよびその実施方法を説明する前に、このアーキテクチャで機能することが可能なコンピューティングデバイスについて全般的に説明しておくと有用であろう。本明細書で図1を参照すると、データ管理デバイス(PIM、PDAなど)の例示的形態が30に表されている。ただし、本発明は、下記で論じるこの他のコンピューティングデバイス、特に入力ボタンなどを装備するには表面積が限られたコンピューティングデバイスを使用して実施することも企図している。例えば、電話および/またはデータ管理デバイスも、本発明から利益を受けることができる。このようなデバイスは、既存の携帯個人情報管理デバイスおよびその他の携帯電子デバイスと比較して高いユーティリティを備え、そのデバイスの諸機能とコンパクトなサイズにより、ユーザがデバイスを常に携行することを促すと思われる。したがって、本明細書に記載するアーキテクチャの範囲は、本明細書に記載する例示的なデータ管理デバイスまたはPIMデバイス、電話機、またはコンピュータの開示によっては制限しないものとする。
【0012】
データ管理モバイルデバイス30の例示的な形態を図1に示す。モバイルデバイス30は筐体32を含み、ディスプレイ34を含むユーザインタフェースを有する。ユーザインタフェースには、スタイラス33と合わせて接触感知式の表示画面を使用する。スタイラス33は、指定された座標でディスプレイ34を押す、またはディスプレイ34に接触して、フィールドを選択し、カーソルの開始位置を選択的に移動するのに使用し、あるいはジェスチャや手書きなどによる他の方法でコマンド情報を提供するのに使用する。これに代えて、あるいはこれに加えて、ナビゲーション用に1つまたは複数のボタン35a、35b、35cをデバイス30上に含むことができる。さらに、回転ホイール、ローラなどの他の入力機構も提供することができる。ただし、本発明は、これらの形態の入力機構によっては制限しないことに留意されたい。例えば、この他の形態の入力には、コンピュータビジョン(vision)を用いるなどの視覚的な入力を含むことができる。
【0013】
次いで図2を参照すると、モバイルデバイス30を構成する機能構成要素をブロック図で示している。中央演算処理装置(CPU)50は、ソフトウェア制御機能を実施する。CPU50はディスプレイ34に結合され、制御ソフトウェアに従って生成されるテキストおよびグラフィックアイコンが、ディスプレイ34に表示される。スピーカ43を、通例はデジタルからアナログに変換する変換器59とともにCPU50に結合し、音声による出力を提供することができる。ユーザがモバイルデバイス30にダウンロードまたは入力したデータは、CPU50と双方向に結合した不揮発性の読み出し/書き込みランダムアクセスメモリ記憶装置54に記憶する。ランダムアクセスメモリ(RAM)54は、CPU50が実行する命令の揮発性の記憶、およびレジスタ値など一時的なデータの記憶を提供する。構成オプションや他の変数のデフォルト値は、読み出し専用メモリ(ROM)58に記憶する。ROM58は、モバイル30の基本機能、およびその他のオペレーティングシステムカーネル機能(例えばソフトウェアコンポーネントをRAM54にロードするなど)を制御する、デバイス用のオペレーティングシステムソフトウェアの記憶にも使用することができる。
【0014】
RAM54は、アプリケーションプログラムの記憶に使用するPCのハードドライブ機能と同様の方式で、コードの記憶機構としても機能する。不揮発性メモリをコードの記憶に使用しているが、コードは代わりに、コードの実行には使用されない揮発性メモリに記憶することも可能であることに留意されたい。
【0015】
無線信号は、CPU50に結合された無線トランシーバ52を通じて、モバイルデバイスによって送信/受信することができる。所望の場合には、コンピュータ(例えばデスクトップコンピュータ)から、あるいは配線式ネットワークから直接データをダウンロードするために、任意選択の通信インタフェース60を提供することもできる。したがって、インタフェース60は、例えば赤外線リンク、モデム、ネットワークカードなど、様々な通信装置の形態を備えることができる。
【0016】
モバイルデバイス30は、マイクロフォン29、アナログ/デジタル(A/D)変換器37、および記憶装置54に記憶された任意選択の認識プログラム(音声、DTMF、手書き、ジェスチャ、またはコンピュータ画像)を含む。一例として、デバイス30のユーザからの音声による情報、命令、またはコマンドに応答して、マイクロフォン29が音声信号を提供し、それをA/D変換器37でデジタル化する。音声認識プログラムは、デジタル化した音声信号に正規化および/または特徴抽出機能を行って、中間の音声認識結果を得る。無線トランシーバ52または通信インタフェース60を使用して、下記で説明し、図5のアーキテクチャに表すリモートの認識サーバ204に音声データを送信する。その後認識結果をモバイルデバイス30に戻して、そこでレンダリング(例えば視覚的かつ/または可聴的に)を行い、最終的にウェブサーバ202(図5)に送信するが、本明細書でウェブサーバ202とモバイルデバイス30はクライアント/サーバ関係で動作している。これと同様の処理を、他の形態の入力にも使用することができる。例えば、手書き入力を、デバイス30での前処理により、または前処理によらずにデジタル化することができる。音声データと同様に、この形態の入力も認識のために認識サーバ204に送信することができ、認識結果が、デバイス30および/またはウェブサーバ202の少なくともどちらかに戻される。同様に、DTMFデータ、ジェスチャデータ、および視覚データも同じように処理することができる。入力形態に応じて、デバイス30(および下記で説明する他の形態のクライアント)は、カメラや視覚入力など必要なハードウェアを含む。
【0017】
図3は、携帯電話80の一例示的実施形態の平面図である。電話機80は、ディスプレイ82およびキーパッド84を含む。一般に、図2のブロック図は図3の電話機にも該当するが、他機能を行うために必須の追加回路が必要になることもある。例えば、図3の実施形態には、電話としての動作に必須のトランシーバが必要になるが、このような回路は本発明には関連しない。
【0018】
上記の携帯式またはモバイル型のコンピューティングデバイス以外にも、本発明は、一般的なデスクトップコンピュータなど数多くの他のコンピューティングデバイスにも使用できることが理解されよう。例えば、身体能力が限られたユーザにとって完全な英数文字キーボードなど他の従来型の入力装置の操作が困難である場合に、本発明は、そのようなユーザがコンピュータまたは他のコンピューティングデバイスにテキストを入力することを可能にする。
【0019】
本発明はまた、数多くの他の汎用または特殊目的のコンピューティングシステム、環境、または構成での動作が可能である。本発明とともに使用するのに適した周知のコンピューティングシステム、環境、および/または構成の例には、従来型の(regular)電話(画面を備えない)、パーソナルコンピュータ、サーバコンピュータ、携帯用デバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスなどのうち任意のものを含む分散型コンピューティング環境が含まれるがこれらに限定するものではない。
【0020】
以下は、図4に示す汎用コンピュータ120の簡単な説明である。ただし、この場合もコンピュータ120は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能性の範囲に関して何らの制限を示唆するものではない。また、コンピュータ120は、この図に示す構成要素のいずれか、またはその組合せに関する依存性や要件を有するものとも解釈すべきではない。
【0021】
本発明は、プログラムモジュールなどコンピュータで実行するコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールには、特定タスクを実行する、または特定の抽象データタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明はまた、通信ネットワークを通じてリンクした遠隔処理装置によってタスクを実行する分散型コンピューティング環境でも実施することができる。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含む、ローカルおよびリモートどちらのコンピュータ記憶媒体に置いてもよい。以下で、図面の助けを借りて、プログラムおよびモジュールによって実行するタスクを説明する。当業者は、この説明および図面をプロセッサ実行可能命令として実施することができ、この命令はどの形態のコンピュータ読み取り可能な記録媒体にも書き込むことができる。
【0022】
図4を参照すると、コンピュータ120の構成要素には、プロセッサ140、システムメモリ150、およびシステムメモリを含む各種システム構成要素をプロセッサ140に結合するシステムバス141が含まれるが、これらに限定しない。システムバス141は、メモリバスまたはメモリコントローラ、周辺バス、および各種バスアーキテクチャのうち任意のものを使用したローカルバスを含む数種のバス構造のうち任意のものでよい。このようなアーキテクチャには、例えば、ISA(Industry Standard Architecture)バス、USB(Universal Serial Bus)、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとしても知られるPCI(Peripheral Component Interconnect)バスが含まれるがこれらに限定するものではない。コンピュータ120は、通例、各種のコンピュータ読み取り可能な記録媒体を含んでいる。コンピュータ読み取り可能な記録媒体は、コンピュータ120からアクセスすることができる任意の利用可能な媒体でよく、これには揮発性および不揮発性媒体、リムーバルおよび取外し不能媒体が含まれる。例えば、コンピュータ読み取り可能な記録媒体は、コンピュータ記憶媒体および通信媒体を含むことができるがこれらに限定しない。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術に実施された、揮発性および不揮発性、リムーバルおよび取外し不能媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、またはその他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶装置、あるいは所望の情報の記憶に使用することができ、コンピュータ120からアクセスすることが可能な任意の他の媒体が含まれるがこれらに限定するものではない。
【0023】
通信媒体は、通例、搬送波または他の搬送機構などの変調データ信号中のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施し、また任意の情報伝達媒体を含む。用語「変調データ信号」とは、情報を信号中に符号化するような方式で、その特性の1つまたは複数を設定または変更した信号を意味する。例として、通信媒体には、配線式ネットワークまたは直接配線接続などの配線式媒体、および音響、FR、赤外線、および他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体の任意の組合せも、コンピュータ読み取り可能な記録媒体の範囲に含むものとする。
【0024】
システムメモリ150は、読み出し専用メモリ(ROM)151およびランダムアクセスメモリ(RAM)152などの揮発性および/または不揮発性メモリの形態でコンピュータ読み取り可能な記録媒体を含む。起動時などにコンピュータ120中の要素間の情報の転送を助ける基本ルーチンを含んだ基本入出力システム153(BIOS)は、通例ROM151に記憶する。RAM152は、通例、プロセッサ140から即座にアクセスすることができ、かつ/またはプロセッサ140が現在操作しているデータおよび/またはプログラムモジュールを含む。例として、図4にはオペレーティングシステム154、アプリケーションプログラム155、他のプログラムモジュール156、およびプログラムデータ157を示しているが、これらに限定しない。
【0025】
コンピュータ120は、他のリムーバル/取外し不能、揮発性/不揮発性のコンピュータ読み取り可能な記録媒体も含むことができる。図4には、取外し不能、不揮発性の磁気媒体との読み出しまたは書き込みを行うハードディスクドライブ161、リムーバル、不揮発性の磁気ディスク172との読み出しまたは書き込みを行う磁気ディスクドライブ171、およびCD ROMや他の光媒体などのリムーバル、不揮発性の光ディスク176との読み出しまたは書き込みを行う光ディスクドライブ175を示すが、これらは例にすぎない。この例示的動作環境で使用できる、この他のリムーバル/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるがこれらに限定しない。ハードディスクドライブ161は、通例、インタフェース160など取外し不能のメモリインタフェースを通じてシステムバス141に接続し、磁気ディスクドライブ171および光ディスクドライブ175は通例、インタフェース170などのリムーバルメモリインタフェースによってシステムバス141に接続する。
【0026】
上記で説明し、図4に示すドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ120のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を提供する。例えば、図4では、ハードディスクドライブ161は、オペレーティングシステム164、アプリケーションプログラム165、他のプログラムモジュール166、およびプログラムデータ167を記憶するものとして示している。これらのコンポーネントは、オペレーティングシステム154、アプリケーションプログラム155、他のプログラムモジュール156、およびプログラムデータ157と同じものでも、異なるものでもよいことに留意されたい。本明細書では、オペレーティングシステム164、アプリケーションプログラム165、他のプログラムモジュール166、およびプログラムデータ167が少なくとも異なるコピーであることを示すために、これらに異なる番号を与えている。
【0027】
ユーザは、キーボード182、マイクロフォン183、およびマウスやトラックボール、タッチパッドなどのポインティングデバイス181などの入力装置を通じて、コンピュータ120にコマンドおよび情報を入力することができる。この他の入力装置(図示せず)には、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる。これらの入力装置およびこの他の入力装置は、多くの場合、システムバスに結合したユーザ入力インタフェース180を通じてプロセッサ140に接続するが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス(USB)など他のインタフェースおよびバス構造によって接続することもできる。モニタ184または他種の表示装置も、ビデオインタフェース185などのインタフェースを介して、システムバス141に接続する。コンピュータは、モニタ以外にも、スピーカ187およびプリンタ186など他の周辺出力装置も含むことができ、これらは出力周辺インタフェース188を通じて接続することができる。
【0028】
コンピュータ120は、リモートコンピュータ194など1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化環境で動作することができる。リモートコンピュータ194は、パーソナルコンピュータ、携帯用デバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードでよく、通例は上記でコンピュータ120との関連で説明した要素の多くまたはすべてを含む。図4に示す論理接続には、ローカルエリアネットワーク(LAN)191およびワイドエリアネットワーク(WAN)193が含まれるが、この他のネットワークを含んでもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで一般的に見られる。
【0029】
LANネットワーキング環境で使用する場合、コンピュータ120は、ネットワークインタフェースすなわちアダプタ190を通じてLAN191に接続する。WANネットワーキング環境で使用する場合、コンピュータ120は通例モデム192か、またはインターネットなどのWAN193を介して通信を確立するための他の手段を含む。モデム192は、内蔵型でも外付け式でもよく、ユーザ入力インタフェース180または他の適切な機構を介してシステムバス141に接続することができる。ネットワーク環境では、コンピュータ120との関連で図示するプログラムモジュール、またはその一部をリモートのメモリ記憶装置に記憶することができる。例として図4に、リモートアプリケーションプログラム195をリモートコンピュータ194に常駐するものとして示しているが、これに限定しない。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用してよいことは理解されよう。
【0030】
図5に、本発明で実施することのできるウェブベース認識のアーキテクチャ200を示す。一般に、ウェブサーバ202に記憶された情報には、モバイルデバイス30(本明細書では、入力の形態に基づき、適宜、表示画面、マイクロフォン、カメラ、タッチセンシティブパネルなどを有する他形態のコンピューティングデバイスをも表す)を通じて、または情報を音声により、またはキーを押すのに応答して電話機80が生成するトーンを通じて要求する電話機80を通じてアクセスすることができる。電話機の場合には、ウェブサーバ202からの情報を音声のみによりユーザに提供する。
【0031】
より重要なのは、情報をデバイス30を通じて得るか、または音声認識を用いて電話機80を通じて得るかに関係なく、単一の認識サーバ204がどちらの動作モードもサポートすることができる点でアーキテクチャ200が統一されていることである。さらに、アーキテクチャ200は、周知のマークアップ言語(例えばHTML、XHTML、cHTML、XML、WMLなど)の拡張を使用して動作する。したがって、ウェブサーバ202に記憶された情報には、これらのマークアップ言語で使用される周知のGUI方式を用いてアクセスすることもできる。周知のマークアップ言語の拡張を使用することにより、ウェブサーバ202でのオーサリングが容易になり、現在存在するレガシーアプリケーションも、音声認識を含むように容易に修正することができる。
【0032】
一般に、デバイス30は、ウェブサーバ202が提供するHTMLページ、スクリプトなどを実行する。一例として、音声(voice)認識が必要な場合には、デジタル化したオーディオ信号または音声特徴などの音声データ(オーディオ信号は上記のようにデバイス30で前処理する)を、音声認識中に使用する文法または言語モデルの指示とともに、認識サーバ204に提供する。認識サーバ204の実施態様は多くの形態をとることが可能であり、そのうちの1つを図示したが、一般にはレコグナイザ211を含む。認識の結果は、所望の場合、または適切な場合にはローカルのレンダリングのためにデバイス30に戻される。認識と、使用する場合には任意のグラフィカルユーザインタフェースとを通じて情報を編集すると、必要な場合には、デバイス30はその情報をウェブサーバ202に送信し、そこでさらに処理を行い、さらにHTMLページ/スクリプトを受信する。
【0033】
図5に示すように、デバイス30、ウェブサーバ202、および認識サーバ204は共通に(commonly)接続されており、また本明細書ではインターネットなどのワイドエリアネットワークであるネットワーク205を通じて個別にアドレス指定することができる。したがって、これらの装置はいずれも物理的に相互に近接して配置する必要はない。特に、ウェブサーバ202が認識サーバ204を含む必要はない。この方式によると、ウェブサーバ202におけるオーサリングを、それが行うべきアプリケーションに集中させることができ、オーサ(author)は認識サーバ204の複雑性を知る必要がない。認識サーバ204は、独自に設計してネットワーク205に接続することができ、それによりウェブサーバ202でさらに変更を行わなくとも更新および改良することができる。下記で説明するように、ウェブサーバ202は、クライアント側のマークアップおよびスクリプトを動的に生成することのできるオーサリング機構も含むことができる。別の実施形態では、実装マシンの能力に応じて、ウェブサーバ202、認識サーバ204、およびクライアント30を組み合わせることができる。例えば、クライアントがパーソナルコンピュータなどの汎用コンピュータを含む場合には、クライアントは認識サーバ204を含むことができる。同様に、所望の場合には、ウェブサーバ202および認識サーバ204を単一マシンに組み込むことが可能である。
【0034】
クライアントデバイスに関して、クライアント/サーバシステムで入力データを処理する方法は、クライアントデバイスのユーザから入力データを得るように構成された拡張を有するマークアップ言語ページをサーバから受信することと、クライアントデバイスでマークアップ言語ページを実行することと、入力データ(ユーザから得た音声、DTMF、手書き、ジェスチャ、または画像を表す)およびそれに関連する文法をクライアントからリモートに位置する認識サーバに送信することと、認識サーバからの認識結果をクライアントで受信することとを含む。クライアント/サーバシステムのクライアントデバイスで実行するマークアップ言語を有するコンピュータ読み取り可能な記録媒体を提供することができ、このマークアップ言語は、そのクライアントデバイスで入力される入力データと関連付ける文法を指示する命令を有する。
【0035】
電話機80を通じたウェブサーバ202へのアクセスには、配線式または無線式の電話網208への電話機80の接続が含まれ、この電話網が電話機80をサードパーティのゲートウェイ210に接続する。ゲートウェイ210は、電話機80を電話音声ブラウザ212に接続する。電話音声ブラウザ212は、電話インタフェースを提供するメディアサーバ214と、音声ブラウザ216を含む。デバイス30と同様に、電話音声ブラウザ212は、ウェブサーバ202からHTMLページ/スクリプトなどを受信する。より重要なのは、これらのHTMLページ/スクリプトが、デバイス30に提供されるHTMLページ/スクリプトと同様の形態であることである。この方式によると、ウェブサーバ202は、デバイス30と電話機80を個別にサポートする必要がなく、さらには標準的なGUIクライアントを個別にサポートする必要もない。むしろ、共通のマークアップ言語を使用することができる。さらに、デバイス30と同様に、電話機80から送信される可聴信号からの音声認識は、ネットワーク205、または例えばTCP/IPを使用する専用回線207を通じて、音声ブラウザ216から認識サーバ204に提供される。ウェブサーバ202、認識サーバ204、および電話音声ブラウザ212は、図4に示す汎用デスクトップコンピュータなど任意の適切なコンピューティング環境に実施することができる。
【0036】
ただしDTMF認識を用いる場合は、この形態の認識は、一般的には認識サーバ204ではなくメディアサーバ214で行うことに留意されたい。すなわち、メディアサーバでDTMF文法を使用することになる。
【0037】
上記で指摘したように、HTML、XHTML、cHTML、XML、WMLなどのマークアップ言語、または他のSGML由来のマークアップを用いるマークアップ言語は、クライアント/サーバアーキテクチャで認識を提供するコントロールおよび/またはオブジェクトを含むことができる。この方式では、オーサが、このようなアーキテクチャで使用される主流のウェブ開発プラットフォームであるこれらのマークアップ言語に、すべてのツールと専門知識を活用することができる。
【0038】
一般に、コントロールおよび/またはオブジェクトには、次の機能の1つまたは複数を含むことができる。レコグナイザの構成、レコグナイザの実行、および/または後処理のためのレコグナイザコントロールおよび/またはオブジェクト;シンセサイザの構成およびプロンプト再生のためのシンセサイザコントロールおよび/またはオブジェクト;入力文法リソースを指定する文法コントロールおよび/またはオブジェクト;および/または、認識結果を処理するためのバインドコントロールおよび/またはオブジェクト。拡張は、軽量のマークアップレイヤになるように設計し、これにより、聴覚、視覚、手書きなどによるインタフェースの能力を既存のマークアップ言語に付加する。したがって、拡張は次のものには依存しない。例えばHTMLなど拡張が含まれる高レベルページ;例えばテキストから音声へのフォーマットや文法フォーマットなど、言語リソースへのリファレンスにその拡張が使用した低レベルフォーマット;および認識サーバ204で使用する認識プラットフォーム、および音声合成プラットフォームの個々の属性。
【0039】
認識に適したコントロールおよび/またはオブジェクトを有するマークアップを説明する前に、本発明でHTMLマークアップ言語とともに実施する簡単なGUIの例を考察しておくと有用であると思われる。図6を参照すると、簡単なGUIインタフェースは、オンライン販売を完了するためにクレジットカード情報をウェブサーバに提出することを含む。この例では、クレジットカード情報は、Visa、MasterCard、あるいはAmerican Expressなど、使用するクレジットカードの種類を入力するフィールド250を含む。第2のフィールド252はクレジットカード番号の入力を可能にし、第3のフィールド254は有効期限の入力を可能にする。フィールド250、252、および254に入力した情報を送信するための「提出」ボタン264が提供される。
【0040】
図7は、クライアントから上述のクレジットカード情報を得るためのHTMLコードを示している。一般に、このような形態のマークアップ言語で一般的なように、コードは本体部分260とスクリプト部分262を含む。本体部分260は、実行するアクションのタイプ、使用するフォーム、各種の情報フィールド250、252、および254を指定するコードの行を含み、また提出ボタン264(図6)用のコードも含む。この例は、イベントサポートと、埋め込まれたスクリプトホスティングも表しており、提出ボタン264が起動されると、スクリプト部分262で関数「verify」が呼び出され、または実行される。「verify」関数は、各クレジットカード(Visa、MasterCard、American Express)のカード番号の長さが適切な長さであることを確認する。
【0041】
図8は、音声認識を使用してウェブサーバ204に提供するクレジットカード情報を得るための、図6と同じGUIを生成するクライアントマークアップを表している。音声認識については下記で図8〜16との関連で説明するが、本明細書で説明する技術は、手書き認識、ジェスチャ認識、および画像認識にも同様に応用できることを理解されたい。
【0042】
一般に、エクステンション(拡張;一般には「タグ」としても知られる)はXML要素の小セットであり、関連する属性およびDOMオブジェクトプロパティ、イベント、およびメソッドを含み、ソースマークアップドキュメントと合わせて使用することにより、認識インタフェース、DTMFまたは呼制御をソースページに適用する。エクステンションの形式(formality)および意味(semantics)はソースドキュメントの性質に依存しないので、エクステンションは、HTML、XHTML、cHTML、XML、WMLで、あるいは任意の他のSGML由来のマークアップとともに等しく効果的に使用することができる。エクステンションは、階層的にすることが可能な新しい機能オブジェクトまたは要素を提供するドキュメントオブジェクトモデルに従う。各要素については付録中で詳細に説明するが、一般に、要素には属性、プロパティ、メソッド、イベント、および/または他の「子」要素を含むことができる。
【0043】
本明細書で、エクステンションは、ブラウザを実行するデバイスの機能に応じて、異なる2つの「モード」で解釈できることにも留意されたい。第1のモード「オブジェクトモード」では、全機能を利用することができる。アプリケーションによるエクステンションのプログラム上の操作は、そのデバイスのブラウザが使用可能にするどの機構でも実行することができる。これには、例えば、XHTMLブラウザにおけるJScriptインタープリタや、WMLブラウザにおけるWMLScriptインタープリタなどがある。この理由から、エクステンションのコアプロパティおよびメソッドの小セットだけを定義すればよく、これらは、デバイスすなわちクライアント側に存在する任意のプログラム機構によって操作される。オブジェクトモードは、イベンティングおよびスクリプティングを提供し、またより多くの機能を提供して、ダイアログのオーサに、音声対話に対するより細かなクライアント側におけるコントロールを与えることができる。本明細書で使用する場合、フルイベントおよびスクリプティングをサポートするブラウザを「アップレベルブラウザ」と呼ぶ。この形のブラウザは、エクステンションのすべての属性、プロパティ、メソッド、およびイベントをサポートする。アップレベルブラウザは、通例、より高い処理能力を持つデバイスで使用される。
【0044】
エクステンションは、「宣言モード」でもサポートすることができる。本明細書で使用する場合、宣言モードで動作するブラウザを「ダウンレベルブラウザ」と呼び、これは完全なイベンティングおよびスクリプティング機能はサポートしない。代わりにこの形のブラウザは、所与のエクステンションの宣言的側面(すなわちコア要素および属性)をサポートするが、DOM(ドキュメントオブジェクトモデル)オブジェクトのプロパティ、メソッド、およびイベントのすべてはサポートしない。このモードは専ら宣言構文だけを用い、さらに、SMIL(同期化マルチメディア統合言語)2.0などの宣言マルチメディア同期化および協調機構(同期マークアップ言語)と併せて使用することができる。ダウンレベルブラウザは、通例、処理能力が限られたデバイスで使用される。
【0045】
ここで、特定の入力モードについて論じておきたい。詳細には、音声認識を、少なくともディスプレイと併せて、そして別の実施形態ではポインティングデバイスとも併せて使用して、データ入力フィールドを指定すると特に有用である。具体的には、このモードのデータ入力では、ユーザは一般に、いつフィールドを選択し、それに対応する情報を提供するかを制御することができる。例えば、図6の例では、ユーザはまずフィールド252にクレジットカード番号を入力し、次いでフィールド250にクレジットカードの種類を入力し、最後にフィールド254に有効期限日を入力することができる。同様に、ユーザは、所望の場合にはフィールド252に戻り、誤った入力を訂正することもできる。下記で説明するように音声認識と組み合わせると、平易で自然なナビゲーション形態が提供される。本発明で使用する場合、フィールドを自由な形で選択することを可能にする画面表示と、音声認識の両方を使用するこの形の入力を「マルチモーダル」と呼ぶ。
【0046】
再び図8を参照すると、HTMLマークアップ言語のコードが示されている。図7に示すHTMLコードと同様に、このコードも、本体部分270およびスクリプト部分272を含んでいる。また図7に示すコードと同様に、図8に示すコードは、フォームの位置および実行するアクションのタイプに関する指示を含む。フィールド250、252、および254それぞれへの情報の入力は、各々コード部分280、282、および284によって制御または実行する。初めにコード部分280を参照すると、例えばデバイス30のスタイラス33を使用してフィールド250を選択すると、イベント「onClick」が開始され、これによりスクリプト部分272の関数「talk」が呼び出されるか、または実行される。このアクションは、一般にフィールド250に予想されるデータタイプと関連付けられた、音声認識で使用する文法を起動する。複数の入力技術(例えば音声とペンクリック/ローラ)を使用するこの種の対話を「マルチモーダル」と呼ぶ。
【0047】
図8に例示する音声認識エクステンションは、クライアントのブラウザにおいてデフォルトの視覚表現を有さないことに留意されたい。これは、多くのアプリケーションでは、オーサが、アプリケーション仕様のグラフィック機構をソースページで使用することにより、ページの各種コンポーネントの音声使用可能を知らせることを想定しているためである。それでも、視覚的な表現が望ましい場合には、エクステンションをそのように修正することができる。
【0048】
再び文法を参照すると、この文法は、文脈自由文法、N文法、ハイブリッド文法などの構文文法であるがこれらに限定しない。(言うまでもなく、それに対応する形態の認識を利用する際には、DTMF文法、手書き文法、ジェスチャ文法、および画像文法を使用する。本明細書で使用する場合、「文法」とは認識を行うための情報を含み、別の実施形態では、例えば特定のフィールドに入力されることが予想される入力に対応する情報を含む。)マークアップ言語の最初のエクステンションを含む新しいコントロール290(本明細書では「reco」と識別する)は様々な要素を含むが、そのうち2つを図に示す。すなわち文法要素「grammar」と「bind」要素である。一般に、ウェブサーバ202からクライアントにダウンロードするコードと同様に、文法はウェブサーバ202を発信元とし、クライアントにダウンロードするか、かつ/または音声処理のためにリモートサーバに転送することができる。文法は次いで、そのキャッシュでローカルで記憶することができる。最終的に、文法は認識に使用するために認識サーバ204に提供する。文法要素は、インライン文法、または属性を使用して参照する文法を指定するのに使用する。
【0049】
認識を行った音声、手書き、ジェスチャ、画像などに対応する認識結果を認識サーバ204から受け取ると、recoコントロール290の構文を提供してそれに対応する結果を受け取り、それを対応フィールドと関連付けるが、これにはその中のテキストをディスプレイ34でレンダリングすることを含んでもよい。本明細書に例示する実施形態では、音声認識が終了し、結果をクライアントに送り返すと、クライアントはrecoオブジェクトを非活動化して、認識済みのテキストをそれに対応するフィールドと関連付ける。コード部分282および284もこれと同様に動作し、フィールド252および254ごとに固有のrecoオブジェクトおよび文法を呼び出し、認識されたテキストを受け取ると、それをフィールド252および254とそれぞれ関連付ける。カード番号フィールド252の受信については、関数「handle」が、上記で図7との関連で説明したのと同様の方式で、カードの種類からカード番号の長さを確認する。
【0050】
一般に、アーキテクチャ200およびクライアント側のマークアップ言語と併せた音声認識の使用は、次のように行われる。まず、与える音声と関連付けられたフィールドを指示する。図の実施形態ではスタイラス33を使用するが、本発明はスタイラス33の使用に限定するものではなく、ボタン、マウスポインタ、回転ホイールなど任意形態の指示を使用できることは理解されよう。周知のように、視覚的なマークアップ言語を使用して、「onClick」などそれに対応するイベントを提供することができる。本発明は、音声、手書き、ジェスチャなどのコマンドの開始を指示するのに、「onClick」イベントの使用だけに限定しない。「onSelect」など、任意の利用可能なGUIも同じ目的に使用することができる。一実施形態では、このようなイベンティングは、それに対応する音声の開始および/または終わりの両方を示す役割を果たすので、特に有用である。また、音声の対象とするフィールドは、ユーザの対話を追跡するブラウザ上で実行されるプログラムによっても、ユーザによっても指定できることに留意されたい。
【0051】
ここで注意したいのは、異なる音声認識シナリオには、認識サーバ204の異なる振る舞いおよび/または出力が必要となることである。認識プロセスの開始はすべての場合に標準的なものであり、すなわちアップレベルブラウザからの明示的なstart( )の呼び出しであり、あるいはダウンレベルブラウザでは宣言的な<reco>要素であるが、音声認識を中止する手段は異なる可能性がある。
【0052】
上記の例では、マルチモーダルアプリケーションのユーザは、例えば圧力を感知するディスプレイを軽く叩き、接触状態を保持することにより、デバイスへの入力を制御する。するとブラウザは、例えば「pen−up」などのGUIイベントを使用して、認識をいつ中止するかを制御し、その後それに対応する結果を戻す。ただし、電話アプリケーション(下記で説明する)あるいは手を使用せずに済むアプリケーションといった音声のみのシナリオでは、ユーザはブラウザに対する直接的な決定権は一切持たず、認識サーバ204またはクライアント30が、いつ認識を中止して結果を戻すか(通例は、文法中のパスを認識した時点)を決定する責任を負わなければならない。さらに、認識を中止する前に中間の結果を戻す必要があるディクテーションや他のシナリオ(「オープンマイクロフォン」としても知られる)の場合には、明示的な中止機能が必要とされるだけでなく、認識プロセスを中止する前に複数の認識結果をクライアント30および/またはウェブサーバ202に戻す必要もある。
【0053】
一実施形態では、Reco要素は、下記の3つの認識モードを区別する「mode」属性を含むことができ、これにより認識サーバ204に、いつどのように結果を戻すかを命令する。結果を戻すことは、「onReco」イベントを提供する、または「bind」要素を適宜起動することを意味する。一実施形態では、モードを指定しない場合、デフォルトの認識モードは「自動」にすることができる。
【0054】
図14は、音声認識の「自動」モードの動作を図式的に表したものである(他の形態の認識にもこれと同様のモード、イベントなどを提供することができる)。スケジュール281は、認識サーバ204にいつ認識の開始283を指示するか、認識サーバ204がどこで音声を検出し(285)、その音声が終了したこと(287)を判定するかを表している。
【0055】
Reco要素の各種の属性は、認識サーバ204の振る舞いを制御する。属性「initialTimeout」289は、認識の開始283から音声の検出285までの間の時間である。この期間を超えると、「onSilence」イベント291が認識サーバ204から提供され、認識が中止されたことを知らせる。認識サーバ204が、発声が認識不可能であると識別した場合は、「onNoReco」イベント293を発行するが、これも認識を中止したことを示す。
【0056】
認識を中止またはキャンセルすることができる他の属性には、「babbleTimeout」属性295があるが、これは285の音声の検出後に認識サーバ204が結果を戻さなければならない期間である。この期間を超えると、エラー発生の有無に応じて異なるイベントが発行される。例えば、例外的に発声が長い場合など、認識サーバ204がなおオーディオの処理を行っている場合は、「onNoReco」属性293を発行する。しかし他の何らかの理由で「babbleTimeout」属性295を超えた場合は、認識エラーの可能性が高くなり、「onTimeout」イベント297が発行される。同様に「maxTimeout」属性299も提供することができ、これは、認識の開始283から結果をクライアント30に戻すまでの期間である。この期間を超えると、「onTimeout」イベント297が発行される。
【0057】
ただし、「endSilence」属性301以上の期間を超えた場合、これは認識が完了していることを示唆するが、この場合は認識サーバ204が自動的に認識を中止し、その結果を戻す。認識サーバ204は、信頼度の測定を実施して、認識結果を戻すべきかどうかを判定できることに留意されたい。信頼度の測定値が閾値を下回る場合は、「onNoReco」属性293を発行し、一方信頼度の測定値が閾値を上回る場合は、「onNoReco」属性303および認識結果を発行する。したがって図14は、「自動モード」で、明示的なstop( )の呼び出しが行われていない状況を表している。
【0058】
図15は、認識サーバ204の「シングルモード」の動作を図式的に表したものである。「自動モード」との関連で上記で説明した属性およびイベントを適用することができ、したがって同じ参照番号で示している。しかし、この動作モードでは、stop( )呼び出し305を、スケジュール281上に示している。stop( )呼び出し305は、ユーザによる「ペンアップ」などのイベントに相当する。この動作モードでは、認識結果を戻すことは、明示的なstop( )呼び出し305によって制御される。すべての動作モードの場合と同じく、「onSilence」イベント291は、「initialTimeout」期間289内に音声が検出されない場合に発行されるが、この動作モードでは認識を中止しない。同様に、stop( )呼び出し305以前の認識不可能な発声によって生成される「onNoReco」イベント293によっても認識は中止されない。ただし、「babbleTimeout」属性295または「maxTimeout」属性299と関連付けられた期間を超えた場合は、認識を中止する。
【0059】
図16は、認識サーバ204の「複数モード」の動作を図式的に表している。上記で指摘したように、この動作モードは、「オープンマイクロフォン」またはディクテーションのシナリオで使用する。一般に、この動作モードでは、明示的なstop( )呼び出し305が受け取られるか、または「babbleTimeout」性295または「maxTimeout」属性299に関連付けられた期間を超えるまで、間隔を置いて認識結果を戻す。ただし、「onSilence」イベント291、「onReco」イベント303、または「onNoReco」イベント293のいずれかが発生すると、これらによって認識は中止されないが、「babbleTimeout」期間および「maxTimeout」期間のタイマがリセットされることに留意されたい。
【0060】
一般に、この動作モードでは、stop( )呼び出し305が受け取られるまで、認識されるフレーズごとに、「onReco」イベント303を発行し、結果を戻す。認識不可能な発声のために「onSilence」イベント291が発行された場合は、これらのイベントを報告するが、認識は継続する。
【0061】
上記で触れたように、フィールドに関連付けられた1つまたは複数のrecoオブジェクトを起動するが、これには、少なくともどの文法を使用するかについての指示を認識サーバ204に提供することが含まれる。この情報は、クライアント30で記録して認識サーバ204に送信した音声データを伴うことができる。上記で指摘したように、音声データは、ユーザが入力した音声に関連づけられたストリーミングデータを含むことができ、あるいは音声認識中に使用する音声の特徴を示す、前処理済みの音声データを含むことができる。別の実施形態では、クライアント側の処理に音声データの正規化も含むことができ、認識サーバ204が受け取る音声データが、クライアントごとに比較的均質になるようにする。これにより認識サーバ204の音声処理が簡略化され、認識サーバを、クライアントおよび通信経路のタイプにステートレスにすることができるので、認識サーバ204のスケーラビリティをより容易にすることができる。
【0062】
認識サーバ204から認識結果を受け取ると、その認識結果を対応するフィールドと関連付け、必要な場合はクライアント側で確認またはチェックを行うことができる。現在クライアントがレンダリングしているコードと関連付けられたすべてのフィールドを完了すると、アプリケーション処理のためにその情報をウェブサーバ202に送信する。前述の内容から、ウェブサーバ202は、認識に適したコードまたはページ/スクリプトをクライアント30に提供しているが、認識サービスはウェブサーバ202によっては行われず、認識サーバ204によって行われることが明白であろう。ただし、本発明は、認識サーバ204をウェブサーバ202とまとめて配置する、または認識サーバ204をクライアント30の一部とするような実施を排除するわけではない。すなわち、本明細書で提供するエクステンションは、認識サーバ204をウェブサーバ202またはクライアント30と組み合わせた場合でも有用である。これは、エクステンションが、これら構成要素間に単純かつ利便なインタフェースを提供するからである。
【0063】
図8に示す実施形態には示していないが、recoコントロールは、適切な音声データを認識サーバ204に導くためのリモートオーディオオブジェクト(RAO)も含むことができる。RAOをプラグインオブジェクトにすることによる利益は、サウンドインタフェースが異なる可能性が高いことから、異なるデバイスまたはクライアントそれぞれに異なるRAOを可能にすることである。さらに、リモートオーディオオブジェクトにより、複数のreco要素を同時に起動することが可能になる。
【0064】
図9および10は、本発明でページ/スクリプトを含むHTMLとして実施する音声のみによるマークアップ言語を示す。図に明瞭に示すように、このコードも本体部分300およびスクリプト部分302を含んでいる。マークアップ言語の別のエクステンション、すなわちバージインなどの属性を含むプロンプトコントロール303がある。ただし、図9および10の音声のみの実施形態では、音声認識を別の方式で行う。この場合は、プロセス全体を、未入力(unfilled)のフィールドを判定し、かつそれに対応するプロンプトおよび新しいオブジェクトを起動するスクリプト関数「checkFilled」によって制御する。しかし、上記で図8との関連で説明したのと同じコンテクストを使用して文法を起動し、音声データおよび使用する文法の指示を認識サーバ204に提供する。同様に、認識サーバ204から受け取った出力を、クライアント(この場合は電話音声ブラウザ212)のフィールドと関連付ける。
【0065】
一般に音声のみのアプリケーションに固有の他の機能は、音声が認識されなかった際にユーザにそれを知らせることである。図8のようなマルチモーダルのアプリケーションでは、「onNoReco」は、表示されるフィールドに単にヌル値を入れて、認識が行われなかったことを示すので、それ以上の動作は必要とされない。音声のみの実施形態では、「onNoReco」305は関数「mumble」を呼び出し、または実行する。この関数は、単語のフレーズを認識サーバ204に転送し、このフレーズは適切なテキストから音声に変換するシステム307(図5)を使用して音声に変換される。認識サーバ204は、オーディオストリームを電話音声ブラウザ212に戻し、次いでユーザが聴くためにそれを電話機80に送信する。同様に、音声のみのアプリケーションに実施するこの他の波形プロンプトも、必要な場合には認識サーバ204によりオーディオストリームに変換する。
【0066】
この例では、関数「welcome」を介してwelcomeプロンプトを再生すると、関数「checkFilled」がユーザに各フィールドを指示し、適切な文法を起動する。これには、入力されたフィールドを反復して、その情報が正しいことを確認することが含まれ、また「confirmation」文法の起動が含まれる。この実施形態では、各recoコントロールは、先の例の本体部分ではなくて、スクリプト部分302から開始されることに留意されたい。
【0067】
マークアップ言語は、異なるタイプのクライアントデバイス(例えば、マルチモーダル、および電話機のような非表示式、音声入力ベースのクライアントデバイス)で実行することができ、各クライアントデバイスと対話するウェブサーバのために、認識に関連するイベント、GUIイベント、および電話イベントのうち少なくとも1つを統一する。これは、ウェブサーバアプリケーションのかなりの部分を、汎用的に、あるいはクライアントデバイスのタイプに依存せずに書くことを可能にするので特に有用である。「handle」関数を含む一例を図8、および図9、10に示す。
【0068】
図9、10には示していないが、このマークアップ言語には、電話機能をサポートするエクステンションがさらに2つある。すなわち、DTMF(デュアルトーン変調周波)制御と、呼制御の要素またはオブジェクトである。DTMFは、recoコントロールと同様の働きをする。これは、キーパッドストリングからテキスト入力への単純な文法マッピングを指定する。例えば、「1」は食料品部門を意味し、「2」は薬品部門を意味するなどである。一方、呼オブジェクトは、呼の転送や第三者の呼出しのような電話機能を扱う。属性、プロパティ、メソッド、イベントについては付録で詳細に説明する。
【0069】
図11および12は、音声のみの動作モードに適したマークアップ言語のさらに別の例を示す。この実施形態では、ユーザは、情報をいつ入力するか、または話すかに関してある程度の制御権を有することができる。言い換えると、このシステムでは、発話を開始させるか、あるいはその他の方法で発話を開始するようにユーザに指示することができるが、ユーザは当初要求されるよりも多くの情報を提供することができる。これは、「混合主導型」の一例である。一般に、この形のダイアログ対話では、ユーザはダイアログの主導権をシステムと分かち合うことができる。上記で触れ、下記で詳細に説明する、ユーザがプロンプトに要求されるよりも多くの情報を提供する例のほかにも、ユーザはその指示がないときにタスクを切り替えることもできる。
【0070】
図11および12の例では、「do_field」と識別する文法は、文法「g_card_types」、「g_card_num」、および「g_expiry_date」と関連付けられた情報を含む。この例では、電話音声ブラウザ212は、「onReco」として示す認識済みの音声を受け取ると、電話機80から受け取った音声データと、「do_field」文法の使用の指示を認識サーバ204に送信し、関数「handle」が呼び出され、または実行されるが、これには音声データから認識されたフィールドの一部またはすべての値を関連付けることが含まれる。すなわち、認識サーバ204から得る結果は、各フィールドについての指示も含んでいる。この情報は構文解析し、405で指定されるバインド規則に従って対応するフィールドと関連付ける。図5に示すように、認識サーバ204はパーサ309を含むことができる。
【0071】
図7、8、9、10、11、および12から、非常に類似したウェブ開発フレームワークを使用する。データの提示も、これらの各場合で非常に類似している。さらに、データ提示とフロー制御を分離することにより、異なるアプリケーション(システム主導型と混合主導型)間、または異なるモダリティ間(GUIウェブベース、音声のみ、およびマルチモーダル)での再使用性を最大限にすることができる。また、これにより、電話機がディスプレイおよびデバイス30と同様の機能を含む場合に、音声のみの動作から電話、そしてマルチモーダル動作への自然な拡張が可能になる。付録Aでは、以上で説明したコントロールおよびオブジェクトの詳細をさらに提供する。
【0072】
上記で指摘したように、アップレベルブラウザは、上記の例で認識結果を割り当てるために関数「handle」を起動するなど、各種のニーズを実行するためにスクリプティングを使用することができる。上記で説明し、付録Aの2.1.2にさらに説明する実施形態では、「bind」要素は認識結果を構文解析し、値を割り当てるが、この「bind」要素は「reco」要素の下位要素または子要素である。
【0073】
スクリプティングは有用でありうるが、多くの者は、例えばセキュリティ問題などから必ずしも最良のブラウザ実装形態であるとは限らないと見ている。したがって、本発明のさらに別の実施形態または態様では、「bind」要素は(「reco」同様の)高レベル要素であり、他のより豊富なプロパティとともに提供され、実際、それ自体ではスクリプティングを用いずにスクリプティングを実際に模倣することができる。
【0074】
スクリプティングを用いない場合、あるいは下記で述べる本発明の態様を使用しない場合、高度なダイアログ効果など下記で述べる機能の一部は、ページを再度ウェブサーバ202に提出し、そこでアプリケーションロジックを実行して新しいページを生成し、そのページを再びクライアントデバイスに送信することによってのみ実現することができる。本発明のこの態様により、プログラマは、サーバへのラウンドトリップを招く(incur)ことなく、そのページのオブジェクトのメソッドを起動することができる。
【0075】
上記の実施形態では、「bind」要素は、認識結果をフォーム中またはウェブページ中のフィールドに割り当てるための属性「TargetElement」および「TargetAttribute」しか有さない。別の実施形態では、「bind」要素は、オブジェクトメソッドの起動のために加える「TargetMethod」も含む。「TargetMethod」の使用および機能は、スクリプティングの模倣にとって非常に重要な技術である。例えば、次の構文を使用して、オブジェクト「OBJ1」の「X」メソッドを起動することができる。
<bind TargetElement = "OBJ1" TargetMethod = "X" ...>
ここに示す例はHTML/XHTMLのイベント構文に従っているが、当業者にとっては、<bind>の使用を一般化して、他のイベンティング機構を使用することは平易であることに留意されたい。他のイベンティング機構には、W3Cドキュメントオブジェクトモデルレベル2またはレベル3のイベンティング規格、ECMA共通言語基盤(CLI)イベントモデル、Java(登録商標)プログラミング言語イベントモデル、W3C同期マルチメディア統合言語(SMIL)、および近く登場するW3CのXMLイベント規格提案が含まれるが、これらに限定するものではない。
【0076】
図17および18は、クライアント、特にダウンレベルブラウザで実行可能なマークアップ言語のページである。この例では、音声プロンプトを通じてユーザに希望する飲料を尋ねている。このシステムは次いで、どの飲料が注文されたかを確認する。認識結果に応じて、「bind」要素は、宣言した論理を使用して実行を導く。飲料を確認すると、そのフォームをウェブサーバ202に再度提出するが、これらにスクリプティングは一切用いない。
【0077】
一般に、図17および18のマークアップ例は、データ部分350、音声部分352、およびユーザインタフェース部分354、356、および358を含む。部分354は、全般的な質疑から、ユーザが希望する飲料についての認識結果を受け取り、対話式認識フローを誘導して、クリームや砂糖が必要かどうかについて再度指示を促し、尋ねるか、または注文された飲料を確認する。詳細には、部分356は、クリームや砂糖も注文された場合にはその認識結果を受け取る。部分358は、飲料の確認についての認識結果を受け取る。部分360は、新しいメッセージングオブジェクト「SMEX」を用いる呼制御部分である。「SMEX」については下記でさらに説明する。
【0078】
上記で指摘したように、本発明のこの態様の「bind」要素はオブジェクトメソッドの起動を含み、これは、「welcome」オブジェクトの「start」メソッドを361で実行する際に「welcome」プロンプトを再生することにより、図17および18の例でユーザ対話を開始する。
【0079】
次いで、362で「asked」オブジェクトの「start」メソッドを実行することにより、ユーザに「ご希望はコーラ、コーヒー、それともオレンジジュースですか?」と尋ねる。次いで、363で、認識「reco_drink」オブジェクトの「start」メソッドを起動することにより認識を実行する。
【0080】
次いで部分354のマークアップを実行するが、ここで認識サーバ204が使用する文法は、Xpathステートメント「./drink types」によって提供される。この例ではW3CのXpath言語を利用しているが、この概念を、他の標準的言語に拡張することは当業者にとって平易であることに留意されたい。他の標準的言語には、W3CによるXMLクエリ言語(XQL)を含むが、これに限定するものではない。「bind」要素364によって明確に示すように、認識サーバ204から受け取った認識結果の信頼度スコアが10未満である場合は、366でプロンプトオブジェクト「reprompt」を実行し、それに続いてプロンプトオブジェクト「ask」を368で実行し、この時に認識オブジェクト「reco_drink」を370で再度開始する。戻された認識結果が「coffee」で、それが10を超える信頼度を有する場合、372でフィールド「drink」に認識結果の値を割り当て、374でプロンプトオブジェクト「cream_sugar」により、クリームあるいは砂糖を希望するかしないかについてユーザに指示を促す。次いで、376で、部分356の認識オブジェクト「reco_cream_sugar」を起動する。そうでなく、認識結果が信頼度スコアは10を超えるがコーヒーでない場合は、378でフィールド「drink」に再度値を割り当てる。認識結果の確認は、プロンプトオブジェクト「confirm」を実行し、それに続いて部分358の認識オブジェクト「reco_yesno」を382で起動することにより、380で提供する。ユーザが「yes」と答え、その信頼度スコアが10を超える場合は、384でプロンプトオブジェクト「thanks」を再生し、次いで386でフォームを提出する。そうでなく、ユーザが「no」と答えた場合、あるいは認識結果の信頼度スコアが10未満の場合は、390でプロンプトオブジェクト「retry」を実行し、その後再度プロンプトオブジェクト「ask」を392で実行し、「reco_drink」認識オブジェクトを394で起動する。
【0081】
上の例から、「bind」要素により、部分354、356、または358で示すような複数のメソッド起動が可能になる。所望の場合は、認識済み結果の複数の割り当ても宣言することができる。ここで説明する実施形態では、複数の割り当ておよびメソッド起動を宣言する場合、それらはドキュメントの順序で実行する。
【0082】
別の実施形態では、メソッドの引き数を渡すための規則も提供される。すなわち、一部のメソッドは引き数のリストを必要とする場合がある。これは「arg」下位要素を使用して実現する。例えば、次のマークアップの場合、
<bind TargetElement = "OBJ" TargetMethod = "F"><arg>X</arg><arg>Y</arg></bind>
は、「OBJ.F(X,Y)」に等しい。すなわち「OBJ」は、パラメータすなわち引き数「X」および「Y」を用いるメソッド「F」を有するオブジェクトである。
【0083】
「bind」要素は「event」属性も含むことができ、これはそのバインド要素が対象とするイベントを宣言する。例えば、マークアップ
<bind event = "onNoReco" = TargetElement = "prompt1" TargetMethod = "start"/>
は、「onNoReco」イベントを送る際に、オブジェクト「prompt1」のメソッド「start」を起動することを意味する。例えば図8との関連で上記で説明したように、「bind」要素を「Reco」要素の子要素として使用するのに整合するように、「bind」要素のデフォルト属性は「onReco」にする。
【0084】
高レベル要素である「bind」要素は、付録の節2.4に明記するイベントをいずれも含むことができる。さらに、「bind」要素は、アクセスしてプログラムフローを指示するのに使用できる「status」属性を有する「onError」イベントも含むことができる。「bind」要素の他のイベントが「status」属性を有する限り、これらにもアクセスすることができる。
【0085】
認識結果の状態の確認に加えて、実行中の現在のドキュメントまたはページも確認することができる。詳細には、「test」および「value」の両属性を拡張して、それを含むドキュメントのルートノードを参照する「host」プリミティブを含ませることができる。例えば、再び図17および18を参照すると、ここに含まれる例は、ユーザがコーヒーを注文した際にクリームあるいは砂糖を希望するかどうかを尋ねる追加の論理を部分354に有する。クリームや砂糖を加え、したがって部分356を起動するためのフラグは、マークアップ「host()/get_drink/drink=′coffee′」の指定によって飲料フィールドが「コーヒー」である場合にのみオンになる。
【0086】
また、「bind」要素は音声サーバ204からの認識結果、値の受取り、およびそのドキュメント中への割り当てに適用できるだけでなく、メッセージオブジェクト(ここでは「smex」と表す。例えばクライアントデバイスで実行するアプリケーションからの)にも適用できることに留意されたい。図17および18の例では、クライアントデバイスで実行される電話アプリケーションが呼を検出すると、このページが実行される。部分360で、「bind」要素は、メッセージ「/Call_connected」を受け取ると、「welcome」プロンプトを実行または再生し、「reco_drink」オブジェクトを実行することにより認識を開始する。音声サーバ204から受け取る認識結果と同様に、受け取るメッセージも大きく異なる可能性がある。メッセージの一部は、所望のプログラムフローを開始するために明確に規定する。受け取って処理することのできるメッセージもある(例えば、認識サーバから受け取る認識結果と同様に構文解析を行う)。例えば、これにより、キーボードから入力するテキストの自然言語パーサのようにマークアップを使用できるようになる。付録Aのreco要素は、この機能を実行するためのプロパティを含んでいる。同様に、プロンプト要素を使用し、付録Aでさらに説明するプロパティ「innertext」を使用することにより、動的コンテンツまたはオーディオウェーブファイル用のテキストメッセージを提供することができる。イベンティングは、認識結果のためのイベンティングと同様のものでよい。例えば、イベンティングは「onReceived」を含むことができるが、これは、メッセージソース(例えばクライアントデバイスで実行するアプリケーション)が、ブラウザで使用できるメッセージを有する際に送られる。
【0087】
このように、「smex」すなわちメッセージオブジェクトにより、ここに述べるようなマークアップタグを、クライアントデバイスで実行される他のコンポーネントまたはアプリケーションに拡張することが可能になる。別の例として、このメッセージオブジェクトを使用して、クライアントデバイスで実行される聴覚障害者用のTTYコンポーネントと通信することができる。TTYコンポーネントは、音声認識を使用するのではなく、ユーザが入力した内容のメッセージを提供する。このメッセージはその後、認識結果を認識サーバから受け取った場合と同様に使用する。すなわち、メッセージを構文解析して、フォームのフィールドに割り当てるか、あるいは上記の「reco」、「grammar」、または「bind」要素を使用して他の処理を行うことができる。このメッセージまたは「smex」オブジェクトについては、付録Aでさらに説明する。
【0088】
「bind」要素は「for」属性も含むことができ、これにより、その動作をページ上の他のオブジェクトに付することができる。例えば次のマークアップ
<bind for = "prompt1" event = "onComplete" targetElement = "prompt2" = targetMethod = "start"/>
は、オブジェクト「prompt 1」がイベント「onComplete」を送ると、オブジェクト「prompt 2」のstartメソッドを起動する。
【0089】
再び図5を参照すると、ウェブサーバ202は、サーバ側のプラグイン宣言オーサリングツールすなわちモジュール320を含むことができる(例えば、マイクロソフト社によるASPまたはASP+、あるいはJSPなど)。サーバ側のプラグインモジュール320は、クライアント側のマークアップと、さらにはウェブサーバ202にアクセスするクライアントのタイプについて固有形態のマークアップも動的に生成することができる。クライアント情報は、クライアント/サーバ関係が最初に確立されたときにウェブサーバ202に提供することができ、ウェブサーバ202は、クライアントの機能を検出するモジュールまたはルーチンを含むことができる。この方式で、サーバ側のプラグインモジュール320は、それぞれの音声認識シナリオ、すなわち電話機80を通じた音声のみ、あるいはマルチモーダル型のデバイス30に対する、クライアント側のマークアップを生成することができる。一貫性のあるクライアント側モデルを使用することにより(各アプリケーションで使用できるrecoおよびプロンプトコントロール)、多数の異なるクライアントのアプリケーションオーサリングが大幅に容易になる。
【0090】
クライアント側マークアップの動的な生成に加えて、図8、9および10のマークアップ例を用いた、図6に示すようなクレジットカード番号の入手などの高レベルのダイアログモジュールは、アプリケーションオーサリングで開発者が使用するために、記憶装置324に記憶するサーバ側コントロールとして実施することができる。一般に、高レベルダイアログモジュール324は、開発者が指定するパラメータに基づいて、音声のみおよびマルチモーダルの両シナリオで、クライアント側のマークアップおよびスクリプトを動的に生成する。高レベルダイアログモジュールは、開発者のニーズに適合するクライアント側のマークアップを生成するためのパラメータを含むことができる。例えば、クレジットカード情報のモジュールは、クライアント側のマークアップスクリプトが許可すべきクレジットカードの種類を指定するパラメータを含むことができる。サーバ側プラグインモジュール320で使用するASP+ページの例を図13に示す。
【0091】
本発明について好ましい実施形態を参照して説明したが、当業者は、本発明の趣旨および範囲から逸脱せずに、形態および詳細を変更することが可能であることを理解されよう。
【0092】
付録A
1 概要
以下のタグは、ドキュメントが音声を入力媒体または出力媒体として使用することを可能にするマークアップ要素のセットである。これらのタグは、HTML、XHTML、cHTML、SMIL、WMLなど任意のSGML由来のマークアップ言語に埋め込むことのできる独立型(self−contained)XMLになるように設計されている。本発明で使用するタグは、ワシントン州レドモンドのマイクロソフト社から入手可能な周知の方法であるSAPI5.0に類似する。タグ、要素、イベント、属性、プロパティ、戻り値などは例示的なものに過ぎず、制限的なものと考えるべきではない。本明細書では音声およびDTMFの認識の場合の例を示すが、同様のタグは他の形の認識にも提供することができる。
【0093】
本明細書で論じる主な要素は以下である。
<prompt...> 音声合成の構成およびプロンプトの再生
<reco...> レコグナイザの構成、認識の実行、および後処理
<grammar...> 入力文法リソースの指定
<bind...> 認識結果の処理
<dtmf...> DTMFの構成および制御
【0094】
2 Reco
Reco要素は、可能なユーザ入力と、入力結果の処理手段とを指定するのに使用する。したがって、その主要な要素は<grammar>および<bind>にすることができ、またレコグナイザプロパティを構成するためのリソースを含む。
【0095】
Reco要素は、アップレベルブラウザではStartおよびStopのメソッドを介してプログラム的に、またはSMILを使用できるブラウザではSMILコマンドを使用して起動する。この要素は、ダウンレベルブラウザ(すなわちスクリプトをサポートしないブラウザ)では、それがページ上にあることにより宣言的にアクティブであると見なす。複数の文法を並行して起動することができるように、複数のReco要素を同時にアクティブと見なすことができる。
【0096】
Recoは特定のモード、すなわち「自動」「シングル」または「複数」をとることもでき、これによりそれが使用可能にする認識シナリオの種類と、認識プラットフォームの振る舞いを区別する。
【0097】
2.1 Recoの内容
Reco要素は、1つまたは複数の文法と、任意選択で、認識結果を調べ、関連性のある部分をそれを含むページ中の値にコピーするバインド要素のセットとを含む。
【0098】
アップレベルブラウザでは、Recoは、プログラム的な起動、および個々の文法規則の非活動化をサポートする。指定しない場合は、ある認識コンテキストについて、文法のすべての最上位の規則がアクティブになることにも留意されたい。
【0099】
2.1.1 <grammar>要素
文法要素は、インラインの、またはsrc属性を使用して参照する文法を指定するのに使用する。通例は少なくとも1つの文法(インラインまたは参照)を指定する。インライン文法はテキストベースの文法形式にすることができるのに対し、参照文法は、テキストベースまたはバイナリタイプにすることができる。複数の文法要素を指定することが可能である。複数の文法要素を指定する場合は、文法の規則を追加規則として同じ文法中に追加する。同じ名前の規則がある場合にはそれに上書きする。
【0100】
属性:
・src:インライン文法を指定する場合は任意選択。含める文法のURI。指定しない場合は、ある認識コンテキストについて、文法のすべての最上位規則がアクティブになることに留意されたい。
【0101】
・langID:任意選択。音声エンジンが使用する言語を指示するストリング。ストリングの形式は、xml:lang定義に従う。例えば、langID=“en−us”は、米国英語を表す。この属性は、langIDを文法URI中で指定しないときにのみ有効である。指定しない場合は、米国英語を使用する。
【0102】
langIDが複数の箇所で指定される場合、langIDは、最低の有効範囲からの優先順位に従う。すなわち、リモートの文法ファイル(つまりその文法ファイル中で指定される言語ID)、次いで文法要素、次いでreco要素の順となる。
Figure 0004467226
srcで参照する文法とインライン文法の両方を指定する場合は、インライン規則を参照規則に加え、同じ名前の規則があればそれに上書きする。
【0103】
2.1.2 <bind>要素
バインド要素は、認識結果の値をページ中にバインドするのに使用する。
【0104】
バインド要素によって消費される認識結果は、認識結果を指定するためのセマンティックマークアップ言語(SML)を含むXMLドキュメントでよい。その内容は、意味値、話された実際の単語、および信頼度スコアを含む。SMLは、代替の認識選択肢(N番目によい認識結果におけるものなど)も含むことができる。発声「I’d like to travel from Seattleto Boston(シアトルからボストンまで行きたい)」に対するSMLドキュメントの例を下に示す。
Figure 0004467226
【0105】
文法中(in−grammar)認識は、セマンティックマークアップ言語すなわちSMLでXMLドキュメントを生成することになっているので、SMLドキュメントからバインドする値は、XPathクエリを使用して参照する。また、値をバインドするページ中の要素(これはフォームコントロールである可能性が高い)は一意に識別すべきなので、これらのターゲット要素は直接参照する。
【0106】
属性:
・targetElement:必須。SMLからvalueの内容を割り当てる要素(W3C SMIL2.0と同様)。
【0107】
・targetAttribute:任意選択。SMLからvalueの内容を割り当てるターゲット要素の属性(SMIL2.0のattributeName属性と同様)。指定しない場合は、「value」になる。
【0108】
・test:任意選択。認識結果を割り当てる際の条件を指示するXML Pattern(W3C XMLDOM仕様と同様)ストリング。デフォルト条件は真。
【0109】
・value:必須。ターゲット要素に割り当てる認識結果ドキュメントの値を指定するXPATH(W3C XML DOM仕様と同様)ストリング。
【0110】
例:
上記のSMLのリターンを与えられると、以下のreco要素はバインドを使用して、origin_cityおよびdest_city中の値を、ターゲットページの要素txtBoxOriginおよびtxtBoxDestに転送する。
Figure 0004467226
このバインドは、バインド操作の事前条件としてdest_city結果の信頼度属性にテストを行う以下の例のように条件付きの場合もある。
Figure 0004467226
バインド要素は、ダウンレベルまたはアップレベルのブラウザで認識結果を処理する単純な宣言的手段である。より複雑な処理の場合、アップレベルブラウザによってサポートされるrecoDOMオブジェクトは、onRecoイベントハンドラを実装して、プログラム的なスクリプト分析と認識の戻しの後処理を行えるようにする。
【0111】
2.2 属性およびプロパティ
以下の属性はすべてのブラウザでサポートされ、プロパティはアップレベルブラウザによってサポートされる。
【0112】
2.2.1 属性
以下のRecoの属性は、ダイアログターンのために音声レコグナイザを構成するのに使用する。
【0113】
・initialTimeout:任意選択。認識の開始から音声の検出までのミリ秒単位の時間。この値は認識プラットフォームに渡され、これを超えた場合は、onSilenceイベントが認識プラットフォームから提供される(2.4.2参照)。指定しない場合、音声プラットフォームはデフォルト値を使用する。
【0114】
・babbleTimeout:任意選択。音声の検出後にレコグナイザが結果を戻さなければならないミリ秒単位の期間。自動モードおよびシングルモードのrecoの場合、これは音声検出からstop呼び出しまでの期間に該当する。「複数」モードのrecoの場合、このタイムアウトは、音声検出から各認識の戻しまでの期間に相当する。すなわち、各結果の戻しまたは他のイベントの後にこの期間を再び開始する。このタイムアウトを超えると、エラーの発生の有無に応じて異なるイベントを投入する。例えば、発声が例外的に長い場合など、レコグナイザがなおオーディオを処理している場合は、ステータスコード13により(2.4.4参照)onNoRecoイベントを投入する。ただし、何らかの他の理由でこのタイムアウトを超えた場合はレコグナイザのエラーである可能性がより高くなり、onTimeoutイベントを投入する。指定しない場合、音声プラットフォームは内部値を使用する。
【0115】
・maxTimeout:任意選択。認識の開始からブラウザに結果を戻すまでのミリ秒単位の期間。これを超えると、ブラウザによってonTimeoutイベントが投入され、これにより分散環境におけるネットワークまたはレコグナイザの障害に対処(cater for)する。「複数」モードのrecoの場合は、babbleTimeoutと同様に、各認識の戻しまたは他のイベントの後にこの期間を再度開始する。maxTimeout属性は、initialTimeoutとbabbleTimeoutの合計よりも大きくするか、または等しくすべきであることに留意されたい。指定しない場合、この値はブラウザのデフォルトになる。
【0116】
・endSilence:任意選択。自動モードのRecoの場合、認識結果を戻すまでの、音声があってはならない発話終了後のミリ秒単位の無音期間。自動モード以外のモードのrecoについては無視する。指定しない場合は、プラットフォームの内部値になる。
【0117】
・reject:任意選択。認識拒絶の閾値。これを下回ると、プラットフォームは「no reco」イベントを投入する。指定しない場合、音声プラットフォームはデフォルト値を使用する。信頼度スコアは、0から100の範囲(整数)。拒絶値はこの範囲内にある。
【0118】
・server:任意選択。音声プラットフォームのURI(タグインタープリタと認識プラットフォームをまとめて配置しない場合に使用する)。値の例は、server=protocol://yourspeechplatformなどとなる。アプリケーションの作成者(author)は、URIストリングにクエリストリングを加えることにより、音声プラットフォームに固有の設定を提供することもできる。例:protocol://yourspeechplatform?bargeinEnergyThreshold=0.5。
【0119】
・langID:任意選択。音声エンジンが使用する言語を指定するストリング。ストリング形式は、xml:lang 定義に従う。例えば、lang=“en−us”は米国英語を表す。この属性は、文法要素中でlangIDを指定しない場合のみに有効である(2.1.1参照)
・mode:任意選択。とるべき認識モードを指定するストリング。指定しない場合は、「自動」モードになる。
【0120】
2.2.2 プロパティ
以下のプロパティは、認識プロセスによって戻される結果を含む(これらはアップレベルブラウザにサポートされる)。
【0121】
・recoResult:読み取り専用。認識の結果、2.1.2で述べたように、セマンティックマークアップ言語(SML)を含むXML DOMノードオブジェクト中に保持される。認識が行われなかった場合、このプロパティはヌルに戻る。
【0122】
・text:読み取り/書き込み。認識された単語のテキストを保持するストリング(すなわち、読み取りモードにおけるrecoResult中のSML認識の戻しの中の最上位要素のテキスト属性の内容を表す省略表現)。書き込みモードでは、ストリングを割り当てることができ、次いでそのストリングが認識結果に対応するものとしてそれを構文解析する。書き込みモードでは、このマークアップタグおよびその処理を、クライアントデバイスの他のコンポーネントまたはアプリケーションに拡張することができる。このストリングは、「smex」メッセージオブジェクトから得られる。
【0123】
・status:読み取り専用。認識プラットフォームが返すステータスコード。可能な値は、認識が成功した場合の0、あるいは障害値−1から−4(Startメソッド(節2.3.1)およびActivateメソッド(節2.3.4)で可能な例外で定義する)、およびレコグナイザイベントを受け取った際にセットされるステータス−11から−15(2.4参照)。
【0124】
2.3 オブジェクトメソッド
recoの起動および文法の起動は、RecoのDOMオブジェクト中の以下のメソッドを使用して制御することができる。これらのメソッドにより、アップレベルブラウザはRecoオブジェクトの開始および中止、進行中の認識のキャンセル、個々の文法のトップレベルの規則の起動および非活動化を行うことができる(アップレベルブラウザのみ)。
【0125】
2.3.1 Start
Startメソッドは、明示的には非活動化していない認識コンテキストについてのすべての最上位規則をアクティブな文法として使用して認識プロセスを開始する。
【0126】
構文:Object.Start( )
戻り値:なし
例外:このメソッドは、非ゼロのステータスコードをセットし、障害があった際はonNoRecoイベントを発生させる。可能性のある障害には、文法が存在しない(recoステータス=−1)、文法のコンパイルの失敗、存在しないURIなど様々な原因になりうる文法のロードの失敗(recoステータス=−2)、あるいは音声プラットフォームのエラー(recoステータス=−3)などが含まれる。
【0127】
2.3.2 Stop
Stopメソッドは、認識プロセスを終了する呼び出しである。Recoオブジェクトはオーディオの記録を中止し、レコグナイザは、記録が中止される時点までに受け取ったオーディオについての認識結果を戻す。Recoが使用するすべての認識リソースは解放され、その文法は非活動化される。(このメソッドは、自動モードによる通常の認識には明示的に使用する必要がないことに留意されたい。これは、レコグナイザ自体が、完全な文を認識した後のエンドポイント検出においてrecoオブジェクトを中止するからである。)Recoが開始されていない場合、この呼び出しは効果を持たない。
【0128】
構文:Object.Stop( )
戻り値:なし
例外:なし
【0129】
2.3.3 Cancel
Cancelメソッドは、レコグナイザへのオーディオの供給を中止し、文法を非活動化し、レコグナイザを解放し、すべての認識結果を破棄する。ブラウザは、キャンセルされた認識についての認識結果は破棄する。レコグナイザが開始されていない場合、この呼び出しは効果を持たない。
【0130】
構文:Object.Cancel( )
戻り値:なし
例外:なし
【0131】
2.3.4 Activate
Activateメソッドは、文脈自由文法(CFG)の最上位規則を起動する。起動は、「開始された」認識プロセス中には効果を持たないので、認識が開始する前に呼び出さなければならない。明示的に非活動化していない認識コンテキストについてのすべての文法の最上位規則は、すでにアクティブであると見なすことに留意されたい。
【0132】
構文:Object.Activate(strName)
パラメータ:
・strName:必須。起動する規則名。
戻り値:なし
例外:なし
【0133】
2.3.5 Deactivate
このメソッドは、文法中のトップレベル規則を非活動化する。その規則が存在しない場合、このメソッドは効果を持たない。
構文:Object.Deactivate(strName)
パラメータ:
・strName:必須。非活動化する規則名。空ストリングはすべての規則を非活動化する。
戻り値:なし
例外:なし
【0134】
2.4 Recoイベント
Reco DOMオブジェクトは以下のイベントをサポートし、そのハンドラはreco要素の属性として指定することができる。
【0135】
2.4.1 onReco:
このイベントは、レコグナイザが、そのブラウザで利用することのできる認識結果を得ると起動される。自動モードのrecoの場合、このイベントは認識プロセスを自動的に中止し、リソースをクリアする(2.3.2参照)。onRecoは通例、認識結果のプログラム的な分析と、ページ中への結果の処理に使用される。
【0136】
構文:
【0137】
【表1】
Figure 0004467226
【0138】
イベントオブジェクト情報:
【0139】
【表2】
Figure 0004467226
【0140】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる(下記の例のイベントオブジェクトの使用を参照のこと)。
【0141】

次のXHTMLの断片ではonRecoを使用して、認識結果を構文解析し、その値を適切なフィールドに割り当てるスクリプトを呼び出している。
Figure 0004467226
【0142】
2.4.2 onSilence:
onSilenceは、RecoのinitialTimeout属性で指定された時間が過ぎる前に、認識プラットフォームが検出した無音声のイベントに対処する(2.2.1参照)。このイベントは、自動認識モードの認識プロセスを自動的にキャンセルする。
【0143】
構文:
【0144】
【表3】
Figure 0004467226
【0145】
イベントオブジェクト情報:
【0146】
【表4】
Figure 0004467226
【0147】
イベントプロパティ:
イベントハンドラは、プロパティを直接受け取ることはないが、ハンドラはデータについてイベントオブジェクトに照会を行うことができる。
【0148】
2.4.3 onTimeout
onTimeoutは、通例は音声プラットフォームからのエラーを反映する2タイプのイベントを扱う。
【0149】
・認識が完了する前にmaxTime属性で指定された期間を過ぎた(2.2.1参照)ことを通知する、タグインタープリタが投入するイベントを扱う。このイベントは通例、分散型アーキテクチャで生じうる問題を反映する。
【0150】
・また、(ii)認識が開始されたが、babbleTimeoutで指定された期間内に認識がないまま処理が中止した際に、音声認識プラットフォームが投入するイベントも扱う(2.2.1参照)。
【0151】
このイベントは、認識プロセスを自動的にキャンセルする。
【0152】
構文:
【0153】
【表5】
Figure 0004467226
【0154】
イベントオブジェクト情報:
【0155】
【表6】
Figure 0004467226
【0156】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる。
【0157】
2.4.4 onNoReco:
onNoRecoは、有効な認識結果を戻すことができない際に音声認識プラットフォームが投入するイベント用のハンドラである。それが発生しうる異なるケースは、ステータスコードで区別する。このイベントは認識プロセスを自動的に中止する。
【0158】
構文:
【0159】
【表7】
Figure 0004467226
【0160】
イベントオブジェクト情報:
【0161】
【表8】
Figure 0004467226
【0162】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、データについてこのイベントオブジェクトに照会を行うことができる。
【0163】
3 プロンプト
プロンプト要素は、システム出力を指定するのに使用する。その内容は以下の1つまたは複数にすることができる。
【0164】
・インラインテキストまたは参照テキスト。これは、韻律的な(prosodic)またはその他の音声出力情報でマークアップすることができる。
・レンダリング時にそれを含むドキュメントから取り出す変数値。
・オーディオファイルへのリンク。
【0165】
プロンプト要素は、ダウンレベルブラウザによって宣言的に解釈する(あるいはSMILコマンドで起動する)ことも、アップレベルブラウザのオブジェクトメソッドによって宣言的に解釈することもできる。
【0166】
3.1 プロンプト内容
プロンプト要素は、テキストまたはオーディオファイルへのリファレンスの形で、あるいはこの両方の形でシステム出力用のリソースを含む。
【0167】
簡単なプロンプトは、出力に必要なテキストだけを指定すればよい。例えば、
Figure 0004467226
この簡単なテキストは、下記に説明する種類のどのマークアップもさらに含むことができる。
【0168】
3.1.1 音声合成マークアップ
このプロンプト要素の内部では、どの形式の音声合成マークアップ言語でも使用することができる。(この形式は、3.2.1で説明する「tts」属性で指定することができる。)次の例は、その中の特定の単語を強調する命令を含むテキストを示している。
Figure 0004467226
【0169】
3.1.2 動的な内容
このプロンプトの実際の内容は、プロンプトの出力の直前にクライアントで計算する必要がある場合がある。例えば特定の値を確定するには、ある変数にその値をデリファレンスする必要がある。この値要素はこの目的に使用することができる。
【0170】
値要素
value:任意選択。ドキュメント中の要素の値を取り出す。
属性:
・targetElement:任意選択。hrefまたはtargetElementを指定しなければならない。取り出す値を含む要素のID。
・targetAttribute:任意選択。値を取り出す要素の属性。
・href:任意選択。オーディオセグメントのURI。両方ある場合には、hrefがtargetElementを上書きする。
【0171】
targetElement属性は、それを含むドキュメント中の要素を参照するのに使用される。targetElementによってIDが指定された要素の内容を、合成するテキストに挿入する。所望の内容がその要素の属性に保持されている場合、targetAttributeを使用して、targetElementの必要な属性を指定することができる。これは、例えば、HTMLフォームコントロール中の値をデリファレンスするのに有用である。下の例では、「txtBoxOrigin」要素および「txtBoxDest」要素の「value」属性を、プロンプトの出力前にテキストに挿入している。
Figure 0004467226
【0172】
3.1.3 オーディオファイル
この値要素は、合成したプロンプトの代わりに、あるいはその中で再生するあらかじめ記録したオーディオファイルを参照するのにも使用することができる。次の例では、プロンプトの最後にビープ音を鳴らしている。
Figure 0004467226
【0173】
3.1.4 参照プロンプト
インラインの内容を指定する代わりに、src属性を空要素とともに使用し、URIを介して外部の内容を参照することができる。例えば、
Figure 0004467226
src属性の対象は、インラインプロンプトに指定する上記の内容の任意部分またはすべてを保持することができる。
【0174】
3.2 属性およびプロパティ
このプロンプト要素は、以下の属性(ダウンレベルブラウザ)およびプロパティ(ダウンレベルおよびアップレベルブラウザ)を保持する。
【0175】
3.2.1 属性
・tts:任意選択。テキストから音声への合成用のマークアップ言語タイプ。デフォルトは「SAPI 5」。
【0176】
・src:インラインプロンプトを指定する場合は任意選択。参照するプロンプトのURI(3.1.4参照)。
【0177】
・bargein:任意選択。整数。プロンプトの開始から、人間の聴者が再生を中断できるようになるまでのミリ秒単位の時間。デフォルトは無限、すなわちバージインを許可しない。bargein=0にすると、即時のバージインが可能になる。これは、プラットフォームがサポートするどの種のバージインにも該当する。recoを開始する時間にどちらを使用可能にするかに応じて、キーワードまたはエネルギーベースのバージイン時間をこの方式で構成することができる。
【0178】
・prefetch:任意選択。ページをロードする際にプロンプトを直ちに合成して、ブラウザにキャッシュするかどうかを示すブールフラグ。デフォルトは偽。
【0179】
3.2.2 プロパティ
アップレベルブラウザは、プロンプトのDOMオブジェクト中の以下のプロパティをサポートする。
【0180】
・bookmark:読み取り専用。遭遇した最後の合成ブックマークのテキストを記録するストリングオブジェクト。
【0181】
・status:読み取り専用。音声プラットフォームから戻されるステータスコード。
【0182】
・innertext:読み取り専用。このプロパティはプロンプトのテキストの複写(transcription)を提供し、それがシンセサイザに送られる。例えば、あるプロンプトがオーディオウェーブファイルの再生を含む場合、このプロパティはそのプロンプトのテキストバージョン(オーディオウェーブファイルとともに記憶することが多い)を提供し、これはその後、例えばクライアントデバイスで実行するコンポーネントまたはアプリケーションにプロンプトのテキストバージョンを提供することにより、表示するか、またはその他の形で使用することができる。またinnertextプロパティを使用して、動的コンテンツを含むプロンプトのテキストバージョンも提供することができる。
【0183】
3.3 プロンプトメソッド
プロンプトの再生は、プロンプトのDOMオブジェクト中の以下のメソッドを使用して制御することができる。この方式により、アップレベルブラウザは、プロンプトオブジェクトを開始および停止し、進行中のプロンプトを一時停止および再開し、合成音声のスピードおよび音量を変えることができる。
【0184】
3.3.1 Start
プロンプトの再生を開始する。引き数が与えられない限り、このメソッドはオブジェクトの内容を再生する。所与の時間に単一のプロンプトオブジェクトだけが「開始される」と考えられるので、Startを連続して呼び出すとすべての再生が連続的に再生される。
【0185】
構文:Object.Start([strText])
パラメータ:
・strText:シンセサイザに送信するテキスト。存在する場合にはこの引き数がオブジェクトの内容を上書きする。
戻り値:なし
例外:サーバがすでにオーディオバッファを開放している場合には、ステータス=−1にセットし、onCompleteイベントを発生させる。
【0186】
3.3.2 Pause
オーディオバッファをフラッシュすることなく再生を一時停止する。このメソッドは、再生を一時停止または停止している場合には効果を持たない。
構文:Object.Pause( );
戻り値:なし
例外:なし
【0187】
3.3.3 Resume
オーディオバッファをフラッシュすることなく再生を再開する。このメソッドは、再生が一時停止状態にない場合は効果を持たない。
構文:Object.Resume( );
戻り値:なし
例外:再開が失敗した際に例外を投入する。
【0188】
3.3.4 Stop
再生がまだ中止されていない場合に再生を中止し、オーディオバッファをフラッシュする。再生がすでに中止されている場合、このメソッドは単にオーディオバッファをフラッシュする。
構文:Object.Stop( );
戻り値:なし
例外:なし
【0189】
3.3.5 Change
再生の速度および/または音量を変更する。Changeは再生中に呼び出すことができる。
【0190】
構文:Object.Change(speed,volume);
パラメータ:
・speed:必須。変化させる係数。
speed=2.0は、現在の速度を2倍にすることを意味し
speed=0.5は、現在の速度の2分の1にすることを意味し、
speed=0は、デフォルト値に戻すことを意味する。
・volume:必須。変化させる係数。
volume=2.0は、現在の音量を倍にすることを意味し、
volume=0.5は、現在の音量を半分にすることを意味し、
volume=0は、デフォルト値に戻すことを意味する。
戻り値:なし
例外:なし
【0191】
3.3.6 プロンプトコントロールの例
次の例は、キーワードバージインの機構をサポートしないプラットフォームに対して、上記のメソッドを使用するプロンプトコントロールをオーサリングする仕組みを示している。
Figure 0004467226
水曜日の株式市場も、投資家が、来週の連邦準備理事会の会合に先立ち大きな動きにつながる材料を得られなかったことから展開に活気がありませんでした。ハイテク銘柄中心のナスダック総合指数は42.51ポイント下落し、2156.26で取引を終えました。ダウジョーンズ工業平均株価は、午後に入って反騰がなく17.05ポイント下落して10866.46で取引を終えました。
Figure 0004467226
【0192】
3.4 プロンプトイベント
プロンプトDOMオブジェクトは以下のイベントをサポートするが、そのハンドラはプロンプト要素の属性として指定することができる。
【0193】
3.4.1 onBookmark
合成ブックマークに遭遇すると発生する。このイベントは再生を一時停止しない。
【0194】
構文:
【0195】
【表9】
Figure 0004467226
【0196】
イベントオブジェクト情報:
【0197】
【表10】
Figure 0004467226
【0198】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる。
【0199】
3.4.2 onBargein:
ユーザのバージインイベントを検出すると発生する。(例えばエネルギー検出やキーワード認識など、何がバージインイベントを構成するかの決定はプラットフォームによることに留意されたい。)このイベントハンドラを指定しても、自動的にバージイン機能がオンになるわけではない。
【0200】
構文:
【0201】
【表11】
Figure 0004467226
【0202】
イベントオブジェクト情報:
【0203】
【表12】
Figure 0004467226
【0204】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる。
【0205】
3.4.3 onComplete:
プロンプトの再生が最後に達するか、または例外(上記に定義)に遭遇すると発生する。
【0206】
構文:
【0207】
【表13】
Figure 0004467226
【0208】
イベントオブジェクト情報:
【0209】
【表14】
Figure 0004467226
【0210】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる。
【0211】
3.4.4 ブックマークおよびイベントの使用
次の例は、プロンプトの出力中にバージインが行われた場合に、ブックマークイベントを使用して、出発地の訂正か目的地の提供のいずれかであるユーザ応答の意味を判定する仕組みを示している。onBargeinハンドラが、プロンプト中に遭遇した最後のブックマークにグローバルな「mark」変数を設定するスクリプトを呼び出し、この「mark」の値をrecoの後処理関数(「heard」)で使用して、正しい値をセットしている。
【0212】
Figure 0004467226
Figure 0004467226
【0213】
4 DTMF
DTMF認識オブジェクトを作成する。このオブジェクトは、インラインのマークアップ言語構文を使用して、あるいははスクリプト中にインスタンス化することができる。起動すると、DTMFにより、プロンプトオブジェクトがバージインイベントを発生することができる。下記でDTMFとの関連で説明するタグおよびイベンティング、および節5で説明する呼制御は、一般には、音声ブラウザ216とメディアサーバ214間の対話に関連するものであることに留意されたい。
【0214】
4.1 内容
・dtmfgrammar:インライン文法
・bind:DTMFの変換結果を適切なフィールドに割り当てる
属性:
・targetElement:必須。部分的な認識結果を割り当てる要素(参照:W3C SMIL2.0に同じ)。
・targetAttribute:認識結果を割り当てるターゲット要素の属性(参照:SMIL2.0に同じ)。デフォルトは「value」。
・test:割り当ての条件。デフォルトは真。
【0215】
例1:テキストにキーをマッピングする
Figure 0004467226
「city_choice」を起動して、ユーザが1を押すと「Seattle」が入力フィールドに割り当てられ、2を押すと「Boston」が割り当てられ、その他の場合は何も割り当てられない。
【0216】
例2:どのようにしてDTMFを複数フィールドに使用することができるか
Figure 0004467226
この例は、いかにしてユーザが複数フィールドに入力するのを可能にするかをを示している。
【0217】
例3:音声入力およびDTMF入力をともに許可し、ユーザがDTMFを開始した際に音声を使用不可にするには
Figure 0004467226
【0218】
4.2 属性およびプロパティ
4.2.1 属性
・dtmfgrammar:必須。DTMF文法のURI。
【0219】
4.2.2 プロパティ
・DTMFgrammar 読み取りおよび書き込み。
ストリング変換行列に対するDTMFを表すXML DOM ノードオブジェクト(DTMF文法とも呼ぶ)。デフォルト文法は、
Figure 0004467226
【0220】
・flush
読み取り/書き込み。起動の前に、基礎となる電話インタフェースカードのDTMFバッファを自動的にフラッシュするかどうかを示すブールフラグ。デフォルトは偽になり、タイプアヘッドを使用可能にする。
【0221】
・escape
読み取り/書き込み。DTMF読み取りセッションを終了するエスケープキー。エスケープキーはワンキーである。
【0222】
・numDigits
読み取り/書き込み。DTMF読み取りセッションを終了させるキーストローク数。エスケープおよび長さの両方を指定した場合は、どちらかの条件を満たすとDTMFセッションが終了される。
【0223】
・dtmfResult
読み取り専用ストリング。ユーザが入力したDTMFキーを記憶する。タイプした場合はescapeが結果に含まれる。
【0224】
・text
読み取り専用ストリング。空白で分離されたトークンストリングを記憶し、各トークンはDTMF文法に従って変換する。
【0225】
・initialTimeout
読み取り/書き込み。最初のDTMFキーストロークを受け取るまでのミリ秒単位のタイムアウト期間。指定しない場合は、電話プラットフォームの内部設定になる。
【0226】
・interdigitTimeout
読み取り/書き込み。次の(adjacent)DTMFキーストロークまでのミリ秒単位のタイムアウト期間。指定しない場合は、電話プラットフォームの内部設定になる。
【0227】
4.3 オブジェクトメソッド:
4.3.1 Start
DTMFの割り込みを可能にし、DTMF読み取りセッションを開始する。
構文:Object.Start( );
戻り値:なし
例外:なし
【0228】
4.3.2 Stop
DTMFを使用不可にする。ただし、ユーザが入力したキーストロークはバッファに残る。
構文:Object.Stop( );
戻り値:なし
例外:なし
【0229】
4.3.3 Flush
DTMFバッファをフラッシュする。Flushは、DTMFセッション中には呼び出すことができない。
構文:Object.Flush( );
戻り値:なし
例外:なし
【0230】
4.4 イベント
4.4.1 onkeypress
DTMFキーを押すと発生する。これは、HTMLコントロールから継承したデフォルトイベントを上書きする。ユーザがエスケープキーを押すと、onKeypressではなくonRecイベントが発生する。
【0231】
構文:
【0232】
【表15】
Figure 0004467226
【0233】
イベントオブジェクト情報:
【0234】
【表16】
Figure 0004467226
【0235】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる。
【0236】
4.4.2 onReco
DTMFセッションを終了すると発生する。このイベントは、現在のDTMFオブジェクトを自動的に使用不可にする。
【0237】
構文:
【0238】
【表17】
Figure 0004467226
【0239】
イベントオブジェクト情報:
【0240】
【表18】
Figure 0004467226
【0241】
イベントプロパティ:イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる。
【0242】
4.4.3 onTimeout
タイムアウトまでに、句の終了イベントを受け取らないと発生する。このイベントは、認識プロセスを自動的に停止する。
【0243】
構文:
【0244】
【表19】
Figure 0004467226
【0245】
イベントオブジェクト情報:
【0246】
【表20】
Figure 0004467226
【0247】
イベントプロパティ:
イベントハンドラはプロパティを直接受け取ることはないが、ハンドラはデータについてこのイベントオブジェクトに照会を行うことができる。
【0248】
5 CallControlオブジェクト
電話音声ブラウザの電話インタフェース(呼、端末、および接続)を表す。このオブジェクトは、GUIブラウザ中のwindowオブジェクトと同様にネイティブである。したがって、電話オブジェクトの寿命はブラウザインスタンス自体と同じである。電話用の音声ブラウザは、呼ごとに1つの電話オブジェクトをインスタンス化する。ユーザは、このオブジェクトをインスタンス化または配置しない。
【0249】
この点で、このオブジェクトを通じて、ファーストパーティの呼の制御に関連する機能のみを示す。
【0250】
5.1 プロパティ
・address
読み取り専用。XML DOM ノードオブジェクト。実装固有。これは発呼者のアドレスである。PSTNの場合は、ANIとALIの組合せにすることができる。VoIPの場合、これは発呼者のIPアドレスになる。
【0251】
・ringBeforeAnswer
着信呼に応答するまでの着信音の回数。デフォルトは無限。すなわち、開発者は下記のAnswer( )メソッドを明確に使用して、電話呼に応答しなければならない。コールセンタでACDを使用して着信電話呼をキューに入れる場合、この回数は0にセットしてよい。
【0252】
5.2 メソッド
注:ここに示すメソッドはすべて非同期である。
【0253】
5.2.1 Transfer
呼を転送する。ブラインド転送の場合、システムは転送が完了すると元の呼を終了し、システムリソースを解放する。
構文:telephone.Transfer(strText);
パラメータ:
・strText:必須。意図する受信者のアドレス。
戻り値:なし
例外:例えばエンドパーティが話中である、番号が存在しない、ファックスまたは留守番電話が応答するなど、呼の転送が失敗すると例外を投入する。
【0254】
5.2.2 Bridge
サードパーティへの転送。呼を転送すると、ブラウザはその呼に割り当てられていたリソースを解放することができる。転送した呼がstrUIDを使用して戻ってきた際にセッション状態を回復するかはアプリケーション次第である。基礎となる電話プラットフォームは、戻ってきた呼を異なるブラウザに経路指定することができる。呼は、受信者がその呼を終了した際のみ戻ることができる。
【0255】
構文:telephone.Bridge(strText,strUID,[imaxTime]);
パラメータ:
・strText:必須。意図する受信者のアドレス。
・strUID:必須。現在の呼を一意に識別するセッションID。転送した呼が戻される場合、strUIDがアドレス属性に示される。
・imaxTime:任意選択。秒単位の転送呼の最大持続時間。指定しない場合は、プラットフォームの内部値になる。
戻り値:なし
例外:なし
【0256】
5.2.3 Answer
電話呼に応答する。
構文:telephone.Answer( );
戻り値:なし
例外:接続がない際に例外を投入する。この場合onAnswerイベントは発生しない。
【0257】
5.2.4 Hangup
電話呼を終了する。その時進行中の呼がない場合は効果を持たない。
構文:telephone.Hangup( );
戻り値:なし
例外:なし
【0258】
5.2.5 Connect
ファーストパーティへのアウトバウンドの電話呼を開始する。
構文:telephone.Connect(strText[iTimeout]);
パラメータ:
・strText:必須。意図する受信者のアドレス。
・iTimeout:任意選択。接続の試みを断念するまでのミリ秒単位の時間。指定しない場合は、プラットフォームの内部値になる。
戻り値:なし
例外:話中音の遭遇、あるいはファックスや留守番電話への到達を含め、呼を完了することができないと例外を投入する(注:ハードウェアがこの機能をサポートしない場合もある)。
【0259】
5.2.6 Record
ユーザオーディオをファイルに記録する。
【0260】
構文:telephone.Record(url,endSilence,[maxTimeout],[initialTimeout]);
パラメータ:
・url:必須。記録された結果のURL。
・endSilence:必須。無音の検出後に記録を中止するミリ秒単位の時間。
・maxTimeout:任意選択。記録を行う秒単位の最大時間。デフォルトはプラットフォーム固有になる。
・initialTimeout:任意選択。記録の開始時に許される無音の最大時間(ミリ秒)。
戻り値:なし
例外:記録をURLに書き込めない際に例外を投入する。
【0261】
5.3 イベントハンドラ
電話音声ブラウザを使用するアプリケーション開発者は、以下のイベントハンドラを実装することができる。
【0262】
5.3.1 onIncoming( )
音声ブラウザが着信電話呼を受信すると呼び出される。すべての開発者は、電話呼に応答する前にこのハンドラを使用して発呼者のアドレスを読み取り、カスタマイズした機能を起動することができる。
【0263】
5.3.2 onAnswer( )
音声ブラウザが着信呼に応答すると呼び出される。
【0264】
5.3.3 onHangup( )
ユーザが電話を切ると呼び出される。このイベントは、プログラムがHangupメソッドまたはTransferメソッドを呼び出しても自動的には発生しない。
【0265】
5.4 例
この例は、電話セッションを操作するために呼制御イベントに結合(wire)したスクリプティングを示す。
Figure 0004467226
Figure 0004467226
Figure 0004467226
Figure 0004467226
【0266】
6 ダイアログフローの制御
6.1 HTMLおよびスクリプトを使用してダイアログフローを実装する
次の例は、入力ボックスの値を探して、入力に対して状況依存型のヘルプを提供する単純なダイアログフローの実装方法を示している。これは、HTML入力機構のタイトル属性(視覚ブラウザで「ツールチップ」機構として使用される)を使用して、ヘルププロンプトの内容を形成するのを補助する。
Figure 0004467226
Figure 0004467226
Figure 0004467226
【0267】
6.2 SMILを使用する
次の例は、SMIL機構を使用したプロンプトおよびreco要素の起動を示す。
Figure 0004467226
Figure 0004467226
【0268】
7.SMEX(メッセージ)要素/オブジェクト
SMEXは、Simple Messaging EXchange/EXtensionの略語であるが、これは、クライアントデバイスのプラットフォーム上の外部コンポーネントまたはアプリケーションと通信するオブジェクトである。これは、タグ名<smex>を有する要素として、XMLまたはそれに類似のマークアップベースのドキュメント中に埋め込むことができる。このメッセージングオブジェクトの使用例には、ロギングおよび電話制御を含むことができる。このオブジェクトは、メッセージングを通じて新しい機能を追加することを可能にすることから、マークアップベースの認識およびプロンプティング(prompting)の拡張性を表す。
【0269】
インスタンスを生成すると、このオブジェクトは、その構成パラメータまたは属性指定を通じて、プラットフォームコンポーネントまたはアプリケーションとの非同期のメッセージ交換経路を確立するように指示を受ける。このオブジェクトはストリングプロパティを有し、そのプロパティが割り当て動作(すなわちlvalue)を受ける対象である場合には、必ずその内容がプラットフォームコンポーネントまたはアプリケーションに送られる。同様に、このオブジェクトは、プラットフォームコンポーネントまたはアプリケーションから受け取ったメッセージを保持する、XML DOMノードタイプのプロパティも有する。このメッセージオブジェクトは、プラットフォームメッセージを受け取ると必ずイベントを送る。このオブジェクトは、その基本動作が非同期なので、アプリケーション開発者がタイムアウト設定を操作するための内蔵クロックも有する。
【0270】
メッセージまたはsmexオブジェクトは、通信手段にとってアグノスティック(agnostic)である。しかし、一実施形態では、smexオブジェクトは、通常のXMLやマークアップ要素と同じ寿命を有する。すなわち、smexオブジェクトは、それをホストするドキュメントをアンロードすると消滅する。多くのケースでは、smexオブジェクトはアンロードされると自動クリーンアップを実行し、通信リソースを解放することができるが、マークアップページ間で永続的な通信リンクが望ましい使用事例(例えば呼の制御など)もありうる。そのような事例のために、このアーキテクチャでは、割り振られたリソースを解放する(例えばソケットを閉じるなど)責任をアプリケーション開発者に課す。
【0271】
smexオブジェクトは、メッセージのフォーマット(スキーマ)についてはニュートラルである。実施形態によっては、既存の標準的なメッセージフォーマット(例えばSTPまたはCCXMLで使用するものなど)をまず優先して、実装者がいくつかの基本的スキーマをサポートすることを必要とするのが望ましい場合もある。基本的に、このアーキテクチャは、プラットフォーム開発者およびアプリケーション開発者の両者が、XMLあるいはそれに類似のマークアップの規格化された拡張性を最大限に活用して、一方では相互操作性を失うことなく他の機能を導入することを可能にする。
【0272】
Figure 0004467226
【0273】
この例は、COMオブジェクトをそのクラスIDおよびインタフェースIDとともに使用して、ロギング機構を実現する仕組みを示している。音声開発者は、関連するSMLノードにロギングするための当該レベルを示す属性「log」を付加する。上の例では、アプリケーション開発者が、単一のバインドディレクティブを使用することにより、3を超えるか、または3に等しいログ値を有するノードすべてにロギングすることを選択している。この例は、ダウンレベルブラウザでもアップレベルブラウザでも機能する。
【0274】
この例はまた、smexオブジェクトがプラットフォームメッセージを認識ドキュメントに伝達する役割を負うような混乱状態がない限り、あるページが、同じプラットフォームコンポーネントと通信する複数のsmexオブジェクトを含むことが可能であることも示すものである。上の例は、あるコンポーネントが複数のインタフェースを実装することができ、それぞれのインタフェースがそれ自体のsmexまたはメッセージ経路を有することを示唆している。これと同じ論議は、複数のポートをリッスンするTCPサーバにも当てはまる。
【0275】
Figure 0004467226
【0276】
この例は、どのようにバインドディレクティブを使用して、受信メッセージを処理できるかを示している。この例では、着信呼のメッセージが、下位要素のremote_addr、transfer_addr、およびlocal_addrを有するものと想定しており、その内容はそれぞれ着信呼のリモートアドレス、転送アドレス、およびローカルアドレスを表す。
【0277】
この例では、HTTPに基づくコネクションレスプログラミングを使用して電話サーバと通信する。この場合の電話サーバは、複数のブラウザインスタンスと通信するように設計されており、したがって、各クライアントは、アプリケーションの開始時にサーバから割り当てられる一意のIDによって自らを識別しなければならない。この例では、これはサーバに「start_listening」メッセージを送信することによって実現する。この例では、セッションIDを隠しフィールドに記憶し、それをウェブサーバに送信して、アプリケーションの次のページに渡すことができるが、セッション状態の管理には他の技術(例えばクライアントサイドのクッキー)も使用することができる。recoの場合と同様に、あらゆるプラットフォームメッセージについてすべてのバインドディレクティブが実行されるとは限らない。上の例は、着信電話呼がある際に一意のIDのみを受信することは示唆していない。
【0278】
7.1 プロパティ
smexオブジェクトは以下のプロパティを有することができるが、初期値指定のための属性としても機能することができるのは、読み取り/書き込みのプロパティだけである。
【0279】
・sent:読み取り/書き込み。プラットフォームコンポーネントに送信するメッセージに対応するストリング。lvalueとしてsentを使用する場合は、必ずその内容をディスパッチする。このプロパティをrvalueとして使用する場合、あるいはこのプロパティにヌルオブジェクトを割り当てる場合には効果がない。
【0280】
・received:読み取り専用。受信メッセージを表すXML DOMノードデータ。このメッセージは、次のonReceiveイベントが送ることのできる状態になるまで、rvalueとして使用することができる。
【0281】
・timer:読み取り/書き込み。タイムアウトイベントをトリガするまでの時間を表すミリ秒単位の数。クロックは、このプロパティに正の値が割り当てられると刻時を開始する。この値は、カウントダウンの進行中に変更することができる。ゼロまたは負の値にすると、タイムアウトイベントをトリガせずにクロックを停止する。デフォルトは0、すなわちタイムアウトなしである。
【0282】
・status:読み取り専用。オブジェクトの最近のステータスを表す整数。可能な値は、0、−1、および−2であり、それぞれ、正常、タイムアウトの終了、およびプラットフォームとの通信を確立できない、あるいは通信の中断を意味する。受信されるプロパティを通じて、プラットフォーム固有のエラーメッセージを伝達するとよい。エラーメッセージの伝達が成功した場合、ステータスコードは0になる。
【0283】
7.2 イベント
このオブジェクトは以下のイベントを有する。
【0284】
・onReceive:このイベントは、プラットフォームメッセージが到着すると送られる。バインド要素によって宣言されたディレクティブがある場合には、このイベントを発生させる前にそのディレクティブを先に評価する。イベントを送る前に、受け取ったプロパティを更新する。
【0285】
・onError:このイベントは、タイムアウトが経過したとき、あるいは通信リンクエラーに遭遇したときに送られる。このイベントを送る際、上記のように、ステータスプロパティをそれに対応するエラーコードによって更新する。
【0286】
7.3 子要素
ある要素の形を仮定するとき、smexは以下の子要素を有することができる。
・bind:ディレクティブを受信メッセージに作用させる点を除いては、recoの場合と同様。
・param:recoの場合と同様。smexオブジェクトのプラットフォーム固有パラメータを提供する。各param要素は、「name」属性を使用して名前をつけることができ、param要素の内容がそのパラメータの値になる。一実施形態では、この要素は、ネームスペースの標準的なXML属性とXMLデータタイプ宣言を理解しているべきである。
【0287】
7.4 その他の補足説明
ロギング機能のためにSMEXを拡張する簡潔な方法の1つが以下である。
Figure 0004467226
これは、実際に、その振る舞いを個別設定することのできる(グローバル)関数でこのオブジェクトを拡張している。上の例では、IDとメッセージの間にフィールド区切り文字「|」を挿入するようにロギング関数をプログラムしている。
【0288】
グローバル関数を好まない者は、ECMAScriptの「prototype」プロパティを使用して、この関数をオブジェクトメソッドとして付加することができる。例えば、
Figure 0004467226
よりオブジェクト指向的な方式でこの関数を参照することができる。
logServer. logMessage(RECO_LOG_ERROR, "My message");
上記の例のように拡張を機能させるために、smexオブジェクトの実装者にはより多くの作業が要求されるが、すべての必要な機構はすでに確立された規格であることに留意されたい。
【0289】
【発明の効果】
以上、説明したように、本発明によれば、インターネットなどのサーバ/クライアントアーキテクチャで音声認識を提供するのに使用されるウェブ対応音声認識用サーバは、統一したアーキテクチャを備えることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態の、コンピューティングデバイスの動作環境の第1の実施形態の平面図である。
【図2】本発明の実施形態の、図1のコンピューティングデバイスのブロック図である。
【図3】本発明の実施形態の、電話機の平面図である。
【図4】本発明の実施形態の、汎用コンピュータのブロック図である。
【図5】本発明の実施形態の、クライアント/サーバシステムのアーキテクチャのブロック図である。
【図6】本発明の実施形態の、クレジットカード情報を得るための表示の図である。
【図7】本発明の実施形態の、クライアントで実行することのできるマークアップ言語のページの図である。
【図8】本発明の実施形態の、ディスプレイおよび音声認識機能を有するクライアントで実行することのできるマークアップ言語の例示的ページの図である。
【図9】本発明の実施形態の、音声レンダリングのみを用い、システム主導型で、クライアントで実行できるマークアップ言語の例示的ページの図である。
【図10】本発明の実施形態の、音声レンダリングのみを用い、システム主導型で、クライアントで実行できるマークアップ言語の例示的ページの図である。
【図11】本発明の実施形態の、音声レンダリングのみを用い、混合主導型で、クライアントで実行できるマークアップ言語の例示的ページの図である。
【図12】本発明の実施形態の、音声レンダリングのみを用い、混合主導型で、クライアントで実行できるマークアップ言語の例示的ページの図である。
【図13】本発明の実施形態の、サーバサイドのプラグインモジュールによって実行することのできる例示的スクリプトの図である。
【図14】本発明の実施形態の、認識サーバの第1の動作モードを図式的に示す図である。
【図15】本発明の実施形態の、認識サーバの第2の動作モードを図式的に示す図である。
【図16】本発明の実施形態の、認識サーバの第3の動作モードを図式的に示す図である。
【図17】本発明の実施形態の、スクリプティングを用いないクライアントで実行することのできる宣言的マークアップ言語の例示的ページの図である。
【図18】本発明の実施形態の、スクリプティングを用いないクライアントで実行することのできる宣言的マークアップ言語の例示的ページの図である。
【符号の説明】
29、183 マイクロフォン
30 データ管理デバイス(モバイルデバイス、クライアント)
32 筐体
33 スタイラス
34 ディスプレイ
35a、35b、35c ボタン
36 キーパッド
37、59 A/D変換器
43、187 スピーカ
50 CPU
52 無線トランシーバ
54、152 RAM
58、151 ROM
60 通信インタフェース
80 電話機
82 ディスプレイ
84 キーパッド
120 汎用コンピュータ
140 プロセッサ
141 システムバス
150 システムメモリ
153 BIOS
154、164 オペレーティングシステム
155、165 アプリケーションプログラム
156、166 プログラムモジュール
157、167 プログラムデータ
161 ハードディスクドライブ
160、170 インタフェース
160 取外し不能不揮発性メモリインタフェース
170 リムーバル不揮発性メモリインタフェース
171 磁気ディスクドライブ
172 磁気ディスク
175 光ディスクドライブ
176 光ディスク
180 ユーザ入力インタフェース
181 ポインティングデバイス
182 キーボード
184 モニタ
185 ビデオインタフェース
186 プリンタ
188 出力周辺インタフェース
190 ネットワークインタフェース
191 LAN
192 モデム
193 WAN
194 リモートコンピュータ
195 リモートアプリケーションプログラム
200 アーキテクチャ
202 ウェブサーバ
204 認識サーバ
205 ネットワーク
207 専用回線
208 電話網
210 ゲートウェイ
211 レコグナイザ
212 電話音声ブラウザ
214 メディアサーバ
216 音声ブラウザ
250、252、254 フィールド
260、270、300 本体部分
262、272、302 スクリプト部分
264 提出ボタン
280、282、284、405 コード部分
281 スケジュール
283、305 認識の開始
285 音声の検出
287 音声の終了
289、291、293、295、297、299、301、303、305
属性(期間、イベント)
290、303 コントロール
307 音声変換システム
309 パーサ
320、324 モジュール

Claims (16)

  1. コンピュータによりアクセスされ、実施されたときに、コンピュータに情報の処理を行わせるコンピュータ可読命令を含むコンピュータ読み取り可能な記録媒体であって、前記命令は、
    クライアントデバイスからの入力を表すデータと、認識を行うために、前記入力を表すデータに使用するクライアントデバイスからの文法の指示とを、広域ネットワークを介して受信する受信ステップと、
    レコグナイザとともに前記文法を使用して前記データを処理し、認識結果を得る処理ステップと、
    前記入力を表すデータについての認識結果を表すデータを、前記広域ネットワーク上の遠隔位置に送信する送信ステップと
    前記認識結果が前記クライアントからの前記入力の認識がないことを表したとき、ユーザに使用されるためのプロンプトを示すデータを遠隔位置から受信する受信ステップと、
    前記認識結果が前記クライアントからの前記入力の認識がないことを表したとき、前記プロンプトを表すデータを音声データに変換する変換ステップと、
    前記広域ネットワークを介して、前記音声データを前記クライアントデバイスに送信する送信ステップと
    を備えたことを特徴とするコンピュータ読み取り可能な記録媒体。
  2. 前記指示は、前記文法の位置へのリファレンスを提供することを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  3. 前記指示は、認識用の言語へのリファレンスを含むことを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  4. 前記レコグナイザは音声レコグナイザを含み、前記文法は音声認識に関連することを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  5. 前記レコグナイザは手書きレコグナイザを含み、前記文法は手書き認識に関連することを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  6. 前記レコグナイザはジェスチャレコグナイザを含み、前記文法はジェスチャ認識に関連することを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  7. 前記レコグナイザは視覚レコグナイザを含み、前記文法は視覚認識に関連することを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  8. 前記広域ネットワーク上の前記遠隔位置は、前記クライアントデバイスであることを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  9. 前記命令は、認識結果が送信されるべきときを示す指示を受信する受信ステップをさらに含むことを特徴とする請求項1に記載のコンピュータ読み取り可能な記録媒体。
  10. 前記認識結果が送信されるべきときを示す指示は、前記音声リコグナイザが前記入力音声が終了したと判断するときに、前記音声リコグナイザに認識結果を送信するように指示することを特徴とする請求項9に記載のコンピュータ読み取り可能な記録媒体。
  11. 前記認識結果が送信されるべきときを示す指示は、認識停止の指示が前記音声リコグナイザにより受信されたときに、前記音声リコグナイザに認識結果を送信するように指示することを特徴とする請求項9に記載のコンピュータ読み取り可能な記録媒体。
  12. 前記認識結果が送信されるべきときを示す指示は、認識停止の指示が前記音声リコグナイザにより受信されるまで、定期的に前記音声リコグナイザに認識結果を送信し続けるように指示することを特徴とする請求項11に記載のコンピュータ読み取り可能な記録媒体。
  13. クライアント/サーバネットワークにおける音声認識の方法であって、
    入力音声を表すデータと、認識を行うために、前記入力を表すデータに使用する文法の指示とを、ネットワークを介して受信する受信ステップと、
    レコグナイザとともに前記文法を使用して前記データを処理し、認識結果を得る処理ステップと、
    前記入力を表すデータについての前記認識結果を、前記ネットワーク上の遠隔位置に送信する送信ステップと
    前記認識結果が前記クライアントからの前記入力の認識がないことを表したとき、ユーザに使用されるためのプロンプトを示すデータを遠隔位置から受信する受信ステップと、
    前記認識結果が前記クライアントからの前記入力の認識がないことを表したとき、前記プロンプトを表すデータを音声データに変換する変換ステップと、
    前記広域ネットワークを介して、前記音声データを前記クライアントデバイスに送信する送信ステップと
    を備えたことを特徴とする方法。
  14. 前記指示は、前記文法の位置へのリファレンスを提供することを特徴とする請求項13に記載の方法。
  15. 前記指示は、認識用の言語へのリファレンスを含むことを特徴とする請求項13に記載の方法。
  16. 前記ネットワーク上の前記遠隔位置は、前記クライアントデバイスであることを特徴とする請求項13に記載の方法。
JP2002132052A 2001-05-04 2002-05-07 ウェブ対応音声認識用サーバの方法および記録媒体 Expired - Fee Related JP4467226B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US28904101P 2001-05-04 2001-05-04
US60/289,041 2001-05-04
US09/960,229 US7409349B2 (en) 2001-05-04 2001-09-20 Servers for web enabled speech recognition
US09/960,229 2001-09-20
US10/117,141 2002-04-05
US10/117,141 US7610547B2 (en) 2001-05-04 2002-04-05 Markup language extensions for web enabled recognition

Publications (3)

Publication Number Publication Date
JP2003044093A JP2003044093A (ja) 2003-02-14
JP2003044093A5 JP2003044093A5 (ja) 2005-09-29
JP4467226B2 true JP4467226B2 (ja) 2010-05-26

Family

ID=27381937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002132052A Expired - Fee Related JP4467226B2 (ja) 2001-05-04 2002-05-07 ウェブ対応音声認識用サーバの方法および記録媒体

Country Status (5)

Country Link
EP (1) EP1255193B1 (ja)
JP (1) JP4467226B2 (ja)
CN (1) CN1266625C (ja)
AT (1) ATE366454T1 (ja)
DE (1) DE60220968T2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711570B2 (en) 2001-10-21 2010-05-04 Microsoft Corporation Application abstraction with dialog purpose
US8229753B2 (en) 2001-10-21 2012-07-24 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting
JP2003295890A (ja) * 2002-04-04 2003-10-15 Nec Corp 音声認識対話選択装置、音声認識対話システム、音声認識対話選択方法、プログラム
DE10251113A1 (de) * 2002-11-02 2004-05-19 Philips Intellectual Property & Standards Gmbh Verfahren zum Betrieb eines Spracherkennungssystems
US7548858B2 (en) * 2003-03-05 2009-06-16 Microsoft Corporation System and method for selective audible rendering of data to a user based on user input
JP4444752B2 (ja) * 2003-09-11 2010-03-31 株式会社リコー サービス提供装置、サービス提供プログラム、記録媒体及びサービス提供方法
US8160883B2 (en) 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
ES2302640B1 (es) * 2006-12-21 2009-05-21 Juan Jose Bermudez Perez Sistema para la interaccion mediante voz en paginas web.
US8635069B2 (en) * 2007-08-16 2014-01-21 Crimson Corporation Scripting support for data identifiers, voice recognition and speech in a telnet session
US8019608B2 (en) * 2008-08-29 2011-09-13 Multimodal Technologies, Inc. Distributed speech recognition using one way communication
CN103309436A (zh) * 2012-03-16 2013-09-18 同程网络科技股份有限公司 体感式旅游信息交互方法及设备
WO2013190963A1 (ja) * 2012-06-18 2013-12-27 エイディシーテクノロジー株式会社 音声応答装置
US10033797B1 (en) 2014-08-20 2018-07-24 Ivanti, Inc. Terminal emulation over HTML
US11100278B2 (en) 2016-07-28 2021-08-24 Ivanti, Inc. Systems and methods for presentation of a terminal application screen
CN108877791B (zh) 2018-05-23 2021-10-08 百度在线网络技术(北京)有限公司 基于视图的语音交互方法、装置、服务器、终端和介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819220A (en) * 1996-09-30 1998-10-06 Hewlett-Packard Company Web triggered word set boosting for speech interfaces to the world wide web
US6456974B1 (en) * 1997-01-06 2002-09-24 Texas Instruments Incorporated System and method for adding speech recognition capabilities to java

Also Published As

Publication number Publication date
EP1255193B1 (en) 2007-07-04
ATE366454T1 (de) 2007-07-15
EP1255193A3 (en) 2005-10-12
DE60220968D1 (de) 2007-08-16
JP2003044093A (ja) 2003-02-14
CN1266625C (zh) 2006-07-26
EP1255193A2 (en) 2002-11-06
CN1420446A (zh) 2003-05-28
DE60220968T2 (de) 2007-11-08

Similar Documents

Publication Publication Date Title
US7610547B2 (en) Markup language extensions for web enabled recognition
US7409349B2 (en) Servers for web enabled speech recognition
US7506022B2 (en) Web enabled recognition architecture
US8229753B2 (en) Web server controls for web enabled recognition and/or audible prompting
US7711570B2 (en) Application abstraction with dialog purpose
US8311835B2 (en) Assisted multi-modal dialogue
US8160883B2 (en) Focus tracking in dialogs
US7260535B2 (en) Web server controls for web enabled recognition and/or audible prompting for call controls
RU2349969C2 (ru) Синхронное понимание семантических объектов, реализованное с помощью тэгов речевого приложения
US20020178182A1 (en) Markup language extensions for web enabled recognition
JP4467226B2 (ja) ウェブ対応音声認識用サーバの方法および記録媒体
US7729919B2 (en) Combining use of a stepwise markup language and an object oriented development tool
US20070006082A1 (en) Speech application instrumentation and logging
JP2005149485A (ja) 逐次的なマルチモーダル入力
EP1255192B1 (en) Web enabled recognition architecture
EP2128757A2 (en) Markup language extensions for web enabled recognition

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050506

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050506

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050506

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090223

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100219

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100223

R150 Certificate of patent or registration of utility model

Ref document number: 4467226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees