(57)【要約】コンピュータソフトウェア製品（２００）を用いて、人間とコンピュータとの間のダイアログを可能にするためのアプリケーションを作成する。ソフトウェア製品は、開発者が、ダイアログフローインタープリタ（２３２）への一般化命令を明記できるようにすることにより、時間がかかりかつ技術的に難しいプログラミングタスクからソフトウェア開発者を解放するプログラミングツール（２１０）を提供する。ダイアログフローインタープリタ（２３２）は、スピーチアプリケーションを実現する機能を呼出して、他のアプリケーションに利用可能なダイアログオブジェクトを自動的にライブラリ（５４０）に入れる。ＤＦＩによって作成されたスピーチアプリケーションは、ＣＯＭ（コンポーネントオブジェクトモデル）オブジェクトとして実現され得るため、アプリケーションをさまざまな異なるプラットフォームに容易に統合することができる。さらに、「トランスレータ」オブジェクトクラスを設けて、通貨、数値データ、日付、時間、列変数などの特定のタイプのデータを扱う。これらのトランスレータオブジェクトクラスは、ＤＦＩライブラリの一部、または、ダイアログ実現とは別個のサブライブラリのいずれかとしてのユーティリティを有する。【特許請求の範囲】
【請求項１】
人間とコンピュータとが対話できるようにする、コンピュータ上で実行するための、ダイアログによって使用可能にされるアプリケーションを開発する方法であって、
（ａ）会話フローを特定する命令を設計ツールに入力するステップを含み、前記設計ツールはデータファイルを作成し、前記データファイルは、人間−コンピュータ間の、スピーチで使用可能にされる対話を実現するため、プロンプト、応答、ブランチおよび会話フローに関する情報を含み、さらに、
（ｂ）前記アプリケーション内でインタープリタオブジェクトを具現化するステップを含み、前記インタープリタオブジェクトは、データファイルを解釈して、前記データファイルが規定する、人間−コンピュータ間のダイアログによって使用可能にされる対話を提供する、方法。
【請求項２】
前記データファイルは、音声認識エンジンに関する情報をさらに含む、請求項１に記載の方法。
【請求項３】
前記データファイルは自動的に保存される、請求項１に記載の方法。
【請求項４】
前記命令を入力するステップはグラフィカルインターフェースを通して行われる、請求項１に記載の方法。
【請求項５】
人間とコンピュータとが対話できるようにする、コンピュータ上で実行するための、ダイアログで使用可能にされるソフトウェアを開発するためのシステムであって、
会話フローを特定する命令を受入れるための設計ツールを含み、前記設計ツールはデータファイルを作成し、さらに
前記データファイルを解釈するためのインタープリタを含み、前記インタープリタは人間とコンピュータとの対話を自動的に可能にする、システム。
【請求項６】
前記システムはライブラリをさらに含み、ライブラリは前記データファイルを含む、請求項５に記載のシステム。
【請求項７】
設計ツールはグラフィカルインターフェイスをさらに含む、請求項５に記載のシステム。
【請求項８】
コンピュータが実行可能な命令を含むコンピュータ読み取り可能記録媒体であって、命令はコンピュータに、
人間とコンピュータとの間の会話フローを特定する命令を受け入れるステップと、
インタープリタに入力するためのデータを生成するステップと、
前記データファイルを解釈するステップと、
人間とコンピュータとのダイアログによって使用可能にされる対話を提供するステップとを実行させる、コンピュータ読み取り可能な記録媒体。
【請求項９】
他のソフトウェア開発者が一般化コードに即座にアクセスできるようにする命令をさらに含む、請求項８に記載のコンピュータ読み取り可能な記録媒体。
【請求項１０】
人間とコンピュータとの間でダイアログを行うための、コンピュータで実現されるシステムで用いるためのダイアログフローインタープリタ（ＤＦＩ）であって、ＤＦＩは、人間−コンピュータ間のダイアログを実現するための、プロンプト、応答、ブランチおよび会話フローに関する情報を含むデータファイルを読出すためのコンピュータ実行可能な命令と、共有オブジェクトのライブラリと組合わせて前記情報を用いて前記ダイアログを行うためのコンピュータ実行可能なコードとを含む、ダイアログフローインタープリタ。
【請求項１１】
前記ＤＦＩは、ＤＦＩに加えて、言語インタープリタ、認識エンジンおよび音声入出力装置を含むアプリケーションで実現される、請求項１０に記載のＤＦＩ。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、一般的には、スピーチで使用可能にされる対話型音声応答（ＩＶＲ）システムおよび人間とコンピュータとの間のダイアログに関わる同様のシステムに関する。より特定的には、この発明は、特定のタイプのデータ（たとえば、通貨、日付、列変数など）を扱うためのトランスレータオブジェクトクラスはもちろん、ダイアログの低レベルディテールを実現するためのダイアログフローインタープリタ開発ツールを提供する。
【０００２】
【発明の背景】
コンピュータは、我々の日常生活の至るところに見られるようになった。今日、コンピュータは、単なる計算を超える役割を行っている。すなわち、スーパーマーケットのスキャナは、店舗の在庫を調べながら食料品の金額を計算し；コンピュータ化された電話交換センターは何百万もの通話を管理し；自動預払機（ＡＴＭ）は、ほぼどこからでも人々が銀行取引を行えるようにする、などである。大部分の人々にとって、何らかの方法でコンピュータと対話しない日が一日でもあるとは想像しにくい。
【０００３】
以前は、コンピュータのユーザは、キーボードもしくはマウスまたはより最近では電話機のプッシュトーン（デュアルトーンマルチフリーケンシ、すなわちＤＴＭＦと称する）により、コンピュータに従ってコンピュータと対話しなければならなかった。しかし、コンピュータとの対話はより容易でかつより使いやすくなる傾向にある。コンピュータと人間との間の対話をより容易にする１つの方法は、話し言葉によって人間とコンピュータとが対話できるようになることである。
【０００４】
人間とコンピュータとの間のダイアログを可能にするため、まずコンピュータは、話し言葉を検知し、それを、単純なテキストなどの何らかのコンピュータ読み取り可能なデータの形態に変換する音声認識能力を必要とする。次に、コンピュータはコンピュータ読み取り可能なデータを解析し、それらの言葉がどういう意味で用いられたのかを判断する何らかの方法を必要とする。高レベルの、スピーチで作動させられるアプリケーション、音声で作動させられるアプリケーション、または、自然言語理解アプリケーションは、典型的に、ユーザとアプリケーションをホストするコンピュータシステムとの間で段階的に話されるダイアログを行うことによって作動する。従来の方法を用いると、そのような高レベルアプリケーションの開発者は、可能な各ダイアログおよび各ダイアログの各段階を実現するソースコードを特定する。エラー強さのあるアプリケーションを実現するため、開発者は、ソフトウェアにおいて、可能な各プロンプトに対する可能な各ユーザ応答を、たとえそのような応答が予期されたものであってもなくても、予想し、かつ、扱う。そのような低レベルディテールを扱う高レベル開発者にかかる負担はかなり大きい。
【０００５】
スピーチで使用可能にされるアプリケーションに対する要求が高まるにつれ、開発リソースに対する要求も高まっている。現在、スピーチで使用可能にされるアプリケーションに対する要求は、アプリケーションをコード化するのに利用可能な開発リソースを超えている。また、アプリケーションを書くのに必要な専門知識を持つ開発者に対する要求も、その専門知識を持つ開発者の許容能力を超えている。したがって、対話型スピーチアプリケーションを開発するプロセスを単純化し、かつ、促進する必要性が存在する。
【０００６】
スピーチで使用可能にされるアプリケーションを開発し、かつ、これらのシステムを開発するのに必要なスキルレベルを上げるのにかかる時間の長さに加え、スピーチで使用可能にされるアプリケーション開発の現在のモードのそれ以上の欠点は、ベンダーに固有であること、すなわち、ベンダーが変わるとコードの再利用が大きく阻害されてしまうことと、特定用途向けであること、すなわち、既に書かれたコードを別のアプリケーションに再利用することができないこととである。したがって、ベンダーから独立したシステムと、再利用可能なコードとを作成可能にする必要性もある。
【０００７】
ＩＶＲシステムに関するさらなる背景は、２０００年７月２５日の「スピーチで使用可能にされるアプリケーションのためのシステムおよび方法」（“Ｓｙｓｔｅｍ ａｎｄ Ｍｅｔｈｏｄ ｆｏｒ Ｓｐｅｅｃｈ Ｅｎａｂｌｅｄ Ａｐｐｌｉｃａｔｉｏｎ”）と題された米国特許第６，０９４，６３５号、１９９９年１１月３０日の「スプレッドシートまたはテーブルインターフェイスを用いて言語グラマーを作成するためのシステムおよび方法」（“Ｓｙｓｔｅｍ ａｎｄ Ｍｅｔｈｏｄ ｆｏｒ Ｃｒｅａｔｉｎｇ ａ Ｌａｎｇｕａｇｅ Ｇｒａｍｍａｒ ｕｓｉｎｇ ａ Ｓｐｒｅａｄｓｈｅｅｔ ｏｒ Ｔａｂｌｅ Ｉｎｔｅｒｆａｃｅ”）と題された米国特許第５，９９５，９１８号、ならびに、１９９９年１０月２９日に出願された、「タスク指向ダイアログモデルおよびマネージャ」（“Ｔａｓｋ Ｏｒｉｅｎｔｅｄ Ｄｉａｌｏｇ Ｍｏｄｅｌ， ａｎｄ Ｍａｎａｇｅｒ”）と題された米国特許出願番号第０９／４３０，３１５号に見出すことができる。これらの特許は、ユニシス・コ−ポレイション（Ｕｎｉｓｙｓ Ｃｏｒｐｏｒａｔｉｏｎ）に同一に譲渡される。
【０００８】
【発明の概要】
この発明は、人間とコンピュータとの間のダイアログを可能にするためのアプリケーションを作成するのに用いられるコンピュータソフトウェア製品に関する。ただし、この発明は必ずしもそれらに限定されるわけではない。そのようなアプリケーションは、（バンキング、証券業務またはインターネット上などでの使用を含み）どの業界で使用されてもよく、ユーザは、たとえば、電話、携帯電話またはマイクなどを用いてコンピュータとダイアログを行う。
【０００９】
この発明は、開発者が、ダイアログフローインタープリタ開発ツールまたはＤＦＩツールに一般化命令を明記できるようにすることにより、時間がかかりかつ技術的に難しい開発タスクからソフトウェア開発者を解放する開発ツールを提供することによって上記必要性を満たす。アプリケーションはオブジェクト（すなわちＤＦＩオブジェクト）を具現化し（ｉｎｓｔａｎｔｉａｔｅ）、次にオブジェクトは、スピーチアプリケーションを実現する機能を呼出す。ＤＦＩツールは、他のアプリケーションに利用可能なダイアログオブジェクトを自動的にライブラリに入れる。
【００１０】
ＤＦＩツールによって作成されたスピーチアプリケーションは、ＣＯＭ（コンポーネントオブジェクトモデル）オブジェクトとして実現してもよいため、アプリケーションをさまざまな異なるプラットフォームに容易に統合することができる。多数の異なる音声認識エンジンもサポートされ得る。特定のアプリケーションで用いられる特定の音声認識エンジンは、容易に変更可能である。
【００１１】
この発明の別の局面は、通貨、数値データ、日付、時間、列変数などの特定のタイプのデータを扱うように設計された「トランスレータ」オブジェクトクラスを提供することである。これらのトランスレータオブジェクトクラスは、ダイアログを実現するための上記オブジェクトのＤＦＩライブラリの一部またはダイアログ実現とは別個のサブライブラリのいずれかとしてのユーティリティを有し得る。
【００１２】
この発明の他の局面は以下に記載される。
【００１３】
【好ましい実施例の詳細な説明】
概要
図１は、従来のＩＶＲ型システムを示す。そのようなシステムでは、人（図示せず）はサーバコンピュータ１１０と通信する。サーバコンピュータ１１０はデータベース記憶システム１１２に結合され、データベース記憶システム１１２は、発信者とダイアログを行う際にサーバコンピュータ１１０の動作を制御するためのデータおよびコードを含む。示されるように、サーバコンピュータ１１０は、電話機１１６などの電話機を介して発信者へのアクセスを提供する公衆電話網（ＰＳＴＮ）１１４に結合される。述べられたように、スピーチによって使用可能にされるそのようなシステムは、ボイスメール、コールセンタ、バンキングなどを含む多様な用途で用いられる。
【００１４】
以前は、スピーチアプリケーション開発者は、音声認識エンジンを選択し、アプリケーション特有の音声認識エンジン特有システムをコード化する。この場合、開発者は、可能な事象の全ユニバースを予想して提供し、ダイアログのありとあらゆるディテールを扱う必要がある。そのようなアプリケーションは、新たなアプリケーションに対してはすべて書換えなければならないか、または、異なる音声認識エンジンを用いなければならない。
【００１５】
先行技術とは反対に、図２を参照して、この発明は、プログラマが使いやすいグラフィカルインターフェイス（図示せず）を通してアクセス可能なダイアログフローインタープリタ（ＤＦＩ）設計ツール２１０に対する（会話の多くのステート（ｓｔａｔｅ）またはターン（ｔｕｒｎ）を潜在的に含む）会話フローについての一般化命令を開発者が明記できるようにすることにより、時間のかかる低レベルプログラミングタスクから開発者を解放するシステムを提供する。ＤＦＩ設計ツール２１０はデータファイル２２０（アプリケーションのシェル）を作成する。開発者がさまざまなプログラミング言語で書くことのできる呼出プログラム（スピーチアプリケーション）２３０が実行されると、呼出プログラム２３０はダイアログフローインタープリタ２３２を具現化して、ＤＦＩ設計ツール２１０が作成したデータファイル２２０をインタープリタ２３２に与える。次にダイアログフローインタープリタ２３２は、ＤＦＩオブジェクトの機能を呼出してスピーチアプリケーションを実現し、以前はプログラマが書かなければならなかったステートハンドリングおよび会話フローのあらゆるディテールを与える。呼出プログラム２３０は、一旦書いてしまえば、異なるアプリケーションに使用可能である。アプリケーションは、プロンプトおよび予期される応答の内容において、ならびに、結果的に生じる処理（ブランチおよび会話フロー）において、ならびに、用いられる音声認識エンジンにおいて、互いに異なる。この発明に従うと、これらはすべてデータファイル２２０に保存され得る。したがって、データファイル２２０を変更することにより、既存の呼出プログラム２３０を異なるアプリケーションに使用可能である。
【００１６】
開発ツール２００は、ダイアログオブジェクトを含むどのレベルのディテールの再利用可能コードも、他のアプリケーションでの使用のためにアクセス可能にされ得るライブラリに自動的に保存する。ダイアログオブジェクトは、ステートを共にリンクさせるのに関わる処理を含む１つ以上のダイアログステートの集合である。
【００１７】
開発プログラミングツールによって作成されたスピーチアプリケーションは実行可能オブジェクトとして実現されるため、アプリケーションはさまざまな異なるプラットフォームに容易に統合可能である。多数の異なる音声認識エンジンがサポートされ得る。特定のアプリケーションで用いられる特定の音声認識エンジンは容易に変更可能である。この発明と先行技術とを比較することにより、この発明をより詳細に説明する。
【００１８】
先行技術
再び図１を参照して、ダイアログベースのシステムにおいてユーザがコンピュータと通信する最も一般的な方法は、マイクを通してであるか、または、電話交換システム１１４により、データベース１１２に人間とコンピュータが対話できるようにするソフトウェアを保存するコンピュータに接続された電話機１１６を通してである。コンピュータがユーザから特定の情報を引き出そうとする、コンピュータとユーザ間の各々の対話がステートまたはターンと呼ばれる。各ステートにおいて、コンピュータはプロンプトでスタートし、ユーザは口頭で応答する。アプリケーションは、ユーザが言ったことを認識および解釈し、その応答に基づいて適切な行動を取り、次に、会話を次のステートまたはターンに進めなければならない。このステップは以下のとおりである。
【００１９】
１．コンピュータがプロンプトを発する。
２．ユーザ（または発信者）が応答する。
【００２０】
３．音声レコグナイザが、応答をコンピュータが読出可能な形態に変換する。
４．アプリケーションが応答を解釈し、これに応じて作動する。これは、たとえば、問合せに対するデータベースアクセスを含み得る。
【００２１】
５．アプリケーションがユーザに応答し得る。
６．ユーザから満足な応答を受取るまで、ステップ１から５を繰返し得る。
【００２２】
７．アプリケーションが次のステートに遷移する。
したがって、ダイアログベースのスピーチアプリケーションは、ユーザをゴールに導く一組のステートを含む。以前は、開発者は、ダイアログにおける各ステップをコード化して、可能な事象のユニバースにおいて、可能な各事象および可能な各応答ごとに、時間がかかりかつ技術的に複雑なタスクをコード化しなければならなかった。開発者は、たとえばＰａｒｉｔｙなどの対話型音声応答（ＩＶＲ）システムを選択して、Ｎｕａｎｃｅ、ＬｅｒｎｏｕｔおよびＨａｕｓｐｉｅなどの音声認識エンジンまたはＩＶＲ環境にプラグインする別の音声認識エンジンを用いて、その言語と関連のプログラミング言語でアプリケーションをコード化しなければならなかった。
【００２３】
音声オブジェクトは市販されている。図３を参照して、音声オブジェクト３２２，３２４は、典型的には、プロンプト、グラマーおよび応答である言語行為に入るあらゆるものが予めパッケージされたビットである。この機構において、たとえば、Ｇｅｔ Ｓｏｃｉａｌ Ｓｅｃｕｒｉｔｙ Ｎｕｍｂｅｒ３２２などの音声オブジェクトをベンダーから購入する。開発者は、選択された音声オブジェクトに必要なプログラミング言語でソフトウェアコード３２０を書き、購入したＧｅｔ Ｓｏｃｉａｌ Ｓｅｃｕｒｉｔｙ Ｎｕｍｂｅｒ音声オブジェクト３２２を自分のソフトウェアに入れる。プログラムが実行され、社会保険番号が必要な段階に達すると、Ｇｅｔ Ｓｏｃｉａｌ Ｓｅｃｕｒｉｔｙ Ｎｕｍｂｅｒ音声オブジェクト３２２が呼出される。アプリケーションは、どのように質問が行われるかを僅かに変更したかもしれないが、音声オブジェクトの柔軟性の範囲は限られている。ユーザからの応答を得た後、コントロールはアプリケーション３２０に戻される。次に、開発者が書いたアプリケーション３２０は、次のステート、すなわちＧｅｔ ＰＩＮ Ｎｕｍｂｅｒ３２４などへの遷移を扱わなければならない。音声オブジェクトは、特定の展開用（ｄｅｐｌｏｙｍｅｎｔ）システム（たとえば、Ｓｐｅｅｃｈ Ｃｈａｎｎｅｌｓと称されるＮｕａｎｃｅの「ＩＶＲシステム」および、アプリケーションフレームワークと称されるＳｐｅｅｃｈＷｏｒｋｓの「ＩＶＲシステム」）に対して実現される。これら再利用可能なものは、それらが構築された環境内においてのみ再利用可能である。たとえば、Ｄｉａｌｏｇ Ｍｏｄｕｌｅｓと呼ばれるＳｐｅｅｃｈＷｏｒｋｓのこの実現例は、ＳｐｅｅｃｈＷｏｒｋｓのアプリケーションフレームワーク内でのみ機能する。コアロジックは、実行プラットフォームに結合されているため、再利用不可能である。
【００２４】
ＤＦＩ設計ツール
これに対し、この発明に従うと、図４を参照して、開発者はＤＦＩ設計ツール４００を用いて、Ｇｅｔ Ｓｏｃｉａｌ Ｓｅｃｕｒｉｔｙ Ｎｕｍｂｅｒ、Ｇｅｔ ＰＩＮ Ｎｕｍｂｅｒなどの多くのそのようなステートを含むステップ４１０に示されるようなアプリケーション全体の設計を入力する。アプリケーションが一旦シミュレータでリハーサルされると（参考特許連続番号第０９／４１７，１６６号を参照）（ステップ４２０）、その設計を表わすファイルが生成され得る（ステップ４４０および４５０）。
【００２５】
図５に示されるように、さまざまなプログラミング言語のうちいずれかで開発者がコード化したソフトウェアアプリケーション５１０は、ダイアログフローインタープリタ５３０を具現化し、これに対して、ＤＦＩ設計ツールが上記で生成したファイル５２０中で特定された設計を解釈するように命令する。ダイアログフローインタープリタ５３０は、アプリケーションを通してフローを制御して、以前は開発者が書かなければならなかった基本コード５４０をすべて供給する。
【００２６】
図６Ａの６１２および図６Ｂの６２２からわかるように、プログラマが書かなければならないコードの量は実質的に低減される。実際に、いくつかのアプリケーションでは、これがまったくなくなってしまう可能性がある。
【００２７】
ダイアログフローインタープリタ
この発明のダイアログフローインタープリタまたはＤＦＩは、ダイアログの低レベルディテールを実現する「標準化された」オブジェクトのライブラリを提供する。ＤＦＩは、スピーチアプリケーションの実現を単純化するアプリケーションプログラミングインターフェイス（ＡＰＩ）として実現され得る。スピーチアプリケーションは、ＤＦＩ開発ツールと称されるツールを用いて設計され得る。この発明がもたらす単純化は、ＤＦＩが始めから終わりまで自動的にスピーチアプリケーションの全ダイアログを駆動可能であることによるものであり、これにより、ダイアログ管理のきわめて重要でかつしばしば複雑なタスクが排除される。伝統的に、そのようなプロセスはアプリケーションに依存するので、新しいアプリケーションごとに再実現が必要である。ＤＦＩは、１回の書込で何度も実行することができる（ｗｒｉｔｅ−ｏｎｃｅ， ｒｕｎ−ｍａｎｙ）方策を提供することにより、この問題を解決する。
【００２８】
図２は、ＤＦＩ設計ツール２１０、ダイアログフローインタープリタ２３２、および、他のスピーチアプリケーションコンポーネントの間の関係を図示する。（この図では、ブロック状の矢印はデータフローの方向を示す。）
機能的要素
スピーチアプリケーションは、ステート間の一連の遷移を含む。各ステートは、再生すべきプロンプト、（音声システムのユーザが何を発言し得るかを聞くために）ロードすべき音声レコグナイザのグラマー、発信者の応答に対する返事、および、各応答に基づいて取るべき行動を含む、それ自身のプロパティの組を有する。ＤＦＩは、アプリケーションの使用期間を通じていずれの所与の時点でもダイアログのステートを記録し、ステートプロパティにアクセスする機能を呈する。
【００２９】
図７を参照して、ステートプロパティは、「共有オブジェクト」７１０と称されるオブジェクトに保存されることがわかる。これらのオブジェクトの例には、Ｐｒｏｍｐｔオブジェクト、Ｓｎｉｐｐｅｔオブジェクト、Ｇｒａｍｍａｒオブジェクト、Ｒｅｓｐｏｎｓｅオブジェクト、ＡｃｔｉｏｎオブジェクトおよびＶａｒｉａｂｌｅオブジェクトが含まれるが、これらに限定されるものではない。
【００３０】
例示的なＤＦＩ機能７８０は、上記のオブジェクトのうちいくつかを返す。これらの機能は以下のものを含む。
【００３１】
ＧＥＴ−ＰＲＯＭＰＴ７２０：再生すべき適切なプロンプトを返す。次に、このプロンプトは、サウンド出力のため、適切なサウンド再生ルーチンに送られる。
【００３２】
ＧＥＴ ＧＲＡＭＭＡＲ７３０：現在のステートに対する適切なグラマーを返す。次にこのグラマーは音声認識エンジンにロードされる。
【００３３】
ＧＥＴ ＲＥＳＰＯＮＳＥ７４０：実際のユーザ応答、この応答が含み得る何らかの変数、および、この応答に対して規定されるすべての可能な行動を含む応答オブジェクトを返す。
【００３４】
ＡＤＶＡＮＣＥ−ＳＴＡＴＥ７５０：ダイアログを次のステートに遷移させる。
他のＤＦＩ機能を用いてステート独立プロパティ（すなわち、グローバルプロジェクトプロパティ）を検索する。これらは以下のものを含むが、これらに限定されるものではない。
【００３５】
プロジェクトの経路７６０
プロジェクトのサウンド経路
入力モード（ＤＴＭＦまたは音声）
バージインモード（ＤＴＭＦまたは音声）
現在のステート
以前のステート。
【００３６】
ＤＦＩの代替的使用
ダイアログ計測のためのロギング装置　−　ＤＦＩはステート間の遷移の内部（ｉｎｔｅｒｎａｌｓ）を制御するので、たとえば、あるステートに何回入ったかを数えて、どのようにスピーチアプリケーションが用いられるか、または、どのようにスピーチアプリケーションが動作するかに関する統計を収集し得るのは容易なことである。
【００３７】
スピーチアプリケーションストレステスタ　−　ＤＦＩはステート間の遷移の内部を制御するので、ＤＦＩツールは、ダイアログのコンピュータ側だけでなくダイアログの人間側を設けることによりスピーチアプリケーションのテストを容易にする、（テキスト−音声変換を用いる）アプリケーションの開発を可能にする。
【００３８】
図７は、アプリケーションプログラミングインターフェイス（ＡＰＩ）としてＤＦＩ機能７８０がどのように実現され得るか、または、どのように見えるかを図示する。
【００３９】
ＤＦＩと音声オブジェクトとの比較
音声オブジェクト（業界では一般的概念）は、典型的に、プロンプト（言うべきこと）、グラマー（聞くべきこと）、および、おそらくは、システム側の何らかの反応など、「言語行為」に入るあらゆるものが予めパッケージされたビットである。これは、（うまくいかない可能性があるあらゆることを考えるまでは単純に思われる）単一ビットの情報の集まりを含み得る。１つの方策は、予めパッケージされた機能（たとえば、ＳｐｅｅｃｈＷｏｒｋｓ（ｗｗｗ．ｓｐｅｅｃｈｗｏｒｋｓ．ｃｏｍ））を提供することである。基本モデルの例は以下のとおりである。すなわち、設計者は、Ｇｅｔ Ｓｏｃｉａｌ Ｓｅｃｕｒｉｔｙ Ｎｕｍｂｅｒと呼ばれる音声オブジェクトを（たとえばＮｕａｎｃｅから）購入し、これを自分のプログラムに入れる。プログラムがユーザの社会保険番号が必要な段階に達すると、設計者はＧｅｔ Ｓｏｃｉａｌ Ｓｅｃｕｒｉｔｙ Ｎｕｍｂｅｒオブジェクトを呼出す。アプリケーションは、正確には質問がされる方法を変更することにより、または、それが聞こえる範囲を広げることにより、それを少し変えたかもしれないが、基本的な価値としては、オブジェクトの予めパッケージされた方法であり、かつ、予め調整された機能である。
【００４０】
この発明のダイアログフローインタープリタ開発ツールにおいて、設計者は、設計ツール（たとえば、ユニシス・コーポレイションが提供するＤＦＩツール）を用いて、（ＳＳ＃入手およびＰＩＮ入手などの多くのステートを潜在的に含む）アプリケーション全体の設計を入力する。このアプリケーションがシミュレータ（ウィザード・オブ・オズ・テスタ（Ｗｉｚａｒｄ ｏｆ Ｏｚ ｔｅｓｔｅｒ））で一旦リハーサルされると、その設計（たとえばＭｙＳｐｅｅｃｈＡｐｐ）を表わすファイルが生成される。ＤＦＩは、（何らかのプログラミング言語で書かれた）「ランタイム」アプリケーションによって具現化され、設計ツールが作成した設計（ＭｙＳｐｅｅｃｈＡｐｐ）を解釈するように命令される。一旦セットアップされると、アプリケーションコードは、何が起こっているかの詳細をＤＦＩに与え、次に何をすべきかについて設計を「逆読み（ｒｅａｄ ｂａｃｋ）」しさえすればよい。したがって、たとえば、設計者は以下のものなどのシーケンスを指示し得る。
【００４１】
あなたのＳＳ番号は何番ですか？
（ＳＳ番号を聞く）
あなたのＰＩＮは何ですか
（ＰＩＮを聞く）
オーダを希望しますか、または、問題の報告を希望しますか
（ＯＲＤＥＲまたはＲＥＰＯＲＴ＿Ａ＿ＰＲＯＢＬＥＭを聞く）
ＯＲＤＥＲである場合、
オーダは何ですか
そうではなく、ＲＥＰＯＲＴ Ａ ＰＲＯＢＬＥＭである場合、
問題は何ですか。
【００４２】
この場合、ＤＦＩはまず、どのプロンプトを再生すべきかをプログラムが尋ねると、これは「あなたのＳＳ番号は何番ですか？」と返すステートに入り、プログラムがＳＳ＃を聞く必要があることを示す。これが達成され、次に進むようにアプリケーションが一旦ＤＦＩに命令すると、アプリケーションは、ＤＦＩに何と言うべきかを再び尋ね、今度は「あなたのＰＩＮは何ですか」と返す。ＤＦＩはアプリケーションが終了するまで方向性のあるデータを供給し続ける。重要なのは、ＤＦＩが、ダイアログ（プロンプト、何を聞くべきか、など）の各ターンごとに「内部」を供給し、アプリケーションを通してフローを供給することである。
【００４３】
同様の問題を扱うものの、ＤＦＩは音声オブジェクトモデルとは大きく異なっている。音声オブジェクトは、プログラムが無効にし得るデフォルトをセットアップする（プログラムはどこかからこのことを知っていなければならない）一方、ＤＦＩは、次に何をすべきかをアプリケーションに与える。音声オブジェクトは柔軟性がなくかつ予めプログラムされ、範囲が限られているが、ＤＦＩはアプリケーション全体に対して構築され、かつダイナミックである。音声オブジェクトは特殊な目的のために「調整」される。上述のこの調整は、ＤＦＩ設計ツールを通して提供され得る。相違点を別のやり方で考えると、ＤＦＩは、どのように能力を共に「リンクする」かを含め、ツールによって構築される「カスタム」スピーチ能力を与える。音声オブジェクトは、（「専門家の設計」および調整という利点を有する）「予めパッケージされた」能力を与えるが、それらの間に「フロー」は存在しない。
【００４４】
トランスレータオブジェクトクラス
スピーチアプリケーションは、ソフトウェアが解釈可能な形態で情報を検索できなければならない。一旦情報を入手すると、その情報を特定のスピーチフォーマットで外部に出力することが望ましいであろう。この発明に従うと、トランスレータオブジェクトクラスは、特定の情報をどのように出力すべきかについて詳細を特定するパラメータを開発者が提供できるようにし、ＤＦＩはそのタスクを実行するのに必要なあらゆるものを返す。たとえば、所望のオブジェクトが、標準時での現在のベルギーの時刻を英語で出力することである場合、開発者は、言語（英語）、地域（ベルギー）、時刻（ベルギーの現在時刻）およびフォーマット（標準時）を特定し、ＤＦＩは、それらの特徴（英語で話される、標準的フォーマットでの現在のベルギーの時刻）を有するデータ構造をリスナが聞けるようにするのに必要なあらゆるもののプレイリストを返す。
【００４５】
たとえば、ＤＦＩがプロンプティングを完了しているとき、ＤＦＩは図７の７２０のＧＥＴ ＰＲＯＭＰＴ機能にアクセスし、（出力されたスピーチが記録済ファイルである場合は）以下のものを返す。
【００４６】
１．”Ｉｔ ｉｓ ｎｏｗ”．ｗａｖ ファイル
２．時間の例の値（変数）である１２：３５ｐｍおよび関連ファイルである
ｔｗｅｌｖｅ．ｗａｖ
ｔｈｉｒｔｙ．ｗａｖ
ｆｉｖｅ．ｗａｖ
ｐｍ．ｗａｖ
３．”ｉｎ Ｂｅｌｇｉｕｍ” ｗａｖ ファイル。
【００４７】
リスナには、”Ｉｔ ｉｓ ｎｏｗ ｔｗｅｌｖｅ ｔｈｉｒｔｙ−ｆｉｖｅ ｐｍ ｉｎ Ｂｅｌｇｉｕｍ．”と聞こえるであろう。なお、上記例は例示の目的のためのみであることを理解されたい。この発明は、テキスト−音声変換（コンピュータ生成）音声出力も含む。
【００４８】
これに代えて、開発者が、ＤＦＩを用いずに自分のアプリケーションで直接にオブジェクトを用いることを希望する場合、アプリケーションは、トランスレータに直接にアクセスし得る。トランスレータは、時間の例（１２：３５）の値および以下の関連ファイルを返す。
【００４９】
ｔｗｅｌｖｅ．ｗａｖ
ｔｈｉｒｔｙ．ｗａｖ
ｆｉｖｅ．ｗａｖ
ｐｍ．ｗａｖ。したがって、トランスレータオブジェクトクラスは、開発者が書いたスピーチアプリケーションまたはＤＦＩが使用可能なオブジェクトを含む。
【００５０】
市販の音声オブジェクトは同様の機能を提供し得るが、トランスレータオブジェクトクラスの進歩性は、クラスに追加すべき開発者自身のオブジェクトを自分で書くことができるため、開発者が、情報の出力のされ方の低レベルディテールの制御を失わないことにある。開発者が市販の音声オブジェクトを用いる場合、開発者は、音声オブジェクトが機能する態様を制御する柔軟性が失われるのを受入れなければならない。この発明に従うトランスレータオブジェクトの場合、開発者は、最大限の自動化を依然として入手しながら、低レベルディテールの制御を維持する。
【００５１】
結論
要約すると、この発明は、ＩＶＲシステムなどにおいて、人間とコンピュータとの間の対話ダイアログを発生させるシステムおよび方法を提供する。しかしながら、この発明は、さまざまな変形および代替的構造が可能であることを理解されたい。この発明を本明細書中に記載の特定の構造に限定する意図はない。これに対し、この発明は、この発明の範囲および意図に入るあらゆる変形、代替的構造および均等物を含むことが意図される。たとえば、この発明は、コンピュータと人間とが対話する、スピーチで使用可能にされないアプリケーションをサポートしてもよい。この発明は、テキストで表示され得るプロンプトのテキスト記述を再現して、ユーザが編集ボックスにタイプすることによって応答できるようにする。言い換えると、この発明の核になるのは、ダイアログの実現ではなく、各ステートのプロパティおよびダイアログフローである。そのような実施例は、コンピュータゲームにおいて、またはコンフィギュレーション情報を収集するソフトウェア内で、または単純なグラフィカルユーザインターフェイス（ＧＵＩ）技術が可能にするよりも対話的なインターネットアプリケーションにおいて利用され得る。
【００５２】
また、留意すべきなのは、この発明は、さまざまなコンピュータ環境で実現され得ることである。たとえば、この発明は、Ｊａｖａ（Ｒ）において実現されて、どのＪａｖａ（Ｒ）プログラミング言語からの直接アクセスも可能にし得る。さらに、実現例はＣＯＭ層で重ねられ得る（ｗｒａｐｐｅｄ）ので、ＣＯＭをサポートするどの言語もこの機能にアクセスすることができ、これにより、Ｖｉｓｕａｌ Ｂａｓｉｃ（Ｒ）、Ｃ／Ｃ＋＋などの伝統的な開発環境がこの発明を利用できるようにになる。この発明は、Ｗｏｒｄ、Ｅｘｃｅｌなどを含むがそれらに限定されないＭｉｃｒｏｓｏｆｔ（Ｒ）内のアプリケーションから、たとえば、ビジュアルベーシック・フォー・アプリケーション（Ｖｉｓｕａｌ Ｂａｓｉｃ ｆｏｒ Ａｐｐｌｉｃａｔｉｏｎｓ（ＶＢＡ））までもアクセス可能であり得る。市販の、たとえばＰａｒｉｔｙなどの伝統的なＤＴＭＦ指向システムは、この発明をそれらのプラットフォームに埋込んでもよい。この発明およびその関連のオブジェクトは、ワールドワイドウェブおよびインターネット用の開発環境で展開されてもよく、これにより、ハイパーテキストマークアップ言語（ＨＴＭＬ）および同様のプロトコルがＤＦＩ開発ツールおよびそのオブジェクトにアクセスできるようになる。
【００５３】
本明細書中に記載のさまざまな技術は、ハードウェア、ソフトウェアまたはその両者の組合わせで実現され得る。好ましくは、この技術は、プロセッサ、（揮発性および不揮発性メモリおよび／または記憶素子を含む）プロセッサが読出し可能な記憶媒体、少なくとも１つの入力装置ならびに少なくとも１つの出力装置を各々が含むプログラマブルコンピュータ上で実行されるコンピュータプログラムにおいて実現される。プログラムコードは、入力装置を用いて入力されるデータに適用されて上述の機能を果たし、出力情報を生成する。出力情報は、１つ以上の出力装置に適用される。各プログラムは、好ましくは、高レベル手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実現されてコンピュータシステムと通信する。しかしながら、プログラムは、所望により、アセンブリ言語または機械語で実現可能である。いずれにせよ、言語は、コンパイルされたまたは解釈された言語であり得る。各々のそのようなコンピュータプログラムは、好ましくは、コンピュータが記憶媒体または記憶装置を読出して上述の手順を行う際にコンピュータを設定しかつ作動させるための汎用または特殊目的プログラマブルコンピュータによって読出可能な記憶媒体または記憶装置（たとえば、ＲＯＭまたは磁気ディスク）に保存される。このシステムは、コンピュータプログラムを用いて構成されるコンピュータ読み取り可能な記憶媒体として実現されると考えられてもよい。ここでは、そのように構成される記憶媒体は、予め規定された特定の態様でコンピュータを作動させる。
【００５４】
この発明の例示的な実現例が以上で説明されたが、当業者は、この発明の新規な教示および利点から実質的に逸脱することなく、例示的な実施例において多くのさらなる変形が可能であることを容易に認めるであろう。したがって、これらおよびすべてのそのような変形は、この発明の範囲内に含まれることが意図される。
【図面の簡単な説明】
【図１】従来のＩＶＲシステムを概略的に示す図である。
【図２】この発明に従う、スピーチアプリケーションの開発のための方法のフローチャートの図である。
【図３】先行技術のスピーチアプリケーションを示すフローチャートの図である。
【図４】この発明に従う、設計開発およびスピーチアプリケーション用データファイルの生成のための方法のフローチャートの図である。
【図５】この発明に従う、スピーチアプリケーションの生成のための方法のフローチャートの図である。
【図６Ａ】先行技術のシステムを用いて開発者が書いたコードの量と、この発明に従うシステムを用いて開発者が書いたコードの量との比較を示す図である。
【図６Ｂ】先行技術のシステムを用いて開発者が書いたコードの量と、この発明に従うシステムを用いて開発者が書いたコードの量との比較を示す図である。
【図７】この発明に従う、機能および共有オブジェクトを表わす概略図である。
【図１】
2004513425.tif 000002
【図２】
2004513425.tif 000003
【図３】
2004513425.tif 000004
【図４】
2004513425.tif 000005
【図５】
2004513425.tif 000006
【図６Ａ】
2004513425.tif 000007
【図６Ｂ】
2004513425.tif 000008
【図７】
2004513425.tif 000009
【国際公開パンフレット】
2004513425.tif 000010
2004513425.tif 000011
2004513425.tif 000012
2004513425.tif 000013
2004513425.tif 000014
2004513425.tif 000015
2004513425.tif 000016
2004513425.tif 000017
2004513425.tif 000018
2004513425.tif 000019
2004513425.tif 000020
2004513425.tif 000021
2004513425.tif 000022
2004513425.tif 000023
2004513425.tif 000024
2004513425.tif 000025
2004513425.tif 000026
2004513425.tif 000027
2004513425.tif 000028
2004513425.tif 000029
2004513425.tif 000030
【国際公開パンフレット（コレクトバージョン）】
2004513425.tif 000031
【国際調査報告】
2004513425.tif 000032
2004513425.tif 000033