説明

マルチモーダルソフトウェアにおける知的なプロンプト制御のための方法、及びシステム

マルチモーダルデータ収集装置入力、または音声認識入力を、発話出力機能と統合するための対話マネージャ、及び方法。作業フローの記述(208)がグラフィカルユーザインタフェース(86)の対象物から抽出されると共に、マルチモーダルユーザインタフェース(204)が定義される。作業フローの記述(208)に従って、対話エンジン(254)は、入出力装置(264)とアプリケーション(204)との間の情報の流れを同期させる。複数の周辺装置(266-274)によって出力されるデータを入力するためのプロンプトは、周辺装置(266-274)の入力状態に基づき、対話エンジン(254)によって、知的な方法で制御される。バージイン、プロンプトホールドオフ、プライオリティプロンプト、及びトークアヘッドのような機能が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチモーダルソフトウェアアプリケーションに関すると共に、更に特に、様々な周辺装置からのマルチモーダル入力を、追加の周辺装置からのマルチモーダル出力と協調させることに関するものである。
【背景技術】
【0002】
本出願は、“METHOD AND SYSTEM FOR INTEGRATING MULTI-MODAL DATA CAPTURE DEVICE INPUTS WITH MULTI-MODAL OUTPUT CAPABILITIES”と題名が付けられて2003年7月11日に出願されたと共に、参照によってその全体がここに組み込まれる、シリアル番号10/617,422号の出願に関連している。
【0003】
音声認識は、従来の周辺入出力装置経由の通信に対する便利な代替物として、コンピュータとのハンズフリーの通信を可能にすることによって、作業場での多くのタスクを単純化した。作業者は、音声認識装置を使用することで、音声によってデータを入力することができると共に、指令、もしくは命令は、音声合成装置によって作業者に伝達されることができる。音声認識は、従来の周辺入出力装置によるコンピュータとの対話が制限されるモバイルコンピューティング装置において、特定のアプリケーションを見い出す。
【0004】
例えば、ワイヤレスウェアラブル(wearable)端末は、作業場の中での拡張された移動性を作業者に提供する一方で、望ましい計算、及びデータ処理機能によって作業関連のタスクを実行することを作業者に提供し得る。作業者がそのようなワイヤレスウェアラブル端末にひどく依存する1つの特別な領域は、在庫管理である。在庫管理産業は、食物及び小売り製品の流通、生産、及び品質管理のような様々な種々のタスクを実行するために、コンピュータ化された在庫管理システムに依存する。総合的な統一管理システムは、追跡及び管理のための中央コンピュータシステムと、注文実施者(order fillers)、収集者(pickers)、及び他の作業者の形態でコンピュータシステムを使用すると共に、コンピュータシステムと対話する人間との組み合わせを包含する。作業者は、中央コンピュータシステムからワイヤレスウェアラブル端末に送信された情報の指揮統制下にある総合的な統一管理システムの“手を使用する状況”を処理する。
【0005】
それらの作業者が割り当てられた作業を完了すると、情報の双方向性の通信ストリームが、ワイヤレスウェアラブル端末と中央コンピュータシステムとの間のワイヤレスネットワークを介して交換される。中央コンピュータシステムから各ワイヤレスウェアラブル端末によって受信された情報は、対応する作業者に対する音声命令か、またはテキスト指令に変換される。一般的に、その作業者は、音声データ入力のためのマイクロホン、及び音声出力フィードバックのための耳用スピーカを備える、ウェアラブル装置と接続されたヘッドセットを身に付ける。作業者からの応答は、ヘッドセットのマイクロホンによってワイヤレスウェアラブル端末に入力されると共に、ワイヤレスウェアラブル端末から中央コンピュータシステムまで伝達される。ヘッドセットのマイクロホンを経て、作業者は、質問を提示し、それらの割り当てられた作業を達成する際に進捗状況を報告し、そして在庫不足のような作業状態を報告することができる。そのようなワイヤレスウェアラブル端末を使用して、同時に操作するべき装置、または持ち歩くべき書類仕事なしで、作業者は、実質的にハンズフリーで割り当てられた作業を実行することができる。手動のデータ入力が除外されるか、もしくは少なくとも減少するので、作業者は、更に速く、更に正確に、そして更に生産的に、彼らの作業を実行することができる。
【発明の開示】
【発明が解決しようとする課題】
【0006】
音声機能を有するワイヤレスウェアラブル端末に適当な作業者の作業のセットの実例は、初めに作業者をコンピュータ化された在庫管理体系に歓迎すると共に、特別な作業、または注文、例えば倉庫から出発することを予定される特定のトラックに荷物を満たすこと、を定義することを含むことができる。作業者は、その場合に、彼らがその注文に関して作業をしているであろう特定のエリア(例えば冷凍庫)において答えることができる。システムは、その次に、特定の量の品目を選ぶために、音声によって、特別な通路、及び貯蔵所へ作業者を導く。作業者は、その次に、選ばれた品目の場所及び数を声に出して確認する。システムは、その次に、特定のトラックが注文品を受け取る船積みドック、または港へ作業者を導くことができる。上記の内容から分かるように、ワイヤレスウェアラブル端末と中央コンピュータシステムとの間で交換された特定の通信は、作業仕様書であり得ると共に、非常に変わりやすい。
【0007】
音声入力、及び音声出力に加えて、無線周波数IDリーダ装置、バーコードスキャナ、タッチスクリーン、リモートコンピュータ、プリンタ等のような他の入力装置、及び他の出力装置との、同時に起こると共に択一的な接続を協調させることは、ワイヤレス端末環境、及びこの特定の環境の外でも役に立つであろう。コンピュータプラットフォームに関する従来の運用ソフトウェアは、音声データ入力、音声出力フィードバック、及び周辺装置入力の間での、この協調を首尾よく達成しない。そのようなマルチモーダル環境の中に、バージイン(barge-in)、プロンプトホールドオフ(prompt-holdoff)、プライオリティプロンプト(priority prompts)、及びトークアヘッド(talk-ahead)のような機能を可能にする現在のモノモーダルの音声システムのそれと類似した、知的なプロンプト制御に関する満たされない要求がある。
【課題を解決するための手段】
【0008】
本発明の1つの特徴は、マルチモーダルソフトウェアアプリケーションを実行するためのシステムに関連する。このシステムは、マルチモーダルソフトウェアアプリケーションを具備する。マルチモーダルソフトウェアアプリケーションは、周辺装置の第1のセットから入力された第1のデータを受信すると共に、第2のデータを周辺装置の第2のセットに出力するように構成される。システムは、同様に、マルチモーダルソフトウェアアプリケーションと通信する対話エンジンを具備する。対話エンジンは、マルチモーダルソフトウェアアプリケーションから受信されるワークフローの記述を実行し、マルチモーダルソフトウェアアプリケーションに第1のデータを提供するように構成される。更に、この特徴によれば、システムは、第1のセット及び第2のセットの中の各周辺装置と接続された各インタフェースコンポーネントを具備する。各インタフェースコンポーネントは、もしあれば第2のデータを接続された周辺装置に提供すると共に、もしあれば第1のデータを接続された周辺装置から受信するように構成される。更に、対話エンジンは、周辺装置の第1のセットの入力状態に基づいて、ワークフローの記述からのプロンプトの出力を制御するように更に構成される。
【0009】
本発明の別の特徴は、マルチモーダルアプリケーションを実行する方法に関連する。この特徴によれば、マルチモーダルアプリケーションから受信されるワークフローの記述が実行される。ワークフローの記述は、複数のワークフローオブジェクトを含む。次に、第1のワークフローオブジェクトのプロンプトは、複数の周辺装置によって出力される。なお、プロンプトは、マルチモーダルアプリケーションのGUI画面の視覚制御に関連している。更に、この特徴に従って、プロンプトの出力は、複数の周辺装置の入力状態に基づいて制御される。
【0010】
本発明の更なる特徴は、マルチモーダルアプリケーションを実行するための命令を伝搬するコンピュータ読み取り可能な媒体に関連する。命令は、それの実行によって、その1つ以上のプロセッサが、以下のステップを実行するように配置される。a)マルチモーダルアプリケーションから受信されるワークフローの記述を実行すること。b)複数の周辺装置によって第1のワークフローオブジェクトのプロンプトを出力すること。c)複数の周辺装置の入力状態に従ってプロンプトの出力を制御すること。なお、プロンプトは、マルチモーダルアプリケーションのGUI画面の視覚制御に関連している。
【発明を実施するための最良の形態】
【0011】
組み込まれると共に、この明細書の一部を構成する添付図面は、発明の実施例を例証し、以下で与えられた実施例の詳細な記述と共に発明の原理を説明するのに役立つ。
【0012】
本発明の特徴、及び実施例は、データに関する音声及び他のプロンプトの提示を知的に制御するために、実行されたときに多種多様な周辺装置の入力状態を利用するマルチモーダルアプリケーションに関連する。
【0013】
オーディオヘッドセットに加えて、他の周辺装置が、ユーザによって実行されるべき作業の種類に応じたコンピュータプラットフォームと接続され得る。例えば、バーコードリーダ、及び他のスキャナは、中央コンピュータシステムと双方向で通信するために、単独で利用されることができるか、もしくは、ヘッドセットと結合して利用されることができる。特に、ワイヤレスウェアラブル端末は、そのユーザがそれによって中央コンピュータシステムと通信し得る、タッチスクリーン、ペンディスプレイ(pen display)、及び/またはキーパッドのような追加の周辺装置と接続され得る。本発明の1つの特徴によれば、ワイヤレスウェアラブルプラットホーム上で動作するソフトウェアアプリケーションは、特別なデータ要素のための周辺装置の内のいずれからの入力も受信することを可能にされると共に、同様に、プロンプト及び他のメッセージを様々な周辺装置へ同時に出力することを可能にされる。
【0014】
特定の実施例において、ワイヤレスウェアラブル端末、または他の種類の計算プラットフォーム上で動作する運用ソフトウェアは、周辺装置との対話を制御し、音声認識、及び音声合成のための対話エンジンの機能、及び能力を実現し、中央コンピュータシステムとの情報の交換を制御する。運用ソフトウェアは、ウェアラブル装置と接続された他の周辺装置からのデータ入力を可能にすると共に、それらの周辺装置から収集された情報入力を協調させる。好ましくは、運用ソフトウェアによって、作業者は、周辺装置からのデータが、まるでデータが音声、またはキーボードによって入力されたかのように、差異がない能力によってリアルタイムで翻訳され得るように、同様に音声データ入力、及び音声出力フィードバックを使用しながら、周辺装置によってデータを入力することが可能になる。
【0015】
図1は、本発明の実施例に対応している、音声使用可能な(voice-enabled)マルチモーダルアプリケーションを実行することに適当である、典型的なハードウェア環境、及びソフトウェア環境を説明する。特に、図1は、ネットワークを介して、例えば符号14で示されるRF通信リンクによってワイヤレスウェアラブル端末12と接続される中央コンピュータ10を説明する。本発明は、追加のワイヤレスウェアラブル端末12が制限なしで存在することができると考える。ワイヤレスウェアラブル端末12、及びネットワーク14が“ワイヤレス”であると説明されるが、この指定は現実には典型的であると共に、本発明の実施例は、単に、ワイヤレス環境に制限されないが、しかし、従来の有線ネットワーク媒体、及び有線ネットワークプロトコルと同様に、従来のリモートコンピュータを備えることができる。同様に、本発明の実施例は、ここでは、在庫品または倉庫保管の関連のシステムの典型的な環境の中で説明される。この特定の環境は、本発明の適用を制限しないが、しかし、本発明の説明及び理解に関して支援するための具体的な例のこの中への包含を可能にするために選択された。
【0016】
中央コンピュータ10、及びワイヤレスウェアラブル端末12は、各々、例えばキャッシュメモリ、不揮発性またはバックアップメモリ(例えばプログラム可能メモリ、もしくはフラッシュメモリ)、読出し専用メモリ等のあらゆる補足のレベルのメモリと同様に、主記憶装置を含むランダムアクセスメモリ(RAM)装置を表すかもしれないメモリ20、22に接続された1つ以上のマイクロプロセッサを含む中央演算処理装置(CPU)16、18を備える。更に、仮想メモリとして使用されるあらゆる記憶容量と同様に、例えば不揮発性記憶装置24、26、または別の連結されたコンピュータ上に記憶されるのと同様に、各メモリ20、22は、中央コンピュータ10、及びワイヤレスウェアラブル端末12のそれぞれの中で、物理的にどこか別の場所に配置されたメモリ記憶装置、例えばCPU16、18のどちらにおいてもプロセッサ内にある、あらゆるキャッシュメモリを含むと考えられ得る。
【0017】
中央コンピュータ10、及びワイヤレスウェアラブル端末12の各々は、外部と情報を通信するために、多くの入力及び出力を受信する。中央コンピュータ10は、1つ以上のユーザ入力装置(例えば、特にキーボード、マウス、トラックボール、ジョイスティック、タッチパッド、及び/または、マイクロホン)を合体しているユーザインタフェース28、及びディスプレイ(例えば、特にCRTモニタ、LCD表示パネル、及び/または、スピーカー)を備える。ワイヤレスウェアラブル端末12は、LCD表示パネルのようなディスプレイ、ユーザから発話された情報を受けるため、及び発話された命令を音声信号に変換するためのマイクロフォンのような音声入力装置、口語の情報をユーザに対する音声信号として出力するためのスピーカのような音声出力装置、例えば、特にキーボード、タッチスクリーン、及び、ディジタル化用書き込み面(digitizing writing surface)、及び/または、スキャナを含む1つ以上の追加のユーザ入力装置を内蔵するユーザインタフェース30を備える。音声入力装置、及び音声出力装置は、一般的に、ワイヤレスウェアラブル端末12のハンズフリーの操作を利用可能にすると共に、ユーザによって身に付けられるヘッドセットに配置される。
【0018】
中央コンピュータ10、及びワイヤレスウェアラブル端末12の各々は、一般的に1つ以上の不揮発性の大容量記憶装置24、26、例えば、特にフラッシュメモリ、または他の不揮発性ソリッドステート(solid state)メモリ、フロッピー(登録商標)、または他の交換可能ディスクドライブ、ハードディスクドライブ、直接アクセス記憶装置(DASD:direct access storage device)、光ドライブ(例えば、CDドライブ、DVDドライブ等)、及び/またはテープドライブを備えることになる。更に、中央コンピュータ10、及びワイヤレスウェアラブル端末12の各々は、それぞれネットワーク14(例えば、ワイヤレスRF通信ネットワーク)によって、中央コンピュータ10とワイヤレスウェアラブル端末12との間での情報の双方向通信を可能にするネットワークインタフェース32、34を備える。中央コンピュータ10、及びワイヤレスウェアラブル端末12の各々は、当業者によって理解されるように、CPU16、18とコンポーネント20〜コンポーネント34との間を接続する適当なアナログインタフェース及び/またはデジタルインタフェースを備えるということが認識されるべきである。ネットワークインタフェース32、34は、それぞれ、中央コンピュータ10とワイヤレスウェアラブル端末12との間で情報を伝達するためのトランシーバを備える。
【0019】
中央コンピュータ10、及びワイヤレスウェアラブル端末12の各々は、対応するオペレーティングシステム36、38の制御の下で動作すると共に、様々なコンピュータソフトウェアアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、データ構造等(例えば、中央コンピュータ10に常駐するマルチモーダル開発環境40、マルチモーダルランタイム環境42、及びアプリケーション44、ワイヤレスウェアラブル端末12に常駐するマルチモーダル環境47)を実行するか、あるいはそうでなければそれらに依存する。各オペレーティングシステム36、38は、コンピュータシステムの動作、及び資源の割り当てを制御するソフトウェアのセットを表す。更に、様々なアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール等は、同様に、例えば、分散コンピューティング環境、もしくはクライアント/サーバコンピューティング環境におけるネットワーク(図示せず)によって、中央コンピュータ10か、またはワイヤレスウェアラブル端末12のいずれかに接続された別のコンピュータ内の1つ以上のプロセッサ上で実行することができ、それによって、コンピュータプログラムの機能を実現するのに必要とされる処理は、ネットワークを介して複数のコンピュータに割当てられることができる。
【0020】
一般的に、本発明の実施例を実現するために実行されたルーチンは、オペレーティングシステムまたは特定のアプリケーションの一部、コンポーネント、プログラム、オブジェクト、命令のモジュールまたはシーケンス、あるいはそれのサブセットとして実行されたか否かに拘らず、“コンピュータプログラムコード”、または単に“プログラムコード”として具体化され得る。プログラムコードは、一般的に、いろいろな時にコンピュータ内の様々なメモリ、及び記憶装置に常駐する1つ以上の命令を備えると共に、プログラムコードは、コンピュータ内の1つ以上のプロセッサにより読み込まれて実行される場合、コンピュータに、本発明の様々な特徴を具体化するステップ、または要素を達成するのに必要なステップを実行させる。更に、本発明が、十分に機能しているコンピュータ、及びコンピュータシステムに照らして、既に説明されたと共に、以下に説明されることになる一方、当業者は、本発明の様々な実施例が様々な形式におけるプログラム製品として分配されることが可能であると共に、本発明が、分配を実際に実行するために使用される特定の種類の信号伝搬媒体に関係なく等しく適用されることを認識する。信号伝搬媒体の例は、特に揮発性及び不揮発性のメモリ装置、フロッピー(登録商標)及び他の交換可能ディスク、ハードディスクドライブ、磁気テープ、光ディスク(例えば、CD‐ROM、DVD等)のような記録可能タイプの媒体、及びデジタル通信リンク及びアナログ通信リンクのような伝送タイプの媒体を含むが、しかしそれに限定されない。
【0021】
更に、以下に示される様々なプログラムコードは、本発明の特定の実施例において実行されるアプリケーションに基づいて特定されることができる。しかしながら、後述するあらゆる特定のプログラム専門用語は利便性のためだけに使用され、従って、本発明が、そのような専門用語によって特定されるか、及び/または意味されるあらゆる特定のアプリケーションにおいて使用することに全く制限されるべきでないということが認識されるべきである。更に、プログラム機能が一般的なコンピュータ内に常駐する様々なソフトウェア階層(例えば、オペレーティングシステム、ライブラリ、API、アプリケーション、アプレット等)の中に配置されうる様々な方法と同様に、コンピュータプログラム内の無限の数の方法が、ルーチン、手順、方法、モジュール、オブジェクト等に構成されることができることを前提として、本発明がここに示されたプログラム機能の特定の構成、及び割り当てに制限されないということが認識されるべきである。
【0022】
当業者は、図1において説明される典型的な環境が、本発明を制限することを意図していないということを認識することになる。実際に、当業者は、他の代替えのハードウェア環境、及び/またはソフトウェア環境が本発明の範囲から外れずに使用されることができるということを認識することになる。
【0023】
本発明の原理に従って、マルチモーダル環境47が、ワイヤレスウェアラブル端末12のメモリ22に常駐するプログラム46を構成するのと同様に、マルチモーダル開発環境40、マルチモーダルランタイム環境42、及びアプリケーション44は、中央コンピュータ10のメモリ20に常駐するプログラムコードを構成する。中央コンピュータ10は、開発環境40を実行する開発コンピュータとしての役目を果たすことができるか、または開発環境40は別個の開発コンピュータ(図示せず)上で実行することができる。各々は、独立型のツールまたは独立型のアプリケーションであり得るか、あるいは例えばマルチモーダルソフトウェアアプリケーションを開発するか、もしくは実行することに適当な機能一式を提供するための他のプログラムコードに統合されることができる。アプリケーション44、マルチモーダル環境47、及びプログラム46は、対応するオペレーティングシステム36、38を通じて利用可能にされたコンピュータ資源を利用するユーザによって望まれたタスクを実行する、ソフトウェアのセットである。
【0024】
図2Aは、本発明の典型的な実施例に従って実現された開発環境を描写する。開発環境202は、プログラマによってマルチモーダルソフトウェアアプリケーション204を作成するために使用される。このマルチモーダルアプリケーション204は、アプリケーションコード206と、ワークフローの記述208の両方を含む。ここで更に詳細に説明されたように、ワークフローの記述208は、設定可能なオブジェクト212、及び再利用可能なオブジェクト210を含むことができる。その上、開発環境202は、異なるインタフェース要素、及び異なる入出力装置のプログラミングを単純化するために、ツールキットを含むことができる。
【0025】
ビジュアルラピッド開発環境(Visual rapid development environment)、または統合開発環境(IDE:integrated development environments)は、ソフトウェアアプリケーション、特にアプリケーションのためのグラフィカルユーザインタフェース(GUI)を開発する際の現在良く知られている補助物である。これらの環境の中で、プログラマは、画面上の様々なGUI要素を選択すると共に、位置決めすることによって、GUI画面を作成する。これらの要素は、ラジオボタン(radio buttons)、テキストエントリフィールド(text entry fields)、ドロップダウンボックス(drop-down boxes)、タイトルバー(title bars)等のようなオブジェクトを含む。IDEは、その場合に、各特別なGUIオブジェクトを実行するコードシェル(例えば、“C++”、または“Visual Basic(登録商標)”)を自動的に作成する。コードシェルは、その次に、GUIオブジェクト及び関連のアプリケーション実行ロジックのパラメータを特に指定するために、プログラマによってカスタマイズされて、完成される。この方法において、IDEは、アプリケーションの迅速な開発を可能にする。
【0026】
本発明の実施例は、多種多様な周辺装置からデータを受信することができると共に、多種多様な周辺装置にデータを出力することができるアプリケーション204が容易に開発され得る開発環境202を提供することによって伝統的なIDEを拡大させる。GUIの各画面に関して、革新的な統合開発環境202は、その画面と対応する“対話”を指定するワークフローの記述208を生成する。対話を生成するために、開発環境202は、GUI画面内の各々の視覚要素(例えば、テキストボックス、ラジオボタン等)と関連付けられた対話ユニットを特定すると共に、対話ユニットを連結する。これらの対話ユニットは、ワークフローの記述の一部として組み込まれた場合に、ワークフローオブジェクトか、またはワークフローアイテムのいずれかと言われると共に、これらの3つの用語は、ここでは同義的に使用される。最終的に、対話、またはワークフローの記述は、ワークフローの記述が、一連の異なるプロンプト、それらの異なるプロンプトに対して期待される入力、及び特別な順序を示すプロンプトの間の連結を含むように、各GUI画面に関して生成されると共に、連結された全ての対話ユニットを含む。
【0027】
本発明の実施例は、独立型の開発環境として作動し得るか、もしくは現存するIDEを拡大させ得る。第2の代替案において、プログラマは、マイクロソフト(登録商標)“Visual C++(登録商標)”のような従来の環境を使用することによって、GUI画面を有するアプリケーション206を開発し得る。その結果生じるアプリケーション206は、その場合に、GUI画面の要素に基づいて、GUI画面に関する対話ユニットを生成する拡大された開発環境において変更され得る。これらの対話ユニットは、その次に、順序を指定するために連結され得ると共に、従って対話、またはワークフローの記述208が生成される。もう一つの方法として、開発環境は、伝統的なIDEの機能全てを含むが、しかし、更に、GUI画面の開発と同時に発生する対話ユニット(及び、その結果生じるワークフローの記述208)を生成するためのツールを含むように実現され得る。この代替案によれば、与えられたGUI画面に関するデータの入力及び出力の複数の様式に対応するために、ワークフローの記述を含む1つのアプリケーションが開発される。
【0028】
どちらの代替案が実行されるかに関係なく、GUI画面を備えるアプリケーション206の実行の間、ワークフローの記述208は、同様にうまく実行される。GUI画面がユーザに提示される場合、データ入力、及びデータ出力の適切な対話が実行されるように、その対応するワークフローの記述が実行される。どの周辺装置が各入力動作、または出力動作に従事することができるかを示す識別表示をワークフローの記述208の中に含むことによって、その結果生じる対話は、データを入力するか、または出力するために、様々な周辺装置を容易に利用し得る。アプリケーション、及びワークフローの記述の実行は、中央コンピュータにおいて、または各リモートコンピュータにおいて発生し得る。例えば、ワイヤレス端末は、中央コンピュータからのGUI画面を表示するのにかろうじて足りる、制限された処理能力を有する。この場合、ワークフローの記述、及びアプリケーションは、分散アプリケーションを実行するための2つのシステムの間の必要なデータ通信と同様に、好ましくは中央コンピュータ上で実行される。その代わりに、リモートコンピュータは、アプリケーションとワークフローの記述の両方を実行するのに十分な、それ自身の処理能力を備えることができる。
【0029】
アプリケーションの開発を促進するために、開発環境202は、様々なプログラマのツールキットを含むことができる。例えば、GUI制御ツールキット220は、GUI画面を作成するために使用され得る多種多様な視覚オブジェクトを容易に実行するために使用され得る。典型的なツールキットは、多分、インデックスを付けられた利用可能なGUI制御の表示をプログラマに提示するか、そうでなければ配列された利用可能なGUI制御の表示をプログラマに提示するであろう。プログラマは、その場合に、所望の制御を設置するために、制御の配置を指図し、それを選択すると共に、その次に、作成されたアプリケーションに、その制御の実装を取り込む。
【0030】
同様に、GUI制御の音声制御を可能にするツールキット222が提供され、それは、同様にGUI制御が音声使用可能にされたアプリケーションをプログラマが開発するのを助ける。その使用は、既に説明されたツールキット220と類似している。プログラマは、アプリケーション206に実装されるGUI制御を特定し得ると共に、対応する音声制御を可能にする、このツールキット222の提供するコードが、ワークフローの記述208を生成するために、開発環境202に出力される。音声ツールキット222の使用は、アプリケーション206を構文解析し、GUI制御を認識し、対応する制御を求めて音声ツールキット222を検索し、そしてワークフローの記述の対応する部分を生成し得る開発環境202の自動プリプロセッサによって遂行されるのと同様に、プログラマによって対話型的に遂行され得る。
【0031】
これらのツールキットに加えて、個別のツールキットが異なる入出力装置に提供され得る。ツールキットの使用を通じて、特定の装置と接続するためのサポートコンポーネント(support components)が事前にプログラムされ得ると共に、毎回それらを作成する必要性なしに、異なるアプリケーションにおいて再使用され得る。例えば、スキャナツールキット228は、多くの異なるスキャナのための装置固有の情報を備えることができると共に、プログラマは、多分ランタイムにおいて遭遇すると予測される環境にあるであろう、それらのコンポーネントのみを選択するであろう。代表的なツールキットは、タッチスクリーンツールキット224、キーパッドツールキット226、スキャナツールキット228、(例えば、ネットワーク化された通信コンポーネントを提供するための)通信ツールキット230、及びその他のツールキット232を備えるであろう。ツールキットの使用によって、プログラマは、特定のアプリケーションのために必要とされるそれらのコンポーネントのみを選択することが可能となる。その結果として、無関係な未使用のコードが存在しないので、アプリケーションのサイズ、及び効率が改善される。
【0032】
IDE202は、今までのところ、ビジュアルユーザインタフェース、またはグラフィカルユーザインタフェースに関してのみ説明された。しかしながら、本発明の典型的な実施例は、他のモノモーダルのユーザインターフェースを、マルチモーダルアプリケーションに変換するために利用され得る。例えば、音声応答インタフェースは、電話産業において良く知られていると共に、異なる音声反応に応答する一連の音声プロンプトを明示する。従って、典型的なIDEは、各音声プロンプトを明示するソフトウェアアプリケーションを分析し得ると共に、対応するワークフローオブジェクト、及びワークフロー順序を生成し得る。この新しいワークフローオブジェクトは、単に音声プロンプトに制限されないが、しかし様々な周辺装置のためのGUI画面制御プロンプト、及び他のプロンプトを含むであろう。従って、GUI画面以外のユーザインタフェースを有するアプリケーションは、同様に本発明の実施例によるマルチモーダルアプリケーションに変換され得る。
【0033】
図3を参照すると、典型的なGUI画面86が描写される。この画面は、以下の「数1」ようなオブジェクト、及び機能(feature)の階層的配列であると考えられ得る。
【0034】
【数1】

