(57)【特許請求の範囲】
【請求項１】
ユーザから第１の言語で言語入力を受け取るステップと、
前記受け取られた言語入力を認識することによって前記第１の言語でテキストベースの言語入力を生成するステップと、
機械翻訳を利用して、前記テキストベースの言語入力を、前記第１の言語から前記第１の言語とは異なる第２の言語に翻訳するステップと、
前記翻訳されたテキストベースの言語入力を、前記第２の言語で、前記第２の言語のコンテキスト(context)で動作する言語サービスを異なるネイティブ言語で動作しているアプリケーションに提供する既存の(preexisting)構成要素(components)に供給するステップと、
前記既存の構成要素から、前記言語入力に応答する、第２の言語でもたらされる出力を受け取るステップと、
前記機械翻訳を利用して、前記第２の言語の前記出力を前記第１の言語に翻訳するステップと、
前記第１の言語の前記翻訳された出力に従って前記ユーザによって受け取られることが可能な出力を生成するステップとを含む言語サービスを提供する方法であって、
エンタテイメント・アプリケーションが、既成の機械翻訳構成要素の一部でない場合に、機械翻訳構成要素が、エンタテイメント・アプリケーションに関連する、絶えず進化し得る過剰な表現を含む言葉遣いを含むように修正され得る、
方法。
【請求項２】
前記言語入力は、前記第１の言語で前記ユーザによって発話される(spoken)ことによって前記ユーザによって入力される請求項１に記載の方法。
【請求項３】
前記ユーザによって受け取られることが可能な前記出力を前記生成するステップは、テキスト−音声構成要素(text-to-speech component)を利用するステップを含む請求項１に記載の方法。
【請求項４】
前記受け取られた言語入力から前記第１の言語を識別する(identifying)ステップと、
前記識別された第１の言語に基づいて、前記テキストベースの言語入力を生成する前記ステップを実行する入力認識構成要素(input recognition component)、および機械翻訳構成要素を選択するステップと
をさらに含む請求項１に記載の方法。
【請求項５】
前記テキストベースの言語入力を、前記第１の言語から前記第２の言語に翻訳するのに少なくとも１つが利用される、少なくとも２つの機械翻訳構成要素を利用するステップをさらに含む請求項４に記載の方法。
【請求項６】
請求項１のステップを実行するためのコンピューター実行可能命令を備える１つまたは複数のコンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、既存の単一言語プロセスからマルチ言語プロセスを構築することに関する。
【背景技術】
【０００２】
[0001]従来、コンピューティングデバイスのユーザーは、それらのコンピューティングデバイス上で実行されているプロセスに、それらのプロセスによって指定される様態で入力を与えることを余儀なくされてきた。このため、例えば、コンピューティングデバイス上で実行されるスプレッドシートアプリケーションプログラムにおいて計算を実行するのに、ユーザーは、ユーザーが計算されることを所望する値および式を、そのスプレッドシートアプリケーションプログラムによって指定された様態で入力することを余儀なくされる。別の例として、コンピューティングデバイス上で実行されるワードプロセッシングアプリケーションプログラムにおいて異なるフォントを選択するのに、ユーザーは、そのワードプロセッシングアプリケーションによって提供される機構を介して活字情報を選択することを余儀なくされる。そのような機構は、コンピューティングデバイス上で実行されているそのようなアプリケーションプログラムと絶えず対話するユーザーには第２の天性となり得るが、それでも、ユーザーが、従来、互いにやりとりする様態とは異なる。
【０００３】
[0002]コンピューティングデバイスの処理能力が増大するにつれ、それらのコンピューティングデバイス上で実行されている、より多数のアプリケーションプログラムが、ユーザーによって、より自然に与えられる入力を受け付けるように設計されてきている。例えば、ますます普及している１つの入力機構が、ユーザーが、アプリケーションプログラムに実行させようと求めることを発話すること、または、それ以外で、言語的に入力することであり、すると、アプリケーションプログラムは、そのような言語入力を解釈して、相応の応答をすることができる。言語入力に応答する能力を有するアプリケーションプログラムを提供することにより、そのようなアプリケーションプログラムのプログラマは、ユーザーがより容易に学習し、利用することができるアプリケーションプログラムを提供している。
【０００４】
[0003]残念ながら、言語入力は、ユーザーによって話されている言語に依存する。このため、１つの言語で与えられた言語入力を受け付けるように設計されたアプリケーションプログラムは、別の異なる言語で与えられた言語入力を理解することができない。世界中のユーザーによって話される言語が様々であること、およびそれらの言語の間の相当な言語の違いにより、アプリケーションプログラムに言語入力を受け付けさせることを所望するアプリケーションプログラムの開発者は、そのようなアプリケーションプログラムがサポートすることになる異なる言語のそれぞれに関して、それらのアプリケーションプログラムの異なるバージョンを作成することを余儀なくされる。
【０００５】
[0004]より重大なこととして、言語入力を受け付けることができるアプリケーションプログラムを作成するプロセスは、時間がかかるとともに、高価であり得る。例えば、そのようなアプリケーションプログラムの言語理解構成要素が、ユーザーによって与えられる言語入力からユーザーの意図を正確に解読することができるように訓練することに、相当な時間とリソースの投資が向けられ得る。ところで、アプリケーション開発者が、開発者のアプリケーションプログラムがサポートすることを所望する各言語に関して、その後、再作成されなければならないのが、まさしくそのような言語理解構成要素である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本願発明の一実施例は、例えば、既存の単一言語プロセスからマルチ言語プロセスを構築することに関する。
【課題を解決するための手段】
【０００７】
[0005]一実施形態において、別のアンカー言語で動作し、さらに時間とリソースの相当な投資を意味する既存のアプリケーションプログラムの言語構成要素が、そのようなアンカー言語以外の言語で言語入力を受け付けることができるアプリケーションプログラムを作成するのに再利用されることが可能である。コンピューティングデバイスによる、１つの言語で受け取られた入力の、別の異なる言語の入力への翻訳を可能にする機械翻訳技術が、既存のアプリケーションプログラムのそのような言語構成要素と結合されて、アンカー言語以外の言語での入力の受付けを可能にしながら、それらの言語構成要素を再利用することが可能である。
【０００８】
[0006]別の実施形態において、複数の言語と既存の言語構成要素のアンカー言語の間で翻訳する能力を意味する複数の機械翻訳構成要素が、単一のアプリケーションプログラムにまとめられて、その結果、様々な異なる言語で言語入力を受け取る能力をそのようなアプリケーションプログラムにもたらすことが可能である。言語識別構成要素が、言語入力を最初に受け取ることが可能であり、さらにそのような言語入力が与えられている言語を識別することが可能である。次に、適切な機械翻訳構成要素が、そのような言語識別に基づいて選択されることが可能である。
【０００９】
[0007]さらなる実施形態において、アンカー言語に関連付けられた既存の言語構成要素と、他の言語とそのようなアンカー言語の間で翻訳するための機械翻訳構成要素とを備えるハイブリッドアプリケーションが、ネイティブ言語に関連付けられた言語構成要素を開発する開始点の役割をして、その結果、機械翻訳構成要素の必要性が解消されることが可能である。
【００１０】
[0008]この概要は、詳細な説明において後段でさらに説明される選定された概念を、簡略化された形態で概説するように与えられる。この概要は、主張される主題の重要な特徴も不可欠な特徴も識別することは意図しておらず、主張される主題の範囲を限定するのに使用されることも意図していない。
【００１１】
[0009]さらなる特徴および利点が、添付の図面を参照して進められる後段の詳細な説明から明白となろう。
[0010]後段の詳細な説明は、添付の図面と併せて解釈されると、最もよく理解され得る。
【図面の簡単な説明】
【００１２】
【図１】[0011]言語入力を受け取ることができる例示的なコンピューティングデバイスを示すブロック図である。
【図２】[0012]アンカー言語に関連付けられた言語構成要素と、アンカー言語と他の言語の間で翻訳するための機械翻訳構成要素とを備える例示的なハイブリッドプロセスを示すブロック図である。
【図３】[0013]ハイブリッドプロセスのネイティブ言語プロセスへの例示的な変換を示すブロック図である。
【図４】[0014]アンカー言語に関連付けられた言語構成要素と、アンカー言語と他の言語の間で翻訳するための機械翻訳構成要素とを備えるハイブリッドプロセスの例示的な作成を示す流れ図である。
【図５】[0015]アンカー言語に関連付けられた言語構成要素と、アンカー言語と他の言語の間で翻訳するための機械翻訳構成要素とを備えるハイブリッドプロセスの例示的な動作を示す流れ図である。
【図６】[0016]ハイブリッドプロセスのネイティブ言語プロセスへの例示的な変換を示す流れ図である。
【発明を実施するための形態】
【００１３】
[0017]以下の説明は、異なるアンカー言語に関連付けられた既存の言語構成要素を、そのアンカー言語と他の１つまたは複数の言語の間で翻訳することができる機械翻訳構成要素と一緒に再利用することによって、１つまたは複数の言語で言語入力を受け付けることができるプロセスの効率的な生成に関する。言語入力は、入力が与えられたいずれの言語からも、そのような入力を、既存の言語構成要素が関連付けられているアンカー言語に翻訳することができる機械翻訳構成要素に向けられることが可能である。次に、それらの既存の言語構成要素が、その言語入力に応答する処理を開始して、適切な出力を生成するのに利用されることが可能である。オプションとして、その出力は、ユーザーに提示するために、入力が受け取られたのと同一の言語に再び翻訳されるように機械翻訳構成要素に向けられることが可能である。複数の機械翻訳構成要素が、異なる複数の言語から言語入力を受け付けるのに利用されることが可能であり、言語識別構成要素が、そのような言語入力を最初に受け取ることが可能であり、さらにそのような言語入力が与えられた言語を識別し、その結果、適切な機械翻訳構成要素を選択することが可能である。機械翻訳構成要素と、アンカー言語に関連付けられた言語構成要素とを備えるハイブリッドプロセスが、開始構造の役割をすることも可能であり、この構造から、単一言語プロセスが時とともに作成されることが可能である。
【００１４】
[0018]本明細書で説明される技法は、音声入力などの言語入力に的を絞る。しかし、そのような例示および説明が、記述を容易にするために行われるが、本明細書で説明される技法は、そのように限定されない。詳細には、説明される技法は、言語ベースである任意の種類の入力にも同様に適用可能である。したがって、後段の例示および説明は、単に例示的であることを意図しており、後段で説明される技法を、説明される特定の言語入力に限定することは意図していない。
【００１５】
[0019]必須ではないものの、後段の説明は、計算能力を有するデバイスによって実行されている命令の一般的なコンテキストで行われる。そのようなコンピューティングデバイスには、従来のコンピューターと、中央処理装置によってもたらされるものなどの計算能力を有する家庭用電子デバイスがともに含まれる。このため、後段の説明は、そのようなコンピューティングデバイスによって実行されることが可能である、プログラムモジュールなどのコンピューター実行可能命令の一般的なコンテキストで行われる。より詳細には、この説明は、特に明記しない限り、１つまたは複数のコンピューティングデバイスまたは周辺装置によって実行される動作、および操作の記号表現について述べる。このため、ときとして、コンピューターによって実行されるものとして記述されるそのような動作および操作には、構造化された形態のデータを表す電気信号の、処理装置による操作が含まれることが理解されよう。この操作は、データを変換し、またはメモリー内のロケーションにデータを保持し、このことが、当業者によってよく理解される様態でコンピューティングデバイスまたは周辺装置の動作を再構成する、またはそれ以外で変える。データが保持されるデータ構造は、データのフォーマットによって定義された特定の特性を有する物理的ロケーションである。
【００１６】
[0020]一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。さらに、それらのコンピューティングデバイスは、従来のパーソナルコンピューター、および従来のパーソナル電子デバイスに限定されなくてもよく、ハンドヘルドデバイス、マルチプロセッサシステム、他のマイクロプロセッサベースの家庭用電子機器もしくはプログラマブル家庭用電子機器、ネットワークＰＣ、ミニコンピューター、メインフレームコンピューターなどを含め、計算することができる他のデバイスを含み得ることが当業者には認識されよう。同様に、それらのコンピューティングデバイスは、それらの機構が、通信ネットワークを介して結び付けられた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実施されることも可能であるので、スタンドアローンのデバイスに限定されなくてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリーストレージデバイスと遠隔メモリーストレージデバイスの両方の中に配置され得る。
【００１７】
[0021]図１を参照すると、１つまたは複数の中央処理装置（ＣＰＵ）１２０、システムメモリー１３０、ならびにシステムメモリーを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１を含み得るが、以上には限定されない例示的なコンピューティングデバイス１００が示される。システムバス１２１は、様々なバスアーキテクチャーのいずれかを使用する、メモリーバスもしくはメモリーコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。コンピューティングデバイス１００は、ユーザー１５０がコンピューティングデバイスと対話することを可能にすることができる周辺装置を含み得る。そのような周辺装置には、ユーザーフィードバック１５２などの情報をコンピューティングデバイス１００からユーザー１５０に与えるための周辺装置が含まれることが可能であり、さらにユーザー１５０が、ユーザー入力１５１などの情報および命令をコンピューティングデバイス１００に与えることができるようにするための周辺装置が含まれることが可能である。コンピューティングデバイス１００がユーザーに情報を提示することを可能にすることができる周辺装置は、ユーザーに視覚的なグラフィカルユーザーインターフェースを提示するのに、コンピューティングデバイスによって利用され得るグラフィックスハードウェアインターフェース１９０およびディスプレイデバイス１９１を含むが、以上には限定されないグラフィックスハードウェアを備えることが可能である。コンピューティングデバイス１００がユーザーに情報を提示できるようにすることが可能な周辺装置には、コンピューティングデバイス１００からの聴覚情報をそのコンピューティングデバイスのユーザーに与えることができる１つまたは複数のスピーカ１８９、ならびに図１には明示されない類似する他の周辺デバイスが含まれることも可能である。そのような周辺装置は、システムバス１２１に接続された周辺インターフェース１８０を介してコンピューティングデバイス１００に通信状態にあるように結合され得る。ユーザーがコンピューティングデバイス１００に情報を与えることを可能にすることができる周辺装置には、マウス１８２、キーボード１８１、マイクロフォン１８４、動き検出器１８５、またはトラックパッド、アクセサリータブレット、マルチタッチ入力デバイスなどの、図１に明示されない他のデバイスが含まれ得る。前述した周辺デバイスは、周辺インターフェース１８０を介してコンピューティングデバイス１００のシステムバス１２１に通信状態にあるように結合されることが可能であり、さらに、しばしば、それらのデバイスの機能を可能にするハードウェア態様とソフトウェア態様の両方を含む。このため、それらのデバイスのハードウェア表現だけが図１に示されるが、後段でそのような周辺装置について述べることは、そのような周辺装置の適切な動作のために利用されるハードウェア態様とソフトウェア態様の両方を含むことを意図している。
【００１８】
[0022]また、コンピューティングデバイス１００は、通常、コンピューティングデバイス１００によってアクセスされ得る任意の利用可能な媒体を含み得るコンピューター可読媒体も含み、さらに揮発性媒体と不揮発性媒体、ならびにリムーバブルメディアと非リムーバブルメディアをともに含む。例として、限定としてではなく、コンピューター可読媒体は、コンピューター記憶媒体、通信媒体、またはコンピューター記憶媒体と通信媒体の組み合わせを備えることが可能である。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実装された媒体を含む。通信媒体は、通常、搬送波または他のトランスポート機構などの変調されたデータ信号としてコンピューター可読命令、データ構造、プログラムモジュール、または他のデータを実現し、任意の情報配信媒体を含む。
【００１９】
[0023]システムメモリー１３０は、読み取り専用メモリー（ＲＯＭ）１３１およびランダムアクセスメモリー（ＲＡＭ）１３２などの揮発性メモリーおよび／または不揮発性メモリーの形態でコンピューター記憶媒体を含む。起動中などの、コンピューティングデバイス１００内の要素間で情報を転送するのを助ける基本ルーチンを包含する基本入出力システム１３３（ＢＩＯＳ）が、通常、ＲＯＭ１３１の中に格納される。ＲＡＭ１３２は、処理装置１２０が即時にアクセスすることが可能であり、さらに／または処理装置１２０によって現在、操作されているデータおよび／またはプログラムモジュールを、通常、包含する。例として、限定としてではなく、図１は、オペレーティングシステム１３４、他のプログラムモジュール１３５、およびプログラムデータ１３６を示す。
【００２０】
[0024]また、コンピューティングデバイス１００は、他のリムーバブル／非リムーバブルの、揮発性／不揮発性のコンピューター記憶媒体を含むことも可能である。単に例として、図１は、不揮発性磁気媒体から読み取る、またはそのような媒体に書き込むハードディスクドライブ１４１を示す。例示的なコンピューティングデバイスで使用され得る他のリムーバブル／非リムーバブルの、揮発性／不揮発性のコンピューター記憶媒体には、磁気テープカセット、フラッシュメモリーカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、以上には限定されない。ハードディスクドライブ１４１は、通常、不揮発性メモリーインターフェース１４０などのインターフェースを介してシステムバス１２１に接続される。
【００２１】
[0025]前述し、図１に示されるドライブ、およびそれらのドライブに関連するコンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、および他のデータのストレージをコンピューティングデバイス１００にもたらす。図１で、例えば、ハードディスクドライブ１４１が、オペレーティングシステム１４４、他のプログラムモジュール１４５、およびプログラムデータ１４６を格納していることが例示される。これらの構成要素は、オペレーティングシステム１３４、他のプログラムモジュール１３５、およびプログラムデータ１３６と同一であることも、異なることも可能であることに留意されたい。オペレーティングシステム１４４、他のプログラムモジュール１４５、およびプログラムデータ１４６には、少なくとも、これらが異なるコピーであることを示すように、ここでは、異なる番号が与えられる。
【００２２】
[0026]コンピューティングデバイス１００は、１つまたは複数の遠隔コンピューターに対するローカル接続を使用するネットワーク化された環境において動作することが可能である。コンピューティングデバイス１００は、いずれの特定のネットワークにも、いずれの特定のネットワーキングプロトコルにも限定されない。このため、例示を簡単にするため、コンピューティングデバイス１００は、図１では、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、または他のネットワークであり得る一般的なネットワーク接続１７１を介してネットワーク１７２に接続されることが示される。コンピューティングデバイス１００は、ネットワークインターフェースまたはネットワークアダプタ１７０を介して一般的なネットワーク接続１７１に接続され、ネットワークインターフェースまたはネットワークアダプタ１７０は、システムバス１２１に接続される。ネットワーク化された環境において、コンピューティングデバイス１００に関して図示されるプログラムモジュール、またはそれらのプログラムモジュールの部分もしくは周辺モジュールは、一般的なネットワーク接続１７１を介してコンピューティングデバイス１００に通信状態にあるように結合された他の１つまたは複数のコンピューティングデバイスのメモリーの中に格納されることが可能である。図示されるネットワーク接続は、例示的であり、コンピューティングデバイス間で通信リンクを確立する他の手段が使用されてもよいことが認識されよう。
【００２３】
[0027]図２を参照すると、図示されるシステム２００が、既存のインフラストラクチャーを再利用して、その既存のインフラストラクチャーが作成された言語とは異なる１つまたは複数の言語で言語理解能力を効率的にもたらすことができる例示的なプロセスを示す。一実施形態において、例示的なコンピューティングデバイス１００などのコンピューティングデバイス上で実行される既存のアプリケーションまたはプロセスが、言語入力を受け付けることができることが可能であり、さらに、オプションとして、そのアプリケーションまたはプロセスが作成されたアンカー言語で言語出力を生成することができることが可能である。本明細書で使用される「言語入力」という用語は、人と人の間のコミュニケーションのために利用されるように語または句を備える任意の形態の入力を意味する。例えば、ホームエンターテイメントコンピューティングデバイス上で実行されるアプリケーションが、英語の音声コマンドを受け付け、理解し、さらにそのようなコマンドに応答して、ユーザーが、そのようなホームエンターテイメントコンピューティングデバイスによって提示されるべきエンターテイメントコンテンツを検索して、選択することができるようにするようにプログラミングされていることが可能である。別の例として、スマートフォンコンピューティングデバイス上で実行されているアプリケーションが、ユーザーによって尋ねられた質問を備える、英語の音声入力を受け付け、理解し、さらにそのような入力に応答するようにプログラミングされていることが可能である。通常、「言語入力」は、音声形態でユーザーによって与えられるが、本明細書で使用され、定義される「言語入力」という用語は、そのように限定されない。実際、本明細書で説明される機構は、本明細書で定義される「言語入力」がコンピューティングデバイスに与えられ得るテキスト、ジェスチャー、注視、手話、および類似する他の機構の形態で与えられる「言語入力」にも同様に適用可能である。
【００２４】
[0028]そのようなアプリケーションまたはプロセスは、アンカー言語で与えられた言語入力を理解し、それに基づいて動作することを担うコンピューター実行可能命令を表すことが可能な、図２に示されるもののような既存のアプリケーションインフラストラクチャー２２０を備え得る。当業者によって認識されるとおり、既存のアプリケーションインフラストラクチャー２２０内に包含される構成要素およびプロセスは、時間とリソースのかなりの投資に相当する。さらに、そのようなインフラストラクチャーは、そのようなインフラストラクチャーが作成された言語に固有である。例えば、既存のアプリケーションインフラストラクチャー２２０が、英語で与えられた言語入力を受け付け、それに基づいて動作するように設計されたアプリケーションの一部である場合、そのようなインフラストラクチャーは、フランス語などの別の言語で与えられた入力に基づいて動作することができない。その結果、既存のアプリケーションインフラストラクチャー２２０を備えるアプリケーションまたはプロセスの開発者が、例えば、そのようなアプリケーションまたはプロセスのフランス語バージョンを公表しようとする場合、その開発者は、既存のアプリケーションインフラストラクチャー２２０のフランス語指向のバージョンにかなりの時間とリソースを再び投資する必要がある。世界中で利用されるべきアプリケーションまたはプロセスの場合、そのような単一言語制限は、数多の言語に関する単一言語アプリケーションインフラストラクチャーの、最初からの作成の繰り返しをもたらし得る。時間とリソースのそのようなかなりの投資を回避するのに、既存のアプリケーションインフラストラクチャー２２０が、機械翻訳構成要素の助けを借りて再利用されることが可能である。より詳細には、後段で詳細に説明されるとおり、機械翻訳構成要素が、アプリケーションまたはプロセスのユーザーのネイティブ言語から既存のアプリケーションインフラストラクチャー２２０のアンカー言語に入力を翻訳することが可能であり、さらに、オプションとして、出力を翻訳することが可能であり、その結果、既存のアプリケーションインフラストラクチャー２２０が、アンカー言語とは異なるネイティブ言語で動作しているアプリケーションまたはプロセスに言語サービスを提供することを可能にする。既存のアプリケーションインフラストラクチャー２２０を再利用することによって、アプリケーションまたはプロセスの開発者は、他の言語における均等のバージョンを、それらの他の言語で既存のアプリケーションインフラストラクチャー２２０の同様のバージョンを再作成するのに通常、要求されるかなりの時間とリソースを投資することなしに、生成することができる。説明の簡明のため、「アンカー言語」という用語は、初期の言語インフラストラクチャーが作成された言語を意味するように使用され、この初期の言語インフラストラクチャーが再利用される。「ネイティブ言語」という用語は、アプリケーションまたはプロセスに入力が与えられる言語、およびアプリケーションまたはプロセスからの出力がもたらされることが見込まれる言語を意味するように使用される。
【００２５】
[0029]図２に示されるシステム２００は、コンピューティングデバイス上で実行され、さらに、ユーザー１５０などのユーザーからの言語入力を受け付けるアプリケーションまたはプロセスにおいて利用される、既存のアプリケーションインフラストラクチャー２２０を示す。詳細には、図２のシステム２００によって示されるとおり、ユーザー１５０によって生成された言語入力が、ユーザー１５０によって与えられた言語入力に適切である入力認識構成要素２１１によって最初に受け取られることが可能である。例えば、ユーザー１５０によって与えられた言語入力が音声入力である場合、入力認識構成要素２１１は、ユーザーの音声入力を表すオーディオ情報をテキスト情報に変換することができることが可能な音声認識構成要素であり得る。別の例として、ユーザー１５０によって与えられた言語入力が、手話を介して入力されている場合、入力認識構成要素２１１は、ユーザーの手話入力を表す画像情報をテキスト情報に変換することができることが可能な手話認識構成要素であり得る。
【００２６】
[0030]ユーザーの言語入力を表すテキスト情報は、言語理解構成要素２２１に供給され得る。言語理解構成要素２２１は、そのような言語入力を、テキストフォーマットで、ダイアログマネージャー２２２および知識ソース２２３と連携して受け付け、実行されるべき適切な応答処理を識別するコンテキストなどにおいて、その言語入力から意味を導き出すことができることが可能である。例えば、ユーザーが、所与のテレビショーの利用可能なエピソードのすべてを表示する命令を発話している場合、言語理解構成要素２２１は、ダイアログマネージャー２２２および知識ソース２２３と連携して、そのような言語入力が、検索して結果を表示する要求であり、さらにユーザーによって指定された名前が、検索パラメータであり、さらにその名前が題名の指定であったと解釈することが可能である。同様に、別の例として、ユーザーが、特定の都市に関して長期間にわたる予報を求めている場合、言語理解構成要素２２１は、ダイアログマネージャー２２２および知識ソース２２３と連携して、そのような言語入力が、気象情報を求める事実要求であり、さらにユーザーによって供給された名前が、気象情報が要求された地理的区域を定義する都市の名前であると解釈することが可能である。
【００２７】
[0031]前述したとおり、言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３は、時間とリソースのかなりの投資に相当し得る。より詳細には、言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３は、ユーザーから言語入力を受け取ること、および応答処理を決定し、行うことの複数回の繰り返しを介して構築され、改良されてきている可能性がある。そのような複数回の繰り返しは、先行する回において最適未満で実施されてきた可能性がある言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３の態様を補正しようとすることが可能である。例えば、ユーザーが、異なる語および言語スタイルを使用して同一の情報を求める可能性があり、言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３が、様々な繰り返しおよび改良を介して、より幅広いユーザー、およびより多様な入力に有意義に応答することができるように、ますます多くのそのような異なる語および言語スタイルを見込むことが可能である。
【００２８】
[0032]一実施形態において、言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３は、言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３が利用される特定のコンテキストに基づいて、さらに改良され得る。例えば、ホームエンターテイメントコンピューティングデバイス上でエンターテイメントコンテンツへのアクセスをもたらすアプリケーションが、そのようなエンターテイメントコンテンツに向けられた言語入力を受け取ることが可能であり、さらに言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３が、そのようなコンテキストを考慮に入れるよう的を絞るようにされることが可能である。そのような例を続けると、名前が、それまでは、既存のアプリケーションインフラストラクチャー２２０の一部ではなかった語または用語を備える新たなテレビショーが追加された場合、ユーザーが、そのような新たなテレビショーを要求したとすると、既存のアプリケーションインフラストラクチャーが、そのような要求を認識することができるように、インフラストラクチャーは、そのような語または用語、ならびにユーザーによるそれらの語または用語の発音、およびその他の話し方を含むように更新されることが可能である。同様に、別の例として、スマートフォンコンピューティングデバイス上でパーソナルアシスタンスサービスを提供するアプリケーションが、そのようなパーソナルアシスタンスサービスによって、通常、実行される狭いセットのアクションに向けられた言語入力を受け取ることが可能であり、言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３が、そのようなコンテキストを考慮に入れるように的を絞るようにされることが可能である。そのような別の例を続けると、既存のアプリケーションインフラストラクチャー２２０の１回目が、指定されたユーザーに対してテキストメッセージを作成する要求を適切に推測することも、効率的に処理することもない場合、既存のアプリケーションインフラストラクチャー２２０の後続の回が、ユーザーの言語入力に基づいてそのような要求をより容易に認識し、それらの要求に応答するように更新されることが可能である。
【００２９】
[0033]言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３が、応答処理の実行を開始すると、出力が、適切な限りで、言語生成構成要素２２４に向けられることが可能であり、構成要素２２４は、ダイアログマネージャー２２２および知識ソース２２３と協力して、或る言語様態で出力をもたらすことが可能である。言語生成構成要素２２４は、言語理解構成要素２２１、ダイアログマネージャー２２２、および知識ソース２２３と同様に、時間とリソースのかなりの投資にやはり相当することが可能であり、さらに応答出力をもたらす際に言語生成構成要素２２４によって利用される言語のユーザーによる知覚を向上させようとする複数回の繰り返しの結果として生成されていることが可能である。
【００３０】
[0034]一実施形態において、言語生成構成要素２２４によってもたらされる出力は、ユーザー１５０によって知覚され得る形態で生成されるように出力生成構成要素２１２に向けられることが可能である。例えば、テキスト−音声構成要素が、音声フォーマットで言語出力をもたらすことができる出力生成構成要素であり得る。当業者によって認識されるとおり、他のタイプの出力生成構成要素が同様に利用されることも可能である。
【００３１】
[0035]前述したとおり、既存のアプリケーションインフラストラクチャー２２０は、時間とリソースのかなりの投資に相当し得る。残念ながら、既存のアプリケーションインフラストラクチャー２２０は、通常、例えば、英語などの単一言語のコンテキスト内で作成される。その結果、フランス語などの別の異なる言語で言語入力を与えるユーザーは、そのようなアプリケーションを利用することができない。しかし、一実施形態において、他の言語にて既存のアプリケーションインフラストラクチャー２２０のものと同様の構成要素を再作成するのではなく、機械翻訳技術が、そのような他の言語と、既存のアプリケーションインフラストラクチャー２２０が最初に作成される際にコンテキストとされたアンカー言語の間で翻訳するのに利用され得る。図２のシステム２００は、そのようなハイブリッドアプリケーションを示し、このアプリケーションは、アンカー言語における既存のアプリケーションインフラストラクチャー２２０と、ネイティブ言語とアンカー言語の間で翻訳する機械翻訳構成要素とを備え、その結果、１つまたは複数のネイティブ言語における言語理解機能を、アンカー言語における既存のアプリケーションインフラストラクチャー２２０を再利用して、それらの他のネイティブ言語で同様のインフラストラクチャーを再作成する時間と費用を節約しながら、もたらすことが可能である。
【００３２】
[0036]最初に、既存のアプリケーションインフラストラクチャー２２０の作成が行われたアンカー言語とは異なるネイティブ言語を使用してユーザーによって与えられた言語入力が、言語識別構成要素２３０に向けられることが可能である。例えば、外国人ユーザー２５０が、ネイティブ言語で入力を与えることが可能である。そのような入力が、言語識別構成要素２３０に向けられることが可能であり、構成要素２３０は、外国人ユーザー２５０によって言語入力が与えられている言語を識別するための知られている技法を利用することが可能である。外国人ユーザー２５０によって与えられた言語入力の言語が識別されると、その入力は、入力認識構成要素２４１、２６１、および２７１のうちの適切な１つに向けられることが可能である。例えば、外国人ユーザー２５０がフランス語で言語入力を与えた場合、言語識別構成要素２３０が、そのような言語入力をフランス語であると識別することが可能であり、さらにその入力をフランス語入力認識構成要素に向けることが可能である。入力認識構成要素２４１、２６１、および２７１のそれぞれが、そのような入力認識構成要素が関連付けられており、そのような入力認識構成要素が動作するコンテキストとされる言語に関して同様の機能を実行することが可能である。また、そのような機能は、前段で動作を詳細に説明した入力認識構成要素２１１と同様でもある。
【００３３】
[0037]外国人ユーザー２５０によって与えられた言語入力が、外国人ユーザー２５０によってその入力が与えられた言語の、テキストベースの言語入力に変換されると、そのテキストベースの言語入力は、アンカー言語に翻訳されるように機械翻訳構成要素に供給されて、その結果、既存のアプリケーションインフラストラクチャー２２０が再利用され得るようにすることが可能である。入力認識構成要素２４１、２６１、および２７１のうちのいずれが選択されたかに依存して、言語識別構成要素２３０によって実行された言語識別に基づいて、機械翻訳構成要素２４０、２６０、および２７０の中から適切な機械翻訳構成要素に、入力認識構成要素２４１、２６１、および２７１のうちの選択された１つによって生成されたテキストベースの言語入力が供給されることが可能である。
【００３４】
[0038]機械翻訳構成要素２４０、２６０、および２７０などの機械翻訳構成要素のうちの１つが、言語入力をアンカー言語に翻訳すると、その翻訳された入力は、その入力が前段の説明におけるその入力と同一のアンカー言語になっているので、前段で説明したのと同一の様態で言語理解構成要素２２１に供給されることが可能である。さらに、既存のアプリケーションインフラストラクチャー２２０が、言語生成構成要素２２４を介するなどして、出力を生成したとすると、翻訳された入力を言語理解構成要素２２１に供給した機械翻訳構成要素が、言語生成構成要素２２４によって生成された出力を受け取ることも可能であり、さらにその出力を、外国人ユーザー２５０に提示するためにネイティブ言語に戻すように翻訳することが可能である。より詳細には、当業者によって認識されるとおり、機械翻訳技術は、１つのアプリケーションから別のアプリケーションに翻訳するとともに、その逆の翻訳もして、双方向であることが可能である。その結果、言語生成構成要素２２４によって生成された出力を受け取ると、機械翻訳構成要素２４０、２６０、および２７０のうちの適切な１つが、言語生成構成要素２２４によってそのような出力が供給されたアンカー言語からネイティブ言語に、すなわち、最初に入力を与えるために外国人ユーザー２５０によって使用されたネイティブ言語に翻訳することが可能である。
【００３５】
[0039]機械翻訳構成要素２４０、２６０、および２７０のうちの１つによって翻訳された出力である出力が、前段で詳細に説明した出力生成構成要素２１２と同様の様態で動作することが可能な、対応する出力生成構成要素２４２、２６２、および２７２に供給されることが可能である。当業者によって認識されるとおり、出力生成構成要素が、非常に基本的なテキスト−音声構成要素に過ぎない場合、特定の言語に特有の出力生成構成要素の必要性は、存在しない可能性がある。しかし、そのような非常に基本的なテキスト−音声構成要素は、言語出力のいくつかの態様を正確に言語化することができない可能性があるとともに、独自の音を使用する言語に対応できない可能性がある。したがって、図２のシステム２００は、言語特有であって、その結果、各出力生成構成要素が、その出力生成構成要素が関連付けられた言語の再現に合わせて仕立てられることを可能にする、出力生成構成要素２４２、２６２、および２７２を示す。
【００３６】
[0040]図２のシステム２００は、コンピューター実行可能命令の単一のコレクションが、異なる複数の言語を話す外国人ユーザーから入力を受け付けることができる実施形態、つまり、多言語ハイブリッドアプリケーションを示す。例として、既存のアプリケーションインフラストラクチャー２２０が、英語アプリケーションまたは英語プロセスの一部であった場合、図２のシステム２００は、コンピューター実行可能命令の単一のコレクションが、フランス語、中国語、およびアラビア語で入力を等しく受け付けることが可能な実施形態を示す。フランス語入力は、言語識別構成要素２３０などによって識別されることが可能であり、さらに、例えば、入力認識構成要素２４１に向けられ、その後、フランス語とアンカー言語、すなわち、この例では、英語の間で翻訳することができる、対応する機械翻訳構成要素２４０に向けられることが可能である。同様に、中国語入力が、言語識別構成要素２３０などによって識別されることが可能であり、さらに、この例と続けると、入力認識構成要素２６１に向けられ、その後、中国語と英語の間で翻訳するように動作することができる機械翻訳構成要素２６０に向けられることが可能である。アラビア語入力が、同様に、やはり、例として、入力認識構成要素２７１および機械翻訳構成要素２７０に向けられることが可能である。
【００３７】
[0041]しかし、別の実施形態において、それぞれの単一のアプリケーションまたはプロセスが、特定の１つの言語だけに向けられる、つまり、単一言語ハイブリッドアプリケーションであることが可能である。そのような実施形態において、言語識別構成要素２３０は、取り除かれることが可能であり、機械翻訳構成要素、ならびに関連する入力認識構成要素および出力生成構成要素も１つを除いて、すべて取り除かれることが可能である。例えば、或るアプリケーションが、フランス語話者のために構築されるとした場合、英語話者のために構築された既存のアプリケーションインフラストラクチャー２２０を利用して、そのようなアプリケーションは、フランス語入力を受け付けて、その入力を、フランス語のテキストベースの言語入力に変換することが可能な単一の入力認識構成要素と、フランス語のそのテキストベースの言語入力を、言語理解構成要素２２１に供給されるべき英語のテキストベースの入力に翻訳することが可能な単一の機械翻訳構成要素とを備えることが可能である。同様に、単一の機械翻訳構成要素が、英語出力を、既存のアプリケーションインフラストラクチャー２２０によって生成されている限りで、フランス語に翻訳し、さらにその翻訳されたフランス語出力を単一のフランス語出力生成構成要素に供給することが可能である。そのようにして、アプリケーションまたはプロセスの複雑度およびサイズが小さくされることが可能であるが、それぞれのそのような単一言語アプリケーションまたは単一言語プロセスは、１つの言語のコンテキストで動作することしか可能でない。
【００３８】
[0042]当業者には認識されるとおり、図２のシステム２００に例示されるもののような機械翻訳構成要素は、当技術分野でよく知られており、絶え間ない研究および改良の対象となっている。それでも、一実施形態において、前段で詳細に説明したような様態などで利用される機械翻訳構成要素が、アプリケーションまたはプロセスの特定のコンテキスト内で、より高い精度をもたらすように微調整され得ることが企図される。例えば、ユーザに、エンタテイメント・コンテンツへのアクセスを提供するように設計されるアプリケーション（ホームエンタテイメントコンピューティングデバイスにおいて実行されることとなるようなアプリケーション）は、機械翻訳構成要素を含み得る。この機械翻訳構成要素は、エンタテイメント・アプリケーションに関連する、過剰な表現を含む言葉遣いを含むように修正され得る。ここで、このエンタテイメント・アプリケーションは、既成の機械翻訳構成要素の一部でない可能性がある。そして、前記過剰な表現を含む言葉遣いは、絶えず進化し得る（例えば、新たなテレビショーまたは映画によって使用される用語のように）。
同様に、言語理解構成要素２２１、ダイアログマネージャー２２２、知識ソース２２３、および言語生成構成要素２２４も、機械翻訳構成要素の導入とともに生じる可能性がある特定の問題に対応するようにやはり変更され得る。例えば、アンカー語のいくつかの語、用語、または句が、当該の言語において同義語であるような他の語、用語、または句と比べて、機械翻訳構成要素によって、より正確に翻訳される可能性がある。そのような事例において、それらの語、用語、および句が、既存のアプリケーションインフラストラクチャー２２０によって優遇されることが可能である。
【００３９】
[0043]一実施形態において、機械翻訳構成要素がネイティブ言語とアンカー言語の間で翻訳するのに利用され、その結果、アンカー言語における既存のアプリケーションインフラストラクチャーの再利用を円滑にする、図２のシステム２００によって例示されるハイブリッドアプリケーションが、アンカー言語とは異なるネイティブ言語における単一言語アプリケーションまたは単一言語プロセスを生成する開始点として利用されることが可能である。図３を参照すると、図示されるシステム３００が、ハイブリッドアプリケーションまたはハイブリッドプロセスからの非ハイブリッド単一言語アプリケーションまたは非ハイブリッド単一言語プロセスの例示的な作成を例示する。最初に、図３のシステム３００によって示されるとおり、入力が、ネイティブ言語で入力認識構成要素３１１によって受け取られることが可能であり、次に、前段で詳細に説明される様態などで、既存のアプリケーションインフラストラクチャー２２０に供給するためにアンカー言語に翻訳されるように機械翻訳構成要素３１０に供給されることが可能である。
【００４０】
[0044]前述したとおり、ユーザーの入力のいくつかの用語、語、句、およびその他の言語構成要素に関して、機械翻訳構成要素３１０、既存のアプリケーションインフラストラクチャー２２０、または機械翻訳構成要素３１０と既存のアプリケーションインフラストラクチャー２２０の何らかの組み合わせが、それらの言語構成要素をより正確に解釈して、それらの言語構成要素に応答するように変更され得る。一実施形態において、機械翻訳構成要素３１０、または既存のアプリケーションインフラストラクチャー２２０を変更して、そのような改良を見込むのではなく、ネイティブ言語における新たな言語理解構成要素３２１、やはりネイティブ言語における新たなダイアログマネージャー３２２、新たな知識ソース３２３、および新たな言語生成３２４が、そのような変更および改良に対処するように作成され得る。時間の経過とともに、その後の繰り返しを介して、言語理解構成要素３２１、ダイアログマネージャー３２２、知識ソース３２３、および言語生成構成要素３２４は、絶えず改良され、拡張されて、最終的には、既存のアプリケーションインフラストラクチャー２２０に頼ることなしに動作することができることが可能である。そのような事例において、機械翻訳構成要素３１０も同様に、もはや要求されず、その結果、ネイティブ言語に関する新たなアプリケーションまたはプロセスは、前段で詳細に説明したもののような、ハイブリッドであることを止めることが可能である。代わりに、ネイティブ言語に関するそのような新たなアプリケーションまたはプロセスは、入力認識構成要素３１０と、言語理解構成要素３２１と、ダイアログマネージャー３２２と、知識ソース３２３と、言語生成構成要素３２４と、出力生成構成要素３１２とを備えることが可能であり、以上の構成要素のすべてが、直接にネイティブ言語で動作することが可能である。そのようにして、既存のアプリケーションインフラストラクチャー２２０を再利用したハイブリッドアプリケーションまたはハイブリッドプロセスが、一時しのぎの措置、つまり、ネイティブ言語における単一言語構成要素が、現実世界の利用およびフィードバックに基づいて開発され、改良されている間にその後の繰り返しを介して非ハイブリッド単一言語アプリケーションまたは非ハイブリッド単一言語プロセスが生成され得る一時的構造体の役割をしてきていることが可能である。
【００４１】
[0045]図４を参照すると、図示される流れ図４００が、アンカー言語における既存のアプリケーションの言語構成要素が再利用されて、アンカー言語とは異なる１つまたは複数のネイティブ言語における言語機能をもたらし得る例示的な一連のステップを示す。例えば、一実施形態において、図４に示される流れ図４００の例示的なステップが、アプリケーション開発者またはプロセス開発者に提供され得るサービスによって実行されて、開発者が、それらの開発者が開発者のアプリケーションまたはプロセスを最初に作成したアンカー言語とは異なる１つまたは複数のネイティブ言語からの言語入力を受け付けることができる開発者のアプリケーションまたはプロセスのバージョンを効率的に作成できるようにすることが可能である。ステップ４１０で示されるとおり、アンカー言語における既存の単一言語プロセスまたは単一言語アプリケーションが、そのサービスに供給されるべき入力などの開始点として利用されることが可能である。その後、ステップ４２０で、ステップ４１０からの既存の単一言語プロセスを受け取ると、またはそのようなプロセスに対するアクセスを得ると、アンカー言語以外の言語で入力を受け付けることができ、さらに入力が与えられたそのような言語を識別して、適切な機械翻訳構成要素を選択することができる言語識別構成要素が、インストールされることが可能である。前述したとおり、一実施形態において、作成されるべきハイブリッドアプリケーションまたはハイブリッドプロセスが、アンカー言語以外の単一の言語だけの入力を受け付けるように作成されるべき場合、１つの機械翻訳構成要素、すなわち、アンカー言語と、ハイブリッドアプリケーションまたはハイブリッドプロセスが向けられる他の単一の言語の間で翻訳するための機械翻訳構成要素だけしか利用され得ないので、ステップ４２０は、オプションであり得る。
【００４２】
[0046]ステップ４３０で、ステップ４１０からの単一言語プロセスが作成される際にコンテキストとされたアンカー言語と、入力が受け付けられることが可能であり、オプションとして、出力がもたらされることが可能な、アンカー言語とは異なる１つまたは複数のネイティブ言語の間で翻訳することができる１つまたは複数の機械翻訳構成要素が、インストールされることが可能である。ステップ４３０で複数の機械翻訳構成要素がインストールされる場合、ステップ４３０でインストールされたそれらの機械翻訳構成要素は、アンカー言語と、ステップ４２０でインストールされた言語識別構成要素によって識別され得るネイティブ言語の間で翻訳することが可能である。
【００４３】
[0047]その後、ステップ４４０で、ステップ４３０でインストールされた機械翻訳構成要素に対応する入力認識構成要素および出力生成構成要素が、インストールされることが可能である。前述したとおり、入力認識構成要素が、音声言語入力のオーディオなどの様々な形態で言語入力を受け付けることが可能であり、さらにそのような形態を認識して、それらの形態をテキストベースの言語入力に変換することが可能である。そのようなテキストベースの言語入力が、次に、例えば、機械翻訳構成要素などのさらなるプロセスに供給されることが可能である。やはり前述したとおり、ステップ４４０でインストールされたもののような入力認識構成要素は、１つの言語で言語入力を認識するように設計された入力認識構成要素が、その１つの言語でそのような言語入力を正確に認識することだけしかできないという点で、言語特有であり得る。したがって、ステップ４４０でインストールされた入力認識構成要素は、ステップ４３０でインストールされた機械翻訳構成要素に、そのような構成要素が動作する際のコンテキストとされる言語に限って、対応することが可能である。このため、或る特定のセットの言語に関する機械翻訳構成要素が、ステップ４３０でインストールされている場合、次に、ステップ４４０で、同一のそれらの言語に関する入力認識構成要素が、インストールされることが可能である。
【００４４】
[0048]やはり、前述したとおり、出力生成構成要素が、テキストベースの言語出力を受け付けることが可能であり、さらにその出力を、例えば、その言語出力を発話することなどによって、ユーザーによって受け付けられ得るように生成することが可能である。出力生成構成要素は、言語中立であり得ることが可能であるが、そのような出力生成構成要素は、最適未満である可能性がある。したがって、一実施形態において、ステップ４４０で、ステップ４４０でやはりインストールされている入力認識構成要素の言語に対応する言語特有の出力生成構成要素が、インストールされ得ることが企図される。
【００４５】
[0049]その後、ステップ４５０で、ステップ４３０でインストールされている機械翻訳構成要素が、特定の言語の言語入力を受け付ける入力認識構成要素が、そのような言語とアンカー言語の間で翻訳することができる機械翻訳構成要素と通信状態にあるように結合されるように、さらに特定の言語で言語出力を生成する出力生成構成要素が、その言語とアンカー言語の間で翻訳することができる機械翻訳構成要素と通信状態にあるように結合されるように、ステップ４４０でインストールされている入力認識構成要素および出力生成構成要素に通信状態にあるように結合されることが可能である。ステップ４６０で、ステップ４３０でインストールされている機械翻訳構成要素が、ステップ４１０の既存の単一言語プロセスまたは単一言語アプリケーションの言語構成要素に通信状態にあるように結合されることが可能である。詳細には、ステップ４３０でインストールされている機械翻訳構成要素が、既存の単一言語プロセスまたは単一言語アプリケーションのそのような言語構成要素に、そのような言語入力が与えられたネイティブ言語からアンカー言語に翻訳された言語入力を供給することが可能である。同様に、ステップ４３０でインストールされている機械翻訳構成要素において、オプションとして、既存の単一言語アプリケーションまたは単一言語プロセスのそのような言語構成要素から、アンカー言語の言語出力を受け取ることが可能であり、次に、この言語出力を、機械翻訳構成要素が、ネイティブ言語に翻訳することが可能である。
【００４６】
[0050]図２のシステム２００によって示されるとおり、ステップ４２０乃至４６０によって実行されるインストールおよび通信結合が、ステップ４１０で入力されるもののような、既存の単一言語アプリケーションまたは単一言語プロセスを、アンカー言語とは異なる１つまたは複数のネイティブ言語からの入力を受け付けることができ、さらに、オプションとして、同一のそれらのネイティブ言語で出力をもたらすことができるハイブリッドアプリケーションまたはハイブリッドプロセスに変換することが可能である。その結果、図４に示される流れ図４００の関係のある処理は、ステップ４７０で終了することが可能である。
【００４７】
[0051]図５を参照すると、図示される流れ図５００が、１つまたは複数のネイティブ言語で入力を受け付けること、および、オプションとして、出力をもたらすことが、それらのネイティブ言語とは異なるアンカー言語における言語構成要素を再利用しながら、可能である、ハイブリッドアプリケーションまたはハイブリッドプロセスによって実行され得る例示的な一連のステップを示すことが可能である。最初に、ステップ５１０で、示されるとおり、ネイティブ言語の言語入力が、受け取られることが可能である。その後、ステップ５１５で、ステップ５１０でその言語入力が受け取られたネイティブ言語が、識別されることが可能である。次に、その識別が、ステップ５２０で、ステップ５１０で受け取られた言語入力が向けられることが可能な入力認識構成要素を選択するのに利用されることが可能である。詳細には、ステップ５２０で選択される入力認識構成要素は、ステップ５５０で識別されるネイティブ言語の入力を認識するように設計された入力認識構成要素であり得る。次に、ステップ５２５で、その選択された入力認識構成要素が、ステップ５１０からの言語入力を認識して、その入力をテキストベースの言語入力に変換することが可能である。
【００４８】
[0052]ステップ５３０で、そのテキストベースの言語入力が、ステップ５１０で受け取られた言語入力の、ステップ５１５で識別されたネイティブ言語とアンカー言語の間で翻訳することができる機械翻訳構成要素に供給されることが可能である。ステップ５３５で、機械翻訳構成要素が、テキストベースの言語入力を、そのような言語入力が最初に与えられたネイティブ言語からアンカー言語に翻訳することが可能である。その後、ステップ５４０で、今や、アンカー言語になっている翻訳されたテキストが、アンカー言語で最初に生成された既存のアプリケーションまたはプロセスの言語構成要素に供給されることが可能である。次に、前述したとおり、時間とリソースのかなりの投資に相当し得るそれらの既存の言語構成要素が、ステップ５４０でアンカー言語で供給された入力を処理することが可能であり、さらに適切な応答を生成することが可能である。
【００４９】
[0053]ステップ５４５で、既存の言語構成要素からの応答が、アンカー言語で受け取られることが可能であり、さらにステップ５５０で、アンカー言語から、ステップ５１０で言語入力が受け取られたネイティブ言語に翻訳されることが可能である。ステップ５５５で、翻訳された応答が、ネイティブ言語に関連する出力生成構成要素に供給されることが可能である。例えば、前述したとおり、そのような出力生成構成要素は、翻訳された応答を言語化することができるテキスト−音声構成要素であり得る。当業者によって認識されるとおり、そのようなテキスト−音声構成要素は、特定の音声言語のニュアンスを捉え、より正確な出力をユーザーが受け取るようにもたらすために、言語特有であり得る。このため、ステップ５５５で、選択されることが可能な出力生成構成要素は、ステップ５１０で受け取られた言語入力が受け取られた、必要とされる言語で出力をもたらす出力生成構成要素であり得る。ステップ５６０で、出力が、出力生成構成要素によって生成されて、ユーザーに与えられることが可能である。次に、ステップ５６５で、関係のある処理が終了することが可能である。
【００５０】
[0054]図６を参照すると、図示される流れ図６００が、ネイティブ言語で入力を受け付けること、および、オプションとして、出力をもたらすことができる単一言語プロセスを作成するように実行され得る例示的な一連のステップを示し、そのような単一言語プロセスは、アンカー言語で最初に作成された既存の言語構成要素を、アンカー言語とネイティブ言語の間で翻訳する機械翻訳構成要素と一緒に再利用しているハイブリッドプロセスから作成されることが可能である。最初に、ステップ６１０で、そのようなハイブリッドプロセスが、例えば、図４の流れ図４００のステップなどによって、既に作成されていることが可能である。その後、そのハイブリッドプロセスの実行の一環として、ステップ６５０などで、ネイティブ言語の言語入力が受け取られることが可能である。ステップ６２０で、そのハイブリッドプロセスが、前段で詳細に説明される様態などで、その言語入力を認識して、その入力をテキストベースの言語入力に変換することが可能である。
【００５１】
[0055]ステップ６２５で、ネイティブ言語における言語理解構成要素が、ステップ６２０で生成されたテキストベースの言語入力を適切に処理することができるかどうかの判定が、行われることが可能である。ネイティブ言語で動作しているそのような言語理解構成要素が、そのような言語入力を適切に処理することができない場合、処理は、前段で詳細に説明した、ステップ５３０乃至５５５に進むことが可能である。その後、ステップ５３０乃至５５５の実行の後、処理は、ステップ６３０に戻ることが可能であり、ステップ５３０乃至５５５によって実行された処理にかけられた受け取られた言語入力に関する情報が、ネイティブ言語において実装される言語理解構成要素、ダイアログマネージャー、および類似する他の言語構成要素を改良するのに利用されることが可能である。次に、処理は、ステップ６４５に進むことが可能であり、ステップ５３０乃至５５５によって生成された応答が、ネイティブ言語でユーザーに提示される、または出力されることが可能である。
【００５２】
[0056]しかし、ステップ６２５で、ネイティブ言語における言語処理構成要素が、その言語入力を適切に処理することができると判定された場合、処理は、代わりに、ステップ６３５に進むことが可能であり、テキストベースの言語入力が、ネイティブ言語とアンカー言語の間で機械翻訳を全く要求することなしに、ネイティブ言語における言語理解構成要素に供給されることが可能である。その後、ステップ６４０で、応答が、言語理解構成要素と同様に、ネイティブ言語のコンテキスト内で動作する言語生成構成要素から受け取られることが可能である。ステップ６４５で、前述したとおり、そのようなネイティブ言語応答が、ユーザーに出力されることが可能である。一実施形態において、ステップ６５０で、ハイブリッドプロセスによって再利用されていたアンカー言語における既存の言語構成要素が、依然として、実際、利用されているかどうかの確認が、行われることが可能である。ステップ６５０で、そのようなアンカー言語の言語構成要素が、依然として利用されていると判定された場合、処理は、ステップ６１５に戻り、さらなる言語入力を受け取ることが可能である。しかし、ステップ６５０で、アンカー言語のコンテキスト内で動作する言語構成要素が、もはや利用されていないと判定された場合、一実施形態において、ステップ６５５で、それらの言語構成要素が、ハイブリッドアプリケーションまたはハイブリッドプロセスから破棄されて、ステップ６６０で示されるとおり、ネイティブ言語のコンテキスト内で動作する単一言語アプリケーションまたは単一言語プロセスだけが残されることが可能である。
【００５３】
[0057]前段の説明から理解され得るとおり、既存の言語構成要素を再利用して、そのような既存の言語構成要素が動作するコンテキストとされる言語以外の言語の言語入力、および、オプションとして、そのような言語の出力を、そのような言語と既存の構成要素の言語の間で翻訳する機械翻訳構成要素を利用することによって処理するための機構が、提示されてきた。本明細書で説明される主題の可能な多くの変形形態に鑑みて、我々は、添付の特許請求の範囲、および均等の範囲に含まれ得るすべてのそのような実施形態を我々の発明として主張する。
【図１】
0006595912.tif 000002
【図２】
0006595912.tif 000003
【図３】
0006595912.tif 000004
【図４】
0006595912.tif 000005
【図５】
0006595912.tif 000006
【図６】
0006595912.tif 000007