(57)【要約】  本発明の実施形態は、音声対応動作とビジネスロジックとを協調的に仲介するための方法、装置、およびプログラム製品を提供することによって、先行技術の不完全性に対処する。方法は、XMLデータを受信するステップと、XMLデータから少なくとも1つのオブジェクトを生成するステップとを含む。方法は、少なくとも1つのオブジェクトが呼び出されたと判定するステップに応答して、オブジェクトの一部により定義された動作を実施するステップをさらに含む。
2013544409.tif 000002
【特許請求の範囲】
【請求項１】
音声対応動作とビジネスロジックとを協調的に仲介する方法であって、
XMLデータを受信するステップと、
前記XMLデータから少なくとも1つのオブジェクトを生成するステップと、
前記少なくとも1つのオブジェクトが呼び出されたと判定するステップに応答して、前記オブジェクトの一部により定義された動作を実施するステップと
を含む方法。
【請求項２】
前記動作を実施するステップが、前記オブジェクトに関連付けられたスピーチ出力をユーザに提供するために、音声エンジンにアクセスするステップを含む、請求項１に記載の方法。
【請求項３】
前記オブジェクトに関連付けられた少なくとも1つのビジネス動作シーケンスの実行と並行して前記動作を実施するステップをさらに含む請求項１に記載の方法。
【請求項４】
前記オブジェクトが、前記動作の実施後に前記オブジェクトの遷移を定義する遷移リンクを含む、請求項１に記載の方法。
【請求項５】
前記遷移リンクが、前記動作からの遷移が即時かつ無条件の遷移であることを示すデフォルトリンクである、請求項４に記載の方法。
【請求項６】
前記遷移リンクが、前記動作からの遷移が少なくとも1つのワードの認識に基づくことを示すボキャブラリリンクである、請求項４に記載の方法。
【請求項７】
前記遷移リンクが、前記動作からの遷移が規定された条件の真実に基づくことを示す条件リンクである、請求項４に記載の方法。
【請求項８】
前記遷移リンクが、前記動作から第2の動作への遷移を示す、請求項４に記載の方法。
【請求項９】
前記遷移リンクが、前記動作からビジネス動作シーケンスへの遷移を示す、請求項４に記載の方法。
【請求項１０】
ユーザのスピーチ入力をキャプチャするステップに応答して、前記スピーチ入力をマシン可読入力に変換するステップ
をさらに含む請求項１に記載の方法。
【請求項１１】
前記XMLデータが、ダイアログフローに関連付けられている、請求項１に記載の方法。
【請求項１２】
少なくとも1つの処理ユニットと、
メモリと、
前記メモリに常駐するプログラムコードであって、前記少なくとも1つの処理ユニットによって実行されるときに、XMLデータを受信し、前記XMLデータから少なくとも1つのオブジェクトを生成し、前記少なくとも1つのオブジェクトが呼び出されたとの判定に応答して、前記オブジェクトの一部により定義された動作を実施するように構成された、プログラムコードと
を含む装置。
【請求項１３】
前記プログラムコードが、前記オブジェクトに関連付けられたスピーチ出力をユーザに提供するために、音声エンジンにアクセスするようにさらに構成されている、請求項１２に記載の装置。
【請求項１４】
前記プログラムコードが、前記オブジェクトに関連付けられた少なくとも1つのビジネス動作シーケンスの実行と並行して前記動作を実施するようにさらに構成されている、請求項１２に記載の装置。
【請求項１５】
前記オブジェクトが、前記動作の実施後に前記オブジェクトの遷移を定義する遷移リンクを含む、請求項１２に記載の装置。
【請求項１６】
前記遷移リンクが、前記動作からの遷移が即時かつ無条件の遷移であることを示すデフォルトリンクである、請求項１５に記載の装置。
【請求項１７】
前記遷移リンクが、前記動作からの遷移が少なくとも1つのワードの認識に基づくことを示すボキャブラリリンクである、請求項１５に記載の装置。
【請求項１８】
前記遷移リンクが、前記動作からの遷移が規定された条件の真実に基づくことを示す条件リンクである、請求項１５に記載の装置。
【請求項１９】
前記遷移リンクが、前記動作から第2の動作への遷移を示す、請求項１５に記載の装置。
【請求項２０】
前記遷移リンクが、前記動作からビジネス動作シーケンスへの遷移を示す、請求項１５に記載の装置。
【請求項２１】
前記プログラムコードが、ユーザのスピーチ入力を、前記スピーチ入力のキャプチャリングに応答してマシン可読入力に変換するようにさらに構成されている、請求項１２に記載の装置。
【請求項２２】
前記XMLデータが、ダイアログフローに関連付けられている、請求項１２に記載の装置。
【請求項２３】
少なくとも1つの処理ユニットによって実行されるときに、XMLデータを受信し、前記XMLデータから少なくとも1つのオブジェクトを生成し、前記少なくとも1つのオブジェクトが呼び出されたとの判定に応答して、前記オブジェクトの一部により定義された動作を実施するように構成されたプログラムコードと、
前記プログラムコードを持っているコンピュータ可読媒体と
を含むプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、音声駆動システムに関し、詳細には、協調する音声ダイアログおよびビジネスロジックのインタプリタを含む音声駆動システムに関する。
【背景技術】
【０００２】
一般に、音声対応ソフトウェアは、計算集約的である。たとえば、音声対応ソフトウェアは、特定のダイアログのフローに従って動作する音声対応動作(たとえば、ユーザからのスピーチ入力をキャプチャして変換する、および/またはスピーチ出力をユーザに提供する)への考慮をしばしば必要とする。特定の条件が真実であるかを判定するなどの、他の論理演算への考慮もまた、しばしば必要である。
【０００３】
音声対応ソフトウェアにおける動作は、通常、逐次的なやり方で実施され、すなわち、動作は、それが発生するにつれて完了する。たとえば、VoiceXML(VXML)は、いくつかの音声対応ソフトウェアにおいて、スピーチ合成およびスピーチ認識、ならびに音声対応ソフトウェアのためのビジネスロジックを提供するために実施されている。音声対応ソフトウェアのためのVXMLは、XMLそれ自体におけるビジネスロジックに加えて、その制御フローも共に含む。しかしながら、この逐次的なフローが、音声対応ソフトウェアの最適化を妨げている。具体的には、VXMLは、通常、動作はそれが発生するにつれて完了することを必要としており、したがって、音声対応ソフトウェアの動作が向上するよう最適化するための能力を残さない。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の実施形態は、音声対応動作とビジネスロジックとを協調的に仲介するための方法、装置、およびプログラム製品を提供することによって、先行技術の不完全性に対処する。方法は、XMLデータを受信するステップと、XMLデータから少なくとも1つのオブジェクトを生成するステップとを含む。方法は、少なくとも1つのオブジェクトが呼び出されたと判定するステップに応答して、オブジェクトの一部により定義された動作を実施するステップをさらに含む。
【０００５】
本発明の実施形態は、ダイアログフローの間に、続けて呼び出され得る音声ダイアログオブジェクトの作成を提供する。このようにして、本発明の実施形態は、音声対応動作とビジネスロジックとの仲介を考慮して、いくつかの動作の前処理、および/またはそれらの動作の並列化を可能にする。したがって、運用能力を犠牲にすることなく、音声対応アプリケーションの効率および動作を高めることができる。これらの効果および他の効果は、以下の図面および詳細な説明に照らして、明らかとなるであろう。
【０００６】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の実施形態を図示し、以上の本発明の一般的な説明および以下の実施形態の詳細な説明と共に、本発明の原理を明らかにするために役立つ。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に適合する、音声クライアントサーバおよび移動システムを含む音声対応システムの概略図である。
【図２】図1の音声クライアントサーバのハードウェアコンポーネントおよびソフトウェアコンポーネントの概略図である。
【図３】移動デバイスおよびそのヘッドセットをさらに示す、図1の移動システムの図である。
【図４】図3の移動デバイスおよびヘッドセットのハードウェアコンポーネントおよびソフトウェアコンポーネントの概略図である。
【図５】図1の音声クライアントサーバに含まれてよい、複数のソフトウェアモジュールの概略図である。
【図６】図1の移動システムに含まれてよい、複数のソフトウェアモジュールの概略図である。
【図７】図1の音声対応システムにおいて実施されてよい、第1の音声ダイアログのグラフィック表現の概略図である。
【図８】図1の音声対応システムにおいて実施されてよい、第2の音声ダイアログのグラフィック表現の概略図である。
【図９】図1の音声対応システムの音声アプリケーションの構成のための動作シーケンスを示すフローチャートである。
【図１０】音声ダイアログへの呼び出しに応答するための、図1の音声対応システムのVoiceArtisanアプリケーションのための動作シーケンスを示すフローチャートである。
【図１１】音声ダイアログに対応した音声ダイアログオブジェクトを作成するための、図1の音声対応システムのVoiceArtisanアプリケーションのための動作シーケンスを示すフローチャートである。
【発明を実施するための形態】
【０００８】
添付の図面は、必ずしも一定の縮尺ではなく、本発明の実施形態の基本原理を説明するさまざまな特徴のいくぶん簡略化した表現を提示していることを理解されたい。たとえば、さまざまな図示されたコンポーネントの固有の寸法、向き、位置、および形状、ならびに固有の動作シーケンス(たとえば、同時発生の動作および/またはシーケンシャルな動作を含む)を含む、本明細書で開示される本発明の実施形態の固有の設計特徴は、特定向けのアプリケーションおよび使用環境によって、ある程度決定されることになる。視覚化および明瞭な理解を促進するために、図示された実施形態のある特徴が、他の特徴に比べて、拡大されている、または変形している可能性がある。
【０００９】
ハードウェアおよびソフトウェア環境
次に、図面全体を通して同様の番号が同様の部品を示している図面を見ると、図1は、本発明の実施形態に適合する音声駆動システム10の概略図である。システム10は、音声クライアントサーバ12(「VCS」12として示す、以下同)と、移動システム16とを含む。VCS12は、スピーチ入力をマシン可読入力に変換し、加えて、インタプリタ型スクリプトベースのビジネスロジックと、音声認識機能およびスピーチ合成機能とを仲介するように構成されている。移動システム16は、インタプリタ型プログラミング言語スクリプトモジュールと他のアプリケーションリソースとを、使用される音声ダイアログのXMLベースの記述により束ねるように構成されている。VCS12および移動システム16の図は、単に説明のためにすぎず、VCS12および/または移動システム16の機能性を、1つのコンポーネントの中にまとめることができることが理解されるであろう。
【００１０】
図2は、本発明の実施形態に適合するVCS12の概略図である。特定の実施形態において、VCS12は、コンピュータ、コンピューティングシステム、コンピューティングデバイス、サーバ、ディスクアレイ、またはプログラマブルデバイスであり、たとえば、マルチユーザコンピュータ、シングルユーザコンピュータ、ハンドヘルドコンピューティングデバイス、ネットワーク化されたデバイス(クラスタ構成におけるコンピュータを含む)、移動電気通信デバイス、ビデオゲームコンソール(または他のゲーミングシステム)などである。したがって、VCS12は、メモリ32に結合された少なくとも1つの中央処理ユニット(CPU)30を含む。各CPU30は、通常、1つまたは複数の物理的に統合された回路デバイスまたはチップの上に配置された回路論理を使用して、ハードウェアにおいて実施される。各CPU30は、1つまたは複数のマイクロプロセッサ、マイクロコントローラ、フィールドプログラマブルゲートアレイ、またはASICであってよく、一方、メモリ32は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、フラッシュメモリ、および/または別のデジタルストレージ媒体を含むことができ、やはり、通常、1つまたは複数の物理的に統合された回路デバイスまたはチップの上に配置された回路論理を使用して実施されてよい。したがって、メモリ32は、VCS12のどこか別の場所に物理的に位置するメモリストレージ、たとえば、少なくとも1つのCPU30における任意のキャッシュメモリ、ならびに、仮想メモリとして使用される任意のストレージ容量、たとえば、マスストレージデバイス34、別のコンピューティングシステム、ネットワークストレージデバイス(たとえば、テープドライブ)、または、ネットワーク18を経由した少なくとも1つのネットワークインターフェース36(「ネットワークI/F」36として示す、以下同)を通してVCS12に結合された別のネットワークデバイス(たとえば、サーバ)上に記憶されるものを含むと考えることができる。
【００１１】
VCS12は、入力/出力デバイスインターフェース38(「I/O I/F」38として示す、以下同)を通して、少なくとも1つの周辺デバイスに結合されている。とりわけ、VCS12は、少なくとも1つのユーザインターフェース40(たとえば、キーボード、マウス、マイクロフォン、および/もしくは他のユーザインターフェースを含む)を通して、ユーザからデータを受信し、および/または、少なくとも1つの出力デバイス42(たとえば、ディスプレイ、スピーカ、プリンタ、および/もしくは別の出力デバイスを含む)を通して、ユーザにデータを出力する。さらに、いくつかの実施形態では、I/O I/F38は、タッチスクリーンディスプレイ(図示せず)などの、ユーザインターフェース40および出力デバイス42の組み合わせとして働くデバイスと通信する。
【００１２】
VCS12は、通常、オペレーティングシステム44の制御下にあり、本発明の実施形態に適合するさまざまなコンピュータソフトウェアアプリケーション、動作シーケンス、コンポーネント、プログラム、ファイル、オブジェクト、モジュールなどを実行する、または別のやり方でそれらに依存する。特定の実施形態において、VCS12は、音声クライアントアプリケーション46を実行する、または別のやり方でそれに依存して、音声ダイアログとビジネスロジックとの協調性を管理する。音声クライアントアプリケーションを、以下では、「VoiceArtisan」アプリケーション46と呼ぶ。VCS12のマスストレージ34は、音声ダイアログデータ構造48と、ログデータ構造50とを含む。VoiceArtisanアプリケーション46はさらに、その動作に関連付けられたデータをログし、そのデータをログデータ構造50の中に記憶することができる。
【００１３】
移動システム16は、音声ダイアログフロー(たとえば、ピックアンドプレース、音声支援動作、または音声主導型動作のためなどの、音声に対応したステップの組)を実施し、スピーチ入力をキャプチャし、ビジネスロジックを実行するように構成されている。VCS12および移動システム16の機能性が分離している実施形態においては、移動システム16はまた、ネットワーク18にわたってVoiceArtisanアプリケーション46と通信するように構成されている。図3は、本発明の実施形態に適合する移動システム16の図である。具体的には、移動システム16は、持ち運び可能な、および/または着用可能なコンピュータもしくはデバイス60(以下、「移動デバイス」60)と、周辺デバイスもしくはヘッドセット62(以下、「ヘッドセット」62)とを含む。図3に示すように、移動デバイス60は、ベルト66の上などで、ユーザ64によって着用される着用可能なデバイスである。代替実施形態において、移動デバイス60は、たとえば、ユーザの前腕で、またはリフトトラック、装着具、または他の輸送のやり方で、持ち運ばれる、または別のやり方で輸送される。
【００１４】
いくつかの実施形態において、コード68を通して移動デバイス60に結合されたヘッドセット62を通して、ユーザ64は、移動デバイス60とインターフェース接続する(および、移動デバイス60は、ユーザ64とインターフェース接続する)。代替実施形態において、ヘッドセット62は、無線ヘッドセットであり、無線信号(図示せず)を通して移動デバイス60に結合される。ヘッドセット62は、スピーカ70と、マイクロフォン72とを含む。スピーカ70は、オーディオ(たとえば、あるアクションを実施するようユーザ64に指示するために、音声ダイアログに関連付けられたスピーチ出力など)を再生するように構成されており、一方、マイクロフォン72は、ユーザ64からのスピーチ入力(たとえば、マシン可読入力への変換のためなど)をキャプチャするように構成されている。したがって、およびいくつかの実施形態において、ユーザ64は、ヘッドセット62を通して、ハンズフリーで移動デバイス60とインターフェース接続する。
【００１５】
図4は、本発明の実施形態に適合する移動デバイス60のコンポーネントの少なくとも一部の概略図である。移動デバイス60は、メモリ82に結合された少なくとも1つの処理ユニット80を含む。各処理ユニット80は、通常、1つまたは複数の物理的に統合された回路デバイスまたはチップに配置された回路論理を使用して、ハードウェアにおいて実施される。各処理ユニット80は、1つまたは複数のマイクロプロセッサ、マイクロコントローラ、フィールドプログラマブルゲートアレイ、またはASICであってよく、一方、メモリ82は、RAM、DRAM、SRAM、フラッシュメモリ、および/または別のデジタルストレージ媒体を含むことができ、メモリ82もまた、通常、1つまたは複数の物理的に統合された回路デバイスまたはチップに配置された回路論理を使用して実施される。したがって、メモリ82は、移動デバイス60のどこかに別の場所に物理的に位置するメモリストレージ、たとえば、少なくとも1つの処理ユニット80における任意のキャッシュメモリ、ならびに、仮想メモリとして使用される任意のストレージ容量、たとえば、マスストレージデバイス、コンピュータ、および/または、ネットワーク18を経由した少なくとも1つのネットワークインターフェース84(「ネットワークI/F」84として示す、以下同)を通して移動デバイス60に結合されることを含めて、移動デバイス60に結合された別のデバイス上に記憶されるものを含むと考えることができる。移動デバイス60は、次いで、少なくとも1つの有線接続および/または無線接続を使用して、ネットワークl/F84を通してネットワーク18に結合する。特定の実施形態において、移動デバイス60は、IEEE 802規格を通して、とりわけ、本技術分野で知られているようなIEEE 802.1 1無線通信規格を通して、ネットワーク18に結合する。
【００１６】
いくつかの実施形態において、移動デバイス60は、ヘッドセット62以外の少なくとも1つの周辺機器と通信するように構成された、少なくとも1つの入力/出力インターフェース86(「I/O I/F」86として示す、以下同)を追加的に含む。そのような周辺機器は、1つまたは複数のトレーニングデバイス(たとえば、それらに結合された移動デバイス60、ヘッドセット62、および/またはシステムを使用するためのトレーニングを通して新しいユーザを指導する)、画像スキャナ、バーコードリーダ、RFIDリーダ、モニタ、プリンタ、ユーザインターフェース、出力デバイス、および/または他の周辺機器(いずれも図示せず)のうちの少なくとも1つを含むことができる。特定の実施形態において、I/O l/F86は、少なくとも1つの周辺機器インターフェースを含み、周辺機器インターフェースは、1つまたは複数のシリアルインターフェース、ユニバーサルシリアルバス(USB)、PCカード、VGA、HDMI（登録商標）、DVI、および/または他のインターフェース(たとえは、他のコンピュータインターフェース、通信インターフェース、データインターフェース、オーディオインターフェース、および/またはビジュアルインターフェース)(いずれも図示せず)のうちの少なくとも1つを含む。移動デバイス60はまた、バッテリ、充電可能なバッテリ、整流器、および/または他の電源などの電力供給部88を含む。移動デバイス60は、電力モニタリング回路90によって、電力供給部88からの電圧をモニタする。いくつかの実施形態において、および電力モニタリング回路90に応答して、電力供給部88からの電力が十分でないと判断されると、移動デバイス60は、潜在的なダメージを防ぐためにシャットダウンする。移動デバイス60は、ヘッドセットインターフェース92(「ヘッドセットI/F」92として示す、以下同)を通して、ヘッドセット62と通信するように構成されており、ヘッドセットインターフェース92は、コード68を通して、および/または無線で、ヘッドセット62に結合するように構成されている。特定の実施形態において、移動デバイス60は、本技術分野で知られているBlueTooth(登録商標)オープン無線技術規格を通して、ヘッドセット62に結合する。
【００１７】
移動デバイス60は、本発明の実施形態に適合するさまざまなソフトウェアアプリケーション、コンポーネント、プログラム、ファイル、オブジェクト、モジュールなど(以下、「プログラムコード」)の制御下にあってよい、および/または、別のやり方でそれらに依存していてよい。このプログラムコードは、オペレーティングシステム94(たとえば、Redmond、WashingtonのMicrosoft Corporationによって販売されるWindows（登録商標） Embedded Compactオペレーティングシステムなど)、ならびに、1つまたは複数のソフトウェアアプリケーション(たとえば、オペレーティングシステムにおいて動作する、または「スタンドアローン」アプリケーションとして動作するように構成されている)を含むことができる。したがって、メモリ82は、ダイアログフローを実施し、ビジネスロジックを実行し、および/または、VoiceArtisanアプリケーション46と通信するように、音声アプリケーション96と共に構成されている。メモリは、移動デバイス60、ヘッドセット62、および/またはユーザ64に関連したデータを記憶するためのデータストア98をさらに含む。
【００１８】
いくつかの実施形態において、本発明を実施するための好適な移動デバイス60は、Pittsburgh、PAのVocollect, Inc.より入手可能なTalkman(登録商標)の着用可能なコンピュータである。移動デバイス60は、文書化および/または通信のためのスピーチ認識技術を使用する音声対応システムにおいて利用される。ヘッドセット62は、ユーザ64と移動デバイス60との間にハンズフリー音声通信を提供する。たとえば、一実施形態において、音声アプリケーション96は、ピックアンドプレース、音声支援動作、または音声主導型動作のためなどの、ダイアログフローを実施する。音声アプリケーション96は、VoiceArtisanアプリケーション46と通信して、音声ダイアログを呼び出す。次いで、音声アプリケーション96は、VoiceArtisanアプリケーション46によって使用可能なデジタルフォーマット(たとえば、マシン可読入力)に続いて変換するために、スピーチ入力をキャプチャすることができる。
【００１９】
図5は、図2のVoiceArtisanアプリケーション46に含まれてよい、複数のアプリケーション、動作シーケンス、コンポーネント、プログラム、ファイル、オブジェクト、モジュールなどの概略図である。いくつかの実施形態において、VoiceArtisanアプリケーション46は、少なくとも1つのタスク実行エンジン100と、移動デバイス通信モジュール102と、コア音声ライブラリ104と、プログラミング言語音声ライブラリ106と、少なくとも1つのテキストトゥスピーチエンジン108と、プログラミング言語インタプリタ110とを含む。少なくとも1つのタスク実行エンジン100は、音声アプリケーション96からのデータを構文解析し、音声ダイアログを実施するかどうかを決定するように構成されている。これは、テキストトゥスピーチエンジン108を利用してスピーチ入力をマシン可読入力に変換すること、または制御を音声アプリケーション96に返してビジネスロジックを実行することを含むことができる。特定の実施形態において、テキストトゥスピーチエンジン108は、音声認識器(図示せず)と共に利用されてよく、音声認識器は、雑音、別の人間のスピーチ入力、および/または他のサウンドとは相対するものとして、そのユーザのスピーチ入力を認識するように構成されている。移動デバイス通信モジュール102は、音声アプリケーション96へのメッセージをフォーマット化し、音声アプリケーション96からのメッセージを構文解析するように構成されている。
【００２０】
図5に戻って参照すると、VoiceArtisanアプリケーションはまた、コア音声ライブラリ104と、プログラミング言語音声ライブラリ106とを含む。具体的には、コア音声ライブラリ104は、複数の音声ダイアログを記憶して、ユーザのために再生するように、および/または、テキストトゥスピーチエンジン108によって利用される少なくとも1つのスピーチ入力テンプレートを記憶して、ユーザのスピーチ入力をマシン可読入力(たとえば、「ボキャブラリ」)に変換するように構成されている。一方、プログラミング言語音声ライブラリ106は、ビジネスロジックを実施するために使用されるデータを記憶し、加えて、音声アプリケーション96によって要求された音声ダイアログを、コア音声ライブラリ104の中の対応する音声ダイアログと突き合わせるように構成されている。プログラミング言語音声ライブラリ106の中のデータは、プログラミング言語インタプリタ110と併せて使用されてよい。特定のプログラミング言語は、ユーザの要件に応じて異なってよいが、1つの例示的なプログラミング言語は、Wolfeboro Falls、NHのPython Software Foundationによって開発されたPython(登録商標)プログラミング言語を含むことができる。
【００２１】
図6は、図4の音声アプリケーション96に含まれてよい、複数のアプリケーション、動作シーケンス、コンポーネント、プログラム、ファイル、オブジェクト、モジュールなどの概略図である。いくつかの実施形態において、VoiceArtisanアプリケーション46は、少なくとも1つのダイアログフローモジュール120と、少なくとも1つのリソース122と、少なくとも1つのプログラミング言語スクリプト124とを含む。少なくとも1つのダイアログフローモジュール120は、ユーザのための少なくとも1つのダイアログフローを定義する。そのようなダイアログフローは、ピックアンドプレース、音声支援動作、または音声主導型動作で典型的に使用される。たとえば、ダイアログフローは、呼び出されることになる音声ダイアログを示すことができる、および/または、特定のビジネスイベントシーケンス(以下、「ビジネスロジック」)が実行されることになるのを示すことができる。また、たとえば、限定することを意図せずに、そのようなビジネスロジックは、マシン可読入力に基づいたアクションを実施するかどうか決定すること、ユーザからの入力に基づいたアクションを実施するかどうかを決定すること、ユーザまたは別のシステムと対話するかどうかを決定すること、スピーチ入力のマシン可読入力への変換以外のなんらかのアクションを実施するかどうか決定すること、ならびに他のビジネスロジックを含むことができる。一方、少なくとも1つのリソース122は、ユーザに提供することができる、画像、サウンドファイル、または他のデータを含む。たとえば、リソース122は、表示するための特定の画像、発話するための特定のスピーチ出力、音を出すための特定のサウンドトーン(たとえば、音声アプリケーション96がスピーチ入力のための準備ができたことを示す)、および/または、ダイアログフローを実施するのに必要となることがある他のデータを含むことができる。一方、プログラミング言語スクリプト124は、ビジネスロジックを実行するための一群の特定のプログラミング言語を含み、通常、クライアントによって開発される。
【００２２】
当業者は、図1〜図6に図示した環境が、本発明の実施形態の範囲を限定する意図がないものであると認識するであろう。とりわけ、VCS12および/または移動システム16は、より少ないコンポーネント、もしくは追加のコンポーネント、または本発明の代替実施形態に適合する代替の構成を含むことができる。具体的には、VoiceArtisanアプリケーション46および音声アプリケーション96は、別々のシステム上に構成されなくてもよく、代替実施形態においては、両方が、VCS12および/または移動システム16のどちらの上に構成されてもよい。代替の移動システム16がまた、本発明の実施形態に適合して使用されてもよい。たとえば、移動システム16は、無線で通信する移動デバイス60およびヘッドセット62を含むことができる。また、たとえば、移動システム16は、単一の内蔵型ユニットに互いに組み込まれた移動デバイス60およびヘッドセット62を含むことができる。したがって、単一の内蔵型移動システムが、ユーザ64の頭部に着用されてもよい。
【００２３】
このようにして、当業者は、他の代替ハードウェアおよび/またはソフトウェア環境が、本発明の範囲から逸脱することなく、使用されてよいことを認識するであろう。たとえば、音声クライアント46および/または音声アプリケーション96は、より少ないモジュールで、または追加のモジュールで構成されてもよく、一方、マスストレージ34および/またはメモリ32は、より少ないデータ構造、または追加のデータ構造で構成されてもよい。加えて、当業者は、VCS12および/または移動システム16が、そこに配置されるより多いアプリケーション、またはより少ないアプリケーションを含むことができることを理解するであろう。したがって、他の代替ハードウェアおよびソフトウェア環境は、本発明の実施形態の範囲から逸脱することなく、使用されてよい。
【００２４】
さらに、当業者は、XML、Python、音声ダイアログ、ビジネスロジックインスタンス、プログラミング言語、スピーチ入力、およびマシン可読入力などの、さまざまなデータを記述するために使用される専門用語が、単に区別する目的で使用されており、限定することを意図しないことを理解するであろう。
【００２５】
本発明の実施形態を実施するために実行されるルーチンは、オペレーティングシステムの一部として実施されるのであれ、または、1つもしくは複数のコンピューティングシステムによって実行される特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、もしくは命令のシーケンスとして実施されるのであれ、本明細書では、「動作シーケンス」、「プログラム製品」、または単に、「プログラムコード」と呼ぶことにする。プログラムコードは、通常、1つまたは複数の命令を含み、命令は、コンピューティングシステム(たとえば、VCS12および/または移動システム16)のさまざまなメモリおよびストレージデバイスに、さまざまな時間において常駐し、それが、コンピューティングシステムの1つまたは複数のプロセッサによって読み込まれ、実行されるときに、コンピューティングシステムに必要なステップを実施させて、本発明のさまざまな態様を具体化するステップ、要素、および/またはブロックを実行する。
【００２６】
本発明は、完全に機能するコンピューティングシステムのコンテキストにおいて説明されており、かつ以下で説明されることになるが、当業者は、本発明のさまざまな実施形態が、さまざまな形態におけるプログラム製品として配布されることが可能であること、および、実際にその配布を実行するために使用される特定のタイプのコンピュータ可読媒体にかかわらず、本発明が等しく適用されることを理解するであろう。コンピュータ可読媒体の例としては、限定はせずに、揮発性および不揮発性のメモリデバイス、フロッピー（登録商標）、および他のリムーバブルディスク、ハードディスクドライブ、光学ディスク(たとえば、CD-ROM、DVD、その他)などの、物理的かつ有形な記録可能なタイプの媒体がとりわけ含まれる。
【００２７】
加えて、以下で説明するさまざまなプログラムコードは、それが本発明の特定の実施形態において実施される範囲内のアプリケーションまたはソフトウェアコンポーネントに基づいて、識別されてよい。しかしながら、以下の任意の特定のプログラムの呼び名は、単に便宜上使用され、したがって、本発明が、そのような呼び名によって識別される、および/または示唆される任意の特定のアプリケーションにおける使用だけに限定されるべきではないことを理解されたい。さらに、コンピュータプログラムを、ルーチン、手続き、メソッド、モジュール、オブジェクトなどに編成することができる典型的に無数のやり方、ならびにプログラムの機能性を、典型的なコンピュータ内に常駐するさまざまなソフトウェア層(たとえば、オペレーティングシステム、ライブラリ、API、アプリケーション、アプレットなど)の中で割り当てることができるさまざまなやり方を考えれば、本発明が、本明細書で説明される特定の編成およびプログラムの機能性の割り当てに限定されないことを理解すべきである。
【００２８】
ソフトウェアの記述とフロー
一般に、ダイアログフローは、ユーザによって作成され、ピックアンドプレース、音声支援動作、または音声主導型動作などの音声対応動作のための、音声ダイアログおよび/またはビジネスロジックを定義する。ユーザは、開発環境上でダイアログフローをグラフィカルに定義し、その中で音声ダイアログおよび/またはビジネスロジックをさらにグラフィカルに定義する。ダイアログフローが構築されるとき、開発環境は、音声アプリケーションのためのPythonスクリプト、ならびにVoiceArtisanアプリケーションのためにそのPythonスクリプトにおいて呼び出された音声ダイアログに対応したXMLデータを生成する。VoiceArtisanアプリケーションは次いで、XMLデータを解析して、そのXMLデータにおいて定義された音声ダイアログに対応した音声ダイアログオブジェクトを作成する。音声ダイアログが音声アプリケーションによって呼び出されるとき、VoiceArtisanアプリケーションは、対応する音声ダイアログオブジェクトを実行して、その音声ダイアログに関連付けられた関数を実施する。
【００２９】
いくつかの実施形態において、音声ダイアログは、ノードおよび遷移リンクを含むステートマシンを定義し、ノードおよび遷移リンクは、少なくとも1つのスピーチ出力および/またはビジネスロジックを定義する。各ノードは、ステートマシンのステートを表し、一方、各リンクは、ステート間の遷移である。限定することを意図せず、遷移のタイプには、デフォルトリンク(ここでは、即時の、無条件の遷移が存在する)、ボキャブラリリンク(ここでは、話されたボキャブラリワードまたはフレーズの認識に基づいた遷移が存在する)、および条件リンク(ここでは、遷移は特定の条件の真実に基づく)のうちの少なくとも1つを含むことができる。音声ダイアログは、ノードまたはリンクのコールバックメソッドを介して、ビジネスロジックに接続される。
【００３０】
たとえば、図7は、複数のノード、およびノード間のリンクを示す、第1の音声ダイアログ200のグラフィック表現の概略図である。具体的には、第1の音声ダイアログ200のグラフィック表現は、ユーザが音声ダイアログを構築するときに、見ることができるビューの一実施形態を示している。第1の音声ダイアログ200は、リンク206に基づいて第2のノード204に遷移する第1のノード202を含む。第1の音声ダイアログ200は、本発明の実施形態に適合する音声アプリケーションによって呼び出されてよい。とりわけ、第1のノード202が登録されるとき、ワード「At State One」が話される。ステートマシンは、ボキャブラリリンク206において、ユーザがワード「準備よし」を言うのを待つ。それが行われると、ステートマシンは、第2のノード204に遷移して、ワード「At State Two」が話される。その時点で、第1の音声ダイアログ200は終了する。
【００３１】
いくつかの実施形態において、第1のノード202および/または第2のノード204は、それぞれ「on entry」関数を指定されてよい。したがって、第1のノード202は、「first_dialog_state_one()」を呼び出される「on entry」関数(たとえば、そのノードが登録されるときに、「At State One」を規定するために、第1の音声ダイアログ200の第1のノード202のための音声ダイアログが存在することを示す)を指定されてよく、一方、第2のノード204は、「first_dialog_state_two()」を呼び出される「on entry」関数(たとえば、そのノードが登録されるときに、「At State Two」を規定するために、第1の音声ダイアログ200の第2のノード204のための音声ダイアログが存在することを示す)を指定されてよい。
【００３２】
また、たとえば、図8は、複数のノード、およびノード間のリンクを示す第2の音声ダイアログ210のグラフィック表現の概略図である。やはり、第2の音声ダイアログ210は、リンク216に基づいて第2のノード214に遷移する第1のノード212を含み、本発明の実施形態に適合した音声アプリケーションによって呼び出されてよい。第1のノード212が登録されるとき、ワード「At First State」が話される。しかしながら、ステートマシンは、「second_dialog_condition()」関数が「True」に戻るまで、条件リンク206において無期限に待つ。「second_dialog_condition()」関数が「True」に戻るとき、ステートマシンは第2のノード204に遷移し、ワード「At State Two」が話される。その時点で、第2の音声ダイアログ210は終了する。第1の音声ダイアログ200と同様に、第2の音声ダイアログ210の第1のノード212または第2のノード214もまた、上で説明したような、それぞれの「on entry」関数に関連付けられていてよいことが理解されるであろう。
【００３３】
本発明の実施形態に適合して、第1の音声ダイアログ200および/または第2の音声ダイアログ210は、音声アプリケーションによって呼び出されてよい。とりわけ、第1の音声ダイアログ200および/または第2の音声ダイアログ210は、音声アプリケーションによって実行されるダイアログフローの「main()」関数によって呼び出されてよい。具体的には、ダイアログフローが構築されるとき、作成される少なくとも2つのファイルが存在する。最初のファイルは、音声アプリケーションによって実行されるダイアログフローのための擬似コードである。この擬似コードは、音声ダイアログおよび/またはビジネスロジックへの呼び出しを含む。2番目のファイルは、音声ダイアログおよび/またはそれに関連付けられた固有のビジネスロジックを定義するXMLデータを含む。以下のコード一覧1は、音声アプリケーションによって実施されてよいダイアログフローのためのPython擬似コードの一実施形態を示しており、コードは、第1の音声ダイアログ200および第2の音声ダイアログ210の使用を示し、ビジネスロジックの使用もまた示す「main()」関数を含む。
【００３４】
♯これは音声アプリケーションのためのドライバモジュールである。
import voice
♯これは音声アプリケーションのためのドライバ関数である。
def main():
♯所望により、追加のアプリケーションスタートアップロジックをここに追加せよ
♯ここで、first_dialogを走らせよ
d = voice. Dialog('first_dialog')
d.run()
♯ダイアログが完了するとき、制御はここに戻る
♯所望により、追加のビジネスロジックをここで実行せよ
♯ここで、second dialogを走らせよ
d = voice. Dialog("second_dialog")
d.run()
♯ダイアログが完了するとき、制御はここに戻る
♯所望により、追加のビジネスロジックをここで実行せよ
♯ビジネスロジックが完了するとき、プログラムは終了する
♯これは、first_dialogにおいて開始Nodeに付けられた関数である
def first_dialog_state_one():
♯この関数のビジネスロジックは、
♯音声ダイアログステートマシンが
♯ first_dialogにおいて開始ノードを登録するとき、実行される
pass
♯これは、first_dialogにおいてNode2に付けられた関数である
def first_dialog_state_two():
♯この関数のビジネスロジックは、
♯音声ダイアログステートマシンが
♯ first_dialogにおいてノードNode2を登録するとき、実行される
pass
♯これは、second_dialogにおいて
♯条件リンクに付けられた関数である
def second_dialog_condition():
♯この関数のビジネスロジックは、条件リンクを介して
♯second_dialogが、開始ノードからNode2ノードへの
♯遷移を試みるとき、実行される。
♯この関数は、遷移が行われる時点で
♯真値に戻るまで繰り返し呼び出される
return True
コード一覧1:例示的な「main()」関数
【００３５】
したがって、コード一覧1から明らかなように、制御は、音声ダイアログならびにビジネスロジックの間を行ったり来たりして渡される。とりわけ、コード一覧1は、「first_dialog」を走らせる「main()」関数において実行が開始されることを示している。「first_dialog」の実行中に、実行される「first_dialog_state_one()」関数および「first_dialog_state_two()」関数への呼び出しがある。「first_dialog」関数が終了した後で、制御は、「main()」関数に戻って、必要であれば、ビジネスロジックを実施する。「main()」関数は次いで、その中で「second_dialog_condition()」関数への少なくとも1つの呼び出しが実行される「second_dialog」関数を走らせる。「second_dialog」関数が終了した後で、制御は、やはり「main()」関数に戻って、必要であれば、ビジネスロジックを実施する。「main()」関数が完了するとき、音声アプリケーションは終了する。
【００３６】
次いでXMLデータが、VoiceArtisanアプリケーションのタスク実行エンジンによって使用されて、音声ダイアログを表す音声ダイアログオブジェクトを組み立てることができる。とりわけ、VoiceArtisanアプリケーションは、XMLデータを構文解析し、音声ダイアログの当然の結果として、音声ダイアログオブジェクトをC++で構築することができる。音声ダイアログが音声アプリケーションによって呼び出されるとき、音声ダイアログが実施される。具体的には、コード一覧2が、コード一覧1によって呼び出された音声ダイアログおよび/またはビジネスロジックについてのデータを含むXMLデータの一実施形態を示している。
【００３７】
【数１】
2013544409.tif 000003
【００３８】
コード一覧2:音声ダイアログおよび/またはビジネスロジックについてのXML表現
【００３９】
このようにして、XML表現は、それがスピーチ出力の提供であるにせよ、スピーチ認識の実施であるにせよ、または他のアクションの実行であるにせよ、VoiceArtisanアプリケーションに、音声ダイアログについて対応するアクションを実施するように指示する。スピーチ出力の後で、VoiceArtisanは、制御を音声アプリケーションに返して、遷移リンクによって定義されたビジネスロジックなどの、ビジネスロジックを実施することができる。したがって、VoiceArtisanアプリケーションと音声アプリケーションとの対話により、2つをまたぐ機能の抽出が可能になる。しかしながら、VoiceArtisanアプリケーションの機能性への直接アクセスが妨げられて、そのセキュリティを維持する。
【００４０】
上で詳述したように、本発明の実施形態は、音声対応システムのために、とりわけ、ピックアンドプレース、音声支援、および/または音声主導型動作のために、音声ダイアログとビジネスロジックとを調和させるように使用されてよい。たとえば、音声アプリケーションのためのダイアログフローは、音声ダイアログへの呼び出しを規定することができる。音声ダイアログは、ダイアログフローにおける音声オブジェクトに相関した音声ダイアログオブジェクトを既に作成しているVoiceArtisanアプリケーションによって認識される。VoiceArtisanアプリケーションは、音声ダイアログが呼び出されるときにそれを実行する。同時に、音声ダイアログまたはダイアログフローのいずれかに関連付けられた情報に基づいて、ビジネスロジックが、音声アプリケーションおよび/またはVoiceArtisanアプリケーションによって実施されてよい。
【００４１】
図9は、本発明の実施形態に適合する、音声アプリケーションによってその構成について実行される動作シーケンスを示すフローチャート220である。とりわけ、音声アプリケーションは、それがVoiceArtisanアプリケーションと通信しているかどうか、または別のやり方で通信するかどうかを判定する(ブロック222)。具体的には、音声アプリケーションは、最初に、VoiceArtisanアプリケーションがインストールされて、その音声アプリケーションと同じコンピューティングシステム上で動いているかどうか、および/または、VoiceArtisanアプリケーションがインストールされて、音声アプリケーションが通信しているコンピューティングシステム上で動いているかどうかを判定する。音声アプリケーションがVoiceArtisanアプリケーションと通信していないとき(判定ブロック222の「いいえ」分岐)、動作シーケンスは終了してよい。あるいは、および図示されないブロックにおいて、音声アプリケーションがVoiceArtisanアプリケーションと通信していないとき、音声アプリケーションは、VoiceArtisanアプリケーションと通信するためのVoiceArtisanアプリケーションのインスタンスを開始して、その後ブロック222に戻ることができる。
【００４２】
音声アプリケーションがVoiceArtisanアプリケーションと通信しているとき(判定ブロック222の「はい」分岐)、音声アプリケーションは、メモリから、実施するための少なくとも1つのダイアログフローを決定する(ブロック224)。音声アプリケーションが実施するためのいずれのダイアログフローも決定しないとき(判定ブロック226の「いいえ」分岐)、動作シーケンスは終了してよい。
【００４３】
特定の実施形態において、各ダイアログフローは、XMLにおいて定義され、ビジネスロジック、ならびに音声ダイアログへの少なくとも1つの呼び出しを含む。さらに、ダイアログフローは、音声ダイアログと利用される特定のボキャブラリワードに加えて、そのダイアログフローと使用される特定のボキャブラリワードを定義することができる。したがって、音声アプリケーションが、実行するための少なくとも1つのダイアログフローが存在すると判定するとき(判定ブロック226の「はい」分岐)、音声アプリケーションは、そのダイアログフローに関連付けられたすべてのワードがスピーチ入力からマシン可読入力へと変換するために利用可能であるかどうか、その逆もまた同様であるかどうか(たとえば、テキストトゥスピーチエンジンおよび/もしくは音声認識器が特定のワードをマシン可読入力に変換できるかどうか、および/または、テキストトゥスピーチエンジンおよび/もしくは音声認識器が「トレーニングされた」ように、特定のワードをスピーチ出力に変換できるかどうか)を判定する(ブロック228)。ダイアログフローについてのすべてのワードがトレーニングされていないとき(判定ブロック228の「いいえ」分岐)、音声アプリケーションは、その1つおよび/もしくは複数のワードに関連付けられたスピーチ入力をキャプチャして、テキストトゥスピーチエンジンおよび/または音声認識器をトレーニングすることができる(ブロック230)。ダイアログフローについてのすべてのワードがトレーニングされたとき(判定ブロック228の「はい」分岐、または判定ブロック230)、音声アプリケーションは、そのダイアログフローに関連付けられたメインモジュールの位置を特定し、ダイアログフローを実行する(ブロック232)。
【００４４】
図10は、本発明の実施形態に適合する、音声ダイアログへの呼び出しに応答するためのVoiceArtisanアプリケーションの動作シーケンスを示すフローチャート240である。具体的には、VoiceArtisanアプリケーションが、音声アプリケーションに関連付けられたスクリプトからの音声ダイアログへの呼び出しを受信し、音声アプリケーションから動作の制御を取ることができる(ブロック242)。次いで、VoiceArtisanアプリケーションは、呼び出された音声ダイアログに対応した音声ダイアログオブジェクトを決定し(ブロック244)、音声ダイアログの第1のノードを実行して、要求された音声ダイアログに関連付けられたスピーチ出力を音声アプリケーションに送り返す、および/または(たとえば、音声ダイアログがスピーチ入力に関連付けられていないときには)音声ダイアログによって定義されたアクションを実施する(ブロック246)。
【００４５】
音声ダイアログにおいて、ノードは、リンクによって1つのノードから別のノードへ遷移することができ、リンクは、デフォルトリンク、ボキャブラリリンク、または条件リンクを含むことができる。特定のスピーチ出力に関連付けられたリンクがない場合(判定ブロック248の「いいえ」分岐)、動作シーケンスは終了する。しかしながら、特定のスピーチ出力に関連付けられたリンクがある場合(判定ブロック248の「はい」分岐)、VoiceArtisanアプリケーションは、そのリンクが条件リンク(たとえば、自動リンク)であるかどうかを判定する(ブロック250)。条件リンクにおいては、そのリンクに関連付けられた条件が真であるときに、1つのノードから別のノードへの遷移が存在する。したがって、条件リンクが存在するとき(判定ブロック250の「はい」分岐)、VoiceArtisanアプリケーションは、そのリンクに関連付けられた条件が真であるときに、次のノードへと遷移し(ブロック252)、動作シーケンスはブロック248に戻る。
【００４６】
しかしながら、リンクが条件リンクではないとき(判定ブロック250の「いいえ」分岐)、VoiceArtisanアプリケーションは、リンクがボキャブラリリンクであるかどうかを判定する(ブロック254)。リンクがボキャブラリリンクであるとき(判定ブロック254の「はい」分岐)、VoiceArtisanアプリケーションは、話されたボキャブラリワードまたはフレーズの認識に基づいて、次のノードへと遷移する。したがって、特定のボキャブラリワードまたはフレーズが話されたとき、VoiceArtisanアプリケーションは、次のノードへと遷移して、別の音声ダイアログを送信する、および/またはビジネスロジックを実施して(ブロック256)、ブロック248に戻る。しかしながら、リンクがボキャブラリリンクではないとき(判定ブロック254の「いいえ」分岐)、リンクは、デフォルトリンクである可能性がある。デフォルトリンクにおいては、1つのノードから別のノードへの即時の、無条件の遷移が存在する。したがって、VoiceArtisanアプリケーションは、次のノードへと遷移して、別の音声ダイアログを送信する、および/またはビジネスロジックを実施して(ブロック258)、ブロック248に戻る。
【００４７】
いくつかの実施形態において、ダイアログフローおよび/または音声ダイアログによって定義された特定の動作に応じて、ダイアログフローの制御は、音声アプリケーションとVoiceArtisanアプリケーションとの間でハンドオフされてよい。たとえば、音声ダイアログのボキャブラリリンクは、ユーザが特定のワードまたはフレーズを言うときに遷移が行われることを示すことができる。音声アプリケーションは、制御を取ってユーザのスピーチ入力をキャプチャし、マシン可読入力への変換のために、制御をVoiceArtisanアプリケーションに提供する。VoiceArtisanアプリケーションは、スピーチ入力をマシン可読入力に変換し、次いでそのマシン可読入力を音声アプリケーションに再び提供して、規定されたワードまたはフレーズがユーザによって話されたかどうかを判定する。したがって、音声アプリケーションは、次のノードへと遷移するかどうかを示す。また、たとえば、条件リンクは、特定のバーコードが走査される、および/または特定のボタンが押下されるときに遷移が行われることを示すことができる。しかしながら、条件が真であるかどうかの判定は、音声アプリケーションによって決定される。
【００４８】
図11は、本発明の実施形態に適合する、音声ダイアログオブジェクトを作成するためのVoiceArtisanアプリケーションの動作シーケンスを示すフローチャート260である。VoiceArtisanアプリケーションは、最初に、ダイアログフローに関連付けられたXMLデータがメモリの中に存在するかどうかを判定する(ブロック262)。ダイアログフローに関連付けられたXMLデータが存在するとき(判定ブロック262の「はい」分岐)、VoiceArtisanアプリケーションは、そのXMLデータを構文解析し、そこから少なくとも1つの音声ダイアログオブジェクトを作成する(ブロック264)。特定の実施形態において、VoiceArtisanアプリケーションは、音声ダイアログデータを表す音声ダイアログの当然の結果としてC++を作成する。したがって、呼び出されるとき、VoiceArtisanアプリケーションは、その音声ダイアログによって定義された動作のうちの少なくともいくつかを実施することができる。ダイアログフローに関連付けられたXMLデータが存在しないとき(判定ブロック262の「いいえ」分岐)、または少なくとも1つの音声ダイアログオブジェクトを作成した後で(ブロック264)、動作シーケンスは終了してよい。
【００４９】
本発明をさまざまな実施形態および例を説明することによって示し、これらの実施形態をかなり詳細に説明してきたが、添付の特許請求の範囲をそのような詳細に制限する、またはどのようなやり方で限定することも、出願人の意図するところではない。追加の利点および修正形態は、当業者には容易に明らかであろう。たとえば、音声ダイアログは、示されたノードおよび遷移リンクよりも多い、またはより少ないノードおよび遷移リンクを含むことができる。とりわけ、音声ダイアログのノードは、複数の遷移リンク(たとえば、複数のボキャブラリリンクまたは条件リンク)を通して複数のノードに接続されてよい。遷移された先の特定のノードは、したがって、そのノードへの遷移に使用される特定のリンク(たとえば、ワード、フレーズ、または条件)に依存していてよい。さらに、音声ダイアログは、必ずしもスピーチ出力を含む必要はなく、代わりに、アクション(たとえば、スピーチ入力を待つなど)またはビジネスロジックを含むことができる。
【００５０】
さらに、当業者は、音声アプリケーションおよびVoiceArtisanアプリケーションが、協調的なやり方で動作することを理解するであろう。したがって、音声アプリケーションおよびVoiceArtisanアプリケーションは、同じコンピューティングシステム上で実行されてよく、特定の実施形態においては、音声アプリケーションは、VoiceArtisanアプリケーションの仮想コンポーネントとして動くこともできる。それゆえ、音声アプリケーションおよびVoiceArtisanアプリケーションについての特定の呼び名は、単に区別するための目的であって、限定することを意図しない。このように、そのより広い態様における本発明は、したがって、示され、説明された特定の詳細、装置、および方法には限定されない。当業者は、上のフローチャートのブロックのうちのいずれかが、本発明の実施形態の原理に従って、削除され、増やされ、別のブロックと同時に行われ、組み合わされ、または別のやり方で変更されてもよいことを理解するであろう。したがって、出願人の全体的な発明の概念の範囲から逸脱せずに、そのような詳細から外れることが可能である。
【符号の説明】
【００５１】
10  音声駆動システム
12  音声クライアントサーバ
16  移動システム
18  ネットワーク
30  中央処理ユニット
32  メモリ
34  マスストレージデバイス
36  ネットワークインターフェース
38  入力/出力デバイスインターフェース
40  ユーザインターフェース
42  出力デバイス
44  オペレーティングシステム
46  音声クライアントアプリケーション、VoiceArtisanアプリケーション
48  音声ダイアログデータ構造
50  ログデータ構造
60  移動デバイス
62  ヘッドセット
64  ユーザ
66  ベルト
68  コード
70  スピーカ
72  マイクロフォン
80  処理ユニット
82  メモリ
84  ネットワークインターフェース
86  入力/出力インターフェース
88  電力供給部
90  電力モニタリング回路
92  ヘッドセットインターフェース
94  オペレーティングシステム
96  音声アプリケーション
98  データストア
100  タスク実行エンジン
102  移動デバイス通信モジュール
104  コア音声ライブラリ
106  プログラミング言語音声ライブラリ
108  テキストトゥスピーチエンジン
110  プログラミング言語インタプリタ
120  ダイアログフローモジュール
122  リソース
124  プログラミング言語スクリプト
200  第1の音声ダイアログ
202  第1のノード
204  第2のノード
206  リンク
210  第2の音声ダイアログ
212  第1のノード
214  第2のノード
216  リンク
【図１】
2013544409.tif 000004
【図２】
2013544409.tif 000005
【図３】
2013544409.tif 000006
【図４】
2013544409.tif 000007
【図５】
2013544409.tif 000008
【図６】
2013544409.tif 000009
【図７】
2013544409.tif 000010
【図８】
2013544409.tif 000011
【図９】
2013544409.tif 000012
【図１０】
2013544409.tif 000013
【図１１】
2013544409.tif 000014
【国際調査報告】
2013544409.tif 000015
2013544409.tif 000016