JP2003216574A - ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法 - Google Patents

ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法

Info

Publication number
JP2003216574A
JP2003216574A JP2002306353A JP2002306353A JP2003216574A JP 2003216574 A JP2003216574 A JP 2003216574A JP 2002306353 A JP2002306353 A JP 2002306353A JP 2002306353 A JP2002306353 A JP 2002306353A JP 2003216574 A JP2003216574 A JP 2003216574A
Authority
JP
Japan
Prior art keywords
control
controls
computer
recognition
question
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.)
Pending
Application number
JP2002306353A
Other languages
English (en)
Other versions
JP2003216574A5 (ja
Inventor
Francisco M Galanes
エム.ギャラネス フランシスコ
Hsiao-Wuen Hon
シャオ−フェン ホン
James D Jacoby
ディー.ジャコビー ジェームズ
Renaud J Lecoueche
ジェイ.ルクシェ ルノー
Stephen F Potter
エフ.ポーター スティーブン
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003216574A publication Critical patent/JP2003216574A/ja
Publication of JP2003216574A5 publication Critical patent/JP2003216574A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【課題】 Webサーバで認識および/または可聴プロンプ
ト機能を備えるクライアントサイドマークアップを生成
するためのコントロールを提供する。 【解決手段】 これらのコントロールは、質問、応答、
確認、コマンド、またはステートメントなどのダイアロ
グの要素を備える。コントロール内で伝達される情報を
利用して、モジュールによりダイアログを形成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に、特定のア
プリケーションを実行するようにコンピュータをエンコ
ードする(encoding)機能に関するものである。より具体
的には、本発明は、認識および/または可聴プロンプト
機能(audible prompting)に対応するクライアントサイ
ドマークアップ(client side markup)を生成するサーバ
などの認識および/または可聴プロンプト機能を実行す
るアプリケーションを定義するためのコントロールに関
するものである。
【0002】
【従来の技術】パーソナルデジタルアシスタント(PD
A)、デバイス、および携帯電話などの小型コンピューテ
ィングデバイスは、人々の毎日の活動でますます頻繁に
使用されるようになってきている。これらのデバイスを
実行するために使用されるマイクロプロセッサの処理能
力が向上したことにより、これらのデバイスの機能も高
まり、統合されるケースも出てきた。たとえば、多くの
携帯電話は、インターネットへのアクセスおよびブラウ
ズに使用できるだけでなく、住所、電話番号などの個人
情報を記憶するのにも使用することができる。
【0003】これらのコンピューティングデバイスがイ
ンターネットのブラウズに使用されたり、他のサーバ/
クライアントアーキテクチャで使用されていたりするこ
とを考えると、情報をコンピューティングデバイスに入
力するという作業が必要である。残念なことに、携帯し
やすさの面からこれらのデバイスをできる限り小型にす
ることが望まれているため、すべてのアルファベット文
字を別々のボタンに割り当てた従来のキーボードは、コ
ンピューティングデバイスの筐体上の有効面積が限られ
ているせいで、通常、使用することができない。
【0004】このような問題に対処しようと、インター
ネットなどのワイドエリアネットワーク上での情報アク
セスに音声を利用する技術に対する関心が高まり、その
ような技術が採用されることが多くなってきた。たとえ
ば、VoiceXML(音声拡張可能マークアップ言語(voice ex
tensible markup language))などを使用する音声ポータ
ル(voice portals)が進歩し、電話だけでインターネッ
トコンテンツにアクセスできるようになっている。この
アーキテクチャでは、ドキュメントサーバ(document se
rver)(たとえば、Webサーバ)がVoiceXMLインタプリタを
通じてクライアントからの要求を処理する。Webサーバ
は、応答としてVoiceXMLドキュメントを出力し、これ
を、VoiceXMLインタプリタが処理し、音声にレンダリン
グ(rendering)してユーザに伝える。音声認識による音
声コマンドを使用することで、ユーザはWebをナビゲー
トすることができる。
【0005】一般に、「音声対応(speech enabling)」
情報またはWebコンテンツには2つの手法がある。第1の
手法では、ディスプレイを備えたデバイスにより通常レ
ンダリングされる既存の視覚的なマークアップ言語ペー
ジを解釈し、聴覚向けにレンダリングする。ただし、こ
の方式では、視覚的対話操作を意図したページに、実用
にかなった聴覚的ダイアログを自動的に生成するのに十
分な情報が用意されていない。さらに、音声対話操作は
誤りがちであり、特に、電話などの雑音の多いチャネル
では誤りが多い。視覚的形式またはその他の形式の永続
的フィードバックがないと、Webサーバアプリケーショ
ンによるナビゲーションはユーザにとって極めて難しい
操作になる可能性がある。この方式では、したがって、
Webサイトのナビゲートを手助けするためユーザの聴覚
用にレンダリングされるヘルプメッセージなどのメカニ
ズムが必要である。これらのメカニズムは、一般に、
「音声ダイアログ」と呼ばれ、たとえば、音声による対
する応答として、ユーザが正しくない情報を提供したり
あるいは何も情報を提供しなかったときのエラーを処理
する必要もある。このメカニズムはWebページの視覚的
コンテンツに一般には基づいていないので、自動的に生
成することはできず、そのため、通常、アプリケーショ
ン開発者は長い開発時間を必要とする。
【0006】音声対応をWebコンテンツに対する第2の方
法として、特定の音声ページを新しい言語で作成すると
いう方法がある。この方式の利点として、音声対応ペー
ジに修復やナビゲーションヘルプなどの音声ダイアログ
に必要なすべてのメカニズムを備えられるという点が挙
げられる。しかし、アプリケーションロジックを視覚的
コンテンツページの場合と同じように含めるためにアプ
リケーションページを改造する必要があるという大きな
欠点がある。つまり、視覚的コンテンツページのアプリ
ケーションロジックは、音声対応言語の形式で書き換え
る必要があるということである。このプロセスを、同じ
仕様から視覚的ページと音声ページとを作成するツール
を使用して自動化できるとしても、視覚的ページと音声
対応ページの保守を同期させることは通常、困難であ
る。さらに、この方式では、たとえば、視覚的対話操作
と音声対話操作がWebページ上に用意されている場合に
マルチモードアプリケーション(multimodal applicatio
ns)を簡単に実現できない。視覚的ページと音声対応ペ
ージは関連性がないため、入力ロジックと出力ロジック
を連携するように調整することは容易でない。
【0007】現在まで、音声対話操作は、インターフェ
ースとして現在採用されている構成または形式のせいで
扱いにくいものとなっている。一般に、音声インターフ
ェースは、アプリケーションのビジネスロジックとの結
びつきが強すぎる傾向があり、他のアプリケーションで
その音声インターフェースの要素を再利用することが妨
げられていたり、単純化されたダイアログモデルのため
音声インターフェースの制限が大きすぎたりするのであ
る(たとえば、フォームやフィールド)。
【0008】
【発明が解決しようとする課題】したがって、インター
ネットなどでサーバ/クライアントアーキテクチャなど
のアプリケーションにより音声認識機能を提供するため
に使用されるアーキテクチャおよび方法に対する改善が
引き続き要求されている。特に、前記の欠点の1つ、複
数、またはすべてを解消し、それによりアプリケーショ
ンで音声対応認識および/または音声対応のプロンプト
機能(prompting)の生成を実現する方法、システム、ま
たはオーサリングツールが必要である。
【0009】
【課題を解決するための手段】Webサーバで認識および/
または可聴プロンプト機能を備えるクライアントサイド
マークアップを生成するためのコントロールを提示す
る。コントロールは、質問、応答、確認、コマンド、ま
たはステートメントなどのダイアログの要素から成り立
っている。これらのコントロールで伝達される情報利用
することでダイアログをモジュール形式にする。
【0010】コントロールのそれぞれは、ダイアログ内
である役割(role)を実行する。たとえば、ステートメン
トコントロールを使用して、クライアントデバイスの対
応するマークアップを生成し、ユーザに情報を表示する
一方で、質問コントロールによりクライアントデバイス
が質問を行うためのマークアップ(markup)を生成する。
応答コントロールにより、認識に使用される文法を尋ね
られた質問に関係する入力フィールドと関連付けるよう
にクライアントデバイスのマークアップを生成する。認
識された結果が正しいかどうか不明な場合、確認コント
ロールを起動し、認識された結果を確認するためのマー
クアップを生成することができる。コマンドコントロー
ルでは、ユーザが特定の質問に対する予期される応答以
外のコマンドを提供できるようにし、またユーザがたと
えばWebサーバアプリケーションを通じてナビゲートで
きるようにするマークアップを生成する。コントロール
はそれぞれ、関連するコントロールが起動できるかどう
かを示す属性を含む。モジュールは、クライアントなど
で実行されると、起動されるコントロールの機能として
情報を求め、提供するためのダイアログを作成する。
【0011】
【発明の実施の形態】Webベースの認識機能のアーキテ
クチャおよびそのアーキテクチャを実装する方法を説明
する前に、このアーキテクチャで機能するコンピューテ
ィングデバイスについて一般的に説明しておくと役立つ
であろう。図1を参照すると、データ管理デバイス(PI
M、PDAなど)の実施例が示されている。しかし、本発明
は後述の他のコンピューティングデバイスを使用しても
実践することができ、とりわけ、入力ボタンなどの表面
領域が限られているコンピューティングデバイスを使用
して実践することができることが予期される。たとえ
ば、電話および/またはデータ管理デバイスも本発明を
活用することができる。このようなデバイスは、既存の
携帯型個人情報管理デバイスやその他の携帯型電子デバ
イスと比較してユーティリティ機能が向上しており、こ
のようなデバイスの機能およびコンパクトなサイズのお
かげで、ユーザはこのようなデバイスを常時持ち歩く気
になる可能性が高い。したがって、本発明で説明してい
るアーキテクチャの範囲が説明しているデータ管理また
はPIMデバイス例、電話、またはコンピュータの開示に
より制限されることを意図していない。
【0012】データ管理モバイルデバイスの実施例が図
1に示されている。モバイルデバイスは、ハウジング32
を含み、タッチパネルとスタイラス33を使用する、ディ
スプレイ34を含むユーザインターフェースを備える。ス
タイラス33を使用して、ディスプレイ34の指定された
座標のところを押すか、またはそこに接触することで、
フィールドを選択したり、カーソルの開始位置を選択的
に移動したり、または身振りや手書きなどのその他の手
段によりコマンド情報を伝える。それとは別に、または
それに加えて、1つまたは複数のボタン35をナビゲーシ
ョン用にデバイスに備えることもできる。さらに、回転
可能なホイール、ローラなどの他の入力メカニズムも備
えることができる。ただし、本発明はこのような形式の
入力メカニズムにより制限することを意図していないこ
とに注意されたい。たとえば、他の形式の入力として、
コンピュータビジョンを備えることもできる。
【0013】図2を参照すると、ブロック図にモバイル
デバイス30からなる機能コンポーネントが示されてい
る。中央処理装置(CPU)50より、ソフトウェア制御機能
が実行される。CPU 50がディスプレイ34に結合されてお
り、制御ソフトウェアに従って生成されるテキストおよ
びグラフィックアイコンがディスプレイ34に表示され
る。スピーカを通常、デジタル-アナログコンバータでC
PU 50に結合し、可聴出力を送ることができる。ユーザ
がモバイルデバイス30にダウンロードまたは入力したデ
ータは、CPU 50に双方向結合されている不揮発性の読み
書きランダムアクセスメモリストア54に格納される。ラ
ンダムアクセスメモリ(RAM)54は、CPU 50によって実行
される命令を格納する揮発性の記憶装置であり、またレ
ジスター値などの一時的データのための記憶装置でもあ
る。構成オプションおよびその他の変数用の既定値は、
読み取り専用メモリ(ROM)58に格納される。ROM 58は、
モバイル30の基本機能およびその他のオペレーティング
システムのカーネル機能(たとえば、ソフトウェアコン
ポーネントをRAM 54にロードする機能)を制御するデバ
イス用のオペレーティングシステムソフトウェアを格納
するのにも使用できる。
【0014】RAM 54はさらに、アプリケーションプログ
ラムを格納するために使用されるPC上のハードディスク
ドライブの機能に似た方法でコードを格納するのにも使
用される。不揮発性メモリは、コードを格納するために
使用されるが、それとは別に、コードの実行には使用さ
れない揮発性メモリ内に格納できることに注意された
い。
【0015】CPU 50に結合されている無線トランシーバ
52を介してモバイルデバイスによって無線信号を送受信
することができる。オプションの通信インターフェース
60も、コンピュータ(たとえば、デスクトップコンピュ
ータ)から直接、または必要ならば有線ネットワークか
ら、データをダウンロードするために備えることができ
る。したがって、インターフェース60は、たとえば、赤
外線リンク、モデム、ネットワークカードなどのさまざ
まな形態の通信デバイスを備えることができる。
【0016】モバイルデバイス30は、マイク29、および
アナログ-デジタル(A/D)コンバータ37、およびストア54
に格納されているオプションの認識プログラム(音声、D
TMF、手書き、身振り、またはコンピュータビジョン)を
備える。たとえば、デバイス30のユーザからの可聴情
報、命令、またはコマンドに応答して、マイク29で、A/
Dコンバータ37によりデジタイズされた音声信号を送
る。音声認識プログラムは、デジタイズした音声信号に
対し正規化および/または特徴抽出機能を実行して、中
間音声認識結果を得ることができる。無線トランシーバ
52または通信インターフェース60を使用して、音声デー
タを後述のリモート認識サーバ204に送信するが、これ
は、図4のアーキテクチャに示されている。その後、認
識結果はモバイルデバイス30に返され、そこでレンダリ
ング(たとえば、視覚的および/または可聴)を行い、最
後にWebサーバ202(図4)に送信するが、Webサーバ202と
モバイルデバイス30はクライアント/サーバ関係で動作
する。類似の処理を他の形式の入力にも使用できる。た
とえば、手書き入力は、デバイス30上での前処理を行っ
て、または行わずにデジタイズすることができる。音声
データのように、この形式の入力を認識サーバ204に送
って認識させ、その後、認識結果をデバイス30および/
またはWebサーバ202のうち少なくとも1つに返す。同様
に、DTMFデータ、身振りデータ、および視覚的データも
似た方法で処理できる。入力の形式に応じて、デバイス
30(および後述のその他の形式のクライアント)は視覚的
に入力用のカメラなどの必要なハードウェアを備える。
【0017】上記の携帯型またはモバイルコンピューテ
ィングデバイスに加えて、本発明は一般的なデスクトッ
プコンピュータなどの他の多数のコンピューティングデ
バイスとともに使用できることも理解されるであろう。
たとえば、本発明を使用すると、身体能力に制限のある
ユーザにとってフルキーボードなどの従来の他の入力デ
バイスの操作が難しすぎるときでもテキストをコンピュ
ータまたはその他のコンピューティングデバイスに入力
することができる。
【0018】本発明は、さらに、他の多数の汎用または
専用コンピューティングシステム、環境、または構成で
動作する。本発明とともに使用するのに適していると思
われるよく知られているコンピューティングシステム、
環境、および/または構成の例として、無線または携帯
電話、通常の電話(画面なし)、パソコン、サーバコンピ
ュータ、ハンドヘルドまたはラップトップデバイス、マ
ルチプロセッサシステム、マイクロプロセッサベースシ
ステム、セットトップボックス、プログラム可能家電製
品、ネットワークPC、ミニコンピュータ、メインフレー
ムコンピュータ、上記システムのどれかを含む分散コン
ピューティング環境などがある。
【0019】以下では、図3に示されている汎用コンピ
ュータ120について簡単に説明する。ただし、コンピュ
ータ120もまた適当なコンピューティング環境の一実施
例にすぎず、本発明の使用または機能の範囲に関する制
限を示唆しないことを意図している。またコンピュータ
120はそこに示されているコンポーネントの1つまたは組
み合わせに関係する依存性または要求条件があると解釈
しないものとする。
【0020】本発明は、コンピュータによって実行され
るプログラムモジュールなどのコンピュータ実行可能命
令の一般的文脈において説明できる。一般に、プログラ
ムモジュールには、特定のタスクを実行する、あるいは
特定の抽象データ型を実装するルーチン、プログラム、
オブジェクト、コンポーネント、データ構造などが含ま
れる。本発明はさらに、通信ネットワークを介してリン
クされているリモート処理デバイスによりタスクが実行
される分散コンピューティング環境で実施することも可
能である。分散コンピューティング環境では、プログラ
ムモジュールをメモリ記憶デバイスなどのローカルとリ
モートの両方のコンピュータ記憶媒体に配置できる。プ
ログラムをおよびモジュールによって実行されるタスク
について図の助けを借りて以下で説明する。当業者であ
れば、説明と図の内容をプロセッサ実行可能命令として
実装することができ、これは、任意の形態のコンピュー
タ可読媒体に書き込むことができる。
【0021】図3を参照すると、コンピュータ120のコン
ポーネントは、限定はしないが、処理装置140、システ
ムメモリ150、およびシステムメモリを含むさまざまな
システムコンポーネントを処理装置140に結合するシス
テムバス141を備えることができる。システムバス141に
は、さまざまなバスアーキテクチャを使用するメモリバ
スまたはメモリコントローラ、周辺機器バス、およびロ
ーカルバスを含む数種類のバス構造がある。たとえば、
このようなアーキテクチャとしては、限定はしないが、
業界標準アーキテクチャ(ISA)バス、ユニバーサルシリ
アルバス(USB)、マイクロチャネルアーキテクチャ(MCA)
バス、拡張ISA(EISA)、Video ElectronicsStandards As
sociation(VESA)ローカルバス、およびMezzanineバスと
も呼ばれるPeripheral Component Interconnect(PCI)バ
スがある。コンピュータ120は通常、さまざまなコンピ
ュータ可読媒体を含む。コンピュータ可読媒体は、コン
ピュータ120によってアクセスできる媒体であればどの
ようなものでも使用でき、揮発性および不揮発性媒体、
取り外し可能および取り外し不可能媒体を含む。たとえ
ば、限定はしないが、コンピュータ可読媒体は、コンピ
ュータ記憶媒体および通信媒体を含むことができる。コ
ンピュータ記憶媒体は、コンピュータ読み取り可能命
令、データ構造体、プログラムモジュール、またはその
他のデータなどの情報を格納する方法または技術で実装
される揮発性および不揮発性、取り外し可能および取り
外し不可能媒体を含む。コンピュータ記憶媒体として
は、RAM、ROM、EEPROM、フラッシュメモリまたはその他
のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)
またはその他の光ディスク記憶装置、磁気カセット、磁
気テープ、磁気ディスク記憶装置またはその他の磁気記
憶デバイス、または目的の情報を格納するために使用す
ることができコンピュータ120によりアクセスできるそ
の他の媒体がある。
【0022】通信媒体は、通常、コンピュータ読み取り
可能命令、データ構造体、プログラムモジュール、また
は搬送波またはその他のトランスポートメカニズムなど
の変調データ信号によるその他のデータを実現し、情報
配信媒体を含む。「変調データ信号」という用語は、信
号内の情報をエンコードする方法でその特性のうち1つ
または複数を設定または変更した信号を意味する。たと
えば、通信媒体としては、有線ネットワークまたは直接
配線接続などの有線媒体、および、音声FR、赤外線、お
よびその他の無線媒体などの無線媒体がある。上記のい
ずれかの組み合わせもコンピュータ可読媒体の範囲に収
まるであろう。
【0023】システムメモリ150は、読み取り専用メモ
リ(ROM)151およびランダムアクセスメモリ(RAM)152など
の揮発性および/または不揮発性メモリの形のコンピュ
ータ記憶媒体を備える。起動時などにコンピュータ120
内の要素間の情報伝送を助ける基本ルーチンを含む基本
入出力システム153(BIOS)は通常、ROM 151に格納され
る。通常、RAM 152には、処理装置140に直接アクセス可
能な、かつ/または現在操作されているデータおよび/ま
たはプログラムモジュールを格納する。たとえば、図3
は、オペレーティングシステム54、アプリケーションプ
ログラム155、その他のプログラムモジュール156、およ
びプログラムデータ157を示している。
【0024】コンピュータ120はさらに、その他の取り
外し可能/取り外し不可能な揮発性/不揮発性コンピュー
タ記憶媒体を備えることもできる。たとえば、図3は、
取り外し不可能な不揮発性磁気媒体の読み書きを行うハ
ードディスクドライブ161、取り外し可能な不揮発性磁
気ディスク172の読み書きを行う磁気ディスクドライブ1
71、およびCD-ROMまたはその他の光媒体などの取り外し
可能な不揮発性光ディスク176の読み書きを行う光ディ
スクドライブ175を示している。操作環境例で使用でき
る他の取り外し可能/取り外し不可能な揮発性/不揮発性
コンピュータ記憶媒体としては、限定はしないが、磁気
テープカセット、フラッシュメモリカード、デジタル多
目的ディスク、デジタルビデオテープ、ソリッドステー
トRAM、ソリッドステートROMなどがある。ハードディス
クドライブ161は、通常、インターフェース160などの取
り外し不可能なメモリインターフェースを介してシステ
ムバス141に接続され、磁気ディスクドライブ171および
光ディスクドライブ175は、通常、インターフェース170
などの取り外し可能なメモリインターフェースによりシ
ステムバス141に接続される。
【0025】図3に示されている上記のドライブおよび
関連コンピュータ記憶媒体は、コンピュータ120用のコ
ンピュータ読み取り可能命令、データ構造体、プログラ
ムモジュール、およびその他のデータを格納する機能を
備える。たとえば、図3では、ハードディスクドライブ1
61は、オペレーティングシステム164、アプリケーショ
ンプログラム165、その他のプログラムモジュール166、
およびプログラムデータ167を格納するものとして示さ
れている。これらのコンポーネントは、オペレーティン
グシステム154、アプリケーションプログラム155、その
他のプログラムモジュール156、およびプログラムデー
タ157と同じである場合もあれば異なる場合もあること
に注意されたい。オペレーティングシステム164、アプ
リケーションプログラム165、その他のプログラムモジ
ュール166、およびプログラムデータ167に対しては、こ
こで、異なる番号を割り当てて、最低でも、それが異な
るコピーであることを示している。
【0026】ユーザは、キーボード182、マイク183、お
よびマウス、トラックボール、タッチパッドなどのポイ
ンティングデバイス181などの入力デバイスを介してコ
ンピュータ120にコマンドおよび情報を入力できる。他
の入力デバイス(図に示されていない)としては、ジョイ
スティック、ゲームパッド、衛星放送受信アンテナ、ス
キャナなどがある。これらの入力デバイスやその他の入
力デバイスは、システムバスに結合されているユーザ入
力インターフェース180を介して処理ユニット140に接続
されることが多いが、パラレルポート、ゲームポート、
またはユニバーサルシリアルバス(USB)などの他のイン
ターフェースおよびバス構造により接続することもでき
る。モニタ184やその他のタイプの表示デバイスも、ビ
デオインターフェス185などのインターフェースを介し
てシステムバス141に接続される。モニタのほかに、コ
ンピュータはさらにスピーカ187およびプリンタ186など
の他の周辺出力デバイスも備えることができ、これらは
出力周辺インターフェース188を介して接続することが
できる。
【0027】コンピュータ120は、リモートコンピュー
タ194などの1つまたは複数のリモートコンピュータへの
論理接続を使用してネットワーク環境で動作することも
できる。リモートコンピュータ194は、パーソナルコン
ピュータ、ハンドヘルドデバイス、サーバ、ルーター、
ネットワークPC、ピアデバイス、またはその他の共通ネ
ットワークノードでもよく、通常は、コンピュータ120
に関係する上述の要素の多くまたはすべてを含む。図3
に示されている論理接続は、ローカルエリアネットワー
ク(LAN)191とワイドエリアネットワーク(WAN)193を含む
が、他のネットワークを含むこともできる。このような
ネットワーキング環境は、事務所、企業規模のコンピュ
ータネットワーク、イントラネットおよびインターネッ
トではよくある。
【0028】LANネットワーキング環境で使用する場合
は、コンピュータ120はネットワークインターフェース
またはアダプタ190を介してローカルエリアネットワー
ク191に接続される。WANネットワーキング環境で使用す
る場合は、コンピュータ120は通常、モデム192またはイ
ンターネットなどのWAN 193上で通信を確立するための
その他の手段を備える。モデム192は、内蔵でも外付け
でもよいが、ユーザ入力インターフェース180またはそ
の他の適切なメカニズムを介してシステムバス141に接
続できる。ネットワーク環境では、コンピュータ120ま
たはその一部に関して述べたプログラムモジュールは、
リモートメモリ記憶デバイスに格納できる。たとえば、
図3は、リモートアプリケーションプログラム195がリモ
ートコンピュータ194に常駐しているように示してい
る。図に示されているネットワーク接続は例であり、コ
ンピュータ間に通信リンクを確立するのにその他手段を
使用できることは理解されるであろう。
【0029】典型的なアーキテクチャ 図4は、本発明とともに使用できるようなWebベースの認
識機能のアーキテクチャ200を示している。一般に、Web
サーバ202に格納されている情報は、モバイルデバイス3
0(ここでは、入力形態に基づいて要求される表示画面、
マイク、カメラ、タッチパネルなどを備えるコンピュー
ティングデバイスの他の形態も表す)、または情報を可
聴音でまたはキーの押下に応答して電話80により生成さ
れるトーンを通じて要求し、またWebサーバ202からの情
報を可聴音でのみユーザに送り返す電話を介して、アク
セスすることができる。
【0030】この実施例では、アーキテクチャ200は、
音声認識を使用しデバイス30で情報を取得するかそれと
も電話80を介して取得するかに関係なく、単一の認識サ
ーバ204でいずれかの動作モードをサポートできるとい
う点で統一されている。さらに、アーキテクチャ200
は、よく知られているマークアップ言語の拡張(たとえ
ば、HTML、XHTML、cHTML、XML、WMLなど)を使用して動
作する。したがって、Webサーバ202に格納されている情
報も、これらのマークアップ言語に用意されているよく
知られているGUI方式を使用してアクセスできる。よく
知られているマークアップ言語の拡張を使用することに
より、Webサーバ202上のオーサリングは簡単になり、既
存のレガシーアプリケーションも音声またはその他の認
識形態に対応するように簡単に修正することができる。
【0031】一般に、デバイス30は、Webサーバ202によ
って提供されるHTML+スクリプトなどを実行する。たと
えば、音声認識が要求されるとき、上述のようにデバイ
ス30により音声信号が前処理されている場合に音声信号
または発話の特徴にデジタイズできる音声データが認識
サーバ204に送られ、音声認識中に使用する文法または
言語モデルを示す。認識サーバ204の実装にはいろいろ
な形態が考えられ、そのうちの1つが図に示されている
が、一般的に、レコグナイザ(recognizer)211を含む。
認識の結果は、デバイス30に送り返され、望ましい場合
または適切な場合にローカルでレンダリングされる。認
識およびグラフィカルユーザインターフェースが使用さ
れている場合にはそれを使用して情報をコンパイルした
後、デバイス30はこの情報をWebサーバ202に送り、必要
に応じて他のHTMLスクリプトを処理し受け取る。
【0032】図4に示されているように、デバイス30、W
ebサーバ202、および認識サーバ204は、接続は共通であ
るが、ネットワーク205、ここでは、インターネットな
どのワイドエリアネットワークを通じて別々にアドレス
指定可能である。したがって、これらのデバイスを物理
的に隣接する位置に配置する必要はない。特に、Webサ
ーバ202は認識サーバ204を含む必要はない。この方法
で、Webサーバ202でのオーサリングは対象となるアプリ
ケーションに焦点を絞ることができ、作成者は認識サー
バ204の詳細を知る必要はない。むしろ、認識サーバ204
は独立に設計して、ネットワーク205に接続することが
でき、そのため、Webサーバ202で必要な変更をさらに行
うことなく更新および改良を加えることができる。後述
のように、Webサーバ202はさらに、クライアントサイド
マークアップおよびスクリプトを動的に生成できるオー
サリングメカニズムを備えることもできる。他の実施形
態では、Webサーバ202、認識サーバ204、およびクライ
アント30を実装するマシンの能力に応じて見合わせるこ
とができる。たとえば、クライアントは汎用コンピュー
タ、たとえばパソコンを備えている場合、クライアント
は認識サーバ204を備えることができる。同様に、必要
ならば、Webサーバ202および認識サーバ204を単一のマ
シンに組み込むことができる。
【0033】電話80を介してWebサーバ202にアクセスす
る際に、電話80を有線または無線電話網208に接続し、
さらにこれは電話80をサードパーティーのゲートウェイ
210に接続する。ゲートウェイ210は、電話80を電話音声
ブラウザ(telephony voice browser)212に接続する。電
話音声ブラウザ212は、電話インターフェースおよび音
声ブラウザ216を備えるメディアサーバ(media server)2
14を含む。デバイス30のように、電話音声ブラウザ212
はWebサーバ202からHTMLスクリプトなどを受信する。一
実施形態では、HTMLスクリプトはデバイス30に提供され
るHTMLスクリプトと似た形式である。この方法では、We
bサーバ202はデバイス30および電話80を別々にサポート
したり、さらには標準GUIクライアントを別々にサポー
トしたりする必要さえない。むしろ、共通マークアップ
言語使用することができる。さらに、デバイス30のよう
に、ネットワーク205を介してまたはたとえばTCP/IPを
使用して専用回線207のいずれかを介して、電話80によ
って送信された可聴信号からの音声認識結果を音声ブラ
ウザ216から認識サーバ204に送る。Webサーバ202、認識
サーバ204、および電話音声ブラウザ212は、図3に示さ
れている汎用デスクトップコンピュータなどの適当なコ
ンピューティング環境で実現することができる。
【0034】ただし、DTMF認識が改善された場合、この
ような形式の認識は一般的に、認識サーバ204ではなく
メディアサーバ214で実行されることに注意されたい。
つまり、DTMF文法が、メディアサーバ214によって使用
されるということである。
【0035】戻って図4を参照すると、Webサーバ202
は、サーバサイドプラグインのオーサリングツールまた
はモジュール209(たとえば、ASP、ASP+、Microsoft Cor
porationのASP.Net、JSP、Java(登録商標)beansなど)を
備えることができる。サーバサイドプラグインモジュー
ル209は、Webサーバ202にアクセスするクライアントの
タイプに合わせて、クライアントサイドマークアップ、
さらには特定の形式のマークアップさえも動的に生成す
ることができる。クライアント情報を、クライアント/
サーバ関係が最初に確立された後Webサーバ202に送る
か、またはWebサーバ202側でクライアントデバイスの能
力を検出するモジュールまたはルーチンを備えることが
できる。この方法で、サーバサイドプラグインモジュー
ル209は、音声認識シナリオ、つまり電話80のみの音声
またはデバイス30についてはマルチモードのそれぞれに
ついてクライアントサイドマークアップを生成すること
ができる。整合性のとれたクライアントサイドモデルを
使用することにより、さまざまなクライアントに対する
アプリケーションオーサリングは著しく簡単になる。
【0036】クライアントサイドマークアップを動的に
生成するほかに、後述の高レベルダイアログモジュール
を、ストア211に格納されるサーバサイドコントロール
として実装することができ、これをアプリケーションオ
ーサリングで開発者が使用できる。一般に、高レベルダ
イアログモジュール211は、開発者が指定したパラメー
タに基づいて音声のみシナリオおよびマルチモードシナ
リオの両方でクライアントサイドマークアップおよびス
クリプトを動的に生成する。高レベルダイアログモジュ
ール211は、開発者のニーズに合わせてクライアントサ
イドマークアップを生成するためのパラメータを含むこ
とができる。
【0037】典型的なクライアントサイド拡張 本発明の対象となるクライアントサイドマークアップの
動的生成を説明する前に、まずWebベースの認識で使用
するマークアップ言語の拡張形式例について説明すると
役立つと思われる。
【0038】上記のように、HTML、XHTML、cHTML、XM
L、WML、またはその他のSGML派生マークアップなどのマ
ークアップ言語は、Webサーバ202とクライアントデバイ
ス30との対話に使用され、クライアント/サーバアーキ
テクチャで認識を行うコントロールおよび/またはオブ
ジェクトを含むように拡張されている。一般に、コント
ロールおよび/またはオブジェクトは、レコグナイザ構
成、レコグナイザ実行および/または後処理用のレコグ
ナイザコントロールおよび/またはオブジェクト、シン
セサイザー構成およびプロンプト再生用のシンセサイザ
ーコントロールおよび/またはオブジェクト、入力文法
リソースを指定するための文法をコントロールおよび/
またはオブジェクト、および/または認識結果を処理す
るためのバインドコントロールおよび/またはオブジェ
クトの機能のうち1以上を含むことができる。拡張は、
軽量マークアップレイヤとなるように設計されており、
既存のマークアップ言語に音声、視覚、手書きなどのイ
ンターフェースの機能を追加する。したがって、これら
の拡張は、拡張機能が含まれる高レベルページ、たとえ
ばHTML、言語リソースを参照するために拡張機能が使用
される低レベル形式、たとえばテキスト音声変換や文法
形式、および認識サーバ204で使用される認識および音
声合成の個々の特性とは独立のものとすることができ
る。以下で音声認識を説明するが、これ以降で説明する
手法、タグ、およびサーバサイドコントロールも同様
に、手書き認識、身振り認識、および画像認識にも応用
できることは理解されるであろう。
【0039】実施例では、拡張機能(一般に「タグ」と
もいう)はXML要素の小さなセットであり、関連する属性
およびDOMオブジェクトプロパティ、イベントおよびメ
ソッドを備え、これをソースマークアップドキュメント
とともに使用して、認識および/または可聴プロンプト
インターフェース、DTMFまたは呼び出し制御をソースペ
ージに適用することができる。拡張機能の形式と意味
は、ソースドキュメントの性質とは無関係であり、した
がって、それらの拡張機能はHTML、XHTML、cHTML、XM
L、WML、またはその他のSGML派生マークアップで等しく
効果的に使用することができる。これらの拡張機能は、
ドキュメントオブジェクトモデルに従っており、新しい
機能オブジェクトまたは要素を、階層状に配置できる。
それぞれの要素については付録で詳述しているが、一般
に、これらの要素は属性、プロパティ、メソッド、イベ
ント、および/またはその他の「子」要素を含むことが
できる。
【0040】このときに、これらの拡張機能はブラウザ
が実行されるデバイスの能力に応じて2種類の「モー
ド」で解釈することができることにも注意する必要があ
る。第1のモード、「オブジェクトモード」では、全機
能を使用できる。アプリケーションからプログラムによ
り拡張機能を操作できるが、これはデバイス上のプラザ
によって使用可能になるメカニズム、たとえば、XHTML
ブラウザのJScriptインタプリタやWMLブラウザのWMLScr
iptインタプリタで実行される。このような理由から、
拡張機能のコアプロパティおよびメソッドの小さなセッ
トのみを定義すればよく、デバイスまたはクライアント
サイドに存在するプログラムメカニズムで操作する。オ
ブジェクトモードでは、イベント発生およびスクリプト
作成の機能を備え、ダイアログ作成者が音声対話操作に
対するクライアントサイドの制御をより細かに行えると
いう優れた機能性を実現できる。ここで使用しているよ
うに、イベントおよびスクリプト作成機能を完全にサポ
ートするブラウザを「アップレベルブラウザ(uplevel b
rowser)」と呼ぶ。この形式のブラウザは、拡張機能の
すべての属性、プロパティ、メソッド、およびイベント
をサポートする。アップレベルブラウザは、一般に、処
理能力の大きなデバイスで実行される。
【0041】これらの拡張機能はさらに、「宣言モー
ド」でもサポートできる。ここで使用しているように、
宣言モードで動作するブラウザは「ダウンレベルブラウ
ザ」と呼ばれ、完全なイベント発生およびスクリプト作
成機能をサポートしていない。むしろ、この形式のブラ
ウザは指定された拡張機能(つまり、コア要素および属
性)の宣言的側面をサポートするが、すべてのDOM(ドキ
ュメントオブジェクトモデル)オブジェクトプロパテ
ィ、メソッド、およびイベントをサポートするわけでは
ない。このモードでは、もっぱら宣言的構文を使用し、
さらに宣言的マルチメディア同期およびSMIL(Synchroni
zed Multimedia Integration Language)2.0などの調整
メカニズム(同期マークアップ言語)とともに使用でき
る。ダウンレベルブラウザは、通常、処理能力の限られ
ているデバイスで実行される。
【0042】しかしここで、特定の入力モードについて
説明することにする。特に、音声認識を少なくともディ
スプレイおよび他の実施形態ではポインティングデバイ
スとともに使用すると複数の入力モードとの連携の調整
が可能になり、たとえば、データ入力用のフィールドを
示すことができ、特に有用である。特に、このデータ入
力モードでは、ユーザは一般にポインティングデバイス
の動作と音声入力との連携を調整することができ、たと
えば、ユーザはフィールドの選択時期の制御下に置か
れ、フィールドに関連する対応する情報を入力できる。
たとえば、クレジットカード送信グラフィカルユーザイ
ンターフェース(GUI)が図5に示されているが、ユーザは
最初に、フィールド252にクレジットカード番号を入力
する決定を下し、その後、クレジットカードの種別をフ
ィールド250に入力し、その後、フィールド254に有効期
限を入力することができる。同様に、必要ならばユーザ
はフィールド252に戻り、間違えた入力を訂正すること
もできる。音声認識と組み合わせると、簡単で自然な形
のナビゲーションを実現できる。ここで使用しているよ
うに、この形式の入力は画面上でポインティングデバイ
スを自由形式で操作してたとえばフィールドを選択でき
る画面表示と認識を使用するが、これは「マルチモード
(multimodal)」と呼ばれる。
【0043】図6を参照すると、HTMLマークアップ言語
のコードが示されている。HTMLコードには、本文部分27
0とスクリプト部分272が含まれる。各フィールド250、2
52、および254への情報の入力は、それぞれ、コード部
分280、282、および284により制御されるかまたは実行
される。最初にコード部分280を参照すると、フィール
ド250を選択したときに、たとえば、デバイス30のスタ
イラス33を使用することで、イベント「onClick」が
起動し、スクリプト部分272で関数「talk」が呼び出さ
れるか、または実行される。このアクションにより、フ
ィールド250に一般に予期されるデータの種別と関連す
る音声認識に使用される文法が起動する。この種の対話
操作は、複数の入力手法を伴い(たとえば、音声および
ペンクリック/ローラ)、「マルチモード」と呼ばれる。
【0044】そこで文法に戻ると、文法とは限定はしな
いが、文脈自由文法、N文法、またはハイブリッド文法
の構文法のことである。(もちろん、DTMF文法、手書き
文法、身振り文法、および画像文法は、対応する認識形
式が採用されていれば使用される。ここで使用している
ように、「文法」は認識を実行するための情報を含み、
さらに他の実施形態ではたとえば特定のフィールドに入
力することが想定される入力に対応する情報を含む。)
コントロール290(ここでは「reco」と呼ぶ)は、さまざ
まな要素を備え、そのうち2つが文法要素「grammar」と
「bind」要素であり、図に示されている。一般に、Web
サーバ202からクライアントにダウンロードされたコー
ドのように、文法はWebサーバ202から始まり、クライア
ントにダウンロードされかつ/またはリモートサーバに
転送され、音声処理が行われる。その後、文法をローカ
ルのキャッシュ内に格納することができる。最終的に、
文法は認識サーバ204に送られ、認識に使用される。文
法要素を使用し、インラインまたは属性を使用して参照
することで文法を指定する。
【0045】認識された音声、手書き、身振り、画像な
どに対応する認識結果を認識サーバ204から受信した
後、recoコントロール290の構文が提供され、対応する
結果を受け取り、それを対応するフィールドに関連付け
るが、ディスプレイ34にテキストをレンダリングする機
能を含むことができる。図に示されている実施形態で
は、音声認識が完了し、結果はクライアントに送り返さ
れると、recoオブジェクトを非アクティブ状態にし、認
識されたテキストを対応するフィールドに関連付ける。
部分282および284は同様に動作し、一意的なrecoオブジ
ェクトおよび文法がフィールド252と254のそれぞれにつ
いて呼び出され、認識されたテキストを受け取った後、
フィールド252と254のそれぞれに関連付けられる。カー
ド番号フィールド252の受信に関して、関数「handle」
がカードの種別に関してカード番号の長さをチェックす
る。
【0046】クライアントサイドマークの生成 上記のように、サーバサイドプラグインモジュール209
は、クライアントデバイス30に要求が送られたときにク
ライアントサイドマークアップを出力する。つまり、サ
ーバサイドプラグインモジュール209では、Webサイト、
したがって、アプリケーションおよびアプリケーション
によって提供されるサービスを定義したり構築したりす
ることができる。サーバサイドプラグインモジュール20
9内の命令は、コンパイルされたコードである。このコ
ードは、Web要求がWebサーバ202に到達したときに実行
される。サーバサイドプラグインモジュール209は、そ
の後、クライアントデバイス30に送られる新しいクライ
アントサイドマークアップページを出力する。よく知ら
れているように、このプロセスは一般にレンダリングと
呼ばれる。サーバサイドプラグインモジュール209は、
マークアップ言語、したがってクライアントサイドマー
クアップページのコードを抽象化し、カプセル化する
「コントロール」上で動作する。マークアップ言語を抽
象化しカプセル化し、Webサーバ202上で動作するこのよ
うなコントロールは、たとえば、いくつかを挙げると、
「サーブレット」や「サーバサイドプラグイン」を含む
か、またはそれに同等である。
【0047】知られているように、従来技術のサーバサ
イドプラグインモジュールはクライアントデバイス30と
の視覚的レンダリングおよび対話操作用にクライアント
サイドマークアップを生成することができる。サーバサ
イドプラグインモジュール209を、上述のクライアント
サイド拡張機能例などの認識および可聴プロンプト機能
の拡張機能を含むように拡張する3種類のアプローチが
提示されているが、さらに本発明の別々の態様ともなっ
ている。図7に概略が示されている第1のアプローチで
は、現在の視覚的サーバサイドコントロール(レンダリ
ング、フォント、前景色、背景色のロケーションなどの
視覚的表示のパラメータを含む)は、認識および関連す
る認識に対する可聴プロンプト機能のパラメータまたは
属性を含むように拡張されている。たとえば、音声認識
および関連する可聴プロンプト機能を使用すると、属性
は一般に、プロンプトにテキスト音声変換用のインライ
ンテキストを含めるかどうか、事前に記録されたオーデ
ィオファイル(たとえば、ウェーブファイル)の再生、可
聴レンダリング用のデータ(テキスト音声変換のテキス
トまたは事前記録されたオーディオファイル)の保存先
などの可聴プロンプト機能のパラメータに関係する。認
識については、パラメータまたは属性に、認識中に使用
する文法の保存先、信頼レベルしきい値などを含めるこ
とができる。サーバサイドプラグインモジュール209は
クライアントサイドマークアップを生成するので、サー
バサイドプラグインモジュール209のコントロールに対
するパラメータおよび属性は認識および/または可聴プ
ロンプト機能用のクライアントサイドマークアップに用
意される拡張機能に関係する。
【0048】図7の300Aに示されているコントロール
は、ASP、ASP+、ASP.Net、JSP、Java(登録商標) beans
などのWebサイトのアプリケーション開発またはオーサ
リングツールではよく知られているコントロールであ
る。このようなコントロールは、特定の視覚的タスクを
実行するため、一般にライブラリで形成されコントロー
ル302により使用される。ライブラリ300Aは、目的のク
ライアントマークアップ、イベントハンドラなどを生成
するためのメソッドを含む。視覚的コントロール302の
例としては、図5のラベル「Credit Card Submission」3
04などの視覚的表示上の選択されたテキストラベルを実
装する「Label」コントロールがある。より高いレベル
の視覚的コントロール302の例としては他に、図5の250
に示されているようなデータフィールドにデータを入力
するための「Textbox」がある。既存の視覚的コントロ
ール302もよく知られている。認識および/または可聴プ
ロンプト機能を備えるようにサーバサイドプラグインモ
ジュールコントロールを拡張する第1のアプローチで
は、視覚的コントロール302のそれぞれは視覚的レンダ
リングに関係する属性の集合に加えて認識または可聴プ
ロンプト機能に関係する他のパラメータまたは属性を含
む。「Label」コントロールの場合、他の方法では選択
したテキストを視覚的表示上に示すが、他の属性は、オ
ーディオデータファイルをレンダリングするか、または
テキスト音声変換をこのデータファイルの保存先ととも
に使用するかどうかも示す。ライブラリ300Bは、ライブ
ラリ300Aに似ており、認識および/または可聴プロンプ
ト機能を実行するための他のマークアップ情報含む。視
覚的コントロール302はそれぞれ、この情報をコントロ
ール300Bに送り、認識または可聴プロンプト機能に安定
する特定のタスクを適切に実行するようにコーディング
されている。
【0049】他の実施例として、視覚的表示上に入力フ
ィールドを生成し、クライアントデバイス30のユーザが
情報を入力するための「Textbox」コントロールもま
た、認識に使用される文法などの適切な認識または可聴
プロンプト機能パラメータまたは属性を含む。認識また
は可聴プロンプト機能パラメータはオプションであり、
認識または可聴プロンプト機能が何らかの理由で望まし
くない場合には使用する必要がないことに注意された
い。
【0050】一般に、レベル302のコントロールに視覚
的側面に関係するパラメータが含まれる場合、そのコン
トロールはライブラリ300Aにアクセスし使用する。同様
に、コントロールに認識および/または可聴プロンプト
機能に関係するパラメータが含まれる場合、コントロー
ルはライブラリ300Bにアクセスするかまたは使用する。
ライブラリ300Aおよび300Bは、ライブラリ300Bに存在す
る追加情報を強調するために別々に示しているのであっ
て、ライブラリ300Aと300Bの情報を含む単一のライブラ
リを実装できることに注意されたい。
【0051】このアプローチでは、現在または従来技術
の視覚的コントロール302のそれぞれが、適切な認識/可
聴プロンプト機能属性を備えるように拡張されている。
コントロール302は、ライブラリ形式を取ることができ
る。サーバサイドプラグインモジュール209は、マーク
アップ情報を得るためにライブラリにアクセスする。コ
ントロールを実行すると、与えられたパラメータにより
クライアントサイドマークアップページ、またはその一
部が生成される。
【0052】図8に示されている第2のアプローチでは、
新しい視覚的認識/可聴プロンプト機能コントロール304
が提供され、コントロール304は視覚的コントロール302
に関係するサブクラスとなり、認識/可聴プロンプト機
能またはマークアップ情報はコントロール304のところ
で与えられる。つまり、新しいコントロールセット304
が、認識/可聴プロンプト機能用に用意され、クライア
ントデバイス30上の認識タスクに関係する目的の認識ま
たは可聴プロンプト機能を実行するための適切なパラメ
ータまたは属性を備える。コントロール304は、視覚的
情報をレンダリングするかまたは表示を通じて取得する
範囲で既存の視覚的コントロール302を使用する。たと
えば、レベル304のコントロール「SpeechLabel」はレベ
ル302の「Label」コントロールを使用して、可聴レンダ
リングおよび/または視覚的テキストレンダリングを行
う。同様に、「SpeechTextbox」コントロールは、文法
および関連する認識リソースおよび処理を入力フィール
ドと関連付ける。第1のアプローチのように、コントロ
ール304の属性は、認識用の文法を保存する場所、テキ
スト音声変換用のインラインテキスト、または直接レン
ダリングされる記録済みオーディオデータファイルまた
はテキストを音声変換によるテキストファイルの保存先
を含む。第2のアプローチは、認識コントロール304と視
覚的コントロール302との対話がパラメータまたは属性
によるものであるという点で都合がよく、したがって、
視覚的コントロール302の変更が生じても、コントロー
ル304と302との間でインターフェースするパラメータま
たは属性が相変わらず適切であれば、認識コントロール
304の変更は不要と思われる。ただし、他の視覚的コン
トロール302を作成する場合、レベル304の対応する認識
/可聴プロンプト機能コントロールもまた作成する必要
がある。
【0053】第3のアプローチは図9に示されている。一
般に、第3のアプローチのコントロール306は、視覚的コ
ントロール302とは別になっているが、後述のように選
択的にそれらと関連付けられている。このようにして、
コントロール306は直接的には視覚的コントロール302に
基づいて構築されないが、むしろ、視覚的コントロール
302を作成し直すことなく認識/可聴プロンプト機能対応
にできる。コントロール306は、コントロール302と同
様、ライブラリ300を使用する。この実施形態では、ラ
イブラリ300は視覚的マークアップ情報および認識/可聴
プロンプト機のマークアップ情報の両方を含み、したが
って、図7のライブラリ300Aおよび300Bの組み合わせと
なっている。
【0054】この第3のアプローチには大きな利点があ
る。まず、視覚的コントロール300にはコンテンツの変
更を必要としない。第2に、コントロール306は整合性の
とれた単一モジュールを形成することができ、音声対応
コントロール302の性質に従って変更する必要がない。
第3に、音声対応のプロセス、つまり、明示的かつ選択
的プロセスであるため、コントロール306を視覚的コン
トロール302に明示的に関連付ける操作が設計時に完全
に開発者の管理下に置かれる。このことによりさらに、
視覚的コントロールのマークアップ言語で、コントロー
ル306によって生成されたマークアップ言語により提供
される認識またはキーボードなどの従来の入力デバイス
などにより複数のソースから入力値を受け取ることが可
能になる。つまり、コントロール306をサーバサイドプ
ラグインモジュール209の視覚的オーサリングページの
既存のアプリケーションオーサリングページに追加でき
るということである。コントロール306は、クライアン
トデバイス30のユーザ向けの新しい様相の対話操作機能
を備えながら(つまり、認識および/または可聴プロンプ
ト機能)、視覚的コントロールのアプリケーションロジ
ックおよび視覚的入力/出力機能を再利用できる。コン
トロール306を、アプリケーションロジックをコーディ
ングできる視覚的コントロール302と関連付けられると
いう点を鑑みて、コントロール306をこれ以降、「随伴
コントロール306」と呼び、視覚的コントロール302を
「主トロール302」と呼ぶことができる。これらの参照
は、コントロール302と306を区別するために行うのであ
り、制限する目的のものではないことに注意されたい。
たとえば、随伴コントロール306は、音声専用Webサイト
などの視覚的レンダリングを備えていないWebサイトを
開発またはオーサリングする場合に使用することができ
る。そのような場合、特定のアプリケーションロジック
を随伴コントロールロジックで実現することができる。
【0055】随伴コントロール306のセット例をさらに
図10に示す。随伴コントロール306のセットを出力コン
トロール308および入力コントロール310としてグループ
化することができる。出力コントロール308は、通常、
記録済みオーディオファイルの再生を伴う「プロンプト
機能」クライアントサイドマークアップ、またはテキス
ト音声変換用のテキストを提供し、データはマークアッ
プ内に直接に含まれるか、またはURLで参照する。単一
の出力コントロールはすべての可聴プロンプト機能を処
理するようにパラメータで定義することができ、しがっ
て本発明の他の態様として見なされるが、実施例では、
人間用のダイアログ内の形式または種類の可聴プロンプ
ト機能は別のコントロールとして形成される。特に、出
力コントロール308は、「Question」コントロール308
A、「Confirmation」コントロール308B、および「State
ment」コントロール308Cを備えることができ、これらに
ついて後述する。同様に、入力コントロール310も、人
間用のダイアログを形成するかまたはそれに従い、「An
swer」コントロール310Aおよび「Command」コントロー
ル310Bを備える。入力コントロール310については後述
するが、一般に、入力コントロール310は文法をクライ
アントデバイス30のユーザからの予想されるまたは可能
な入力と関連付ける。
【0056】質問コントロール308A、確認コントロール
308B、ステートメントコントロール308C、応答コントロ
ール310A、コマンドコントロール310B、その他のコント
ロール、さらにそれらのコントロールの一般的構造、パ
ラメータおよびイベントハンドラについて、特に随伴コ
ントロール306としての使用に関して説明するが、それ
らのコントロール、一般的構造、パラメータおよびイベ
ントハンドラは、図7および8に関して上で述べた他の2
つのアプローチにより認識および/または可聴プロンプ
ト機能を実現するように改造できる。たとえば、パラメ
ータ「ClientToSpeechEnable」は、随伴コントロールと
視覚的コントロールとの関連付けを形成する1つのメカ
ニズム例を構成するが、これは、図7および8のアプロー
チで実現するときには不要である。
【0057】マルチモードアプリケーションでは、少な
くとも出力コントロール308のうちの1つまたは入力コン
トロール310のうちの1つを主コントロールまたは視覚的
コントロール302に関連付ける。図に示されている実施
形態では、出力コントロール308および入力コントロー
ル310は、「Question/Answer」(以下「QA」とも呼ぶ)コ
ントロール320の下で配列または編成されている。QAコ
ントロール320は、Webサーバ202で実行されるが、これ
は、サーバサイドマークアップ形式(ASP、JSPなど)を使
用してWebサーバ上に保持されているアプリケーション
開発Webページで定義されることを意味しているが、ク
ライアントデバイス30に異なる形式のマークアップとし
て出力される。QAコントロールが出力コントロール308
および入力コントロール310のすべてから形成されるよ
うに見える図10に示されているが、これらは、QAコント
ロールに対して1つまたは複数を含むことができる単な
るオプションでることは理解されるであろう。
【0058】このときに、コントロール308および310の
使用法をアプリケーションシナリオに関して説明すると
役立つと思われる。図11を参照すると、音声専用アプリ
ケーションでは、QAコントロール320は単一の質問コン
トロール308Aと応答コントロール310Aで構成できる。質
問コントロール308Aは1つまたは複数のプロンプトオブ
ジェクトまたはコントロール322を含むが、応答コント
ロール310Aは入力データの認識とその入力に対する関連
する処理のため文法オブジェクトまたはコントロール32
4を通じて文法を定義することができる。線326は、QAコ
ントロール320と使用している場合に対応する主コント
ロール302との関連付けを表す。マルチモードのシナリ
オでは、クライアントデバイス30のユーザは視覚的テキ
ストボックスに触れることができ、たとえば、「TapEve
nt」を使用すると、可聴プロンプトは必要な場合があ
る。たとえば、クライアントデバイスのユーザが対応す
るフィールド内に入力する内容を示す表示を形成する視
覚的テキストを備えるテキストボックスを含む主コント
ロールについては、対応するQAコントロール320はオー
ディオ再生やテキスト音声変換などの対応するプロンプ
トを持つ場合も持たない場合もあるが、認識用の予想さ
れる値に対応する文法、入力を処理する、または音声が
検出されない、音声が認識されない、またはタイムアウ
トでイベントが発生するなどの他のレコグナイザイベン
トを処理するイベントハンドラ328を備える(以下の「イ
ベント発生」で説明)。
【0059】一般に、出力コントロール308および入力
コントロール310および追加ロジックによるQAコントロ
ールは、いくつかを挙げると、出力可聴プロンプト機能
を提供する、入力データを収集する、入力結果の信頼性
妥当性確認を実行する、「ヘルプ」コマンドやクライア
ントデバイスのユーザがWebサイトの他の選択された領
域にナビゲートするためのコマンドなどの追加タイプの
入力を使用できるようにする、入力データの確認および
Webサイトでのダイアログの流れの制御を可能にする機
能のうち1つまたは複数を実行できる。つまり、QAコン
トロール320は特定のトピックに関係するすべてのコン
トロールを含むということである。このようにして、ダ
イアログはトピックに関してコントロールの使用を通じ
て作成され、情報取得を通知する、妥当性確認を行う、
あるいはダイアログを修復したり、会話のトピックを変
更したりすることができる。
【0060】本発明の他の態様を含む一開発方法では、
アプリケーション開発者は視覚的コントロール302を使
用してアプリケーションの視覚的レイアウトを定義する
ことができる。アプリケーション開発者は、その後、随
伴コントロール306を使用してアプリケーションの音声
インターフェースを定義することができる(QAコントロ
ール320、または出力コントロール308および入力コント
ロール310として実現する)。図10および11に示されてい
るように、随伴コントロール306のそれぞれは対応する
主コントロールまたは視覚的コントロール302にリンク
されるか、または他の手段で関連付けられ、認識および
可聴プロンプト機能を実装する。もちろん、望むなら
ば、アプリケーション開発者は視覚的コントロール302
と随伴コントロール306との間で切り替えを行うことに
よりアプリケーションを定義またはエンコードし、それ
らの間のリンクを形成し、アプリケーションが完全に定
義またはエンコードされるようにする。
【0061】このときに、出力コントロール308および
入力コントロール310のそれぞれについて簡単に説明す
ると役立つと思われる。詳細な説明は、以下の付録Bで
行う。
【0062】質問、応答、およびコマンド 一般に、上述のように、QAコントロール320内の質問コ
ントロール308Aおよび応答コントロール310Aは主コント
ロール302に関連するプロンプトおよび文法リソース、
および関係するバインド(認識結果をクライアントサイ
ドマークアップページの入力フィールドに関連付ける)
および処理ロジックを保持する。質問コントロール308A
と応答コントロール310Aが存在するか存在しないかによ
り、音声出力または認識入力がアクティブ化したときに
有効になるかどうかが決まる。コマンドコントロール31
0Bおよびユーザイニシアチブ応答は、応答コントロール
310Aとコマンドコントロール310Bに対するScopeプロパ
ティの指定によりアクティブになる。
【0063】単純な音声専用アプリケーションでは、QA
コントロール320は通常、1つの質問コントロールまたは
オブジェクト308Aと1つの応答コントロールまたはオブ
ジェクト310Aを保持する。以下の例では示されていない
が、コマンドコントロール310Bはさらに、たとえば、He
lp、Repeat、Cancelなどに指定でき、これにより、特定
の質問の応答に直接関係しないユーザ入力が使用可能に
なる。
【0064】音声専用ダイアログ用の代表的な「正規」
QAコントロールは以下のとおりである。
【0065】
【数1】
【0066】(ここで示されている例は、ASP.NETフレー
ムワークで作成されているが、例にすぎず、本発明を制
限するものとみなすべきではない。) この例では、QAコントロールを「ID」で識別することが
でき、QAコントロールと目的の主または視覚的コントロ
ールと関連付けはパラメータ「ControlsToSpeechEnabl
e」を通じて取得され、それぞれ識別子により1つまたは
複数の主コントロールを識別する。必要ならば、他のよ
く知られている手法を使用してこの関連付けを形成する
ことができる。たとえば、直接的な暗黙の関連付けは、
上述の第1と第2のアプローチを通じて使用するか、また
は関連付けを保持するために別々のテーブルを作成する
ことができる。パラメータ「runat」で、このコードをW
ebサーバ202で実行して正しいマークアップを生成する
ようWebサーバに指示する。
【0067】QAコントロールは、また、ステートメント
コントロール308Cのみを保持することもでき、その場
合、これは、アクティブな文法のないプロンプト専用コ
ントロールである(たとえば、初期画面プロンプト)。同
様に、QAコントロールは応答コントロール310Aのみを保
持することができ、その場合、マルチモードコントロー
ルとすることができ、その応答コントロール310AはGUI
またはユーザイニシアチブ用の範囲設定メカニズム(後
述)からのイベントの結果として文法を直接アクティブ
にする。
【0068】なお、QAコントロール320はさらに複数の
質問コントロール308Aおよび複数の応答コントロール31
0Aなどの複数の出力コントロール308および入力コント
ロール310を保持することもできる。これにより、作成
者は同じQAコントロール内の同じエンティティに関して
相互作用の流れを記述することができる。これは、特
に、さらに複雑な音声専用ダイアログの場合に有用であ
る。したがって、さまざまな質問と応答(たとえば、問
いかけ、確認、ヘルプ提示など)を伴うミニダイアログ
を、ダイアログエンティティを表す視覚的コントロール
と関連付けられているQAコントロールのラッパー内で指
定することができる。複雑なQAコントロールを図11に示
す。
【0069】前記はQAコントロールの主要な機能を表し
ている。以下では各機能について機能の観点から説明す
る。
【0070】応答コントロール 応答コントロール310Aは、文法の概念、バインド、およ
びその他の認識処理を抽象化し、単一のオブジェクトま
たはコントロールにまとめる。応答コントロール310Aを
使用して、バインド宣言および関連スクリプトととも
に、質問に関連する使用可能な文法セットを指定するこ
とができる。「Tap-and-Talk」などのマルチモードアプ
リケーション用の応答コントロールは、GUIブラウザイ
ベントによりアクティブ化、非アクティブ化が行われ
る。以下の例は、マルチモードアプリケーションにおい
てテキストボックス「txtDepCity」の「mouseDown」イ
ベントで出発地の都市を選択するために使用される応答
コントロールを示しており、その値を主テキストボック
スコントロールに書き込む。
【0071】
【数2】
【0072】音声専用アプリケーションの代表的な応答
コントロール310Aは、後述のように質問コントロール30
8Aにより直接アクティブにされる。
【0073】応答コントロールはさらに、受け取った結
果を主コントロールに関連付けるメカニズムを備える。
ここで、バインドにより値が主コントロール内に入る
が、他の実施形態では、関連付けメカニズムにより主コ
ントロールは認識された結果を見たり、または他の手段
でそれにアクセスしたりすることができる。
【0074】質問コントロール 質問コントロール308Aは、プロンプトタグ(付録A)の概
念を抽象して、可能なプロンプトとその質問への応答と
見なされる応答コントロール310Aの選択を含むオブジェ
クトにまとめる。各質問コントロール308Aは、実行した
ときにアクティブにする応答コントロール310Aを指定で
きる。これにより、適切な応答文法を応答コントロール
310Aにバンドルし、関連する質問コントロール308Aを反
映するようにできる。
【0075】以下の質問コントロール308Aは、出発地の
都市を尋ねるために音声専用アプリケーションで使用で
きる。
【0076】
【数3】
【0077】以下の例では、質問コントロール308Aの内
部条件に応じて異なるプロンプトを呼び出すことができ
る。質問コントロール308A内でプロンプトに対し条件付
きテストを指定できるため、言い回しに変更があって
も、質問コントロール308Aの同じ機能ユニット内で対応
できる。
【0078】
【数4】
【0079】
【数5】
【0080】条件付きQAコントロール 以下の例は、アプリケーションで認識できる情報に基づ
いてQAコントロールをアクティブにするかどうかを決定
する方法を示している。例は、調査アプリケーションの
一部である。調査は、仕事に使用する輸送の方法に関し
て従業員から情報を収集するというものである。
【0081】調査の一部ではまず、ユーザが通勤にバス
を使用するかどうかを尋ねる。応答が次の場合: -はい。次の質問ではユーザが先週バスに乗った日数を
尋ねる。 -いいえ。「バスに乗った日数」の質問はバイパスされ
る。
【0082】
【数6】
【0083】
【数7】
【0084】
【数8】
【0085】
【数9】
【0086】上記の例では、QAコントロール「QA_DaysR
odeBus」は、ブール値パラメータ「ClientTest」に基づ
いて実行され、この例では、関数RideBusCheck()に基づ
いて設定される。この関数が偽条件を返した場合、QAコ
ントロールはアクティブにされないが、真条件が返され
た場合、QAコントロールはアクティブにされる。アクテ
ィブ化メカニズムを使用することにより、生成されるク
ライアントサイドマークアップページ内の柔軟性が増
し、ダイアログの流れが向上する。付録Bに示されてい
るように、コントロールおよびオブジェクトの多くはア
クティブ化メカニズムを備える。
【0087】コマンドコントロール コマンドコントロール310Bは、音声専用ダイアログで共
通のユーザ発声機能であり、通常、尋ねられた質問に関
してほとんど意味的な取り込みはないが、むしろ、補助
または効果ナビゲーション、たとえば、ヘルプ、キャン
セル、繰り返しなどの機能を求める。QAコントロール30
6内のコマンドコントロール310Bを使用すると、認識の
文法および関連処理だけでなく(むしろ結果を入力フィ
ールドにバインドしない応答コントロール310Aに似てい
る)、コンテキストおよびタイプの「範囲」も指定する
ことができる。このため、クライアントサイドマークア
ップに対するグローバルな動作およびコンテキスト依存
の動作の両方のオーサリングが可能である。
【0088】前記の説明から当業者であれば、視覚的コ
ントロール302で使用されているのと同様にコントロー
ル306をツリー構造に編成できることは明白であろう。
各コントロール306はさらに選択された視覚的コントロ
ール302に関連付けられるため、コントロール306の編成
はコントロール302の構造に関連付けることができる。
【0089】QAコントロール302を使用して、アトミッ
クコントロール(テキストボックス、ラベルなど)とコン
テナコントロール(フォーム、パネルなど)の両方を音声
対応にできる。これは、サブダイアログコントロールの
動作の範囲を定めモジュール化する手段となっている。
たとえば、この範囲により、クライアントデバイスのユ
ーザはダイアログを終了せずにクライアントサイドマー
クアップページの他の部分にナビゲートすることができ
る。
【0090】一実施形態では、「範囲(Scope)」は、主
コントロールツリーのノードとして決定される。以下
に、2つのテキストボックスを備える、「Pnl1」コンテ
ナコントロールのレベルで範囲設定された「ヘルプ」コ
マンドの例を示す。
【0091】
【数10】
【0092】
【数11】
【0093】指定されているように、「ヘルプ」文法
は、「Pnl1」およびそのコンテンツに関係するすべての
QAコントロール内でアクティブになる。GlobalGiveHelp
サブルーチンは、「ヘルプ」が認識されることに実行さ
れる。これを指定変更し、コンテキスト依存の動作を行
わせるために、同じタイプのコマンドをコンテキストの
要求されるレベルに合わせて範囲設定することができ
る。
【0094】
【数12】
【0095】確認コントロール QAコントロール320はさらに、共通確認サブダイアログ
のオーサリングを簡素化するメソッドを備えることもで
きる。以下のQAコントロールは、値の入力を求め、その
確認を行う代表的なサブダイアログの例である。
【0096】
【数13】
【0097】この例では、AnsDepCity文法に一致するが
その信頼レベルはconfirmThreshold値を超えない「whic
h city?」に対するユーザの応答により、確認コントロ
ール308が起動する。作成者が利用できるさらに柔軟な
確認方法として、複数の質問コントロールと複数の応答
コントロールを使用するメカニズムがある。
【0098】他の実施形態では、確認コントロールに関
係する追加入力コントロールに、受理コントロール、否
認コントロール、および訂正コントロールが含まれる。
それぞれのコントロールは、対応する確認コントロール
によりアクティブにし(他のコントロールと似た方法
で)、それぞれ結果を受理、否認、または訂正する文法
を含めることができる。たとえば、ユーザは、「no」で
応えて否認する、「yes」または「yes」+現在値(たとえ
ば、「Do you want to go to Seattle?」「Yes,to Seat
tle」)で応えて受理する、「no」+新しい値(たとえば、
「Do you wantto go to Seattle」「No, Pittsburgh」)
で応えて訂正することができる。
【0099】ステートメントコントロール ステートメントコントロールを使用すると、アプリケー
ション開発者はクライアントデバイス30のユーザからの
応答を必要としないときにクライアントサイドマークア
ップの実行後に出力を行うことができる。たとえば、
「Welcome」プロンプトをクライアントサイドマークア
ップページの実行の始めに再生することができる。
【0100】ステートメントコントロールに属性を与
え、クライアントデバイスのユーザに送られるさまざま
な種類の情報を区別するようにできる。たとえば、警告
メッセージまたはヘルプメッセージを表す属性を用意す
ることができる。これらのタイプは、異なる音声などの
異なるビルトインプロパティを備えることができる。必
要ならば、別の形式のステートメントコントロール、つ
まりヘルプコントロール、警告コントロールなどを用意
することもできる。別のコントロールまたはステートメ
ントコントロールの属性として用意したどうかどうかに
関係なく、異なる種類のステートメントは、作成された
ダイアログの中で異なる役割を持つが、返答を期待せず
にクライアントデバイスのユーザに情報を送る基本的な
役割を共有する。
【0101】イベント発生 図11に示されているようなイベントハンドラは、クライ
アントデバイス30のユーザのアクション/非アクション
および認識サーバ204の操作のためにQAコントロール32
0、出力コントロール308、および入力コントロール310
内に用意されるが、他のイベントについては付録Bで仕
様を定めている。たとえば、いくつかを挙げると、ユー
ザが発話しているがその単語を音声レコグナイザ側が認
識できないようなぶつぶつ言う話し方と、音声が全く検
出されない無音状態は、QAコントロール320で指定す
る。これらのイベントでは、作成者が定義したクライア
ントサイドスクリプト機能を参照する。前に指定したマ
ルチモードアプリケーションでは、エラーメッセージを
テキストボックス内に出力する単純なマンブル(mumble)
ハンドラを次のように作成することができる。
【0102】
【数14】
【0103】コントロール実行アルゴリズム 一実施形態では、クライアントサイドスクリプトまたは
モジュール(ここでは「RunSpeech」)をクライアントデ
バイスに備える。このスクリプトの目的は、クライアン
トデバイス30で実行したときに、つまり、そこに含まれ
る値に応じてクライアントで実行するためコントロール
に関係するマークアップをアクティブにしたときにスク
リプトで指定されたダイアログの流れをロジックを介し
て実行することである。このスクリプトを使用すること
で、ページ要求間で複数のダイアログターンが可能にな
り、したがって、電話ブラウザ216などの音声専用ダイ
アログのコントロールに特に有用である。クライアント
サイドスクリプトRunSpeechは、完成フォームが送信さ
れるか、または新しいページが他の方法でクライアント
デバイス30から要求されるまでクライアントデバイス30
上で実行されループする。
【0104】一実施形態では、これらのコントロールは
クライアント上で実行されたときに値に応じて互いをア
クティブにし合うことができることに留意すべきであ
る。(たとえば、質問コントロールが選択された応答コ
ントロールをアクティブにする)。ただし、他の実施形
態では、コントロールは適切なマークアップを生成する
ために互いを「アクティブ」にすることができるが、そ
の場合、サーバサイド処理を実装できる。
【0105】一般に、一実施形態では、このアルゴリズ
ムで音声出力とユーザ入力の認識によりダイアログター
ンを生成する。アルゴリズムの全体的なロジックは、音
声専用シナリオについて以下のとおりである。 1.次のアクティブな出力随伴コントロールを見つける。 2.それがステートメントの場合、ステートメント再生
し、1に戻り、質問または確認の場合は、3に進む。 3.予想される応答を収集する。 4.コマンドを収集する。 5.出力コントロールを再生し、入力を待つ。 6.認識された応答またはコマンドオブジェクトをアクテ
ィブにするか、または何も認識されない場合はイベント
を発行する。 7.1に戻る。
【0106】マルチモードの場合、このロジックは次の
アルゴリズムに簡素化される。 1.イベントの発生、つまりユーザがコントロールを叩く
のを待つ。 2.予想される応答を収集する。 3.入力を待つ。 4.認識された応答オブジェクトをアクティブにするか、
または何もなければ、イベントをスローする。 5.1に戻る。
【0107】このアルゴリズムは、上述のように、コン
トロールにいつアクティブにできるかということに関す
る情報が組み込まれているため比較的単純である。ま
た、ダイアログ内のコントロールの役割も使用する。た
とえば、ステートメントを即座に再生し、その一方で、
質問および確認を予想される応答が収集されたときだけ
再生する。
【0108】他の実施形態では、暗黙の確認を用意する
ことができ、それによってシステムは情報断片を確認
し、同時に質問を出す。たとえば、システムは旅客機の
到着都市を確認し、「"When do you want to go to Sea
ttle?」という1回の発話で旅行日を尋ねることができる
(つまり、「いつ」を尋ね、暗黙のうちに「目的地:シア
トル」を確認する)。ユーザが日付を指定した場合、そ
の目的地の市が正しくなければユーザがすぐに異議申し
立てするので、その目的地の市は暗黙のうちに受理され
たと見なされる。このシナリオでは、質問に答えている
か、あるいは値を訂正しているか、あるいはヘルプを要
求しているかなど、ユーザが達成しようとしている内容
がわかっていることが非常に重要であることは明白であ
る。ダイアログでユーザ入力の役割を使用することによ
り、システムは値をいつ暗黙のうちに受理するかを知る
ことができる。
【0109】要約すると、ダイアログはダイアログ内の
コントロールの役割と他のコントロールとの関係に応じ
て作成され、アルゴリズムはそれらのコントロールを実
行し、これによりそのダイアログを管理するということ
である。各コントロールは、クライアント側のダイアロ
グ内のその位置で有用な目的に使用されるかどうかに応
じて所定のコントロールを選択する(つまり、実行のた
めアクティブにする)ために実行アルゴリズムにより使
用されるタイプに基づく情報を格納する。たとえば、確
認コントロールは、確認する値があり、先へ進もうにも
システム内のその値が十分に信頼できるとはいえないと
きのみ、アクティブになる。他の実施形態では、これら
の組み込まれた情報断片のほとんどは、アプリケーショ
ン開発者側で指定変更するか、または他の方法で手直し
することができる。
【0110】以下の表に、コントロール、ダイアログ内
での対応する役割、および他のコントロールとの関係を
まとめた。
【0111】
【表1】
【0112】これらのコントロールの使用法について
は、単純な人間/コンピュータダイアログの図を使用し
て説明できる。以下のダイアログでは、システムまたは
ユーザの部分の各ダイアログターンは、そのダイアログ
の目的を反映するコントロール(かっこ内)に応じて特徴
づけられる。
【0113】 1.システム(ステートメント):「Welcome to the travel
booking service」 2.システム(質問):「Where would you like to go?」 3.ユーザ(応答):「San Francisco.」 4.システム(確認):「Did you say Seattle?」 5.ユーザ(否認):「No.」 6.システム(質問):「Where would you like to go?」 7.ユーザ(応答):「San Francisco.」 8.システム(確認):「Did you say Seattle?」 9.ユーザ(訂正):「I said San Francisco.」 10.システム(確認):「Did you say San Francisco?」 11.ユーザ(訂正):「Yes.」 12.システム(質問):「When would you like to leave
?」 13.ユーザ(コマンド):「Help.」
【0114】ターン1は、システムの部分のステートメ
ントである。ステートメントコントロールに応答でアク
ティブにする応答コントロールがないため、システムは
入力を予期しない。システムは、引き続き、ターン2で
質問コントロールをアクティブにする。次に、「San Fr
ancisco」、「Seattle」などサービスを通じて利用でき
る市を含む文法を保持するものを含む可能な応答コント
ロールセットをアクティブにし、ユーザがターン3でそ
のような市を指定できるようにする。
【0115】ユーザのターン3は、システムによって誤
認識される。システムでは市に対する応答コントロール
からの値があると信頼しているが、その値の信頼性は低
い(間違って認識されているためまさしくそうである)。
受け取ったばかりの応答コントロールのこのように低い
信頼性の値は、RunSpeechがターン4で生成されるように
システムの部分の確認コントロールを起動するには十分
な情報である。次に確認コントロールは、否認コントロ
ール、訂正コントロール、および受理コントロールをア
クティブにし、ユーザの次のターンを認識するのにそれ
ぞれの文法を使用できるようにする。ユーザのターン
5、9、および11は、これらのコントロールの応答例を示
している。ユーザのターン5では、値「no」を単に否認
する。これは、システムから値を削除する効果があり、
したがって、RunSpeechの次のアクションは、値を再取
得するために再び質問することである(ターン6)。
【0116】ターン7および8は、3および4の場合のよう
に確認コントロールに戻る。
【0117】ユーザターン9は、訂正コントロールであ
り、これもまた、確認コントロールの可能な応答として
アクティブにされている。訂正コントロールでは、確認
対象の値を否認するだけでなく、新しい値をも指定す
る。したがって、ユーザターン9は、システムによっ
て、正しくはことのときに「San Francisco」と認識さ
れる新しい値を持つ正しいコントロールであると認識さ
れる。
【0118】しかし、新しい値に対するシステムの信頼
は低く、なお他の確認コントロールがターン10で生成さ
れる。次に、応答でコントロールの受理、否認、および
訂正がアクティブになり、ユーザターン11(「Yes」)は
受理コントロール文法と一致する。受理コントロールの
認識には取得しようとしている値に対するシステムの信
頼の「グラウンディング(grounding)」の効果があり、
したがって、RunSpeechは他の空の値を選択して取得す
ることができる。ターン12で、日付の値を要求する新し
い質問コントロールが出力される。今回のユーザの応答
(ターン13)はコマンド「help」である。コマンドコント
ロール、通常、グローバルな形で、つまり、システムの
部分の異なる質問コントロールおよび確認コントロール
とは独立にアクティブにされる。このようにして、ユー
ザは、ターン13でするようにいつでもヘルプを要求する
ことができる。コマンドコントロールはさらに、主コン
トロール構造の部分について話しているアクティブ化の
範囲を定めるメカニズムによりさらに細かく使用可能に
することができる。
【0119】またアルゴリズムを参照すると、一実施例
では、クライアントサイドスクリプトRunSpeechは主コ
ントロールのそれぞれの中の値と、QAコントロールの属
性を調べ、現在のページのQAコントロールの選択テスト
を行い、実行用の単一QAコントロールを選択する。たと
えば、選択したQAコントロール内で、単一の質問および
その対応するプロンプトが出力に対して選択され、その
後、対応する質問に対する代表的な応答に関して文法が
アクティブにされる。追加文法も、並行してアクティブ
にされ、他のコマンド(またはその他の応答)を使用でき
るようになり、これは許容可能であるとして示されてい
る。認識が行われ、入力データに対する他の処理が完了
していると仮定すると、クライアントサイドスクリプト
RunSpeechは、再び、次に実行するQAコントロールを確
認し始める。RunSpeechの実装例とアルゴリズムについ
て付録Bで取り上げる。
【0120】コントロールおよびRunSpeechアルゴリズ
ムまたはモジュールの使用は、上述のクライアント/サ
ーバアプリケーションに限定されないが、むしろ他のア
プリケーションの抽象化とともに使用するように手直し
することができることに注目されたい。たとえば、クラ
イアントデバイス30でのみ実行される、VoiceXMLなどの
アプリケーションは、VoiceXMLブラウザの一部としてま
た同じようにして動作する上記の質問および応答などの
他の要素またはコントロールをたぶん含むことができ
る。この場合、上述のRunSpeechアルゴリズムのメカニ
ズムを、特別なスクリプトなしでブラウザによりデフォ
ルトで実行することができる。同様に、有限状態機械な
どの他のプラットフォームを手直しして、ここで説明し
たコントロールおよびRunSpeechアルゴリズムまたはモ
ジュールを含むようにできる。
【0121】同期 上述のように随伴コントロール306は、主コントロール3
02(ページ上の既存コントロール)と関連付けられる。そ
のため、随伴コントロール306では、ビジネスロジック
および主コントロール302のプレゼンテーション機能を
再利用することができる。これは、主コントロール302
に値を格納し、変更を主コントロール302に通知すると
いう2つの方法で行う。
【0122】随伴コントロール306は、バインドと呼ば
れるメカニズムを介してその値を主コントロール302と
同期させるかまたは関連付ける。バインドにより、レコ
グナイザから取り出された値は主コントロール302に格
納され、たとえば、テキストがテキストボックスに入力
されるが、これは応答コントロールの例に示されてい
る。主コントロール302は視覚的プレゼンテーションを
行う役割を持つため、マルチモードシナリオで視覚的フ
ィードバックがユーザに送られる。
【0123】随伴コントロール306は、さらに、レコグ
ナイザを介して入力を受け取ったことを主コントロール
302に通知するメカニズムも備える。これにより、主コ
ントロール302は、ビジネスロジックを呼び出すなどの
アクションを実行することができる。(通知で結局、随
伴コントロール306は主コントロール302に書き込む値に
コミットすることになるため、実装によりこの通知を細
かく制御できるメカニズムを用意する。このコントロー
ルは応答コントロール上のRejectThresholdおよびConfi
rmThresholdプロパティにより与えられ、このコントロ
ールで音響信頼値を指定し、この数値よりも下回る値を
システムはそれぞれ拒絶するかまたは確認を試みる。)
【0124】本発明は、好ましい実施形態を参照しなが
ら説明したが、当業者は本発明の主旨と範囲を逸脱する
ことなく形式と詳細に変更を加えられることを認識する
であろう。
【0125】付録A 1 はじめに 以下のタグは、ドキュメントで音声を入力または出力媒
体として使用するためのマークアップ要素セットであ
る。タグは、自己充足型のXMLとなるように設計されて
おり、HTML、XHTML、cHTML、SMIL、WMLなどのSGML派生
マークアップ言語に埋め込むことができる。ここで使用
するタグは、ワシントン州レドモンドのMicrosoft Corp
orationが配布しているメソッド群であるSAPI 5.0と似
ている。タグ、要素、イベント、属性、プロパティ、戻
り値などは、例にすぎず、制限するものとみなすべきで
はない。ここで音声およびDTMF認識について例を挙げて
いるが、似ているタグは他の形式の認識についても提供
できる。
【0126】ここ説明する主要な要素を以下に示す。
【0127】
【数15】
【0128】2 Reco Reco要素は、可能なユーザ入力および入力結果を処理す
るための手段を指定するために使用する。したがって、
その主要な要素は<grammar>および<bind>であり、レコ
グナイザのプロパティを設定するためのリソースを含
む。
【0129】Reco要素は、StartおよびStopメソッドを
介してアップレベルブラウザでプログラムによりアクテ
ィブにされるか、またはSMILコマンドを使用してSMIL対
応ブラウザによりアクティブにされる。これらは、ペー
ジ上に存在することによりダウンレベルブラウザ(つま
り、スクリプト非対応ブラウザ)で宣言的にアクティブ
と見なされる。複数の文法を並行してアクティブにする
ため、複数のReco要素を同時にアクティブであると考え
ることができる。
【0130】Recoはさらに、特定のモード-「自動」、
「単一」、「複数」-があり、使用可能にする認識シナ
リオの種類および認識プラットフォームの動作を区別す
ることもできる。
【0131】2.1 Recoコンテンツ Reco要素には、1つまたは複数の文法およびオプション
で認識の結果を検査し関連する部分を、含むページ内の
値にコピーする一組のバインド要素が含まれる。
【0132】アップレベルブラウザでは、Recoは個々の
文法規則のプログラムによるアクティブ化と非アクティ
ブ化をサポートする。また、文法のすべての上位規則は
認識コンテキストに対してデフォルトでアクティブにな
っていることに注意されたい。
【0133】2.1.1 <grammar>要素 文法要素を使用し、インラインでまたはsrc属性を使用
して参照することで文法を指定する。通常、少なくとも
1つの文法(インラインまたは参照)を指定する。インラ
イン文法(Inline grammars)は、テキストベースの文法
形式であり、参照文法(referenced grammars)はテキス
トベースまたはバイナリ型である。複数の文法要素を指
定することもできる。複数の文法要素を指定した場合、
文法内の規則は同じ文法内の特別規則として追加され
る。同じ名前の規則があれば、上書きされる。
【0134】属性: ・src:インライン文法が指定されている場合、オプショ
ン。含める文法のURI。文法のすべての上位規則は認識
コンテキストに対してデフォルトでアクティブになって
いることに注意されたい。 ・langID:オプション。音声エンジンで使用する言語を
示す文字列。文字列の形式は、xml:langの定義に従う。
たとえば、langID="en-us"は米国英語を表す。この属性
は、langIDが文法URIで指定されていない場合にのみ有
効である。指定されていない場合、米国英語がデフォル
ト値である。
【0135】langIDが複数の場所で指定されている場
合、langIDは最低範囲からの優先順位に従う-リモート
文法ファイル(つまり、言語idは文法ファイル内で指定
する)の後に文法要素が続き、その後にreco要素が続
く。
【0136】
【数16】
【0137】src参照文法とインライン文法の両方を指
定した場合、インライン規則が参照規則に追加され、同
じ名前の規則があればそれは上書きされる。
【0138】2.1.2 <bind>要素 bind要素は、認識結果から値をページにバインドする場
合に使用する。
【0139】bind要素によって消費される認識結果は、
認識結果を指定するための意味論的マークアップ言語(S
ML)を含むXMLドキュメントとすることができる。そのコ
ンテンツには、意味論的値、話された実際の単語、およ
び信頼度得点が含まれる。SMLは、さらに、他の認識選
択も含むことができる(N最良認識結果の場合と同様)。
発話「I'd like to travel from Seattle to Boston」
のサンプルSMLドキュメントを以下に示す。
【0140】
【数17】
【0141】文法内認識はXMLドキュメント-意味論的マ
ークアップ言語では、SML-を出力すると仮定されている
ので、SMLドキュメントからバインドされる値はXPathク
エリを使用して参照される。また、値がバインドされる
ページ内の要素は一意に識別されるため(フォームコン
トロールである可能性がある)、これらのターゲット要
素は直接参照される。
【0142】属性: ・targetElement:必須。SMLからの値内容が割り当てら
れる要素(W3C SMIL 2.0の場合と同様)。 ・targetAttribute:オプション。SMLからの値内容が割
り当てられるターゲット要素の属性(SMIL 2.0のattribu
teName属性の場合と同様)。指定されていない場合、「v
alue」がデフォルト値である。 ・test:オプション。認識結果を割り当てる際の条件を
示すXMLパターン(W3C XML DOM仕様で規定されている)文
字列。デフォルトの条件は真である。 ・value:必須。ターゲット要素に割り当てる認識結果ド
キュメントから値を指定するXPATH(W3C XML DOM仕様で
規定されている)文字列。
【0143】例:上記のSML戻り値が与えられると、以下
のreco要素はbindを使用してorigin_cityとdest_cityの
中の値をターゲットページ要素txtBoxOriginおよびtxtB
oxDestに転送する。
【0144】
【数18】
【0145】このバインドは、次の例のように、条件付
きの場合があり、バインド操作の事前条件としてdest_c
ity結果の信頼属性についてテストを実行する。
【0146】
【数19】
【0147】bind要素は、ダウンレベルブラウザまたは
アップレベルブラウザ上で認識結果を処理するための単
純な宣言的手段である。より複雑な処理については、ア
ップレベルブラウザによってサポートされているreco D
OMオブジェクトがonRecoイベントハンドラを実装し、プ
ログラムによるスクリプト解析および戻された認識結果
の後処理を可能にする。
【0148】2.2 属性およびプロパティ 以下の属性は、すべてのブラウザでサポートされてお
り、プロパティはアップレベルブラウザでサポートされ
ている。
【0149】2.2.1 属性 Recoの以下の属性は、ダイアログターンの音声レコグナ
イザを設定する場合に使用する。 ・initialTimeout:オプション。認識の開始から発声の
検出までのミリ秒単位の時間。この値は、認識プラット
フォームに渡され、この値を超えると、認識プラットフ
ォームからonSilenceイベントが送られる(2.4.2を参照
のこと)。指定していない場合、音声プラットフォーム
はデフォルト値を使用する。 ・babbieTimeout:オプション。レコグナイザが音声検出
後結果を返さなければならないミリ秒単位の期間。reco
が自動および単一モードの場合、これは音声検出から停
止コールまでの期間に適用される。recoが「複数」モー
ドの場合、このタイムアウトは音声検出から各認識の返
却までの期間に適用されるが、要するに、この期間は結
果またはその他のイベントを返すごとにリスタートす
る。この値を超えた場合、エラーが発生したかどうかに
応じて異なるイベントがスローされる。レコグナイザは
まだオーディオを処理している場合、たとえば、発話が
例外的に長い場合、onNoRecoイベントがスローされ、ス
テータスコード13が返される(2.4.4を参照)。ただし、
他の何らかの理由によりこのタイムアウト値を超えた場
合、レコグナイザのエラーが発声する可能性が高くな
り、onTimeoutイベントがスローされる。指定していな
い場合、音声プラットフォームは、デフォルト値として
内部値を使用する。 ・maxTimeout:オプション。認識開始からブラウザに結
果が返されるまでのミリ秒単位の期間。この値を超えた
場合、ブラウザによってonTimeoutイベントがスローさ
れる、これにより分散環境でのネットワークまたはレコ
グナイザの障害に対処する。recoが「複数」モードの場
合、babbleTimeoutの場合のように、各認識結果が返さ
れるごと、または他のイベントの後にこの期間が再スタ
ートする。maxTimeout属性はinitialTimeoutとbabbleTi
meoutの合計以上でなければならないことに注意された
い。指定していない場合、この値がブラウザデフォルト
値になる。 ・endSilence:オプション。Recoが自動モードの場合、
認識結果が返される前の音声がない状態でなければなら
ない発話の終わりの後のミリ秒単位の無音期間。自動以
外のモードのrecoについては無視される。指定されてい
ない場合、デフォルト値はプラットフォームの内部値で
ある。 ・reject:オプション。この値よりも小さいときにプラ
ットフォームが「no reco」イベントをスローする認識
拒絶しきい値。指定していない場合、音声プラットフォ
ームはデフォルト値を使用する。信頼度得点の範囲は0
から100(整数)までである。拒絶値は間に入る。 ・server:オプション。音声プラットフォームURI(タグ
インタプリタおよび認識プラットフォームが同じ場所に
配置されていない場合に使用する)。値の例として、ser
ver=protocol://yourspeechplatformがある。アプリケ
ーション作成者は、クエリ文字列をURI文字列に追加す
る、たとえばprotocol://yourspeechplatform?bargeinE
nergyThreshold=0.5とすることで、音声プラットフォー
ム固有の設定を行うこともできる。 ・langID:オプション。音声エンジンで使用する言語を
示す文字列。文字列の形式は、xml:langの定義に従う。
たとえば、langID="en-us"は米国英語を表す。この属性
は、langIDが文法要素で指定されていない場合にのみ有
効である(2.1.1を参照)。 ・mode:オプション。従うべき認識モードを指定する文
字列。指定されていない場合、「automatic」モードが
デフォルト値である。
【0150】2.2.2 プロパティ 以下のプロパティには、認識プロセスによって返される
結果が格納される(これらは、アップレベルブラウザに
よってサポートされている)。 ・recoResult読み取り専用。2.1.2で説明されているよ
うに、意味論的マークアップ言語(SML)を含むXML DOMノ
ードオブジェクト内に保持される認識の結果。認識がな
い場合、プロパティはNULLを返す。 ・text読み取り専用。認識された単語のテキストを保持
する文字列(つまり、recoResult内のSML認識戻り値の最
高レベルの要素のテキスト属性のコンテンツに対する速
記)。 ・status:読み取り専用。認識プラットフォームによっ
て返されるステータスコード。可能な値は、認識成功を
表す0、または-1から-4の失敗値(Startメソッド(2.3.1
項)およびActivateメソッド(2.3.4項)で可能な例外で定
義されている)、およびレコグナイザイベントの受け取
り時に設定される-11から-15までのステータス(2.4を参
照)。
【0151】2.3 オブジェクトメソッド Recoアクティブ化および文法アクティブ化は、RecoのDO
Mオブジェクト内の以下のメソッドを使用して制御でき
る。これらのメソッドを使用することで、アップレベル
ブラウザはRecoオブジェクトの起動および停止、進行中
の認識のキャンセル、および個別の文法最上位規則のア
クティブ化および非アクティブ化を実行できる(アップ
レベルブラウザのみ)。
【0152】2.3.1 Start Startメソッドは、明示的に非アクティブ化されていな
い認識コンテキストに対するすべての最上位規則をアク
ティブな文法として使用し、認識プロセスを開始する。
【0153】構文:Object.Start( ) 戻り値:なし。
【0154】例外:このメソッドは、0以外のステータス
コードを設定し、失敗した場合にonNoRecoイベントが起
動する。考えられる失敗としては、文法がない(recoス
テータス=-1)状況、文法をコンパイルできなかったなど
さまざまな理由が考えられる文法をロードできなかった
状況、URIが存在していない(recoステータス=-2)状況、
または音声プラットフォームエラー(recoステータス=-
3)状況がある。
【0155】2.3.2 Stop Stopメソッドは、認識プロセスを終了させる呼び出しで
ある。Recoオブジェクトは音声記録を停止し、レコグナ
イザは記録が停止された時点までに受け取った音声の認
識結果を返す。Recoで使用しているすべての認識リソー
スは解放され、その文法は非アクティブ化される。(自
動モードでは標準的な認識に対してはこのメソッドを明
示的に使用する必要はないが、これは、レコグナイザ自
体が安全なセンテンスを認識した後終点検出時にrecoオ
ブジェクトを停止するからであることに注目された
い。)Recoが起動されていない場合、この呼び出しは生
じない。
【0156】構文:Object.Stop( ) 戻り値:なし。
【0157】例外:なし。
【0158】2.3.3 Cancel Cancelメソッドは、レコグナイザに音声を送る操作を停
止し、文法を非アクティブ化し、レコグナイザを解放
し、認識結果を破棄する。ブラウザは、キャンセルされ
た認識の認識結果を破棄する。レコグナイザが起動され
ていない場合、この呼び出しは生じない。
【0159】構文:Object.Cancel( ) 戻り値:なし。
【0160】例外:なし。
【0161】2.3.4 Activate Activateメソッドは、文脈自由文法(CFG)の最上位規則
をアクティブにする。「開始した」認識プロセスで有効
にならないので、認識が開始する前にアクティブ化を呼
び出す必要がある。明示的に非アクティブ化されていな
い認識コンテキストに対する文法最上位規則はすべて、
すでにアクティブになっているものとして扱われること
に注意されたい。
【0162】構文:Object.Activate(strName); パラメータ:o strName:必須。アクティブにする規則
名。
【0163】戻り値:なし。
【0164】例外:なし。
【0165】2.3.5 Deactivate Deactivateメソッドは、文法の最上位規則を非アクティ
ブにする。規則が存在していない場合、このメソッドは
効果がない。
【0166】構文:Object.Deactivate(strName); パラメータ:o strName:必須。非アクティブにする規則
名。空の文字列はすべての規則を非アクティブにする。
【0167】戻り値 なし。
【0168】例外 なし。
【0169】2.4 Recoイベント Reco DOMオブジェクトは他のイベントをサポートしてお
り、ハンドラはreco要素の属性として指定することがで
きる。
【0170】2.4.1 onReco: このイベントは、レコグナイザにブラウザで利用できる
認識結果がある場合に起動する。自動モードでのrecoで
は、このイベントにより、認識プロセスが自動的に停止
し、リソースがクリアされる(2.3.2を参照)。OnReco
は、通常、認識結果のプログラムによる分析と結果を処
理してページに挿入する操作に使用される。
【0171】
【表2】
【0172】
【表3】
【0173】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる(以下の例のイベントオブジェクトの使用を参
照のこと)。
【0174】例 以下のHTML断片では、onRecoを使用して、認識結果を解
析し、値を適切なフィールドに割り当てるスクリプトを
呼び出す。
【0175】
【数20】
【0176】
【数21】
【0177】2.4.2 onSilence:onSilenceは、Recoのin
itialTimeout属性で指定された持続時間の前に認識プラ
ットフォームによって音声がないことを検出するイベン
トを処理する(2.2.1を参照)。自動認識モードの場合
に、このイベントにより認識プロセスが自動的にキャン
セルされる。
【0178】
【表4】
【0179】
【表5】
【0180】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0181】2.4.3 onTimeout onTimeoutは、通常音声プラットフォームからのエラー
を反映する2種類のイベントを処理する。
【0182】・認識が完了する前にmaxtime属性(2.2.1
を参照)で指定されている期間が期限切れになったこと
を知らせるタグインタプリタによりスローされたイベン
トを処理する。このイベントは、通常、分散アーキテク
チャで発生する可能性のある問題を反映する。 ・また、(ii)認識が開始したがbabbleTimeoutによって
指定された期間内に認識が行われずに処理が停止したと
きに音声認識プラットフォームによってスローされるイ
ベントを処理する。
【0183】このイベントにより、認識プロセスが自動
的にキャンセルされる。
【0184】
【表6】
【0185】
【表7】
【0186】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0187】2.4.4 onNoReco:onNoRecoは、有効な認識
結果を返すことができない場合に音声認識プラットフォ
ームによってスローされるイベント用のハンドラであ
る。このような状況が発生するさまざまなケースをステ
ータスコードで区別する。このイベントにより、認識プ
ロセスが自動的に停止される。
【0188】
【表8】
【0189】
【表9】
【0190】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0191】3 プロンプト プロンプト要素を使用して、システム出力を指定する。
そのコンテンツは以下のうちの1つまたは複数である。 ・韻律的なまたはその他の音声出力情報でマークアップ
できるインラインまたは参照テキスト。 ・含有するドキュメントからレンダリング時に取り出し
た変数値。 ・オーディオファイルへのリンク。
【0192】プロンプト要素は、ダウンレベルブラウザ
によって宣言的に解釈するか(SMILコマンドによってア
クティブにする)、またはアップレベルブラウザのオブ
ジェクトメソッドにより宣言的に解釈することができ
る。
【0193】3.1 プロンプトコンテンツ prompt要素は、システム出力のリソースを、テキストま
たはオーディオファイルへの参照またはその両方として
含む。
【0194】単純なプロンプトは、出力に必要なテキス
トのみを指定する必要がある。例:
【0195】
【数22】
【0196】この単純なテキストは、後述の種類のマー
クアップをさらに含むことができる。
【0197】3.1.1 音声合成マークアップ 音声合成マークアップ言語の形式は、プロンプト要素の
内側で使用することがきる。(この形式は、3.2.1で説明
している「tts」属性で指定することができる。) 以下の例は、テキスト内のいくつかの単語を強調する命
令を含むテキストを示している。
【0198】
【数23】
【0199】3.1.2 動的コンテンツ プロンプトの実際のコンテンツはプロンプト出力する直
前に計算する必要がある。たとえば、特定の値を確認す
るには、変数内の値の参照を解除する必要がある。valu
e要素はこの目的にも使用できる。
【0200】value要素 ・value:オプション。ドキュメント内の要素の値を取り
出す。
【0201】属性: ・targetElement:オプション。hrefまたはtargetElemen
tのいずれかを指定する必要がある。取り出す値を含む
要素のid。 ・targetAttribute:オプション。値が取り出される要素
の属性。 ・href:オプション。オーディオセグメントのURI。href
は、両方が存在する場合targetElementを指定変更す
る。
【0202】targetElement属性を使用して、含むドキ
ュメント内の要素を参照する。idがtargetElementで指
定されている要素のコンテンツが合成するテキスト内に
挿入される。目的のコンテンツが要素の属性内に保持さ
れている場合、targetAttribute属性を使用して、targe
tElement上の必要な属性を指定することができる。これ
は、たとえば、HTML形式のコントロール内の値の参照を
解除する場合に使用する。次の説明では、「txtBoxOrig
in」および「txtBoxDest」要素の「value」属性がプロ
ンプトの出力前にテキストに挿入される。
【0203】
【数24】
【0204】3.1.3 オーディオファイル またvalue要素は、合成されたプロンプト代わりに、ま
たは合成されたプロンプト内で再生するために事前記録
されたオーディオファイルを参照する場合にも使用でき
る。以下の例では、プロンプトの終わりにビープ音を再
生する。
【0205】
【数25】
【0206】3.1.4 参照プロンプト 次のように、コンテンツをインラインで指定する代わり
に、src属性を空の要素とともに使用してURI経由で外部
コンテンツを参照することができる。
【0207】
【数26】
【0208】src属性のターゲットは、インラインプロ
ンプトに対して指定された上記のコンテンツのどれかま
たはすべてを保持することができる。
【0209】3.2 属性およびプロパティ prompt要素は、以下の属性(ダウンレベルブラウザ)およ
びプロパティ(ダウンレベルブラウザおよびアップレベ
ルブラウザ)を保持する。
【0210】3.2.1 属性 ・tts:オプション。テキスト音声合成用のマークアップ
言語タイプ。デフォルトは「SAPI 5」である。 ・src:インラインプロンプトが指定されている場合、オ
プション。参照されているプロンプトのURI(3.1.4を参
照)。 ・bargein:オプション。整数。プロンプトの開始から人
間の聞き手が再生を中断できるまでのミリ秒単位の期
間。デフォルトは無限大、つまりbargeinを許可してい
ない。Bargein=0だと、bargeinが直ちに始まる。これ
は、プラットフォームでサポートしているどのような種
類のbarge-inにも適用される。recoが起動したときにど
れが有効になっているかに応じてキーワードまたはエネ
ルギーベースのbargein時間をこの方法で設定できる。 ・prefetch:オプション。ページがロードされたときに
プロンプトを即座に合成しブラウザにキャッシュするか
どうかを示すブール値のフラグ。デフォルトは偽であ
る。
【0211】3.2.2 プロパティ アップレベルブラウザは、プロンプトのDOMオブジェク
トで以下のプロパティをサポートしている。 ・bookmark:読み取り専用。最後に出会った合成ブック
マークのテキストを記録する文字列オブジェクト。 ・status:読み取り専用。音声プラットフォームによっ
て返されるステータスコード。
【0212】3.3 プロンプトメソッド プロンプト再生は、プロンプトのDOMオブジェクト内の
以下のメソッドを使用して制御できる。この方法では、
アップレベルブラウザはプロンプトオブジェクトの起動
および停止、進行中のプロンプトの一時停止および再
開、および合成された音声の速度と音量の変更を行うこ
とができる。
【0213】3.3.1 Start プロンプトの再生を開始する。引数が指定されていない
限り、このメソッドはオブジェクトのコンテンツを再生
する。単一のプロンプトオブジェクトのみが、所定の時
刻に「起動されている」と見なされ、したがって、Star
tを連続して呼び出すと、すべての再生が順番に実行さ
れる。
【0214】構文:Object.Start([strText]); パラメータ:o strText:シンセサイザーに送るテキス
ト。存在する場合、この引数によりオブジェクトのコン
テンツが指定変更される。 戻り値:なし。
【0215】例外:status=-1に設定すると、オーディオ
バッファがすでにサーバによって解放されているとして
もonCompleteイベントを起動する。
【0216】3.3.2 Pause オーディオバッファをフラッシュせずに再生を一時停止
する。このメソッドは、再生が一時停止または停止状態
の場合には効果がない。
【0217】構文:Object.Pause( ); 戻り値:なし。
【0218】例外:なし。
【0219】3.3.3 Resume オーディオバッファをフラッシュせずに再生を再開す
る。このメソッドは、再生が一時停止状態でなかった場
合には効果がない。
【0220】構文:Object.Resume( ); 戻り値:なし。
【0221】例外:再開が失敗すると例外をスローす
る。
【0222】3.3.4 Stop 再生が停止していなければ再生を停止し、オーディオバ
ッファをフラッシュする。再生がすでに停止している場
合、このメソッドは単にオーディオバッファをフラッシ
ュするだけである。
【0223】構文:Object.Stop( ); 戻り値:なし。
【0224】例外:なし。
【0225】3.3.5 Change 再生の速度および/または音量を変更する。再生中にcha
ngeを呼び出せる。
【0226】構文:Object.Change(speed, volume); パラメータ:o speed:必須。変更する係数。Speed=2.0と
すると現在の速度が倍になり、speed=0.5とすると現在
の速度が半分になり、speed=0とするとデフォルト値に
戻る。 o volume:必須。変更する係数。Volume=2.0とすると現
在の音量が倍になり、Volume=0.5とすると現在の音量が
半分になり、Volume=0とするとデフォルト値に戻る。
【0227】戻り値:なし。
【0228】例外:なし。
【0229】3.3.6 プロンプトコントロールの例 以下の例は、上記のメソッドを使用するプロンプトのコ
ントロールをキーワードbarge-inメカニズムをサポート
していないプラットフォームに対しオーサリングする方
法を示している。
【0230】
【数27】
【0231】3.4 プロンプトイベント プロンプトDOMオブジェクトは他のイベントをサポート
しており、ハンドラはprompt要素の属性として指定する
ことができる。
【0232】3.4.1 onBookmark 合成ブックマークが見つかったときに発生する。このイ
ベントでは、再生の一時停止は行われない。
【0233】
【表10】
【0234】
【表11】
【0235】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0236】3.4.2 onBargein:ユーザのbarge-inイベ
ントが検出されたときに発生する。(barge-inイベント
を構成するもの、たとえば、エネルギー検出やキーワー
ドの認識を決定する操作はプラットフォームに任される
ことに注意されたい。)このイベントハンドラを指定し
ても、barge-inは自動的にオンにならない。
【0237】
【表12】
【0238】
【表13】
【0239】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0240】3.4.3 onComplete:プロンプト再生が終わ
りに到達したか例外(上で定義したような)が発生したと
きに発生する。
【0241】
【表14】
【0242】
【表15】
【0243】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0244】3.4.4 ブックマークとイベントの使用 以下の例は、ブックマークイベントを使用して、プロン
プト出力中にbargeinがいつ発生するかということに関
してユーザ応答の意味-出発地の市への訂正または目的
地の市の指定のいずれか-を判別する方法を示してい
る。onBargeinハンドラは、プロンプトで見つかった最
後のブックマークにグローバルな「マーク」変数を設定
するスクリプトを呼び出し、この「マーク」の値をreco
の後処理関数(「heard」)で使用して正しい値を設定す
る。
【0245】
【数28】
【0246】4 DTMF DTMF認識オブジェクトを作成する。インラインマークア
ップ言語構文を使用してまたはスクリプト作成でオブジ
ェクトをインスタンス化することができる。DTMFがアク
ティブにされると、プロンプトオブジェクトはbarge-in
イベントを発生する。DTMF認識に関して後述するタグお
よびイベント発生とセクション5で説明した呼び出しコ
ントロールは一般に音声ブラウザ216とメディアサーバ2
14との間の相互作用に関係することに注意されたい。
【0247】4.1 コンテンツ ・dtmf grammar:インライン文法用。 ・bind:DTMF変換結果を適切なフィールドに割り当て
る。 属性: ・targetElement:必須。部分的認識結果の割り当て先の
要素(比較:W3C SMIL 2.0の場合と同様)。 ・targetAttribute:認識結果の割り当て先のターゲット
要素の属性(比較:SMIL2.0の場合と同様)。デフォルトは
「value」である。 ・test:割り当ての条件。デフォルトは真である。
【0248】例1:キーをテキストにマップする。
【0249】
【数29】
【0250】「city_choice」がアクティブになると、
ユーザが1を押した場合「Seattle」が入力フィールドに
割り当てられ、2を押した場合「Boston」が割り当てら
れ、それ以外の場合は何も割り当てない。
【0251】例2:複数のフィールドでDTMFを使用する方
法。
【0252】
【数30】
【0253】このコード例は、複数のフィールドに入力
する方法を示している。
【0254】例3:ユーザがDTMFを起動したときに音声お
よびDTMFの両方の入力を許可し、音声を無効にする方
法。
【0255】
【数31】
【0256】
【数32】
【0257】4.2 属性およびプロパティ 4.2.1 属性 ・dtmfgrammar:必須。DTMF文法のURI。
【0258】4.2.2 プロパティ ・DTMFgrammar読み書き。
【0259】文字列変換行列(DTMF文法ともいう)へのDT
MFを表すXML DOMノードオブジェクト。デフォルトの文
法は以下の通りである。
【0260】
【数33】
【0261】・flush 読み書き属性を持つ、アクティブにする前に基盤の電話
インターフェースカード上のDTMFバッファを自動的にフ
ラッシュするかどうかを示すブール値フラグ。デフォル
トは偽で、先入力を有効にする。 ・escape 読み書き。DTMF読み込みセッションを終了するescapeキ
ー。escapeキーはワンキーである。 ・numDigits 読み書き。DTMF読み込みセッションを終了するキースト
ロークの回数。escapeとlengthの両方が指定されている
場合、DTMFセッションはいずれかの条件が満たされたと
きに終了する。 ・dtmfResult ユーザが入力したDTMFキーを格納する読み取り専用文字
列。escapeを入力するとescapeが結果に含まれる。 ・text 空白類で区切ったトークン文字列を格納する読み取り専
用文字列であり、各トークンはDTMF文法に従って変換さ
れる。 ・initialTimeout 読み書き。最初のDTMFキーストロークを受け取るミリ秒
単位のタイムアウト期間。指定されていない場合、デフ
ォルト値は電話プラットフォームの内部設定である。 ・interdigitTimeout 読み書き。隣接するDTMFキーストロークに対するミリ秒
単位のタイムアウト期間。指定されていない場合、デフ
ォルト値は電話プラットフォームの内部設定である。
【0262】4.3 オブジェクトメソッド: 4.3.1 Start DTMF割り込みを有効にし、DTMF読み込みセッションを開
始する。
【0263】構文:Object.Start( ); 戻り値:なし 例外:なし
【0264】4.3.2 Stop DTMFを無効にする。ただし、ユーザが入力したキースト
ロークはバッファ内に残る。
【0265】構文:Object.Stop( ); 戻り値:なし 例外:なし
【0266】4.3.3 Flush DTMFバッファをフラッシュする。Flushは、DTMFセッシ
ョンでは呼び出せない。
【0267】構文:Object.Flush( ); 戻り値:なし 例外:なし
【0268】4.4 イベント 4.4.1 onkeypress DTMFキーが押されたときに発生する。HTMLコントロール
から継承されたデフォルトイベントを指定変更する。ユ
ーザがescapeキーを押すと、onKeypressではなくonRec
イベントが発生する。
【0269】
【表16】
【0270】
【表17】
【0271】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0272】4.4.2 onReco DTMFセッションが終了したときに発生する。このイベン
トにより、現在のDTMFオブジェクトが自動的に無効にさ
れる。
【0273】
【表18】
【0274】
【表19】
【0275】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0276】4.4.3 onTimeout タイムアウトになるまでにno phrase finishイベントを
受け取ると発生する。このイベントにより、認識プロセ
スが自動的に停止される。
【0277】
【表20】
【0278】
【表21】
【0279】イベントプロパティ:イベントハンドラは
プロパティを直接には受け取らないが、ハンドラはイベ
ントオブジェクトに対してデータについてのクエリを実
行できる。
【0280】5 CallControlオブジェクト 電話音声ブラウザの電話インターフェース(呼び出し、
終端、および接続)を表す。このオブジェクトは、GUIブ
ラウザのウィンドウオブジェクトと同様ネイティブであ
る。そのため、電話オブジェクトの寿命は、ブラウザイ
ンスタンス自体と同じである。電話の音声ブラウザは、
呼び出しごとに1つずつ電話オブジェクトをインスタン
ス化する。ユーザは、そのオブジェクトをインスタンス
化したり処理したりしない。
【0281】このときに、ファーストパーティ呼び出し
コントロールに関係する機能のみがこのオブジェクトを
通じて公開される。
【0282】5.1 プロパティ ・address 読み取り専用。XML DOMノードオブジェクト。実装固
有。これは、呼び出し側のアドレスである。PSTNについ
ては、ANIとALIの組み合わせである。VoIPについては、
これは、呼び出し側のIPアドレスである。 ・ringsBeforeAnswer 着信呼び出しに応答するまで電話が鳴り続ける回数。デ
フォルトは無限大であり、開発者は特に以下のAnswer
( )メソッドを使用して電話呼び出しに応答する必要が
ある。コールセンターではACDを使用して着信電話呼び
出しをキューに入れるときに、この数値を0に設定でき
る。
【0283】5.2 メソッド 注意:ここのメソッドはすべて同期メソッドである。
【0284】5.2.1 Transfer 呼び出しを転送する。ブラインド転送では、転送が完了
するとシステムは発信呼を終了し、システムリソースを
解放する。
【0285】構文:telephone.Transfer(strText); パラメータ:o strText:必須。意図した受信者のアドレ
ス。
【0286】戻り値:なし。
【0287】例外:呼転送が失敗したとき、たとえば、
終了側がビジー状態のとき、そのような番号がないと
き、ファックスまたは留守番電話が応答したときに、例
外をスローする。
【0288】5.2.2 Bridge サードパーティ転送。呼び出しが転送された後、ブラウ
ザはその呼び出しに割り当てられたリソースを解放する
ことができる。strUIDを使用して転送された呼び出しが
戻るときにセッション状態を回復するのはアプリケーシ
ョン側の役目である。基本の電話プラットフォームは、
戻り呼び出しを別のブラウザに回すことができる。呼び
出しは、受信者がその呼び出しを終了したときのみ戻
る。
【0289】構文:telephone.Bridge(strText,strUID,
[imaxTime]); パラメータ:o strText:必須。意図した受信者のアドレ
ス。
【0290】o strUID:必須。現在の呼び出しを一意的
に識別するセッションID。転送された呼び出しが送り返
されるときに、strUIDがアドレス属性内に表示される。
【0291】o maxTime:オプション。転送された呼び出
しの秒単位の最大持続時間。指定されていない場合、デ
フォルト値はプラットフォームの内部値である。
【0292】戻り値:なし。
【0293】例外:なし。
【0294】5.2.3 Answer 電話呼び出しに応答する。
【0295】構文:telephone.Answer( ); 戻り値:なし。
【0296】例外:接続がない場合に例外をスローす
る。この場合、onAnswerイベントは発生しない。
【0297】5.2.4 Hangup 電話呼び出しを終了する。現在呼び出しが進行中でなけ
れば効果はない。
【0298】構文:telephone.Hangup( ); 戻り値:なし。
【0299】例外:なし。
【0300】5.2.5 Connect 送出されるファーストパーティ電話呼び出しを開始す
る。
【0301】構文:telephone.Connect(strText,[iTimeo
ut]); パラメータ:o strText:必須。意図した受信者のアドレ
ス。
【0302】o iTimeout:オプション。その試行を放棄
するまでのミリ秒単位の時間。指定されていない場合、
デフォルト値はプラットフォームの内部値である。
【0303】戻り値:なし。
【0304】例外:ビジー信号が発生したり、FAXまたは
留守番電話につながったときなど、呼び出しを完了でき
ないときに例外をスローする(注意:ハードウェアでこの
機能をサポートしていないことがある)。
【0305】5.2.6 Record ユーザオーディオをファイルに記録する。
【0306】構文:telephone.Record(url,endSilence,
[maxTimeout],[initialTimeout]); パラメータ:o url:必須。記録された結果のurl。
【0307】o endSilence:必須。無音状態が検出され
た後記録を停止するまでのミリ秒単位の時間。
【0308】o maxTimeout:オプション。記録の秒単位
の最長時間。デフォルトはプラットフォーム固有であ
る。
【0309】o initialTimeout:オプション。記録の開
始時に許されている無音状態の最長時間(ミリ秒)。
【0310】戻り値:なし。
【0311】例外:記録をそのurlに書き込めないときに
例外をスローする。
【0312】5.3 イベントハンドラ 電話音声ブラウザを使用するアプリケーション開発者は
以下のイベントハンドラを実装することができる。
【0313】5.3.1 onIncoming( ) 音声ブラウザが着信電話呼び出しを受けたときに呼び出
される。すべての開発者はこのハンドラを使用して、呼
び出し側のアドレスを読み込んで、カスタマイズされた
機能を呼び出してから、電話呼び出しに応答することが
できる。
【0314】5.3.2 onAnswer( ) 音声ブラウザが着信電話呼び出しに応答するときに呼び
出される。
【0315】5.3.3 onHangup( ) ユーザが電話を切ると呼び出される。このイベントは、
プログラムがHangupまたはTransferメソッドを呼び出す
ときに自動的には発生しない。
【0316】5.4 例 次の例は、電話セッションを操作する呼び出しコントロ
ールイベントに接続されるスクリプト作成を示してい
る。
【0317】
【数34】
【0318】
【数35】
【0319】
【数36】
【0320】6 ダイアログの流れの制御 6.1 HTMLおよびスクリプトを使用してダイアログの流
れを実装する この例は、入力ボックスへの値の入力を求め、その入力
に対するコンテキスト依存のヘルプを表示する単純なダ
イアログの流れを実装する方法を示している。これは、
HTML入力メカニズム(視覚的ブラウザ内で「ツールチッ
プ」メカニズムとして使用される)のtitle属性を使用し
て、ヘルププロンプトのコンテンツの形成を補助する。
【0321】
【数37】
【0322】
【数38】
【0323】
【数39】
【0324】6.2 SMILを使用する 以下の例は、SMILメカニズムを使用してプロンプトおよ
びreco要素をアクティブする方法を示している。
【0325】
【数40】
【0326】付録B 1 QA音声コントロール QAコントロールは、音声機能を接続先の主コントロール
に追加する。これのオブジェクトモデルは、付録Aのタ
グ例のコンテンツモデルの抽象化である。
【0327】1.1 QAコントロール
【0328】
【数41】
【0329】1.1.1 Coreプロパティ string ControlsToSpeechEnable ControlsToSpeechEnableは、音声対応にする主コントロ
ールのIDのリストを指定する。IDはカンマで区切って並
べる。
【0330】1.1.2 アクティブ化メカニズム int SpeechIndex SpeechIndexは、QAコントロールの順序付け情報を指定
する。これは、RunSpeechで使用する。注意:複数のQAコ
ントロールに同じSpeechIndexがある場合、RunSpeechは
ソースの順序で実行する。SpeechIndexを指定しているQ
Aコントロールと指定していないQAコントロールがある
場合、RunSpeechはまずSpeechIndexの順序でQAコントロ
ールを実行し、次に、ソース順序で実行する。
【0331】string ClientTest ClientTestは、QAコントロールがRunSpeechアルゴリズ
ムによる選択に使用できると考えられる時期を判別する
ブール値を返すクライアントサイドスクリプトの関数を
指定する。したがって、これを条件として使用してシス
テム戦略を変更し、QAコントロールのアクティブ化また
は非アクティブ化をSpeechIndexよりも細かく行うこと
ができる。指定していない場合、QAコントロールはアク
ティブ化に使用できると見なされる。
【0332】1.1.3 質問、ステートメント、応答、確
認、およびコマンド Question[]Questions QAコントロールは、ダイアログ作成者によって定義され
た質問オブジェクトまたはコントロールの配列を含む。
各質問コントロールは、通常、システムの機能に関係
し、たとえば、値の入力などを求める。各質問コントロ
ールはClientTest属性を使用してアクティブ化機能を指
定できるので、アクティブなQAコントロールは別の状況
で主コントロールに関する違った種類の質問を行うこと
ができる。たとえば、主要な質問Q_Mainのアクティブ化
条件は、対応する主コントロールが値を持たないことで
あり、Q_GiveHelpのアクティブ化条件は、ユーザがヘル
プを要求したばかりであることである。各Questionで
は、質問コントロールが出力されるときにアクティブに
されるQAコントロール内から応答コントロールを指定で
きる。
【0333】Statement[]Statement QAコントロールは、ステートメントオブジェクトまたは
コントロールの配列を含む。ステートメントを使用し
て、初期画面プロンプトなどの情報をリスナーに送る。
【0334】Answer[]Answers QAコントロールは、応答オブジェクトまたはコントロー
ルの配列を含む。応答コントロールは、QAコントロール
内の質問コントロールにより直接、または主コントロー
ルからStartEventによりアクティブにされる。複数の応
答が使用される場合、これらは、通常、システム機能へ
の応答を反映し、たとえば、A_MainはQ_Mainへの応答と
して値を送り、A_ConfirmはConfirmに対しyes/no+訂正
を送ることができる。
【0335】Confirm[]Confirm QAコントロールは、確認オブジェクトまたはコントロー
ルを含むことができる。このオブジェクトは、共通の確
認サブダイアログのオーサリングを簡素化するダイアロ
グ作成者に提供されるメカニズムである。
【0336】Command[]Command Command配列には、コマンドコントロール群が保持され
る。Commandコントロールは、質問コントロールのない
応答コントロールと考えられ、認識に対するその動作は
コントロールツリーを下へたどることができる。
【0337】1.2 質問コントロール 質問コントロールは、所定の主コントロールに関係する
音声出力に使用される。これは、情報の表示または質問
を求める複数のプロンプトと、その質問に対する応答を
送ることができる応答コントロールのidのリストを含
む。複数の応答コントロールを指定すると、質問がアク
ティブになると、これらの文法が並行してロードされ
る。質問コントロールで応答コントロールが指定されて
いない場合、例外がスローされる。
【0338】
【数42】
【0339】string ClientTest ClientTestは、質問コントロールがQAコントロール内で
アクティブであると見なされる状況を判別するブール値
を返すクライアントサイドスクリプトの関数を指定する
(QAコントロール自体は、評価される質問に対してアク
ティブでなければならない)。所定のQAコントロールに
関して、真の条件を持つ第1の質問コントロールが出力
用に選択される。たとえば、この関数を使用して、値を
要求する質問(「Which city do you want?」)を出力す
るか、または確認を試みる質問(「Did you say London
?」)を出力するかを決定できる。指定していない場合、
質問条件は真であると見なされる。
【0340】Prompt[]Prompts prompt配列で、後述のpromptオブジェクトのリストを指
定する。promptではさらに、選択の条件を(クライアン
ト関数を介して)指定することもでき、RunSpeechの実行
中に、条件が真である最初のpromptのみが再生用に選択
される。
【0341】String Answers Answersは、質問に対する可能な応答であるコントロー
ルへのIDによる参照の配列である。質問コントロールが
出したプロンプトへの応答としてそれぞれの有効な応答
コントロールからの文法をアクティブにする動作をす
る。
【0342】Integer initialTimeout 認識の開始から発声の検出までのミリ秒単位の時間。こ
の値は、認識プラットフォームに渡され、この値を超え
ると、認識プラットフォームからonSilenceイベントが
スローされる。指定していない場合、音声プラットフォ
ームはデフォルト値を使用する。
【0343】Integer babbleTimeout 認識サーバまたはその他のレコグナイザが音声検出後結
果を返さなければならないミリ秒単位の期間。「tap-an
d-talk」シナリオのrecoの場合、音声検出から認識結果
が使用できるようになるまでの期間に適用される。ディ
クテーションシナリオのrecoの場合、このタイムアウト
は音声検出から各認識の返却までの期間に適用される
が、要するに、この期間は結果またはその他のイベント
を返すごとにリスタートする。この値を超えると、onCl
ientNoRecoイベントがスローされるが、異なるステータ
スコードも可能である。検出可能な何らかの種類の認識
プラットフォームエラーが発生しており、babbleTimeou
t期間が経過した場合、onClientNoRecoがスローされる
が、ステータスコードは-3である。そうでなければ、レ
コグナイザがまだオーディオを処理している場合、たと
えば、発話が例外的に長い場合、またはユーザがあまり
にも長い時間ペンを下げたままにしていた場合、onClie
ntNoRecoイベントがスローされ、ステータスコード-15
が返される。babbleTimeoutが指定されていない場合、
音声プラットフォームは、デフォルト値として内部値を
使用する。
【0344】Integer maxTimeout 認識開始からクライアントデバイスのブラウザに結果が
返されるまでのミリ秒単位の期間。この値を超えた場
合、ブラウザによってonMaxTimeoutイベントがスローさ
れる、これにより分散環境でのネットワークまたはレコ
グナイザの障害に対処する。ディクテーションシナリオ
のrecoの場合、babbleTimeoutの場合のように、各認識
結果が返されるごとにまたは他のイベントの後にこの期
間がリスタートする。maxTimeout属性はinitialTimeout
とbabbleTimeoutの合計以上でなければならないことに
注意されたい。指定していない場合、この値がはブラウ
ザデフォルト値になる。
【0345】bool modal モードが真に設定されている場合、質問に対する即時応
答セット以外の応答はアクティブにされない(つまり、
範囲設定されたAnswersは考慮されない)。デフォルトは
偽である。たとえば、この属性を使用すると、アプリケ
ーション開発者はクライアントデバイスのユーザに、特
定の質問への応答を強制することができる。
【0346】String PromptFunction(prompt) PromptFunctionは、質問が選択されてからプロンプトが
再生されるまでの間に呼び出されるクライアントサイド
の関数を指定する。これにより、アプリケーション開発
者は、必要になるかもしれないプロンプトに対する土壇
場での修正を実行することが可能になる。PromptFuncti
onは、ターゲットプロンプトのIDを必須パラメータとし
て受け取る。
【0347】string OnClientNoReco OnClientNoRecoは、NoReco(マンブル)イベントを受け取
ったときに呼び出すクライアントサイドの関数の名前を
指定する。
【0348】1.2.1 プロンプトオブジェクト プロンプトオブジェクトには、プロンプトを再生する方
法について情報が格納される。定義されているすべての
プロパティは読み/書きプロパティである。
【0349】
【数43】
【0350】int count countは、プロンプトの選択の際に使用される整数を指
定する。プロンプトについて指定したcountの値が質問
コントロールのcountの値と一致すると、再生用のプロ
ンプトが選択される。正当な値は0から100である。
【0351】
【数44】
【0352】例では、Q_Ask.countが1に等しい場合、第
1のプロンプトが再生され、2に等しい(つまり、質問が
すでに出力されている)場合、第2のプロンプトが再生さ
れる。
【0353】string ClientTest ClientTestは、アクティブな質問コントロール内のプロ
ンプトが出力用に選択される状況を判別するブール値を
返すクライアントサイドスクリプトの関数を指定する。
所定の質問コントロールに関して、真の条件を持つ第1
のプロンプトが選択される。たとえば、その関数を使用
して、プロンプトのテーパリング(tapering)を実装する
ために使用できる(たとえば、真を返す関数について、
ユーザが初心者は「Which city would you like to dep
art from?」、ベテランには「Which city?」)。指定し
ていない場合、プロンプトの条件は真であると見なされ
る。
【0354】string InlinePrompt promptプロパティは、再生するプロンプトのテキストが
格納される。これは、prompt要素のコンテンツとして定
義される。これはさらに、TTSレンダリング情報や、<va
lue>要素のようなマークアップも含む。ページのすべて
の部分と同様、prompt出力の動的レンダリングに対し
て、<script>タグ内にスクリプトコードとして指定する
こともできる。
【0355】string Source Sourceは、再生するプロンプトのテキストが取り出され
るURLを指定する。インラインプロンプトを指定した場
合、このプロパティは無視される。
【0356】Bool BargeIn BargeInは、プロンプトでbarge-in(プロンプトの再生時
にクライアントデバイスのユーザが話し始めた場合)を
許可するかどうかを指定する場合に使用する。デフォル
トは真である。
【0357】string onClientBargein onClientBargeinは、bargeinイベントにより呼び出され
るクライアントサイドスクリプト関数を指定する。
【0358】string onClientComplete onClientCompleteは、プロンプトの再生が競合していた
ときに呼び出されるクライアントサイドスクリプト関数
を指定する。
【0359】string OnClientBookmark OnClientBookmarkは、ブックマークが見つかったときに
呼び出すクライアントサイド関数の名前にアクセスす
る。
【0360】1.2.2 プロンプトの選択 RunSpeechで実行したとき、QAコントロールにより次の
ようにしてプロンプトが選択される。
【0361】ClientTestと各プロンプトのcount属性を
順番に評価する。ClientTestとcountの両方が真である
第1のプロンプトを再生する。countがない場合は真とみ
なす。ClientTestがない場合は真とみなす。
【0362】1.3 ステートメントコントロール ステートメントコントロールは、文法のアクティブ化が
必要ないときに出力される情報提供システムに使用され
る。これは、音声専用ダイアログで一般的である。play
Once属性が真の場合にステートメントはページごとに1
回だけ再生される。
【0363】
【数45】
【0364】bool playOnce playOnce属性は、1ページごとに何回もステートメント
コントロールをアクティブにするかどうかを指定する。
playOnceはブール値属性で、デフォルト(指定しない場
合)はTRUEである、つまり、ステートメントコントロー
ルは一回しか実行されない。たとえば、playOnce属性
は、エンドユーザに電子メールメッセージを出力するこ
とが目的とするステートメントコントロールで使用する
ことができる。playOnce="False"と設定すると、ダイア
ログ作成者は電子メールメッセージを読み込む「リピー
ト」機能をページ上で実行することができる。
【0365】string ClientTest ClientTestは、ステートメントコントロールが出力用に
選択される状況を判別するブール値を返すクライアント
サイドスクリプトの関数を指定する。RunSpeechは、Cli
entTestが真に設定されている第1のStatementをアクテ
ィブにする。指定していない場合、ClientTestの条件は
真であると見なされる。
【0366】String PromptFunction PromptFunctionは、ステートメントコントロールが選択
されてからプロンプトが再生されるまでの間に呼び出さ
れるクライアントサイドの関数を指定する。これによ
り、作成者は、必要になるかもしれないプロンプトに対
する土壇場での修正を実行することが可能になる。
【0367】Prompt[]Prompt prompt配列で、promptオブジェクトのリストを指定す
る。promptではさらに、選択の条件を(クライアント関
数を介して)指定することもでき、RunSpeechの実行中
に、条件が真である最初のpromptのみが再生用に選択さ
れる。
【0368】
【数46】
【0369】1.4 確認コントロール 確認コントロールは特別な種類の質問コントロールであ
る。他の質問コントロールのすべてのプロパティおよび
オブジェクトを保持するが、アクティブ化の仕方が異な
る。RunSpeechアルゴリズムが、ControlsToSpeechEnabl
eの応答コントロールのconfirmThresholdにある信頼度
得点を確認する.この値が低すぎる場合、確認コントロ
ールがアクティブにされる。応答コントロールの信頼度
得点がconfirmThresholdよりも低い場合、バインドが実
行されるが、onClientRecoメソッドは呼び出されない。
ダイアログ作成者は、QAコントロールことに複数の確認
コントロールを指定できる。RunSpeechはClientTestに
よって指定された関数に基づきアクティブにする確認コ
ントロールを決定する。
【0370】
【数47】
【0371】1.5 応答コントロール 応答コントロールは、音声入力リソースおよび機能を指
定する場合に使用する。主コントロールに関係する一連
の文法を含む。たとえばプロンプトを使用しないマルチ
モードアプリケーションで、または付加的な応答によっ
てユーザイニシアチブを有効にできる電話アプリケーシ
ョンで、応答は質問とは無関係に使用できることに注意
されたい。応答コントロールは、質問コントロール、ト
リガイベント、または明示的範囲により直接アクティブ
にされる。質問コントロールで文法オブジェクトが指定
されていない場合、例外がスローされる。
【0372】
【数48】
【0373】string Scope Scopeは、ページ上の名前付き要素のidを保持する。Sco
peは、応答コントロール内で使用され、ユーザイニシア
チブ(user initiative)(混合タスクイニシアチブ(mixed
task initiative):つまり、サービスジャンプの脱線(s
ervice jump digressions))文法の使用可能な範囲を定
める。応答コントロールでScopeを指定した場合、これ
は、コンテキストに関係するコントロールのサブツリー
内の主コントロールに対応するQAコントロールがアクテ
ィブになると必ずアクティブになる。
【0374】string StartEvent StartEventは、応答コントロールをアクティブにする(R
ecoオブジェクトを起動する)主コントロールからのイベ
ントの名前を指定する。通常、マルチモードアプリケー
ション、たとえばtap-and-talkのonMouseDownで使用さ
れる。
【0375】string StopEvent StopEventは、応答コントロールを非アクティブにする
(Recoオブジェクトを停止する)主コントロールからのイ
ベントの名前を指定する。通常、マルチモードアプリケ
ーション、たとえばtap-and-talkのonMouseUpで使用さ
れる。
【0376】string ClientTest ClientTestは、Scopeによりまたは質問コントロールに
より他の何らかの方法で選択された応答コントロールが
アクティブであるとみなす状況を判別するブール値を返
すクライアントサイドスクリプトの関数を指定する。た
とえば、このテストは、「訂正」応答コントロールが、
質問コントロールによりアクティブにされたが混合イニ
シアチブが望ましくない(受理/否認応答コントロールの
みをアクティブのままにする)場合にそれ自体無効にな
るように確認時に使用することができる。または、サー
ビスジャンプを使用できる範囲設定された応答コントロ
ールにより、ダイアログの他の部分に応じて真または偽
となるテストを指定することでより柔軟なアクティブ化
の手段を決定できる。指定していない場合、応答コント
ロールの条件は真であると見なされる。
【0377】Grammar[]Grammars Grammarsは、文法オブジェクトのリストにアクセスす
る。
【0378】DTMF[]DTMFs DTMFは、DTMFオブジェクトの配列を保持する。
【0379】Bind[]Binds 応答コントロールの文法結果(dtmfまたは発話結果)をコ
ントロール値にマップするために必要なバインドオブジ
ェクトのリストを保持する。応答に対して指定されたす
べてのバインドは、関連する出力が認識されたときに実
行される。バインドが指定されない場合、認識によって
返されるSML出力は、QAコントロールのControlsToSpeec
hEnableで指定されたコントロールにバインドされる。
【0380】string OnClientReco OnClientRecoは、発話認識結果が使用可能になったとき
に呼び出すクライアントサイド関数の名前を指定する。
【0381】string OnClientDTMF OnClientDTMFは、DTMF認識結果が使用可能になったとき
に呼び出すクライアントサイド関数の名前を保持する。
【0382】boolean autobind autobindの値は、システムのデフォルトバインドを応答
コントロールから返された認識結果について実装するか
どうかを決定する。指定されていない場合、デフォルト
は真である。autobindを偽に設定することは、自動バイ
ンドを実行しないようにとのシステムへの命令である。
【0383】string server server属性は、認識を実行する音声サーバのURIを指定
するオプション属性である。この属性は、グローバルな
音声サーバ属性のURIを指定変更する。
【0384】integer ConfirmThreshold 信頼度レベルを表す値を保持する属性であって、この信
頼度レベルを下回るときに、QAコントロール内で応答が
認識された直後に確認コントロールの質問が自動的にト
リガされる。正当な値は0-100である。
【0385】bindステートメントとonClientRecoスクリ
プトが両方とも指定された場合、その結果のTagsは、on
ClientRecoで指定されたスクリプトの前にバインドが実
行されるということを意味することに注意されたい。
【0386】integer RejectThreshold RejectThresholdは、認識された発話結果を返すと見な
される最低信頼度特定を指定する。全体的な信頼度がこ
のレベルを下回ると、NoRecoイベントがスローされる。
正当な値は0-100である。
【0387】1.5.1 文法 文法オブジェクトは、文法の選択結果およびコンテンツ
に関する情報と、認識結果を処理する手段に関する情報
を格納する。定義されているすべてのプロパティは読み
/書きプロパティである。
【0388】
【数49】
【0389】string ClientTest ClientTestプロパティは、文法がアクティブになる条件
を判別するクライアントサイドのブール値関数を参照す
る。応答コントロール内で複数の文法を指定した場合
(たとえば、システム/混合イニシアチブを実装したり、
ダイアログの動作がまずいときに可能な応答の混乱を減
らしたりするために)、RunSpeech実行時に、ClientTest
関数が真になる第1の文法をアクティブ化のため選択す
る。このプロパティを指定していない場合、真が想定さ
れる。
【0390】string Source Sourceは、指定した場合に、ロードする文法のURIにア
クセスする。
【0391】string InlineGrammar InlineGrammarは、インラインに指定した場合に、文法
のテキストにアクセスする。このプロパティが空の場
合、Source属性は無視される。
【0392】1.5.2 バインド バインドのオブジェクトモデルは、対となるクライアン
トサイドのタグに正確に従う。バインドは、発話された
文法と単一応答コントロールで返されたDTMF認識結果の
両方に対して指定できる。
【0393】
【数50】
【0394】string Value Valueは、ターゲット要素にバインドするテキストを指
定する。これは、認識から得られたSML出力上のXPathと
して指定される。
【0395】string TargetElement TargetElementは、バインドステートメントが適用され
る主コントロールのidを指定する。指定されていない場
合、これは関連するQAコントロールのControlsToSpeech
Enableであると想定される。
【0396】string TargetAttribute TargetAttributeは、値をバインドするTargetElementコ
ントロール上の属性を指定する。指定されていない場
合、これはターゲット要素のTextプロパティであると想
定される。
【0397】string Test このTest属性は、バインドメカニズムで真に評価されな
ければならない条件を指定する。これは、認識から得ら
れたSML出力上のXMLパターンとして指定される。
【0398】1.5.2.1 自動バインド 音声対応主コントロールに返される認識結果に対するデ
フォルトの動作では、いくつかのプロパティをその主コ
ントロールにバインドする。この動作は、ターン(およ
び偶数ページ)での主コントロールからの認識結果を調
べるダイアログコントロールで使用される。応答コント
ロールは、認識結果を受け取った後以下のアクションを
実行する。
【0399】1.SML出力ツリーを主コントロールのSML属
性にバインドする 2.発話のテキストを主コントロールのSpokenText属性に
バインドする 3.レコグナイザによって返された信頼度得点を主コント
ロールのConfidence属性にバインドする autobind="False"属性が応答コントロール上で指定され
ていない限り、応答コントロールは主コントロールに以
下のアクションを実行する。
【0400】 1.SML出力ツリーをSML属性にバインドする 2.発話のテキストをSpokenText属性にバインドする 3.レコグナイザによって返された信頼度得点をConfiden
ce属性にバインドする 属性内にすでに保持されている値があれば、上書きされ
る。自動バインドは、作成者指定のbindコマンドの前
に、したがって、onClientRecoスクリプトの前に実行さ
れる(さらに、これらのプロパティにバインドすること
もできる)。
【0401】1.5.3 DTMF DTMFは、電話アプリケーション内の応答コントロールで
使用することができる。DTMFオブジェクトは本質的に、
異なる様相の文法(音声入力文法ではなくキーパッド入
力文法)を同じ応答に適用する。DTMFコンテンツモデル
は、クライアントサイドで出力するTags DTMF要素のそ
れと非常によく一致している。DTMF返却結果のバインド
メカニズムは、DTMFオブジェクトのtargetAttribute属
性を使用して指定される。
【0402】
【数51】
【0403】integer firstTimeOut タイムアウトイベントが発生する前、アクティブ化して
から最初のキーの押下まで待つミリ秒数。
【0404】integer interDigitTimeOut タイムアウトイベントが発生する前、キーの押下間に待
つミリ秒数。
【0405】int numDigits DTMF認識中に許可されるキー入力の最大回数。
【0406】bool flush 認識が開始する前に電話サーバのDTMFバッファをフラッ
シュするかどうかを指定するフラグ。flushを偽に設定
すると、認識/ページ呼び出しの間にDTMFキー入力を格
納し、ユーザによる「先入力」を可能にできる。
【0407】string escape DTMF認識を終了するために使用するキーの文字列値(た
とえば、「#」)を保持する。
【0408】string targetAttribute TargetAttributeは、値をバインドする主コントロール
上のプロパティを指定する。指定されていない場合、こ
れは主コントロールのTextプロパティであると想定され
る。
【0409】string ClientTest ClientTestプロパティは、DTMF文法がアクティブになる
条件を判別するクライアントサイドのブール値関数を参
照する。DTMFオブジェクト内で複数の文法を指定した場
合、RunSpeech実行時に、ClientTest関数が真である最
初の文法のみがアクティブする対象として選択される。
このプロパティを指定していない場合、真が想定され
る。
【0410】1.5.4 DTMFGrammar DTMFGrammarは、キーをそのキーと関連する出力値にマ
ップする。以下の例は、「1」および「2」のキーをテキ
スト出力値にマップする方法を示している。
【0411】
【数52】
【0412】1.6 コマンドコントロール コマンドコントロールは、QAコントロール内で定義でき
る応答コントロールの特別なバリエーションである。コ
マンドコントロールは、すぐに質問に対する応答になら
ない、認識結果を主コントロールにバインドする必要の
ない形式のユーザ入力(たとえば、ヘルプ、リピート、
キャンセル)である。QAコントロールでアクティブ化の
範囲を指定する場合、コマンド文法がその範囲内のすべ
てのQAコントロールについてアクティブである。したが
って、直接質問コントロールまたはイベントによりコマ
ンドをアクティブにする必要はなく、その文法は応答コ
ントロールの構築とは無関係に並行してアクティブにさ
れる。範囲内で低い位置にあるQAコントロールでの同じ
種類のコマンドコントロールは、コンテキストに依存す
る動作(さらに必要ならば、異なる/拡張文法も)で上位
のコマンドを指定変更できる。
【0413】
【数53】
【0414】string Scope Scopeは、主コントロールのidを保持する。Scopeは、コ
マンド文法を使用できる範囲を定めるためにコマンドコ
ントロール内で使用される。コマンドコントロールでSc
opeを指定した場合、コンテキストに関係するコントロ
ールのサブツリー内の主コントロールに対応するQAコン
トロールがアクティブになると必ずコマンドの文法もア
クティブになる。
【0415】string type typeは、コマンドの種類(たとえば、「help」、「cance
l」など)を指定し、範囲ツリーの下位のレベルで全く同
じに入力したコマンドを指定変更できるようにする。こ
の属性では任意の文字列値が使用可能であり、作成者側
でtypeを正しく使用するよう気を付ける必要がある。
【0416】integer RejectThreshold RejectThresholdは、認識でコマンドをトリガするのに
必要な認識の最低信頼度レベルを指定する(これは、通
常よりも高い信頼度が必要なとき、たとえば「Cancel」
コマンドの結果を実行する前に、使用することが多
い)。正当な値は0-100である。
【0417】string onClientReco onCommandは、コマンドコントロールの文法を認識した
後実行するクライアントサイドスクリプトの関数を指定
する。
【0418】Grammar Grammar コマンドの実行を監視して待っている文法オブジェク
ト。
【0419】DTMF DTMF コマンドをアクティブにするdtmfオブジェクト。
【0420】2 イニシアチブとダイアログの流れの種
類 上述のコントロールを使用して、さまざまな形式のイニ
シアチブを開発することができるが、そのいくつかの例
を以下に示す。
【0421】2.1 混合イニシアチブダイアログ 混合イニシアチブダイアログは、1回質問をするだけで
複数のコントロールに対する入力を受け付けることがで
きる。たとえば、質問「what are your travelplans」
に対する応答で、出発地の市のテキストボックスコント
ロール、目的地の市のテキストボックスコントロール、
およびカレンダーコントロール(「Fly from Puyallup t
o Yakima on September 30th」)に対する値を指定でき
る。
【0422】混合イニシアチブダイアログをエンコード
するには、混合イニシアチブ文法と関連するバインドス
テートメントを手書きし、それらを単一のコントロール
に適用するのが確実な方法である。
【0423】以下の例は、旅行に関する単純な混合イニ
シアチブ音声対話操作に使用される単一ページを示して
いる。第1のQAコントロールは、混合イニシアチブ文法
およびバインド、および2つの項目の入力を求める関連
プロンプトを指定する。第2および第3のQAコントロール
は、混合イニシアチブではなく、したがってデフォルト
でそれぞれの主コントロールに直接バインドする(その
ため、バインドステートメントは不要である)。RunSpee
chアルゴリズムは、「SpeechIndex」属性およびその主
コントロールが有効な値を保持しているかどうかに基づ
いてQAコントロールを選択する。
【0424】
【数54】
【0425】
【数55】
【0426】2.2 複雑な混合イニシアチブ アプリケーション開発者は、異なるレベルのイニシアチ
ブの同じ質問コントロールに対し複数の応答を指定する
ことができる。必要とされるイニシアチブ設定に応じ
て、質問をしたときの応答の1つを選択する条件を指定
する。以下に例を示す。
【0427】
【数56】
【0428】アプリケーション開発者は、さらに、QAコ
ントロールで複数の質問コントロールを指定することも
できる。混合イニシアチブスタイルの応答を使用できる
質問コントロールもあれば、指向性の高い質問コントロ
ールもある。これらの質問コントロールで条件をオーサ
リングすることにより、アプリケーション開発者はダイ
アログの状況に応じて質問を選択できる。
【0429】以下の例では、混合イニシアチブ質問によ
り、同時に2つのテキストボックスの値を要求し(たとえ
ば、「what are your travel plans?」)、混合イニシア
チブ応答(たとえば、「from London to Seattle」)を呼
び出す。これが失敗した場合、各テキストボックスの値
は別々に要求されるが(たとえば、「where do youleave
from」と「where are you going to」)、条件によって
は混合イニシアチブ文法をそのままアクティブにするこ
とができ、したがってユーザは両方の値を指定できる。
【0430】
【数57】
【0431】2.3 ユーザイニシアチブ コマンドコントロールと同様に、標準QAコントロールも
その文法のアクティブ化の範囲を指定することができ
る。コマンドコントロールのように、このQAコントロー
ルでは、他のQAコントロールがこのコンテキストの範囲
内でアクティブ化されると必ず、関連する応答コントロ
ールの文法をアクティブにする。この質問コントロール
は、QAコントロール自体がアクティブにされた場合にの
み実行されることに注意されたい。
【0432】
【数58】
【0433】これは、「サービスジャンプ」、つまり質
問コントロールにすぐには直接関係しないダイアログの
一部分に関するユーザ応答を行えるダイアログに使用で
きる。
【0434】2.4 短いタイムアウト確認 アプリケーション開発者は、確認を普通に作成すること
ができるが、短いタイムアウトを設定する。タイムアウ
トハンドラでは、現在値を正確に受け付けるコードを用
意する。
【0435】
【数59】
【0436】2.5 動的なプロンプト構築および編集 promptFunctionスクリプトは、質問コントロールが選択
されてから、プロンプトが選択され再生されるまでの間
に呼び出される。このため、アプリケーション開発者は
土壇場でプロンプトを構築したり修正したりすることが
できる。以下の例では、これを使用してユーザの経験レ
ベルに応じてプロンプトを変更している。
【0437】
【数60】
【0438】2.6 意味関係の使用 意味関係は、onRecoイベントハンドラ内のレコグナイザ
の結果を調べることにより認識し使用することができ
る。
【0439】
【数61】
【0440】3 RunSpeechの実装と適用 音声専用クライアントに、音声対応ページを適切にレン
ダリングするのに必要な情報を提供するためのメカニズ
ムが必要である。このようなメカニズムでは、アプリケ
ーション開発者の仕様に従ってダイアログロジックを実
行し、ユーザプロンプト機能および文法アクティブ化の
状態を維持できる必要がある。
【0441】このようなメカニズムは、マルチモードク
ライアントには必要ない。マルチモードの場合、音声対
応コントロールを含むページはクライアントデバイスの
ユーザから見える。クライアントデバイスのユーザは、
マルチモードパラダイムを使用して、望む順序で視覚的
音声対応コントロールに音声入力を行うことができる。
【0442】音声専用クライアントで音声対応ページを
レンダリングするために使用するメカニズムが、RunSpe
echスクリプトまたはアルゴリズムである。RunSpeechス
クリプトは、QAコントロールと後述のSpeechGroupコン
トロールのSpeechIndex属性に依存する。
【0443】3.1 SpeechControl 実行時に、システムは、サーバコントロールを備えるコ
ントロールスクリプトまたはWebページを解析し、サー
バコントロールのツリー構造を作成する。通常、ツリー
のルートはPageコントロールである。コントロールスク
リプトでカスタムまたはユーザコントロールを使用する
場合、このカスタムまたはユーザコントロールの子ツリ
ーが展開される。ツリー内のすべてのノードはIDを持
ち、展開時にツリー内に名前の衝突が容易に発生する。
名前の衝突の発生に対処するために、システムではとい
うNamingContainer概念を用意している。ツリー内のノ
ードは、NamingContainerを実装し、その子はその名前
空間内に存続する。
【0444】QAコントロールは、サーバコントロールツ
リー内のどこにでも実現できる。SpeechIndexを簡単に
処理し、クライアントサイドのレンダリングを管理する
ために、SpeechGroupコントロールが用意されている。S
peechGroupコントロールは、アプリケーション開発者か
ら隠されている。
【0445】1つのSpeechGroupコントロールが作成さ
れ、その子ツリーにQAコントロールを含むすべてのNami
ngContainerノードに論理的にアタッチされる。QAおよ
びSpeechGroupコントロールは、その直接のNamingConta
inerのSpeechGroupのメンバと見なされる。最上位レベ
ルのSpeechGroupコントロールは、Pageオブジェクトに
アタッチされる。このメンバ関係により、QAコントロー
ルとSpeechGroupコントロールのツリー-論理的音声ツリ
ー-が論理的に構築される。
【0446】単純な音声対応ページまたはスクリプト
(つまり、他のNamingContainerを含まないページ)の場
合、ルートのSpeechGroupコントロールのみが生成さ
れ、そのページのサーバコントロールツリー内に配置さ
れてから、そのページが音声専用クライアントに送られ
る。SpeechGroupコントロールは、そのページ上のQAコ
ントロールの個数とレンダリング順序に関する情報を保
持する。
【0447】QAコントロールと1つのまたは複数のNamin
gContainerの組み合わせを含むページでは、複数のSpee
chGroupコントロールが生成され、そのページ用のSpeec
hGroupコントロール(上述のように)と各NamingContaine
r用のSpeechGroupコントロールが得られる。NamingCont
ainerを含むページでは、ページレベルのSpeechGroupコ
ントロールが、上述のようにQAコントロール情報とさら
に複合コントロールの個数とレンダリング順序の情報を
保持する。各NamingContainerと関連するSpeechGroupコ
ントロールは各複合コントロール内のQAの個数とレンダ
リング順序を保持する。
【0448】SpeechGroupコントロールの主な仕事は、
各ページ上のQAコントロールとSpeechGroupsのリストお
よび/または複合コントロールからなるQAコントロール
のリストを保持することである。クライアントサイドマ
ークアップスクリプト(たとえば、HTML)が生成される
と、各SpeechGroupはクライアントサイドにQACollectio
nオブジェクトを書き出す。QACollectionは、QAコント
ロールとQACollectionsのリストを含む。これは、論理
的サーバサイド音声ツリーに対応する。RunSpeechスク
リプトが、ページレベルのQACollectionオブジェクトに
対し、音声専用ダイアログ処理時に呼び出す次のQAコン
トロールについてクエリを実行する。
【0449】各ページ上に配置されたページレベルのSp
eechGroupコントロールは以下のものに対する役割も持
つ。 ・要求側クライアントが音声専用クライアントであるこ
とを判別する ・各ページ上のすべてのQAコントロールに対する共通ス
クリプトを生成し、構造をサポートする 第1のSpeechGroupコントロールがレンダリングを行う
と、System.Web.UI.Page.Request.Browserプロパティに
対し、ブラウザ文字列のクエリが実行される。このプロ
パティは、ページ上のQAコントロールごとにRenderSpee
chHTMLおよびRenderSpeechScriPtメソッドに渡される。
QAコントロールは次に、適切なクライアント(マルチモ
ードまたは音声専用)についてレンダリングを行う。
【0450】3.2 SpeechGroupコントロールの作成 サーバサイドページをロードする際に、onLoadイベント
がページ上の各コントロールに送られる。ページレベル
のSpeechGroupコントロールが、onLoadイベントを受け
取った最初のQAコントロールによって作成される。Spee
chGroupコントロールの作成は、次のようにして行われ
る(複合コントロールを含むページを想定する)。
【0451】すべてのQAコントロールがランタイムコー
ドからonLoadイベントを受け取る。 QAのonLoad: ・QAのNamingContainer N1を取得する ・N1の子のSpeechGroupを検索する o すでに存在している場合、QAコントロールをこのSpee
chGroupに登録する。onLoadが返る。 o 見つからない場合: ・新しいSpeechGroup G1を作成し、N1の子に挿入する ・N1がPageでなければ、N1のNamingContainer N2を見つ
ける ・N2の子の中のSpeechGroupを検索し、もし存在すれ
ば、それがG2だとするとG1をG2に追加する。存在しなけ
れば、新しいG2を作成し、N2の子に挿入する ・NamingContainerがPage(最上位レベル)になるまで再
帰的に繰り返す サーバサイドページをレンダリングする際に、Renderイ
ベントが音声対応ページに送られる。ページレベルのSp
eechGroupコントロールがRenderイベントを受け取る
と、RunSpeech.jsを取り込むクライアントサイドスクリ
プトを生成し、それを最終的にクライアントデバイスに
送られるページに挿入する。また、その直接のすべての
子を呼び出して、音声関連のHTMLおよびスクリプトをレ
ンダリングする。子がSpeechGroupの場合、その子は次
にその子を再び呼び出す。このようにして、サーバのレ
ンダリングはサーバサイドの論理的音声ツリーに沿って
実行される。
【0452】SpeechGroupがレンダリングを行うと、そ
の子(QAまたはSpeechGroupのいずれか)が音声HTMLおよ
びスクリプトをそのSpeechIndexの順序でレンダリング
することができる。しかし、SpeechGroupは隠されてお
り、当然ながらSpeechIndexを持たない。実際、SpeechG
roupは、アタッチ先のそのNamingContainerと同じSpeec
hIndexを持つ。NamingContainerは通常、UserControlま
たはその他の視覚的コントロールであり、作成者がSpee
chIndexをそのコントロールに設定できる。
【0453】3.3 RunSpeech RunSpeechは、スクリプトで指定されているロジックま
たはクライアント上のロジックを介してダイアログの流
れを実現することを目的としている。一実施形態では、
RunSpeechは外部スクリプトファイルで指定され、Speec
hGroup主コントロールのサーバサイドレンダリングによ
り生成された単一の行でロードされる。例:
【0454】
【数62】
【0455】RunSpeech.jsスクリプトファイルでは、ク
ライアント上でスクリプトは正しくロードされ、正しい
バージョンidをもつことなどを確認する手段を公開する
必要がある。実際の確認を行うスクリプトは、そのファ
イルをロードしようとした後実行されるインライン関数
としてページクラスにより自動的に生成される。
【0456】外部スクリプトにリンクする手順は、イン
ラインで指定する手順と動的には同等であるが、ブラウ
ザはファイルおよびクリーナーをキャッシュでき、ペー
ジが汎用関数でバラバラにならないため、両方とも効率
が良い。
【0457】3.4 イベント 3.4.1 イベントの配線 Tap-and-talkのマルチモード機能は、onMouseDownイベ
ントで文法のアクティブ化を調整することにより使用可
能にできる。この作業を行う配線スクリプトは、コント
ロール間の関係に基づきPageにより生成される(QAコン
トロールのControlsToSpeechEnableプロパティで指定す
る)。
【0458】たとえば、asp:TextBoxとその随伴QAコン
トロールが与えられ文法追加する場合、<input>および<
reco>要素が各コントロールのRenderメソッドにより出
力される。文法アクティブ化コマンドを追加する配線メ
カニズムは、Pageによって生成されるクライアントサイ
ドスクリプトにより実行され、それにより主コントロー
ルの属性が変更されアクティブ化イベント用の既存のハ
ンドラの前にアクティブ化コマンドが追加される。
【0459】
【数63】
【0460】デフォルトで、フックアップはonmousedow
nおよびonmouseupイベントを介するが、StartEventとSt
opEventは両方ともWebページの作成者が設定できる。te
xtbox出力は、この修正と無関係に残り、他のハンドラ
が存在していた場合イベントは通常通り処理される。
【0461】3.4.2 Page Classプロパティ Pageはさらに、実行時にスクリプトから利用できる以下
のプロパティを備える。
【0462】SML-コントロールのIDと認識の結果返され
る関連するSMLの名前/値のペア。
【0463】SpokenTextコントロールのIDと関連する認
識された発話の名前/値のペア。
【0464】Confidence-コントロールのIDとレコグナ
イザによって返される関連する信頼度の名前/値のペ
ア。
【0465】4 RunSpeechアルゴリズム RunSpeechアルゴリズムを使用して、クライアントデバ
イス上のダイアログの流れを駆動する。これは、システ
ムプロンプト機能およびダイアログ管理機能(通常、音
声専用ダイアログ)および/または音声入力の処理(音声
専用およびマルチモードダイアログ)を備えることがで
きる。これは、すべての関連する音声対応ページ(イン
ライン埋め込めスクリプトと同等)からのURIにより参照
されるスクリプトファイルとして指定される。
【0466】音声専用ブラウザ向けのページのレンダリ
ングは、次のようにして実行する。
【0467】RunSpeechモジュールまたは関数は以下の
ように動作する(RunSpeechはdocument.onreadystateが
「complete」になったことに対して呼び出される)。 (1)音声インデックス順序で最初のアクティブなQAコン
トロールを見つける(QAコントロールがアクティブかど
うかを判別する方法については後述する)。 (2)アクティブなQAコントロールがない場合には、その
ページをサブミットする。 (3)そうでない場合、QAコントロールを実行する。
【0468】QAコントロールは、次の場合かつその場合
に限りアクティブであると見なされる。 (1)QAコントロールのClientTestが存在しないかまたは
真の値を返し、かつ (2)QAコントロールがアクティブな質問コントロールま
たはステートメントコントロール(ソース順序でテスト
される)を含み、かつ (3)次のいずれか。 a.QAコントロールがステートメントコントロールのみを
含むか、または b.QAコントロールのControlsToSpeechEnableにより参照
されているコントロールの少なくとも1つが空であるか
またはデフォルト値を持つ。
【0469】質問コントロールは、次の場合かつその場
合に限りアクティブであると見なされる。 (1)質問コントロールのClientTestが存在しないかまた
は真の値を返し、かつ (2)質問コントロールがアクティブなプロンプトオブジ
ェクトを含む。
【0470】プロンプトオブジェクトは、次の場合かつ
その場合に限りアクティブであると見なされる。
【0471】(1)プロンプトオブジェクトのClientTest
が存在しないかまたは真の値を返し、かつ (2)プロンプトオブジェクトのCountが存在していない
か、または親質問コントロールのCount以下である。
【0472】QAコントロールは次のように実行される。 (1)どの質問コントロールまたはステートメントコント
ロールがアクティブであるかを判別し、そのCountをイ
ンクリメントする。 (2)ステートメントコントロールがアクティブの場合、
プロンプトを再生して終了する。 (3)質問コントロールがアクティブの場合、アクティブ
な応答コントロールおよびコマンドコントロールごとに
プロンプトを再生し、Recoを起動する。
【0473】応答コントロールは、次の場合かつその場
合に限りアクティブであると見なされる。 (1)応答コントロールのClientTestが存在しないかまた
は真の値を返し、かつ(2)次のいずれか。 a.応答コントロールがアクティブな質問コントロールの
Answers文字列内で参照されていたか、または b.応答コントロールがScope内にある。
【0474】コマンドコントロールは、次の場合かつそ
の場合に限りアクティブであると見なされる。 (1)Scope内にあり、かつ (2)範囲ツリー内に低い同じTypeの別のコマンドコント
ロールがない。
【0475】RunSpeechは、ダイアログの駆動を続ける
イベントに依存しており、これまでに説明したように、
単一のQAコントロールを実行した後停止する。Prompt.O
nComplete、Reco.OnReco、Reco.OnSilence、Reco.OnMax
Timeout、Reco.OnNoRecO用のイベントハンドラが含まれ
る。それぞれについて次に説明する。
【0476】RunSpeechOnCompleteは以下のように動作
する。 (1)アクティブなPromptオブジェクトでOnClientComplet
e関数を指定している場合、その関数が呼び出される。 (2)アクティブなPromptオブジェクトがステートメント
コントロール、またはアクティブな応答コントロールを
持たない質問コントロール内に含まれていた場合、RunS
peechを呼び出す。
【0477】RunSpeechOnRecoは以下のように動作す
る。 (1)何らかのデフォルトのバインド動作が実行され、SML
ツリーがSML属性にバインドされ、テキストがControlsT
oSpeechEnable内の各コントロールのSpokenText属性に
バインドされる。 (2)認識結果の信頼度値がアクティブな応答コントロー
ルのConfidenceThresholdよりも低い場合、確認ロジッ
クが実行される。 (3)そうでない場合、アクティブな応答コントロールでO
nClientReco関数を指定している場合、その関数が呼び
出され、RunSpeechが呼び出される。
【0478】RunSpeechOnRecoは、ControlsToSpeechEna
bleのSML、SpokenText、およびConfidenceプロパティを
作成し設定する役割を持つ。SML、SpokenText、およびC
onfidenceプロパティは、実行時にスクリプトから利用
できる。
【0479】RunSpeechOnSilence、RunSpeechOnMaxTime
out、およびRunspeechOnNoRecoすべて、同じようにして
動作する。 (1)該当するOnClientXXX関数が、指定されていれば呼び
出される。 (2)RunSpeechが呼び出される。
【0480】最後に、Confirmationロジックが以下のよ
うに動作する。 (1)アクティブな応答コントロールの親QAコントロール
が確認コントロールを含む場合、最初のアクティブな確
認コントロールが見つかる(確認コントロールのアクテ
ィブ化は、質問コントロールのアクティブ化と全く同じ
ようにして判別される)。 (2)アクティブな確認コントロールが見つからない場
合、RunSpeechが呼び出される。 (3)見つかった場合、QAコントロールが実行され、選択
された確認コントロールをアクティブな質問コントロー
ルとする。
【0481】マルチモードブラウザでは、文法のロード
とイベントのディスパッチステップのみが実行される。
【図面の簡単な説明】
【図1】コンピューティングデバイスの動作環境の第1
の実施形態の平面図である。
【図2】図1のコンピューティングデバイスのブロック
図である。
【図3】汎用コンピュータのブロック図である。
【図4】クライアント/サーバシステムのアーキテクチ
ャのブロック図である。
【図5】クレジットカード情報取得するための表示であ
る。
【図6】ディスプレイおよび音声認識機能備えるクライ
アント上で実行可能なマークアップ言語のページ例であ
る。
【図7】クライアントサイドマークアップで認識および
可聴プロンプト機能を実現するための第1のアプローチ
を示すブロック図である。
【図8】クライアントサイドマークアップで認識および
可聴プロンプト機能を実現するための第2のアプローチ
を示すブロック図である。
【図9】クライアントサイドマークアップで認識および
可聴プロンプト機能を実現するための第3のアプローチ
を示すブロック図である。
【図10】随伴コントロールを示すブロック図である。
【図11】随伴コントロールを示す詳細ブロック図であ
る。
【符号の説明】
29 マイク 30 データ管理モバイルデバイス 32 ハウジング 33 スタイラス 34 ディスプレイ 35 ボタン 37 アナログ-デジタル(A/D)コンバータ 50 中央処理装置(CPU) 52 無線トランシーバ 54 不揮発性の読み書きランダムアクセスメモリストア 58 読み取り専用メモリ(ROM) 60 通信インターフェース 80 電話 120 汎用コンピュータ 140 処理装置 141 システムバス 150 システムメモリ 151 読み取り専用メモリ(ROM) 153 基本入出力システム 154 オペレーティングシステム 155 アプリケーションプログラム 156 プログラムモジュール 157 プログラムデータ 160 インターフェース 161 ハードディスクドライブ 164 オペレーティングシステム 165 アプリケーションプログラム 166 プログラムモジュール 167 プログラムデータ 170 インターフェース 171 磁気ディスクドライブ 175 光ディスクドライブ 180 ユーザ入力インターフェース 184 モニタ 185 ビデオインターフェス 186 プリンタ 187 スピーカ 188 出力周辺インターフェース 190 ネットワークインターフェースまたはアダプタ 191 ローカルエリアネットワーク(LAN) 192 モデム 193 ワイドエリアネットワーク(WAN) 194 リモートコンピュータ 195 リモートアプリケーションプログラム 200 Webベースの認識機能のアーキテクチャ 202 Webサーバ 204 リモート認識サーバ 209 サーバサイドプラグインモジュール 211 レコグナイザ(recognizer) 212 電話音声ブラウザ(telephony voice browser) 214 メディアサーバ(media server) 216 音声ブラウザ 250 フィールド 252 フィールド 254 フィールド 270 本文部分 272 スクリプト部分 280、282、284 コード部分 290 コントロール 300A ライブラリ 302 視覚的コントロール 304 視覚的認識/可聴プロンプト機能コントロール 306 随伴コントロール 308 出力コントロール 308A 「Question」コントロール 308B 「Confirmation」コントロール 308C 「Statement」コントロール 310 入力コントロール 310A 「Answer」コントロール 310B 「Command」コントロール 320 「Question/Answer」(以下「QA」とも呼ぶ)コント
ロール 322 コントロール 324 コントロール 326 線
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フランシスコ エム.ギャラネス アメリカ合衆国 98034 ワシントン州 カークランド 89 プレイス ノースイー スト 12012 (72)発明者 ホン シャオ−フェン アメリカ合衆国 98006 ワシントン州 ベルビュー サウスイースト 58 プレイ ス 17797 (72)発明者 ジェームズ ディー.ジャコビー アメリカ合衆国 98296 ワシントン州 スノホミッシュ サウス エコー レイク ロード 13113 (72)発明者 ルノー ジェイ.ルクシェ アメリカ合衆国 98004 ワシントン州 ベルビュー ノースイースト 16 ストリ ート 10221 ナンバーエイチ4 (72)発明者 スティーブン エフ.ポーター アメリカ合衆国 98101 ワシントン州 シアトル アラスカン ウェイ 1900 ナ ンバー414 Fターム(参考) 5B085 AA08 BE04 CC01 CE03 5E501 AA02 AA04 AB01 AB15 AC10 BA12 CB05 CB11 CB15 EA21 FA08 FA42

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ上で実行したときに、クラ
    イアント/サーバシステムにおけるクライアント用にク
    ライアントサイドマークアップを生成する命令を格納す
    るコンピュータ読み取り可能な記録媒体であって、前記
    命令は、 ダイアログを定義するコントロールのセットであって、
    少なくとも、質問の可聴プロンプト機能に関係するマー
    クアップを生成する質問コントロールと認識用の文法に
    関係するマークアップを生成する応答コントロールとを
    含み、コントロールのそれぞれが関連するコントロール
    がアクティブ化に使用できるかどうかを示す属性を持つ
    コントロールのセットと、 前記クライアント上で実行したときにコントロールがア
    クティブ化されることに応じてダイアログを作成するモ
    ジュールとを備えたことを特徴とするコンピュータ読み
    取り可能な記録媒体。
  2. 【請求項2】 前記質問コントロールにより前記応答コ
    ントロールがアクティブにされることを特徴とする請求
    項1に記載のコンピュータ読み取り可能な記録媒体。
  3. 【請求項3】 前記コントロールは、 前記マークアップ内のナビゲーション、タスクのヘル
    プ、および可聴プロンプト機能の繰り返しの1つに対す
    る文法に関係するマークアップを生成するコマンドコン
    トロールを含むことを特徴とする請求項2に記載のコン
    ピュータ読み取り可能な記録媒体。
  4. 【請求項4】 前記コントロールは、 認識された結果が正しいことを確認する操作に関係する
    マークアップを生成する確認コントロールを含むことを
    特徴とする請求項3に記載のコンピュータ読み取り可能
    な記録媒体。
  5. 【請求項5】 前記確認コントロールは信頼度レベルま
    たは受け取った結果に応じてアクティブにされることを
    特徴とする請求項4に記載のコンピュータ読み取り可能
    な記録媒体。
  6. 【請求項6】 前記応答コントロールは信頼度レベルに
    関係する属性を含むことを特徴とする請求項5に記載の
    コンピュータ読み取り可能な記録媒体。
  7. 【請求項7】 前記確認コントロールにより受理コント
    ロールがアクティブにされ前記認識された結果を受け入
    れることを特徴とする請求項5に記載のコンピュータ読
    み取り可能な記録媒体。
  8. 【請求項8】 前記確認コントロールにより否認コント
    ロールがアクティブにされ前記認識された結果を否認す
    ることを特徴とする請求項5に記載のコンピュータ読み
    取り可能な記録媒体。
  9. 【請求項9】 前記確認コントロールにより訂正コント
    ロールがアクティブにされ前記認識された結果を訂正す
    ることを特徴とする請求項5に記載のコンピュータ読み
    取り可能な記録媒体。
  10. 【請求項10】 前記質問コントロールにより前記応答
    コントロールがアクティブにされることを特徴とする請
    求項1に記載のコンピュータ読み取り可能な記録媒体。
  11. 【請求項11】 前記応答コントロールが受け取った結
    果をコントロールの第1のセットのうちの1つと関連付
    けるメカニズムを備えたことを特徴とする請求項10に
    記載のコンピュータ読み取り可能な記録媒体。
  12. 【請求項12】 クライアント上の視覚的レンダリング
    に関係するマークアップを生成するコントロールの第2
    のセットをさらに備え、コントロールの前記第1のセッ
    トのそれぞれのコントロールをコントロールの前記第2
    のセットの前記コントロールのうちの少なくとも1つと
    関連付けることを特徴とする請求項1に記載のコンピュ
    ータ読み取り可能な記録媒体。
  13. 【請求項13】 コンピュータ上で実行したときに、ダ
    イアログを定義する命令を格納するコンピュータ読み取
    り可能な記録媒体であって、前記命令は、 ダイアログを定義するコントロールのセットであって、
    少なくとも、質問の可聴プロンプトを生成する質問コン
    トロールと認識用の文法を使用する応答コントロールを
    と含み、前記コントロールのそれぞれが関連するコント
    ロールがアクティブ化に使用できるかどうかを示す属性
    を持つコントロールのセットと、 前記コンピュータ上で実行したときにコントロールがア
    クティブ化されることに応じてダイアログを作成するモ
    ジュールとを備えたことを特徴とするコンピュータ読み
    取り可能な記録媒体。
  14. 【請求項14】 前記質問コントロールにより前記応答
    コントロールがアクティブにされることを特徴とする請
    求項13に記載のコンピュータ読み取り可能な記録媒
    体。
  15. 【請求項15】 前記応答コントロールが受け取った結
    果をコントロールの第1のセットのうちの1つと関連付
    けるメカニズムを備えたことを特徴とする請求項14に
    記載のコンピュータ読み取り可能な記録媒体。
  16. 【請求項16】 メカニズムは認識値をバインドする機
    能を備えたことを特徴とする請求項15に記載のコンピ
    ュータ読み取り可能な記録媒体。
  17. 【請求項17】 前記メカニズムはバインドの動作に関
    係するイベントを発行する操作を含むことを特徴とする
    請求項16に記載のコンピュータ読み取り可能な記録媒
    体。
  18. 【請求項18】 認識および/または可聴プロンプト機
    能をコンピュータ上で実行するコンピュータに実装され
    た方法であって、 コントロールのセットでダイアログを定義するステップ
    であって、コントロールの前記セットは、少なくとも、
    質問の可聴プロンプトを生成する質問コントロールと認
    識用の文法を使用する応答コントロールとを含み、前記
    コントロールのそれぞれが関連するコントロールがアク
    ティブ化に使用できるかどうかを示す属性を持つステッ
    プと、 コントロールがアクティブ化されることに関係するコー
    ドの実行に応じてダイアログを作成するステップとを含
    むことを特徴とする方法。
  19. 【請求項19】 前記ダイアログを作成するステップは
    前記質問コントロールを介する前記応答コントロールの
    アクティブ化を含むことを特徴とする請求項18に記載
    のコンピュータに実装された方法。
  20. 【請求項20】 コントロールの前記セットは、マーク
    アップ内のナビゲーション、タスクのヘルプ、および可
    聴プロンプトの繰り返しの1つに対する文法に関係する
    コードを生成するコマンドコントロールを含むことを特
    徴とする請求項19に記載のコンピュータに実装された
    方法。
  21. 【請求項21】 コントロールの前記セットは、認識さ
    れた結果が正しいことを確認する操作に関係するコード
    を生成する確認コントロールを含むことを特徴とする請
    求項20に記載のコンピュータに実装された方法。
  22. 【請求項22】 前記ダイアログを作成するステップ
    は、信頼度レベルまたは受け取った結果に応じた前記確
    認コントロールのアクティブ化を含むことを特徴とする
    請求項21に記載のコンピュータに実装された方法。
JP2002306353A 2001-10-21 2002-10-21 ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法 Pending JP2003216574A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/087,608 US7711570B2 (en) 2001-10-21 2001-10-21 Application abstraction with dialog purpose
US10/087,608 2001-10-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008272254A Division JP2009059378A (ja) 2001-10-21 2008-10-22 ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法

Publications (2)

Publication Number Publication Date
JP2003216574A true JP2003216574A (ja) 2003-07-31
JP2003216574A5 JP2003216574A5 (ja) 2005-12-08

Family

ID=22206200

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002306353A Pending JP2003216574A (ja) 2001-10-21 2002-10-21 ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法
JP2008272254A Ceased JP2009059378A (ja) 2001-10-21 2008-10-22 ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008272254A Ceased JP2009059378A (ja) 2001-10-21 2008-10-22 ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法

Country Status (4)

Country Link
US (2) US7711570B2 (ja)
EP (1) EP1304614A3 (ja)
JP (2) JP2003216574A (ja)
CN (1) CN100397340C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003241880A (ja) * 2001-12-20 2003-08-29 Canon Inc 制御装置

Families Citing this family (103)

* 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
US7177815B2 (en) * 2002-07-05 2007-02-13 At&T Corp. System and method of context-sensitive help for multi-modal dialog systems
US7177816B2 (en) * 2002-07-05 2007-02-13 At&T Corp. System and method of handling problematic input during context-sensitive help for multi-modal dialog systems
US7653544B2 (en) * 2003-08-08 2010-01-26 Audioeye, Inc. Method and apparatus for website navigation by the visually impaired
US7275217B2 (en) * 2002-09-09 2007-09-25 Vijay Anand Saraswat System and method for multi-modal browsing with integrated update feature
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US8494859B2 (en) * 2002-10-15 2013-07-23 Gh, Llc Universal processing system and methods for production of outputs accessible by people with disabilities
US7003464B2 (en) * 2003-01-09 2006-02-21 Motorola, Inc. Dialog recognition and control in a voice browser
US7421393B1 (en) 2004-03-01 2008-09-02 At&T Corp. System for developing a dialog manager using modular spoken-dialog components
KR100834363B1 (ko) * 2003-06-02 2008-06-02 인터내셔널 비지네스 머신즈 코포레이션 음성 응답 시스템, 음성 응답 방법, 음성 서버, 음성 파일 처리 방법 및 기록 매체
US7389236B2 (en) * 2003-09-29 2008-06-17 Sap Aktiengesellschaft Navigation and data entry for open interaction elements
US20050080628A1 (en) * 2003-10-10 2005-04-14 Metaphor Solutions, Inc. System, method, and programming language for developing and running dialogs between a user and a virtual agent
US7409690B2 (en) * 2003-12-19 2008-08-05 International Business Machines Corporation Application module for managing interactions of distributed modality components
US8160883B2 (en) * 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
US20050171780A1 (en) * 2004-02-03 2005-08-04 Microsoft Corporation Speech-related object model and interface in managed code system
US7412393B1 (en) * 2004-03-01 2008-08-12 At&T Corp. Method for developing a dialog manager using modular spoken-dialog components
EP1599007B1 (en) * 2004-05-18 2007-09-12 Alcatel Lucent Method and server for providing a multi-modal dialog
US7043435B2 (en) * 2004-09-16 2006-05-09 Sbc Knowledgfe Ventures, L.P. System and method for optimizing prompts for speech-enabled applications
US8311822B2 (en) 2004-11-02 2012-11-13 Nuance Communications, Inc. Method and system of enabling intelligent and lightweight speech to text transcription through distributed environment
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US7600232B2 (en) * 2004-12-07 2009-10-06 Microsoft Corporation Inter-process communications employing bi-directional message conduits
US7751431B2 (en) * 2004-12-30 2010-07-06 Motorola, Inc. Method and apparatus for distributed speech applications
US20060149553A1 (en) * 2005-01-05 2006-07-06 At&T Corp. System and method for using a library to interactively design natural language spoken dialog systems
US8185399B2 (en) 2005-01-05 2012-05-22 At&T Intellectual Property Ii, L.P. System and method of providing an automated data-collection in spoken dialog systems
US8478589B2 (en) 2005-01-05 2013-07-02 At&T Intellectual Property Ii, L.P. Library of existing spoken dialog data for use in generating new natural language spoken dialog systems
EP1679867A1 (en) * 2005-01-06 2006-07-12 Orange SA Customisation of VoiceXML Application
US7865362B2 (en) * 2005-02-04 2011-01-04 Vocollect, Inc. Method and system for considering information about an expected response when performing speech recognition
US7805300B2 (en) * 2005-03-21 2010-09-28 At&T Intellectual Property Ii, L.P. Apparatus and method for analysis of language model changes
US8467506B2 (en) * 2005-04-21 2013-06-18 The Invention Science Fund I, Llc Systems and methods for structured voice interaction facilitated by data channel
US20060253272A1 (en) * 2005-05-06 2006-11-09 International Business Machines Corporation Voice prompts for use in speech-to-speech translation system
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US7797636B2 (en) * 2005-08-19 2010-09-14 Joseph Carter System and method for administering pluggable user interactive system applications
US8683334B2 (en) 2005-08-19 2014-03-25 Intervoice Limited Partnership System and method for sharing access to service provider controls and subscriber profile data across multiple applications in a user interactive system
US20070043569A1 (en) * 2005-08-19 2007-02-22 Intervoice Limited Partnership System and method for inheritance of advertised functionality in a user interactive system
US8229745B2 (en) * 2005-10-21 2012-07-24 Nuance Communications, Inc. Creating a mixed-initiative grammar from directed dialog grammars
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8032898B2 (en) 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US11222185B2 (en) 2006-10-26 2022-01-11 Meta Platforms, Inc. Lexicon development via shared translation database
US9070363B2 (en) * 2007-10-26 2015-06-30 Facebook, Inc. Speech translation with back-channeling cues
US8972268B2 (en) * 2008-04-15 2015-03-03 Facebook, Inc. Enhanced speech-to-speech translation system and methods for adding a new word
EP2095250B1 (en) * 2006-12-05 2014-11-12 Nuance Communications, Inc. Wireless server based text to speech email
US8000969B2 (en) * 2006-12-19 2011-08-16 Nuance Communications, Inc. Inferring switching conditions for switching between modalities in a speech application environment extended for interactive text exchanges
US8027839B2 (en) * 2006-12-19 2011-09-27 Nuance Communications, Inc. Using an automated speech application environment to automatically provide text exchange services
US7921214B2 (en) 2006-12-19 2011-04-05 International Business Machines Corporation Switching between modalities in a speech application environment extended for interactive text exchanges
US8713542B2 (en) * 2007-02-27 2014-04-29 Nuance Communications, Inc. Pausing a VoiceXML dialog of a multimodal application
US8725512B2 (en) * 2007-03-13 2014-05-13 Nuance Communications, Inc. Method and system having hypothesis type variable thresholds
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US8788620B2 (en) * 2007-04-04 2014-07-22 International Business Machines Corporation Web service support for a multimodal client processing a multimodal application
US8862475B2 (en) * 2007-04-12 2014-10-14 Nuance Communications, Inc. Speech-enabled content navigation and control of a distributed multimodal browser
US8620652B2 (en) * 2007-05-17 2013-12-31 Microsoft Corporation Speech recognition macro runtime
US8196092B2 (en) * 2007-06-14 2012-06-05 Verizon Patent And Licensing Inc. XSL dialog modules
US8050928B2 (en) * 2007-11-26 2011-11-01 General Motors Llc Speech to DTMF generation
US9177551B2 (en) 2008-01-22 2015-11-03 At&T Intellectual Property I, L.P. System and method of providing speech processing in user interface
US8831950B2 (en) * 2008-04-07 2014-09-09 Nuance Communications, Inc. Automated voice enablement of a web page
US8543404B2 (en) * 2008-04-07 2013-09-24 Nuance Communications, Inc. Proactive completion of input fields for automated voice enablement of a web page
US9047869B2 (en) * 2008-04-07 2015-06-02 Nuance Communications, Inc. Free form input field support for automated voice enablement of a web page
CA2665055C (en) * 2008-05-23 2018-03-06 Accenture Global Services Gmbh Treatment processing of a plurality of streaming voice signals for determination of responsive action thereto
CA2665014C (en) * 2008-05-23 2020-05-26 Accenture Global Services Gmbh Recognition processing of a plurality of streaming voice signals for determination of responsive action thereto
CA2665009C (en) * 2008-05-23 2018-11-27 Accenture Global Services Gmbh System for handling a plurality of streaming voice signals for determination of responsive action thereto
US8463053B1 (en) 2008-08-08 2013-06-11 The Research Foundation Of State University Of New York Enhanced max margin learning on multimodal data mining in a multimedia database
US8806357B2 (en) * 2008-08-29 2014-08-12 Sap Ag Plug-ins for editing templates in a business management system
US9122669B2 (en) 2008-08-29 2015-09-01 Sap Se Flat schema integrated document oriented templates
US8380508B2 (en) * 2009-06-05 2013-02-19 Microsoft Corporation Local and remote feedback loop for speech synthesis
CN101923853B (zh) * 2009-06-12 2013-01-23 华为技术有限公司 说话人识别方法、设备和系统
JP5380543B2 (ja) * 2009-09-25 2014-01-08 株式会社東芝 音声対話装置およびプログラム
US8996384B2 (en) * 2009-10-30 2015-03-31 Vocollect, Inc. Transforming components of a web page to voice prompts
US20110184740A1 (en) * 2010-01-26 2011-07-28 Google Inc. Integration of Embedded and Network Speech Recognizers
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US8521513B2 (en) * 2010-03-12 2013-08-27 Microsoft Corporation Localization for interactive voice response systems
US9652552B2 (en) * 2010-12-14 2017-05-16 Facebook, Inc. Dialog server
US10691679B2 (en) 2011-01-18 2020-06-23 Microsoft Technology Licensing, Llc Providing query completions based on data tuples
US8255218B1 (en) * 2011-09-26 2012-08-28 Google Inc. Directing dictation into input fields
US8681950B2 (en) 2012-03-28 2014-03-25 Interactive Intelligence, Inc. System and method for fingerprinting datasets
US8577671B1 (en) * 2012-07-20 2013-11-05 Veveo, Inc. Method of and system for using conversation state information in a conversational interaction system
US9465833B2 (en) 2012-07-31 2016-10-11 Veveo, Inc. Disambiguating user intent in conversational interaction system for large corpus information retrieval
US9799328B2 (en) 2012-08-03 2017-10-24 Veveo, Inc. Method for using pauses detected in speech input to assist in interpreting the input during conversational interaction for information retrieval
US10031968B2 (en) 2012-10-11 2018-07-24 Veveo, Inc. Method for adaptive conversation state management with filtering operators applied dynamically as part of a conversational interface
US8543397B1 (en) 2012-10-11 2013-09-24 Google Inc. Mobile device voice activation
US9390166B2 (en) * 2012-12-31 2016-07-12 Fujitsu Limited Specific online resource identification and extraction
PT2994908T (pt) 2013-05-07 2019-10-18 Veveo Inc Interface de entrada incremental de discurso com retorno em tempo real
US9645703B2 (en) 2014-05-14 2017-05-09 International Business Machines Corporation Detection of communication topic change
CN104166703B (zh) * 2014-07-15 2017-10-27 百度在线网络技术(北京)有限公司 对象识别方法和装置
US9953646B2 (en) 2014-09-02 2018-04-24 Belleau Technologies Method and system for dynamic speech recognition and tracking of prewritten script
US9401949B1 (en) * 2014-11-21 2016-07-26 Instart Logic, Inc. Client web content cache purge
US9852136B2 (en) 2014-12-23 2017-12-26 Rovi Guides, Inc. Systems and methods for determining whether a negation statement applies to a current or past query
US9854049B2 (en) 2015-01-30 2017-12-26 Rovi Guides, Inc. Systems and methods for resolving ambiguous terms in social chatter based on a user profile
US10614162B2 (en) * 2016-05-27 2020-04-07 Ricoh Company, Ltd. Apparatus, system, and method of assisting information sharing, and recording medium
CN116991971A (zh) * 2017-02-23 2023-11-03 微软技术许可有限责任公司 可扩展对话系统
US10586530B2 (en) 2017-02-23 2020-03-10 Semantic Machines, Inc. Expandable dialogue system
US20180275957A1 (en) * 2017-03-27 2018-09-27 Ca, Inc. Assistive technology for code generation using voice and virtual reality
TWI646529B (zh) * 2017-07-25 2019-01-01 雲拓科技有限公司 主動聊天裝置
CN107644641B (zh) * 2017-07-28 2021-04-13 深圳前海微众银行股份有限公司 对话场景识别方法、终端以及计算机可读存储介质
US11132499B2 (en) 2017-08-28 2021-09-28 Microsoft Technology Licensing, Llc Robust expandable dialogue system
TWI657433B (zh) * 2017-11-01 2019-04-21 財團法人資訊工業策進會 語音互動裝置及應用其之語音互動方法
CN111699483B (zh) 2018-01-16 2024-04-09 谷歌有限责任公司 提供助理深度链接以实行第三方对话会话转移的系统、方法和装置
CN109492221B (zh) * 2018-10-31 2023-06-30 广东小天才科技有限公司 一种基于语义分析的信息回复方法及可穿戴设备
JP7202853B2 (ja) * 2018-11-08 2023-01-12 シャープ株式会社 冷蔵庫
US10789956B1 (en) 2019-08-20 2020-09-29 Capital One Services, Llc Text-to-speech modeling
CN114020909A (zh) * 2021-11-03 2022-02-08 深圳康佳电子科技有限公司 基于场景的智能家居控制方法、装置、设备及存储介质
US20240184516A1 (en) * 2022-12-06 2024-06-06 Capital One Services, Llc Navigating and completing web forms using audio

Family Cites Families (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US672679A (en) * 1900-10-02 1901-04-23 Frank H Lewis Duplicate-whist board.
US4831550A (en) 1986-03-27 1989-05-16 International Business Machines Corporation Apparatus and method for estimating, from sparse data, the probability that a particular one of a set of events is the next event in a string of events
DE3723078A1 (de) 1987-07-11 1989-01-19 Philips Patentverwaltung Verfahren zur erkennung von zusammenhaengend gesprochenen woertern
DE3739681A1 (de) 1987-11-24 1989-06-08 Philips Patentverwaltung Verfahren zum bestimmen von anfangs- und endpunkt isoliert gesprochener woerter in einem sprachsignal und anordnung zur durchfuehrung des verfahrens
US5263117A (en) 1989-10-26 1993-11-16 International Business Machines Corporation Method and apparatus for finding the best splits in a decision tree for a language model for a speech recognizer
US5303327A (en) 1991-07-02 1994-04-12 Duke University Communication test system
US5477451A (en) 1991-07-25 1995-12-19 International Business Machines Corp. Method and system for natural language translation
EP0543329B1 (en) 1991-11-18 2002-02-06 Kabushiki Kaisha Toshiba Speech dialogue system for facilitating human-computer interaction
US5502774A (en) 1992-06-09 1996-03-26 International Business Machines Corporation Automatic recognition of a consistent message using multiple complimentary sources of information
US5384892A (en) 1992-12-31 1995-01-24 Apple Computer, Inc. Dynamic language model for speech recognition
CA2115210C (en) 1993-04-21 1997-09-23 Joseph C. Andreshak Interactive computer system recognizing spoken commands
DE69423838T2 (de) 1993-09-23 2000-08-03 Xerox Corp., Rochester Semantische Gleichereignisfilterung für Spracherkennung und Signalübersetzungsanwendungen
US5566272A (en) 1993-10-27 1996-10-15 Lucent Technologies Inc. Automatic speech recognition (ASR) processing using confidence measures
US5615296A (en) 1993-11-12 1997-03-25 International Business Machines Corporation Continuous speech recognition and voice response system and method to enable conversational dialogues with microprocessors
US5699456A (en) 1994-01-21 1997-12-16 Lucent Technologies Inc. Large vocabulary connected speech recognition system and method of language representation using evolutional grammar to represent context free grammars
US5675819A (en) 1994-06-16 1997-10-07 Xerox Corporation Document information retrieval using global word co-occurrence patterns
US5752052A (en) 1994-06-24 1998-05-12 Microsoft Corporation Method and system for bootstrapping statistical processing into a rule-based natural language parser
US6442523B1 (en) 1994-07-22 2002-08-27 Steven H. Siegel Method for the auditory navigation of text
US5689617A (en) 1995-03-14 1997-11-18 Apple Computer, Inc. Speech recognition system which returns recognition results as a reconstructed language model with attached data values
IT1279171B1 (it) 1995-03-17 1997-12-04 Ist Trentino Di Cultura Sistema di riconoscimento di parlato continuo
US5774628A (en) 1995-04-10 1998-06-30 Texas Instruments Incorporated Speaker-independent dynamic vocabulary and grammar in speech recognition
US6965864B1 (en) 1995-04-10 2005-11-15 Texas Instruments Incorporated Voice activated hypermedia systems using grammatical metadata
US5710866A (en) 1995-05-26 1998-01-20 Microsoft Corporation System and method for speech recognition using dynamically adjusted confidence measure
US5890123A (en) 1995-06-05 1999-03-30 Lucent Technologies, Inc. System and method for voice controlled video screen display
US5680511A (en) 1995-06-07 1997-10-21 Dragon Systems, Inc. Systems and methods for word recognition
US5737489A (en) 1995-09-15 1998-04-07 Lucent Technologies Inc. Discriminative utterance verification for connected digits recognition
JP3126985B2 (ja) 1995-11-04 2001-01-22 インターナシヨナル・ビジネス・マシーンズ・コーポレーション 音声認識システムの言語モデルのサイズを適応させるための方法および装置
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
KR100208772B1 (ko) 1996-01-17 1999-07-15 서정욱 시각 장애인용 대화형 유도 신호 시스템 및 그 제어방법
US5953392A (en) * 1996-03-01 1999-09-14 Netphonic Communications, Inc. Method and apparatus for telephonically accessing and navigating the internet
US5913193A (en) 1996-04-30 1999-06-15 Microsoft Corporation Method and system of runtime acoustic unit selection for speech synthesis
JP2753577B2 (ja) * 1996-04-30 1998-05-20 工業技術院長 配向した柱状粒子からなる窒化ケイ素多孔体とその製造方法
US5937384A (en) 1996-05-01 1999-08-10 Microsoft Corporation Method and system for speech recognition using continuous density hidden Markov models
US5835888A (en) 1996-06-10 1998-11-10 International Business Machines Corporation Statistical language model for inflected languages
US5819220A (en) 1996-09-30 1998-10-06 Hewlett-Packard Company Web triggered word set boosting for speech interfaces to the world wide web
US5905972A (en) 1996-09-30 1999-05-18 Microsoft Corporation Prosodic databases holding fundamental frequency templates for use in speech synthesis
US5797123A (en) 1996-10-01 1998-08-18 Lucent Technologies Inc. Method of key-phase detection and verification for flexible speech understanding
US5829000A (en) 1996-10-31 1998-10-27 Microsoft Corporation Method and system for correcting misrecognized spoken words or phrases
US5915001A (en) 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
US5960399A (en) 1996-12-24 1999-09-28 Gte Internetworking Incorporated Client/server speech processor/recognizer
US6456974B1 (en) 1997-01-06 2002-09-24 Texas Instruments Incorporated System and method for adding speech recognition capabilities to java
US6188985B1 (en) 1997-01-06 2001-02-13 Texas Instruments Incorporated Wireless voice-activated device for control of a processor-based host system
GB9701866D0 (en) 1997-01-30 1997-03-19 British Telecomm Information retrieval
DE19708183A1 (de) 1997-02-28 1998-09-03 Philips Patentverwaltung Verfahren zur Spracherkennung mit Sprachmodellanpassung
US6078886A (en) 1997-04-14 2000-06-20 At&T Corporation System and method for providing remote automatic speech recognition services via a packet network
US6101472A (en) 1997-04-16 2000-08-08 International Business Machines Corporation Data processing system and method for navigating a network using a voice command
US6363301B1 (en) 1997-06-04 2002-03-26 Nativeminds, Inc. System and method for automatically focusing the attention of a virtual robot interacting with users
US6073091A (en) 1997-08-06 2000-06-06 International Business Machines Corporation Apparatus and method for forming a filtered inflected language model for automatic speech recognition
US6192338B1 (en) 1997-08-12 2001-02-20 At&T Corp. Natural language knowledge servers as network resources
US6154722A (en) 1997-12-18 2000-11-28 Apple Computer, Inc. Method and apparatus for a speech recognition system language model that integrates a finite state grammar probability and an N-gram probability
US6138139A (en) 1998-10-29 2000-10-24 Genesys Telecommunications Laboraties, Inc. Method and apparatus for supporting diverse interaction paths within a multimedia communication center
US6182039B1 (en) 1998-03-24 2001-01-30 Matsushita Electric Industrial Co., Ltd. Method and apparatus using probabilistic language model based on confusable sets for speech recognition
US6141641A (en) 1998-04-15 2000-10-31 Microsoft Corporation Dynamically configurable acoustic model for speech recognition system
US6610917B2 (en) 1998-05-15 2003-08-26 Lester F. Ludwig Activity indication, external source, and processing loop provisions for driven vibrating-element environments
US6689947B2 (en) 1998-05-15 2004-02-10 Lester Frank Ludwig Real-time floor controller for control of music, signal processing, mixing, video, lighting, and other systems
WO2000005643A1 (en) 1998-07-24 2000-02-03 Motorola Inc. Markup language for interactive services and methods thereof
US6269336B1 (en) 1998-07-24 2001-07-31 Motorola, Inc. Voice browser for interactive services and methods thereof
US6499013B1 (en) 1998-09-09 2002-12-24 One Voice Technologies, Inc. Interactive user interface using speech recognition and natural language processing
US6434524B1 (en) 1998-09-09 2002-08-13 One Voice Technologies, Inc. Object interactive user interface using speech recognition and natural language processing
US6405170B1 (en) 1998-09-22 2002-06-11 Speechworks International, Inc. Method and system of reviewing the behavior of an interactive speech recognition application
US6539359B1 (en) 1998-10-02 2003-03-25 Motorola, Inc. Markup language for interactive services and methods thereof
US7003463B1 (en) * 1998-10-02 2006-02-21 International Business Machines Corporation System and method for providing network coordinated conversational services
US6587822B2 (en) 1998-10-06 2003-07-01 Lucent Technologies Inc. Web-based platform for interactive voice response (IVR)
US6188976B1 (en) 1998-10-23 2001-02-13 International Business Machines Corporation Apparatus and method for building domain-specific language models
CA2287768C (en) 1998-11-02 2004-01-13 Ahmed Abdoh Method for automated data collection, analysis and reporting
US6564263B1 (en) 1998-12-04 2003-05-13 International Business Machines Corporation Multimedia content description framework
US6718015B1 (en) 1998-12-16 2004-04-06 International Business Machines Corporation Remote web page reader
US6909874B2 (en) 2000-04-12 2005-06-21 Thomson Licensing Sa. Interactive tutorial method, system, and computer program product for real time media production
US6445776B1 (en) 1998-12-31 2002-09-03 Nortel Networks Limited Abstract interface for media and telephony services
DE19910236A1 (de) 1999-03-09 2000-09-21 Philips Corp Intellectual Pty Verfahren zur Spracherkennung
US6526380B1 (en) 1999-03-26 2003-02-25 Koninklijke Philips Electronics N.V. Speech recognition system having parallel large vocabulary recognition engines
US6463413B1 (en) 1999-04-20 2002-10-08 Matsushita Electrical Industrial Co., Ltd. Speech recognition training for small hardware devices
US6314402B1 (en) 1999-04-23 2001-11-06 Nuance Communications Method and apparatus for creating modifiable and combinable speech objects for acquiring information from a speaker in an interactive voice response system
US6081799A (en) 1999-05-05 2000-06-27 International Business Machines Corporation Executing complex SQL queries using index screening for conjunct or disjunct index operations
US6604075B1 (en) 1999-05-20 2003-08-05 Lucent Technologies Inc. Web-based voice dialog interface
US6240391B1 (en) 1999-05-25 2001-05-29 Lucent Technologies Inc. Method and apparatus for assembling and presenting structured voicemail messages
US6312378B1 (en) 1999-06-03 2001-11-06 Cardiac Intelligence Corporation System and method for automated collection and analysis of patient information retrieved from an implantable medical device for remote patient care
US6978238B2 (en) 1999-07-12 2005-12-20 Charles Schwab & Co., Inc. Method and system for identifying a user by voice
US6493719B1 (en) 1999-07-26 2002-12-10 Microsoft Corporation Method and system for scripting for system management information
US6311151B1 (en) 1999-07-28 2001-10-30 International Business Machines Corporation System, program, and method for performing contextual software translations
US6365203B2 (en) 1999-08-16 2002-04-02 Warner-Lambert Company Continuous coating of chewing gum materials
US6453290B1 (en) 1999-10-04 2002-09-17 Globalenglish Corporation Method and system for network-based speech recognition
JP4140878B2 (ja) 1999-10-12 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチモーダル・ブラウジングおよび会話型マークアップ言語の実施の方法およびシステム
GB9926134D0 (en) 1999-11-05 2000-01-12 Ibm Interactive voice response system
US6384829B1 (en) 1999-11-24 2002-05-07 Fuji Xerox Co., Ltd. Streamlined architecture for embodied conversational characters with reduced message traffic
US6349132B1 (en) 1999-12-16 2002-02-19 Talk2 Technology, Inc. Voice interface for electronic documents
GB9930731D0 (en) 1999-12-22 2000-02-16 Ibm Voice processing apparatus
US6785649B1 (en) 1999-12-29 2004-08-31 International Business Machines Corporation Text formatting from speech
US6690772B1 (en) 2000-02-07 2004-02-10 Verizon Services Corp. Voice dialing using speech models generated from text and/or speech
EP1275042A2 (en) 2000-03-06 2003-01-15 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
US20020035474A1 (en) * 2000-07-18 2002-03-21 Ahmet Alpdemir Voice-interactive marketplace providing time and money saving benefits and real-time promotion publishing and feedback
US6662163B1 (en) * 2000-03-30 2003-12-09 Voxware, Inc. System and method for programming portable devices from a remote computer system
US6785653B1 (en) * 2000-05-01 2004-08-31 Nuance Communications Distributed voice web architecture and associated components and methods
US20020003547A1 (en) 2000-05-19 2002-01-10 Zhi Wang System and method for transcoding information for an audio or limited display user interface
US20020010584A1 (en) * 2000-05-24 2002-01-24 Schultz Mitchell Jay Interactive voice communication method and system for information and entertainment
US6865528B1 (en) 2000-06-01 2005-03-08 Microsoft Corporation Use of a unified language model
TW472232B (en) 2000-08-11 2002-01-11 Ind Tech Res Inst Probability-base fault-tolerance natural language understanding method
US6717593B1 (en) 2000-09-12 2004-04-06 Avaya Technology Corp. Mark-up language implementation of graphical or non-graphical user interfaces
US6785651B1 (en) 2000-09-14 2004-08-31 Microsoft Corporation Method and apparatus for performing plan-based dialog
US6745163B1 (en) 2000-09-27 2004-06-01 International Business Machines Corporation Method and system for synchronizing audio and visual presentation in a multi-modal content renderer
US20020077823A1 (en) 2000-10-13 2002-06-20 Andrew Fox Software development systems and methods
US6728679B1 (en) 2000-10-30 2004-04-27 Koninklijke Philips Electronics N.V. Self-updating user interface/entertainment device that simulates personal interaction
US6950850B1 (en) 2000-10-31 2005-09-27 International Business Machines Corporation System and method for dynamic runtime partitioning of model-view-controller applications
JP3581648B2 (ja) 2000-11-27 2004-10-27 キヤノン株式会社 音声認識システム、情報処理装置及びそれらの制御方法、プログラム
US7487440B2 (en) 2000-12-04 2009-02-03 International Business Machines Corporation Reusable voiceXML dialog components, subdialogs and beans
US7028306B2 (en) 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
US7203651B2 (en) 2000-12-07 2007-04-10 Art-Advanced Recognition Technologies, Ltd. Voice control system with multiple voice recognition engines
GB0030330D0 (en) 2000-12-13 2001-01-24 Hewlett Packard Co Idiom handling in voice service systems
EP1223423A3 (en) * 2001-01-16 2004-01-28 National Research Council of Canada Method and apparatus for enhanced laser-induced plasma spectroscopy using mixed-wavelength laser pulses
US20020107891A1 (en) 2001-02-06 2002-08-08 Leamon Andrew P. Device-independent content acquisition and presentation
US7062437B2 (en) 2001-02-13 2006-06-13 International Business Machines Corporation Audio renderings for expressing non-audio nuances
GB0104120D0 (en) 2001-02-20 2001-04-11 Pace Micro Tech Plc Remote control
US20020154124A1 (en) 2001-02-22 2002-10-24 Han Sang-Yong System and method of enhanced computer user interaction
US20020173961A1 (en) 2001-03-09 2002-11-21 Guerra Lisa M. System, method and computer program product for dynamic, robust and fault tolerant audio output in a speech recognition framework
AU2002251205A1 (en) 2001-03-30 2002-10-15 British Telecommunications Public Limited Company Multi-modal interface
US7778816B2 (en) 2001-04-24 2010-08-17 Microsoft Corporation Method and system for applying input mode bias
CN1279465C (zh) 2001-05-04 2006-10-11 微软公司 Web启用的识别体系结构
US7506022B2 (en) 2001-05-04 2009-03-17 Microsoft.Corporation Web enabled recognition architecture
US7610547B2 (en) 2001-05-04 2009-10-27 Microsoft Corporation Markup language extensions for web enabled recognition
CN1266625C (zh) 2001-05-04 2006-07-26 微软公司 用于web启用的识别的服务器
US7409349B2 (en) 2001-05-04 2008-08-05 Microsoft Corporation Servers for web enabled speech recognition
US7020841B2 (en) 2001-06-07 2006-03-28 International Business Machines Corporation System and method for generating and presenting multi-modal applications from intent-based markup scripts
US7299269B2 (en) 2001-06-19 2007-11-20 Sun Microsystems, Inc. Dynamically allocating data buffers to a data structure based on buffer fullness frequency
US6941268B2 (en) 2001-06-21 2005-09-06 Tellme Networks, Inc. Handling of speech recognition in a declarative markup language
US6801604B2 (en) 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US6839896B2 (en) 2001-06-29 2005-01-04 International Business Machines Corporation System and method for providing dialog management and arbitration in a multi-modal environment
US6868383B1 (en) 2001-07-12 2005-03-15 At&T Corp. Systems and methods for extracting meaning from multimodal inputs using finite-state devices
US20020010715A1 (en) * 2001-07-26 2002-01-24 Garry Chinn System and method for browsing using a limited display device
CA2397451A1 (en) 2001-08-15 2003-02-15 At&T Corp. Systems and methods for classifying and representing gestural inputs
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
US6941265B2 (en) 2001-12-14 2005-09-06 Qualcomm Inc Voice recognition system method and apparatus
US7610556B2 (en) 2001-12-28 2009-10-27 Microsoft Corporation Dialog manager for interactive dialog with computer user
US7546382B2 (en) 2002-05-28 2009-06-09 International Business Machines Corporation Methods and systems for authoring of mixed-initiative multi-modal interactions and related browsing mechanisms
US7640164B2 (en) 2002-07-04 2009-12-29 Denso Corporation System for performing interactive dialog
US7302383B2 (en) 2002-09-12 2007-11-27 Luis Calixto Valles Apparatus and methods for developing conversational applications
US7257575B1 (en) 2002-10-24 2007-08-14 At&T Corp. Systems and methods for generating markup-language based expressions from multi-modal and unimodal inputs
US20040192273A1 (en) 2003-01-02 2004-09-30 Auyeung Al T. Speed answers to voice prompts
US7003464B2 (en) 2003-01-09 2006-02-21 Motorola, Inc. Dialog recognition and control in a voice browser
US7260535B2 (en) 2003-04-28 2007-08-21 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting for call controls
US20040230637A1 (en) 2003-04-29 2004-11-18 Microsoft Corporation Application controls for speech enabled recognition
US7363027B2 (en) 2003-11-11 2008-04-22 Microsoft Corporation Sequential multimodal input
US7158779B2 (en) 2003-11-11 2007-01-02 Microsoft Corporation Sequential multimodal input
US7660400B2 (en) 2003-12-19 2010-02-09 At&T Intellectual Property Ii, L.P. Method and apparatus for automatically building conversational systems
US7552055B2 (en) 2004-01-10 2009-06-23 Microsoft Corporation Dialog component re-use in recognition systems
US8160883B2 (en) 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
US7805704B2 (en) 2005-03-08 2010-09-28 Microsoft Corporation Development framework for mixing semantics-driven and state-driven dialog
US7873523B2 (en) 2005-06-30 2011-01-18 Microsoft Corporation Computer implemented method of analyzing recognition results between a user and an interactive application utilizing inferred values instead of transcribed speech
US7853453B2 (en) 2005-06-30 2010-12-14 Microsoft Corporation Analyzing dialog between a user and an interactive application

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003241880A (ja) * 2001-12-20 2003-08-29 Canon Inc 制御装置
US7212971B2 (en) 2001-12-20 2007-05-01 Canon Kabushiki Kaisha Control apparatus for enabling a user to communicate by speech with a processor-controlled apparatus
US7664649B2 (en) 2001-12-20 2010-02-16 Canon Kabushiki Kaisha Control apparatus, method and computer readable memory medium for enabling a user to communicate by speech with a processor-controlled apparatus

Also Published As

Publication number Publication date
US20040073431A1 (en) 2004-04-15
US8165883B2 (en) 2012-04-24
US7711570B2 (en) 2010-05-04
US20030130854A1 (en) 2003-07-10
JP2009059378A (ja) 2009-03-19
EP1304614A3 (en) 2005-08-31
EP1304614A2 (en) 2003-04-23
CN1417679A (zh) 2003-05-14
CN100397340C (zh) 2008-06-25

Similar Documents

Publication Publication Date Title
US7711570B2 (en) Application abstraction with dialog purpose
US8229753B2 (en) Web server controls for web enabled recognition and/or audible prompting
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
US7552055B2 (en) Dialog component re-use in recognition systems
US7409349B2 (en) Servers for web enabled speech recognition
US7506022B2 (en) Web enabled recognition architecture
RU2349969C2 (ru) Синхронное понимание семантических объектов, реализованное с помощью тэгов речевого приложения
RU2352979C2 (ru) Синхронное понимание семантических объектов для высокоинтерактивного интерфейса
US20040230637A1 (en) Application controls for speech enabled recognition
US7610547B2 (en) Markup language extensions for web enabled recognition
US20070006082A1 (en) Speech application instrumentation and logging
KR20080020649A (ko) 비필사된 데이터로부터 인식 문제의 진단
US20050004800A1 (en) Combining use of a stepwise markup language and an object oriented development tool
JP4467226B2 (ja) ウェブ対応音声認識用サーバの方法および記録媒体
EP1255192B1 (en) Web enabled recognition architecture

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051020

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070528

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070531

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070627

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070702

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080526

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080624

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20080924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080924