(57)【要約】【課題】  所定の計算能力を示すデータを有するクライアント装置（１０）及びサーバー（２０）を備え音声アプリケーションを処理するシステムを提供する。【解決手段】  システムは、ユーザとシステムとの間の音声ベースのダイアログにおいて行われるべきタスクを指定する複数のスクリプトをアクセスする。スクリプトは、ブラウザ・レベルで解釈されることできる。サーバー（２０）は、上記データに基づいてクライアント装置（１０）に対する適切なスクリプトを選択する。インタプリタ・レイヤは、選択されたスクリプトを処理して、ダイアログのためにクライアント装置（１０）で行われるべき第１組の命令及びサーバー（２０）で行われるべき第１組の命令を決定する。かくして、計算は、クライアント装置の計算能力に基づいてクライアント装置及びサーバーのあいだで共有される。【選択図】  図１
2009520224.tif 000002
【特許請求の範囲】
【請求項１】
クライアント−サーバー計算システムにおいて音声アプリケーションを処理する方法であって、
前記サーバーが、
前記クライアントの計算能力を示すデータを受け取るステップと、
前記受け取られたデータに基づいて、ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアントにより行われるべきタスクを指定する１組の命令を選択するステップと、
前記１組の命令を実行のために前記クライアントに与えるステップとを行う、方法。
【請求項２】
もしも１つ以上のタスクが前記クライアントで成功裏に実行されなければ、前記１つ以上のタスクを実行するステップを含む、請求項１に記載の方法。
【請求項３】
前記データを受け取るステップが、
前記クライアントを同定するステップと、
前記同定されたクライアントの前記計算能力の予め規定されたプロフィルを検索するステップとを含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記データを受け取るステップが、前記音声ベースのダイアログのランタイムに前記データを受け取る、請求項１又は請求項２に記載の方法。
【請求項５】
前記データが、
前記クライアントの利用可能なメモリ容量と、
前記クライアントの利用可能なバッテリィ・パワーと、
前記クライアントの処理能力と、
前記クライアントで利用可能な１つ以上の資源を同定する情報とのうち少なくとも１つを含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
クライアント装置−サーバー計算システムにおいて音声アプリケーションを処理する方法であって、
前記クライアント装置が、
前記クライアント装置の計算能力を示すデータに依存して選択されたスクリプトを前記サーバーから受け取るステップと、
ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアント装置により行われるべき１組の命令を決定するために前記スクリプトを解析するステップと、
前記命令を実行するステップとを行う、方法。
【請求項７】
前記クライアント装置から前記サーバーへ前記計算能力を示すデータを送るステップを含む、請求項６に記載の方法。
【請求項８】
前記命令の少なくとも１つが前記クライアント装置で成功裏に実行されなかったことを前記サーバーに知らせるステップを含む、請求項６又は請求項７に記載の方法。
【請求項９】
前記ダイアログは、前記ユーザーに対して再生されるべきプロンプト及び前記プロンプトに対する予期される応答の対応する文法を有し、更に、
前記クライアント装置の計算能力に基づいて、少なくとも１つの前記プロンプト及び対応する文法を複数のプロンプト及び対応する文法に分割するステップを含む、請求項６，請求項７又は請求項８に記載の方法。
【請求項１０】
前記スクリプトが、前記複数のプロンプト及び文法が前記サーバー又は前記クライアント装置のどちらで実行されるべきかを指定する１つ以上の宛先パラメータを有する、請求項９に記載の方法。
【請求項１１】
前記ダイアログが、前記ユーザーに対して再生されるべきプロンプト及び予期される応答の対応する文法を有し、そして前記複数のプロンプト及び対応する文法が、前記クライアント装置の計算能力に基づいて、単一のプロンプト及び対応する文法に統合される、請求項６，請求項７又は請求項８に記載の方法。
【請求項１２】
クライアント−サーバー計算システムにおいて音声アプリケーションを処理するサーバーであって、
前記クライアントの計算能力を示すデータを受け取る手段と、
前記受け取られたデータに基づいて、ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアントにより行われるべきタスクを指定する１組の命令を選択する手段と、
前記１組の命令を実行のために前記クライアントに与える手段とを備える、サーバー。
【請求項１３】
もしも１つ以上のタスクが前記クライアントで成功裏に実行されなければ、前記１つ以上のタスクを実行する手段を備える、請求項１２に記載のサーバー。
【請求項１４】
前記データを受け取る手段が、
前記クライアントを同定する手段と、
前記同定されたクライアントの前記計算能力の予め規定されたプロフィルを検索する手段とを備える、請求項１２又は請求項１３に記載のサーバー。
【請求項１５】
前記データを受け取る手段が、前記音声ベースのダイアログのランタイムに前記データを受け取る、請求項１２又は請求項１３に記載のサーバー。
【請求項１６】
前記データが、
前記クライアントの利用可能なメモリ容量と、
前記クライアントの利用可能なバッテリィ・パワーと、
前記クライアントの処理能力と、
前記クライアントで利用可能な１つ以上の資源を同定する情報とのうちの少なくとも１つを含む、請求項１２乃至１５のいずれか１項に記載のサーバー。
【請求項１７】
クライアント装置−サーバー計算システムにおいて音声アプリケーションを処理するクライアント装置であって、
前記クライアント装置の計算能力を示すデータに依存して選択されたスクリプトをサーバーから受け取る手段と、
ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアント装置により行われるべき１組の命令を決定するために前記スクリプトを解析する手段と、
前記命令を実行する手段とを備える、クライアント装置。
【請求項１８】
前記クライアント装置から前記サーバーへ前記計算能力を示すデータを送る手段を備える、請求項１７に記載のクライアント装置。
【請求項１９】
前記命令の少なくとも１つが前記クライアント装置で成功裏に実行されなかったことを前記サーバーに知らせる手段を備える、請求項１７又は請求項１８に記載のクライアント装置。
【請求項２０】
前記ダイアログは、前記ユーザーに対して再生されるべきプロンプト及び前記プロンプトに対する予期される応答の対応する文法を有し、更に、
前記クライアント装置の計算能力に基づいて、少なくとも１つの前記プロンプト及び対応する文法を複数のプロンプト及び対応する文法に分割する手段を備える、請求項１７，請求項１８又は請求項１９に記載のクライアント装置。
【請求項２１】
前記スクリプトが、前記複数のプロンプト及び文法が前記サーバー又は前記クライアント装置のどちらで実行されるべきかを指定する１つ以上の宛先パラメータを有する、請求項２０に記載のクライアント装置。
【請求項２２】
前記ダイアログが、前記ユーザーに対して再生されるべきプロンプト及び予期される応答の対応する文法を有し、そして前記複数のプロンプト及び対応する文法が、前記クライアント装置の計算能力に基づいて、単一のプロンプト及び対応する文法に統合される、請求項１７，請求項１８又は請求項１９に記載のクライアント装置。
【請求項２３】
音声アプリケーションを処理するクライアント−サーバー計算システムのサーバーに、
前記クライアントの計算能力を示すデータを受け取る手順と、
前記受け取られたデータに基づいて、ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアントにより行われるべきタスクを指定する１組の命令を選択する手順と、
前記１組の命令を実行のために前記クライアントに与える手順とを実行させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【請求項２４】
音声アプリケーションを処理するクライアント装置−サーバー計算システムのクライアント装置に、
前記クライアント装置の計算能力を示すデータに依存して選択されたスクリプトを前記サーバーから受け取る手順と、
ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアント装置により行われるべき１組の命令を決定するために前記スクリプトを解析する手順と、
前記命令を実行する手順とを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２５】
音声アプリケーションを処理するシステムであって、
自身の計算能力を示す関連するデータを有するクライアント装置と、
ユーザーと前記システムとの間の音声ベースのダイアログにおいて行われるべきタスクを指定する複数のスクリプトを記憶するデータ記憶手段と、
前記関連するデータに基づいて前記クライアント装置に対するスクリプトを選択するサーバーと、
前記ダイアログのために前記クライアント装置で行われるべき第１組の命令、及び前記ダイアログのために前記サーバーで行われるべき第２組の命令を決定するために、前記選択されたスクリプトを処理するインタプリタ・レイヤと、
前記第１組の命令及び前記第２組の命令の実行を同期化する同期化レイヤとを備えるシステム。
【請求項２６】
音声アプリケーションを処理するクライアント装置−サーバー計算システムのサーバー又はクライアント装置に、請求項１乃至１１のいずれか１項に記載の手順を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント−サーバー環境における音声アプリケーションの処理に関する。
【背景技術】
【０００２】
近年、インターネットの幅広い使用から明らかなように、電子的に利用可能な情報及びサービスが著しく成長してきた。代表的には、ユーザーは、例えばキーボー若しくはタッチ・パネルを使用し、そしてビデオ表示装置上の結果を見ることのように、情報をタイプすることによりシステムに対してインタラクトする。しかしながら、ユーザーが言葉で情報を入力できる対話システムが、次第に利用可能となってきている。このシステムの出力は、聴覚的にユーザーに与えられることができる。このような対話システムにより、ユーザーは、動いている状態で手に他の仕事をさせながら情報及びサービスを容易に得ることができる。
【０００３】
対話システムは、ユーザーの言うことを理解するための音声認識及び情報を人間に似た声にする音声合成を必要とする。一般的には、このようなシステムは、クライアントの装置が例えば携帯端末のような電話装置である電話の構造的基盤において働く。初期には、このような対話システムは、対応能力のないダム型のクライアント装置を用いて働き、従って、全ての音声処理（認識及び合成）は、ダム型のクライアントと通信するサーバーにおいて行われていた。しかしながら、携帯型のクライアントの処理能力の増大により、音声処理（認識及び合成の両方）をクライアントの側で行うことが可能になった。
【０００４】
幾つかの対話システムにおいては、音声認識の一部がクライアント装置において処理される。用語「分散型音声認識」は、アプリケーションがクライアント装置でのローカルな音声処理をネットワークベースの音声サービスへのリモート・アクセスに組み合わせることができるシステムを指すために使用される。例えば、ノイズ・リダクション（ノイズ・カット）のような信号処理は、クライアント装置で行われることができ、次いで、クライアント装置は処理されたデータを回路網ベースの音声サービスに送る。次いで、音声サービスは、受け取った信号を処理してユーザーの要求を調べ、そして音声出力を使用してユーザーに応答する。
【０００５】
クライアント側の処理能力を使用する他の周知な技術は、音声合成の一部がクライアント側で行われる組込型の連接テキストの音声合成（ｅＣＴＴＳ）である。音声セグメントは、圧縮されたフィーチャ・ベクトルとして維持され、これが音声に戻される。
【０００６】
他の周知な技術では、対話システムが完全にクライアント側にあり、そして全体的な音声認識プロセスがローカルに行われる。一般にクライアントの処理容量は限られているので、非常に小規模な対話システムだけがこのような装置で実施されることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
現状の技術があるにもかかわらず、音声アプリケーションを処理するための更に効率的で優れたシステムが絶えず必要とされている。
【課題を解決するための手段】
【０００８】
ダイアログに関する計算又は処理が、クライアントの計算能力又は処理能力に基づいてクライアントとサーバーとの間で共有される融通性のあるメカニズムが説明される。分散は、マークアップ・レベルで行われるのが好ましく、そしてこの方法は、クライアント装置により実行され得るスクリプトをイネーブルする。
【０００９】
本発明の第１の態様に従うと、クライアント−サーバー計算システム内のサーバーで音声アプリケーションを処理する方法が提供される。クライアントの計算又は処理能力を示すデータが受け取られる。この受け取られたデータに基づいて、ユーザー及び計算システムの間の音声ベース・ダイアログにおいてクライアントにより行われるべきタスクを指定する１組の命令が選択される。この１組の命令は、実行のためにクライアントに与えられる。
【００１０】
本発明の更に他の態様に従うと、クライアント−サーバー計算システムのクライアント装置上で音声アプリケーションを処理する方法が提供される。サーバーからスクリプトが受け取られ、このスクリプトは、クライアント装置の計算能力を示すデータに依存して選択される。このスクリプトは、ユーザー及びクライアント−サーバーシステムの間の音声ベース・ダイアログにおいてクライアントにより行われるべき１組の命令を決定するために解析される。これらの命令はクライアント装置において実行される。
【００１１】
本発明の更に他の態様に従うと、クライアント−サーバー計算システムにおいて音声アプリケーションを処理するサーバーが提供される。サーバーは、クライアントの計算能力を示すデータを受け取る手段を有する。又、サーバーは、ユーザー及び計算システムの間の音声ベースのダイアログにおいてクライアントにより行われるべきタスクを示す１組の命令を、上記受け取られたデータに基づいて選択する手段を有する。又、サーバーは、実行のためにクライアントにこの１組の命令を与える手段を有する。
【００１２】
本発明の更に他の態様に従うと、クライアント−サーバー計算システムにおいて音声アプリケーションを処理するクライアント装置が提供される。クライアント装置は、サーバーからスクリプトを受け取る手段を有し、そしてこのスクリプトは、クライアント装置の計算能力を示すデータに依存して選択される。更にクライアント装置は、ユーザー及びクライアント・サーバー計算システムの間のダイアログにおいてクライアント装置により行われるべき１組の命令を決定するためにスクリプトを解析する手段、並びにクライアント装置上でこれらの命令を実行する手段を有する。
【００１３】
本発明の更に他の態様に従うと、クライアント−サーバー計算システムにおいて音声アプリケーションを処理する方法を行うために、プログラム・コードを実行するサーバーの動作を制御するための、コンピュータ読み取り可能な記録媒体に記録されたコンピュータ読み取り可能なプログラム・コードからなるコンピュータ・プログラム製品が提供される。この方法は、上述のステップを含む。
【００１４】
本発明の更に他の態様に従うと、クライアント−サーバー計算システムにおいて音声アプリケーションを処理する方法を行うために、プログラム・コードを実行するクライアント装置の動作を制御するための、コンピュータ読み取り可能な記録媒体に記録されたコンピュータ読み取り可能なプログラム・コードからなるコンピュータ読み取り可能なプログラム製品が提供される。この方法は、上述のステップを含む。
【００１５】
本発明の更に他の態様に従うと、音声アプリケーションを処理するためのシステムが提供される。このシステムは、クライアント装置を有し、そしてこの装置にはこれの計算能力を示す関連するデータが関連づけられている。更にこのシステムは、ユーザー及びこのシステムの間の音声ベースのダイアログにおいて行われるべきタスクを指定する複数のスクリプトを記憶するデータ記憶装置を有する。更にシステムは、関連するデータに基づいてクライアント装置のための適切なスクリプトを選択するサーバーを有する。インタプリタ・レイヤは、ダイアログのためにクライアント装置で行われるべき第１組の命令、及びサーバーで行われるべき第２組の命令を決めるために、上記選択されたスクリプトを処理する。同期レイヤ（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｌａｙｅｒ）は、第１組及び第２組の命令の実行を同期化する。
【発明を実施するための最良の形態】
【００１６】
本明細書で説明する技術は、クライアンとサーバーとの間でダイアログ処理を共有するための融通性のあるメカニズムを提供する。クライアントにおいて実行され得るスクリプトがイネーブルされる。説明する構成においては、サーバーは、対応する装置（デバイス）にそれぞれが合わせられた種々なスクリプトのバージョンをアクセスする。
【００１７】
図１は、クライアント装置１０及びサーバー２０を有するシステム１を示す。図示のように、クライアント装置１０は、携帯電話機である。しかしながら、クライアント装置１０は、計算資源を有する任意の音声でイネーブルされる装置でよい。例えば、クライアント装置１０は、マイクロフォン及び１つ以上のスピーカを備え、話し声の入力を検出し、そして音声出力を生じるようにコンピュータをイネーブルする汎用コンピュータ又は携帯情報端末でもよい。クライアント装置は、組込型音声認識エンジンを動作させるに十分な処理能力を有する。
クライアント装置１０は、例えば携帯電話回路網を介して、情報１２をサーバー２０に送り、そしてサーバー２０から情報１４を受け取る。サイバー２０及びクライアント装置１０のハードウエア構造は、以下に図３を参照して説明する。
【００１８】
サーバー２０は、音声サーバー２４及び音声ブラウザ２２を含む。音声サーバー２４は、クライアント装置１０のユーザーから受け取られた要求を、次の処理に適するフォーマットに変換する自動音声認識（ＡＳＲ）を行う。クライアント装置１０から受け取られたデータ１２は、音声及び例えばデュアルトーンマルチ周波数（ＤＴＭＦ）のキー入力のようなオーディオ入力を含むことができる。
又、音声サーバー２４は、テキスト音声（ＴＴＳ）能力を使用して情報をオーディオ信号に変換する。オーディオ信号は、データ１４としてクライアント装置１０に送り返される。
【００１９】
音声ブラウザ２２は、入力データ１２を受け取り、そしてデータ１４を出力する。図１と同様のアーキテクチャを使用する従来のシステムにおいては、音声ブラウザ２２は、クライアント装置１０と音声サーバー２４との間の単なる通路（コンジット、ｃｏｎｄｕｉｔ）である。しかしながら、説明中の本発明の構成においては、音声ブラウザ２２は、クライアント装置１０において行われるべきダイアログまたは音声処理あるいはその両方を指定する。クライアント装置１０の能力（ｃａｐａｂｉｌｉｔｙ）に基づいて処理を適切に共有することにより、システム１は、サーバーのラウンドトリップ（ｒｏｕｎｄｔｒｉｐｓ）を減少することにより効率を増大する。
【００２０】
サーバー２０は、ハイパー・テキスト転送プロトコル設備（ＨＴＴＰ）２６を使用して情報及びサービスをアクセスすることができる。図示のように、情報及びサービスは、データ記憶装置３０から取り出される。しかしながら、実際には、システム１を使用してアクセス可能な多くのデータ及びサービスの源がある。ＨＴＴＰ設備２６及びデータ記憶装置３０の間の通信リンク２８は、例えばインターネット又はローカル・エリア・ネットワーク（ＬＡＮ）でもよい。リンク２８は、単純なポイント・ツー・ポイント接続でも良い。
【００２１】
クライアント装置１０から音声ブラウザ２２に送られるデータ１２は、音声、テキスト及びクライアント装置１０のプロファイルを規定するパラメータを含む。音声ブラウザ２２は、どの処理がクライアント装置１０でなされるべきかを指定するスクリプト（“音声スクリプト”と呼ぶ）を選択する。かくして、クライアント装置１０の能力及び音声スクリプトは、サーバー２０及びクライアント装置１０の間の処理の分割を決める。音声スクリプトの使用は、どのダイアログがクライアント装置１０でローカルに処理されるか、そして音声処理のどの部分がサーバー２０ではなくクライアント装置１０で生じるかを決めることにおいて融通性を与える。
【００２２】
音声ブラウザ２２からクライアント装置１０に送られたデータ１４は、音声スクリプト及び音声（ｓｐｅｅｃｈ）を含む。クライアント装置１０は、音声スクリプトを実行する。音声サーバー２４は、処理タスクをサーバー２０及びクライアント装置１０の間で分散することによる影響を受けない。
【００２３】
この構成において、音声スクリプトは、音声拡張可能なマーク付け言語（Ｖｏｉｃｅ  Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ，ＶｏｉｃｅＸＭＬ）を使用して記述されることができる。ＶｏｉｃｅＸＭＬは、インタラクティブ音声イネーブルド・アップリケーションに対する標準としてアクセプタンスを得るＸＭＬに基づくスクリプト言語である。ＶｏｉｃｅＸＭＬは、オーディオ・ダイアログに基づいて音声アプリケーションを記述するプラットフォームに依存しない言語を与える。２つの型のダイアログがある。フォームは、情報を提示しそして入力を集め、そしてメニューは１組の選択を提示する。
【００２４】
図２は、クライアント装置１０とサーバー２０との間で処理を融通性良く共用する方法のフロー・チャートである。ステップ２０２において、クライアント装置１０は、サーバー２０と通信し、クライアント装置１０の能力を規定するパラメータを与える。サーバー２０は、コール・セットアップ時間にクライアントの能力を知らされることができ、又はサーバー２０は、クライアントの能力を予め知らされていても良い。例えば、情報は、電話番号に関連づけられることができ、されにより、この電話番号が特定な能力を有するクライアント装置により使用されていることをサーバー２０に知らせることができる。
【００２５】
クライアントの能力を記述するパラメータは、利用可能なメモリー量、処理能力及びバッテリィのパワーを含む。或るハードウエアまたはソフトウエア資源（例えば、プログラム又はプロトコル）がクライアント上で利用可能であることを同定するデータを含む他のパラメータも又使用されることができる。
【００２６】
ステップ２０４において、サーバーは、クライアント装置１０のプロファイルを調べるためにパラメータを使用する。ステップ２０６において、サーバー２０は、適切な音声スクリプトを選択し、そして、この選択されたスクリプトをクライアント装置１０に送る。サーバーは、或る特定な装置のプロファイルに合わせてそれぞれが作られている複数個の音声スクリプトをアクセスする。音声スクリプトは、クライアント装置１０においてなされるべきダイアログまたは音声処理あるいはその両方を指定し、そして又、どの部分がサーバー２０において行われるかを指定する。音声認識エンジンが、クライアント装置１０に既にインストールされており、そしてスクリプトは、実行のために音声認識エンジンを使用する処理ステップを規定する。
【００２７】
ステップ２０８において、クライアント装置１０が音声スクリプトを解析し、そしてステップ２１０において、クライアント装置１０が音声スクリプトを全体的に又は部分的に実行する。クライアント装置１０は、どのタスクがなされるべきか、そしてどの順番でなされるべきかを調べるためにスクリプトをインタープリート（解釈、ｉｎｔｅｒｐｒｅｔ）する。次いで、クライアント装置１０は、スクリプトにより要求されている指定された音声認識及び合成タスクを行う。例えば、音声スクリプトは、クライアント装置がプロンプトを合成し、そしてプロンプトをユーザーに対して再生（ｐｌａｙ）することを指定することができる。クライアント装置は、プロンプトを合成するために音声合成エンジンを呼び出す。次に、クライアント装置は、ユーザーからの話された応答を受け取り、そして、この応答を音声認識システムを使用して処理する。ユーザーからの予期される応答の文法（ｇｒａｍｍａｒ）が、スクリプト内に与えられている。音声認識システムの出力は、音声スクリプト内に指定されているように、次に行うステップを決めるために使用される。
【００２８】
ランタイム（実行時間、ｒｕｎｔｉｍｅ）の制約に基づいて、クライアント装置１０が、音声スクリプトにより指定された計算をサポートできないことがある。次いでクライアント装置１０は、ダム（ｄｕｍｂ、非対応）クライアントになることを選択できる。この場合、クライアント−サーバー・エクスチェンジは、要求される多数のインタラクションをサポートする。
【００２９】
１つの構成において、音声スクリプトは、ダイアログ及び音声に対するＪａｖａｓｃｒｉｐｔ（Ｒ）からなる。音声スクリプトは、クライアント装置１０に、クライアント装置でできることは何かという内容（ｍｅｎｔｉｏｎ）を送る。音声スクリプトは、装置が感知できる構成要素（ｄｅｖｉｃｅ  ｓｅｎｓｉｔｉｖｅ  ｃｏｎｓｔｒｕｃｔ）を含み、その結果、スクリプトを解析することにより、クライアントは、どの処理がクライアント上でなされることができるかを調べることができる。音声スクリプトは、ダイアログ処理のために要求される文法構成要素（ｇｒａｍｍａｒ  ｃｏｎｓｔｒｕｃｔｓ）及び音声処理のために要求される音声構成要素（ｓｅｅｃｈ  ｃｏｎｓｔｒｕｃｔｓ）を含む。又、音声スクリプト構成要素は、“ｍｕｓｔ  ｈａｖｅ”又は“ｍａｙ  ｈａｖｅ”として分類されるテキスト相互間を区別するための、そして“ｍｕｓｔ  ｈａｖｅ”として分類される音声を同定するための随意的なモダリティ（ｏｐｔｉｏｎａｌ  ｍｏｄａｌｉｔｙ）を含む。（Ｊａｖａ（登録商標）及び全てのＪａｖａ（登録商標）ベースの商標及びロゴは、米国または他の国におけるＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ．Ｉｎｃ．の商標である。）
【００３０】
音声サーバーの言語は、サーバー２０及びクライアント装置１０の間で処理を分散するフィーチャをサポートするＶＸＭＬの拡張子（ｅｘｔｅｎｓｉｏｎ）である。言語は、ＶＸＭＬで規定されておらず、そして、拡張されたＶＸＭＬからＶＸＭＬサーバー及びＶＸＭＬクライアントを発生するために解析手段により使用されるマークアップ・タグ（ｍａｒｋｕｐ  ｔａｇｓ）を含む。幾つかの追加的なタグを以下に説明する。
【００３１】
１．＜Ｂｌｏｃｋ  Ｐｒｏｃｅｓｓ＝“ｃｌｉｅｎｔ／ｓｅｒｖｅｒ”ｓｐｌｉｔｂｌｏｃｋ＝“２５”＞
これは、もしも処理されるべき大きなブロックがあれば使用される。サーバー２０又はクライアント装置１０で大きなブロックを処理する代わりに、この拡張された言語は、ブロックを２つの部分に分割し、そして、２つの部分をクライアント及びサーバーのそれぞれで処理する特性（フィーチャ，ｆｅａｔｕｒｅ）を与える。ここで、ｓｐｌｉｔｂｌｏｃｋ＝“２５”は、ブロックの最初の２５文字がクライアント装置１０で処理され、そして、残りがサーバー２０で処理されることを意味する。
【００３２】
２．＜ｍｅｒｇｅ  ｓｏｕｒｃｅ＝“ｃｌｉｅｎｔ”ｄｅｓｔｉｎａｔｉｏｎ＝“ｓｅｒｖｅｒ”＞
クライアント装置１０によりプロンプトされなければならないかという幾つかの質問（ｑｕｅｓｔｉｏｎｓ）があるならば、これらの質問は、クライアントのプロファイルに依存してマージ（統合、ｍｅｒｇｅ）されることができる。クライアント装置１０のプロファイルは、利用可能なメモリの量についての情報及びクライアント装置１０のユーザーが急いでいるかどうかを含む。もしもユーザーが急いでいるならば、これらの質問は統合され、そして、規格（ｓｐｅｃｉｆｉｃａｔｉｏｎ）に従ってクライアント又はサーバーにより質問されることができる。統合のための他の幾つかの基準がある。
【００３３】
＜ｓｐｌｉｔ  ｓｏｕｒｃｅ＝“Ｃｌｉｅｎｔ  ｏｒ  Ｓｅｒｖｅｒ”  ｄｅｓｔｉｎａｔｉｏｎ＝“ｃｌｉｅｎｔ”＞
ｎ回試みたがサーバー２０又はクラインと装置１０により認識されなかったという質問があるならば、この質問は互いに異なるプロンプトに分割される。この質問は、ｄｅｓｔｉｎａｔｉｏｎ（宛先）で指定されるクライアント装置１０又はサーバー１０により尋ねられる。分割のための他の基準がある。質問のアンダーライイング文法（ｕｄｅｒｌｙｉｎｇ  ｇｒａｍｍａｒ）（ネストされた又はシーケンシャル）は、分割を決定するに当たってその役目を果たす。
【００３４】
ネストされた文法（ｎｅｓｔｅｄ  ｇｒａｍｍａｒ）の場合には、一般的に、全ての答え（ａｎｓｗｅｒ）がプロンプトを分割するのではなくて、最後の答え（ａｎｓｗｅｒ）は、サーバーに戻される必要がある。
ネストされた文法の例：
ａ．  Ｗｈｉｃｈ  ｓｔａｔｅ？（どの州か？）
ｂ．  Ｗｈｉｃｈ  ｃｉｔｙ？（どの市か？）
ｃ．  Ｗｈｉｃｈ  ａｉｒｐｏｒｔ？（どの空港か？）
【００３５】
もしも答えが更に提示されなければならないならば、最後の答えが関心のある答えである。その理由は、目的はその空港かを決定することだからである。メモリの制約に基づいて、全体の質問は、３つの小さな文法（ｇｒａｍｍａｒ）に分割された。
【００３６】
シーケンシャル文法（ｓｅｑｕｅｎｔｉａｌ  ｇｒａｍｍａｒ）の場合には、ユーザーは最後の答えに関心があるばかりでなく、全体の質問の各パートの答えにも関心がある。ある種の分割の後、各サブ・パートに関連する幾つかの答えは、文法全体をサーバー自身が認識したと同等の効果を生じるために、連接されそして最後に記憶される。
シーケンシャル文法の例：
ａ．  Ｗｈａｔ  ｉｓ  ｔｈｅ  ｆｉｒｓｔ  ｎａｍｅ？（ファースト・ネームはなにか？）
ｂ．  Ｗｈａｔ  ｉｓ  ｔｈｅ  ｌａｓｔ  ｎａｍｅ？（ラスト・ネームはなにか？）
ｃ．  Ｗｈａｔ  ｉｓ  ｔｈｅ  ｌｏｃａｔｉｏｎ？（場所はどこか？）
この場合、マージされた質問は、“Ｗｈｏｓｅ  ｐｈｏｎｅ  ｎｕｍｂｅｒ  ｄｏ  ｙｏｕ  ｗａｎｔ  ａｎｄ  ａｔ  ｗｈｉｃｈ  ｌｏｃａｔｉｏｎｓ？”（誰の電話番号が欲しいのか、そしてどの場所か）であり、これの答えは、例えば（オフィスにいるニテンドラ・ラジプート）であるので、完全な答えに関心がある。
【００３７】
分割及び統合（マージ）に関連する異なる可能性：
（１）全体的な質問は、サーバー２０において認識され、そして質問に関連する全      体的に大きな文法（Ｂｉｇ  Ｇｒａｍｍａｒ）は分割される必要はない。
（２）質問は幾つかの小さなパートに分割され、そして音声認識がクライアント側で行われる。プロンプトに関連する文法は、いつでもクライアント装置１０に転送される。ネストされた文法の場合には、文法はユーザーにより与えられる答えに依存するが、シーケンシャル文法の場合には、転送された文法は、答えに依存しないか、又はユーザーにより与えられた前の答え（例えば、ブーリアンの答え（Ｂｏｏｌｅａｎ  ａｎｓｗｅｒｓ）に依存することがある。
【００３８】
（３）他の可能性は、幾つかの小さなパートのうち、複数のパートはサーバー２０で認識され、そして他のパートはクライアント装置１０で認識されることである。この構成において、クライアント装置１０において認識されるべき質問に関する文法が、クライアントに転送される。
【００３９】
（４）文法を送ることにおいてポテンシャル問題がある。たとえクライアント装置１０がサーバー２０に何も戻さないとしても、クライアントはサーバーに戻らなければならず、その結果、サーバーは、前の答えに依存して適切な文法を送ることができる。これは、クライアント装置１０の応答時間を増大する。そこで、もしもクライアントが全ての文法を処理するに十分なメモリを有するならば、全ての文法はクライアントに転送されるべきであり、これによりクライアントがサーバーに戻ってサーバーに適切な文法を送ることを防止する。
【００４０】
例：
ａ．Ｗｈｉｃｈ  ｓｔａｔｅ？（どの州？）
ｂ．Ｗｈｉｃｈ  Ｃｉｔｙ？（どの市？）
この場合、第２の質問は第１の質問から独立している。従って、以前の質問に対する答えに基づいて第２の質問に対する適切な文法を転送する代わりに、（もしもクライアントの能力がこれを可能にするならば）全ての州の全ての市の文法をクライアント装置１０に維持することができる。
【００４１】
（５）理想的な状態では、サーバー２０のメモリは実質的に無限大であり、従って任意の数の質問がサーバー２０でマージされることができる。しかしながら、クライアント装置１０では、文法のマージはクライアント装置１０のメモリの制約に基づいてなされる。プロンプトの組み合わせの幾つかのマージが可能である。このことは、もしも複数個の質問がマージのためにクライアント装置１０に送られるならば、全ての質問がクライアントにおいてマージされ得ないことを意味する。
【００４２】
例：
ａ．  Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｎａｍｅ？（あなたの名前は？）
ｂ．  Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ａｄｄｒｅｓｓ？（あなたのアドレスは？）
ｃ．  Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｆａｔｈｅｒ‘ｓ  ｎａｍｅ？（あなたのお父さんの名前は？）
これらの３つの質問はクライアント装置１０に送られてマージされる。しかしながら、クライアント装置１０のメモリの制約を考慮して第１番目及び最後の質問だけがマージされることができる。
【００４３】
（６）分割／マージは、クライアント装置１０のメモリ制約に基づいて行われるとは限らない。他に考えるべきことは、‘不一致（ｎｏ  ｍａｔｃｈ）’の数のカウント、又は‘入力なし（ｎｏ  ｉｎｐｕｔ）’の数のカウントである。もしもユーザーが急いでいればマージがなされ、そしてもしもユーザーが大量の質問を取り扱えないがわずかな質問に答えることが望ましいならば、分割がなされ得る。分割は、ユーザーにより与えられる情報に基づいてなされることができる。例えば、もしもユーザーが対応するプロンプトにより要求されるよりも多くの情報を与えるならば、分割がなされ得る。
【００４４】
例：
ａ．  Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｎａｍｅ？（あなたの名前は？）
ｂ．  Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｓｕｒｎａｍｅ  ａｎｄ  ｄａｔｅ  ｏｆ  ｂｉｒｈｔ？（あなたの姓は、そして誕生日は？）
もしも第１番目の質問に対するユーザーの答えが‘ニーラジ・チャンダハイ’であるならば、第２番目の質問は、２つのパートに分割され、そして質問“Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｄａｔｅ  ｏｆ  ｂｉｒｔｈ？（あなたの誕生日は？）だけが問いかけられる。
【００４５】
付録Ａは、拡張されたＶＸＭＬ言語のサンプル・プログラムを含む。ここに示すように、サンプル・プログラムは、サーバー２０及びクライアント装置１０のそれぞれで行われる２つの部分に分割されることができる。
【００４６】
通信レイヤ（同期化プロトコル）：
図４は、クライアント装置１０及びサーバー２０で行われる処理を同期化するのに使用される通信レイヤを示す。音声スクリプト（即ち、ＶＸＭＬｅｘｔファイル）４０１は、分解手段（ｄｉｓｉｎｔｅｇｒａｔｏｒ）４０３及びインタプリタ（Ｉｎｔｅｒｐｒｅｔｅｒ）の１組の機能−特定モジュール（ｆｕｎｃｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｍｏｄｕｌｅｓ）４０５を含むＶＸＮＬｅｘｔインタプリタ・レイヤにおいて処理される。インタプリタ・レイヤは、クライアント装置１０及びサーバー２０によりなされる解析の部分である。１つの構成において、インタプリタ・レイヤは、クライアント及びサーバーにある音声ブラウザ、即ち、クライアント音声ブラウザ及びサーバー音声ブラウザ２２の部分でもよい。
【００４７】
機能−特定モジュール４０５の出力は、サーバー２０で動いているサーバー・エンジン４０７及びクライアント装置１０で動いているクライアント・エンジン４０９に与えられる。次いで、エンジン４０７及び４０９は、クライアント−サーバーのインタラクションを同期化する同期化手段４１１と通信する。同期化手段４１１は、サーバー２０上で動いているブラウザ・コード４１３及びクライアント装置１０上で動いているブラウザ・コード４１５とインタラクトする。同期化手段４１１及びブラウザ・コード４１３，４１５は共に通信レイヤを構成する。
【００４８】
‘ｄｅｓｔｉｎａｔｉｏｎ（宛先）’内に１つ以上の値が指定されたならば（‘／’で分けて）最初の値が好ましい宛先である。もしもタグが第１番目の宛先において実行できないならば、次に指定された位置で実行がなされる。これらの主要な値の組み合わせであるこれらの値は、実行シーケンスにおいて次の意味を有する。
・ｃｌｉｅｎｔ／ｓｅｒｖｅｒ：
クライアントで実行。もしも実行が不成功ならば、サーバーで実行。
・ｃｌｉｅｎｔ／ｐａｒｔｉａｌ／ｓｅｒｖｅｒ：
クライアントで実行。もしも実行が不成功ならば、クライアントで部分的に実行、そして残りをサーバーで実行。もしもこれも不成功ならば、サーバーで実行。
・ｃｌｉｅｎｔ／ｓｐｌｉｔ：
クライアントで実行。もしも不成功ならば、ダイアログを複数のサブ・ダイアログに分割し。そしてクライアントで実行。
・ｃｌｉｅｎｔ／ｓｐｌｉｔ／ｓｅｒｖｅｒ：
クライアントで実行。もしも不成功ならば、ダイアログをサブダイアログに分割し、そしてクライアントで実行。もしもこれも不成功ならば、ダイアログをサーバーで実行。
・ｃｌｉｅｎｔ／ｓｅｒｖｅｒ／ｓｐｌｉｔ：
クライアントで実行。もしも不成功ならば、サーバーで実行。もしもこれも不成功ならば、ダイアログをサブダイアログに分割しそしてクライアントで実行。もしもこれも不成功ならば、サブダイアログをサーバーで実行。
・ｓｅｒｖｅｒ／ｃｌｉｅｎｔ：
この値は有効であるが、＜ｍｅｒｇｅ（マージ）＞及び＜ｂｌｏｃｋ（ブロック）＞タグに対してのみ意味がある。＜ｍｅｒｇｅ＞と共に使用されるとき、統合されたダイアログがサーバーで実行され、そしてもしもこれが不成功ならば、ダイアログは分割され、次いでクライアントで実行される。
【００４９】
行き先の値が‘ｃｌｉｅｎｔ／ｓｐｌｉｔ／ｓｅｒｂｅｒ’である場合の同期化レイヤについて以下に説明する。クライアント装置１０で処理が行われている間、サーバー２０は待機モードにある。もしもこの処理が成功であるならば、クライアント装置１０は、‘ｓｅｃｃｅｓｓｆｕｌ（成功）’メッセージを書き、そして又サーバー２０に送るべきファイルに認識したストリングを書く。次いで、クライアント装置１０は、次のダイアログに移り、そしてこれは、ＶＸＭＬｅｘｔ（音声スクリプト）４０１で指定されるようにクライアント装置１０又はサーバー２０で行われる。
【００５０】
もしもクライアント装置１０における処理が不成功ならば、クライアントは、クライアント上で動作している適切なモジュール４０５を使用して再びコール・フロー（ｃａｌｌ  ｆｌｏｗ）を分割することにより、動作し続ける。サーバー２０は、待機状態を続ける。もしもクライアント装置１０において全てのステップが不成功ならば、最終的に‘ｕｎｓｕｃｃｅｓｓｆｕｌ（不成功）’メッセージがサーバー２０に送られ、そして認識したストリングが無効ストリングにセットされる。次いで、処理は、クライアント装置１０に比べて更に優れた認識精度及び処理能力を有するサーバー１０で継続される。
【００５１】
もしも第１番目の試みが失敗すると、サーバー２０は質問を分割する。この場合、クライアント装置１０は、たとえ認識の試みがサーバー２０で失敗したとしても、サーバーの現在のステータスが判るようにされる。この理由は、たとえ認識がサーバー２０で行われていたとしても、クライアント装置１０は、音声を認識し、音声をサーバー２０に送りそして合成された音声を受け取り再生するというタスクを有するからである。
【００５２】
全ての処理がクライアント装置１０で行われると、サーバー２０は、何の役目をも果たさず、そして、タグ“ｄｅｓｔｉｎａｔｉｏｎ”により許されるように全てがクライアント装置１０で試みられ終わるまで、休止状態となる。
【００５３】
通信レイヤ（ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｌａｙｅｒ）は、認識されたストリングを転送するので、ストラテジィ（ｓｔｒａｔｅｇｙ）は、連接された、シーケンシャルなそしてネストされた（ｎｅｓｔｅｄ）コール・フローに対して変わる。
（ａ）連接された質問の場合には、全ての答えは、連接後に提示されなければならないことを思い出されたい。
例：  Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｎａｍｅ？（あなたの名前は？）
次の３つのパートが連接される必要がある。
１． Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｆｉｒｓｔ  ｎａｍｅ？（あなたの名は？）
２． Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｍｉｄｄｌｅ  ｎａｍｅ？（あなたのミドルネームは？）
３． Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｌａｓｔ  ｎａｍｅ？（あなたの姓は？）
（ｂ）ネストされたコール・フローの場合には、最後の質問の答えだけが提示される必要がある。
例：Ｗｅ  ａｒｅ  ｉｎｔｅｒｅｓｔｅｄ  ｏｎｌｙ  ｉｎ  ｔｈｅ  ａｉｒｐｏｒｔ（我々空港だけに興味がある）、しかしながら次のネストされた質問が尋ねられる。
Ｗｈｉｃｈ  ｓｔａｔｅ？（どの州？）
ｗｈｉｃｈ  ｃｉｔｙ？（どの市？）
ｗｈｉｃｈ  ａｉｒｐｏｒｔ？（どの空港？）
【００５４】
（ｃ）シーケンシャルなコール・フローの場合には、最後の質問の答えが提示される必要がある。
例：Ｗｅ  ａｒｅ  ｉｎｔｅｒｅｓｔｅｄ  ｏｎｌｙ  ｉｎ  ｔｈｅ  ｓｅａｔ  ｎｕｍｂｅｒ（我々は座席番号のみに興味がある）
１．Ｔｅｌｌ  ｍｅ  ｔｈｅ  ｓｅａｔ  ｎｕｍｂｅｒ  ｂｅｔｗｅｅｎ  １  ｔｏ  ２０，  ２１  ｔｏ  ４０，  ４１  ｔｏ  ６０，  ６１  ｔｏ  ８０？（１から２０，２１から４０，４１から６０，６１から８０の座席番号を教えてください？）
２．Ｔｅｌｌ  ｍｅ  ｙｏｕｒ  ｓｅａｔ  ｎｕｍｂｅｒ．（あなたの座席番号を教えてください）
【００５５】
クライアント装置１０及びサーバー２０を同期化するために行われる方法論（ｍｅｔｈｏｄｏｌｏｇｙ）は、他の宛先値（ｓｅｒｖｅｒ／ｃｌｉｅｎｔ；ｓｅｒｖｅｒ／ｃｌｉｅｎｔ／ｓｐｌｉｔ；ｃｌｉｅｎｔ／ｓｅｒｖｅｒ等）に対して同様であるが、イベントが起こるシーケンスは、宛先値に従って変わる。
【００５６】
コンピュータ・ハードウエア：
図３は、クライアント及びサーバーの間で音声アプリケーションの処理を共有するためにコンピュータ・ソフトウエアを実行するのに適する型のコンピュータ・システム３００の概略図である。コンピュータ・ソフトウエアは、コンピュータ・システム３００にインストールされている適切なオペレーティング・システムのもとに実行し、そして特定なステップを達成するための種々なソフトウエア・コード手段からなるとものとして考えることができる。コンピュータ・システム３００は、サーバー２０として使用されることができる。以下に説明する修正を行うことにより、コンピュータ・システム３００の構成は、クライアント装置１０において使用されることができる。
【００５７】
コンピュータ・システム３００のコンポーネントは、コンピュータ３２０，キーボード３１０、マウス３１５及び表示装置３９０を含む。コンピュータ３２０は、プロセッサ３４０，メモリ３５０，入出力（Ｉ／Ｏ）インターフェイス３６０，３６５，ビデオ・インターフェイス３４５及び記憶装置３５５を含む。
【００５８】
プロセッサ３４０は、オペレーティング・システム及びこのオペレーティング・システムのもとではたらくコンピュータ・ソフトウエアを実行する中央処理ユニット（ＣＰＵ）である。メモリ３５０は、ランダム・アクセス・メモリ（ＲＡＭ）及び読み取り専用メモリ（ＲＯＭ）を含み、そして、プロセッサ３４０の制御のもとで使用される。
【００５９】
ビデオ・インターフェイス３４５は、表示装置３９０に接続され、そして表示装置３９０上で表示する信号を与える。コンピュータ３２０を動作させるユーザー入力は、例えばキーボード３１０及びマウス３１５から与えられる。例えばマイクロフォンのような他の型の入力も又使用されることができる。又、信号は、１つ以上のスピーカ（図示せず）を使用して聴覚的に出力されることができる。記憶装置３５５は、ディスク・ドライブまたは他の適切な記憶装置を含むことができる。
【００６０】
コンピュータ３２０の各コンポーネントは、内部バス３３０に接続され、この内部バスは、コンピュータ３２０の各コンポーネントがバス３３０を介して互いに通信できるようにするためのデータ・バス、アドレス・バス及び制御バスを含む。
【００６１】
コンピュータ・システム３００は、入出力（Ｉ／Ｏ）インターフェイス３６５，通信チャネル３８５及び図３でインターネット３８０として示されている回路網を介して、１つ以上の他の同様なコンピュータに接続されることができる。
【００６２】
コンピュータ・ソフトウエアは、携帯型の記憶媒体に記録されることができ、この場合には、コンピュータ・ソフトウエア・プログラムは、コンピュータ・システム３００により記憶装置３５５からアクセスされることができる。これの代わりに、コンピュータ・ソフトウエアは、コンピュータ３２０によりインターネット３８０から直接的にアクセスされることができる。いずれの場合にも、ユーザーは、プログラムされたコンピュータ・ソフトウエアをコンピュータ上で実行させるために、例えばキーボード３１０及びマウス３１５を使用してコンピュータ３００とインタラクトすることができる。
【００６３】
コンピュータ・システムの他の構成又は他の型のコンピュータ・システムが、本明細書で開示した本発明を実施するためのコンピュータ・ソフトウエアを実行するために同様に使用されることができる。更に、ディジタル信号プロセッサのようなカスタム・メイドの装置及び特別に構成されたハードウエアが本発明を実現するために使用されることができる。
【００６４】
携帯型のクライアント装置１０は、図３に示した構成と同様のコンピュータ構成を有することができる。表示装置３９０およびキーパッドは、クライアンと装置１０に一体的に形成され、但しマウス３１５を含まない。クライアント装置１０のＩ／Ｏインターフェイス３６５は、携帯電話回路網を介して信号を送受信するトランシーバであり、そして更にクライアント装置１０は、聴覚的入出力を処理するためのマイクロフォン及びスピーカを含む。
【００６５】
APPENDIX  （付録） A:
VXMLEXTENDEDSAMPLE PROGRAM
<vxmlext>
<blockprocess=”client/server” splitblock=”25”>
………………………..
………………………..
</block>
<formid=”id_name”>
<mergesource=”client ” destination=” server” >
<fieldname=”…..” execute=”client”>
<prompt>………………. </prompt>
<grammarsrc=”……….”/>
</field>
<fieldname=”…..” execute=”client”>
<prompt>………………. </prompt>
<grammarsrc=”……….”/>
</field>
<p1>………………</p1>
<gotomerge/>
</merge>
<fieldname=”………” execute=”client/server”>
<prompt>……………………………………….</prompt>
<grammarsrc =”…………”/>
<nomatchcount=”n”> <gotosplit /></nomatch>
<splitSource=” client or server” destination= “ client”>
<p1>…………….</p1>
<p2>………………</p2>
<p3>……………….</p3>
<p4>……………….</p4>
</split>
</field>
</form>
</vxmlext>
Thisfile is fed to the parser, and the following ‘VXML server’ and ‘VXML client’files are generated and made to run on the server and client respectively.
VXMLSERVER GENERATED
<vxml>
<block>
<………… after 25 characters>
</block>
-----------------------------------Aftermerging----------------------
<formid=”…..”>
<fieldname= “………”>
<prompt>p1………</prompt>
<grammarsrc=”grammar destination after merging”/>
</field>
------------------------BeforeSplitting--------------------------------
<fieldname=” ……….”>
<prompt>………………………………..</prompt>
<grammarsrc=” grammar destination before splitting”/>
</field>
</form>
</vxml>
VXMLCLIENT GENERATED
<vxml>
<block>
first25 characters …………….
</block>
<formid=”……..”>
-----------------------------BeforeMerging----------------------------------------
<fieldname=”…..” >
<prompt>………………. </prompt>
<grammarsrc=”……….”/>
</field>
<fieldname=”…..” >
<prompt>………………. </prompt>
<grammarsrc=”……….”/>
</field>
---------------Beforesplitting----------------------------------------------------
<fieldname=” ……….”>
<prompt>………………………………..</prompt>
<grammarsrc=” grammar destination before splitting”/>
</field>
--------------------------------AfterSplitting------------------------------------------
<fieldname=p1>
<prompt>………………..</prompt>
<grammarsrc=”…….”/>
</field>
<fieldname=p2>
<prompt>………………..</prompt>
<grammarsrc=”…….”/>
</field>
<fieldname=p3>
<prompt>………………..</prompt>
<grammarsrc=”…….”/>
</field>
<fieldname=p4>
<prompt>………………..</prompt>
<grammarsrc=”…….”/>
</field>
</form>
</vxml>
TAGLIBRARY
1. merge
Attributes
Source
Destination
2. split
Attributes
Source
Destination
3. Block
NewAttributes
Process
Splitblock
4. Field
NewAttributes
execute
5.Gotomerge
7.Gotosplit
8.Vxmlext
This tagis inserted to differentiate the language from normal Vxml as it has
variousother features
Certaintags for merging and splitting prompts are also added (Syntax
<p(promptnumberafterp)>)
【００６６】
本明細書で説明した技術及び構成に対する種々な変更及び修正が可能であることは、当業者にとって明らかである。
【図面の簡単な説明】
【００６７】
【図１】本明細書で説明する技術を本発明の良好な実施例に従って実現するのに適するクライアント−サーバーの構成を概略的に示す図である。
【図２】本発明の良好な実施例に従ってクライアントとサーバーとの間で計算又は処理動作を融通的に分散させる方法のフローチャートである。
【図３】図１の構成において使用するに適する本発明の良好な実施例に従うコンピュータ・システムの概略図である。
【図４】クライアントとサーバーとの間の同期化を実現するための本発明の良好な実施例に従う通信レイヤの概略図である。
【符号の説明】
【００６８】
１    システム
１０  クライアント装置
１２，１４  情報
２０  サーバー
２２  音声ブラウザ
２４  音声サーバー
２６  ＨＴＴＰ設備
２８  通信リンク
３０  データ記憶装置
【図１】
2009520224.tif 000003
【図２】
2009520224.tif 000004
【図３】
2009520224.tif 000005
【図４】
2009520224.tif 000006
【手続補正書】
【提出日】平成21年1月28日(2009.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアント−サーバー計算システムにおいて音声アプリケーションを処理する方法であって、
前記サーバーが、
前記クライアントの計算能力を示すデータを受け取るステップと、
前記受け取られたデータに基づいて、ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアントにより行われるべきタスクを指定する１組の命令を選択するステップと、
前記１組の命令を実行のために前記クライアントに与えるステップとを行う、方法。
【請求項２】
もしも１つ以上のタスクが前記クライアントで成功裏に実行されなければ、前記１つ以上のタスクを実行するステップを含む、請求項１に記載の方法。
【請求項３】
前記データを受け取るステップが、
前記クライアントを同定するステップと、
前記同定されたクライアントの前記計算能力の予め規定されたプロフィルを検索するステップとを含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記データを受け取るステップが、前記音声ベースのダイアログのランタイムに前記データを受け取る、請求項１又は請求項２に記載の方法。
【請求項５】
前記データが、
前記クライアントの利用可能なメモリ容量と、
前記クライアントの利用可能なバッテリィ・パワーと、
前記クライアントの処理能力と、
前記クライアントで利用可能な１つ以上の資源を同定する情報とのうち少なくとも１つを含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
クライアント装置−サーバー計算システムにおいて音声アプリケーションを処理する方法であって、
前記クライアント装置が、
前記クライアント装置の計算能力を示すデータに依存して選択されたスクリプトを前記サーバーから受け取るステップと、
ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアント装置により行われるべき１組の命令を決定するために前記スクリプトを解析するステップと、
前記命令を実行するステップとを行う、方法。
【請求項７】
前記クライアント装置から前記サーバーへ前記計算能力を示すデータを送るステップを含む、請求項６に記載の方法。
【請求項８】
前記命令の少なくとも１つが前記クライアント装置で成功裏に実行されなかったことを前記サーバーに知らせるステップを含む、請求項６又は請求項７に記載の方法。
【請求項９】
前記ダイアログは、前記ユーザーに対して再生されるべきプロンプト及び前記プロンプトに対する予期される応答の対応する文法を有し、更に、
前記クライアント装置の計算能力に基づいて、少なくとも１つの前記プロンプト及び対応する文法を複数のプロンプト及び対応する文法に分割するステップを含む、請求項６，請求項７又は請求項８に記載の方法。
【請求項１０】
前記スクリプトが、前記複数のプロンプト及び文法が前記サーバー又は前記クライアント装置のどちらで実行されるべきかを指定する１つ以上の宛先パラメータを有する、請求項９に記載の方法。
【請求項１１】
前記ダイアログが、前記ユーザーに対して再生されるべきプロンプト及び予期される応答の対応する文法を有し、そして前記複数のプロンプト及び対応する文法が、前記クライアント装置の計算能力に基づいて、単一のプロンプト及び対応する文法に統合される、請求項６，請求項７又は請求項８に記載の方法。
【請求項１２】
クライアント−サーバー計算システムにおいて音声アプリケーションを処理するサーバーであって、
前記クライアントの計算能力を示すデータを受け取る手段と、
前記受け取られたデータに基づいて、ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアントにより行われるべきタスクを指定する１組の命令を選択する手段と、
前記１組の命令を実行のために前記クライアントに与える手段とを備える、サーバー。
【請求項１３】
もしも１つ以上のタスクが前記クライアントで成功裏に実行されなければ、前記１つ以上のタスクを実行する手段を備える、請求項１２に記載のサーバー。
【請求項１４】
前記データを受け取る手段が、
前記クライアントを同定する手段と、
前記同定されたクライアントの前記計算能力の予め規定されたプロフィルを検索する手段とを備える、請求項１２又は請求項１３に記載のサーバー。
【請求項１５】
前記データを受け取る手段が、前記音声ベースのダイアログのランタイムに前記データを受け取る、請求項１２又は請求項１３に記載のサーバー。
【請求項１６】
前記データが、
前記クライアントの利用可能なメモリ容量と、
前記クライアントの利用可能なバッテリィ・パワーと、
前記クライアントの処理能力と、
前記クライアントで利用可能な１つ以上の資源を同定する情報とのうちの少なくとも１つを含む、請求項１２乃至１５のいずれか１項に記載のサーバー。
【請求項１７】
クライアント装置−サーバー計算システムにおいて音声アプリケーションを処理するクライアント装置であって、
前記クライアント装置の計算能力を示すデータに依存して選択されたスクリプトをサーバーから受け取る手段と、
ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアント装置により行われるべき１組の命令を決定するために前記スクリプトを解析する手段と、
前記命令を実行する手段とを備える、クライアント装置。
【請求項１８】
音声アプリケーションを処理するクライアント−サーバー計算システムのサーバーに、
前記クライアントの計算能力を示すデータを受け取る手順と、
前記受け取られたデータに基づいて、ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアントにより行われるべきタスクを指定する１組の命令を選択する手順と、
前記１組の命令を実行のために前記クライアントに与える手順とを実行させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【請求項１９】
音声アプリケーションを処理するクライアント装置−サーバー計算システムのクライアント装置に、
前記クライアント装置の計算能力を示すデータに依存して選択されたスクリプトを前記サーバーから受け取る手順と、
ユーザーと前記計算システムとの間の音声ベースのダイアログにおいて前記クライアント装置により行われるべき１組の命令を決定するために前記スクリプトを解析する手順と、
前記命令を実行する手順とを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
音声アプリケーションを処理するシステムであって、
自身の計算能力を示す関連するデータを有するクライアント装置と、
ユーザーと前記システムとの間の音声ベースのダイアログにおいて行われるべきタスクを指定する複数のスクリプトを記憶するデータ記憶手段と、
前記関連するデータに基づいて前記クライアント装置に対するスクリプトを選択するサーバーと、
前記ダイアログのために前記クライアント装置で行われるべき第１組の命令、及び前記ダイアログのために前記サーバーで行われるべき第２組の命令を決定するために、前記選択されたスクリプトを処理するインタプリタ・レイヤと、
前記第１組の命令及び前記第２組の命令の実行を同期化する同期化レイヤとを備えるシステム。
【国際調査報告】
2009520224.tif 000007
2009520224.tif 000008
2009520224.tif 000009