【0035】
開発環境202の中で、画面86の視覚要素を実行するコードは、ワークフローの記述を作成するための対話ユニットを生成するために使用され得る。例えば、GUI画面86を音声使用可能にするために、通例のGUIに加えて、音声出力が例えばヘッドセットに供給されるべきであることを明示すると共に、同様に入力がマイクロホンによって音声データとして受信され得ることを明示する、様々な対話ユニットのワークフローの記述が生成されるであろう。従って、ワークフローの記述、または対話は、入力が必要とされる場合に音声プロンプトを含むと共に、次のプロンプトを提供するまで、受信されるべき音声、または他のデータを待つであろう。GUI画面要素、または他のアプリケーションロジックの順序に基づいて、対話ユニットは、GUI画面86の順序を再現するために、特定の順番に連結され得る。以下の説明は、音声使用可能にされたアプリケーションのこの特定の例を続ける。しかしながら、他の入力出力モード、または追加の入出力モードが、同様にサポートされ得るであろう。
【0036】
典型的な対話(要素88から要素98まで)が、図3の右側に沿って描写される。GUI画面86が、例えば携帯用コンピュータ12の画面上で表示されるとき、画面86と関連付けられたワークフローの記述が実行される。その結果が、図解された対話である。一連のプロンプト(要素88から要素98まで)が生成されると共に、各プロンプトの後で、対話は(テキストで提示されたように)ユーザからの入力を待つ。
【0037】
従って、歓迎プロンプト(welcome prompt)88は、音声データとして出力されると共に、ユーザは、製品番号を入力することを、命令90によって促される。その次に、ユーザは、携帯用コンピュータ12のキーボードまたは他の入力装置によって、もしくは製品番号を発話することによって、製品番号(例えば、AB1037)を入力することができる。それに応じて、次のプロンプト92が生成されると共に、GUI画面86に関する対話が完了されるまで、このシーケンスが繰り返される。その結果、アプリケーションが実行中であるとき、現在の画面(例えば、画面86)、及び現在のフィールド(例えば、数量)が存在すると共に、この現在のフィールド及び画面と同期されるのは、関連付けられた対話ユニットである。
【0038】
図4は、本発明の実施例に従ってGUI画面を実行するコードからワークフローの記述を作成するための典型的な方法を詳述するフローチャートを説明する。上述のGUI画面86は、この方法を説明する間の一例として使用される。この方法におけるGUI画面オブジェクトの処理は、開発環境によって、自動的に達成されるか、またはプログラマを必要とする対話型セッションにおいて達成される。ステップ400において、“製品注文書”画面に対応するワークフローの記述が初期化される。
【0039】
画面86において遭遇する、もしくは特定される(ステップ402)最初のGUI要素は、画面の見出しテキスト“製品注文書”である。プロセッサは、これが、画面を指定すると共に、同様にその値をも特定し得るテキストフィールドであると認識する。その結果、ワークフローオブジェクト、または対話ユニットが、このGUI画面要素と対応するステップ404において作成される。特に、以下のようなフレーズの空白がGUI画面要素から抽出された値(すなわち、製品注文書)で満たされる、“___画面へようこそ”というフレーズを含む対話ユニットが生成され得る。
【0040】
従って、ステップ410において、対応するGUI要素の特定のフィールド、及び値から、ワークフローオブジェクトのパラメータが投入され得る。もちろん、ワークフローオブジェクトは、もし、より多い情報、より少ない情報、または異なる情報がワークフローオブジェクトに含まれるように要求される場合に、プログラマがデフォルトで生成されたオブジェクトを修正し得るように設定可能である。好ましい実施例において、比較的複雑でない画面要素である固定的なテキストオブジェクトは、最初の非固定的なテキストオブジェクトに遭遇するまで、連続して配置された固定的なテキストオブジェクトを結合することによって、ステップ406、及びステップ408で効果的に扱われる。その結果、ステップ408において、非固定的なテキストオブジェクト、及び全ての固定的なテキストオブジェクトは、結合されて1つのワークフローオブジェクトになる。
【0041】
ステップ412において、その次に、ワークフローオブジェクトを後継のワークフローオブジェクトと連結することで、リンクが作成される。デフォルト設定によって、GUI画面からの次の視覚要素と対応するワークフローオブジェクトに対するリンクが作成される。更に、リンクのデフォルトの活性化条件、すなわち、いつリンクがたどられるかは、入力が受信される時であると定義される。しかしながら、異なるリンクの活性化条件が使用され得る。例えば、たどるべき複数のリンクのうちの1つを決定するために、入力の値が検査され得る。別の例として、画面の他の入力フィールドが検査され得ると共に、もし全ての必要とされた入力フィールドが満たされている場合、1つのリンクがたどられる。そして、いくつかのフィールドがデータを省かれている場合、別のリンクがたどられ得る。代わりに、活性化の基準は、“X秒”が経過した後で、次のリンクが自動的にたどられるように、タイミングと関連しても良い。更に、活性化の基準は、アプリケーション204に埋め込まれたロジックであり得ると共に、対話エンジン254は、どのように続くかを決定し、そしてどのワークフローオブジェクトを次にリンクするかを対話エンジン254に指示するアプリケーション204にデータを伝達する。条件を定義すると共に、それらのそれぞれの結果を指定するための、プログラマに利用可能な技術の幅、及び変化が、ワークフローオブジェクトの間のリンクを定義するために、本発明の実施例の中で利用可能である。
【0042】
次に、各GUI要素に関して、ワークフローオブジェクトが作成されるまで、そのシーケンスが繰り返される。ワークフローオブジェクトの収集物は、ワークフローの記述、または対話と呼ばれると共に、GUI画面と対応する。GUI制御及びそれらの特別な機能の異なる順列と組み合わせが、生成され得る異なる対話の無限の可能性を提供する一方、図4のフローチャートは、あらゆるGUI画面に関して使用され得る一般的な方法を詳述する。しかしながら、図4の方法の典型的なアプリケーションを説明するために、いくつかの特定のGUI要素、及びワークフローオブジェクトが以下で説明される。
【0043】
図3のGUI画面86において、“色”要素は、期待された入力、例えば“赤”、“青”、及び“白”のセットを有するドロップダウンボックスである。対応するワークフローオブジェクトが作成されるとき、これらの期待された入力は、デフォルトのヘルププロンプト(help prompt)として使用され得る。例えば、“色”要素の処理は、“あなたは何色を希望するか”という質問を行う、対応する音声対話を生成することになる。もしユーザが“ヘルプ”と応答する場合、例えば、“利用可能な色は赤、青、白である”と言う追加のプロンプトが作成され得る。前述と同様に、もしいくつかの理由によりそれが与えられた状況において適切ではない場合、プログラマは、デフォルトのヘルププロンプトを再構成し得る。ワークフローオブジェクトは、同様に、ユーザから受け取られた入力が許可されている応答のうちの1つであるか、または入力を再試行するようにユーザをうながさなければならないかどうかを検査するコードを含むことができる。
【0044】
一般的に、各GUI要素が分析されるように、対応するワークフローオブジェクトの適切なプロンプト、可能な入力のセット、及びデフォルトのヘルプ機能が埋め込まれる。通常は、固定的なテキストは、ワークフローオブジェクトのためのプロンプト(この場合、音声出力)になることになり、部品表またはボタン名は、期待される入力になり、そして項目名またはボタン名のリストは、デフォルトのヘルププロンプトとして使用される。
【0045】
画面86の中で、“OK”ボタン100、及び“キャンセル”ボタン102は、たとえ、入力フォーカスがその時に別のフィールドにあるとしても、いつでも活性化され得る。従って、画面86のようなGUI画面に関して生成されたワークフローの記述は、いくつかの対話ユニットを、“グローバル”要素として示すことができ、ユーザから受け取られたあらゆる入力は、それがこれらのグローバル要素のうちの1つに関連するかどうかを判定するために評価されなければならない。従って、対話が実行されるとき、たとえ特定の画面の特定のフィールドが現在入力フォーカスを有することができるとしても、ワークフローの記述は、ユーザからの応答がその代りにグローバルな要素のうちの1つを拘束することができる能力を提供する。グローバル要素の別の例は、視覚インタフェース上の入力フィールドと関連付けられたラベルであろう。例えば、画面86は、“製品番号”、“数量”、“色”等のようなフィールドを有していると共に、ユーザは、単に発話することによって、または、そうでなければ入力装置によりその特定のラベルを指定することによって、フォーカスをこれらのグローバル要素のうちのどれにでも切り替えることができるであろう。応答において、あらゆる受け取られた入力は、そのフィールドと関連付けられるであろう。
【0046】
開発環境202は、同様に、基本的な対話ユニット及びリンクが、更に大きな再利用可能オブジェクトを形成するために一緒にグループ化されることを可能にする。一般的に、再利用可能オブジェクトは、アプリケーション206の複数部分において実行されることになるワークフローの記述のいくつかのセグメントをカプセル化するために使用される。この例は、ユーザからの日付/時間情報の取得に関与する対話ユニットか、もしくは情報の具体的な断片に関して遠隔データベースを照会するための対話ユニットを含むであろう。この動作を実行するコードに遭遇するたびに、プログラマは、開発プロセスを繰り返す代りに、記憶装置から再利用可能なオブジェクトを取り出すことができる。再利用可能なオブジェクトの各具体化に対する特定のリンク、または再利用可能なオブジェクトの各具体化からの特定のリンクが異なることになる一方、内部の対話ユニット、及びそれぞれのリンクは同じ状態を維持することになる。
【0047】
上述のように、ワークフローの記述208は、ユーザに出力するための一連のメッセージを含むと共に、入力が受信されると期待される多くの場合を含む。この情報は、どのような周辺装置がワークフローの記述を実行するコンピュータと接続されるかに関係なく、同じ状態を維持する。従って、ワークフローの記述は、発話、音声、スキャナ、キーボード、タッチスクリーンのような多くの異なる様相において入力及び出力を提供するために使用され得る。しかしながら、いくらかの出力は、いくらかの周辺装置に適しておらず、そして、ある入力装置は何らかの入力を提供しないであろう。従って、ワークフローの記述の中の各対話ユニット、またはワークフローオブジェクトは、周辺装置がその対話ユニットに関して使用されるべきであるとの指定を含むことができる。例えば、ワークフローの記述は、“どんな量”というプロンプトが画面プロンプト(例えば、ドロップダウンボックス)及び音声プロンプトとして出力されるべきであるということを反映することができる。しかしながら、ワークフローの記述は、そのプロンプトに関する入力が、画面から、音声応答として、もしくはバーコードスキャナによって取得されることができるということを反映するであろう。特別な周辺装置に対応するためのあらゆる特殊な実行コードは、ワークフローの記述の生成の間に、適切なツールキットから取り出され得る。今説明された入出力装置を明白に指定することに加えて、ワークフローの記述は、それが実行される場合に、全ての周辺装置か、または所定のデフォルトの周辺装置のセットが使用されるように、そのような参照を省略し得る。
【0048】
一度ワークフローの記述が生成された場合、マルチモーダルの入出力を提供するために、それはアプリケーションと共に実行され得る。典型的なランタイム環境250が、図2Bで描写される。多くの周辺装置が説明されるが、これらの装置の1つ以上は、本発明の範囲からはずれずに省略され得る。この環境の中で、対話エンジン254を用いてマルチモーダルソフトウェアアプリケーション204を実行する。例えば、音声使用可能なアプリケーションは、グラフィカルユーザインタフェースばかりでなく、同様に音声ユーザインタフェースも、ユーザに提供することができるであろう。対話エンジン254、及びソフトウェアアプリケーション204は、同じコンピュータ上、または個別のコンピュータ上で動作し得る。更に、それらは、リモートコンピュータ上、もしくは中央コンピュータ上で動作し得る。
【0049】
実際上、アプリケーション204は、ワークフローの記述208を実行すると共に、アプリケーション204に対してデータ252を返す対話エンジン254に、ワークフローの記述208を提供する。当業者にとって、アプリケーション204が必ずしも全体のワークフローの記述208を提供する必要があるとは限らないが、しかし単にワークフローの記述208か、またはそれの適切な部分が記憶されるところに対する参照を提供するということは明白であろう。対話エンジン254は、ワークフローの記述208の実行を制御すると共に、周辺装置とのインタフェースを管理する。これらの周辺装置は、音声出力を提供するための音声合成装置258、GUIを描写するための表示モニタ260、そこからデータが取り出され得るか、またはそこにデータが送られ得るリモートコンピュータ262、274、音声データを獲得すると共に、それを適切なデジタル入力に変換するための音声認識システム266、データを入力するため、及びデータを出力するためのタッチスクリーン268、キーパッドまたはキーボード270、バーコードスキャナまたはRFIDタグスキャナのようなスキャナ272を含むことができる。もちろん、マウス、トラックボール、ジョイスティック、プリンタ、及び他のもののような他の周辺装置が同様に含まれ得る。
【0050】
周辺装置と接続する1つの典型的な方法は、対話エンジン254と周辺装置のためのそれぞれのデバイスドライバとの間を接続するソフトウェアコンポーネント256a〜256c、及びソフトウェアコンポーネント264a〜264eの使用を含む。この方法において、対話エンジン254は、装置に依存していないと共に、新しい装置に対するサポートを追加することは、単に適切なインタフェースコンポーネントの生成を必要とする。作動中、ソフトウェアコンポーネント256a〜256c、及びソフトウェアコンポーネント264a〜264eは、例えば、“a)対話エンジン254から、その関連する周辺装置に対して出力するために、データ値を受信することができる”と共に、“b)関連する周辺装置によってユーザに中継される、ワークフローオブジェクトのプロンプトを、対話エンジンから受信することができる”。更に、入/出力装置264a〜264eは、同様に、対話エンジン254に対して、その関連する周辺装置で受信されたデータを送ることができる。
【0051】
特定のGUI画面を表示するためにアプリケーション204が実行中であるとき、対応するワークフローの記述208が対話エンジン254によって実行されている。対話エンジン254は、最初の対話ユニット、またはワークフローオブジェクトを検索すると共に、その出力を適切な周辺装置に送る。例えば、モニタ260上の表示のための一連のテキストは、同様に、音声合成装置258によって音声プロンプトに変換されることができる。対話エンジン254は、データを出力するように、出力コンポーネントまたは出力装置256a〜256c、及び入/出力装置264a〜264eのどちらに命令するかを知る。それは、ワークフローの記述が、プログラマによって指定された通りに、この情報を含むことができるからである。
【0052】
プロンプトに応答して、関連する周辺装置によって入力が受信されることをソフトウェアコンポーネント264a〜264eが判定する場合、この入力は、対話エンジン254にとって有益なフォーマットに変換されると共に、対話エンジン254に送られる。例えば、ユーザによって音声応答が音声認識システム266に提供されることができる。この発話データは、発話を認識するために分析されるデジタル表現に変換されると共に、一般的に発話データのアスキー(ASCII)表現に変換される。いくらかの場合において、入力値の期待されたセットがあると共に、アスキーデータは、セットのどの構成要素が入力として受信されたかを判定するために、このセットと比較され得る。他の場合において、アスキーデータは、単に対話エンジン254に送られる。
【0053】
一度対話エンジン254が入力を受信すると、対話エンジン254は、どのようにワークフローの記述208を実行し続けるかを決定する。入力は有効ではないかもしれないと共に、対話エンジン254は、出力として現在のプロンプト、恐らくはヘルププロンプトを再送する必要があるかもしれない。入力の単なる受領は、リンクされる後継のワークフローオブジェクトに対話エンジン254を移動させるかもしれない。またはその代りに、入力データは、複数の可能なリンクのうちのいずれが続けられるべきであるかを判定するために、対話エンジン254によって分析され得る。更に、対話エンジン254は、アプリケーションの特定のロジック(例えば、在庫システムを更新すること)が達成され得るように、データ252をアプリケーション204に渡す。
【0054】
このシーケンスは、新しいワークフローオブジェクトが検索されて実行される場合、それ自体を繰り返す。現在の画面に関する対話が終わるとき、アプリケーション204は、異なるGUI画面をおそらく検索することになると共に、新しいGUI画面と対応する新しいワークフローの記述によって、全体の処理は、それ自体を繰り返すことができる。このシーケンスは、新しいワークフローオブジェクトが検索されて実行される場合、それ自体を繰り返す。現在の画面に関する対話が終わるとき、アプリケーション204は、異なるGUI画面をおそらく検索することになると共に、新しいGUI画面と対応する新しいワークフローの記述によって、全体の処理は、それ自体を繰り返すことができる。その代りに、全体のワークフローの記述208は、1つのワークフローオブジェクトが、現在の画面の別のワークフローオブジェクトに単に連結しないが、しかし、たとえその全てがワークフローの記述に含まれる異なる画面であっても連結し得るように、マルチ画面のアプリケーションに関連し得る。本発明の実施例は、いずれの方法で設計されるアプリケーションでも動作可能である。
【0055】
本発明の様々な実施例において、入力されるデータは、対話エンジン254にばかりではなく、他の周辺装置にも提供され得る。図5は、上述のように提供された全体の説明より更に詳述される対話エンジン254の典型的な動作を提供する。図5のフローチャートは、プロンプトが適切な周辺装置に出力されると共に、対話エンジン254が、そのプロンプトに応答する入力を受信するのを待っていると仮定する。
【0056】
現在のワークフローオブジェクトによって関係させられた入/出力装置ソフトウェアコンポーネント264a〜264eは、入力がその関連する周辺装置で受信されたことを検知すると共に、対話エンジンに合図する。当業者は、入力が利用可能であることを判定するために、ポーリングベースのメカニズム、または割込み駆動のメカニズムが、対話エンジン、及び入/出力装置またはソフトウェアコンポーネント264a〜264eによって使用され得ると認識するであろう。ステップ300において、対話エンジンが入力を受信する。この時点で、対話エンジン254は、受信された入力を、ステップ301において、出力装置256a〜256c、及び入/出力装置264a〜264eのいくつか、または全部に対して転送することができる。
【0057】
次に、ステップ302において、対話エンジンは、現在のワークフローオブジェクトに関するリンク活性化基準に基づいて、その入力によって対話エンジンを後継のワークフローオブジェクトに進ませるべきであるかどうかを判定する。もしそうでなければ、その場合に、受信された入力の処理は完了する。
【0058】
しかしながら、もしそのワークフローが進むべきであるならば、多くのステップが実行され得る。ステップ304において、対話エンジンは、アクティブな入力ソフトウェアコンポーネント264a〜264eの各々に、受信された入力を通知する。これらの装置は、その場合に、ある他の周辺装置によって受信された入力値をそれらの関連する周辺装置に“表示する”ようにさせることを決定し得る。例えば、表示画面86上の“色”フィールドは、たとえ、ユーザがそれを打ち込む(もしくはマウスクリックによってそれを選択する)代りに、応答を発話したとしても、テキスト“赤”によって更新され得る。ワークフローの記述において指定されたあらゆる出力装置256a〜256cは、それらの表示が更新され得るように、同様に入力値も同様に提供され得る。
【0059】
ステップ306において、対話エンジンは、入力装置264a〜264eに、現在の状態、またはワークフローオブジェクトがもはやアクティブではなく、そして応答において、これらのコンポーネントが、それらのそれぞれの周辺装置においてデータが受信されることを待つのを止めることができると指示する。
【0060】
対話エンジンは、その場合に、出力装置256a〜256cから出力されるべきプロンプトを生成する次のワークフローオブジェクトを検索する。対話エンジンは、その次に、ステップ308において、それらの入力装置264a〜264eに、入力データの監視を始めるために、新しいワークフローオブジェクトに関してアクティブになるように指示し得る。
【0061】
上述の処理は多くの個々のシーケンシャルステップとして説明されたが、本発明の実施例は、入力及びデータを処理しているとき、ワークフローの記述の全体、もしくは少なくとも重要な部分を利用することを意図する。例えば、ワークフローの記述は、GUIインタフェースの文法、及び内容に関する情報を対話エンジン254に提供する。この情報に関して、対話エンジンは、それが“OK”ボタン100または“キャンセル”ボタン102のようなグローバルな項目と関連するかどうかを判断するために、たとえこれらの項目が現在入力フォーカスを有していないかもしれないとしても、あらゆる入力を調査することができる。
【0062】
特定のマルチモーダルソフトウェアアプリケーションに関して、ユーザは、繰り返される使用によって経験豊かになると共に、プロンプト、及びそれらの順序を熟知するようになるであろう。しかしながら、初心者ユーザは、同様にアプリケーションを使用すると共に、次にどのデータが必要とされるかを知るために、プロンプトに頼ることになる。従って、初心者ユーザを助ける長いプロンプト、もしくは詳細なプロンプトは、実際に全体のプロンプトを聞く必要がない経験豊かなユーザの邪魔をする。
【0063】
従って、本発明の典型的な実施例は、ユーザがプロンプトの提示の間に入力を行うことができるバージイン(barge-in)機能を備える。例えば、発話プロンプトが音声合成装置258上で出力されている間に、ユーザは、適切な応答を発話することによって、プロンプトを中断し得る。その結果、音声認識システム266は、対話エンジン254に入力を通知すると共に、次に、対話エンジン254は、進行中のプロンプトを終了するように、音声合成装置258を制御する。受信された入力に基づいて、次のプロンプトが、ワークフローの記述に従って、対話エンジン254により出力される。
【0064】
“バージイン”機能は、発話による応答のみに制限されない。代わりに、あらゆる装置からの入力、または所定の装置だけからの入力は、プロンプトを中断して、終了するために効果的であり得る。
【0065】
アプリケーションの開発者が中断されることを望まないかもしれない、いくつかのプロンプトがある。例えば、データを入力するための領域に達するために、ユーザに完全に下端までスクロールすることを要求するGUI画面があるかもしれない。これらの場合において、プロンプトは、ワークフローの記述内でプライオリティプロンプト(優先されるプロンプト)として指定され得る。対話エンジン254は、そのようなプロンプトを実行する間、プロンプトをそれが終わる前に終了するための“バージイン”入力を許可しないことになる。プロンプトが完了した後で、プロンプトの間に受信された“バージイン”入力は、まだ使用され得るか、もしくは、それは、ユーザにデータを再入力させることを強要するために、廃棄され得る。
【0066】
いくらかの場合において、ユーザは、たとえプロンプトが提示される前でも入力を行うように、プロンプトについて十分に精通している状態になり得る。例えば、“性別は?”、そしてその後に“髪の毛の色は?”のような2つの異なるプロンプトを必要とする代わりに、ユーザは、最初のプロンプトを聞いたら、単に“男性−ブラウン”と答えることができる。従って、第2のプロンプトは不必要になる。同様に、周辺装置は、一度に1を超えるデータを入力するために使用され得る。例えば、倉庫における部品の場所は、横列番号(整数)、シェルフ識別子(4文字変数)、及び貯蔵所位置(別の整数)を含むことができる。作業者がこの場所から部品を選ぶとき、彼らは、3つの個別のプロンプトになる3つの個別のワークフローオブジェクトを必要とするであろう、全部で3つの情報に促されるかもしれない。しかしながら、貯蔵所は、作業者が、同時に3つのデータ全てを容易に入力するためにスキャンすることができるバーコードラベルを有するかもしれない。従って、作動中、対話エンジンは、“横列の位置を特定してください?”と類似したプロンプトを生成する。応答において、スキャナ272のための入/出力装置264dは、3つの情報がスキャナから受信されるということを認識する。入/出力装置264dは、その場合に、3つのデータが、これらのデータに関する値と共に提供されつつあることを、対話エンジン254に通知し得る。対話エンジン254が、利用可能なワークフローの記述からの連結情報を有しているので、対話エンジン254は、データを現在のプロンプトと次のプロンプトの2つのプロンプトに結び付けると共に、受信データ全てを反映するために、あらゆる装置256a〜256c、264a〜264eを更新することができる。更に、対話エンジンは、既に受信されたデータに関するあらゆるプロンプトを省略すると共に、データが受信されなかった次のワークフローオブジェクトを進め得る。
【0067】
本発明の典型的な実施例において、マルチモーダルソフトウェアアプリケーションは、プロンプトホールドオフ(prompt-holdoff)として知られている、別の機能を備えることができる。タッチスクリーン268のような装置は、リモートコンピュータ274が提供できるような入力、及び出力を提供することができる。従って、対話エンジン254がプロンプトを出力し始めるようにそれらに命令するときでさえも、入力はこれらの装置において受信されている途中であるかもしれない。入/出力装置264a〜264e、対話エンジン254、または出力装置256a〜256cは、全ての入力動作が終了するまで、あらゆるプロンプトの開始を阻止するように構成され得る。その結果、以前のプロンプト、または不注意に入力されたデータに関連付けられた入力は、現在のプロンプトに誤って関連付けられない。同様に、対話エンジンは、入力が、出力されようとしていたプロンプトに対する適切な応答であるかどうかを判定し得る。もしそうであるならば、その場合に、対話エンジンは、アプリケーション204に対して応答を送出し、現在のプロンプトを省略すると共に、ワークフローの記述から次のプロンプトを出力することができる。
【0068】
ホールドオフプロンプトに対するこの能力は、ちょうど入力が受信されている装置に特有であり得るか、もしくは、その代りに、あらゆる装置において、その入力が終了するまで、プロンプトは生成されることを阻止され得る。
【0069】
図6のフローチャート600は、周辺装置の入力状態に基づいてプロンプトの出力を理知的に制御する1つの典型的な方法を描写する。このような方法で、音声プロンプトの送出及び受信は、他のプロンプトと同様に、他の周辺装置において受信された音声応答、及び音声入力に従って動的に制御され得る。従って、音声入力のみの環境において良く知られるようになったプロンプト制御能力は、多種多様な周辺装置による入出力を扱うことができる、ここに示されたマルチモーダルソフトウェアアプリケーションに含まれる。
【0070】
ステップ602において、周辺装置が、何らかの入力がそれらにおいて受信されているかどうかを判定するためにチェックされる。もしそうであるならば、その場合に、ステップ604の遅延期間の後に、それらの状態が再びチェックされる。入力が受信されていないとき、ステップ610において、対話エンジンによって現在のプロンプトが出力される。周辺装置は、ステップ606において、プロンプトのこの出力と同時に起こる入力に関して監視されると共に、受信された場合には、ステップ608において、プロンプトの出力を中断する。いくらかのプロンプトは、中断不可能であると指定されることができると共に、そのような場合において、対話エンジンは、ステップ608によって生成された中断信号を無視することになる。
【0071】
ステップ612において、入力が受信される場合、プロンプトが出力されているとき、またはプロンプトが出力され終えた後のいずれかで、入力を受信することが発生し得る。ステップ616において、対話エンジンは、どのくらいの異なる応答がその中に含まれるかを判定するために、入力を評価する。ステップ618において、対話エンジンは、その場合に、ワークフローの記述からのプロンプトに、各異なる応答を結び付ける。次に、ステップ620において、対話エンジンは、ワークフローの記述から、まだ応答されていない次のプロンプトを特定すると共に、ステップ602に戻ることによって、プロンプトを提示するシーケンスを繰り返す。結局、全てのプロンプトが答えられると、フローチャートはステップ622で終了することができる。図6において示されたように、フローチャートは、プロンプトホールドオフ(prompt-holdoff)、バージイン(barge-in)、トークアヘッド(talk-ahead)に分類された部分を含む。本発明の実施例は、プロンプトの知的な制御を達成する際、全ての3つの能力、または単にこれらの能力のサブセットを含むことを意図する。
【0072】
このように、本発明が様々な実施例の記述で説明されたと共に、これらの実施例が非常に詳細に説明された一方で、そのような詳細に対して付加されたクレームの範囲を限定するか、または何らかの方法で制限することは、出願人の意図ではない。追加の利点及び修正が、当業者には容易に明らかになる。それ故に、更に広い特徴における発明は、従って特定の詳細な記述、代表的装置及び方法、そして示されると共に説明された実例に制限されない。その結果、出願人の一般的な本発明概念の精神または範囲からは、はずれることなく、そのような詳細な記述からは、はずれるかもしれない。
【0073】
例えば、ワイヤレス端末を包含する典型的な動作環境の詳細な記述が示された。しかしながら、本発明の実施例は、同様に、LANのような有線ネットワークメディアによって接続されたコンピュータを意図するか、もしくはインターネットまたは他のWAN上の有線ネットワークメディアによって接続されたコンピュータでさえも意図している。同様に、遠隔端末装置の処理能力は変化すると共に、ダム端末(dumb terminals)、シンクライアント(thin clients)、ワークステーション、及びサーバクラスのコンピュータを含むことができる。同様に、対話エンジン、及びGUIアプリケーションは、ネットワーク機能を持たない独立型コンピュータ上で利用され得る。
【図面の簡単な説明】
【0074】
【図1】ある意味では本発明に一致する、音声使用可能なアプリケーションを作成することが可能である開発コンピュータ、及び音声使用可能なアプリケーションを実行することが可能であるワイヤレスのウェアラブル端末における、主要なハードウェアコンポーネント、及びソフトウェアコンポーネントを説明するブロック図である。
【図2A】典型的なマルチモーダルアプリケーション開発システムの機能的な要素を描写するブロック図である。
【図2B】典型的なマルチモーダルアプリケーション実行環境の機能的な要素を描写するブロック図である。
【図3】ウェアラブル計算装置のメイン表示画面を示すブロック図である。
【図4】ワークフローの記述オブジェクトのセットを作成するためのGUIオブジェクトの前処理を説明するフローチャートである。
【図5】入力装置からの受信入力に応答して対話エンジンによって実行される動作を説明するフローチャートである。
【図6】周辺装置の入力状態に基づいてプロンプトの出力を理知的に制御する1つの典型的な方法を説明するフローチャートである。
【符号の説明】
【0075】
10 中央コンピュータ
12 ワイヤレスウェアラブル端末
14 ネットワーク(RF通信リンク)
16、18 中央演算処理装置(CPU)
20、22 メモリ
24、26 不揮発性記憶装置
28 ユーザインタフェース
30 ユーザインタフェース
32、34 ネットワークインタフェース
36、38 オペレーティングシステム
40 マルチモーダル開発環境
42 マルチモーダルランタイム環境
44 アプリケーション
46 プログラム
47 マルチモーダル環境
86 GUI画面
202 開発環境
204 マルチモーダルソフトウェアアプリケーション
206 アプリケーションコード
208 ワークフローの記述
210 再利用可能なオブジェクト
212 設定可能なオブジェクト
220 GUI制御ツールキット
222 音声制御を可能にするツールキット
224 タッチスクリーンツールキット
226 キーパッドツールキット
228 スキャナツールキット
230 通信ツールキット
232 その他のツールキット
254 対話エンジン
256a〜256c 出力装置
258 音声合成装置
260 表示モニタ
262、274 リモートコンピュータ
264a〜264e 入/出力装置
266 音声認識システム
268 タッチスクリーン
270 キーパッドまたはキーボード
272 スキャナ

