JP5951148B2 - 音声認識システムにおける負荷分散のためのシステムおよび方法 - Google Patents

音声認識システムにおける負荷分散のためのシステムおよび方法 Download PDF

Info

Publication number
JP5951148B2
JP5951148B2 JP2015555556A JP2015555556A JP5951148B2 JP 5951148 B2 JP5951148 B2 JP 5951148B2 JP 2015555556 A JP2015555556 A JP 2015555556A JP 2015555556 A JP2015555556 A JP 2015555556A JP 5951148 B2 JP5951148 B2 JP 5951148B2
Authority
JP
Japan
Prior art keywords
voice
recognition server
processing
request
voice recognition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015555556A
Other languages
English (en)
Other versions
JP2016507079A (ja
Inventor
リウ,チウゲ
Original Assignee
テンセント テクノロジー (シェンジェン) カンパニー リミテッド
テンセント テクノロジー (シェンジェン) カンパニー リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テンセント テクノロジー (シェンジェン) カンパニー リミテッド, テンセント テクノロジー (シェンジェン) カンパニー リミテッド filed Critical テンセント テクノロジー (シェンジェン) カンパニー リミテッド
Publication of JP2016507079A publication Critical patent/JP2016507079A/ja
Application granted granted Critical
Publication of JP5951148B2 publication Critical patent/JP5951148B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/01Assessment or evaluation of speech recognition systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本願は、2013年2月1日に出願された「音声認識システムにおいて負荷分散を実現するための方法および装置」と題される中国特許出願第201310040812.4号に対する優先権を主張し、その全体を参照によって本明細書に援用する。
開示される実施形態は、一般に音声認識技術に関し、特に、音声認識システムにおける負荷分散のためのシステムおよび方法に関する。
音声認識技術とは、認識および理解によって音声信号を対応するテキストまたはコマンドに変換させる技術、すなわち、機械に人間の発話を理解させる技術のことである。
図1は、一部の実施形態に係る音声認識システムを示すブロック図である。図1に示されるように、端末110およびサーバークラスター120を含む。サーバークラスター120は、音声アクセスサーバー122および音声認識サーバー124を含むことができる。端末110は、固定端末であってもモバイル端末であってもよく、一般に複数である。音声アクセスサーバーの数は1以上であってよい。音声認識サーバーの数は一般に複数である。
ここで、音声アクセスサーバー122は、端末110によって送信された音声リクエストを音声認識サーバー124に転送することに関与する。音声認識サーバー124は、受信した音声リクエストに対して音声認識等の処理を行うことに関与する。
上述のように、音声認識サーバーの数は一般に複数であるので、数十個、数百個である場合もある。よって音声アクセスサーバー122は、複数の音声リクエストの負荷を分散するために、受信された音声リクエストを音声認識サーバーの各々に分散して転送する必要がある。
従来技術では、以下の負荷分散方式が一般に適用される。すなわち、ドメインネームシステム(Domain Name System;DNS)ポーリング方式では、音声認識サーバー間の負荷分散を実現するために、ドメインネームに様々な記録を設定することにより、DNSポーリングを行う。
しかしながら、DNS方式の実際の応用には、いくつかの問題がある場合がある。例えば、受信された1つの音声リクエストが1つの音声認識サーバーに処理のために転送される必要があると音声アクセスサーバーが判定した場合、音声アクセスサーバーは音声認識サーバーの状態に関わらず、すなわち、音声認識サーバーが利用可能であるか否かに関わらず、音声リクエストを音声認識サーバーに転送するであろう。こうして、処理が失敗するおそれがある(すなわち、音声リクエストの処理の成功率が低下する)。
添付の特許請求の範囲に包含されるシステム、方法および装置の様々な実施例には、それぞれいくつかの態様があり、それらのうち1つが単独で本明細書に記載の特性の責任を負うわけではない。添付の特許請求の範囲の範囲を限定することなく、本開示を考慮すれば、特に「発明を実施するための形態」と題される部分を考慮すれば、音声認識システムにおける負荷分散のためのシステムおよび方法を可能にするために様々な実施例の態様がどのように用いられるかが理解されるであろう。一部の実施例は、音声認識システムにおける負荷分散の方法を含む。一部の実施例において、本方法は、1以上のプロセッサと、1以上のプロセッサによる実行用に構成される1以上のプログラムを格納するメモリとを有する音声アクセスサーバーにおいて、(1)音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと1以上の伝送制御プロトコル(transmission control protocol;TCP)ロング接続を確立することを含む、ステップと、(2)端末から音声リクエストを受信するステップと、(3)所定の負荷分散アルゴリズムに従って、音声リクエストを処理するために複数の音声認識サーバーのうちの第1の音声認識サーバーを決定するステップと、(4)第1の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、(5)第1の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第1の音声認識サーバーに処理のために転送するステップと、(6)第1の音声認識サーバーが利用不可であるという判定に従って、(a)複数の音声認識サーバーのうちの他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、(b)第2の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第2の音声認識サーバーに処理のために転送するステップと、を含む。
本開示をより詳細に理解できるように、様々な実施例の特徴を参照してより具体的な説明を記載する。様々な実施例の特徴の一部は添付の図面に示される。しかしながら、説明は他の効果的な特徴を受け入れることができるので、添付の図面は本開示により関連性の高い特徴を示すものに過ぎず、したがって限定とみなされるものではない。
一部の実施形態に係る音声認識システムを示すブロック図である。 一部の実施形態に係る、音声認識システムにおける負荷分散のための方法のフローチャートである。 一部の実施形態に係る、音声認識システムにおける負荷分散のための方法のフローチャートである。 一部の実施形態に係る音声アクセスサーバーの実施を示すブロック図である。 一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。 一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。 一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。 一部の実施形態に係る、音声認識システムにおける負荷分散の方法のフローチャート表示である。 慣行に従って、図面に示される様々な特徴は一定の縮尺で描かれていない場合がある。これに応じて、様々な特徴の寸法は明確にするために任意に拡大または縮小される場合がある。また、一部の図面では、所与のシステム、方法または装置のコンポーネントが全て示されているとは限らない。最後に、明細書および図面を通して、同じ参照符号を用いて同じ特徴が示される。
以下、実施形態を詳細に参照する。実施形態の例は添付の図面に示される。以下の詳細な説明において、本明細書に提示される内容を完全に理解するために、多くの具体的な詳細を記載する。しかしながら、その内容はそのような具体的な詳細を伴わずに実施されてよいことが、当該技術分野の当業者には明らかであろう。他の例では、実施形態の態様を不必要に曖昧にしないように、周知の方法、プロシージャ、コンポーネントおよび回路を詳細に説明していない。
従来技術の問題を対象として、本発明は、音声リクエストの処理の成功率を高めることのできる、音声認識システムにおける負荷分散を実現する方法を提案する。
本発明の技術的構成をより明確かつ明快にするために、以下、添付の図面および実施形態を参照して、本発明の上述の構成を詳細に説明する。
図2は、一部の実施形態に係る音声認識システムにおける負荷分散のための方法のフローチャートである。図2に示すように、本方法は以下を含む。
ステップ21:任意の音声リクエストxを端末(例えば端末110、図1)から受信すると、音声アクセスサーバーは、所定の負荷分散アルゴリズムに従って、音声リクエストxを処理することのできる音声認識サーバーを決定する。
いくつかの実施形態において、説明を簡略化するために、音声アクセスサーバーによって受信される任意の音声リクエストを音声リクエストxで表す。
端末は、音声アクセスサーバーとの確立された伝送制御プロトコル(transmission control protocol;TCP)ロング接続またはTCPショート接続によって、音声アクセスサーバーと情報インタラクションを行う。
音声アクセスサーバーは、0〜N−1の値を用いて、各音声認識サーバーに予め固有の番号を割り当てることができる。Nの値は、音声認識サーバーの総数に等しい。
このように、音声リクエストxを受信すると、音声アクセスサーバーはまず伝送される音声IDを取得し、音声IDに対してハッシュ演算を行ってハッシュ値を得ることができ、その後、得られたハッシュ値およびNに関してモジュロ演算を行い、番号がモジュロ演算の結果と等しい音声認識サーバーを、音声リクエストxを処理することのできる音声認識サーバーとして決定することができる。
上述のハッシュ演算の具体的な実現方式は、受信された音声リクエストの各々に対して音声アクセスサーバーが同じ種類のハッシュ演算を使用できれば、限定されない。
以下に例を示す。
Nの値が100、すなわち音声認識サーバーの総数が100であると仮定し、音声リクエストxによって伝送される音声IDのハッシュ値が1043であると仮定する。
モジュロ演算により、1043%100=43が得られ、すなわちモジュロ演算の結果は43である。そして、音声リクエストxを番号が43である音声認識サーバーに処理のために転送する必要があると判定される。
ステップ22:音声アクセスサーバーは、ステップ21で決定された音声認識サーバーが利用可能な状態であるか否かを判定する。利用可能である場合はステップ23を実行し、利用不可である場合はステップ24を実行する。
特定の音声認識サーバーがダウンしている場合、利用不可の状態であるとみなすことができる。
ステップ23:音声アクセスサーバーは、ステップ21で決定された音声認識サーバーに音声リクエストxを処理のために転送し、プロセスを終了する。
実際の応用では、音声アクセスサーバーが初期化されると、各音声認識サーバーとの間でM個のTCPロング接続が確立されてよい。Mは正の整数である。
このように、音声アクセスサーバーが特定の音声リクエストを特定の音声認識サーバーに転送する必要がある場合、確立されるTCPロング接続を直接利用することができる。すなわち、上述のTCPロング接続によって、音声認識サーバーと直接的に情報をインタラクトすることができ、必要に応じてTCPロング接続の確立時間が節約される。
音声アクセスサーバーと各音声認識サーバーとの間で確立されるTCPロング接続の数(すなわち、Mの具体的な値)は、実際の必要に応じて決定されるものであり、1以上であってよい。複数のTCPロング接続の利点は、音声アクセスサーバーが同時に複数の音声リクエストを受信し、複数の音声リクエストが全て同じ音声認識サーバーによって処理されるべきであると判定した場合に、複数のTCPロング接続を用いて複数の音声リクエストを音声認識サーバーにそれぞれ転送ですることができ、伝送効率がされることである。TCPロング接続が1つしかない場合、音声リクエストを1つずつ転送することしかできない。
ステップ24:音声アクセスサーバーは、ステップ21で決定された音声認識サーバー以外の全ての音声認識サーバーをトラバースする。ここで、音声認識サーバーをトラバースするとき、音声認識サーバーが利用可能な状態であると判定された場合、音声リクエストxをその音声認識サーバーに処理のために転送し、トラバースを停止してプロセスを終了する。
以下に例を挙げる。
Nの値が100である(すなわち、音声認識サーバーの総数が100である)と仮定し、ステップ21で決定された音声認識サーバーの数が43であると仮定する。音声認識サーバー43が利用不可の状態である場合、音声認識サーバー44、音声認識サーバー45、音声認識サーバー46などが順にトラバースされる。
音声認識サーバー45がトラバースされたときに利用可能な状態であると判定された場合、音声リクエストxは音声認識サーバー45に処理のために転送され、トラバースは停止される。
トラバースされた各音声認識サーバーが利用不可の状態である場合、端末に処理失敗情報が返される。
更に、実際の応用では、ステップ23およびステップ24において、音声アクセスサーバーが音声リクエストxを特定の音声認識サーバーに処理のために転送するときに、以下の処理を実行することもできる。
1)音声認識サーバーによる音声リクエストxの処理が成功したか否かを判定する。
2)成功した場合、端末に処理成功メッセージを返す。
3)成功しなかった場合、音声認識サーバーが利用可能な状態であるか否かを再度判定する。利用不可である場合、端末に処理失敗メッセージを返す。利用可能である場合、音声リクエストxを音声認識サーバーに処理のために再び転送し、音声認識サーバーの音声リクエストxに対する処理が成功したか否かを再び判定する。成功した場合、端末に処理成功メッセージを返す。成功しなかった場合、端末に処理失敗メッセージを返す。
音声リクエストxを音声認識サーバーに処理のために転送する前に、音声認識サーバーが利用可能な状態にあるか否かは既に判定されており、利用可能な状態であると判定された場合にのみ音声リクエストxが該音声認識サーバーに転送される。しかしながら、予期せぬ事態(例えば、音声認識サーバーが音声リクエストxを受信した後に処理を行わずにダウンし、利用不可の状態になる)が発生し、これによって音声リクエストxの処理が失敗するおそれがある。或いは、その他の理由で音声リクエストxの処理が失敗するおそれがある。したがって、ステップ1)において音声認識サーバーによる音声リクエストxの処理が成功しなかったと判定された後に、ステップ3)が実行されてよい。
音声アクセスサーバーは、適時に修復を行うために、利用不可の音声認識サーバーを記録することができる。
更に、記録された利用不可の音声認識サーバーに関して、音声アクセスサーバーは、特定の音声リクエストを該音声認識サーバーに転送する必要があると判定した場合、他の音声認識サーバーを直接トラバースすることができる。また、音声アクセスサーバーは、記録された利用不可の音声認識サーバーが利用可能な状態に回復し、回復した音声認識サーバーが音声リクエストを処理できるか否かを、周期的に確認することができる。
図3は、一部の実施形態に係る、音声認識システムにおける負荷分散のための方法のフローチャートである。図3に示すように、本方法は以下を含む。
ステップ31:音声アクセスサーバーが初期化されると、各音声認識サーバーとの間でM個のTCPロング接続が確立される。
ステップ32:任意の音声リクエストxを端末(例えば端末110、図1)から受信すると、音声アクセスサーバーは、所定の負荷分散アルゴリズムに従って、音声リクエストxを処理することのできる音声認識サーバーを決定する。
ステップ33:音声アクセスサーバーは、ステップ32で決定された音声認識サーバーが利用可能な状態であるか否かを判定する。利用可能である場合はステップ34を実行し、利用不可である場合はステップ35を実行する。
ステップ34:音声アクセスサーバーは、ステップ32で決定された音声認識サーバーに音声リクエストxを処理のために転送し、ステップ36を実行する。
ステップ35:音声アクセスサーバーは、ステップ32で決定された音声認識サーバー以外の全ての音声認識サーバーをトラバースする。ここで、音声認識サーバーをトラバースするとき、音声認識サーバーが利用可能な状態であると判定された場合、音声リクエストxをその音声認識サーバーに処理のために転送し、トラバースを停止し、ステップ36を実行する。
ステップ36:音声アクセスサーバーは、音声リクエストxの処理が成功したか否かを判定する。成功した場合はステップ37を実行し、成功しなかった場合はステップ38を実行する。
ステップ37:音声アクセスサーバーは、端末に処理成功メッセージを返し、プロセスを終了する。
ステップ38:音声アクセスサーバーは、音声リクエストxを処理することのできる音声認識サーバーが利用可能な状態であるか否かを再び判定する。利用不可である場合はステップ39を実行し、利用可能である場合はステップ310を実行する。
ステップ39:音声アクセスサーバーは、端末に処理失敗メッセージを返し、プロセスを終了する。
ステップ310:音声アクセスサーバーは、対応する音声認識サーバーに音声リクエストxを処理のために再び転送する。
ステップ311:音声アクセスサーバーは、音声リクエストxの処理が成功したか否かを再び判定する。成功した場合はステップ37を実行し、成功しなかった場合はステップ39を実行する。
開示される実施形態は音声アクセスサーバーを含み、音声アクセスサーバーはいくつかの実施形態において負荷分散モジュールを有する。いくつかの実施形態において、負荷分散モジュールは、受信ユニットおよび転送ユニットを有する。
受信ユニットは、端末(例えば端末110、図1)によって送信される任意の音声リクエストを受信し、音声リクエストを転送ユニットに転送するように構成される。
転送ユニットは、所定の負荷分散アルゴリズムに従って、音声リクエストを処理することのできる音声認識サーバーを決定し、音声認識サーバーが利用可能な状態であるか否かを判定し、利用可能である場合は音声リクエストを音声認識サーバーに処理のために転送し、利用不可である場合はその音声認識サーバー以外の各音声認識サーバーをトラバースするように構成される。ここで、音声認識サーバーをトラバースするとき、音声認識サーバーが利用可能な状態であると判定された場合、音声リクエストをその音声認識サーバーに処理のために転送し、トラバースを停止する。
更に、転送ユニットは、0〜N−1の値を用いて、各音声認識サーバーに予め固有の番号を割り当てる際に用いることができる。Nの値は、音声認識サーバーの総数に等しい。
一部の実施例において、転送ユニットは音声リクエストによって伝送される音声IDを取得し、音声IDに対してハッシュ演算を行ってハッシュ値を得て、それから得られたハッシュ値およびNに関してモジュロ演算を行い、番号がモジュロ演算の結果と等しい音声認識サーバーを、音声リクエストを処理することのできる音声認識サーバーとして決定する。
転送ユニットは更に、トラバースされた音声認識サーバーがそれぞれ利用不可の状態である場合、端末に処理失敗メッセージを返すように構成されてよい。
転送ユニットは更に、以下のように構成されてよい。すなわち、音声リクエストを音声認識サーバーに処理のために転送した後、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定する。成功した場合は端末に処理成功メッセージを返し、成功しなかった場合は音声認識サーバーが利用可能な状態であるかを再び判定する。利用不可である場合は端末に処理失敗メッセージを返し、利用可能である場合は、音声リクエストを音声認識サーバーに処理のために再び転送し、音声認識サーバーによる音声リクエストの処理が成功したか否かを再び判定する。成功した場合は端末に処理成功メッセージを返し、成功しなかった場合は端末に処理失敗メッセージを返す。
転送ユニットは更に、音声アクセスサーバーが初期化されるときに、各音声認識サーバーとM個のTCPロング接続を確立されてよい。その結果、上述のTCPロング接続を介して、各音声認識サーバーとの情報インタラクションを行うことができる。ここで、Mは正の整数である。
なお、実際の応用では、音声アクセスサーバーは一般に、負荷分散モジュール以外の他のコンポーネントを有する。しかしながら、本発明の上述の構成とは直接関係がないので、ここでは紹介しない。
更に、上述の音声アクセスサーバーの具体的な動作プロセスについては、上記方法の実施形態における対応する命令を参照することとし、ここでの説明は省略する。
要するに、特定の音声リクエストが特定の音声認識サーバーに処理のために転送される前に、該音声認識サーバーが利用可能な状態であるか否かが判定される。利用可能である場合は該音声認識サーバーに転送され、利用不可である場合は、該音声認識サーバーには転送されず、他の利用可能な音声認識サーバーに転送される。このように、音声リクエスト処理の成功率が向上し、大規模な処理障害が振動効果なく回避される。
更に、音声認識システムにおいて、端末(例えば端末110、図1)とサーバークラスター(例えばサーバークラスター120、図1)との間にストリーム伝送モードが適用される。ストリーム伝送モードでは、音声情報の伝送および識別は単一の音声リクエストによって達成されるのではない。むしろ、音声情報は特定の規則に従って一連の音声リクエスト(例えば4つの音声リクエスト)に分割され、所定の順序に従ってサーバークラスターに送信される。サーバークラスターは、音声IDの違いに従って、異なる音声情報を区別する。各音声情報の音声IDは固有である。同じ音声情報に属する異なる音声リクエストは、会話保持(conversation maintenance)のために、同じ音声認識サーバーに処理のために転送される必要がある。明らかなように、本発明の上記構成を適用すると、同じ音声情報に属する異なる音声リクエストの音声IDは同じであるので、ハッシュ演算およびモジュロ演算の後、同じ音声情報に属するこれらの異なる音声リクエストは全て、同じ音声認識サーバーに処理のために転送される。
本明細書に記載の様々な実施例は、音声認識システムにおける負荷分散を可能にするように構成されるシステム、方法および/または装置を含む。一部の実施例は、負荷分散アルゴリズムに従って音声リクエストを処理するシステム、方法および/または装置を含む。
より具体的には、一部の実施例には、音声認識システムにおける負荷分散の方法が含まれる。一部の実施例において、該方法は、1以上のプロセッサと、前記1以上のプロセッサによる実行用に構成される1以上のプログラムを格納するメモリとを有する音声アクセスサーバーにおいて、(1)音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと1以上の伝送制御プロトコル(transmission control protocol;TCP)ロング接続を確立するステップを含む、ステップと、(2)端末から音声リクエストを受信するステップと、(3)所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうちの第1の音声認識サーバーを決定するステップと、(4)前記第1の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、(5)前記第1の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第1の音声認識サーバーに処理のために転送するステップと、(6)前記第1の音声認識サーバーが利用不可であるという判定に従って、(a)前記複数の音声認識サーバーのうちの他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、(b)第2の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第2の音声認識サーバーに処理のために転送するステップと、を含む。
いくつかの実施形態において、所定の負荷分散アルゴリズムに従って前記第1の音声認識サーバーを決定する前記ステップは、(1)前記音声リクエストから音声IDを取得するステップと、(2)前記音声IDに基づいてハッシュ値を生成するステップと、(3)前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはN個の音声認識サーバーを含む、ステップと、(4)Nを法として前記ハッシュ値に等しい第1の値を計算するステップと、(5)前記第1の値が前記第1の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第1の音声認識サーバーを決定するステップと、を含む。
いくつかの実施形態において、該方法は更に、(1)各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、(2)前記音声リクエストの処理が成功したという判定に従って、前記端末に第1のメッセージを返すステップと、(3)前記音声リクエストの処理が成功しなかったという判定に従って、(a)前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、(b)前記音声認識サーバーが利用可能であるという判定に従って、(i)前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、(ii)前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、(iii)前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第1のメッセージを返すステップと、(iv)前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第2のメッセージを返すステップと、(c)前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第2のメッセージを返すステップと、を含む。
いくつかの実施形態において、前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの1つである。
いくつかの実施形態において、前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される。
いくつかの実施形態において、該方法は更に、前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップを含む。
別の態様において、上述の方法のいずれかがコンピューターシステムによって実行される。該コンピューターシステムは、(1)1以上のプロセッサと、(2)メモリと、(3)前記メモリに格納され、前記1以上のプロセッサによる実行用に構成される1以上のプログラムとを備える。前記1以上のプログラムは、上述の方法のいずれかのための命令を含む。
更に別の態様において、非一時的なコンピューター可読記憶媒体は、コンピューターシステムの1以上のプロセッサによる実行用の1以上のプログラムを格納する。前記1以上のプログラムは、前記コンピューターシステムに上述の方法のいずれかを実行させる命令を含む。
添付の図面に示される実施例を完全に理解するために、多くの詳細を説明する。しかしながら、一部の実施形態は特定の詳細の多くを伴わずに実施されてよく、特許請求の範囲は、請求項に具体的に記載される特徴および態様によってのみ限定される。更に、周知の方法、コンポーネントおよび回路は、本明細書に記載の実施例により関連性の高い態様を不必要に曖昧にしないように、余すところなく説明されてはいない。
図4は、一部の実施形態に係る音声アクセスサーバー122の実装を示すブロック図である。音声アクセスサーバー122は、一般に、メモリ406に格納されるモジュール、プログラムおよび/または命令を実行することで処理工程を実行する1以上の処理装置(CPU)402と、メモリ406と、これらのコンポーネントを相互接続する1以上の通信バス408とを有する。通信バス408は、任意に、システムコンポーネント間を相互接続しそれらの通信を制御する回路(チップセットとも呼ばれる)を含む。音声アクセスサーバー122は、通信バス408によって端末110および音声認識サーバー124に結合される。メモリ406の例としては、高速ランダムアクセスメモリ(例えば、DRAM、SRAM、DDR RAMその他のランダムアクセスのソリッドステート記憶装置)や、揮発性メモリ(1以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイスその他の不揮発性のソリッドステート記憶装置)が挙げられる。メモリ406は、任意に、CPU402から遠隔配置される1以上の記憶装置を含む。メモリ406、或いはメモリ406内の不揮発性記憶装置は、非一時的なコンピューター可読記憶媒体を備える。いくつかの実施形態において、メモリ406、或いはメモリ406のコンピューター可読記憶媒体は、以下のプログラム、モジュールおよびデータ構造、またはそれらのサブセットを格納する:
・様々な基本システムサービスを扱うプロシージャおよびハードウェア依存性タスクを行うプロシージャを含むオペレーティングシステム410;
・1以上の通信ネットワーク(有線または無線)(インターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタン・エリア・ネットワーク等)を介して、音声アクセスサーバー122を端末(例えば端末110)または他のサーバー(例えば音声認識サーバー124)に接続するように構成される通信モジュール412;
・音声アクセスサーバー122を初期化する工程であって、他のサーバー(例えば音声認識サーバー124)と1以上の接続(例えば、1以上の伝送制御プロトコル(transmission control protocol;TCP)ロング接続)を接続することを含む、工程を実行するように構成される初期化モジュール414;
・音声認識システム(例えばサーバークラスター120、図1)における負荷分散音声リクエストに用いられる負荷分散モジュール416;および
・音声認識サーバーが処理に利用不可であったのかを記録するように構成される記録モジュール426。
いくつかの実施形態において、負荷分散モジュール416は任意に、以下のモジュールもしくはサブモジュール、またはそれらのサブセットを有する:
・端末(例えば端末110)から音声リクエストを受信するように構成される受信モジュール418;
・音声リクエストを処理するための音声認識サーバー(例えば、音声認識サーバー124の1つ)を選択するように構成される選択モジュール420;
・音声リクエストを利用可能な音声認識サーバーに転送するように構成される転送モジュール422;および
・音声リクエストの処理が成功したか否かを判定し、音声リクエストの処理の結果(例えば、音声リクエストの処理が成功したか否か)を示すメッセージを端末に返すように構成される結果モジュール424。
上記で特定された要素の各々は、上記の記憶装置の1以上に格納されてよく、また、上記機能を実行するための命令セットに対応する。上記で特定されたモジュールまたはプログラム(すなわち命令セット)は、個別のソフトウェアプログラム、プロシージャまたはモジュールとして実施される必要はない。よって、様々な実施形態において、これらのモジュールの様々なサブセットが組み合わされてよく、或いは他の方法で再構成されてよい。いくつかの実施形態において、メモリ406は、上記で特定されたモジュールおよびデータ構造のサブセットを格納してよい。更に、メモリ406は、上述されていない追加的なモジュールおよびデータ構造を格納してよい。いくつかの実施形態において、メモリ406またはメモリ406のコンピューター可読記憶媒体に格納されるプログラム、モジュールおよびデータ構造は、図5A〜5Dを参照して後述する方法のうちいずれかを実施するための命令を提供する。
図2は音声アクセスサーバー122を示すが、図2は、本明細書に記載の実施形態の構造概略図というよりも、音声アクセスサーバーに存在しうる様々な特徴を機能的に説明することを意図している。実際には、そして当該技術分野の当業者によって認識されるように、別々に示されている要素を組み合わせることができ、一部の要素を分離することもできる。
図5A〜5Dは、一部の実施形態に係る、音声認識システムにおける負荷分散のための方法500のフローチャート表示を示す。いくつかの実施形態において、方法500は、音声認識システム(例えばサーバークラスター120、図1)において端末(例えば端末110、図1および図4)から受信される音声リクエストの負荷を分散するために、音声アクセスサーバー(例えば音声アクセスサーバー122、図1および図4)によって実行される。いくつかの実施形態において、方法500は、非一時的なコンピューター可読記憶媒体に格納され装置の1以上のプロセッサ(例えば、図4に示す音声アクセスサーバー122の1以上の処理装置(CPU)402)によって実行される命令によって統制される。
1以上のプロセッサと、1以上のプロセッサによる実行用に構成される1以上のプログラムを格納するメモリとを有する音声アクセスサーバー(例えば音声アクセスサーバー122、図1および図4)は(502)、音声アクセスサーバーを初期化する(504)。この工程は、複数の音声認識サーバーの各音声認識サーバー(例えば音声認識サーバー124、図1および図4)と1以上の伝送制御プロトコル(transmission control protocol;TCP)ロング接続を確立することを含む。例えば、複数の音声認識サーバーのうちの第1の音声認識サーバーに関して、音声アクセスサーバーは第1の音声認識サーバーと1つのTCPロング接続を確立してよく、複数の音声認識サーバーのうちの第2の音声認識サーバーに関して、音声アクセスサーバーは第2の音声認識サーバーと3つのTCPロング接続を確立してよい。一部の実施例において、初期化モジュール(例えば、初期化モジュール414、図4)は、図4に関連して上述したように、音声アクセスサーバーを初期化する(複数の音声認識サーバーの各音声認識サーバーと1以上のTCPロング接続を確立することを含む)ように構成される。
次に、音声アクセスサーバーは、端末(例えば端末110、図1および4)から音声リクエストを受信する(506)。一部の実施例において、図4に関して上述したように、受信モジュール(例えば受信モジュール418、図4)は端末から音声リクエストを受信するように構成される。
いくつかの実施形態において、音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの1つである(508)。いくつかの実施形態において、音声情報ストリームは2以上の音声リクエストに分割され、2以上の音声リクエストは所定の順序で、端末(例えば端末110、図1および図4)によって音声認識システム(例えばサーバークラスター120、図1)に送られる。例えば、音声情報ストリームが4つの音声リクエストに分割される場合、4つの音声リクエストは所定の順序(例えば、音声リクエスト1、音声リクエスト2、音声リクエスト3、音声リクエスト4)で音声認識システムに送られる。
いくつかの実施形態において、音声情報ストリームに関連する複数の音声リクエストは、複数の音声認識サーバーのうち同じ音声認識サーバーによって処理される(510)。音声情報ストリームが4つの音声リクエストに分割される上記例を用いると、4つの音声リクエストの全て(例えば、音声リクエスト1、音声リクエスト2、音声リクエスト3および音声リクエスト4)は、複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される。いくつかの実施形態において、同じ音声情報ストリームからの音声リクエストは同じ音声IDをもつ。音声IDは、工程512〜522に関連して後述するように、複数の音声認識サーバーのうちの、音声リクエストを処理するための音声認識サーバーを決定する際に用いられる。
次に、音声アクセスサーバーは、所定の負荷分散アルゴリズムに従って、複数の音声認識サーバーのうち、音声リクエストを処理するための第1の音声認識サーバー(例えば、音声認識サーバー124、図1および図4)を決定する(512)。一部の実施例において、図4に関して上述したように、選択モジュール(例えば選択モジュール420、図4)は、所定の負荷分散アルゴリズムに従って、前記複数の音声認識サーバーのうち、音声リクエストを処理するための第1の音声認識サーバーを決定するように構成される。
いくつかの実施形態において、所定の負荷分散アルゴリズムに従って第1の音声認識サーバーを決定する工程(512)は、音声リクエストから音声IDを取得する工程(514)を含む。上述したように、音声情報ストリームは、小さな音声リクエストに分割されてよい。いくつかの実施形態において、異なる音声情報ストリームは異なる音声IDをもつ。よって、工程510に関連して上述したように、異なる音声情報ストリームからの音声リクエストは異なる音声IDをもち、同じ音声情報ストリームからの音声リクエストは同じ音声IDをもつ。一部の実施例において、選択モジュール(例えば、選択モジュール420、図4)は、図4に関連して上述したように、音声リクエストから音声IDを取得するように構成される。
次に、第1の音声認識サーバーを決定する工程(512)は、音声IDに基づいてハッシュ値を生成する工程(516)を含む。いくつかの実施形態において、ハッシュ関数は、様々な長さのデータを固定長のデータにマップするアルゴリズムであり、ハッシュ値は、ハッシュ関数によって返される値である。例えば音声IDを考えると、音声IDに基づくハッシュ値は4桁の数字(例えば1043)であってよい。一部の実施例において、選択モジュール(例えば、選択モジュール420、図4)は、音声IDに基づいてハッシュ値を生成するように構成される。
更に、第1の音声認識サーバーを決定する工程(512)は、複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てる工程(518)を含む。ここで、複数の音声認識サーバーはN個の音声認識サーバーを含む。いくつかの実施形態において、N個の音声認識サーバーに関して、音声アクセスサーバーは、0〜N−1の固有の番号を各音声認識サーバーに割り当てる。例えば、100個の音声認識サーバーがある場合、音声アクセスサーバーは0〜99の固有の番号を各音声認識サーバーに割り当てる(例えば、0、1、2、3、・・・、97、98、99)。一部の実施例において、選択モジュール(例えば、選択モジュール420、図4)は、図4に関連して上述したように、複数の音声認識サーバーの各音声認識サーバーに固有の番号割り当てる(複数の音声認識サーバーはN個の音声認識サーバーを含む)ように構成される。
次に、第1の音声認識サーバーを決定する工程(512)は、Nを法としてハッシュ値に等しい第1の値を計算する工程(520)を含む。音声IDに基づくハッシュ値が1043でありNが100である上記例を用いると、Nを法としてハッシュ値に等しい第1の値は1043mod100に等しく、43に等しい。一部の実施例において、選択モジュール(例えば選択モジュール420、図4)は、図4に関連して上述したように、Nを法としてハッシュ値に等しい第1の値を計算するように構成される。
次に、第1の音声認識サーバーを決定する工程(512)は、第1の値が第1の音声認識サーバーに割り当てられた固有の番号に等しいという判定に従って、第1の音声認識サーバーを決定する工程(522)を含む。Nが100であり第1の値が43である上記例を用いると、工程518に関して上述したように、第1の音声認識サーバーは、固有の番号43を割り当てられた音声認識サーバーである。一部の実施例において、選択モジュール(例えば選択モジュール420、図4)は、図4に関連して上述したように、第1の値が第1の音声認識サーバーに割り当てられた固有の番号に等しいという判定に従って、第1の音声認識サーバーを決定するように構成される。
そして、音声アクセスサーバーは、第1の音声認識サーバーが処理に利用可能であるか否かを判定する(524)。例えば、第1の音声認識サーバーが音声認識サーバー43であると判定された場合、音声アクセスサーバーは、音声認識サーバー43が処理に利用可能であるか否かを判定する。一部の実施例において、転送モジュール(例えば転送モジュール422、図4)は、図4に関連して上述したように、第1の音声認識サーバーが処理に利用可能であるか否かを判定するように構成される。
次に、音声アクセスサーバーは、第1の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第1の音声認識サーバーに処理のために転送する(526)。例えば、第1の音声認識サーバーが音声認識サーバー43である場合、音声認識サーバー43が利用可能であるという判定に従って、音声アクセスサーバーは音声リクエストを音声認識サーバー43に処理のために転送する。一部の実施例において、転送モジュール(例えば転送モジュール422、図4)は、図4に関連して上述したように、第1の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第1の音声認識サーバーに処理のために転送するように構成される。
次に、第1の音声認識サーバーが利用不可であるという判定に従って(528)、音声アクセスサーバーは、複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定する(530)。例えば、第1の音声認識サーバーが音声認識サーバー43であり音声認識サーバー43が利用不可である場合、音声アクセスサーバーは、音声認識サーバー44が利用可能であるか否か、音声認識サーバー45が利用可能であるか否か等を判定する。いくつかの実施形態において、音声認識サーバーがダウンしている場合、音声認識サーバーは利用不可である。一部の実施例において、転送モジュール(例えば転送モジュール422、図4)は、図4に関連して上述したように、複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するように構成される。
そして、第2の音声認識サーバーが利用可能であるという判定に従って、音声アクセスサーバーは音声リクエストを第2の音声認識サーバーに処理のために転送する(532)。例えば、工程530において音声認識サーバー44が利用不可であり音声認識サーバー45が利用可能であると判定された場合、音声アクセスサーバーは、音声リクエストを音声認識サーバー45に処理のために転送する。一部の実施例において、転送モジュール(例えば転送モジュール422、図4)は、図4に関連して上述したように、第2の音声認識サーバーが利用可能であるという判定に従って、音声リクエストを第2の音声認識サーバーに処理のために転送するように構成される。
任意に、処理に利用可能な音声認識サーバーがないという判定に従って、音声アクセスサーバーは、音声リクエストの処理が成功しなかったことを示すメッセージを端末に返す。一部の実施例において、結果モジュール(例えば結果モジュール424、図4)は、図4に関連して上述したように、処理に利用可能な音声認識サーバーがないという判定に従って、音声リクエストの処理が成功しなかったことを示すメッセージを端末に返すように構成される。
任意に、音声アクセスサーバーは、各音声認識サーバーによる音声リクエストの処理が成功したか否かを判定する(534)。上述のように、音声リクエストが音声認識サーバーに転送される前に、音声認識サーバーが処理に利用可能であると既に判定されているが、予期せぬ事態により、音声リクエストが失敗するおそれがある(例えば、音声認識サーバーが音声リクエストを受信した直後、音声リクエストの処理に成功する前にダウンし、利用不可になる)。一部の実施例において、結果モジュール(例えば結果モジュール424、図4)は、図4に関連して上述したように、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定するように構成される。
次に、音声アクセスサーバーは、音声リクエストの処理が成功したという判定に従って、端末(例えば端末110、図1および図4)に第1のメッセージを返す(536)。いくつかの実施形態において、端末への第1のメッセージは、音声リクエストの処理が成功したことを示すメッセージを含む。一部の実施例において、結果モジュール(例えば結果モジュール424、図4)は、図4に関連して上述したように、音声リクエストの処理が成功したという判定に従って、端末に第1のメッセージを返すように構成される。
更に、音声アクセスサーバーは、音声リクエストの処理が成功しなかったという判定に従って(538)、音声認識サーバーが処理に利用可能であるか否かを判定する(540)。例えば、音声認識サーバーが音声認識サーバー43である場合、音声アクセスサーバーは、音声認識サーバー43が処理に利用可能であるか否かを判定する。一部の実施例において、転送モジュール(例えば転送モジュール422、図4)は、図4に関連して上述したように、音声認識サーバーが処理に利用可能であるか否かを判定するように構成される。
音声認識サーバーが利用可能であるという判定に従って(542)、音声アクセスサーバーは、音声リクエストを音声認識サーバーに処理のために転送する(544)。例えば、音声認識サーバーが音声認識サーバー43である場合、音声認識サーバー43が利用可能であるという判定に従って、音声アクセスサーバーは音声リクエストを音声認識サーバー43に処理のために転送する。一部の実施例において、転送モジュール(例えば転送モジュール422、図4)は、図4に関連して上述したように、音声認識サーバーが利用可能であるという判定に従って、音声リクエストを音声認識サーバーに処理のために転送するように構成される。
次に、音声アクセスサーバーは、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定する(546)。音声アクセスサーバーは、音声認識サーバーによる音声リクエストの2度目の処理が成功したか否かを判定する。一部の実施例において、結果モジュール(例えば結果モジュール424、図4)は、図4に関連して上述したように、音声認識サーバーによる音声リクエストの処理が成功したか否かを判定するように構成される。
音声リクエストの処理が成功したという判定に従って、音声アクセスサーバーは、端末に第1のメッセージを返す(548)。いくつかの実施形態において、端末への第1のメッセージは、音声リクエストの処理が成功したことを示すメッセージを含む。一部の実施例において、結果モジュール(例えば結果モジュール424、図4)は、図4に関連して上述したように、音声リクエストの処理が成功したという判定に従って、端末に第1のメッセージを返すように構成される。
音声リクエストの処理が成功しなかったという判定に従って、音声アクセスサーバーは、端末に第2のメッセージを返す(550)。いくつかの実施形態において、端末への第2のメッセージは、音声リクエストの処理が成功しなかったことを示すメッセージを含む。一部の実施例において、結果モジュール(例えば結果モジュール424、図4)は、図4に関連して上述したように、音声リクエストの処理が成功しなかったという判定に従って、音声アクセスサーバーは、端末に第2のメッセージを返すように構成される。
更に、音声アクセスサーバーは、音声認識サーバーが利用不可であるという判定に従って、端末に第2のメッセージを返す(552)。いくつかの実施形態において、端末への第2のメッセージは、音声リクエストの処理が成功しなかったことを示すメッセージが含まれる。例えば、音声認識サーバーが音声認識サーバー43である場合、音声認識サーバー43が利用不可であるという判定に従って、音声アクセスサーバーは端末に、音声リクエストの処理が成功しなかったことを示す第2のメッセージを返す。一部の実施例において、結果モジュール(例えば結果モジュール424、図4)は、図4に関連して上述したように、音声認識サーバーが利用不可であるという判定に従って、端末に第2のメッセージを返すように構成される。
任意に、音声アクセスサーバーは、複数の音声認識サーバー(例えば音声認識サーバー124、図1および図4)のうちどの音声認識サーバーが処理に利用不可であるのかを記録する(554)。いくつかの実施形態において、処理に利用不可である音声認識サーバーは、後の修復のために記録される。いくつかの実施形態において、処理に利用不可である音声認識サーバーは、音声アクセスサーバーが特定の音声認識サーバーが現在処理に利用可能であるか否かを判定するための参照用として、記録される。一部の実施例において、記録モジュール(例えば記録モジュール426、図4)は、複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であるのかを記録するように構成される。
上記では特定の実施形態を説明したが、本発明をそれらの実施形態に限定する意図はないことが理解されるであろう。それどころか本発明は、添付の特許請求の範囲の主旨および範囲に包含される代替、変更および均等物を含む。本明細書に提示される内容を完全に理解するために、多くの具体的な詳細を記載した。しかしながら、当該技術分野の当業者には明らかであるように、その内容はそのような具体的な詳細を伴わずに実施されてよい。他の例では、実施形態の態様を不必要に曖昧にしないように、周知の方法、プロシージャ、コンポーネントおよび回路を詳細に説明していない。
本明細書において本発明の説明に用いられた用語は、特定の実施形態を説明するためのものに過ぎず、本発明を限定する意図はない。本発明の説明および添付の特許請求の範囲において用いられる場合、複数であることが明示されない限り、単数形は複数の場合を含む。また、「および/または」という表現は、本明細書で用いられる場合、関連する列挙された要素の1以上のありとあらゆる可能な組合わせを意味し包含することが理解されるであろう。更に、「含む」「含んでいる」「備える」および/または「備えている」という表現は、本明細書で用いられる場合、記載の特徴、工程、要素および/またはコンポーネントの存在を特定するが、1以上の他の特徴、工程、要素、コンポーネントおよび/またはそれらの群の存在または追加を除外するものではないことが理解されるであろう。
本明細書で用いられる場合、「〜の場合」という表現は、文脈に応じて、記載の前提条件が真である「とき」、真で「あるとすぐに」、または真であると「判定されることに応じて」、または真であると「いう判定に従って」、または真であると「検出されることに応じて」という意味であると解釈されてよい。同様に、「[記載の前提条件が真である]と判定された場合」または「[記載の前提条件が真である]場合」または「[記載の前提条件が真である]とき」という語句は、文脈に応じて、記載の前提条件が真であることが「判定されたとき」または「判定されたことに応じて」または真であるという「判定に従って」または真であると「検出されたとき」または「検出されたことに応じて」という意味であると解釈されてよい。
一部の図面には多数の論理ステージが特定の順序で示されているが、順序に依存しないステージは並べ替えられてよく、また、他のステージの組合わせまたは切離しが行われてもよい。一部の並べ替えまたは他のグループ化を具体的に述べたが、当該技術分野の当業者には他のものも明らかであろう。よって、代替の網羅的な列挙は提示しない。更に、ステージがハードウェア、ファームウェア、ソフトウェアまたそれらの任意の組合わせによって実現可能であることが認識されるべきである。
上記は、説明を目的として、特定の実施形態を参照して記載されている。しかしながら、上記の説明的な議論は網羅的なものではなく、まさにその開示される形態に本発明を限定するものではない。上記の教示に鑑みて、多くの変更および変形が可能である。実施形態は、本発明の原理とその実際的な適用を最もよく説明することで、当該技術分野の当業者が、予定される特定の利用に合うような様々な変更と共に本発明および各種実施形態を最もよく利用できるようにするために、選択され記載された。

