(57)【要約】  自動音声認識システムは、２つ以上の論理装置および／または２つ以上の物理装置の間に分散されている、音声捕捉コンポーネント、音声認識処理コンポーネント、および結果処理コンポーネントを含む。特に、音声捕捉コンポーネントは、結果処理コンポーネントとは異なる論理装置および／または物理装置上に配置され得る。例えば、音声捕捉コンポーネントは、ユーザーがそれに向かって話すマイクロホンに接続されたコンピュータ上にあり得るが、他方、結果処理コンポーネントは、音声認識結果を音声認識処理サーバーから受信する端末サーバー上にあり得る。【選択図】図２Ａ
2014519627.tif 000002
【特許請求の範囲】
【請求項１】
音声捕捉コンポーネントを含む第１の装置であって、前記音声捕捉コンポーネントがユーザーの音声を表す音声信号を捕捉して捕捉された音声信号を生成するための手段を含む、第１の装置と、
前記捕捉された音声信号に関して自動音声認識を実行して音声認識結果を生成するための手段を含む、音声認識処理コンポーネントと、
結果処理コンポーネントを含む第２の装置と、
コンテキスト共有コンポーネントであって、
前記結果処理コンポーネントが前記ユーザーの現在のコンテキストに関連付けられていると判断するための手段を含む、コンテキスト共有コンポーネントと
を備えるシステムであって、
前記結果処理コンポーネントが前記音声認識結果を処理して結果出力を生成するための手段を含む、システム。
【請求項２】
前記システムが、前記結果処理コンポーネントが前記ユーザーの前記現在のコンテキストに関連付けられているという前記判断に応答して、前記音声認識結果を、前記結果処理コンポーネントに提供するための手段をさらに含む、請求項１に記載のシステム。
【請求項３】
前記コンテキスト共有コンポーネントが、前記音声認識結果を前記結果処理コンポーネントに提供するための前記手段を含む、請求項２に記載のシステム。
【請求項４】
前記音声認識処理コンポーネントが、前記音声認識結果を前記結果処理コンポーネントに提供するための前記手段を含む、請求項２に記載のシステム。
【請求項５】
判断するための前記手段が、前記結果処理コンポーネントが前記ユーザーに関連付けられていることを実行時に判断するための手段を含む、請求項２に記載のシステム。
【請求項６】
前記音声認識結果を前記結果処理コンポーネントに提供するための前記手段が、前記音声認識結果を前記結果処理コンポーネントにリアルタイムで提供するための手段を含む、請求項２に記載のシステム。
【請求項７】
前記システムが、前記第１の装置に結合された音声捕捉装置であって、前記音声捕捉装置が前記ユーザーの前記音声を捕捉するための手段、前記ユーザーの前記音声を表す前記音声信号を生成するための手段、および前記音声信号を前記音声捕捉コンポーネントに提供するための手段を含む、音声捕捉装置をさらに含み、かつ
前記第１の装置が、前記音声認識処理コンポーネントを含まない、
請求項１に記載のシステム。
【請求項８】
前記第１の装置が、前記捕捉された音声信号をネットワーク接続を介して、前記音声認識処理コンポーネントに伝送するための手段をさらに含む、請求項７に記載のシステム。
【請求項９】
前記第２の装置が、前記音声認識処理コンポーネントをさらに含む、請求項１に記載のシステム。
【請求項１０】
第３の装置をさらに含み、前記第３の装置が、前記音声認識処理コンポーネントを含む、請求項１に記載のシステム。
【請求項１１】
前記第１の装置が前記音声認識処理コンポーネントをさらに含み、
前記システムが第３の装置をさらに含み、
前記第２の装置が、前記結果出力を前記第３の装置に提供するための手段をさらに含み、かつ
前記第３の装置が、前記結果出力を表す出力を前記ユーザーに提供するための手段を含む、
請求項１に記載のシステム。
【請求項１２】
自動音声認識を実行するための前記手段が、前記音声認識結果をリアルタイムで生成するために、自動音声認識を前記捕捉された音声信号に関して実行するための手段を含む、請求項１に記載のシステム。
【請求項１３】
システムとともに使用するための方法であって、前記方法が、持続性コンピュータ可読媒体上に格納されたコンピュータプログラム命令を実行する少なくとも１つのプロセッサによって実行され、
前記システムが
音声捕捉コンポーネントを含む第１の装置と、
音声認識処理コンポーネントと、
結果処理コンポーネントを含む第２の装置と
を含み、
前記方法が、
（Ａ）ユーザーの音声を表す音声信号を捕捉するために前記音声捕捉コンポーネントを使用して、捕捉された音声信号を生成することと、
（Ｂ）前記捕捉された音声信号に関して自動音声認識を実行するために前記音声認識処理コンポーネントを使用して、音声認識結果を生成することと、
（Ｃ）前記結果処理コンポーネントが前記ユーザーの現在のコンテキストに関連付けられていると判断することと、
（Ｄ）前記結果処理コンポーネントが前記ユーザーの前記現在のコンテキストに関連付けられているという前記判断に応答して、前記音声認識結果を前記結果処理コンポーネントに提供することと、
（Ｅ）前記音声認識結果を処理するために前記結果処理コンポーネントを使用して、結果出力を生成することと
を含む、
方法。
【請求項１４】
（Ｆ）前記結果処理コンポーネントが前記ユーザーの前記現在のコンテキストに関連付けられているという前記判断に応答して、前記音声認識結果を前記結果処理コンポーネントに提供すること
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記システムが、コンテキスト共有コンポーネントをさらに含み、かつ、前記コンテキスト共有コンポーネントが（Ｃ）および（Ｄ）を実行する、請求項１３に記載の方法。
【請求項１６】
前記音声認識処理コンポーネントが（Ｄ）を実行する、請求項１３に記載の方法。
【請求項１７】
（Ｃ）が、前記結果処理コンポーネントが前記ユーザーに関連付けられていることを実行時に判断することを含む、請求項１３に記載の方法。
【請求項１８】
（Ｄ）が、前記音声認識結果を前記結果処理コンポーネントにリアルタイムで提供することを含む、請求項１３に記載の方法。
【請求項１９】
前記システムが、
前記第１の装置に結合された音声捕捉装置
をさらに含み、
前記方法が、
（Ｆ）前記ユーザーの前記音声を捕捉することと
（Ｇ）前記ユーザーの前記音声を表す前記音声信号を生成することと
（Ｈ）前記音声信号を前記音声捕捉コンポーネントに提供することと
を行うために前記音声捕捉装置を使用することをさらに含み、かつ
前記第１の装置が前記音声認識処理コンポーネントを含まない、
請求項１３に記載の方法。
【請求項２０】
（Ｉ）前記第１の装置を使用して、前記捕捉された音声信号を、ネットワーク接続を介して前記音声認識処理コンポーネントに伝送すること
をさらに含む、請求項１９に記載の方法。
【請求項２１】
前記第２の装置が、前記音声認識処理コンポーネントをさらに含む、請求項１３に記載の方法。
【請求項２２】
第３の装置をさらに含み、前記第３の装置が、前記音声認識処理コンポーネントを含む、請求項１３に記載の方法。
【請求項２３】
前記第１の装置が前記音声認識処理コンポーネントをさらに含み、
前記システムが第３の装置をさらに含み、
前記第２の装置が、前記結果出力を前記第３の装置に提供するための手段をさらに含み、かつ
前記方法が
（Ｆ）前記結果出力を前記第３の装置に提供するために前記結果出力を提供するための前記方法を使用することと、
（Ｇ）前記結果出力を表す出力を前記ユーザーに提供するために前記第３の装置を使用することと
をさらに含む、
請求項１３に記載の方法。
【請求項２４】
（Ｂ）が、前記音声認識結果をリアルタイムで生成するために、自動音声認識を前記捕捉された音声信号に関して実行することを含む、請求項１３に記載の方法。
【請求項２５】
ユーザーの第１の音声を表す第１の音声信号を捕捉して、第１の捕捉された音声信号を生成するための手段を含む、音声捕捉コンポーネントと、
前記第１の捕捉された音声信号に関して自動音声認識を実行して、第１の音声認識結果を生成するための手段を含む、音声認識処理コンポーネントと、
前記第１の音声認識結果を処理して第１の結果出力を生成するための第１の手段を含む、第１の結果処理コンポーネントと、
前記第１の音声認識結果を処理して第２の結果出力を生成するための第２の手段を含む、第２の結果処理コンポーネントと、
前記第１および第２の結果処理コンポーネントのうちの第１のものを、初回に、前記ユーザーの第１のコンテキストに関連付けられているとして識別するための手段を含む、コンテキスト共有コンポーネントと、
前記第１の音声認識結果を前記第１および第２の結果処理コンポーネントのうちの前記識別された第１のものに提供するための音声認識結果提供手段と
を備える、システム。
【請求項２６】
前記音声捕捉コンポーネントが、前記ユーザーの第２の音声を表す第２の音声信号を捕捉して、第２の捕捉された音声信号を生成するための手段をさらに含み、
前記音声認識処理コンポーネントが、前記第２の捕捉された音声信号に関して自動音声認識を実行して、第２の音声認識結果を生成するための手段をさらに含み、
前記コンテキスト共有コンポーネントが、前記第１および第２の結果処理コンポーネントのうちの第２のものを、２回目に、前記ユーザーの第２のコンテキストに関連付けられているとして識別するための手段をさらに含み、前記第１および第２の結果処理コンポーネントのうちの前記第２のものが、前記第１および第２の結果処理コンポーネントのうちの前記第１のものとは異なり、かつ
前記音声認識結果提供手段が、前記第２の音声認識結果を、前記第１および第２の結果処理コンポーネントのうちの前記識別された第２のものに提供するための手段をさらに含む、
請求項２５に記載のシステム。
【請求項２７】
システムとともに使用するためのコンピュータ実装方法であって、
前記システムが、
音声捕捉コンポーネントと、
音声認識処理コンポーネントと、
第１の結果処理コンポーネントと、
第２の結果処理コンポーネントと、
コンテキスト共有コンポーネントと、
音声認識結果提供手段と
を備え、
前記方法が、
（Ａ）ユーザーの第１の音声を表す第１の音声信号を捕捉するために前記音声捕捉コンポーネントを使用して、第１の捕捉された音声信号を生成することと、
（Ｂ）前記第１の捕捉された音声信号に関して自動音声認識を実行するために前記音声認識処理コンポーネントを使用して、第１の音声認識結果を生成することと、
（Ｃ）前記第１の音声認識結果を処理するために前記第１の結果処理コンポーネントを使用して、第１の結果出力を生成することと、
（Ｄ）前記第１の音声認識結果を処理するために第２の結果処理コンポーネントを使用して、第２の結果出力を生成することと、
（Ｅ）前記コンテキスト共有コンポーネントを使用して、前記第１および第２の結果処理コンポーネントのうちの第１のものを、初回に、前記ユーザーの第１のコンテキストに関連付けられているとして識別することと、
（Ｆ）前記第１の音声認識結果を、前記第１および第２の結果処理コンポーネントのうちの前記識別された第１のものに提供するために前記音声認識結果提供手段を使用することと
を含む、
コンピュータ実装方法。
【請求項２８】
（Ｇ）前記ユーザーの第２の音声を表す第２の音声信号を捕捉するために前記音声捕捉コンポーネントを使用して、第２の捕捉された音声信号を生成することと、
（Ｈ）前記第２の捕捉された音声信号に関して自動音声認識を実行するために前記音声認識処理コンポーネントを使用して、第２の音声認識結果を生成することと、
（Ｉ）前記第１および第２の結果処理コンポーネントのうちの第２のものを、２回目に、前記ユーザーの第２のコンテキストに関連付けられているとして識別するために、前記コンテキスト共有コンポーネントを使用することであって、前記第１および第２の結果処理コンポーネントのうちの前記第２のものが、前記第１および第２の結果処理コンポーネントのうちの前記第１のものとは異なる、前記コンテキスト共有コンポーネントを使用することと、
（Ｊ）前記第２の音声認識結果を、前記第１および第２の結果処理コンポーネントのうちの前記識別された第２のものに提供するため、前記音声認識結果提供手段を使用することと
をさらに含む、請求項２７に記載の方法。
【請求項２９】
ユーザーの音声を表す第１の音声信号を捕捉して、第１の捕捉された音声信号を生成するための第１の手段を含む、第１の音声捕捉コンポーネントと、
前記第１の捕捉された音声信号に関して自動音声認識を実行して、第１の音声認識結果を生成するための第１の手段を含む、第１の音声認識処理コンポーネントと、
前記第１の音声認識結果を処理して第１の結果出力を生成するための第１の手段を含む、第１の結果処理コンポーネントと、
前記第１の音声捕捉コンポーネント、前記第１の音声認識処理コンポーネント、および前記第１の結果処理コンポーネントのうちの少なくとも２つを互いに動的に結合するための手段を含む、コンテキスト共有コンポーネントと
を備えるシステム。
【請求項３０】
前記第１の音声捕捉コンポーネントを含む第１の装置と、前記第１の結果処理コンポーネントを含む第２の装置とをさらに備え、前記第１の装置が前記第２の装置とは異なる、請求項２９に記載のシステム。
【請求項３１】
前記コンテキスト共有コンポーネントが、前記第１の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合するための手段を含む、請求項２９に記載のシステム。
【請求項３２】
ユーザーの音声を表す第２の音声信号を捕捉して、第２の捕捉された音声信号を生成するための第２の手段を含む、第２の音声捕捉コンポーネントをさらに含み、かつ
前記コンテキスト共有コンポーネントが、前記第２の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合するための手段をさらに含む、
請求項３１に記載のシステム。
【請求項３３】
前記第１の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合した後、前記第１の捕捉された音声信号を前記第１の音声認識処理コンポーネントに提供するための手段
をさらに含む、請求項３１に記載のシステム。
【請求項３４】
前記コンテキスト共有コンポーネントが、前記第１の音声捕捉コンポーネントを前記第１の結果処理コンポーネントに動的に結合するための手段を含む、請求項２９に記載のシステム。
【請求項３５】
前記コンテキスト共有コンポーネントが、前記第１の音声認識処理コンポーネントを前記第１の結果処理コンポーネントに動的に結合するための手段を含む、請求項２９に記載のシステム。
【請求項３６】
前記コンテキスト共有コンポーネントが、前記第１の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合するための、および前記第１の音声認識処理コンポーネントを前記第１の結果処理コンポーネントに動的に結合するための手段を含む、請求項２９に記載のシステム。
【請求項３７】
動的に結合するための前記手段が、前記第１の音声捕捉コンポーネント、前記第１の音声認識処理コンポーネント、および前記第１の結果処理コンポーネントのうちの少なくとも２つを互いに実行時に動的に結合するための手段を含む、請求項２９に記載のシステム。
【請求項３８】
システムとともに使用するためのコンピュータ実装方法であって、
前記システムが、
第１の音声捕捉コンポーネントと、
第１の音声認識処理コンポーネントと、
第１の結果処理コンポーネントと、
コンテキスト共有コンポーネントと
を備え、
前記方法が、
（Ａ）ユーザーの音声を表す第１の音声信号を捕捉するために前記第１の音声捕捉コンポーネントを使用して、第１の捕捉された音声信号を生成することと、
（Ｂ）前記第１の捕捉された音声信号に関して自動音声認識を実行するために前記第１の音声認識処理コンポーネントを使用して、第１の音声認識結果を生成することと、
（Ｃ）前記第１の音声認識結果を処理するために前記第１の結果処理コンポーネントを使用して、第１の結果出力を生成することと、
（Ｄ）前記第１の音声捕捉コンポーネント、前記第１の音声認識処理コンポーネント、および前記第１の結果処理コンポーネントのうちの少なくとも２つを互いに動的に結合するために前記コンテキスト共有コンポーネントを使用することと
を含む、
コンピュータ実装方法。
【請求項３９】
前記システムが、
前記第１の音声捕捉コンポーネントを含む、第１の装置と、
前記第１の結果処理コンポーネントを含む、第２の装置と
をさらに含み、
前記第１の装置が前記第２の装置とは異なる、
請求項３８に記載の方法。
【請求項４０】
（Ｄ）が、前記第１の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合することを含む、請求項３８に記載の方法。
【請求項４１】
前記システムが、第２の音声捕捉コンポーネントをさらに含み、
前記方法が、
（Ｅ）ユーザーの音声を表す第２の音声信号を捕捉するために前記第２の音声捕捉コンポーネントを使用して、第２の捕捉された音声信号を生成すること
をさらに含み、かつ
（Ｄ）が、前記第２の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合することを含む、
請求項３８に記載の方法。
【請求項４２】
（Ｅ）前記第１の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合した後、前記第１の捕捉された音声信号を前記第１の音声認識処理コンポーネントに提供すること
をさらに含む、請求項４０に記載の方法。
【請求項４３】
（Ｄ）が、前記第１の音声捕捉コンポーネントを前記第１の結果処理コンポーネントに動的に結合することを含む、請求項３８に記載の方法。
【請求項４４】
（Ｄ）が、前記第１の音声認識処理コンポーネントを前記第１の結果処理コンポーネントに動的に結合することを含む、請求項３８に記載の方法。
【請求項４５】
（Ｄ）が、前記第１の音声捕捉コンポーネントを前記第１の音声認識処理コンポーネントに動的に結合することと、前記第１の音声認識処理コンポーネントを前記第１の結果処理コンポーネントに動的に結合することとを含む、請求項３８に記載の方法。
【請求項４６】
（Ｄ）が、前記第１の音声捕捉コンポーネント、前記第１の音声認識処理コンポーネント、および前記第１の結果処理コンポーネントのうちの少なくとも２つを互いに実行時に動的に結合することを含む、請求項３８に記載の方法。
【請求項４７】
第１のマシンであって、
対象アプリケーションと、
結果処理コンポーネントであって、
第１の音声認識結果を処理して、結果出力を生成するための手段と、
前記結果出力を前記対象アプリケーションに提供するための手段と
を含む、結果処理コンポーネントと、
を含む、第１のマシンと、
音声捕捉装置であって、前記第１のマシンが前記音声捕捉装置を含まない、音声捕捉装置と、
前記結果処理コンポーネントを前記音声捕捉装置に論理的に結合するための手段を含む、コンテキスト共有コンポーネントと
を備えるシステム。
【請求項４８】
前記音声捕捉装置が電話を含む、請求項４７に記載のシステム。
【請求項４９】
システムとともに使用するためのコンピュータ実装方法であって、
前記システムが、
第１のマシンであって、
対象アプリケーションと、
結果処理コンポーネントと
を含む、第１のマシンと、
音声捕捉装置であって、前記第１のマシンが前記音声捕捉装置を含まない、音声捕捉装置と、
コンテキスト共有コンポーネントと
を含み、
前記方法が、
（Ａ）第１の音声認識結果を処理するために前記第１の結果処理コンポーネントを使用して、結果出力を生成することと、
（Ｂ）前記結果出力を前記対象アプリケーションに提供するために前記結果処理コンポーネントを使用することと、
（Ｃ）前記結果処理コンポーネントを前記音声捕捉装置に論理的に結合するために前記コンテキスト共有コンポーネントを使用することと
を含む、
コンピュータ実装方法。
【請求項５０】
前記音声捕捉装置が電話を含む、請求項４９に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
音声のトランスクリプトの作成およびコンピュータの動作の制御などの機能を実行するために音声を認識するための様々な自動音声認識（ＡＳＲ）システムが存在する。かかるシステムのための一般的な一構成では、ユーザーの音声を認識し、その認識結果に作用するための自動音声認識ソフトウェアを実行するデスクトップコンピュータまたは他のコンピューティング装置に、マイクロホンが直接接続されている。かかるシステムの別の一般的な構成では、ユーザーが電話をかけて電話器に向かって話し、すると、ユーザーからリモートの自動音声認識システムがユーザーの音声を認識して、その認識結果に作用する。
【０００２】
最近は、様々な機能およびコストを有する、ずっと幅広い種類のコンピューティング装置が利用可能になってきた。例えば、デスクトップおよびラップトップコンピュータ（それらは、通常、音声を捕捉するために、別に購入した、外部マイクロホンに接続する必要がある）に加えて、ベンダーは現在、多種多様な携帯情報端末（ＰＤＡ）、スマートフォン、およびタブレットコンピュータを提供しており、その全てがインターネットおよび他のネットワークに（たいてい、無線で）接続可能であり、その全てがカスタムアプリケーションをある程度実行可能であり、また、その一部が内蔵マイクロホンを含む。
【０００３】
それ故、必要なのは、認識品質、認識速度、および所有コストの正しい組合せを提供する自動音声認識能力を提供するために、様々なコンピューティング技術を利用するための改善された技術である。
【発明の概要】
【課題を解決するための手段】
【０００４】
自動音声認識システムは、２つ以上の論理装置および／または２つ以上の物理装置の間に分散されている、音声捕捉コンポーネント、音声認識処理コンポーネント、および結果処理コンポーネントを含む。特に、音声捕捉コンポーネントは、結果処理コンポーネントとは異なる論理装置および／または物理装置上に配置され得る。例えば、音声捕捉コンポーネントは、ユーザーがそれに向かって話すマイクロホンに接続されたコンピュータ上にあり得るが、他方、結果処理コンポーネントは、音声認識結果を音声認識処理サーバーから受信する端末サーバー上にあり得る。
【０００５】
別の実施形態では、音声捕捉コンポーネントは、結果処理コンポーネントと同じ論理装置および／または物理装置上にあり得るが、音声認識結果の適用の効果は、端末サーバーに接続されたコンピュータなどの、異なる論理装置および／または物理装置を通して、ユーザーに出力（例えば、表示）され得る。この実施形態では、エンドユーザーエクスペリエンスが、音声捕捉コンポーネントおよび／または結果処理コンポーネントがユーザーのコンピュータ上に配置されているものに、たとえ実際にはかかるコンポーネントのどちらもユーザーのコンピュータ上に配置されていなくても、類似している。
【０００６】
一実施形態では、システムは、音声捕捉コンポーネントを含む第１の装置であって、その音声捕捉コンポーネントが、捕捉された音声信号を生成するために、ユーザーの音声を表す音声信号を捕捉するための手段を含む、第１の装置；音声認識結果を生成するために、捕捉された音声信号に関して自動音声認識を実行するための手段を含む音声認識処理コンポーネント；結果処理コンポーネントを含む第２の装置；および結果処理コンポーネントがユーザーの現在のコンテキストに関連付けられていると判断するための手段を含む、コンテキスト共有コンポーネントを含み、その結果処理コンポーネントは、結果出力を生成するため、音声認識結果を処理するための手段を含む。
【０００７】
別の実施形態では、方法は、持続性コンピュータ可読媒体上に格納されたコンピュータプログラム命令を実行する少なくとも１つのプロセッサによって実行される。本方法は、システムと共に使用するためのものであり、そのシステムは、音声捕捉コンポーネントを含む第１の装置、音声認識処理コンポーネント、および結果処理コンポーネントを含む第２の装置を含む。本方法は、（Ａ）ユーザーの音声を表す音声信号を捕捉するために音声捕捉コンポーネントを使用して、捕捉された音声信号を生成すること；（Ｂ）捕捉された音声信号に関して自動音声認識を実行するために音声認識処理コンポーネントを使用して、音声認識結果を生成すること；（Ｃ）結果処理コンポーネントがユーザーの現在のコンテキストに関連付けられていると判断すること；（Ｄ）結果処理コンポーネントがユーザーの現在のコンテキストに関連付けられているという判断に応答して、音声認識結果を結果処理コンポーネントに提供すること；および（Ｅ）音声認識結果を処理するために結果処理コンポーネントを使用して、結果出力を生成することを含む。
【０００８】
別の実施形態では、システムは、ユーザーの第１の音声を表す第１の音声信号を捕捉して、第１の捕捉された音声信号を生成するための手段を含む、音声捕捉コンポーネント；第１の捕捉された音声信号に関して自動音声認識を実行して、第１の音声認識結果を生成するための手段を含む、音声認識処理コンポーネント；第１の音声認識結果を処理して、第１の結果出力を生成するための第１の手段を含む、第１の結果処理コンポーネント；第１の音声認識結果を処理して第２の結果出力を生成するための第２の手段を含む、第２の結果処理コンポーネント；第１および第２の結果処理コンポーネントのうちの第１のものを、初回に、ユーザーの第１のコンテキストに関連付けられていると識別するための手段を含む、コンテキスト共有コンポーネント：ならびに、第１の音声認識結果を、第１および第２の結果処理コンポーネントのうちの識別された第１のものに提供するための音声認識結果提供手段を含む。
【０００９】
本発明の様々な態様および実施形態の他の特徴および利点は、以下の記述および請求項から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１Ａ】自動音声認識を実行するための従来技術のシステムの略図である。
【図１Ｂ】自動音声認識を実行するための従来技術のシステムの略図である。
【図１Ｃ】自動音声認識を実行するための従来技術のシステムの略図である。
【図１Ｄ】自動音声認識を実行するための従来技術のシステムの略図である。
【図２Ａ】本発明の様々な実施形態に従った分散コンポーネントを使用する、自動音声認識を実行するためのシステムの略図である。
【図２Ｂ】本発明の様々な実施形態に従った分散コンポーネントを使用する、自動音声認識を実行するためのシステムの略図である。
【図３】図２Ａ〜図２Ｂのシステムによって実行される方法の流れ図である。
【図４】本発明の一実施形態に従って、ユーザーの現在のコンテキストを識別するためのシステムの略図である。
【図５】本発明の一実施形態に従って、図４のシステムによって実行される方法の流れ図である。
【図６Ａ】本発明の一実施形態に従って、異なる時におけるユーザーの現在のコンテキストを表すデータ構造の略図である。
【図６Ｂ】本発明の一実施形態に従って、異なる時におけるユーザーの現在のコンテキストを表すデータ構造の略図である。
【発明を実施するための形態】
【００１１】
図１Ａを参照すると、従来技術の自動音声認識（ＡＳＲ）システム１００ａの一例が示されている。システム１００ａは、従来型のＡＳＲシステムの特性および制限を理解するために有用な様々な特徴を示している。例えば、システム１００ａでは、ユーザー１０２が、デスクトップコンピュータ１１０ａに接続されているマイクロホン１０６に向かって話す。マイクロホン１０６は、本明細書で使用されるような、「音声捕捉装置」の一例である。マイクロホン１０６は、ユーザーの音声１０４を捕捉し、出力として、音声１０４を表す音声信号１０８を生成する。元の音声信号は、本明細書では、後述のように、それを、捕捉された音声信号１１４と区別するために、「元の音声信号」と呼ばれる。マイクロホン１０６は、元の音声信号１０８を、有線または無線接続などを通して、デスクトップコンピュータ１１０ａに伝送する。
【００１２】
マイクロホン１０６は、専用の外部マイクロホンであり得るが、代わりに、例えば、デジタルボイスレコーダー、携帯電話、または、音声を捕捉する以外の機能を実行可能な１つまたは複数のモジュールを含む他の装置内に含まれ得る。しかし、任意のかかる事例では、マイクロホン１０６は、これから説明するように、元の音声信号１０８を、デスクトップコンピュータ１１０ａによって処理するために、デスクトップコンピュータ１１０ａに伝送する。
【００１３】
デスクトップコンピュータ１１０ａは、元の音声信号１０８を受信する音声捕捉（ＡＣ）コンポーネント１１２を含む。音声捕捉コンポーネント１１２は、元の音声信号１０８を圧縮すること、および／またはそれに関して前処理を実行することなどにより、元の音声信号１０８を伝送に適した形式に処理し得る。音声捕捉コンポーネント１１２は、捕捉された音声信号１１４を出力するが、それは、元の音声信号１０８と同じであり得るか、または、音声捕捉コンポーネント１１２が任意の処理を元の音声信号１０８に適用した場合、元の音声信号１０８とは異なり得る。
【００１４】
デスクトップコンピュータ１１０ａは、音声認識処理（ＳＲＰ）コンポーネント１１６も含む。音声捕捉コンポーネント１１２は、捕捉された音声信号１１４を音声認識処理コンポーネント１１６に伝送する。図１Ａに示す例では、音声捕捉コンポーネント１１２および音声認識処理コンポーネント１１６は、同一のデスクトップコンピュータ１１０ａ上にあるので、音声捕捉コンポーネント１１２は、例えば、捕捉された音声信号１１４を、ローカルの関数呼び出しを使用して、音声認識処理コンポーネント１１６に伝送する。
【００１５】
音声認識処理コンポーネント１１６は、自動音声認識を捕捉された音声信号１１４に適用し、結果として、音声認識結果１１８を生成する。結果１１８は、例えば、音声信号１１４から認識された、口述された文のテキスト（例えば、「患者は頭痛を訴えて来院した」）、または音声信号１１４から認識されたコマンド（例えば、「ウィンドウをクローズしろ」または「オペレータにつなげ」）を含み得る。
【００１６】
デスクトップコンピュータ１１０ａは、結果処理（ＲＰ）コンポーネント１２０も含む。音声認識処理コンポーネント１１６は、音声認識結果１１８を結果処理コンポーネント１２０に伝送するが、それは、音声認識結果１１８を受信し、その音声認識結果１１８に応答して、適切な処置を取り、それにより、結果出力１２２を生成する。デスクトップコンピュータ１１０ａに接続された出力装置１２４は、結果出力１２２を表す出力１２６をユーザー１０２に対して表示し得る。
【００１７】
分かりやすくするために図１Ａには示されていないが、結果処理コンポーネント１２０は、結果出力１２２を、デスクトップコンピュータ１１０ａ上で実行している、ワードプロセッサなどの、アプリケーションに提供し得る。例えば、音声認識結果１１８がテキストの文である場合、結果処理コンポーネント１２０は、ワードプロセッサに、かかるテキストをオープンされている文書内に現在のテキストカーソル位置で挿入させ得る。出力装置１２４は、次いで、更新された文書をユーザー出力１２６として表示し得る。別の例として、音声認識結果１１８がコマンド（例えば、「ウィンドウをクローズしろ」）である場合、結果処理コンポーネント１２０はそのコマンドを実行し得（フォアグラウンドウィンドウを閉じることによるなど）、そして、出力装置１２４は、次いで、フォアグラウンドウィンドウが現れない、更新された表示を提供し得る。
【００１８】
音声捕捉コンポーネント１１２、音声認識処理コンポーネント１１６、および結果処理コンポーネント１２０は全て、本明細書で使用されるような、「音声認識コンポーネント」の例である。それ故、本明細書では、「音声認識コンポーネント」への任意の参照は、音声捕捉コンポーネント、音声認識処理コンポーネント、および結果処理コンポーネントのうちの１つまたは複数を指すと理解されるものとする。
【００１９】
図１Ａのシステム１００ａ内のコンピュータ１１０ａは、デスクトップコンピュータである必要はないが、多くの場合、コンピュータ１１０ａは、音声認識処理コンポーネント１１６の実質的なコンピューティング資源要件を満足するために、比較的強力なプロセッサおよび比較的大容量のメモリを備えたデスクトップコンピュータである。あるいは、例えば、音声認識処理コンポーネント１１６は、図１Ｂのシステム１００ｂに示すように、リモートの音声認識サーバーにオフロードされ得る。
【００２０】
さらに別の例として、マイクロホン１０６（または、他の音声捕捉装置）は、図１Ｃのシステム１００ｃに示すように、端末サーバー（Ｃｉｔｒｉｘサーバー）のクライアントセッションに関連付けられ得る。さらに具体的に言うと、図１Ｃでは、デスクトップコンピュータ１１０ｃは、音声認識処理コンポーネント１１６または結果処理コンポーネント１２０をもはや含んでいない。代わりに、デスクトップコンピュータ１１０ｃは、少なくとも部分的に音声信号１０８を捕捉するために、音声捕捉コンポーネント１０９を含むが、端末サーバー１３０ａは、音声捕捉コンポーネント１１２および音声認識処理コンポーネント１１６および結果処理コンポーネント１２０の両方も含む。
【００２１】
図１Ｃのシステム１００ｃ内のコンピュータ１１０ｃは、現在、端末サーバー１３０ａとの端末セッション接続を確立および維持するための端末ビューアソフトウェア１３２（Ｃｉｔｒｉｘクライアントソフトウェアなど）を含む。結果として、端末ビューアソフトウェア１３２は、本質的に、ユーザー入力（元の音声信号１０８など）を直接、端末サーバー１３０ａ上の端末セッションマネージャ１３４に渡す。端末セッションマネージャ１３４は、次いで、元の音声信号１０８を音声捕捉コンポーネント１１２に転送することによるなど、端末サービスクライアント１３２から受信した入力を適切に処理する。同様に、端末セッションマネージャ１３４は、出力（結果出力１２２など）を端末サービスクライアント１３２に伝送するが、それは、次いで、その出力を、デスクトップコンピュータ１１０ｃに接続された適切な出力装置（例えば、出力装置）に転送する。
【００２２】
ユーザー１０２の観点からすれば、図１Ｃのシステム１００ｃの動作は、たとえ、コンポーネント１１２、１１６および１２０が、図１Ａではデスクトップコンピュータ１１０ａ上に、そして、図１Ｃでは端末サーバー１３０ａ上に存在するにしても、図１Ａのシステム１００ａの動作と同様に見える。図１Ｃの構成では、端末サービスクライアント１３２は、本質的に、端末サーバー１３０ａへの双方向ウィンドウとして動作して、端末サーバー１３０ａがコンポーネント１１２、１１６、および１１８の全ての機能を実行するようにするが、デスクトップコンピュータ１１０ａ上の端末サービスクライアント１３２は、ユーザー１０２から入力を取得するため、およびユーザー１０２に出力を提供するために使用するのみである。図１Ｃの構成を使用するための資源は、セキュリティ（コンピュータ１１０ｃの喪失、窃盗、またはその他が、サーバー１３０ａ上のアプリケーションおよび／またはデータを含まないので）および処理効率（単一の高性能端末サーバーが、多数の小型で移動式の低性能クライアントコンピュータに対して、高速な高性能音声認識を提供できるので）を含む。
【００２３】
図１Ａの音声認識処理コンポーネント１１６が図１Ａのデスクトップコンピュータ１１０ａから図１Ｂのリモート音声認識サーバー１２８にオフロードされ得るのと全く同じように、図１Ｃの音声認識処理コンポーネント１１６も、図１Ｃの端末サーバー１３０ｂからオフロードされて、図１Ｄに示すシステム１００ｄを生成する。図１Ｄのシステム１００ｄ内の端末サーバー１３０ｂと音声認識サーバー１２８との間の相互作用は、従って、図１Ｂのシステム１００ｂの、デスクトップコンピュータ１１０ｂと音声認識サーバー１２８との間の相互作用と同様である。
【００２４】
別の例として、図１Ｄのシステム１００ｄを考えるが、そこではマイクロホン１０６が、電話に内蔵されて、電話で置き換えられているか、または電話入力装置として使用される。例えば、その電話は、従来型のアナログ電話であり得、その場合、デスクトップコンピュータ１１０ｃは、代わりに、アナログ電話接続を通して電話に接続されたテレフォニーサーバーであり得る。端末サーバー１３０ｂは、代わりに、テレフォニーサーバーに接続された対話処理サーバーであり得る。そうでなければ、システム１００ｄのコンポーネントは、図１Ｄに関連して前述したのと同じ一般的な機能を実行し得る。具体的には、対話処理サーバーは、音声捕捉コンポーネント１１２および結果処理コンポーネント１２０を含み得、他方、音声認識サーバー１２８は、音声認識処理コンポーネント１１６を含み得る。
【００２５】
あるいは、例えば、マイクロホン１０６および／または電話は、ボイスオーバーＩＰ（ＶｏＩＰ）電話であり得るか、またはボイスオーバーＩＰ（ＶｏＩＰ）電話として動作し得るが、その場合、テレフォニーサーバーは任意選択である。電話は、例えば、テレフォニーサーバーを使用することなく、対話処理サーバーに接続し得る。
【００２６】
上で開示した事例の全てにおいて、結果処理コンポーネント１２０は、音声捕捉コンポーネント１１２と同じ装置上に論理的に配置される。コンピュータ１１０ｃが端末サービスクライアント１３２を含み、音声捕捉コンポーネント１０６がネットワークを通じて結果処理コンポーネント１２０に接続されている事例（図１Ｃおよび図１Ｄ）でさえ、音声捕捉コンポーネント１１２は依然として、結果処理コンポーネント１２０と同じ装置（すなわち、コンピュータ１１０ｃ）上に存在する。これらの事例全てでは、従って、音声捕捉コンポーネント１１２は、物理的および／または論理的に、結果処理コンポーネント１２０と同じ装置上に配置される。
【００２７】
対照的に、本発明の実施形態は、音声捕捉コンポーネントを結果処理コンポーネントから分離して、２つのコンポーネントが互いに異なる物理装置および／または論理装置上に存在するようにする。
【００２８】
しかし、本発明の実施形態では、音声捕捉コンポーネントは依然として、緩い動的結合を通して、結果処理コンポーネントと通信する。かかる結合は、様々な形を取り、任意の様々な方法で確立され得る。例えば、音声捕捉コンポーネントと結果処理コンポーネントとの間の結合は、両方のコンポーネントのアプリケーションコンテキストを発見してマッチングさせることにより実行時に確立され得る。かかるコンテキストの発見およびマッチングが実行されると、音声捕捉コンポーネントおよび結果処理コンポーネントの共有コンテキストが、その２つのコンポーネントが、制御信号および／またはデータ信号を互いに送信することにより、互いに通信できるようにするために、使用され得る。
【００２９】
例えば、図２Ａを参照すると、本発明の一実施形態に従って実装されたシステム２００ａのデータフロー図が示されている。図３を参照すると、本発明の一実施形態に従い、図２Ａのシステム２００ａによって実行される方法３００の流れ図が示されている。
【００３０】
図２Ａのシステム２００ａは、図１Ａ〜図１Ｄのシステムのコンポーネントと同一または同様の方法で実装され得る様々なコンポーネントを含む。それ故、以降の説明では、図２Ａ（および本発明の他の実施形態）のシステム２００ａの個々のコンポーネントは、特に明記しない限り、それぞれ、図１Ａ〜図１Ｄのシステム２００ａ〜２００ｄにおける対応するコンポーネントと同一または同様の方法で実装され得ると考えられるべきである。
【００３１】
例えば、図２Ａのシステム２００ａでは、ユーザー２０２は、デスクトップコンピュータ２１０ａに接続されたマイクロホン２０６（または他の音声捕捉装置）に向かって話す。マイクロホン２０６は、ユーザーの音声２０４を捕捉し、出力として元の音声信号２０８を生成するが、それは音声２０４を表す（図３、操作３０２）。マイクロホン２０６は、元の音声信号２０８を音声捕捉コンポーネント２１２に伝送するか、または他の方法で提供するが、そのコンポーネントは、図２Ａでは、デスクトップコンピュータ２１０ａ上に配置されている（図３、操作３０４）。図２Ａの例によって示されるように、音声捕捉コンポーネント２１２は、音声信号がマイクロホン２０６によって出力された後に、音声信号２０８を受信するための、システム２００ａ内の第１のコンポーネントである。
【００３２】
音声捕捉コンポーネント２１２は、元の音声信号２０８を受信し、元の音声信号２０８に基づき、捕捉された音声信号２１４を出力として生成する（図３、操作３０６）。音声捕捉コンポーネント２１２は、例えば、図１Ａ〜図１Ｄに関連して前述したいずれかの方法で、捕捉された音声信号２１４を生成し得る。
【００３３】
しかし、図１Ａ〜図１Ｄのシステムとは異なり、図２Ａのシステム２００ａのデスクトップコンピュータ２１０ａは、結果処理コンポーネント２２０を含まない。代わりに、結果処理コンポーネント２２０は、図２Ａのシステム２００ａ内の端末サーバー２３０ａ上に配置される。以下のように、音声認識結果２１８が生成され、図２Ａのシステム２００ａ内の結果処理コンポーネント２２０に提供される。
【００３４】
音声捕捉コンポーネント２１２は、捕捉された音声信号２１４を、例えば、それをネットワーク接続を通じて伝送することにより、音声認識処理コンポーネント２１６に提供するが、それは、図２Ａのシステム２００ａ内で、リモートの音声認識サーバー２２８上に配置されている（図３、操作３０８）。音声認識処理コンポーネント２１６は、捕捉された音声信号２１４を受信し、その捕捉された音声信号２１４に関して自動音声認識を実行して音声認識結果２１８を生成する（図３、操作３１０）。
【００３５】
音声認識結果２１８は、一旦生成されると、結果処理コンポーネント２２０に提供される必要がある。しかし、図２Ａのシステム２００ａでは、結果処理コンポーネント２２０は、音声認識処理コンポーネント２１６と同じ装置上に配置されていない。その上、以下でさらに詳述するように、結果処理コンポーネント２２０の位置が動的であり得、例えば、結果処理コンポーネント２２０の位置は、ユーザー２０２の現在のコンテキストにおける変化に応じて時間とともに変わり得る。
【００３６】
結果処理コンポーネント２２０の位置が図２Ａのシステム２００ａ内で動的であるので、音声認識処理コンポーネント２１６は、音声認識結果２１８を結果処理コンポーネント２２０に提供するために、ローカルメソッド呼出しまたは所定のアドレスへの呼出しなどの、従来型の技術を頼りにできない。代わりに、図２Ａのシステム２００ａ内で、音声認識結果２１８を結果処理コンポーネント２２０に提供するためには、ユーザー２０２に現在関連付けられている結果処理コンポーネントの現在の位置を識別して、音声認識結果２１８がその結果処理コンポーネントに提供され得るようにすることが必要である。図２Ａに示す実施形態では、システム２００ａ内のコンテキスト共有コンポーネント２５０が、音声認識結果２１８が提供されるべき結果処理コンポーネント２２０を識別するが、それは、例えば、結果処理コンポーネント２２０の位置（例えば、ＩＰアドレス）および／または結果２１８を結果処理コンポーネント２２０に提供する方法（例えば、音声認識処理コンポーネント２１６が結果処理コンポーネント２２０と同じ装置上に配置されている場合はローカル手続き呼び出し、または音声認識処理コンポーネント２１６が結果処理コンポーネント２２０とは異なる装置上に配置されている場合はネットワーク）を識別することを含み得る。コンテキスト共有コンポーネント２５０は、ユーザー２０２の現在のコンテキスト２５２に基づいて、適切な結果処理コンポーネント２２０に関するかかる情報を識別し得る（図３、操作３１２）。ユーザーの現在のコンテキスト２５２の例、および現在のコンテキストレコード２５２がどのように生成されて管理されるかについては、以下で提供される。
【００３７】
例として、コンテキスト共有コンポーネント２５０が、結果処理コンポーネント２２０を、ユーザー２２０に現在関連付けられている結果処理コンポーネントとして識別すると仮定する。かかる識別に応答して、音声認識結果２１８が結果処理コンポーネント２２０に提供される（例えば、ネットワークを通して伝送される）（図３、操作３１４）。
【００３８】
音声認識結果２１８が、任意の様々な方法で結果処理コンポーネント２２０に提供され得る。例えば、音声認識処理コンポーネント２１６は、コンテキスト共有コンポーネント２５０が、ユーザー２０２に現在関連付けられている結果処理コンポーネントを識別することを要求し得る。コンテキスト共有コンポーネント２５０がかかる結果処理コンポーネントを識別できるようにするため、音声認識処理コンポーネント２１６は、例えば、コンテキスト共有コンポーネント２５０に、ユーザーのコンピュータ２１０ａと音声認識サーバー２２８との間の現在のセッションから得られた情報などの、ユーザー２０２に関する情報を提供し得る。
【００３９】
かかる要求に応答して、コンテキスト共有コンポーネントは、ユーザー２０２に現在関連付けられている結果処理コンポーネントを識別し、その結果処理コンポーネントを識別する情報を音声認識処理コンポーネント２１６に提供し得る。音声認識処理コンポーネント２１６（または、音声認識サーバー２２８の他のコンポーネント）は、かかる情報を使用して、音声認識結果２１８を識別された結果処理コンポーネント２２０に伝送し得る。別の例として、音声認識処理コンポーネント２１６は、音声認識結果２１８をコンテキスト共有コンポーネント２５０に（例えば、ユーザー２０２に関連付けられている結果処理コンポーネントを識別するための要求の一部として）提供し得、コンテキスト共有コンポーネント２５０は、次いで、その音声認識結果２１８を、結果処理コンポーネント２２０の識別後、識別された結果処理コンポーネント２２０に提供し得る。
【００４０】
結果処理コンポーネント２２０が音声認識結果２１８を受信するとすぐに、音声認識結果２１８は、図１Ａ〜図１Ｄに関連して前述したのと同一または同様の方法で、結果処理コンポーネント２２０およびシステム２００ａ内の他のコンポーネントによって処理されて、結果出力を生成し得る（図３、操作３１６）。一般に、結果処理コンポーネント２２０は、結果出力２２２を、端末サーバー２３０ａ上の端末セッションマネージャ２３４のセッション内で実行するアプリケーション２４０に提供し得る。結果２１８が音声２０４の内容を表すテキストまたは他のデータ出力を含む場合、アプリケーション２４０は、結果２１８を、例えば、その結果２１８を音訳プロセスの一部として文書に挿入することにより、処理し得る。別の例として、結果２１８が１つまたは複数のコマンドを含む場合、アプリケーション２４０は、ウィンドウを閉じる、ファイルを開く、またはソフトウェアを実行する、などの機能を実行するためのコマンドを実行することにより、結果２１８を処理し得る。
【００４１】
アプリケーション２４０によって実行されるかかる動作は、アプリケーションの現在の状態を変え得る動作の例である。例えば、対象アプリケーション２４０の開かれた文書に単語を挿入することは、文書の内容を変更することおよびその文書内のテキストカーソルの位置を変更することによるなど、様々な方法でアプリケーションの状態を変え得る。結果処理コンポーネント２２０は、アプリケーション状態データ２４２を対象アプリケーション２４０から取得し得る。アプリケーション状態データ２４２は、例えば、対象アプリケーション２４０による結果出力２２２の処理から生じた対象アプリケーション２４０の状態における変化を反映するデータを含み得る。対象アプリケーション２４０は、例えば、アプリケーション状態データ２４２を、アプリケーション２４０の状態が変化すると、結果処理コンポーネント２２０にプッシュ型配信し得るか、または別の例として、結果処理コンポーネント２２０は、結果処理コンポーネント２２０からのかかるデータ２４２に対する要求に応答して、アプリケーション状態データ２４２をアプリケーション２４０から取得し得る。
【００４２】
結果処理コンポーネント２２０は、音声認識処理コンポーネント２１６に対象アプリケーション２４０の状態を通知し得る。例えば、アプリケーション状態データ２４２を対象アプリケーション２４０から受信した後、結果処理コンポーネント２２０は、アプリケーション状態メッセージ２４４を音声認識処理コンポーネント２１６に伝送し得る。アプリケーション状態メッセージ２４４は、例えば、アプリケーション状態データ２４２と同じデータを表し得るが、異なる形を取り得る。結果処理コンポーネント２２０は、例えば、アプリケーション２４０からのアプリケーション状態データ２４２の取得に応答して、アプリケーション状態メッセージ２４４を音声認識処理コンポーネント２１６にプッシュ型配信し得るか、または別の例として、音声認識処理コンポーネント２１６は、音声認識処理コンポーネント２１６からのかかるメッセージ２４４に対する要求に応答して、アプリケーション状態メッセージ２４４を対象アプリケーション２４０から受信し得る。アプリケーション状態メッセージ２４４は、例えば、任意のネットワークプロトコルを使用して、ネットワーク介して伝送され得る。
【００４３】
音声認識処理コンポーネント２１６は、アプリケーション状態メッセージ２４４の内容に応答し、かつ、それに基づいて、任意の適切な処置を取り得る。例えば、音声認識処理コンポーネント２１６は、アプリケーション状態メッセージ２４４の内容に応答し、かつ、それに基づいて、その音声認識コンテキストの任意の態様（例えば、現在の音響モデルおよび／または言語モデル）を変更し得る。例えば、アプリケーション状態メッセージ２４４が、アプリケーション２４０が現在特定のダイアログボックスを表示していることを示している場合、メッセージ２４４に応答して、音声認識処理コンポーネント２１６は、そのダイアログボックスに含まれているユーザーインタフェース要素（例えば、ボタン）を反映するように、その言語モデルを変更し得る。
【００４４】
対象アプリケーション２４０は、端末サーバー２３０ａ上の端末セッションマネージャ２３４のセッション内で実行する任意のソフトウェアであり得る。対象アプリケーション２４０は、アプリケーションプログラムである必要はなく、例えば、オペレーティングシステムまたは他の非アプリケーションソフトウェアであり得る。それ故、アプリケーション状態メッセージ２４４内に反映され得るアプリケーション状態変化の別の例は、同じオペレーティングシステム内の１つのアプリケーションから別のアプリケーションへのフォアグラウンドにおける切替えであり、それに応答して、現在フォアグラウンドにあるアプリケーションを反映するように、音声認識処理コンポーネント２１６がその音声認識コンテキストの任意の態様（例えば、現在の音響モデルおよび／または言語モデル）を変更し得る。
【００４５】
アプリケーション状態メッセージ２４４は、図２Ａに、結果処理コンポーネント２２０によって音声認識処理コンポーネント２１６に直接伝送されるとして示されているが、代替として、結果処理コンポーネント２２０は、アプリケーション状態メッセージ２４４をコンテキスト共有コンポーネント２５０に伝送し得、それは、次いで、アプリケーション状態メッセージ２４４（または、アプリケーション状態メッセージ２４４内に含まれている任意のデータ）を、本明細書で開示する任意の技術を使用して、音声認識処理コンポーネント２１６に伝送し得る。例えば、テキストがアプリケーション２４０によって文書内に（音声転記の結果として、または、テキストを文書内に直接タイプすることなどの他の手段によって）挿入された後、結果処理コンポーネント２２０は、コンテキスト共有コンポーネント２５０に、アプリケーション状態メッセージ２４４をコンテキスト共有コンポーネント２５０に伝送することにより、アプリケーション２４０の新しい状態を通知し得る。コンテキスト共有コンポーネント２５０は、この状態変化のレコードを格納して、かかるレコードを音声認識処理コンポーネント２１６に積極的に転送し得るか、またはそのレコードを、音声認識処理コンポーネント２１６による検索のために利用可能にし得る。これは、コンテキスト共有コンポーネント２５０が、音声認識コンポーネントによって提供された情報を格納するため、およびかかる格納された情報を音声認識コンポーネントに対して利用可能にするためのレジストリとして機能し得る方法の一例に過ぎない。コンテキスト共有コンポーネント２５０のこの特徴の１つの利益は、音声認識コンポーネントが全て同じ論理マシンおよび／または物理マシン上に存在して実行していた場合に、それらに対して利用可能であり得た従来型の通信機構（例えば、ローカル手続き呼び出し）の欠如にも関わらず、様々な音声認識コンポーネントを互いに通信可能にすることである。
【００４６】
図２Ａのシステム２００ａでは、コンピュータ２１０ａは、端末サーバー２３０ａ上の端末セッションマネージャ２３４との端末セッション接続を確立および維持するための端末サービスクライアント２３２（Ｃｉｔｒｉｘクライアントソフトウェアなど）を含む。端末セッションマネージャ２３４は、結果出力２２２を受信して、端末サービスクライアント２３２に伝送し得る（図３、操作３１８）が、それは、次いで、その結果出力２２２を、デスクトップコンピュータ２１０ａに接続された適切な出力装置２２４に転送して、出力２２６をユーザー２０２（例えば、コンピュータモニター）に提供し得る（図３、操作３２０）。結果２１８が、例えば、文書に挿入される、テキストを含む場合、ユーザー出力装置２２４は、更新された文書をユーザー出力２２６として表示し得る。別の例として、結果２１８がアプリケーションプログラムを開始するためのコマンドを含む場合、ユーザー出力装置２２４は、アプリケーションプログラムウィンドウをユーザー出力２２６として表示し得る。
【００４７】
図２Ａのシステム２００ａは、図１Ａ〜図１Ｄに示した従来技術のシステムに勝る様々な利点を有する。例えば、図２Ａ内のデスクトップコンピュータ２１０ａ上の音声捕捉コンポーネント２１２は、マイクロホン２０６からの音声信号２０８を捕捉するため、デスクトップコンピュータ２１０ａ上にインストールされたソフトウェアアプリケーションであり得る。これを図１Ｄのシステム１００ｄと比較すると、そこでは、音声捕捉コンポーネント１１２が端末サーバー１３０ｂ上にある。図１Ｄでは、元の音声信号１０８は、音声捕捉コンポーネント１１２によって捕捉される前に、まず、ネットワーク接続を介して、デスクトップコンピュータ１１０ｃから端末サーバー１３０ｂに伝送される必要があるので、結果として生じる捕捉された音声信号１１４は、例えば、元の音声信号１０８がデスクトップコンピュータ１１０ｃから端末サーバー１３０ｂへの伝送時に損失または他の劣化を経験し得るので、準最適であり得る。音声信号１１４は、人間に対する再生のために最適化される方法で圧縮されるので、かかる劣化は、従来型のシステムでは一般的である。結果として生じる圧縮された音声信号は、最適な音声認識に対して必要とされるよりも低品質である。対照的に、図２Ａに示す実施形態では、音声捕捉コンポーネント２１２によって生成された捕捉された音声信号２１４は、音声認識用に最適化され得、それにより、音声認識結果２１８の品質を改善する。
【００４８】
図２Ａの実施形態では、音声捕捉コンポーネント２１２と結果処理コンポーネント２２０の分離にも関わらず、結果処理コンポーネント２２０は依然として音声認識結果２１８を処理して、結果出力２２２をリアルタイムで、または実質的にリアルタイムで生成し得る。同様に、システム２００ａは、音声２０４を処理して結果出力２２２を生成し、結果出力２２２を対象アプリケーション２４０にリアルタイムで、または実質的にリアルタイムで提供し得る。結果として、音声２０４を認識すること、音声認識結果２１８を処理して結果出力２２２を生成すること、およびその結果出力２２２を対象アプリケーション２４０に提供することの結合プロセスが、リアルタイムで、または実質的にリアルタイムで実行され得る。同様に、結果処理コンポーネント２２０は、アプリケーション状態データ２４２を受信して、アプリケーション状態メッセージ２４４を音声認識処理コンポーネント２１６にリアルタイムで、または実質的にリアルタイムで提供し得る。音声２０４の発話と結果出力２２２との間に何らかの遅延が取り込まれ得るが、かかる遅延は、転写士（ｔｒａｎｓｃｒｉｐｔｉｏｎｉｓｔ）などの人間のオペレータによって取られる処置を待機している間、音声信号２０８、捕捉された音声信号２１４、または音声認識結果２１８の任意の保管に起因するのではなく、音声捕捉コンポーネント２１２、音声認識処理コンポーネント２１６、および結果処理コンポーネント２２０などのコンポーネントの操作に内在する遅延、ならびにそれらの間の伝送遅延のみに起因し得る。代わりに、コンポーネント２１２、２１６、および２２０の各々は、その入力を受信すると、できるだけ迅速にその出力を生成し得、かかる出力を生成すると、その出力をかかる出力の消費者に直ちに提供し得る。
【００４９】
音声捕捉コンポーネント２１２および結果処理コンポーネント２２０は、図２Ａに示す以外の方法で、互いに異なる物理装置および／または論理装置上に分離され得る。例えば、図２Ｂのシステム２００ｂでは、ユーザー２０２は、音声信号２０８を生成するために、電話２０７（マイクロホンまたは他の音声捕捉装置を含み得る）に向かって話す。音声信号２０８は音声認識サーバー２２８に提供されるが、それは、図２Ｂのシステム２００ｂ内でテレフォニーサーバーとしても機能し得る。サーバー２２８は、音声捕捉コンポーネント２１３を含み、それは、音声信号２０８をサーバー２２８のＶｏＩＰコンポーネントから受信して、捕捉された音声信号２１４を生成し得る。図２Ｂでは、電話２０７は、有線接続であれ、無線（例えば、ブルートゥース）接続であれ、デスクトップコンピュータ２１０ｂと直接結合されていないことに留意されたい。結果として、音声捕捉コンポーネント２１２は、音声信号が、ユーザーの音声２０４に基づき、音声信号２０８を出力する装置（すなわち、電話２０７）によって出力された後、その音声信号２０８を受信するための、システム２００ｂにおける最初のコンポーネントである。図２Ｂのシステム２００ｂは、他の点においては、図２Ａのシステム２００ａと同じ方法で動作し得る。
【００５０】
図２Ｂのシステム２００ｂは、音声捕捉コンポーネント２１２が、結果処理コンポーネント２２０とは異なる物理装置および／または論理装置上に配置されている、本発明の実施形態の別の例である。その上、図２Ｂのシステム２００ｂでは、端末サービスクライアント２３２を含む、コンピュータ２１０ｂは、音声捕捉コンポーネント２１２を含むものとは異なる物理装置および／または論理装置である。図２Ｂのシステム２００ｂの１つの利益は、コンピューティング装置にローカルに接続されたマイクロホンがない場合でさえ、音声認識が、デスクトップコンピュータ２１０ｂなどの、そのコンピューティング装置を使用して実行できるようにすることである。
【００５１】
コンピュータ２１０ｂが音声捕捉コンポーネント２１２に適切でない（例えば、それがマイクロホンにローカルに接続されていないので）場合でさえ、コンピュータ２１０ｂは、端末サービスクライアント２３２の実行に適切であり得る。例えば、コンピュータ２１０ｂは、端末サービスクライアント２３２を効果的に実行するのに十分な計算資源を含み得、また、ユーザー２０２からの入力を受信するためのフルサイズのキーボードおよびマウス、出力２２６をユーザー２０２に対して表示するためのフルサイズのモニター、ならびに端末サーバー２３０ａとの通信のための高速有線ネットワーク接続も含み得る。結果として、音声捕捉コンポーネント２１２が音声認識サーバー２２８上に配置され、端末サービスクライアント２３２がコンピュータ２１０ｂ上に配置されている、図２Ｂに示す構成は、音声捕捉コンポーネント２１２および端末サービスクライアント２３２を分散して、各かかるコンポーネントが、それに最も適した装置によって配置されて実行されるようにし得る。
【００５２】
図２Ｂのシステム２００ｂでは、ユーザー２０２は、コンピュータ２１０ｂの入力および出力能力を十分に活用しながら、音声認識サーバー２２８の重要な処理能力を十分に活用できる。例えば、ユーザー２０２は、マイクロホン２０６（例えば、ＶｏＩＰ電話または携帯電話内に含まれているか、または（有線もしくは無線で）それに接続されたマイクロホン）に向かって話し、音声認識を音声２０４に、例えば、リアルタイムで、迅速に適用した結果を経験し得る。例えば、ユーザー２０２は、マイクロホン２０６に向かって口述し、それに応答して、端末サービスクライアント２３２が、ユーザーの音声２０４に対応する転記されたテキストを（出力２２６として）リアルタイムで、表示し得る。別の例として、ユーザー２０２は、コマンドをマイクロホン２０６に向かって話し、それに応答して、端末サービスクライアント２３２が、それらのコマンドの実行結果を（出力２２６として）表示し得る。ユーザーの観点から見れば、実際には、音声認識システムのコンポーネント１１２、１１６および１２０が音声認識サーバー２２８上にリモートに配置されていても、また、マイクロホン２０６がデスクトップコンピュータ２１０ｂに接続されていなくても、かかるエクスペリエンスは、デスクトップコンピュータ２１０ｂ自体に配置された自動音声認識システムを使用するエクスペリエンスに類似しているか、または区別ができない可能性がある。
【００５３】
前述のように、コンテキスト共有コンポーネント２５０は、音声捕捉コンポーネント２１２、音声認識処理コンポーネント２１６、および結果処理コンポーネント２２０を互いに接続する際に、ユーザー２０２の現在のコンテキスト２５２の格納、維持、または他の方法でのアクセス、および利用を行い得る。例えば、ユーザー２０２の現在のコンテキスト２５２は、どの音声捕捉コンポーネント（複数）、音声認識処理コンポーネント（複数）、および結果処理コンポーネント（複数）が、ユーザー２０２によって、現在使用されているか、または他の方法で使用可能であるかを示し得る。かかるコンポーネントは、例えば、ユーザー２０２によって現在使用されている装置上に配置されている任意のかかるコンポーネントを含み得る。
【００５４】
コンテキスト共有コンポーネント２５０は、ユーザーの現在のコンテキストのレコード２５２を生成、格納、維持、および／またはアクセスし得る。かかるレコード２５２は、特定の時点でのユーザーのコンテキストを表し得る。それ故、以下でさらに詳述するように、ユーザー２０２に関連付けられたコンテキストレコード２５２は、ユーザー２０２が新しい装置の使用を開始する（または、他の方法で新しい音声認識処理コンポーネントへのアクセスを得る）につれて、また、ユーザー２０２が以前に使用していた装置の使用を停止する（または、他の方法で音声認識処理コンポーネントへのアクセスを終了する）につれて、時間とともに変わり得る。
【００５５】
例えば、図６Ａを参照すると、本発明の一実施形態に従ったユーザーコンテキストレコード６００ａの一例が示されている。図６Ａのコンテキストレコード６００ａは、図２Ａおよび図２Ｂに示された現在のユーザーコンテキストレコード２５２の一例である。コンテキストレコード６００ａは、ユーザー２０２の識別子６０２を含む。識別子６０２は、ユーザー２０２を他のユーザーから区別するか、ならびに／またはユーザー２０２が配置できるか、および／もしくは通信できるようにする、任意のデータを含み得る。例えば、ユーザー識別子６０２は、ユーザー名、パスワード、電子メールアドレス、インターネットプロトコル（ＩＰ）アドレス、およびセッション識別子（端末サーバー２３０ａ〜ｂ、音声認識サーバー２２８、またはコンテキスト共有コンポーネント２５０をもつ、ユーザー２０２のセッションのセッション識別子など）のうちの任意の１つまたは複数を含み得る。
【００５６】
コンテキストレコード６００ａは、ユーザー２０２によって現在使用されている装置上に配置されて実行しているか、または他の方法でユーザー２０２によるか、もしくはユーザー２０２に代わっての使用が現在認可されている、音声捕捉コンポーネント６０４、音声認識処理コンポーネント６０８、および結果処理コンポーネント６１２のリストも含む。図６Ａに示される特定の例では、音声捕捉コンポーネントリスト６０４は、ちょうど１つの音声捕捉コンポーネントを（要素６０６ａ内に）リストし、音声認識処理コンポーネントリスト６０８は、ちょうど１つの音声認識処理コンポーネントを（要素６１０ａ内に）リストし、また、結果処理コンポーネントリスト６１２は、ちょうど１つの結果処理コンポーネントを（要素６１４ａ内に）リストする。しかし、リスト６０４、６０８、および６１２のいずれも、いかなる時でも、任意の０個、１つ、または複数の音声認識コンポーネントを含み得る。例えば、リスト６０４、６０８、および６１２は、結果処理コンポーネントのみを指定し得るか、または結果処理コンポーネントおよび音声認識処理コンポーネントの両方、または結果処理コンポーネントおよび音声捕捉コンポーネントの両方、または音声捕捉コンポーネントおよび音声認識処理コンポーネントの両方、または結果処理コンポーネント、音声捕捉コンポーネント、および音声認識処理コンポーネントを指定し得る。
【００５７】
前述の説明が示すように、リスト６０４、６０８、および６１２の任意の１つまたは複数は、０個のコンポーネントを指定し得る。あるいは、例えば、ユーザーコンテキストレコード６００ａは、リスト６０４、６０８、および６１２の全部よりも少ない数を含み得る。例えば、ユーザーコンテキストレコード６００ａは、リスト６０４のみ、リスト６０８のみ、またはリスト６１２のみを含み得る。別の例として、ユーザーコンテキストレコード６００ａは、リスト６０４および６０８のみを含み得るが６１２を含まないか、または、リスト６０４および６１２のみを含み得るが６０８を含まないか、または、リスト６０８および６１２のみを含み得るが６０４を含まない。かかる実施形態では、ユーザーのコンテキストは、単一の音声認識コンポーネントのみの参照によって、または２つの音声認識コンポーネントのみの参照によって、定義され得る。
【００５８】
別の例として、結果処理コンポーネントリスト６１２は、複数の結果処理コンポーネントを指定して、対応するユーザーが複数の結果処理コンポーネントに同時に関連付けられていることを示し得る。例えば、ユーザーは、１つのコンピューティング装置（例えば、デスクトップコンピュータ）上の第１の結果処理コンポーネントを使用しながら、別のコンピューティング装置（例えば、Ａｐｐｌｅ  ｉＰａｄタブレットコンピュータ）上の第２の結果処理コンポーネントを使用し得る。同時に、ユーザーコンテキストレコード６００ａの音声認識処理コンポーネントリスト６０８は、例えば、単一の音声認識処理コンポーネントを指定し得る。この例では、単一の音声認識処理コンポーネントが、音声認識結果を生成して、ユーザーに関連付けられた結果処理コンポーネントの両方に提供するために使用される。音声認識処理コンポーネントの結果が、例えば、コンテキスト共有コンポーネント２５０により、任意の様々な方法で、適切な結果処理コンポーネントに提供され得る。例えば、音声認識処理コンポーネントは、アプリケーションコンテキストに基づいて対象アプリケーションを識別し、その対象アプリケーションを識別するフラグを設定し得る。コンテキスト共有コンポーネント２５０は、次いで、音声認識処理コンポーネントの出力を、フラグによって識別された対象アプリケーションに関連付けられた（例えば、それと同じマシン上で実行する）結果処理コンポーネントに提供し得る。
【００５９】
例として、ユーザー２０２が現在、図２Ａのシステム２００ａを使用していると仮定する。結果として、ユーザーコンテキストレコード６００ａは：
・音声捕捉コンポーネント２１２が、ユーザーの音声２０４から生成された音声２０８に関して音声捕捉を実行するために使用されることを示す（要素６０６ａ内の）レコード；
・音声認識処理コンポーネント２１６が、音声捕捉コンポーネント２１２によって生成された捕捉された音声信号２１４に関して自動音声認識を実行するために使用されることを示す（要素６１０ａ内の）レコード；および
・結果処理コンポーネント２２０が、音声認識処理コンポーネント２１６によって生成された結果２１８を処理するために使用されることを示す（要素６１４ａ内の）レコード
を含み得る。
【００６０】
かかるレコード６０６ａ、６１０ａ、および６１４ａは、適切な入力が、それぞれ、音声捕捉コンポーネント２１２、音声認識処理コンポーネント２１６、および結果処理コンポーネント２２０に提供できるようにするために必要であるか、または有用である、任意の情報を含み得る。かかる情報は、例えば、コンポーネントの位置（例えば、ＩＰアドレス）および／または適切な入力をコンポーネントに提供する方法（例えば、ローカル手続き呼び出しまたはネットワーク伝送）を含み得る。
【００６１】
コンテキスト共有コンポーネント２５０は、ユーザー２０２が現在アクセス可能な装置およびコンポーネントに関する情報を任意の様々な方法で収集し得る。例えば、図４は、本発明の一実施形態に従って、ユーザーの現在のコンテキストを識別するための、システム４００のデータフロー図を示す。図５は、本発明の一実施形態に従い、図４のシステム４００によって実行される方法５００の流れ図を示す。しかし、ユーザーコンテキストは、他の方法で識別、記録、維持、および処理され得る。
【００６２】
その上、図４のシステム４００は、図２Ａに示されるものに類似した構成を含むが、これは一例に過ぎず、本発明の制限ではない。図４のシステム４００は、図２に関連して説明したのと同じか、または同様に動作し得る、マイクロホン２０６などの、図２Ａのシステム２００ａからの追加のコンポーネントを含み得るが、かかるコンポーネントは、説明を容易にするため、図４には示されていない。
【００６３】
ユーザー２０２が、図４のデスクトップコンピュータ２１０ａなどの、特定の装置を最初に使い始めるとき、または、ユーザー２０２が、他の方法で、その装置上の音声認識コンポーネントを、ユーザー２０２に代わって音声認識を実行する際に、利用可能にしたいときに、ユーザー２０２は、その装置（例えば、デスクトップコンピュータ２１０ａ）にそれ自身およびその装置上の音声認識コンポーネントに関する情報４０６をコンテキスト共有コンポーネント２５０に伝送させる入力４０４を提供し得る（図５、操作５０２）。ユーザー２０２は、例えば、コンテキスト共有コンポーネント２５０によって維持されているユーザーアカウントに、認証情報（例えば、一意のユーザー名およびパスワード）をそのコンテキスト共有コンポーネントに提供することなどにより、ログインし得る。彼または彼女のアカウントへのユーザーログインに応答して、コンテキスト共有コンポーネントは、デスクトップコンピュータ２１０ａ上のコンテキスト共有クライアント４０２を使用して、デスクトップコンピュータ２１０ａおよびデスクトップコンピュータ２１０ａ上に配置された音声認識コンポーネント（例えば、図５のシステム４００内の音声捕捉コンポーネント２１２）を記述するデータを伝送するなどにより、デバイスコンテキストデータ４０６をその装置から取得し得る。
【００６４】
コンテキスト共有コンポーネント２５０は、ユーザー２０２に関連付けられたコンテキストレコードを更新して、取得されたデータを反映し得る、例えば、ユーザー２０２が現在、デスクトップコンピュータ２１０ａを使用していることを反映し得るが、それは、音声捕捉コンポーネント２１２を含み、実行している（図５、操作５０４）。例えば、かかる更新は、ユーザー２０２が現在、デスクトップコンピュータ２１０ａ上の音声捕捉コンポーネント２１２を使用していることを示すために、図６のユーザーコンテキストレコード６００ａを更新する結果となると仮定する。デスクトップコンピュータ２１０ａが追加の音声認識コンポーネント（音声認識処理コンポーネントおよび／または結果処理コンポーネントなど）を含む場合、かかるコンポーネントに関する情報もコンテキスト共有コンポーネント２５０に提供されて、ユーザーのコンテキストレコードを更新するためにコンテキスト共有コンポーネント２５０によって使用される。
【００６５】
図５の操作５０２および５０４は、ユーザー２０２によって現在使用されている任意の数の装置に対して繰り返され得る。例えば、ユーザー２０２が携帯電話上で音声捕捉コンポーネントを使用し、他方、端末サーバー上で結果処理コンポーネントを使用している場合、ユーザー２０２は、両方のかかる装置を通じてコンテキスト共有コンポーネント２５０にログインし得、それにより、ユーザー２０２が現在、携帯電話上の音声捕捉コンポーネントおよび端末サーバー上の結果処理コンポーネントを使用していることを、コンテキスト共有コンポーネント２５０が判断できるようにする。
【００６６】
コンテキスト共有コンポーネント２５０は、ユーザーの現在のコンテキスト２５２に依存していない音声認識コンポーネントに関する情報を、ユーザー２０２と関連付け、任意選択で、そのユーザーのコンテキストレコード２５２に格納し得る。例えば、ユーザーの現在のコンテキストレコード２５２は、ユーザーのデフォルトの結果処理コンポーネントが、端末サーバー２３０ａ上に配置された結果処理コンポーネント２２０であることを示し得る。結果として、コンテキスト共有コンポーネント２５０は、ユーザーの現在のコンテキスト２５２とは無関係に、結果処理コンポーネント２２０をユーザー２０２と関連付け得る。これが行われ得る１つの方法は、ユーザー２０２またはそのユーザーの装置のいずれかが、ユーザー２０２が現在接続されているか、そうでなければ端末サーバー２３０ａを使用しているコンテキスト共有コンポーネント２５０に指示を提供するか否かに関わらず、結果処理コンポーネント２２０のレコードをユーザーの結果処理コンポーネントリスト６１２（図６Ａ）に自動的に含めることである。
【００６７】
コンテキスト共有コンポーネント２５０および／またはコンテキスト共有クライアント４０２は、様々な技術を使用して、ユーザー２０２に代わって現在使用可能な音声認識コンポーネントを自動的に識別し得る。例えば、コンテキスト共有クライアント４０２は、ユーザーのコンピュータ２１０ａが現在端末サービスセッションを通して接続されていることを検出し、それにより、端末サーバー２３０ａ上の結果処理コンポーネント２２０が、ユーザー２０２に代わって音声認識結果の処理のために利用可能であると判断し得る。コンテキスト共有クライアント４０２は、どのコンテキスト共有コンポーネント２５０が、ユーザーのコンテキストレコード２５２内に、結果処理コンポーネント２２０がユーザー２０２に代わって使用可能であることを記録し得るかに応答して、コンテキスト共有コンポーネント２５０にかかる判断を通知し得る。
【００６８】
コンテキスト共有コンポーネント２５０は、ユーザーのコンテキストレコード２５２（例えば、図６Ａのコンテキストレコード６００ａ）に格納されたコンテキスト情報を関連付けて、ユーザーのコンテキストレコード２５２内にリストされている全てのコンポーネントが、現在、ユーザー２０２に代わって使用可能であるという結論に達し得る（操作５０６）。コンテキスト共有コンポーネント２５０が、ユーザー２０２に関連付けられた、音声捕捉コンポーネント、音声認識処理コンポーネント、および結果処理コンポーネントのうちの少なくとも１つを含む、ユーザー２０２の現在のコンテキストを識別するとすぐに、コンテキスト共有コンポーネント２５０が、かかるコンポーネントと論理的および／または物理的に接続するために使用されて、音声認識を実行し得る（図５、操作５０８）。図２Ａ〜図２Ｂおよび図３に関連して前述した技術は、音声認識コンポーネント間での結合のこの動的作成が、複数の論理装置および／または物理装置にわたって分散されているコンポーネントを使用して音声認識を実行するために使用され得る（図５、操作５１０）方法の例である。
【００６９】
図６のコンテキストレコード６００ａなどの、特定のユーザーコンテキストレコードは、かかるレコードが変更されるかもしくは何らかの理由で無効にならない限り、またはそうなるまで、有効のままであり得、例えば、図２Ａ〜図２Ｂのシステム２００ａ〜ｃによって、継続して使用され得る。例えば、レコード６００ａは、ユーザーがコンテキスト共有コンポーネント２５０からログアウトしない限り、かつログアウトするまで、継続して使用されて、ユーザーの現在のコンテキストの正確な反映として扱われ得る。特に、ユーザー２０２が、特定の装置を使用するコンテキスト共有コンポーネント２５０からログアウトすると、そのコンテキスト共有コンポーネントは、ユーザーのコンテキストレコード６００ａから、その特定の装置に配置された全ての音声認識コンポーネントを削除し得る。同様に、コンテキスト共有コンポーネント２５０は、特定の装置とのネットワーク接続の喪失、または特定の装置と接触することのない特定期間（例えば、３０分）の満了に応答して、かかる削除を実行し得る。さらに別の例として、コンテキストレコード６００ａは、ユーザー２０２（または管理者または他のユーザー）が明示的にレコード６００ａを修正しない限り、かつ修正するまで、ユーザーの現在のコンテキストの正確な反映として扱われ得る。
【００７０】
これらの例が示すように、ユーザーコンテキストレコード６００ａは、特定の時点におけるか、または特定の期間中のユーザー２０２のコンテキストを反映し得る。これが意味するように、ユーザーのコンテキストが時間とともに変化するにつれて、ユーザーのコンテキストレコード６００ａは、ユーザーの変化するコンテキストを反映するために、時間とともに変化し得る。コンテキストレコード６００ａに対するかかる修正の特に有用な一例は、ユーザー２０２による装置使用における変化を反映することである。例えば、コンテキストレコード６００ａが、ユーザー２０２が初めて、図２Ａのデスクトップコンピュータ上で音声捕捉コンポーネント２１２を使用していることを（要素６０６ａ内で）示すと仮定する。次に、後に、２回目に、ユーザー２０２が、図２Ｂのシステム２００ｂにおけるように、音声認識サーバー内音声捕捉コンポーネントに接続された携帯電話の使用を開始すると仮定する。ユーザー２０２は、携帯電話を使用するコンテキスト共有コンポーネント２５０にログインし得るか、またはそうでなければ、音声認識サーバー２２８上の音声捕捉コンポーネントが今、ユーザー２０２に代わって使用可能であることを、コンテキスト共有コンポーネント２５０が通知されるようにし得る（図５、操作５１２）。
【００７１】
コンテキスト共有コンポーネント２５０は、ユーザー２０２に関連付けられたコンテキストレコードを更新して、取得されたデータを反映し得る、例えば、ユーザー２０２が現在、音声認識サーバー２２８上の音声捕捉コンポーネント２１２に接続された携帯電話を使用していることを反映し得る（図５、操作５１４）。これは、例えば、図６Ｂのコンテキストレコード６００ｂに示すように、デスクトップコンピュータ音声捕捉コンポーネントのレコードをユーザーのコンテキストレコードから削除して、それを、音声認識サーバー２２８上の音声捕捉コンポーネント２１２のレコードと置き換えるという結果になり得、コンテキストレコード６００ｂでは、要素６０６ｂは音声認識サーバー２２８上の音声捕捉コンポーネント２１２を表す。
【００７２】
例えば、かかる更新は、ユーザー２０２が現在、デスクトップコンピュータ２１０ａ上の音声捕捉コンポーネント２１２を使用していることを示すために、図６のユーザーコンテキストレコード６００ａを更新する結果になると仮定する。デスクトップコンピュータ２１０ａが追加の音声認識コンポーネント（音声認識処理コンポーネントおよび／または結果処理コンポーネントなど）を含む場合、かかるコンポーネントに関する情報もコンテキスト共有コンポーネント２５０に提供されて、ユーザーのコンテキストレコードを更新するためにコンテキスト共有コンポーネント２５０によって使用される。
【００７３】
それ故、図６Ａおよび図６Ｂの例では、変化するのはユーザーの現在のコンテキストに関連付けられた音声捕捉コンポーネントであるが、これは一例にすぎない。追加または代替として、ユーザーの現在のコンテキストに関連付けられている音声認識処理コンポーネントおよび／または結果処理コンポーネントが、時間とともに変化し得る。例えば、第１の音声認識処理コンポーネントは、ユーザーの現在のコンテキストに初回に関連付けられ得、また、（第１の音声認識処理コンポーネントとは異なる）第２の音声認識処理コンポーネントは、ユーザーの現在のコンテキストに２回目に関連付けられ得る。同様に、第１の結果処理コンポーネントは、ユーザーの現在のコンテキストに初回に関連付けられ得、また、（第１の結果処理コンポーネントとは異なる）第２の結果処理コンポーネントは、ユーザーの現在のコンテキストに２回目に関連付けられ得る。
【００７４】
ユーザーのコンテキストレコードが、ユーザーの新しい現在のコンテキストを反映するように更新されていると、コンテキスト共有コンポーネント２５０が、更新されたユーザーコンテキスト情報を関連付け（図５、操作５１６）、論理的および物理的にかかるコンポーネントを接続して音声認識を実行し得る（図５、操作５１８）。ユーザー２０２に関連付けられた音声認識コンポーネントの新しいセットが、次いで、ユーザーに代わって音声認識を実行するために使用され得る（図５、操作５２０）。
【００７５】
前述した例が示すように、コンテキスト共有コンポーネント２５０は、ユーザー２０２に現在関連付けられている音声認識コンポーネントを、動的かつ実行時に、識別し得る。ユーザーのコンテキストが変化するにつれて、コンテキスト共有コンポーネント２５０は、かかる変化を検出し、かかる変化を反映するようにユーザーのコンテキストレコードを更新し得る。結果として、例えば、コンテキスト共有コンポーネント２５０が音声認識結果２１８を経路指定する結果処理コンポーネントは、音声捕捉コンポーネント２１２、音声認識処理コンポーネント２１６、または結果処理コンポーネント２２０などの、システムの任意のコンポーネントを修正する必要なく、また、デスクトップコンピュータ２１０ａ、端末サーバー２３０ａ、または音声認識サーバー２２８などの、システム内の任意の装置を変更する必要なく、自動的、動的、かつ実行時に、変化し得る。
【００７６】
コンテキスト共有コンポーネント２５０は、それ故、少なくとも２つの音声認識コンポーネントを互いに動的に結合するための手段の一例である。第１のコンポーネントを第２のコンポーネントに「動的に結合する」ことは：（１）初回、第１のコンポーネントおよび第２のコンポーネントが両方ともユーザーに関連付けられていない；（２）第２回目に、第１のコンポーネントおよび第２のコンポーネントの両方がユーザーに関連付けられる結果、状態変化が起こり、ユーザーに代わって、２つのコンポーネントのうちの１つによって生成された結果が、その２つのコンポーネントの他方に伝送されるようになる、プロセスを指す。
【００７７】
２つの結合されたコンポーネント（すなわち、同一のユーザーに関連付けられている２つのコンポーネント）は、互いに直接または間接的に通信し得る。２つの結合されたコンポーネント間の直接通信の一例は、コンテキスト共有コンポーネント２５０が、２つのコンポーネントの結合に関する情報を取得するために使用され、その後、２つのコンポーネントが互いに直接通信する、例である。例えば、結果処理コンポーネントは、コンテキスト共有コンポーネント２５０から、どの音声認識処理コンポーネントが現在ユーザーに関連付けられているかに関する情報を、どのコンテキスト共有コンポーネント２５０がかかる情報を、要求している結果処理コンポーネントに提供し得るかに応答して、要求し得る。結果処理コンポーネントは、次いで、かかる情報を使用して、コンテキスト共有コンポーネントによるさらなる関与なしで、コンテキスト共有コンポーネント２５０によって識別された音声認識処理コンポーネントと直接通信し得る。直接通信は、例えば、プル型通信（すなわち、１つのコンポーネントが他のコンポーネントからデータを要求し、他のコンポーネントは、その要求に要求されたデータで応答する）またはプッシュ型通信（すなわち、１つのコンポーネントがデータを他のコンポーネントに提供するが、他のコンポーネントからのかかるデータに対する要求に応答してではない）であり得る。
【００７８】
あるいは、２つの結合されたコンポーネントは、コンテキスト共有コンポーネント２５０を通じて互いに間接的に通信し得る。例えば、コンテキスト共有コンポーネント２５０は、どのコンポーネントが現在互いに結合されているかを判断するため、および次いで、１つの結合されたコンポーネントから別のコンポーネントに、一方向または両方向に、結果を中継するための両方に使用され得る。例えば、結合されたコンポーネントの１つが出力をコンテキスト共有コンポーネント２５０に提供し得、それは、次いで、１つまたは複数の他の結合されたコンポーネントへの出力という結果となり得る。
【００７９】
音声認識コンポーネントを互いに動的に結合する本発明の実施形態の能力は、初回に、第１のコンポーネントが、第３のコンポーネントではなく、第２のコンポーネントに結合され得ること、および２回目に、第１のコンポーネントが第３のコンポーネントに結合され得ることも意味する。２回目に、第１のコンポーネントは、第２のコンポーネントに結合されることもあれば、されないこともある。言い換えれば、第１のコンポーネントが第２のコンポーネントに結合される場合、第１のコンポーネントの第３のコンポーネントへの結合は、第１のコンポーネントの第２のコンポーネントからの切り離しを伴うこともあれば、伴わないこともある。
【００８０】
当然のことながら、本発明は、特定の実施形態に関して前述されてきたが、前述の実施形態は例示としてのみ提供されており、本発明の範囲を制限または定義するものではない。以下を含むがそれらに限定されない、他の様々な実施形態も、特許請求の範囲内である。例えば、本明細書に記載する要素およびコンポーネントは、追加のコンポーネントにさらに分割され得るか、または同じ機能を実行するためのより少ないコンポーネントを形成するために結合され得る。
【００８１】
図２Ａ〜図２Ｂは、音声認識コンポーネント（例えば、音声捕捉、音声認識処理、および結果処理のコンポーネント）が、複数の論理装置および／または物理装置にわたって分散され得る様々な方法例を示しているが、これらは例に過ぎず、本発明の制限を構成するものではない。音声認識コンポーネントは、様々な他の方法で、例示した種類の装置にわたって、および他の種類の装置にわたって分散され得る。
【００８２】
コンテキスト共有コンポーネント２５０は、任意の様々な方法で実装され得る。例えば、それは、デスクトップコンピュータ２１０ａ〜ｂ、音声認識サーバー２２８、および／または端末サーバー２３０ａ〜ｂなどの、本明細書に示す任意の１つまたは複数の装置上に配置され得る。あるいは、例えば、コンテキスト共有コンポーネント２５０は、任意の音声認識コンポーネントが存在する装置とは異なる論理装置および／または物理装置上で実装され得る。別の例として、コンテキスト共有コンポーネント２５０は、全部または一部において、１つまたは複数の音声認識コンポーネントと統合され得る。
【００８３】
その上、コンテキスト共有コンポーネント２５０は、本発明の全ての実施形態で必要とされるとは限らない。むしろ、本発明のある実施形態は、コンテキスト共有コンポーネントを除外し得る。例えば、Ｃｉｔｒｉｘ  Ｖｉｒｔｕａｌ  Ｃｈａｎｎｅｌ技術は、プラグインがクライアントソフトウェア（例えば、端末サービスクライアント２３２）にインストールされるのを可能にする。本発明の実施形態は、かかるプラグインを使用して実装され得る。例えば、本発明の一実施形態では、かかるプラグインは、図２Ｂの端末サービスクライアント２３２にインストールされる。この実施形態では、コンテキスト共有コンポーネント２５０は、除外され得る。かかる実施形態では、本明細書に記載するコンテキストマッチングは、例えば、音声捕捉コンポーネント２１３および／または音声認識処理コンポーネント２１６を使用して、デスクトップコンピュータ２１０ｂ上の端末サービスクライアント２３２内で実行している本発明のＶｉｒｔｕａｌ  Ｃｈａｎｎｅｌを探して見つけることにより実装され得る。かかる仮想チャネルを見つけると、音声捕捉コンポーネント２１３および／または音声認識処理コンポーネント２１６は、プラグインと直接通信し得、それにより、コンテキスト共有コンポーネント２５０に対する必要性を取り除く。
【００８４】
図６Ａ〜図６Ｂに示すユーザーコンテキストレコード６００ａ〜ｂの構造および内容は、例に過ぎず、本発明の制限を構成するものではない。むしろ、ユーザーコンテキストレコードによって実行される機能は、他の方法で実装され得る。例えば、ユーザーコンテキストレコードは、ペア形成のリストを含み得、そこで、各ペア形成は、ユーザーに関連付けられた装置と、その装置上で利用可能な対応する音声認識コンポーネントをペアにする。
【００８５】
前述した技術は、例えば、ハードウェア、コンピュータ可読媒体上に有形的に格納されたソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。前述した技術は、プロセッサ、そのプロセッサによって可読な記憶媒体（例えば、揮発性および不揮発性メモリならびに／または記憶素子を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む、プログラム可能コンピュータ上で実行する１つまたは複数のプログラムで実装され得る。プログラムコードは、記述された機能を実行するため、および出力を生成するために、入力装置を使用して入力された入力に適用され得る。出力は、１つまたは複数の出力装置に提供され得る。
【００８６】
以下の特許請求の範囲内の各コンピュータプログラムは、アセンブリ言語、機械語、高水準手続き型プログラミング言語、またはオブジェクト指向プログラミング言語などの、任意のプログラミング言語で実装され得る。プログラミング言語は、例えば、コンパイルされたか、または翻訳されたプログラム言語であり得る。
【００８７】
かかるコンピュータプログラムの各々は、コンピュータプロセッサによる実行のために機械可読記憶装置内で有形的に具体化されたコンピュータプログラム製品で実施され得る。本発明の方法ステップは、入力に関して動作し、出力を生成することにより、本発明の機能を実行するために、コンピュータ可読媒体上に有形的に具体化されたプログラムを実行するコンピュータプロセッサによって実行され得る。適切なプロセッサは、例として、汎用および専用マイクロプロセッサの両方を含む。一般に、プロセッサは、命令およびデータを読取り専用メモリおよび／またはランダムアクセスメモリから受信する。コンピュータプログラム命令を有形的に具体化するのに適した記憶装置は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ装置を含む、半導体記憶装置などの不揮発性メモリのすべての形式；内蔵ハードディスクおよび取外し可能ディスクなどの磁気ディスク；光磁気ディスク；およびＣＤ−ＲＯＭを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け回路）またはＦＰＧＡ（フィールドプログラマブルゲートアレイ）によって補足され得るか、またはそれらに組み込まれ得る。コンピュータは一般に、プログラムおよびデータを内蔵ディスク（図示せず）または取外し可能ディスクなどの記憶媒体からも受信できる。これらの要素も、本明細書に記載する方法を実装するコンピュータプログラムの実行に適した、従来型のデスクトップまたはワークステーションコンピュータならびに他のコンピュータで見られ、それらは、任意のデジタル印刷エンジンもしくはマーキングエンジン、ディスプレイモニター、または、カラーもしくはグレースケール画素を紙、フィルム、ディスプレイ画面、もしくは他の出力媒体上に生成可能な他のラスター出力装置とともに使用され得る。
【図１Ａ】
2014519627.tif 000003
【図１Ｂ】
2014519627.tif 000004
【図１Ｃ】
2014519627.tif 000005
【図１Ｄ】
2014519627.tif 000006
【図２Ａ】
2014519627.tif 000007
【図２Ｂ】
2014519627.tif 000008
【図３】
2014519627.tif 000009
【図４】
2014519627.tif 000010
【図５】
2014519627.tif 000011
【図６Ａ】
2014519627.tif 000012
【図６Ｂ】
2014519627.tif 000013
【国際調査報告】
2014519627.tif 000014
2014519627.tif 000015