【特許請求の範囲】
【請求項1】
マルチモーダルソフトウェアアプリケーションを実行するためのシステムであって、
周辺装置の第1のセットから入力される第1のデータを受信すると共に、周辺装置の第2のセットに対して第2のデータを出力するように構成される前記マルチモーダルソフトウェアアプリケーションと、
前記マルチモーダルソフトウェアアプリケーションと通信する対話エンジンと、
前記第1のセット及び前記第2のセットの中の各周辺装置と接続された各インタフェースコンポーネントとを具備し、
前記対話エンジンが、前記マルチモーダルソフトウェアアプリケーションから受信されたワークフローの記述を実行すると共に、前記マルチモーダルソフトウェアアプリケーションに対して前記第1のデータを提供するように構成されると共に、更に、前記ワークフローの記述からのプロンプトの出力を、前記周辺装置の第1のセットの入力状態に基づいて制御するように構成され、
各インタフェースコンポーネントが、もしあれば前記第2のデータを接続された前記周辺装置に提供すると共に、もしあれば前記第1のデータを接続された前記周辺装置から受信するように構成される
ことを特徴とするシステム。
【請求項2】
前記制御が、もし前記プロンプトが出力されている間に前記第1のデータが受信される場合、前記プロンプトを中断する処理を含む
ことを特徴とする請求項1に記載のシステム。
【請求項3】
前記制御が、もし前記周辺装置の第1のセットのうちの1つが前記第1のデータを受信している場合、前記プロンプトの出力を延期する処理を含む
ことを特徴とする請求項1に記載のシステム。
【請求項4】
前記制御が、
前記第1のデータが前記プロンプト及び次のプロンプトに関係すると判定する処理と、
前記第1のデータの一部分を前記プロンプトと結合させ、前記第1のデータの他の部分を前記次のプロンプトと結合させる処理と
を含むことを特徴とする請求項1に記載のシステム。
【請求項5】
前記制御が、前記次のプロンプトの出力を無効にする処理を更に含む
ことを特徴とする請求項4に記載のシステム。
【請求項6】
前記制御が、もし前記プロンプトが中断不可能であると指定される場合、前記プロンプトの中断及び終了を阻止する処理を更に含む
ことを特徴とする請求項2に記載のシステム。
【請求項7】
前記周辺装置の第1のセットは、音声認識システム、無線周波数識別子スキャナ、バーコードスキャナ、タッチスクリーン、キーパッド、及びコンピュータのうちの1つ以上を含む
ことを特徴とする請求項1に記載のシステム。
【請求項8】
前記周辺装置の第2のセットは、音声合成システム、表示モニタ、及びコンピュータのうちの1つ以上を含む
ことを特徴とする請求項1に記載のシステム。
【請求項9】
マルチモーダルアプリケーションを実行するための方法であって、
前記マルチモーダルアプリケーションから受信されたワークフローの記述を実行するステップと、
複数の周辺装置によって第1のワークフローオブジェクトのプロンプトを出力するステップと、
前記複数の周辺装置の入力状態に従って前記プロンプトの出力を制御するステップとを具備し、
前記ワークフローの記述が、複数のワークフローオブジェクトを含み、
前記プロンプトが前記マルチモーダルアプリケーションに関連している
ことを特徴とする方法。
【請求項10】
前記プロンプトが、前記マルチモーダルアプリケーションのGUI画面の視覚制御に関連している
ことを特徴とする請求項9に記載の方法。
【請求項11】
前記制御するステップが、
前記出力するステップが完了する前にデータを受信するステップと、
前記データの受信に応答して、前記出力するステップを終了するステップとを含み、
それによって、前記プロンプトのあらゆる残り部分が出力されない
ことを特徴とする請求項9に記載の方法。
【請求項12】
前記出力するステップが、音声プロンプトを出力するステップを含み、
前記受信するステップが、音声認識システムから音声データを受信するステップを含む
ことを特徴とする請求項11に記載の方法。
【請求項13】
前記データが、前記複数の周辺装置のうちの1つから受信される
ことを特徴とする請求項11に記載の方法。
【請求項14】
前記プロンプトが中断不可能であると指定されたかどうかを判定するステップと、
前記プロンプトの終了を阻止するステップと
を更に具備することを特徴とする請求項11に記載の方法。
【請求項15】
前記データが所定の前記周辺装置から受信される場合、前記終了するステップを実行するステップと、
もし入力が所定の前記周辺装置以外から受信される場合、前記終了するステップを省略するステップと
を更に具備することを特徴とする請求項11に記載の方法。
【請求項16】
前記制御するステップが、
前記プロンプトに応答して、前記プロンプト及び第2のワークフローオブジェクトに関連するデータを受信するステップと、
前記データの一部分を前記第1のワークフローオブジェクトと結合させ、前記データの他の部分を前記第2のワークフローオブジェクトと結合させるステップと
を含むことを特徴とする請求項9に記載の方法。
【請求項17】
前記第2のワークフローオブジェクトに関連する次のプロンプトの出力を阻止するステップを更に具備する
ことを特徴とする請求項16に記載の方法。
【請求項18】
前記データが、前記第1のワークフローオブジェクト、及び複数の他のワークフローオブジェクトに関連する
ことを特徴とする請求項16に記載の方法。
【請求項19】
前記制御するステップが、
前記複数の周辺装置のうちの1つにおいてデータを受信するステップと、
前記データを受信しなくなるまで、前記プロンプトを出力するステップを延期するステップと
を含むことを特徴とする請求項9に記載の方法。
【請求項20】
前記延期するステップが、
前記プロンプトを1つの前記周辺装置に対して出力することを延期するステップと、
前記プロンプトを前記複数の周辺装置のうちの他のものに対して遅延なしで出力することを許可するステップと
を含むことを特徴とする請求項19に記載の方法。
【請求項21】
前記データが前記プロンプトに関連するかどうかを判定するステップと、
もし前記データが前記プロンプトに関連する場合、前記プロンプトの出力を省略するステップと
を更に具備することを特徴とする請求項19に記載の方法。
【請求項22】
マルチモーダルアプリケーションを実行するための命令を伝搬するコンピュータ読み取り可能な媒体であって、
前記命令が、それの実行によって、
前記マルチモーダルアプリケーションから受信されたワークフローの記述を実行するステップと、
複数の周辺装置によって第1のワークフローのプロンプトを出力するステップと、
前記複数の周辺装置の入力状態に従って前記プロンプトの出力を制御するステップとを1つ以上のプロセッサに実行させるように配置され、
前記ワークフローの記述が、複数のワークフローオブジェクトを含み、
前記プロンプトが、前記マルチモーダルアプリケーションのGUI画面の視覚制御に関連する
ことを特徴とするコンピュータ読み取り可能な媒体。
【請求項23】
前記命令が、それの実行によって、
前記出力するステップが完了する前にデータを受信するステップと、
前記データの受信に応答して、前記出力するステップを終了するステップとを1つ以上のプロセッサに更に実行させるように配置され、
それによって、前記プロンプトのあらゆる残り部分が出力されない
ことを特徴とする請求項22に記載のコンピュータ読み取り可能な媒体。
【請求項24】
前記命令が、それの実行によって、
前記プロンプトに応答して、前記プロンプト及び第2のワークフローオブジェクトに関連するデータを受信するステップと、
前記データの一部分を前記第1のワークフローオブジェクトと結合させ、前記データの他の部分を前記第2のワークフローオブジェクトと結合させるステップとを1つ以上のプロセッサに更に実行させるように配置される
ことを特徴とする請求項22に記載のコンピュータ読み取り可能な媒体。
【請求項25】
前記命令が、それの実行によって、
前記複数の周辺装置のうちの1つにおいてデータを受信するステップと、
前記データを受信しなくなるまで、前記プロンプトを出力するステップを延期するステップとを1つ以上のプロセッサに更に実行させるように配置される
ことを特徴とする請求項22に記載のコンピュータ読み取り可能な媒体。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2007−531069(P2007−531069A)
【公表日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2006−518860(P2006−518860)
【出願日】平成16年7月6日(2004.7.6)
【国際出願番号】PCT/US2004/021696
【国際公開番号】WO2005/008476
【国際公開日】平成17年1月27日(2005.1.27)
【出願人】(506010806)ヴォコレクト・インコーポレーテッド (7)
【Fターム(参考)】