Claims (9)

  1. 音声認識システムにおける負荷分散の方法であって、
    1以上のプロセッサと、前記1以上のプロセッサによる実行用に構成される1以上のプログラムを格納するメモリとを有する音声アクセスサーバーにおいて、
    前記音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと1以上の伝送制御プロトコル(transmission control protocol;TCP)ロング接続を確立することを含む、ステップと、
    端末から音声リクエストを受信するステップと、
    所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうちの第1の音声認識サーバーを決定するステップと、
    前記第1の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
    前記第1の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第1の音声認識サーバーに処理のために転送するステップと、
    前記第1の音声認識サーバーが利用不可であるという判定に従って、
    前記複数の音声認識サーバーのうちの他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、
    第2の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第2の音声認識サーバーに処理のために転送するステップと、
    を実行し、
    所定の負荷分散アルゴリズムに従って前記第1の音声認識サーバーを決定する前記ステップは、
    前記音声リクエストから音声IDを取得するステップと、
    前記音声IDに基づいてハッシュ値を生成するステップと、
    前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはN個の音声認識サーバーを含む、ステップと、
    Nを法として前記ハッシュ値に等しい第1の値を計算するステップと、
    前記第1の値が前記第1の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第1の音声認識サーバーを決定するステップと、
    を含み、
    前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの1つであり、
    前記複数の音声リクエストは前記音声IDを搬送し、
    前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される、
    方法。
  2. 各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
    前記音声リクエストの処理が成功したという判定に従って、前記端末に第1のメッセージを返すステップと、
    前記音声リクエストの処理が成功しなかったという判定に従って、
    前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
    前記音声認識サーバーが利用可能であるという判定に従って、
    前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、
    前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
    前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第1のメッセージを返すステップと、
    前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第2のメッセージを返すステップと、
    前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第2のメッセージを返すステップと、
    を更に含む、請求項1に記載の方法。
  3. 前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップ、
    を更に含む、請求項1に記載の方法。
  4. 1以上のプロセッサと、
    メモリと、
    前記メモリに格納され、前記1以上のプロセッサによる実行用に構成される1以上のプログラムと、
    を備えるコンピューターシステムであって、
    前記1以上のプログラムは、
    音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと1以上の伝送制御プロトコル(transmission control protocol;TCP)ロング接続を確立することを含む、ステップと、
    端末から音声リクエストを受信するステップと、
    所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうち第1の音声認識サーバーを決定するステップと、
    前記第1の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
    前記第1の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第1の音声認識サーバーに処理のために転送するステップと、
    前記第1の音声認識サーバーが利用不可であるという判定に従って、
    前記複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、
    第2の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを処理のために前記第2の音声認識サーバーに転送するステップと、
    を実行する命令を含み、
    前記所定の負荷分散アルゴリズムに従って前記第1の音声認識サーバーを決定するステップは、
    前記音声リクエストから音声IDを取得するステップと、
    前記音声IDに基づいてハッシュ値を生成するステップと、
    前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはN個の音声認識サーバーを含む、ステップと、
    Nを法として前記ハッシュ値に等しい第1の値を計算するステップと、
    前記第1の値が前記第1の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第1の音声認識サーバーを決定するステップと、
    を含み、
    前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの1つであり、
    前記複数の音声リクエストは前記音声IDを搬送し、
    前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される、
    コンピューターシステム。
  5. 前記1以上のプログラムは更に、
    各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
    前記音声リクエストの処理が成功したという判定に従って、前記端末に第1のメッセージを返すステップと、
    前記音声リクエストの処理が成功しなかったという判定に従って、
    前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
    前記音声認識サーバーが利用可能であるという判定に従って、
    前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、
    前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
    前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第1のメッセージを返すステップと、
    前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第2のメッセージを返すステップと、
    前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第2のメッセージを返すステップと、
    を実行する命令を含む、請求項に記載のコンピューターシステム。
  6. 前記1以上のプログラムは更に、
    前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップ、
    を実行する命令を含む、請求項に記載のコンピューターシステム。
  7. コンピューターシステムの1以上のプロセッサによる実行用の1以上のプログラムを格納する非一時的なコンピューター可読記憶媒体であって、
    前記1以上のプログラムは、
    音声アクセスサーバーを初期化するステップであって、複数の音声認識サーバーの各音声認識サーバーと1以上の伝送制御プロトコル(transmission control protocol;TCP)ロング接続を確立することを含む、ステップと
    端末から音声リクエストを受信するステップと、
    所定の負荷分散アルゴリズムに従って、前記音声リクエストを処理するために前記複数の音声認識サーバーのうち第1の音声認識サーバーを決定するステップと、
    前記第1の音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
    前記第1の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを前記第1の音声認識サーバーに処理のために転送するステップと、
    前記第1の音声認識サーバーが利用不可であるという判定に従って、
    前記複数の音声認識サーバーのうち他の音声認識サーバーが処理に利用可能であるか否かを、連続して判定するステップと、
    第2の音声認識サーバーが利用可能であるという判定に従って、前記音声リクエストを処理のために前記第2の音声認識サーバーに転送するステップと、
    を実行する命令を含み、
    前記所定の負荷分散アルゴリズムに従って前記第1の音声認識サーバーを決定するステップは、
    前記音声リクエストから音声IDを取得するステップと、
    前記音声IDに基づいてハッシュ値を生成するステップと、
    前記複数の音声認識サーバーの各音声認識サーバーに固有の番号を割り当てるステップであって、前記複数の音声認識サーバーはN個の音声認識サーバーを含む、ステップと、
    Nを法として前記ハッシュ値に等しい第1の値を計算するステップと、
    前記第1の値が前記第1の音声認識サーバーに割り当てられた前記固有の番号に等しいという判定に従って、前記第1の音声認識サーバーを決定するステップと、
    を含み、
    前記音声リクエストは、音声情報ストリームに関連する複数の音声リクエストの1つであり、
    前記複数の音声リクエストは前記音声IDを搬送し、
    前記音声情報ストリームに関連する前記複数の音声リクエストは、前記複数の音声認識サーバーのうちの同じ音声認識サーバーによって処理される、
    非一時的なコンピューター可読記憶媒体。
  8. 前記1以上のプログラムは更に、
    各音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
    前記音声リクエストの処理が成功したという判定に従って、前記端末に第1のメッセージを返すステップと、
    前記音声リクエストの処理が成功しなかったという判定に従って、
    前記音声認識サーバーが処理に利用可能であるか否かを判定するステップと、
    前記音声認識サーバーが利用可能であるという判定に従って、
    前記音声リクエストを前記音声認識サーバーに処理のために転送するステップと、
    前記音声認識サーバーによる前記音声リクエストの処理が成功したか否かを判定するステップと、
    前記音声リクエストの処理が成功したという判定に従って、前記端末に前記第1のメッセージを返すステップと、
    前記音声リクエストの処理が成功しなかったという判定に従って、前記端末に第2のメッセージを返すステップと、
    前記音声認識サーバーが利用不可であるという判定に従って、前記端末に前記第2のメッセージを返すステップと、
    を実行する命令を含む、請求項に記載の非一時的なコンピューター可読記憶媒体。
  9. 前記1以上のプログラムは更に、
    前記複数の音声認識サーバーのうちどの音声認識サーバーが処理に利用不可であったかを記録するステップ、
    を実行する命令を含む、請求項に記載の非一時的なコンピューター可読記憶媒体。
