(58)【調査した分野】(Int.Cl.,DB名)
前記ユーザによって受け取られることが可能な前記出力を前記生成するステップは、テキスト−音声構成要素(text-to-speech component)を利用するステップを含む請求項1に記載の方法。
前記テキストベースの言語入力を、前記第1の言語から前記第2の言語に翻訳するのに少なくとも1つが利用される、少なくとも2つの機械翻訳構成要素を利用するステップをさらに含む請求項4に記載の方法。
【発明を実施するための形態】
【0013】
[0017]以下の説明は、異なるアンカー言語に関連付けられた既存の言語構成要素を、そのアンカー言語と他の1つまたは複数の言語の間で翻訳することができる機械翻訳構成要素と一緒に再利用することによって、1つまたは複数の言語で言語入力を受け付けることができるプロセスの効率的な生成に関する。言語入力は、入力が与えられたいずれの言語からも、そのような入力を、既存の言語構成要素が関連付けられているアンカー言語に翻訳することができる機械翻訳構成要素に向けられることが可能である。次に、それらの既存の言語構成要素が、その言語入力に応答する処理を開始して、適切な出力を生成するのに利用されることが可能である。オプションとして、その出力は、ユーザーに提示するために、入力が受け取られたのと同一の言語に再び翻訳されるように機械翻訳構成要素に向けられることが可能である。複数の機械翻訳構成要素が、異なる複数の言語から言語入力を受け付けるのに利用されることが可能であり、言語識別構成要素が、そのような言語入力を最初に受け取ることが可能であり、さらにそのような言語入力が与えられた言語を識別し、その結果、適切な機械翻訳構成要素を選択することが可能である。機械翻訳構成要素と、アンカー言語に関連付けられた言語構成要素とを備えるハイブリッドプロセスが、開始構造の役割をすることも可能であり、この構造から、単一言語プロセスが時とともに作成されることが可能である。
【0014】
[0018]本明細書で説明される技法は、音声入力などの言語入力に的を絞る。しかし、そのような例示および説明が、記述を容易にするために行われるが、本明細書で説明される技法は、そのように限定されない。詳細には、説明される技法は、言語ベースである任意の種類の入力にも同様に適用可能である。したがって、後段の例示および説明は、単に例示的であることを意図しており、後段で説明される技法を、説明される特定の言語入力に限定することは意図していない。
【0015】
[0019]必須ではないものの、後段の説明は、計算能力を有するデバイスによって実行されている命令の一般的なコンテキストで行われる。そのようなコンピューティングデバイスには、従来のコンピューターと、中央処理装置によってもたらされるものなどの計算能力を有する家庭用電子デバイスがともに含まれる。このため、後段の説明は、そのようなコンピューティングデバイスによって実行されることが可能である、プログラムモジュールなどのコンピューター実行可能命令の一般的なコンテキストで行われる。より詳細には、この説明は、特に明記しない限り、1つまたは複数のコンピューティングデバイスまたは周辺装置によって実行される動作、および操作の記号表現について述べる。このため、ときとして、コンピューターによって実行されるものとして記述されるそのような動作および操作には、構造化された形態のデータを表す電気信号の、処理装置による操作が含まれることが理解されよう。この操作は、データを変換し、またはメモリー内のロケーションにデータを保持し、このことが、当業者によってよく理解される様態でコンピューティングデバイスまたは周辺装置の動作を再構成する、またはそれ以外で変える。データが保持されるデータ構造は、データのフォーマットによって定義された特定の特性を有する物理的ロケーションである。
【0016】
[0020]一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。さらに、それらのコンピューティングデバイスは、従来のパーソナルコンピューター、および従来のパーソナル電子デバイスに限定されなくてもよく、ハンドヘルドデバイス、マルチプロセッサシステム、他のマイクロプロセッサベースの家庭用電子機器もしくはプログラマブル家庭用電子機器、ネットワークPC、ミニコンピューター、メインフレームコンピューターなどを含め、計算することができる他のデバイスを含み得ることが当業者には認識されよう。同様に、それらのコンピューティングデバイスは、それらの機構が、通信ネットワークを介して結び付けられた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実施されることも可能であるので、スタンドアローンのデバイスに限定されなくてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリーストレージデバイスと遠隔メモリーストレージデバイスの両方の中に配置され得る。
【0017】
[0021]
図1を参照すると、1つまたは複数の中央処理装置(CPU)120、システムメモリー130、ならびにシステムメモリーを含む様々なシステム構成要素を処理装置120に結合するシステムバス121を含み得るが、以上には限定されない例示的なコンピューティングデバイス100が示される。システムバス121は、様々なバスアーキテクチャーのいずれかを使用する、メモリーバスもしくはメモリーコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。コンピューティングデバイス100は、ユーザー150がコンピューティングデバイスと対話することを可能にすることができる周辺装置を含み得る。そのような周辺装置には、ユーザーフィードバック152などの情報をコンピューティングデバイス100からユーザー150に与えるための周辺装置が含まれることが可能であり、さらにユーザー150が、ユーザー入力151などの情報および命令をコンピューティングデバイス100に与えることができるようにするための周辺装置が含まれることが可能である。コンピューティングデバイス100がユーザーに情報を提示することを可能にすることができる周辺装置は、ユーザーに視覚的なグラフィカルユーザーインターフェースを提示するのに、コンピューティングデバイスによって利用され得るグラフィックスハードウェアインターフェース190およびディスプレイデバイス191を含むが、以上には限定されないグラフィックスハードウェアを備えることが可能である。コンピューティングデバイス100がユーザーに情報を提示できるようにすることが可能な周辺装置には、コンピューティングデバイス100からの聴覚情報をそのコンピューティングデバイスのユーザーに与えることができる1つまたは複数のスピーカ189、ならびに
図1には明示されない類似する他の周辺デバイスが含まれることも可能である。そのような周辺装置は、システムバス121に接続された周辺インターフェース180を介してコンピューティングデバイス100に通信状態にあるように結合され得る。ユーザーがコンピューティングデバイス100に情報を与えることを可能にすることができる周辺装置には、マウス182、キーボード181、マイクロフォン184、動き検出器185、またはトラックパッド、アクセサリータブレット、マルチタッチ入力デバイスなどの、
図1に明示されない他のデバイスが含まれ得る。前述した周辺デバイスは、周辺インターフェース180を介してコンピューティングデバイス100のシステムバス121に通信状態にあるように結合されることが可能であり、さらに、しばしば、それらのデバイスの機能を可能にするハードウェア態様とソフトウェア態様の両方を含む。このため、それらのデバイスのハードウェア表現だけが
図1に示されるが、後段でそのような周辺装置について述べることは、そのような周辺装置の適切な動作のために利用されるハードウェア態様とソフトウェア態様の両方を含むことを意図している。
【0018】
[0022]また、コンピューティングデバイス100は、通常、コンピューティングデバイス100によってアクセスされ得る任意の利用可能な媒体を含み得るコンピューター可読媒体も含み、さらに揮発性媒体と不揮発性媒体、ならびにリムーバブルメディアと非リムーバブルメディアをともに含む。例として、限定としてではなく、コンピューター可読媒体は、コンピューター記憶媒体、通信媒体、またはコンピューター記憶媒体と通信媒体の組み合わせを備えることが可能である。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実装された媒体を含む。通信媒体は、通常、搬送波または他のトランスポート機構などの変調されたデータ信号としてコンピューター可読命令、データ構造、プログラムモジュール、または他のデータを実現し、任意の情報配信媒体を含む。
【0019】
[0023]システムメモリー130は、読み取り専用メモリー(ROM)131およびランダムアクセスメモリー(RAM)132などの揮発性メモリーおよび/または不揮発性メモリーの形態でコンピューター記憶媒体を含む。起動中などの、コンピューティングデバイス100内の要素間で情報を転送するのを助ける基本ルーチンを包含する基本入出力システム133(BIOS)が、通常、ROM131の中に格納される。RAM132は、処理装置120が即時にアクセスすることが可能であり、さらに/または処理装置120によって現在、操作されているデータおよび/またはプログラムモジュールを、通常、包含する。例として、限定としてではなく、
図1は、オペレーティングシステム134、他のプログラムモジュール135、およびプログラムデータ136を示す。
【0020】
[0024]また、コンピューティングデバイス100は、他のリムーバブル/非リムーバブルの、揮発性/不揮発性のコンピューター記憶媒体を含むことも可能である。単に例として、
図1は、不揮発性磁気媒体から読み取る、またはそのような媒体に書き込むハードディスクドライブ141を示す。例示的なコンピューティングデバイスで使用され得る他のリムーバブル/非リムーバブルの、揮発性/不揮発性のコンピューター記憶媒体には、磁気テープカセット、フラッシュメモリーカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、以上には限定されない。ハードディスクドライブ141は、通常、不揮発性メモリーインターフェース140などのインターフェースを介してシステムバス121に接続される。
【0021】
[0025]前述し、
図1に示されるドライブ、およびそれらのドライブに関連するコンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、および他のデータのストレージをコンピューティングデバイス100にもたらす。
図1で、例えば、ハードディスクドライブ141が、オペレーティングシステム144、他のプログラムモジュール145、およびプログラムデータ146を格納していることが例示される。これらの構成要素は、オペレーティングシステム134、他のプログラムモジュール135、およびプログラムデータ136と同一であることも、異なることも可能であることに留意されたい。オペレーティングシステム144、他のプログラムモジュール145、およびプログラムデータ146には、少なくとも、これらが異なるコピーであることを示すように、ここでは、異なる番号が与えられる。
【0022】
[0026]コンピューティングデバイス100は、1つまたは複数の遠隔コンピューターに対するローカル接続を使用するネットワーク化された環境において動作することが可能である。コンピューティングデバイス100は、いずれの特定のネットワークにも、いずれの特定のネットワーキングプロトコルにも限定されない。このため、例示を簡単にするため、コンピューティングデバイス100は、
図1では、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または他のネットワークであり得る一般的なネットワーク接続171を介してネットワーク172に接続されることが示される。コンピューティングデバイス100は、ネットワークインターフェースまたはネットワークアダプタ170を介して一般的なネットワーク接続171に接続され、ネットワークインターフェースまたはネットワークアダプタ170は、システムバス121に接続される。ネットワーク化された環境において、コンピューティングデバイス100に関して図示されるプログラムモジュール、またはそれらのプログラムモジュールの部分もしくは周辺モジュールは、一般的なネットワーク接続171を介してコンピューティングデバイス100に通信状態にあるように結合された他の1つまたは複数のコンピューティングデバイスのメモリーの中に格納されることが可能である。図示されるネットワーク接続は、例示的であり、コンピューティングデバイス間で通信リンクを確立する他の手段が使用されてもよいことが認識されよう。
【0023】
[0027]
図2を参照すると、図示されるシステム200が、既存のインフラストラクチャーを再利用して、その既存のインフラストラクチャーが作成された言語とは異なる1つまたは複数の言語で言語理解能力を効率的にもたらすことができる例示的なプロセスを示す。一実施形態において、例示的なコンピューティングデバイス100などのコンピューティングデバイス上で実行される既存のアプリケーションまたはプロセスが、言語入力を受け付けることができることが可能であり、さらに、オプションとして、そのアプリケーションまたはプロセスが作成されたアンカー言語で言語出力を生成することができることが可能である。本明細書で使用される「言語入力」という用語は、人と人の間のコミュニケーションのために利用されるように語または句を備える任意の形態の入力を意味する。例えば、ホームエンターテイメントコンピューティングデバイス上で実行されるアプリケーションが、英語の音声コマンドを受け付け、理解し、さらにそのようなコマンドに応答して、ユーザーが、そのようなホームエンターテイメントコンピューティングデバイスによって提示されるべきエンターテイメントコンテンツを検索して、選択することができるようにするようにプログラミングされていることが可能である。別の例として、スマートフォンコンピューティングデバイス上で実行されているアプリケーションが、ユーザーによって尋ねられた質問を備える、英語の音声入力を受け付け、理解し、さらにそのような入力に応答するようにプログラミングされていることが可能である。通常、「言語入力」は、音声形態でユーザーによって与えられるが、本明細書で使用され、定義される「言語入力」という用語は、そのように限定されない。実際、本明細書で説明される機構は、本明細書で定義される「言語入力」がコンピューティングデバイスに与えられ得るテキスト、ジェスチャー、注視、手話、および類似する他の機構の形態で与えられる「言語入力」にも同様に適用可能である。
【0024】
[0028]そのようなアプリケーションまたはプロセスは、アンカー言語で与えられた言語入力を理解し、それに基づいて動作することを担うコンピューター実行可能命令を表すことが可能な、
図2に示されるもののような既存のアプリケーションインフラストラクチャー220を備え得る。当業者によって認識されるとおり、既存のアプリケーションインフラストラクチャー220内に包含される構成要素およびプロセスは、時間とリソースのかなりの投資に相当する。さらに、そのようなインフラストラクチャーは、そのようなインフラストラクチャーが作成された言語に固有である。例えば、既存のアプリケーションインフラストラクチャー220が、英語で与えられた言語入力を受け付け、それに基づいて動作するように設計されたアプリケーションの一部である場合、そのようなインフラストラクチャーは、フランス語などの別の言語で与えられた入力に基づいて動作することができない。その結果、既存のアプリケーションインフラストラクチャー220を備えるアプリケーションまたはプロセスの開発者が、例えば、そのようなアプリケーションまたはプロセスのフランス語バージョンを公表しようとする場合、その開発者は、既存のアプリケーションインフラストラクチャー220のフランス語指向のバージョンにかなりの時間とリソースを再び投資する必要がある。世界中で利用されるべきアプリケーションまたはプロセスの場合、そのような単一言語制限は、数多の言語に関する単一言語アプリケーションインフラストラクチャーの、最初からの作成の繰り返しをもたらし得る。時間とリソースのそのようなかなりの投資を回避するのに、既存のアプリケーションインフラストラクチャー220が、機械翻訳構成要素の助けを借りて再利用されることが可能である。より詳細には、後段で詳細に説明されるとおり、機械翻訳構成要素が、アプリケーションまたはプロセスのユーザーのネイティブ言語から既存のアプリケーションインフラストラクチャー220のアンカー言語に入力を翻訳することが可能であり、さらに、オプションとして、出力を翻訳することが可能であり、その結果、既存のアプリケーションインフラストラクチャー220が、アンカー言語とは異なるネイティブ言語で動作しているアプリケーションまたはプロセスに言語サービスを提供することを可能にする。既存のアプリケーションインフラストラクチャー220を再利用することによって、アプリケーションまたはプロセスの開発者は、他の言語における均等のバージョンを、それらの他の言語で既存のアプリケーションインフラストラクチャー220の同様のバージョンを再作成するのに通常、要求されるかなりの時間とリソースを投資することなしに、生成することができる。説明の簡明のため、「アンカー言語」という用語は、初期の言語インフラストラクチャーが作成された言語を意味するように使用され、この初期の言語インフラストラクチャーが再利用される。「ネイティブ言語」という用語は、アプリケーションまたはプロセスに入力が与えられる言語、およびアプリケーションまたはプロセスからの出力がもたらされることが見込まれる言語を意味するように使用される。
【0025】
[0029]
図2に示されるシステム200は、コンピューティングデバイス上で実行され、さらに、ユーザー150などのユーザーからの言語入力を受け付けるアプリケーションまたはプロセスにおいて利用される、既存のアプリケーションインフラストラクチャー220を示す。詳細には、
図2のシステム200によって示されるとおり、ユーザー150によって生成された言語入力が、ユーザー150によって与えられた言語入力に適切である入力認識構成要素211によって最初に受け取られることが可能である。例えば、ユーザー150によって与えられた言語入力が音声入力である場合、入力認識構成要素211は、ユーザーの音声入力を表すオーディオ情報をテキスト情報に変換することができることが可能な音声認識構成要素であり得る。別の例として、ユーザー150によって与えられた言語入力が、手話を介して入力されている場合、入力認識構成要素211は、ユーザーの手話入力を表す画像情報をテキスト情報に変換することができることが可能な手話認識構成要素であり得る。
【0026】
[0030]ユーザーの言語入力を表すテキスト情報は、言語理解構成要素221に供給され得る。言語理解構成要素221は、そのような言語入力を、テキストフォーマットで、ダイアログマネージャー222および知識ソース223と連携して受け付け、実行されるべき適切な応答処理を識別するコンテキストなどにおいて、その言語入力から意味を導き出すことができることが可能である。例えば、ユーザーが、所与のテレビショーの利用可能なエピソードのすべてを表示する命令を発話している場合、言語理解構成要素221は、ダイアログマネージャー222および知識ソース223と連携して、そのような言語入力が、検索して結果を表示する要求であり、さらにユーザーによって指定された名前が、検索パラメータであり、さらにその名前が題名の指定であったと解釈することが可能である。同様に、別の例として、ユーザーが、特定の都市に関して長期間にわたる予報を求めている場合、言語理解構成要素221は、ダイアログマネージャー222および知識ソース223と連携して、そのような言語入力が、気象情報を求める事実要求であり、さらにユーザーによって供給された名前が、気象情報が要求された地理的区域を定義する都市の名前であると解釈することが可能である。
【0027】
[0031]前述したとおり、言語理解構成要素221、ダイアログマネージャー222、および知識ソース223は、時間とリソースのかなりの投資に相当し得る。より詳細には、言語理解構成要素221、ダイアログマネージャー222、および知識ソース223は、ユーザーから言語入力を受け取ること、および応答処理を決定し、行うことの複数回の繰り返しを介して構築され、改良されてきている可能性がある。そのような複数回の繰り返しは、先行する回において最適未満で実施されてきた可能性がある言語理解構成要素221、ダイアログマネージャー222、および知識ソース223の態様を補正しようとすることが可能である。例えば、ユーザーが、異なる語および言語スタイルを使用して同一の情報を求める可能性があり、言語理解構成要素221、ダイアログマネージャー222、および知識ソース223が、様々な繰り返しおよび改良を介して、より幅広いユーザー、およびより多様な入力に有意義に応答することができるように、ますます多くのそのような異なる語および言語スタイルを見込むことが可能である。
【0028】
[0032]一実施形態において、言語理解構成要素221、ダイアログマネージャー222、および知識ソース223は、言語理解構成要素221、ダイアログマネージャー222、および知識ソース223が利用される特定のコンテキストに基づいて、さらに改良され得る。例えば、ホームエンターテイメントコンピューティングデバイス上でエンターテイメントコンテンツへのアクセスをもたらすアプリケーションが、そのようなエンターテイメントコンテンツに向けられた言語入力を受け取ることが可能であり、さらに言語理解構成要素221、ダイアログマネージャー222、および知識ソース223が、そのようなコンテキストを考慮に入れるよう的を絞るようにされることが可能である。そのような例を続けると、名前が、それまでは、既存のアプリケーションインフラストラクチャー220の一部ではなかった語または用語を備える新たなテレビショーが追加された場合、ユーザーが、そのような新たなテレビショーを要求したとすると、既存のアプリケーションインフラストラクチャーが、そのような要求を認識することができるように、インフラストラクチャーは、そのような語または用語、ならびにユーザーによるそれらの語または用語の発音、およびその他の話し方を含むように更新されることが可能である。同様に、別の例として、スマートフォンコンピューティングデバイス上でパーソナルアシスタンスサービスを提供するアプリケーションが、そのようなパーソナルアシスタンスサービスによって、通常、実行される狭いセットのアクションに向けられた言語入力を受け取ることが可能であり、言語理解構成要素221、ダイアログマネージャー222、および知識ソース223が、そのようなコンテキストを考慮に入れるように的を絞るようにされることが可能である。そのような別の例を続けると、既存のアプリケーションインフラストラクチャー220の1回目が、指定されたユーザーに対してテキストメッセージを作成する要求を適切に推測することも、効率的に処理することもない場合、既存のアプリケーションインフラストラクチャー220の後続の回が、ユーザーの言語入力に基づいてそのような要求をより容易に認識し、それらの要求に応答するように更新されることが可能である。
【0029】
[0033]言語理解構成要素221、ダイアログマネージャー222、および知識ソース223が、応答処理の実行を開始すると、出力が、適切な限りで、言語生成構成要素224に向けられることが可能であり、構成要素224は、ダイアログマネージャー222および知識ソース223と協力して、或る言語様態で出力をもたらすことが可能である。言語生成構成要素224は、言語理解構成要素221、ダイアログマネージャー222、および知識ソース223と同様に、時間とリソースのかなりの投資にやはり相当することが可能であり、さらに応答出力をもたらす際に言語生成構成要素224によって利用される言語のユーザーによる知覚を向上させようとする複数回の繰り返しの結果として生成されていることが可能である。
【0030】
[0034]一実施形態において、言語生成構成要素224によってもたらされる出力は、ユーザー150によって知覚され得る形態で生成されるように出力生成構成要素212に向けられることが可能である。例えば、テキスト−音声構成要素が、音声フォーマットで言語出力をもたらすことができる出力生成構成要素であり得る。当業者によって認識されるとおり、他のタイプの出力生成構成要素が同様に利用されることも可能である。
【0031】
[0035]前述したとおり、既存のアプリケーションインフラストラクチャー220は、時間とリソースのかなりの投資に相当し得る。残念ながら、既存のアプリケーションインフラストラクチャー220は、通常、例えば、英語などの単一言語のコンテキスト内で作成される。その結果、フランス語などの別の異なる言語で言語入力を与えるユーザーは、そのようなアプリケーションを利用することができない。しかし、一実施形態において、他の言語にて既存のアプリケーションインフラストラクチャー220のものと同様の構成要素を再作成するのではなく、機械翻訳技術が、そのような他の言語と、既存のアプリケーションインフラストラクチャー220が最初に作成される際にコンテキストとされたアンカー言語の間で翻訳するのに利用され得る。
図2のシステム200は、そのようなハイブリッドアプリケーションを示し、このアプリケーションは、アンカー言語における既存のアプリケーションインフラストラクチャー220と、ネイティブ言語とアンカー言語の間で翻訳する機械翻訳構成要素とを備え、その結果、1つまたは複数のネイティブ言語における言語理解機能を、アンカー言語における既存のアプリケーションインフラストラクチャー220を再利用して、それらの他のネイティブ言語で同様のインフラストラクチャーを再作成する時間と費用を節約しながら、もたらすことが可能である。
【0032】
[0036]最初に、既存のアプリケーションインフラストラクチャー220の作成が行われたアンカー言語とは異なるネイティブ言語を使用してユーザーによって与えられた言語入力が、言語識別構成要素230に向けられることが可能である。例えば、外国人ユーザー250が、ネイティブ言語で入力を与えることが可能である。そのような入力が、言語識別構成要素230に向けられることが可能であり、構成要素230は、外国人ユーザー250によって言語入力が与えられている言語を識別するための知られている技法を利用することが可能である。外国人ユーザー250によって与えられた言語入力の言語が識別されると、その入力は、入力認識構成要素241、261、および271のうちの適切な1つに向けられることが可能である。例えば、外国人ユーザー250がフランス語で言語入力を与えた場合、言語識別構成要素230が、そのような言語入力をフランス語であると識別することが可能であり、さらにその入力をフランス語入力認識構成要素に向けることが可能である。入力認識構成要素241、261、および271のそれぞれが、そのような入力認識構成要素が関連付けられており、そのような入力認識構成要素が動作するコンテキストとされる言語に関して同様の機能を実行することが可能である。また、そのような機能は、前段で動作を詳細に説明した入力認識構成要素211と同様でもある。
【0033】
[0037]外国人ユーザー250によって与えられた言語入力が、外国人ユーザー250によってその入力が与えられた言語の、テキストベースの言語入力に変換されると、そのテキストベースの言語入力は、アンカー言語に翻訳されるように機械翻訳構成要素に供給されて、その結果、既存のアプリケーションインフラストラクチャー220が再利用され得るようにすることが可能である。入力認識構成要素241、261、および271のうちのいずれが選択されたかに依存して、言語識別構成要素230によって実行された言語識別に基づいて、機械翻訳構成要素240、260、および270の中から適切な機械翻訳構成要素に、入力認識構成要素241、261、および271のうちの選択された1つによって生成されたテキストベースの言語入力が供給されることが可能である。
【0034】
[0038]機械翻訳構成要素240、260、および270などの機械翻訳構成要素のうちの1つが、言語入力をアンカー言語に翻訳すると、その翻訳された入力は、その入力が前段の説明におけるその入力と同一のアンカー言語になっているので、前段で説明したのと同一の様態で言語理解構成要素221に供給されることが可能である。さらに、既存のアプリケーションインフラストラクチャー220が、言語生成構成要素224を介するなどして、出力を生成したとすると、翻訳された入力を言語理解構成要素221に供給した機械翻訳構成要素が、言語生成構成要素224によって生成された出力を受け取ることも可能であり、さらにその出力を、外国人ユーザー250に提示するためにネイティブ言語に戻すように翻訳することが可能である。より詳細には、当業者によって認識されるとおり、機械翻訳技術は、1つのアプリケーションから別のアプリケーションに翻訳するとともに、その逆の翻訳もして、双方向であることが可能である。その結果、言語生成構成要素224によって生成された出力を受け取ると、機械翻訳構成要素240、260、および270のうちの適切な1つが、言語生成構成要素224によってそのような出力が供給されたアンカー言語からネイティブ言語に、すなわち、最初に入力を与えるために外国人ユーザー250によって使用されたネイティブ言語に翻訳することが可能である。
【0035】
[0039]機械翻訳構成要素240、260、および270のうちの1つによって翻訳された出力である出力が、前段で詳細に説明した出力生成構成要素212と同様の様態で動作することが可能な、対応する出力生成構成要素242、262、および272に供給されることが可能である。当業者によって認識されるとおり、出力生成構成要素が、非常に基本的なテキスト−音声構成要素に過ぎない場合、特定の言語に特有の出力生成構成要素の必要性は、存在しない可能性がある。しかし、そのような非常に基本的なテキスト−音声構成要素は、言語出力のいくつかの態様を正確に言語化することができない可能性があるとともに、独自の音を使用する言語に対応できない可能性がある。したがって、
図2のシステム200は、言語特有であって、その結果、各出力生成構成要素が、その出力生成構成要素が関連付けられた言語の再現に合わせて仕立てられることを可能にする、出力生成構成要素242、262、および272を示す。
【0036】
[0040]
図2のシステム200は、コンピューター実行可能命令の単一のコレクションが、異なる複数の言語を話す外国人ユーザーから入力を受け付けることができる実施形態、つまり、多言語ハイブリッドアプリケーションを示す。例として、既存のアプリケーションインフラストラクチャー220が、英語アプリケーションまたは英語プロセスの一部であった場合、
図2のシステム200は、コンピューター実行可能命令の単一のコレクションが、フランス語、中国語、およびアラビア語で入力を等しく受け付けることが可能な実施形態を示す。フランス語入力は、言語識別構成要素230などによって識別されることが可能であり、さらに、例えば、入力認識構成要素241に向けられ、その後、フランス語とアンカー言語、すなわち、この例では、英語の間で翻訳することができる、対応する機械翻訳構成要素240に向けられることが可能である。同様に、中国語入力が、言語識別構成要素230などによって識別されることが可能であり、さらに、この例と続けると、入力認識構成要素261に向けられ、その後、中国語と英語の間で翻訳するように動作することができる機械翻訳構成要素260に向けられることが可能である。アラビア語入力が、同様に、やはり、例として、入力認識構成要素271および機械翻訳構成要素270に向けられることが可能である。
【0037】
[0041]しかし、別の実施形態において、それぞれの単一のアプリケーションまたはプロセスが、特定の1つの言語だけに向けられる、つまり、単一言語ハイブリッドアプリケーションであることが可能である。そのような実施形態において、言語識別構成要素230は、取り除かれることが可能であり、機械翻訳構成要素、ならびに関連する入力認識構成要素および出力生成構成要素も1つを除いて、すべて取り除かれることが可能である。例えば、或るアプリケーションが、フランス語話者のために構築されるとした場合、英語話者のために構築された既存のアプリケーションインフラストラクチャー220を利用して、そのようなアプリケーションは、フランス語入力を受け付けて、その入力を、フランス語のテキストベースの言語入力に変換することが可能な単一の入力認識構成要素と、フランス語のそのテキストベースの言語入力を、言語理解構成要素221に供給されるべき英語のテキストベースの入力に翻訳することが可能な単一の機械翻訳構成要素とを備えることが可能である。同様に、単一の機械翻訳構成要素が、英語出力を、既存のアプリケーションインフラストラクチャー220によって生成されている限りで、フランス語に翻訳し、さらにその翻訳されたフランス語出力を単一のフランス語出力生成構成要素に供給することが可能である。そのようにして、アプリケーションまたはプロセスの複雑度およびサイズが小さくされることが可能であるが、それぞれのそのような単一言語アプリケーションまたは単一言語プロセスは、1つの言語のコンテキストで動作することしか可能でない。
【0038】
[0042]当業者には認識されるとおり、
図2のシステム200に例示されるもののような機械翻訳構成要素は、当技術分野でよく知られており、絶え間ない研究および改良の対象となっている。それでも、一実施形態において、前段で詳細に説明したような様態などで利用される機械翻訳構成要素が、アプリケーションまたはプロセスの特定のコンテキスト内で、より高い精度をもたらすように微調整され得ることが企図される。例えば、ユーザに、エンタテイメント・コンテンツへのアクセスを提供するように設計されるアプリケーション(ホームエンタテイメントコンピューティングデバイスにおいて実行されることとなるようなアプリケーション)は、機械翻訳構成要素を含み得る。
この機械翻訳構成要素は、エンタテイメント・アプリケーションに関連する、過剰な表現を含む言葉遣いを含むように修正され得る。ここで、このエンタテイメント・アプリケーションは、既成の機械翻訳構成要素の一部でない可能性がある。そして、前記過剰な表現を含む言葉遣いは、絶えず進化し得る(例えば、新たなテレビショーまたは映画によって使用される用語のように)。
同様に、言語理解構成要素221、ダイアログマネージャー222、知識ソース223、および言語生成構成要素224も、機械翻訳構成要素の導入とともに生じる可能性がある特定の問題に対応するようにやはり変更され得る。例えば、アンカー語のいくつかの語、用語、または句が、当該の言語において同義語であるような他の語、用語、または句と比べて、機械翻訳構成要素によって、より正確に翻訳される可能性がある。そのような事例において、それらの語、用語、および句が、既存のアプリケーションインフラストラクチャー220によって優遇されることが可能である。
【0039】
[0043]一実施形態において、機械翻訳構成要素がネイティブ言語とアンカー言語の間で翻訳するのに利用され、その結果、アンカー言語における既存のアプリケーションインフラストラクチャーの再利用を円滑にする、
図2のシステム200によって例示されるハイブリッドアプリケーションが、アンカー言語とは異なるネイティブ言語における単一言語アプリケーションまたは単一言語プロセスを生成する開始点として利用されることが可能である。
図3を参照すると、図示されるシステム300が、ハイブリッドアプリケーションまたはハイブリッドプロセスからの非ハイブリッド単一言語アプリケーションまたは非ハイブリッド単一言語プロセスの例示的な作成を例示する。最初に、
図3のシステム300によって示されるとおり、入力が、ネイティブ言語で入力認識構成要素311によって受け取られることが可能であり、次に、前段で詳細に説明される様態などで、既存のアプリケーションインフラストラクチャー220に供給するためにアンカー言語に翻訳されるように機械翻訳構成要素310に供給されることが可能である。
【0040】
[0044]前述したとおり、ユーザーの入力のいくつかの用語、語、句、およびその他の言語構成要素に関して、機械翻訳構成要素310、既存のアプリケーションインフラストラクチャー220、または機械翻訳構成要素310と既存のアプリケーションインフラストラクチャー220の何らかの組み合わせが、それらの言語構成要素をより正確に解釈して、それらの言語構成要素に応答するように変更され得る。一実施形態において、機械翻訳構成要素310、または既存のアプリケーションインフラストラクチャー220を変更して、そのような改良を見込むのではなく、ネイティブ言語における新たな言語理解構成要素321、やはりネイティブ言語における新たなダイアログマネージャー322、新たな知識ソース323、および新たな言語生成324が、そのような変更および改良に対処するように作成され得る。時間の経過とともに、その後の繰り返しを介して、言語理解構成要素321、ダイアログマネージャー322、知識ソース323、および言語生成構成要素324は、絶えず改良され、拡張されて、最終的には、既存のアプリケーションインフラストラクチャー220に頼ることなしに動作することができることが可能である。そのような事例において、機械翻訳構成要素310も同様に、もはや要求されず、その結果、ネイティブ言語に関する新たなアプリケーションまたはプロセスは、前段で詳細に説明したもののような、ハイブリッドであることを止めることが可能である。代わりに、ネイティブ言語に関するそのような新たなアプリケーションまたはプロセスは、入力認識構成要素310と、言語理解構成要素321と、ダイアログマネージャー322と、知識ソース323と、言語生成構成要素324と、出力生成構成要素312とを備えることが可能であり、以上の構成要素のすべてが、直接にネイティブ言語で動作することが可能である。そのようにして、既存のアプリケーションインフラストラクチャー220を再利用したハイブリッドアプリケーションまたはハイブリッドプロセスが、一時しのぎの措置、つまり、ネイティブ言語における単一言語構成要素が、現実世界の利用およびフィードバックに基づいて開発され、改良されている間にその後の繰り返しを介して非ハイブリッド単一言語アプリケーションまたは非ハイブリッド単一言語プロセスが生成され得る一時的構造体の役割をしてきていることが可能である。
【0041】
[0045]
図4を参照すると、図示される流れ
図400が、アンカー言語における既存のアプリケーションの言語構成要素が再利用されて、アンカー言語とは異なる1つまたは複数のネイティブ言語における言語機能をもたらし得る例示的な一連のステップを示す。例えば、一実施形態において、
図4に示される流れ
図400の例示的なステップが、アプリケーション開発者またはプロセス開発者に提供され得るサービスによって実行されて、開発者が、それらの開発者が開発者のアプリケーションまたはプロセスを最初に作成したアンカー言語とは異なる1つまたは複数のネイティブ言語からの言語入力を受け付けることができる開発者のアプリケーションまたはプロセスのバージョンを効率的に作成できるようにすることが可能である。ステップ410で示されるとおり、アンカー言語における既存の単一言語プロセスまたは単一言語アプリケーションが、そのサービスに供給されるべき入力などの開始点として利用されることが可能である。その後、ステップ420で、ステップ410からの既存の単一言語プロセスを受け取ると、またはそのようなプロセスに対するアクセスを得ると、アンカー言語以外の言語で入力を受け付けることができ、さらに入力が与えられたそのような言語を識別して、適切な機械翻訳構成要素を選択することができる言語識別構成要素が、インストールされることが可能である。前述したとおり、一実施形態において、作成されるべきハイブリッドアプリケーションまたはハイブリッドプロセスが、アンカー言語以外の単一の言語だけの入力を受け付けるように作成されるべき場合、1つの機械翻訳構成要素、すなわち、アンカー言語と、ハイブリッドアプリケーションまたはハイブリッドプロセスが向けられる他の単一の言語の間で翻訳するための機械翻訳構成要素だけしか利用され得ないので、ステップ420は、オプションであり得る。
【0042】
[0046]ステップ430で、ステップ410からの単一言語プロセスが作成される際にコンテキストとされたアンカー言語と、入力が受け付けられることが可能であり、オプションとして、出力がもたらされることが可能な、アンカー言語とは異なる1つまたは複数のネイティブ言語の間で翻訳することができる1つまたは複数の機械翻訳構成要素が、インストールされることが可能である。ステップ430で複数の機械翻訳構成要素がインストールされる場合、ステップ430でインストールされたそれらの機械翻訳構成要素は、アンカー言語と、ステップ420でインストールされた言語識別構成要素によって識別され得るネイティブ言語の間で翻訳することが可能である。
【0043】
[0047]その後、ステップ440で、ステップ430でインストールされた機械翻訳構成要素に対応する入力認識構成要素および出力生成構成要素が、インストールされることが可能である。前述したとおり、入力認識構成要素が、音声言語入力のオーディオなどの様々な形態で言語入力を受け付けることが可能であり、さらにそのような形態を認識して、それらの形態をテキストベースの言語入力に変換することが可能である。そのようなテキストベースの言語入力が、次に、例えば、機械翻訳構成要素などのさらなるプロセスに供給されることが可能である。やはり前述したとおり、ステップ440でインストールされたもののような入力認識構成要素は、1つの言語で言語入力を認識するように設計された入力認識構成要素が、その1つの言語でそのような言語入力を正確に認識することだけしかできないという点で、言語特有であり得る。したがって、ステップ440でインストールされた入力認識構成要素は、ステップ430でインストールされた機械翻訳構成要素に、そのような構成要素が動作する際のコンテキストとされる言語に限って、対応することが可能である。このため、或る特定のセットの言語に関する機械翻訳構成要素が、ステップ430でインストールされている場合、次に、ステップ440で、同一のそれらの言語に関する入力認識構成要素が、インストールされることが可能である。
【0044】
[0048]やはり、前述したとおり、出力生成構成要素が、テキストベースの言語出力を受け付けることが可能であり、さらにその出力を、例えば、その言語出力を発話することなどによって、ユーザーによって受け付けられ得るように生成することが可能である。出力生成構成要素は、言語中立であり得ることが可能であるが、そのような出力生成構成要素は、最適未満である可能性がある。したがって、一実施形態において、ステップ440で、ステップ440でやはりインストールされている入力認識構成要素の言語に対応する言語特有の出力生成構成要素が、インストールされ得ることが企図される。
【0045】
[0049]その後、ステップ450で、ステップ430でインストールされている機械翻訳構成要素が、特定の言語の言語入力を受け付ける入力認識構成要素が、そのような言語とアンカー言語の間で翻訳することができる機械翻訳構成要素と通信状態にあるように結合されるように、さらに特定の言語で言語出力を生成する出力生成構成要素が、その言語とアンカー言語の間で翻訳することができる機械翻訳構成要素と通信状態にあるように結合されるように、ステップ440でインストールされている入力認識構成要素および出力生成構成要素に通信状態にあるように結合されることが可能である。ステップ460で、ステップ430でインストールされている機械翻訳構成要素が、ステップ410の既存の単一言語プロセスまたは単一言語アプリケーションの言語構成要素に通信状態にあるように結合されることが可能である。詳細には、ステップ430でインストールされている機械翻訳構成要素が、既存の単一言語プロセスまたは単一言語アプリケーションのそのような言語構成要素に、そのような言語入力が与えられたネイティブ言語からアンカー言語に翻訳された言語入力を供給することが可能である。同様に、ステップ430でインストールされている機械翻訳構成要素において、オプションとして、既存の単一言語アプリケーションまたは単一言語プロセスのそのような言語構成要素から、アンカー言語の言語出力を受け取ることが可能であり、次に、この言語出力を、機械翻訳構成要素が、ネイティブ言語に翻訳することが可能である。
【0046】
[0050]
図2のシステム200によって示されるとおり、ステップ420乃至460によって実行されるインストールおよび通信結合が、ステップ410で入力されるもののような、既存の単一言語アプリケーションまたは単一言語プロセスを、アンカー言語とは異なる1つまたは複数のネイティブ言語からの入力を受け付けることができ、さらに、オプションとして、同一のそれらのネイティブ言語で出力をもたらすことができるハイブリッドアプリケーションまたはハイブリッドプロセスに変換することが可能である。その結果、
図4に示される流れ
図400の関係のある処理は、ステップ470で終了することが可能である。
【0047】
[0051]
図5を参照すると、図示される流れ
図500が、1つまたは複数のネイティブ言語で入力を受け付けること、および、オプションとして、出力をもたらすことが、それらのネイティブ言語とは異なるアンカー言語における言語構成要素を再利用しながら、可能である、ハイブリッドアプリケーションまたはハイブリッドプロセスによって実行され得る例示的な一連のステップを示すことが可能である。最初に、ステップ510で、示されるとおり、ネイティブ言語の言語入力が、受け取られることが可能である。その後、ステップ515で、ステップ510でその言語入力が受け取られたネイティブ言語が、識別されることが可能である。次に、その識別が、ステップ520で、ステップ510で受け取られた言語入力が向けられることが可能な入力認識構成要素を選択するのに利用されることが可能である。詳細には、ステップ520で選択される入力認識構成要素は、ステップ550で識別されるネイティブ言語の入力を認識するように設計された入力認識構成要素であり得る。次に、ステップ525で、その選択された入力認識構成要素が、ステップ510からの言語入力を認識して、その入力をテキストベースの言語入力に変換することが可能である。
【0048】
[0052]ステップ530で、そのテキストベースの言語入力が、ステップ510で受け取られた言語入力の、ステップ515で識別されたネイティブ言語とアンカー言語の間で翻訳することができる機械翻訳構成要素に供給されることが可能である。ステップ535で、機械翻訳構成要素が、テキストベースの言語入力を、そのような言語入力が最初に与えられたネイティブ言語からアンカー言語に翻訳することが可能である。その後、ステップ540で、今や、アンカー言語になっている翻訳されたテキストが、アンカー言語で最初に生成された既存のアプリケーションまたはプロセスの言語構成要素に供給されることが可能である。次に、前述したとおり、時間とリソースのかなりの投資に相当し得るそれらの既存の言語構成要素が、ステップ540でアンカー言語で供給された入力を処理することが可能であり、さらに適切な応答を生成することが可能である。
【0049】
[0053]ステップ545で、既存の言語構成要素からの応答が、アンカー言語で受け取られることが可能であり、さらにステップ550で、アンカー言語から、ステップ510で言語入力が受け取られたネイティブ言語に翻訳されることが可能である。ステップ555で、翻訳された応答が、ネイティブ言語に関連する出力生成構成要素に供給されることが可能である。例えば、前述したとおり、そのような出力生成構成要素は、翻訳された応答を言語化することができるテキスト−音声構成要素であり得る。当業者によって認識されるとおり、そのようなテキスト−音声構成要素は、特定の音声言語のニュアンスを捉え、より正確な出力をユーザーが受け取るようにもたらすために、言語特有であり得る。このため、ステップ555で、選択されることが可能な出力生成構成要素は、ステップ510で受け取られた言語入力が受け取られた、必要とされる言語で出力をもたらす出力生成構成要素であり得る。ステップ560で、出力が、出力生成構成要素によって生成されて、ユーザーに与えられることが可能である。次に、ステップ565で、関係のある処理が終了することが可能である。
【0050】
[0054]
図6を参照すると、図示される流れ
図600が、ネイティブ言語で入力を受け付けること、および、オプションとして、出力をもたらすことができる単一言語プロセスを作成するように実行され得る例示的な一連のステップを示し、そのような単一言語プロセスは、アンカー言語で最初に作成された既存の言語構成要素を、アンカー言語とネイティブ言語の間で翻訳する機械翻訳構成要素と一緒に再利用しているハイブリッドプロセスから作成されることが可能である。最初に、ステップ610で、そのようなハイブリッドプロセスが、例えば、
図4の流れ
図400のステップなどによって、既に作成されていることが可能である。その後、そのハイブリッドプロセスの実行の一環として、ステップ650などで、ネイティブ言語の言語入力が受け取られることが可能である。ステップ620で、そのハイブリッドプロセスが、前段で詳細に説明される様態などで、その言語入力を認識して、その入力をテキストベースの言語入力に変換することが可能である。
【0051】
[0055]ステップ625で、ネイティブ言語における言語理解構成要素が、ステップ620で生成されたテキストベースの言語入力を適切に処理することができるかどうかの判定が、行われることが可能である。ネイティブ言語で動作しているそのような言語理解構成要素が、そのような言語入力を適切に処理することができない場合、処理は、前段で詳細に説明した、ステップ530乃至555に進むことが可能である。その後、ステップ530乃至555の実行の後、処理は、ステップ630に戻ることが可能であり、ステップ530乃至555によって実行された処理にかけられた受け取られた言語入力に関する情報が、ネイティブ言語において実装される言語理解構成要素、ダイアログマネージャー、および類似する他の言語構成要素を改良するのに利用されることが可能である。次に、処理は、ステップ645に進むことが可能であり、ステップ530乃至555によって生成された応答が、ネイティブ言語でユーザーに提示される、または出力されることが可能である。
【0052】
[0056]しかし、ステップ625で、ネイティブ言語における言語処理構成要素が、その言語入力を適切に処理することができると判定された場合、処理は、代わりに、ステップ635に進むことが可能であり、テキストベースの言語入力が、ネイティブ言語とアンカー言語の間で機械翻訳を全く要求することなしに、ネイティブ言語における言語理解構成要素に供給されることが可能である。その後、ステップ640で、応答が、言語理解構成要素と同様に、ネイティブ言語のコンテキスト内で動作する言語生成構成要素から受け取られることが可能である。ステップ645で、前述したとおり、そのようなネイティブ言語応答が、ユーザーに出力されることが可能である。一実施形態において、ステップ650で、ハイブリッドプロセスによって再利用されていたアンカー言語における既存の言語構成要素が、依然として、実際、利用されているかどうかの確認が、行われることが可能である。ステップ650で、そのようなアンカー言語の言語構成要素が、依然として利用されていると判定された場合、処理は、ステップ615に戻り、さらなる言語入力を受け取ることが可能である。しかし、ステップ650で、アンカー言語のコンテキスト内で動作する言語構成要素が、もはや利用されていないと判定された場合、一実施形態において、ステップ655で、それらの言語構成要素が、ハイブリッドアプリケーションまたはハイブリッドプロセスから破棄されて、ステップ660で示されるとおり、ネイティブ言語のコンテキスト内で動作する単一言語アプリケーションまたは単一言語プロセスだけが残されることが可能である。
【0053】
[0057]前段の説明から理解され得るとおり、既存の言語構成要素を再利用して、そのような既存の言語構成要素が動作するコンテキストとされる言語以外の言語の言語入力、および、オプションとして、そのような言語の出力を、そのような言語と既存の構成要素の言語の間で翻訳する機械翻訳構成要素を利用することによって処理するための機構が、提示されてきた。本明細書で説明される主題の可能な多くの変形形態に鑑みて、我々は、添付の特許請求の範囲、および均等の範囲に含まれ得るすべてのそのような実施形態を我々の発明として主張する。