(57)【特許請求の範囲】
【請求項１】
音声認識システムにおける負荷分散の方法であって、
１以上のプロセッサと、前記１以上のプロセッサによる実行用に構成される１以上のプログラムを格納するメモリとを有する音声アクセスサーバーにおいて、
前記音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと１以上の伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続を確立することを含む、ステップと、
端末から音声リクエストを受信するステップと、
所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうちの第１の音声認識サーバーを決定するステップと、
前記第１の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
前記第１の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第１の音声認識サーバーに処理のために転送するステップと、
前記第１の音声認識サーバーが利用不可であるという判定に従って、
前記複数の音声認識サーバーのうちの他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、
第２の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第２の音声認識サーバーに処理のために転送するステップと、
を実行し、
所定の負荷分散アルゴリズムに従って前記第１の音声認識サーバーを決定する前記ステップは、
前記音声リクエストから音声ＩＤを取得するステップと、
前記音声ＩＤに基づいてハッシュ値を生成するステップと、
前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはＮ個の音声認識サーバーを含む、ステップと、
Ｎを法として前記ハッシュ値に等しい第１の値を計算するステップと、
前記第１の値が前記第１の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第１の音声認識サーバーを決定するステップと、
を含み、
前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの１つであり、
前記複数の音声リクエストは前記音声ＩＤを搬送し、
前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される、
方法。
【請求項２】
各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
前記音声リクエストの処理が成功したという判定に従って、前記端末に第１のメッセージを返すステップと、
前記音声リクエストの処理が成功しなかったという判定に従って、
前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
前記音声認識サーバーが利用可能であるという判定に従って、
前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、
前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第１のメッセージを返すステップと、
前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第２のメッセージを返すステップと、
前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第２のメッセージを返すステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップ、
を更に含む、請求項１に記載の方法。
【請求項４】
１以上のプロセッサと、
メモリと、
前記メモリに格納され、前記１以上のプロセッサによる実行用に構成される１以上のプログラムと、
を備えるコンピューターシステムであって、
前記１以上のプログラムは、
音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと１以上の伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続を確立することを含む、ステップと、
端末から音声リクエストを受信するステップと、
所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうち第１の音声認識サーバーを決定するステップと、
前記第１の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
前記第１の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第１の音声認識サーバーに処理のために転送するステップと、
前記第１の音声認識サーバーが利用不可であるという判定に従って、
前記複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、
第２の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを処理のために前記第２の音声認識サーバーに転送するステップと、
を実行する命令を含み、
前記所定の負荷分散アルゴリズムに従って前記第１の音声認識サーバーを決定するステップは、
前記音声リクエストから音声ＩＤを取得するステップと、
前記音声ＩＤに基づいてハッシュ値を生成するステップと、
前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはＮ個の音声認識サーバーを含む、ステップと、
Ｎを法として前記ハッシュ値に等しい第１の値を計算するステップと、
前記第１の値が前記第１の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第１の音声認識サーバーを決定するステップと、
を含み、
前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの１つであり、
前記複数の音声リクエストは前記音声ＩＤを搬送し、
前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される、
コンピューターシステム。
【請求項５】
前記１以上のプログラムは更に、
各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
前記音声リクエストの処理が成功したという判定に従って、前記端末に第１のメッセージを返すステップと、
前記音声リクエストの処理が成功しなかったという判定に従って、
前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
前記音声認識サーバーが利用可能であるという判定に従って、
前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、
前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第１のメッセージを返すステップと、
前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第２のメッセージを返すステップと、
前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第２のメッセージを返すステップと、
を実行する命令を含む、請求項４に記載のコンピューターシステム。
【請求項６】
前記１以上のプログラムは更に、
前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップ、
を実行する命令を含む、請求項４に記載のコンピューターシステム。
【請求項７】
コンピューターシステムの１以上のプロセッサによる実行用の１以上のプログラムを格納する非一時的なコンピューター可読記憶媒体であって、
前記１以上のプログラムは、
音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと１以上の伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続を確立することを含む、ステップと
端末から音声リクエストを受信するステップと、
所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうち第１の音声認識サーバーを決定するステップと、
前記第１の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
前記第１の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第１の音声認識サーバーに処理のために転送するステップと、
前記第１の音声認識サーバーが利用不可であるという判定に従って、
前記複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、
第２の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを処理のために前記第２の音声認識サーバーに転送するステップと、
を実行する命令を含み、
前記所定の負荷分散アルゴリズムに従って前記第１の音声認識サーバーを決定するステップは、
前記音声リクエストから音声ＩＤを取得するステップと、
前記音声ＩＤに基づいてハッシュ値を生成するステップと、
前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはＮ個の音声認識サーバーを含む、ステップと、
Ｎを法として前記ハッシュ値に等しい第１の値を計算するステップと、
前記第１の値が前記第１の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第１の音声認識サーバーを決定するステップと、
を含み、
前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの１つであり、
前記複数の音声リクエストは前記音声ＩＤを搬送し、
前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される、
非一時的なコンピューター可読記憶媒体。
【請求項８】
前記１以上のプログラムは更に、
各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
前記音声リクエストの処理が成功したという判定に従って、前記端末に第１のメッセージを返すステップと、
前記音声リクエストの処理が成功しなかったという判定に従って、
前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
前記音声認識サーバーが利用可能であるという判定に従って、
前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、
前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第１のメッセージを返すステップと、
前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第２のメッセージを返すステップと、
前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第２のメッセージを返すステップと、
を実行する命令を含む、請求項７に記載の非一時的なコンピューター可読記憶媒体。
【請求項９】
前記１以上のプログラムは更に、
前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップ、
を実行する命令を含む、請求項７に記載の非一時的なコンピューター可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１３年２月１日に出願された「音声認識システムにおいて負荷分散を実現するための方法および装置」と題される中国特許出願第２０１３１００４０８１２．４号に対する優先権を主張し、その全体を参照によって本明細書に援用する。
【０００２】
開示される実施形態は、一般に音声認識技術に関し、特に、音声認識システムにおける負荷分散のためのシステムおよび方法に関する。
【背景技術】
【０００３】
音声認識技術とは、認識および理解によって音声信号を対応するテキストまたはコマンドに変換させる技術、すなわち、機械に人間の発話を理解させる技術のことである。
【０００４】
図１は、一部の実施形態に係る音声認識システムを示すブロック図である。図１に示されるように、端末１１０およびサーバークラスター１２０を含む。サーバークラスター１２０は、音声アクセスサーバー１２２および音声認識サーバー１２４を含むことができる。端末１１０は、固定端末であってもモバイル端末であってもよく、一般に複数である。音声アクセスサーバーの数は１以上であってよい。音声認識サーバーの数は一般に複数である。
【０００５】
ここで、音声アクセスサーバー１２２は、端末１１０によって送信された音声リクエストを音声認識サーバー１２４に転送することに関与する。音声認識サーバー１２４は、受信した音声リクエストに対して音声認識等の処理を行うことに関与する。
【０００６】
上述のように、音声認識サーバーの数は一般に複数であるので、数十個、数百個である場合もある。よって音声アクセスサーバー１２２は、複数の音声リクエストの負荷を分散するために、受信された音声リクエストを音声認識サーバーの各々に分散して転送する必要がある。
【０００７】
従来技術では、以下の負荷分散方式が一般に適用される。すなわち、ドメインネームシステム（Domain  Name  System；ＤＮＳ）ポーリング方式では、音声認識サーバー間の負荷分散を実現するために、ドメインネームに様々な記録を設定することにより、ＤＮＳポーリングを行う。
【０００８】
しかしながら、ＤＮＳ方式の実際の応用には、いくつかの問題がある場合がある。例えば、受信された１つの音声リクエストが１つの音声認識サーバーに処理のために転送される必要があると音声アクセスサーバーが判定した場合、音声アクセスサーバーは音声認識サーバーの状態に関わらず、すなわち、音声認識サーバーが利用可能であるか否かに関わらず、音声リクエストを音声認識サーバーに転送するであろう。こうして、処理が失敗するおそれがある（すなわち、音声リクエストの処理の成功率が低下する）。
【発明の概要】
【０００９】
添付の特許請求の範囲に包含されるシステム、方法および装置の様々な実施例には、それぞれいくつかの態様があり、それらのうち１つが単独で本明細書に記載の特性の責任を負うわけではない。添付の特許請求の範囲の範囲を限定することなく、本開示を考慮すれば、特に「発明を実施するための形態」と題される部分を考慮すれば、音声認識システムにおける負荷分散のためのシステムおよび方法を可能にするために様々な実施例の態様がどのように用いられるかが理解されるであろう。一部の実施例は、音声認識システムにおける負荷分散の方法を含む。一部の実施例において、本方法は、１以上のプロセッサと、１以上のプロセッサによる実行用に構成される１以上のプログラムを格納するメモリとを有する音声アクセスサーバーにおいて、（１）音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと１以上の伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続を確立することを含む、ステップと、（２）端末から音声リクエストを受信するステップと、（３）所定の負荷分散アルゴリズムに従って、音声リクエストを処理するために複数の音声認識サーバーのうちの第１の音声認識サーバーを決定するステップと、（４）第１の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、（５）第１の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第１の音声認識サーバーに処理のために転送するステップと、（６）第１の音声認識サーバーが利用不可であるという判定に従って、（ａ）複数の音声認識サーバーのうちの他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、（ｂ）第２の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第２の音声認識サーバーに処理のために転送するステップと、を含む。
【図面の簡単な説明】
【００１０】
本開示をより詳細に理解できるように、様々な実施例の特徴を参照してより具体的な説明を記載する。様々な実施例の特徴の一部は添付の図面に示される。しかしながら、説明は他の効果的な特徴を受け入れることができるので、添付の図面は本開示により関連性の高い特徴を示すものに過ぎず、したがって限定とみなされるものではない。
【図１】一部の実施形態に係る音声認識システムを示すブロック図である。
【図２】一部の実施形態に係る、音声認識システムにおける負荷分散のための方法のフローチャートである。
【図３】一部の実施形態に係る、音声認識システムにおける負荷分散のための方法のフローチャートである。
【図４】一部の実施形態に係る音声アクセスサーバーの実施を示すブロック図である。
【図５Ａ】一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。
【図５Ｂ】一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。
【図５Ｃ】一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。
【図５Ｄ】一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。  慣行に従って、図面に示される様々な特徴は一定の縮尺で描かれていない場合がある。これに応じて、様々な特徴の寸法は明確にするために任意に拡大または縮小される場合がある。また、一部の図面では、所与のシステム、方法または装置のコンポーネントが全て示されているとは限らない。最後に、明細書および図面を通して、同じ参照符号を用いて同じ特徴が示される。
【発明を実施するための形態】
【００１１】
以下、実施形態を詳細に参照する。実施形態の例は添付の図面に示される。以下の詳細な説明において、本明細書に提示される内容を完全に理解するために、多くの具体的な詳細を記載する。しかしながら、その内容はそのような具体的な詳細を伴わずに実施されてよいことが、当該技術分野の当業者には明らかであろう。他の例では、実施形態の態様を不必要に曖昧にしないように、周知の方法、プロシージャ、コンポーネントおよび回路を詳細に説明していない。
【００１２】
従来技術の問題を対象として、本発明は、音声リクエストの処理の成功率を高めることのできる、音声認識システムにおける負荷分散を実現する方法を提案する。
【００１３】
本発明の技術的構成をより明確かつ明快にするために、以下、添付の図面および実施形態を参照して、本発明の上述の構成を詳細に説明する。
【００１４】
図２は、一部の実施形態に係る音声認識システムにおける負荷分散のための方法のフローチャートである。図２に示すように、本方法は以下を含む。
【００１５】
ステップ２１：任意の音声リクエストｘを端末（例えば端末１１０、図１）から受信すると、音声アクセスサーバーは、所定の負荷分散アルゴリズムに従って、音声リクエストｘを処理することのできる音声認識サーバーを決定する。
【００１６】
いくつかの実施形態において、説明を簡略化するために、音声アクセスサーバーによって受信される任意の音声リクエストを音声リクエストｘで表す。
【００１７】
端末は、音声アクセスサーバーとの確立された伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続またはＴＣＰショート接続によって、音声アクセスサーバーと情報インタラクションを行う。
【００１８】
音声アクセスサーバーは、０〜Ｎ−１の値を用いて、各音声認識サーバーに予め固有の番号を割り当てることができる。Ｎの値は、音声認識サーバーの総数に等しい。
【００１９】
このように、音声リクエストｘを受信すると、音声アクセスサーバーはまず伝送される音声ＩＤを取得し、音声ＩＤに対してハッシュ演算を行ってハッシュ値を得ることができ、その後、得られたハッシュ値およびＮに関してモジュロ演算を行い、番号がモジュロ演算の結果と等しい音声認識サーバーを、音声リクエストｘを処理することのできる音声認識サーバーとして決定することができる。
【００２０】
上述のハッシュ演算の具体的な実現方式は、受信された音声リクエストの各々に対して音声アクセスサーバーが同じ種類のハッシュ演算を使用できれば、限定されない。
【００２１】
以下に例を示す。
【００２２】
Ｎの値が１００、すなわち音声認識サーバーの総数が１００であると仮定し、音声リクエストｘによって伝送される音声ＩＤのハッシュ値が１０４３であると仮定する。
【００２３】
モジュロ演算により、１０４３％１００＝４３が得られ、すなわちモジュロ演算の結果は４３である。そして、音声リクエストｘを番号が４３である音声認識サーバーに処理のために転送する必要があると判定される。
【００２４】
ステップ２２：音声アクセスサーバーは、ステップ２１で決定された音声認識サーバーが利用可能な状態であるか否かを判定する。利用可能である場合はステップ２３を実行し、利用不可である場合はステップ２４を実行する。
【００２５】
特定の音声認識サーバーがダウンしている場合、利用不可の状態であるとみなすことができる。
【００２６】
ステップ２３：音声アクセスサーバーは、ステップ２１で決定された音声認識サーバーに音声リクエストｘを処理のために転送し、プロセスを終了する。
【００２７】
実際の応用では、音声アクセスサーバーが初期化されると、各音声認識サーバーとの間でＭ個のＴＣＰロング接続が確立されてよい。Ｍは正の整数である。
【００２８】
このように、音声アクセスサーバーが特定の音声リクエストを特定の音声認識サーバーに転送する必要がある場合、確立されるＴＣＰロング接続を直接利用することができる。すなわち、上述のＴＣＰロング接続によって、音声認識サーバーと直接的に情報をインタラクトすることができ、必要に応じてＴＣＰロング接続の確立時間が節約される。
【００２９】
音声アクセスサーバーと各音声認識サーバーとの間で確立されるＴＣＰロング接続の数（すなわち、Ｍの具体的な値）は、実際の必要に応じて決定されるものであり、１以上であってよい。複数のＴＣＰロング接続の利点は、音声アクセスサーバーが同時に複数の音声リクエストを受信し、複数の音声リクエストが全て同じ音声認識サーバーによって処理されるべきであると判定した場合に、複数のＴＣＰロング接続を用いて複数の音声リクエストを音声認識サーバーにそれぞれ転送ですることができ、伝送効率がされることである。ＴＣＰロング接続が１つしかない場合、音声リクエストを１つずつ転送することしかできない。
【００３０】
ステップ２４：音声アクセスサーバーは、ステップ２１で決定された音声認識サーバー以外の全ての音声認識サーバーをトラバースする。ここで、音声認識サーバーをトラバースするとき、音声認識サーバーが利用可能な状態であると判定された場合、音声リクエストｘをその音声認識サーバーに処理のために転送し、トラバースを停止してプロセスを終了する。
【００３１】
以下に例を挙げる。
【００３２】
Ｎの値が１００である（すなわち、音声認識サーバーの総数が１００である）と仮定し、ステップ２１で決定された音声認識サーバーの数が４３であると仮定する。音声認識サーバー４３が利用不可の状態である場合、音声認識サーバー４４、音声認識サーバー４５、音声認識サーバー４６などが順にトラバースされる。
【００３３】
音声認識サーバー４５がトラバースされたときに利用可能な状態であると判定された場合、音声リクエストｘは音声認識サーバー４５に処理のために転送され、トラバースは停止される。
【００３４】
トラバースされた各音声認識サーバーが利用不可の状態である場合、端末に処理失敗情報が返される。
【００３５】
更に、実際の応用では、ステップ２３およびステップ２４において、音声アクセスサーバーが音声リクエストｘを特定の音声認識サーバーに処理のために転送するときに、以下の処理を実行することもできる。
【００３６】
１）音声認識サーバーによる音声リクエストｘの処理が成功したか否かを判定する。
【００３７】
２）成功した場合、端末に処理成功メッセージを返す。
【００３８】
３）成功しなかった場合、音声認識サーバーが利用可能な状態であるか否かを再度判定する。利用不可である場合、端末に処理失敗メッセージを返す。利用可能である場合、音声リクエストｘを音声認識サーバーに処理のために再び転送し、音声認識サーバーの音声リクエストｘに対する処理が成功したか否かを再び判定する。成功した場合、端末に処理成功メッセージを返す。成功しなかった場合、端末に処理失敗メッセージを返す。
【００３９】
音声リクエストｘを音声認識サーバーに処理のために転送する前に、音声認識サーバーが利用可能な状態にあるか否かは既に判定されており、利用可能な状態であると判定された場合にのみ音声リクエストｘが該音声認識サーバーに転送される。しかしながら、予期せぬ事態（例えば、音声認識サーバーが音声リクエストｘを受信した後に処理を行わずにダウンし、利用不可の状態になる）が発生し、これによって音声リクエストｘの処理が失敗するおそれがある。或いは、その他の理由で音声リクエストｘの処理が失敗するおそれがある。したがって、ステップ１）において音声認識サーバーによる音声リクエストｘの処理が成功しなかったと判定された後に、ステップ３）が実行されてよい。
【００４０】
音声アクセスサーバーは、適時に修復を行うために、利用不可の音声認識サーバーを記録することができる。
【００４１】
更に、記録された利用不可の音声認識サーバーに関して、音声アクセスサーバーは、特定の音声リクエストを該音声認識サーバーに転送する必要があると判定した場合、他の音声認識サーバーを直接トラバースすることができる。また、音声アクセスサーバーは、記録された利用不可の音声認識サーバーが利用可能な状態に回復し、回復した音声認識サーバーが音声リクエストを処理できるか否かを、周期的に確認することができる。
【００４２】
図３は、一部の実施形態に係る、音声認識システムにおける負荷分散のための方法のフローチャートである。図３に示すように、本方法は以下を含む。
【００４３】
ステップ３１：音声アクセスサーバーが初期化されると、各音声認識サーバーとの間でＭ個のＴＣＰロング接続が確立される。
【００４４】
ステップ３２：任意の音声リクエストｘを端末（例えば端末１１０、図１）から受信すると、音声アクセスサーバーは、所定の負荷分散アルゴリズムに従って、音声リクエストｘを処理することのできる音声認識サーバーを決定する。
【００４５】
ステップ３３：音声アクセスサーバーは、ステップ３２で決定された音声認識サーバーが利用可能な状態であるか否かを判定する。利用可能である場合はステップ３４を実行し、利用不可である場合はステップ３５を実行する。
【００４６】
ステップ３４：音声アクセスサーバーは、ステップ３２で決定された音声認識サーバーに音声リクエストｘを処理のために転送し、ステップ３６を実行する。
【００４７】
ステップ３５：音声アクセスサーバーは、ステップ３２で決定された音声認識サーバー以外の全ての音声認識サーバーをトラバースする。ここで、音声認識サーバーをトラバースするとき、音声認識サーバーが利用可能な状態であると判定された場合、音声リクエストｘをその音声認識サーバーに処理のために転送し、トラバースを停止し、ステップ３６を実行する。
【００４８】
ステップ３６：音声アクセスサーバーは、音声リクエストｘの処理が成功したか否かを判定する。成功した場合はステップ３７を実行し、成功しなかった場合はステップ３８を実行する。
【００４９】
ステップ３７：音声アクセスサーバーは、端末に処理成功メッセージを返し、プロセスを終了する。
【００５０】
ステップ３８：音声アクセスサーバーは、音声リクエストｘを処理することのできる音声認識サーバーが利用可能な状態であるか否かを再び判定する。利用不可である場合はステップ３９を実行し、利用可能である場合はステップ３１０を実行する。
【００５１】
ステップ３９：音声アクセスサーバーは、端末に処理失敗メッセージを返し、プロセスを終了する。
【００５２】
ステップ３１０：音声アクセスサーバーは、対応する音声認識サーバーに音声リクエストｘを処理のために再び転送する。
【００５３】
ステップ３１１：音声アクセスサーバーは、音声リクエストｘの処理が成功したか否かを再び判定する。成功した場合はステップ３７を実行し、成功しなかった場合はステップ３９を実行する。
【００５４】
開示される実施形態は音声アクセスサーバーを含み、音声アクセスサーバーはいくつかの実施形態において負荷分散モジュールを有する。いくつかの実施形態において、負荷分散モジュールは、受信ユニットおよび転送ユニットを有する。
【００５５】
受信ユニットは、端末（例えば端末１１０、図１）によって送信される任意の音声リクエストを受信し、音声リクエストを転送ユニットに転送するように構成される。
【００５６】
転送ユニットは、所定の負荷分散アルゴリズムに従って、音声リクエストを処理することのできる音声認識サーバーを決定し、音声認識サーバーが利用可能な状態であるか否かを判定し、利用可能である場合は音声リクエストを音声認識サーバーに処理のために転送し、利用不可である場合はその音声認識サーバー以外の各音声認識サーバーをトラバースするように構成される。ここで、音声認識サーバーをトラバースするとき、音声認識サーバーが利用可能な状態であると判定された場合、音声リクエストをその音声認識サーバーに処理のために転送し、トラバースを停止する。
【００５７】
更に、転送ユニットは、０〜Ｎ−１の値を用いて、各音声認識サーバーに予め固有の番号を割り当てる際に用いることができる。Ｎの値は、音声認識サーバーの総数に等しい。
【００５８】
一部の実施例において、転送ユニットは音声リクエストによって伝送される音声ＩＤを取得し、音声ＩＤに対してハッシュ演算を行ってハッシュ値を得て、それから得られたハッシュ値およびＮに関してモジュロ演算を行い、番号がモジュロ演算の結果と等しい音声認識サーバーを、音声リクエストを処理することのできる音声認識サーバーとして決定する。
【００５９】
転送ユニットは更に、トラバースされた音声認識サーバーがそれぞれ利用不可の状態である場合、端末に処理失敗メッセージを返すように構成されてよい。
【００６０】
転送ユニットは更に、以下のように構成されてよい。すなわち、音声リクエストを音声認識サーバーに処理のために転送した後、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定する。成功した場合は端末に処理成功メッセージを返し、成功しなかった場合は音声認識サーバーが利用可能な状態であるかを再び判定する。利用不可である場合は端末に処理失敗メッセージを返し、利用可能である場合は、音声リクエストを音声認識サーバーに処理のために再び転送し、音声認識サーバーによる音声リクエストの処理が成功したか否かを再び判定する。成功した場合は端末に処理成功メッセージを返し、成功しなかった場合は端末に処理失敗メッセージを返す。
【００６１】
転送ユニットは更に、音声アクセスサーバーが初期化されるときに、各音声認識サーバーとＭ個のＴＣＰロング接続を確立されてよい。その結果、上述のＴＣＰロング接続を介して、各音声認識サーバーとの情報インタラクションを行うことができる。ここで、Ｍは正の整数である。
【００６２】
なお、実際の応用では、音声アクセスサーバーは一般に、負荷分散モジュール以外の他のコンポーネントを有する。しかしながら、本発明の上述の構成とは直接関係がないので、ここでは紹介しない。
【００６３】
更に、上述の音声アクセスサーバーの具体的な動作プロセスについては、上記方法の実施形態における対応する命令を参照することとし、ここでの説明は省略する。
【００６４】
要するに、特定の音声リクエストが特定の音声認識サーバーに処理のために転送される前に、該音声認識サーバーが利用可能な状態であるか否かが判定される。利用可能である場合は該音声認識サーバーに転送され、利用不可である場合は、該音声認識サーバーには転送されず、他の利用可能な音声認識サーバーに転送される。このように、音声リクエスト処理の成功率が向上し、大規模な処理障害が振動効果なく回避される。
【００６５】
更に、音声認識システムにおいて、端末（例えば端末１１０、図１）とサーバークラスター（例えばサーバークラスター１２０、図１）との間にストリーム伝送モードが適用される。ストリーム伝送モードでは、音声情報の伝送および識別は単一の音声リクエストによって達成されるのではない。むしろ、音声情報は特定の規則に従って一連の音声リクエスト（例えば４つの音声リクエスト）に分割され、所定の順序に従ってサーバークラスターに送信される。サーバークラスターは、音声ＩＤの違いに従って、異なる音声情報を区別する。各音声情報の音声ＩＤは固有である。同じ音声情報に属する異なる音声リクエストは、会話保持（conversation  maintenance）のために、同じ音声認識サーバーに処理のために転送される必要がある。明らかなように、本発明の上記構成を適用すると、同じ音声情報に属する異なる音声リクエストの音声ＩＤは同じであるので、ハッシュ演算およびモジュロ演算の後、同じ音声情報に属するこれらの異なる音声リクエストは全て、同じ音声認識サーバーに処理のために転送される。
【００６６】
本明細書に記載の様々な実施例は、音声認識システムにおける負荷分散を可能にするように構成されるシステム、方法および／または装置を含む。一部の実施例は、負荷分散アルゴリズムに従って音声リクエストを処理するシステム、方法および／または装置を含む。
【００６７】
より具体的には、一部の実施例には、音声認識システムにおける負荷分散の方法が含まれる。一部の実施例において、該方法は、１以上のプロセッサと、前記１以上のプロセッサによる実行用に構成される１以上のプログラムを格納するメモリとを有する音声アクセスサーバーにおいて、（１）音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと１以上の伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続を確立するステップを含む、ステップと、（２）端末から音声リクエストを受信するステップと、（３）所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうちの第１の音声認識サーバーを決定するステップと、（４）前記第１の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、（５）前記第１の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第１の音声認識サーバーに処理のために転送するステップと、（６）前記第１の音声認識サーバーが利用不可であるという判定に従って、（ａ）前記複数の音声認識サーバーのうちの他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、（ｂ）第２の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第２の音声認識サーバーに処理のために転送するステップと、を含む。
【００６８】
いくつかの実施形態において、所定の負荷分散アルゴリズムに従って前記第１の音声認識サーバーを決定する前記ステップは、（１）前記音声リクエストから音声ＩＤを取得するステップと、（２）前記音声ＩＤに基づいてハッシュ値を生成するステップと、（３）前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはＮ個の音声認識サーバーを含む、ステップと、（４）Ｎを法として前記ハッシュ値に等しい第１の値を計算するステップと、（５）前記第１の値が前記第１の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第１の音声認識サーバーを決定するステップと、を含む。
【００６９】
いくつかの実施形態において、該方法は更に、（１）各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、（２）前記音声リクエストの処理が成功したという判定に従って、前記端末に第１のメッセージを返すステップと、（３）前記音声リクエストの処理が成功しなかったという判定に従って、（ａ）前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、（ｂ）前記音声認識サーバーが利用可能であるという判定に従って、（ｉ）前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、（ii）前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、（iii）前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第１のメッセージを返すステップと、（iv）前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第２のメッセージを返すステップと、（ｃ）前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第２のメッセージを返すステップと、を含む。
【００７０】
いくつかの実施形態において、前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの１つである。
【００７１】
いくつかの実施形態において、前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される。
【００７２】
いくつかの実施形態において、該方法は更に、前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップを含む。
【００７３】
別の態様において、上述の方法のいずれかがコンピューターシステムによって実行される。該コンピューターシステムは、（１）１以上のプロセッサと、（２）メモリと、（３）前記メモリに格納され、前記１以上のプロセッサによる実行用に構成される１以上のプログラムとを備える。前記１以上のプログラムは、上述の方法のいずれかのための命令を含む。
【００７４】
更に別の態様において、非一時的なコンピューター可読記憶媒体は、コンピューターシステムの１以上のプロセッサによる実行用の１以上のプログラムを格納する。前記１以上のプログラムは、前記コンピューターシステムに上述の方法のいずれかを実行させる命令を含む。
【００７５】
添付の図面に示される実施例を完全に理解するために、多くの詳細を説明する。しかしながら、一部の実施形態は特定の詳細の多くを伴わずに実施されてよく、特許請求の範囲は、請求項に具体的に記載される特徴および態様によってのみ限定される。更に、周知の方法、コンポーネントおよび回路は、本明細書に記載の実施例により関連性の高い態様を不必要に曖昧にしないように、余すところなく説明されてはいない。
【００７６】
図４は、一部の実施形態に係る音声アクセスサーバー１２２の実装を示すブロック図である。音声アクセスサーバー１２２は、一般に、メモリ４０６に格納されるモジュール、プログラムおよび／または命令を実行することで処理工程を実行する１以上の処理装置（ＣＰＵ）４０２と、メモリ４０６と、これらのコンポーネントを相互接続する１以上の通信バス４０８とを有する。通信バス４０８は、任意に、システムコンポーネント間を相互接続しそれらの通信を制御する回路（チップセットとも呼ばれる）を含む。音声アクセスサーバー１２２は、通信バス４０８によって端末１１０および音声認識サーバー１２４に結合される。メモリ４０６の例としては、高速ランダムアクセスメモリ（例えば、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭその他のランダムアクセスのソリッドステート記憶装置）や、揮発性メモリ（１以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイスその他の不揮発性のソリッドステート記憶装置）が挙げられる。メモリ４０６は、任意に、ＣＰＵ４０２から遠隔配置される１以上の記憶装置を含む。メモリ４０６、或いはメモリ４０６内の不揮発性記憶装置は、非一時的なコンピューター可読記憶媒体を備える。いくつかの実施形態において、メモリ４０６、或いはメモリ４０６のコンピューター可読記憶媒体は、以下のプログラム、モジュールおよびデータ構造、またはそれらのサブセットを格納する：
・様々な基本システムサービスを扱うプロシージャおよびハードウェア依存性タスクを行うプロシージャを含むオペレーティングシステム４１０；
・１以上の通信ネットワーク（有線または無線）（インターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタン・エリア・ネットワーク等）を介して、音声アクセスサーバー１２２を端末（例えば端末１１０）または他のサーバー（例えば音声認識サーバー１２４）に接続するように構成される通信モジュール４１２；
・音声アクセスサーバー１２２を初期化する工程であって、他のサーバー（例えば音声認識サーバー１２４）と１以上の接続（例えば、１以上の伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続）を接続することを含む、工程を実行するように構成される初期化モジュール４１４；
・音声認識システム（例えばサーバークラスター１２０、図１）における負荷分散音声リクエストに用いられる負荷分散モジュール４１６；および
・音声認識サーバーが処理に利用不可であったのかを記録するように構成される記録モジュール４２６。
【００７７】
いくつかの実施形態において、負荷分散モジュール４１６は任意に、以下のモジュールもしくはサブモジュール、またはそれらのサブセットを有する：
・端末（例えば端末１１０）から音声リクエストを受信するように構成される受信モジュール４１８；
・音声リクエストを処理するための音声認識サーバー（例えば、音声認識サーバー１２４の１つ）を選択するように構成される選択モジュール４２０；
・音声リクエストを利用可能な音声認識サーバーに転送するように構成される転送モジュール４２２；および
・音声リクエストの処理が成功したか否かを判定し、音声リクエストの処理の結果（例えば、音声リクエストの処理が成功したか否か）を示すメッセージを端末に返すように構成される結果モジュール４２４。
【００７８】
上記で特定された要素の各々は、上記の記憶装置の１以上に格納されてよく、また、上記機能を実行するための命令セットに対応する。上記で特定されたモジュールまたはプログラム（すなわち命令セット）は、個別のソフトウェアプログラム、プロシージャまたはモジュールとして実施される必要はない。よって、様々な実施形態において、これらのモジュールの様々なサブセットが組み合わされてよく、或いは他の方法で再構成されてよい。いくつかの実施形態において、メモリ４０６は、上記で特定されたモジュールおよびデータ構造のサブセットを格納してよい。更に、メモリ４０６は、上述されていない追加的なモジュールおよびデータ構造を格納してよい。いくつかの実施形態において、メモリ４０６またはメモリ４０６のコンピューター可読記憶媒体に格納されるプログラム、モジュールおよびデータ構造は、図５Ａ〜５Ｄを参照して後述する方法のうちいずれかを実施するための命令を提供する。
【００７９】
図２は音声アクセスサーバー１２２を示すが、図２は、本明細書に記載の実施形態の構造概略図というよりも、音声アクセスサーバーに存在しうる様々な特徴を機能的に説明することを意図している。実際には、そして当該技術分野の当業者によって認識されるように、別々に示されている要素を組み合わせることができ、一部の要素を分離することもできる。
【００８０】
図５Ａ〜５Ｄは、一部の実施形態に係る、音声認識システムにおける負荷分散のための方法５００のフローチャート表示を示す。いくつかの実施形態において、方法５００は、音声認識システム（例えばサーバークラスター１２０、図１）において端末（例えば端末１１０、図１および図４）から受信される音声リクエストの負荷を分散するために、音声アクセスサーバー（例えば音声アクセスサーバー１２２、図１および図４）によって実行される。いくつかの実施形態において、方法５００は、非一時的なコンピューター可読記憶媒体に格納され装置の１以上のプロセッサ（例えば、図４に示す音声アクセスサーバー１２２の１以上の処理装置（ＣＰＵ）４０２）によって実行される命令によって統制される。
【００８１】
１以上のプロセッサと、１以上のプロセッサによる実行用に構成される１以上のプログラムを格納するメモリとを有する音声アクセスサーバー（例えば音声アクセスサーバー１２２、図１および図４）は（５０２）、音声アクセスサーバーを初期化する（５０４）。この工程は、複数の音声認識サーバーの各音声認識サーバー（例えば音声認識サーバー１２４、図１および図４）と１以上の伝送制御プロトコル（transmission  control  protocol；ＴＣＰ）ロング接続を確立することを含む。例えば、複数の音声認識サーバーのうちの第１の音声認識サーバーに関して、音声アクセスサーバーは第１の音声認識サーバーと１つのＴＣＰロング接続を確立してよく、複数の音声認識サーバーのうちの第２の音声認識サーバーに関して、音声アクセスサーバーは第２の音声認識サーバーと３つのＴＣＰロング接続を確立してよい。一部の実施例において、初期化モジュール（例えば、初期化モジュール４１４、図４）は、図４に関連して上述したように、音声アクセスサーバーを初期化する（複数の音声認識サーバーの各音声認識サーバーと１以上のＴＣＰロング接続を確立することを含む）ように構成される。
【００８２】
次に、音声アクセスサーバーは、端末（例えば端末１１０、図１および４）から音声リクエストを受信する（５０６）。一部の実施例において、図４に関して上述したように、受信モジュール（例えば受信モジュール４１８、図４）は端末から音声リクエストを受信するように構成される。
【００８３】
いくつかの実施形態において、音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの１つである（５０８）。いくつかの実施形態において、音声情報ストリームは２以上の音声リクエストに分割され、２以上の音声リクエストは所定の順序で、端末（例えば端末１１０、図１および図４）によって音声認識システム（例えばサーバークラスター１２０、図１）に送られる。例えば、音声情報ストリームが４つの音声リクエストに分割される場合、４つの音声リクエストは所定の順序（例えば、音声リクエスト１、音声リクエスト２、音声リクエスト３、音声リクエスト４）で音声認識システムに送られる。
【００８４】
いくつかの実施形態において、音声情報ストリームに関連する複数の音声リクエストは、複数の音声認識サーバーのうち同じ音声認識サーバーによって処理される（５１０）。音声情報ストリームが４つの音声リクエストに分割される上記例を用いると、４つの音声リクエストの全て（例えば、音声リクエスト１、音声リクエスト２、音声リクエスト３および音声リクエスト４）は、複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される。いくつかの実施形態において、同じ音声情報ストリームからの音声リクエストは同じ音声ＩＤをもつ。音声ＩＤは、工程５１２〜５２２に関連して後述するように、複数の音声認識サーバーのうちの、音声リクエストを処理するための音声認識サーバーを決定する際に用いられる。
【００８５】
次に、音声アクセスサーバーは、所定の負荷分散アルゴリズムに従って、複数の音声認識サーバーのうち、音声リクエストを処理するための第１の音声認識サーバー（例えば、音声認識サーバー１２４、図１および図４）を決定する（５１２）。一部の実施例において、図４に関して上述したように、選択モジュール（例えば選択モジュール４２０、図４）は、所定の負荷分散アルゴリズムに従って、前記複数の音声認識サーバーのうち、音声リクエストを処理するための第１の音声認識サーバーを決定するように構成される。
【００８６】
いくつかの実施形態において、所定の負荷分散アルゴリズムに従って第１の音声認識サーバーを決定する工程（５１２）は、音声リクエストから音声ＩＤを取得する工程（５１４）を含む。上述したように、音声情報ストリームは、小さな音声リクエストに分割されてよい。いくつかの実施形態において、異なる音声情報ストリームは異なる音声ＩＤをもつ。よって、工程５１０に関連して上述したように、異なる音声情報ストリームからの音声リクエストは異なる音声ＩＤをもち、同じ音声情報ストリームからの音声リクエストは同じ音声ＩＤをもつ。一部の実施例において、選択モジュール（例えば、選択モジュール４２０、図４）は、図４に関連して上述したように、音声リクエストから音声ＩＤを取得するように構成される。
【００８７】
次に、第１の音声認識サーバーを決定する工程（５１２）は、音声ＩＤに基づいてハッシュ値を生成する工程（５１６）を含む。いくつかの実施形態において、ハッシュ関数は、様々な長さのデータを固定長のデータにマップするアルゴリズムであり、ハッシュ値は、ハッシュ関数によって返される値である。例えば音声ＩＤを考えると、音声ＩＤに基づくハッシュ値は４桁の数字（例えば１０４３）であってよい。一部の実施例において、選択モジュール（例えば、選択モジュール４２０、図４）は、音声ＩＤに基づいてハッシュ値を生成するように構成される。
【００８８】
更に、第１の音声認識サーバーを決定する工程（５１２）は、複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てる工程（５１８）を含む。ここで、複数の音声認識サーバーはＮ個の音声認識サーバーを含む。いくつかの実施形態において、Ｎ個の音声認識サーバーに関して、音声アクセスサーバーは、０〜Ｎ−１の固有の番号を各音声認識サーバーに割り当てる。例えば、１００個の音声認識サーバーがある場合、音声アクセスサーバーは０〜９９の固有の番号を各音声認識サーバーに割り当てる（例えば、０、１、２、３、・・・、９７、９８、９９）。一部の実施例において、選択モジュール（例えば、選択モジュール４２０、図４）は、図４に関連して上述したように、複数の音声認識サーバーの各音声認識サーバーに固有の番号割り当てる（複数の音声認識サーバーはＮ個の音声認識サーバーを含む）ように構成される。
【００８９】
次に、第１の音声認識サーバーを決定する工程（５１２）は、Ｎを法としてハッシュ値に等しい第１の値を計算する工程（５２０）を含む。音声ＩＤに基づくハッシュ値が１０４３でありＮが１００である上記例を用いると、Ｎを法としてハッシュ値に等しい第１の値は１０４３ｍｏｄ１００に等しく、４３に等しい。一部の実施例において、選択モジュール（例えば選択モジュール４２０、図４）は、図４に関連して上述したように、Ｎを法としてハッシュ値に等しい第１の値を計算するように構成される。
【００９０】
次に、第１の音声認識サーバーを決定する工程（５１２）は、第１の値が第１の音声認識サーバーに割り当てられた固有の番号に等しいという判定に従って、第１の音声認識サーバーを決定する工程（５２２）を含む。Ｎが１００であり第１の値が４３である上記例を用いると、工程５１８に関して上述したように、第１の音声認識サーバーは、固有の番号４３を割り当てられた音声認識サーバーである。一部の実施例において、選択モジュール（例えば選択モジュール４２０、図４）は、図４に関連して上述したように、第１の値が第１の音声認識サーバーに割り当てられた固有の番号に等しいという判定に従って、第１の音声認識サーバーを決定するように構成される。
【００９１】
そして、音声アクセスサーバーは、第１の音声認識サーバーが処理に利用可能であるか否かを判定する（５２４）。例えば、第１の音声認識サーバーが音声認識サーバー４３であると判定された場合、音声アクセスサーバーは、音声認識サーバー４３が処理に利用可能であるか否かを判定する。一部の実施例において、転送モジュール（例えば転送モジュール４２２、図４）は、図４に関連して上述したように、第１の音声認識サーバーが処理に利用可能であるか否かを判定するように構成される。
【００９２】
次に、音声アクセスサーバーは、第１の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第１の音声認識サーバーに処理のために転送する（５２６）。例えば、第１の音声認識サーバーが音声認識サーバー４３である場合、音声認識サーバー４３が利用可能であるという判定に従って、音声アクセスサーバーは音声リクエストを音声認識サーバー４３に処理のために転送する。一部の実施例において、転送モジュール（例えば転送モジュール４２２、図４）は、図４に関連して上述したように、第１の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第１の音声認識サーバーに処理のために転送するように構成される。
【００９３】
次に、第１の音声認識サーバーが利用不可であるという判定に従って（５２８）、音声アクセスサーバーは、複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定する（５３０）。例えば、第１の音声認識サーバーが音声認識サーバー４３であり音声認識サーバー４３が利用不可である場合、音声アクセスサーバーは、音声認識サーバー４４が利用可能であるか否か、音声認識サーバー４５が利用可能であるか否か等を判定する。いくつかの実施形態において、音声認識サーバーがダウンしている場合、音声認識サーバーは利用不可である。一部の実施例において、転送モジュール（例えば転送モジュール４２２、図４）は、図４に関連して上述したように、複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するように構成される。
【００９４】
そして、第２の音声認識サーバーが利用可能であるという判定に従って、音声アクセスサーバーは音声リクエストを第２の音声認識サーバーに処理のために転送する（５３２）。例えば、工程５３０において音声認識サーバー４４が利用不可であり音声認識サーバー４５が利用可能であると判定された場合、音声アクセスサーバーは、音声リクエストを音声認識サーバー４５に処理のために転送する。一部の実施例において、転送モジュール（例えば転送モジュール４２２、図４）は、図４に関連して上述したように、第２の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第２の音声認識サーバーに処理のために転送するように構成される。
【００９５】
任意に、処理に利用可能な音声認識サーバーがないという判定に従って、音声アクセスサーバーは、音声リクエストの処理が成功しなかったことを示すメッセージを端末に返す。一部の実施例において、結果モジュール（例えば結果モジュール４２４、図４）は、図４に関連して上述したように、処理に利用可能な音声認識サーバーがないという判定に従って、音声リクエストの処理が成功しなかったことを示すメッセージを端末に返すように構成される。
【００９６】
任意に、音声アクセスサーバーは、各音声認識サーバーによる音声リクエストの処理が成功したか否かを判定する（５３４）。上述のように、音声リクエストが音声認識サーバーに転送される前に、音声認識サーバーが処理に利用可能であると既に判定されているが、予期せぬ事態により、音声リクエストが失敗するおそれがある（例えば、音声認識サーバーが音声リクエストを受信した直後、音声リクエストの処理に成功する前にダウンし、利用不可になる）。一部の実施例において、結果モジュール（例えば結果モジュール４２４、図４）は、図４に関連して上述したように、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定するように構成される。
【００９７】
次に、音声アクセスサーバーは、音声リクエストの処理が成功したという判定に従って、端末（例えば端末１１０、図１および図４）に第１のメッセージを返す（５３６）。いくつかの実施形態において、端末への第１のメッセージは、音声リクエストの処理が成功したことを示すメッセージを含む。一部の実施例において、結果モジュール（例えば結果モジュール４２４、図４）は、図４に関連して上述したように、音声リクエストの処理が成功したという判定に従って、端末に第１のメッセージを返すように構成される。
【００９８】
更に、音声アクセスサーバーは、音声リクエストの処理が成功しなかったという判定に従って（５３８）、音声認識サーバーが処理に利用可能であるか否かを判定する（５４０）。例えば、音声認識サーバーが音声認識サーバー４３である場合、音声アクセスサーバーは、音声認識サーバー４３が処理に利用可能であるか否かを判定する。一部の実施例において、転送モジュール（例えば転送モジュール４２２、図４）は、図４に関連して上述したように、音声認識サーバーが処理に利用可能であるか否かを判定するように構成される。
【００９９】
音声認識サーバーが利用可能であるという判定に従って（５４２）、音声アクセスサーバーは、音声リクエストを音声認識サーバーに処理のために転送する（５４４）。例えば、音声認識サーバーが音声認識サーバー４３である場合、音声認識サーバー４３が利用可能であるという判定に従って、音声アクセスサーバーは音声リクエストを音声認識サーバー４３に処理のために転送する。一部の実施例において、転送モジュール（例えば転送モジュール４２２、図４）は、図４に関連して上述したように、音声認識サーバーが利用可能であるという判定に従って、音声リクエストを音声認識サーバーに処理のために転送するように構成される。
【０１００】
次に、音声アクセスサーバーは、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定する（５４６）。音声アクセスサーバーは、音声認識サーバーによる音声リクエストの２度目の処理が成功したか否かを判定する。一部の実施例において、結果モジュール（例えば結果モジュール４２４、図４）は、図４に関連して上述したように、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定するように構成される。
【０１０１】
音声リクエストの処理が成功したという判定に従って、音声アクセスサーバーは、端末に第１のメッセージを返す（５４８）。いくつかの実施形態において、端末への第１のメッセージは、音声リクエストの処理が成功したことを示すメッセージを含む。一部の実施例において、結果モジュール（例えば結果モジュール４２４、図４）は、図４に関連して上述したように、音声リクエストの処理が成功したという判定に従って、端末に第１のメッセージを返すように構成される。
【０１０２】
音声リクエストの処理が成功しなかったという判定に従って、音声アクセスサーバーは、端末に第２のメッセージを返す（５５０）。いくつかの実施形態において、端末への第２のメッセージは、音声リクエストの処理が成功しなかったことを示すメッセージを含む。一部の実施例において、結果モジュール（例えば結果モジュール４２４、図４）は、図４に関連して上述したように、音声リクエストの処理が成功しなかったという判定に従って、音声アクセスサーバーは、端末に第２のメッセージを返すように構成される。
【０１０３】
更に、音声アクセスサーバーは、音声認識サーバーが利用不可であるという判定に従って、端末に第２のメッセージを返す（５５２）。いくつかの実施形態において、端末への第２のメッセージは、音声リクエストの処理が成功しなかったことを示すメッセージが含まれる。例えば、音声認識サーバーが音声認識サーバー４３である場合、音声認識サーバー４３が利用不可であるという判定に従って、音声アクセスサーバーは端末に、音声リクエストの処理が成功しなかったことを示す第２のメッセージを返す。一部の実施例において、結果モジュール（例えば結果モジュール４２４、図４）は、図４に関連して上述したように、音声認識サーバーが利用不可であるという判定に従って、端末に第２のメッセージを返すように構成される。
【０１０４】
任意に、音声アクセスサーバーは、複数の音声認識サーバー（例えば音声認識サーバー１２４、図１および図４）のうちどの音声認識サーバーが処理に利用不可であるのかを記録する（５５４）。いくつかの実施形態において、処理に利用不可である音声認識サーバーは、後の修復のために記録される。いくつかの実施形態において、処理に利用不可である音声認識サーバーは、音声アクセスサーバーが特定の音声認識サーバーが現在処理に利用可能であるか否かを判定するための参照用として、記録される。一部の実施例において、記録モジュール（例えば記録モジュール４２６、図４）は、複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であるのかを記録するように構成される。
【０１０５】
上記では特定の実施形態を説明したが、本発明をそれらの実施形態に限定する意図はないことが理解されるであろう。それどころか本発明は、添付の特許請求の範囲の主旨および範囲に包含される代替、変更および均等物を含む。本明細書に提示される内容を完全に理解するために、多くの具体的な詳細を記載した。しかしながら、当該技術分野の当業者には明らかであるように、その内容はそのような具体的な詳細を伴わずに実施されてよい。他の例では、実施形態の態様を不必要に曖昧にしないように、周知の方法、プロシージャ、コンポーネントおよび回路を詳細に説明していない。
【０１０６】
本明細書において本発明の説明に用いられた用語は、特定の実施形態を説明するためのものに過ぎず、本発明を限定する意図はない。本発明の説明および添付の特許請求の範囲において用いられる場合、複数であることが明示されない限り、単数形は複数の場合を含む。また、「および／または」という表現は、本明細書で用いられる場合、関連する列挙された要素の１以上のありとあらゆる可能な組合わせを意味し包含することが理解されるであろう。更に、「含む」「含んでいる」「備える」および／または「備えている」という表現は、本明細書で用いられる場合、記載の特徴、工程、要素および／またはコンポーネントの存在を特定するが、１以上の他の特徴、工程、要素、コンポーネントおよび／またはそれらの群の存在または追加を除外するものではないことが理解されるであろう。
【０１０７】
本明細書で用いられる場合、「〜の場合」という表現は、文脈に応じて、記載の前提条件が真である「とき」、真で「あるとすぐに」、または真であると「判定されることに応じて」、または真であると「いう判定に従って」、または真であると「検出されることに応じて」という意味であると解釈されてよい。同様に、「［記載の前提条件が真である］と判定された場合」または「［記載の前提条件が真である］場合」または「［記載の前提条件が真である］とき」という語句は、文脈に応じて、記載の前提条件が真であることが「判定されたとき」または「判定されたことに応じて」または真であるという「判定に従って」または真であると「検出されたとき」または「検出されたことに応じて」という意味であると解釈されてよい。
【０１０８】
一部の図面には多数の論理ステージが特定の順序で示されているが、順序に依存しないステージは並べ替えられてよく、また、他のステージの組合わせまたは切離しが行われてもよい。一部の並べ替えまたは他のグループ化を具体的に述べたが、当該技術分野の当業者には他のものも明らかであろう。よって、代替の網羅的な列挙は提示しない。更に、ステージがハードウェア、ファームウェア、ソフトウェアまたそれらの任意の組合わせによって実現可能であることが認識されるべきである。
【０１０９】
上記は、説明を目的として、特定の実施形態を参照して記載されている。しかしながら、上記の説明的な議論は網羅的なものではなく、まさにその開示される形態に本発明を限定するものではない。上記の教示に鑑みて、多くの変更および変形が可能である。実施形態は、本発明の原理とその実際的な適用を最もよく説明することで、当該技術分野の当業者が、予定される特定の利用に合うような様々な変更と共に本発明および各種実施形態を最もよく利用できるようにするために、選択され記載された。
【図１】
0005951148.tif 000002
【図２】
0005951148.tif 000003
【図３】
0005951148.tif 000004
【図４】
0005951148.tif 000005
【図５Ａ】
0005951148.tif 000006
【図５Ｂ】
0005951148.tif 000007
【図５Ｃ】
0005951148.tif 000008
【図５Ｄ】
0005951148.tif 000009