JP2015555556A 2013-02-01 2013-11-28 音声認識システムにおける負荷分散のためのシステムおよび方法 Active JP5951148B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310040812.4A CN103971687B (zh) 2013-02-01 2013-02-01 一种语音识别系统中的负载均衡实现方法和装置
CN201310040812.4 2013-02-01
PCT/CN2013/087998 WO2014117584A1 (en) 2013-02-01 2013-11-28 System and method for load balancing in a speech recognition system

Publications (2)

Publication Number Publication Date
JP2016507079A JP2016507079A (ja) 2016-03-07
JP5951148B2 true JP5951148B2 (ja) 2016-07-13

Family

ID=51241105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015555556A Active JP5951148B2 (ja) 2013-02-01 2013-11-28 音声認識システムにおける負荷分散のためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20140337022A1 (ja)
JP (1) JP5951148B2 (ja)
CN (1) CN103971687B (ja)
CA (1) CA2898783A1 (ja)
SG (1) SG11201505611VA (ja)
WO (1) WO2014117584A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105451091B (zh) * 2015-11-18 2019-09-10 Tcl集团股份有限公司 一种基于并发通讯的即时消息处理方法及系统
JP6568813B2 (ja) * 2016-02-23 2019-08-28 Nttテクノクロス株式会社 情報処理装置、音声認識方法及びプログラム
US20170330565A1 (en) * 2016-05-13 2017-11-16 Bose Corporation Handling Responses to Speech Processing
CN107369450B (zh) * 2017-08-07 2021-03-12 苏州市广播电视总台 收录方法和收录装置
WO2019031870A1 (ko) * 2017-08-09 2019-02-14 엘지전자 주식회사 블루투스 저전력 에너지 기술을 이용하여 음성 인식 서비스를 호출하기 위한 방법 및 장치
CN110958125A (zh) * 2018-09-26 2020-04-03 珠海格力电器股份有限公司 一种家电设备的控制方法及装置
CN109462647A (zh) * 2018-11-12 2019-03-12 平安科技(深圳)有限公司 基于数据分析的资源分配方法、装置和计算机设备
CN109639800B (zh) * 2018-12-14 2022-03-22 深信服科技股份有限公司 一种tcp连接处理方法、装置、设备及存储介质
CN109819057B (zh) * 2019-04-08 2020-09-11 科大讯飞股份有限公司 一种负载均衡方法及系统
CN110718219B (zh) * 2019-09-12 2022-07-22 百度在线网络技术(北京)有限公司 一种语音处理方法、装置、设备和计算机存储介质
CN111756789A (zh) * 2019-12-30 2020-10-09 广州极飞科技有限公司 请求信息的分发方法、装置、存储介质和电子设备
CN112201248B (zh) * 2020-09-28 2024-01-05 杭州九阳小家电有限公司 基于长连接的流式语音识别方法和系统

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3237566B2 (ja) * 1997-04-11 2001-12-10 日本電気株式会社 通話方法、音声送信装置及び音声受信装置
US6119087A (en) * 1998-03-13 2000-09-12 Nuance Communications System architecture for and method of voice processing
JP2002527800A (ja) * 1998-10-02 2002-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 会話ブラウザおよび会話システム
US6243676B1 (en) * 1998-12-23 2001-06-05 Openwave Systems Inc. Searching and retrieving multimedia information
US6792086B1 (en) * 1999-08-24 2004-09-14 Microstrategy, Inc. Voice network access provider system and method
JP3728177B2 (ja) * 2000-05-24 2005-12-21 キヤノン株式会社 音声処理システム、装置、方法及び記憶媒体
US20020087325A1 (en) * 2000-12-29 2002-07-04 Lee Victor Wai Leung Dialogue application computer platform
DE10158583A1 (de) * 2001-11-29 2003-06-12 Philips Intellectual Property Verfahren zum Betrieb eines Barge-In-Dialogsystems
US20030163739A1 (en) * 2002-02-28 2003-08-28 Armington John Phillip Robust multi-factor authentication for secure application environments
JP2003271485A (ja) * 2002-03-12 2003-09-26 Ichi Rei Yon Kk データベースの格納方法
JP3943983B2 (ja) * 2002-04-18 2007-07-11 キヤノン株式会社 音声認識装置及びその方法、プログラム
US20050096910A1 (en) * 2002-12-06 2005-05-05 Watson Kirk L. Formed document templates and related methods and systems for automated sequential insertion of speech recognition results
US7363228B2 (en) * 2003-09-18 2008-04-22 Interactive Intelligence, Inc. Speech recognition system and method
US7542904B2 (en) * 2005-08-19 2009-06-02 Cisco Technology, Inc. System and method for maintaining a speech-recognition grammar
CA2620931A1 (en) * 2005-09-01 2007-03-08 Vishal Dhawan Voice application network platform
US7953603B2 (en) * 2005-12-21 2011-05-31 International Business Machines Corporation Load balancing based upon speech processing specific factors
EP1973037B1 (en) * 2005-12-28 2012-08-29 International Business Machines Corporation Load distribution in client server system
US8019777B2 (en) * 2006-03-16 2011-09-13 Nexify, Inc. Digital content personalization method and system
DE602006019646D1 (de) * 2006-04-27 2011-02-24 Mobiter Dicta Oy Verfahren, system und einrichtung zur umsetzung von sprache
US20070276651A1 (en) * 2006-05-23 2007-11-29 Motorola, Inc. Grammar adaptation through cooperative client and server based speech recognition
US9020966B2 (en) * 2006-07-31 2015-04-28 Ricoh Co., Ltd. Client device for interacting with a mixed media reality recognition system
WO2008066836A1 (en) * 2006-11-28 2008-06-05 Treyex Llc Method and apparatus for translating speech during a call
US8204746B2 (en) * 2007-03-29 2012-06-19 Intellisist, Inc. System and method for providing an automated call center inline architecture
US9129599B2 (en) * 2007-10-18 2015-09-08 Nuance Communications, Inc. Automated tuning of speech recognition parameters
CN101198034B (zh) * 2007-12-29 2010-11-10 北京航空航天大学 一种网络视频监控系统及其数据交换方法
CN101247350A (zh) * 2008-03-13 2008-08-20 华耀环宇科技(北京)有限公司 一种基于ssl数字证书的网络负载均衡方法
US10827066B2 (en) * 2008-08-28 2020-11-03 The Directv Group, Inc. Method and system for ordering content using a voice menu system
JP5396848B2 (ja) * 2008-12-16 2014-01-22 富士通株式会社 データ処理プログラム、サーバ装置およびデータ処理方法
US8416692B2 (en) * 2009-05-28 2013-04-09 Microsoft Corporation Load balancing across layer-2 domains
CN101740031B (zh) * 2010-01-21 2013-01-02 安徽科大讯飞信息科技股份有限公司 一种基于网络动态负载均衡的声纹识别系统及其识别方法
WO2011148594A1 (ja) * 2010-05-26 2011-12-01 日本電気株式会社 音声認識システム、音声取得端末、音声認識分担方法および音声認識プログラム
US9633656B2 (en) * 2010-07-27 2017-04-25 Sony Corporation Device registration process from second display
CN102387169B (zh) * 2010-08-26 2014-07-23 阿里巴巴集团控股有限公司 分布式缓存的对象删除方法、系统及删除服务器
CN101938521B (zh) * 2010-09-10 2012-11-21 华中科技大学 一种VoIP系统中信令的传输方法
CN102546542B (zh) * 2010-12-20 2015-04-29 福建星网视易信息系统有限公司 电子系统及其嵌入式设备和中转设备
US8484031B1 (en) * 2011-01-05 2013-07-09 Interactions Corporation Automated speech recognition proxy system for natural language understanding
US8880107B2 (en) * 2011-01-28 2014-11-04 Protext Mobility, Inc. Systems and methods for monitoring communications
CN102752188A (zh) * 2011-04-21 2012-10-24 北京邮电大学 一种传输控制协议连接迁移方法及系统
US20120331084A1 (en) * 2011-06-24 2012-12-27 Motorola Mobility, Inc. Method and System for Operation of Memory System Having Multiple Storage Devices
JP5544523B2 (ja) * 2011-07-19 2014-07-09 日本電信電話株式会社 分散処理システム、分散処理方法、負荷分散装置、負荷分散方法、及び、負荷分散プログラム
US9601107B2 (en) * 2011-08-19 2017-03-21 Asahi Kasei Kabushiki Kaisha Speech recognition system, recognition dictionary registration system, and acoustic model identifier series generation apparatus
US9715879B2 (en) * 2012-07-02 2017-07-25 Salesforce.Com, Inc. Computer implemented methods and apparatus for selectively interacting with a server to build a local database for speech recognition at a device
CN102760431A (zh) * 2012-07-12 2012-10-31 上海语联信息技术有限公司 智能化的语音识别系统
US9049137B1 (en) * 2012-08-06 2015-06-02 Google Inc. Hash based ECMP load balancing with non-power-of-2 port group sizes
US9911476B2 (en) * 2013-05-14 2018-03-06 Tencent Technology (Shenzhen) Company Limited Systems and methods for voice data processing

Also Published As

Publication number Publication date
JP2016507079A (ja) 2016-03-07
US20140337022A1 (en) 2014-11-13
CN103971687A (zh) 2014-08-06
CA2898783A1 (en) 2014-08-07
SG11201505611VA (en) 2015-08-28
CN103971687B (zh) 2016-06-29
WO2014117584A1 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
JP5951148B2 (ja) 音声認識システムにおける負荷分散のためのシステムおよび方法
US20170279674A1 (en) Method and apparatus for expanding high-availability server cluster
JP2018082497A (ja) 分散型ロード・バランサでの多重パス経路指定
US9917884B2 (en) File transmission method, apparatus, and distributed cluster file system
WO2019169986A1 (zh) 数据处理方法、装置及系统
EP3586494A1 (en) Load balancing in distributed computing systems
CN108933829A (zh) 一种负载均衡方法及装置
CN106254377A (zh) 支持海量长连接的软负载均衡方法及系统
US20120096136A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
JP2016531372A (ja) メモリモジュールアクセス方法および装置
CN110120897A (zh) 链路探测方法、装置、电子设备及机器可读存储介质
CN108123901A (zh) 一种报文传输方法和装置
US11070614B2 (en) Load balancing method and related apparatus
CN108337116A (zh) 消息保序方法及装置
CN104660664B (zh) 用来管理储存系统的方法与装置
CN109120385A (zh) 一种基于数据传输系统的数据传输方法、装置及系统
WO2015069378A1 (en) Hierarchical distribution of control information in a massively scalable network server
US10951732B2 (en) Service processing method and device
WO2016206433A1 (zh) 服务器负载均衡的方法及装置
US20150195357A1 (en) Enhancing active link utilization in serial attached scsi topologies
KR101382177B1 (ko) 동적 메시지 라우팅 시스템 및 방법
JP5783008B2 (ja) ストレージ装置、ストレージシステム、データ更新方法およびデータ管理プログラム
CN114024971A (zh) 业务数据处理方法、Kubernetes集群及介质
CN108156188B (zh) 一种数据有效性检验系统
CN108111431B (zh) 业务数据发送方法、装置、计算设备及计算机可读存储介质

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160607

R150 Certificate of patent or registration of utility model

Ref document number: 5951148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250