(57)【要約】【課題】リアルタイムな音声データ通信を実現する通信システム、制御装置、通信制御方法、およびプログラムを提供する。【解決手段】通信システム１は、音声認識サーバ４０と、ＴＣＰ上で、ＨＴＴＰを用いて、一連の音声データを順次、一つのセッションにつき複数のコネクション３０を利用して送出する音声データ送出部１３４と、複数の音声データをそれぞれ受信する音声データ受信部１０２と、複数のコネクション３０を利用してそれぞれ受信した複数の音声データの中から一つの音声データを選択し、選択された音声データを順に並べ、音声認識サーバ４０に送信し、音声認識サーバ４０により音声認識処理された認識結果を非同期に受信する制御部１１０と、受信した認識結果を、一つのセッションにつき複数のコネクション３０を利用して転送する転送部１１８と、を備える。【選択図】図１
2011139303.tif 000002
【特許請求の範囲】
【請求項１】
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置と、
ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出する送出手段と、
送出された複数の前記音声データをそれぞれ受信する受信手段と、
前記受信手段により複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択し、選択された前記音声データを順に並べ、前記音声データを前記音声処理装置に送信し、前記音声処理装置により音声処理された前記処理結果を非同期に受信する制御手段と、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する転送手段と、を備える通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記音声処理装置は、
音声データを入力して音声認識処理を行い、その認識結果を出力する音声認識部を含み、
前記制御手段は、前記受信手段により複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択し、選択された前記音声データを順に並べ、前記音声データを前記音声認識部にネットワークを介して送信し、前記音声認識部により音声認識処理された前記認識結果を非同期に受信し、
前記転送手段は、前記制御手段により受信した前記認識結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する通信システム。
【請求項３】
請求項１または２に記載の通信システムにおいて、
前記制御手段により受信した前記処理結果に基づいて、所定の処理を行い、その結果を前記処理結果として出力する処理手段をさらに備え、
前記転送手段は、前記処理手段が処理した前記処理結果を入力し、入力した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する通信システム。
【請求項４】
請求項１乃至３いずれかに記載の通信システムにおいて、
前記制御手段は、前記受信手段により一つの前記セッションにつき複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から、一番早く受信した音声データを選択し、前記音声処理装置に送信する通信システム。
【請求項５】
請求項１乃至３いずれかに記載の通信システムにおいて、
前記転送手段により、一つの前記セッションにつき複数の前記コネクションを利用してそれぞれ転送された複数の前記処理結果の中から、一番早く到達した処理結果を選択して受信する処理結果受信手段をさらに備える通信システム。
【請求項６】
請求項５に記載の通信システムにおいて、
前記音声処理を行いたい前記音声データを前記ＨＴＴＰを用いて送出する前記送出手段と、前記音声処理装置から前記処理結果を受信する前記処理結果受信手段とを有するユーザ端末を備える通信システム。
【請求項７】
請求項１乃至６いずれかに記載の通信システムにおいて、
前記送出手段は、
ウェブサーバの１つのＩＰアドレス、またはウェブサーバの１つのＵＲＬ（Uniform Resource Locator）に対して複数の前記コネクションを確立して、前記ＨＴＴＰを用いて通信を行う通信システム。
【請求項８】
請求項１乃至６いずれかに記載の通信システムにおいて、
前記送出手段は、
複数のウェブサーバのＩＰアドレス、またはウェブサーバの複数のＵＲＬにそれぞれ対応する複数の前記コネクションを確立して、前記ＨＴＴＰを用いて通信を行う通信システム。
【請求項９】
請求項１乃至８いずれかに記載の通信システムにおいて、
前記送出手段は、
一連の前記音声データを分割した複数のパケットの中から順に同じパケットを複数の前記コネクションを利用して、前記音声データの複数の前記パケットを送出する通信システム。
【請求項１０】
請求項１乃至８いずれかに記載の通信システムにおいて、
前記送出手段は、
一連の前記音声データを分割した複数のパケットの中から順に前記パケットをずらしながら、複数の前記コネクションを利用して、前記音声データの複数の前記パケットを送出する通信システム。
【請求項１１】
請求項１乃至１０いずれかに記載の通信システムにおいて、
前記受信手段は、
前記送出手段からＨＴＴＰリクエストを受け付け、前記音声データを受信し、
前記転送手段は、
前記受信手段が受け付けた前記ＨＴＴＰリクエストに対する返信として、ＨＴＴＰレスポンスに前記音声処理装置から非同期に受信した前記処理結果を含めて、転送する通信システム。
【請求項１２】
請求項１１に記載の通信システムにおいて、
前記ＨＴＴＰリクエストに対する前記ＨＴＴＰレスポンスに含める前記処理結果が前記音声処理装置から所定時間経過しても戻って来ない場合、前記転送手段に、前記ＨＴＴＰレスポンスにエラー通知情報を含めて、転送させる通知手段をさらに備える通信システム。
【請求項１３】
請求項１乃至１２いずれかに記載の通信システムにおいて、
前記転送手段が前記処理結果を転送したとき、転送が正常に完了したか否かを判断する判断手段と、
前記判断手段により前記処理結果の転送が正常に完了しなかったと判断された場合、前記転送手段に、別の前記セッションを用いて前記処理結果を再送させる再送手段と、をさらに備える通信システム。
【請求項１４】
請求項１乃至１３いずれかに記載の通信システムにおいて、
前記音声データを入力する音声入力手段をさらに備え、
前記送出手段は、前記音声入力手段から入力された一連の前記音声データを送出する通信システム。
【請求項１５】
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置に接続される制御装置の通信制御方法であって、
前記制御装置が、
ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出し、
送出された複数の前記音声データをそれぞれ受信し、
複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択し、
選択された前記音声データを順に並べ、
前記音声データを前記音声処理装置に送信し、
前記音声処理装置により音声処理された前記処理結果を非同期に受信し、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する通信制御方法。
【請求項１６】
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置に、前記音声データをネットワークを介して送信し、前記音声認識装置から出力された前記処理結果を前記ネットワークを介して転送する制御装置を実現するためのコンピュータに、
ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出する手順と、
送出された複数の前記音声データをそれぞれ受信する手順と、
複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択する手順と、
選択された前記音声データを順に並べる手順と、
前記音声データを前記音声処理装置に送信する手順と、
前記音声処理装置により音声処理された前記処理結果を非同期に受信する手順と、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する手順と、を実行させるためのプログラム。
【請求項１７】
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置に接続され、
ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出する送出手段と、
送出された複数の前記音声データをそれぞれ受信する受信手段と、
前記受信手段により複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択し、選択された前記音声データを順に並べ、前記音声データを前記音声処理装置に送信し、前記音声処理装置により音声処理された前記処理結果を非同期に受信する制御手段と、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する転送手段と、を備える制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、制御装置、通信制御方法、およびプログラムに関し、特に、音声認識に関連するデータの通信システム、制御装置、通信制御方法、およびプログラムに関する。
【背景技術】
【０００２】
近年のＳａａＳ（Software as a Service）の発展により、音声認識関連のビジネスにおいても、ＳａａＳ型でのサービス提供が求められている。これにより、ＨＴＴＰ（HyperText Transfer Protocol）上で音声認識をさせたいというニーズが高まってきている。ＨＴＴＰは通常、ＴＣＰ（Transmission Control Protocol）上で実装されているが、ＴＣＰは、コネクション型のプロトコルで、フロー制御や再送制御の機構を備えているため、信頼性が求められる通信に適しているが、データ通信時に遅延が発生するという問題があった。
【０００３】
ＴＣＰによるリアルタイムデータ通信装置の一例が特許文献１に記載されている。特許文献１の通信装置は、クライアントと、サーバと、サーバ内にあるコネクション管理手段とから構成されており、以下のように動作する。ＴＣＰ上でリアルタイム伝送を実現するために、サーバに対し複数のＴＣＰコネクションをはっておき、コネクション管理手段が、複数のコネクションの中から適切なＴＣＰコネクションを選択する。これにより、データのリアルタイム性を確保し、効率のよい伝送を実現することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１２７１１号公報
【特許文献２】特開２００３−２８８２２１号公報
【特許文献３】特開２００７−１６４８０６号公報
【特許文献４】特開２００３−１２５０２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
音声認識では、入力された音声データをシーケンシャルに処理するため、入力データ（パケット）に一部でも遅延が発生すると、そのパケットに含まれる音声データに対応する単語の音声認識処理ができなくなったり、処理が滞ってしまう。このため、認識結果の提示のリアルタイム性が求められているサービスでは、使い勝手が悪いという問題点があった。
【０００６】
上述した特許文献１に記載された通信装置においては、ストリーミングデータの伝送に関するリアルタイム性の向上については、解決しているが、音声ストリーミングデータを送信し、その音声データを音声認識処理した認識結果をさらにリアルタイムに返信することは考慮されていない。すなわち、特許文献１に記載の通信装置では、複数のコネクションの中から所定の帯域を有さないコネクションが検出された場合、他のコネクションを選択してストリーミングデータを送信するが、複数のコネクションのすべてにストリーミングデータを送信してはいない。そして、特許文献１に記載の通信装置では、コネクションの状況が悪化してからコネクションを切り替えるため、一部のストリーミングデータが伝送できない可能性があり、音声データの一部のパケットが欠落した場合にそのパケットを救済することは考慮されていない。このため、音声データのパケットのように、１パケットの欠落が認識結果に大きく影響を及ぼすシステムには適していないという問題点があった。
【０００７】
本発明の目的は、上述した課題であるリアルタイムな音声データ通信を実現する通信システム、制御装置、通信制御方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の通信システムは、
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置と、
ＴＣＰ上で、ＨＴＴＰを用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出する送出手段と、
送出された複数の前記音声データをそれぞれ受信する受信手段と、
前記受信手段により複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択し、選択された前記音声データを順に並べ、前記音声データを前記音声処理装置に送信し、前記音声処理装置により音声処理された前記処理結果を非同期に受信する制御手段と、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する転送手段と、を備える。
【０００９】
本発明の通信制御方法は、
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置に接続される制御装置の通信制御方法であって、
前記制御装置が、
ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出し、
送出された複数の前記音声データをそれぞれ受信し、
複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択し、
選択された前記音声データを順に並べ、
前記音声データを前記音声処理装置に送信し、
前記音声処理装置により音声処理された前記処理結果を非同期に受信し、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する。
【００１０】
本発明のコンピュータプログラムは、
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置に、前記音声データをネットワークを介して送信し、前記音声認識装置から出力された前記処理結果を前記ネットワークを介して転送する制御装置を実現するためのコンピュータに、
ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出する手順と、
送出された複数の前記音声データをそれぞれ受信する手順と、
複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択する手順と、
選択された前記音声データを順に並べる手順と、
前記音声データを前記音声処理装置に送信する手順と、
前記音声処理装置により音声処理された前記処理結果を非同期に受信する手順と、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する手順と、を実行させるためのプログラムである。
【００１１】
本発明の制御装置は、
音声データを入力して音声処理を行い、その処理結果を出力する音声処理装置に接続され、
ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して送出する送出手段と、
送出された複数の前記音声データをそれぞれ受信する受信手段と、
前記受信手段により複数の前記コネクションを利用してそれぞれ受信した複数の前記音声データの中から一つの音声データを選択し、選択された前記音声データを順に並べ、前記音声データを前記音声処理装置に送信し、前記音声処理装置により音声処理された前記処理結果を非同期に受信する制御手段と、
受信した前記処理結果を、一つの前記セッションにつき複数の前記コネクションを利用して転送する転送手段と、を備える。
【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００１３】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００１４】
また、本発明の制御方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の制御方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【００１５】
さらに、本発明の制御方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【発明の効果】
【００１６】
本発明によれば、リアルタイムな音声データ通信を実現する通信システム、制御装置、通信制御方法、およびプログラムが提供される。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に係る通信システムの構成を示すブロック図である。
【図２】本発明の実施の形態に係る通信システムの制御装置の構成を示す機能ブロック図である。
【図３】本発明の実施の形態に係る通信システムの動作の一例を示すフローチャートである。
【図４】本発明の実施の形態に係る通信システムの動作の一例を示すフローチャートである。
【図５】本発明の実施の形態に係る通信システムの構成を示すブロック図である。
【図６】本発明の実施の形態に係る通信システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１９】
（第１の実施の形態）
図１は、本発明の実施の形態に係る通信システム１の構成を示すブロック図である。
本実施形態の通信システムは、たとえば、ネットワーク（不図示）を介してウェブサーバ２０にユーザ端末５０がアクセスし、音声認識サーバ４０に音声データを送信し、音声認識処理を行わせてその結果を取得し、ユーザ端末５０に認識結果を返信し、ユーザ端末５０の表示部（不図示）に表示させるようなサービスをユーザに提供するサービス提供システムにおける通信制御を行うものである。
【００２０】
本実施形態の通信システム１は、少なくとも１つのユーザ端末５０がインターネットまたはイントラネットなどのネットワークを介して、上記サービス提供システムを利用する際にアクセスするウェブサーバ２０と、音声認識サーバ４０と、本システムの通信を制御する制御装置１００と、ユーザ端末５０からウェブサーバ２０に音声データを送信するクライアント１０と、を備える。
【００２１】
本実施形態において、ユーザ端末５０のユーザまたは、少なくとも１つのユーザ端末５０を管理する管理者は、予めサービスプロバイダなどとサービス利用に関する契約を行っており、ユーザ登録などを行い、ユーザアカウントなどを取得しているものとする。本システムにおいて、ユーザ認証などが必要な場合には、ユーザアカウントに対応するパスワードなどの情報も予め登録されているものとする。本実施形態の通信システム１は、たとえば、ＳａａＳ型のサービス提供システムにおいて、音声認識サービスを提供するシステムの通信制御処理を担うものである。
【００２２】
ユーザ端末５０は、たとえば、図示しないＣＰＵ（Central Processing Unit）やメモリ、ハードディスク、および通信装置を備え、キーボード、マウス、またはマイク等の入力装置やディスプレイ、スピーカ、またはプリンタ等の出力装置と接続されるパーソナルコンピュータ、またはそれらに相当する装置により実現することができる。そして、ＣＰＵが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。あるいは、ユーザ端末５０は、携帯電話機、ＰＨＳ（Personal Handyphone System）、ＰＤＡ（Personal Digital Assistants）、あるいは、ゲーム機など、インターネットに接続するインタフェース部と、表示部および操作部などのユーザインタフェース機能部と、マイクなどの音声入力部と、を有する携帯端末であってもよい。ユーザ端末５０は、インターネット上のウェブページにアクセスするためのブラウザ機能（不図示）を有するものとする。
【００２３】
ユーザは、サービス利用に先立ち、必要に応じて、ユーザ端末５０からシステムにログインし、ユーザ認証手続きを行う。認証後、システムのウェブページにブラウザを利用してアクセスし、サービス利用のウェブページをユーザ端末５０の表示部に表示させて、ユーザはそのウェブページを参照することができることとなる。ユーザ端末５０、クライアント１０、ウェブサーバ２０、制御装置１００、および音声認識サーバ４０の間のネットワークは図示されていない。これらのネットワークは、特に限定されず、たとえば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、公衆回線網、または携帯電話網等とすることができ、また、有線および無線通信のいずれであってもよい。ユーザ端末５０が、ウェブサーバ２０にアクセスでき、ウェブサーバ２０が、音声認識サーバ４０と通信でき、さらに、ユーザ端末５０に音声認識結果を返信できればよい。また、後述するように、クライアント１０、ウェブサーバ２０、音声認識サーバ４０、および制御装置１００の少なくとも一部が同一のコンピュータで実現される場合、同一コンピュータで実現される装置間でのネットワークは不要である。
【００２４】
本実施形態では、音声認識サービスをウェブ上でユーザに提供する。ユーザ端末５０のマイクなどを利用して、ユーザが発話した音声データを入力する。入力された音声データは、ウェブサーバ２０にアップロードされ、音声認識サーバ４０により音声認識され、その認識結果がユーザ端末５０に返信される。そして、ユーザ端末５０の表示部に認識結果が表示される。本実施形態では、認識結果は、音声入力から、ほぼリアルタイムにユーザに提示することができる。
【００２５】
本実施形態では、ユーザが発話した音声を音声認識処理し、認識結果をユーザ端末５０に単に提示するシステムを例として説明しているが、これに限定されるものではなく、様々な利用シーンが考えられる。
図５に示すように、ウェブサーバ２０は、アプリケーション実行部２００をさらに備えることができ、アプリケーション実行部２００により、以下に示す様々な処理をユーザ端末５０から受信した音声データに基づいて音声認識サーバ４０が音声認識した認識結果に対し、様々な処理を行い、その結果をユーザ端末５０に返信することができる。また、本実施形態では、ユーザ端末５０から受信した音声データを音声認識サーバ４０により音声認識処理させる構成としたが、これに限定されるものではない。たとえば、ユーザ端末５０から受信した音声データを他の音声処理装置により音声処理させ、その結果を転送部１１８によりに転送する構成とすることもできる。
【００２６】
音声処理とは、たとえば、話者識別処理や、話者認証処理、または、声質変換処理などを含むことができる。これらの音声処理では、処理を施すデータが、少なくとも有音声区間における連続性を有した方が好ましい。そのため、本発明の通信システム１による、一連の音声データの通信処理により、効率よく処理を行うことが可能になる。これらの処理では、たとえば、音声の周波数特徴量を抽出し、所定の音声の音響モデルを用いる。
【００２７】
話者識別処理の例では、所定の話者（たとえば、個人、男女、年齢別、言語別など）の音声の特徴量を予め登録しておき、ユーザ端末５０から受信した音声データの特徴量とマッチング処理などにより話者を識別し、識別結果を返信することができる。たとえば、自動音声筆記機能付きの音声チャットアプリケーションにおいて、テキストチャットと同様に、個々の発言の発言者を特定するといった用途に応用できる。話者認証処理の例では、ユーザ毎の音声の特徴量を予め登録しておき、ユーザ端末５０から受信した音声データの特徴量とマッチング処理などにより話者ユーザを特定することで、ユーザ認証処理を話者の音声データで行うことができ、認識結果を返信することができる。声質変換処理の例では、所定のボイスチェンジャー処理をユーザ端末５０から受信した音声データに施し、声質が変換された音声データを返信することができる。
【００２８】
また、ユーザ端末５０から受信した音声データに基づいて音声認識サーバ４０が音声認識した認識結果を用いる処理の例として、音声メモ、留守録、通話記録、通話モニタリング、自動翻訳などの音声そのものを蓄積、転送、または利用するシステムにおいて、音声認識技術を利用してそれらの書き起こし、要約、音声全文検索、音声インデキシング、または自動翻訳等を行う処理等が考えられる。たとえば、音声データからの書き起こしを行う例では、ウェブサーバ２０からユーザ端末５０には、ユーザ端末５０から受信した音声データに基づいて音声認識サーバ４０が音声認識した認識結果のテキストデータを返信することができる。
【００２９】
また、要約を行う例では、ユーザ端末５０から受信した音声データに基づいて音声認識サーバ４０が音声認識した認識結果に対して、ウェブサーバ２０にて自動要約処理を施し、その結果をテキストデータとして返信することができる。全文検索を行う例では、ユーザ端末５０から受信した音声データに基づいて音声認識サーバ４０が音声認識した認識結果をキーワードとして、所定のデータベース内のコンテンツやデータを検索処理したり、あるいは、指定されたキーワードを用いて、リアルタイムに得られる認識結果に対して検索処理を行い、その結果を返信することができる。前者の場合、認識結果としては、検索されたコンテンツやデータファイルの格納アドレスやファイル名等とすることができる。後者の場合、認識結果としては、ヒットしたキーワードや、音声データ内のヒット位置（たとえば、時刻情報）、ヒット件数、キーワードを含むフレーズ等とすることができる。
【００３０】
音声インデキシングを行う例では、ユーザ端末５０から受信した音声データに基づいて音声認識サーバ４０が音声認識した認識結果から、特定の話題や、場面、話者などを見つけ、頭出し位置を抽出し、その位置情報（たとえば、音声データの時刻情報）などを処理結果として返信することができる。
翻訳を行う例では、ユーザ端末５０から受信した音声データに基づいて音声認識サーバ４０が音声認識した認識結果を所定の他言語に翻訳処理を行い、その結果をテキストデータとして返信することができる。
【００３１】
また、音声認識サーバ４０が音声認識した認識結果を、意味解釈や自動アノテーション（タグ付け）などを行う、後続するシステムが処理を行うのに適した形に音声の内容を整形するものが考えられる。意味解釈を行う例では、音声認識サーバ４０が音声認識した認識結果が、たとえば、「明日のお昼の３時に」であった場合に、本日が２００９年１２月２１日であれば、「2009/12/22 15:00」のように機械操作容易な形に変換し、その結果を返信することができる。タグ付けを行う例では、音声認識サーバ４０が音声認識した認識結果が、たとえば、「明日の打ち合わせ」であった場合に、「明日（日時）の打ち合わせ（イベント）」などに変換することができる。なお、意味解釈とアノテーション処理は、両方の処理を合わせて行うこともできる。
【００３２】
さらに、音声コマンド、ゲームやｅラーニングなどの双方向コンテンツの操作、音声による検索クエリ入力など、システムへの指示、操作、またはデータ入力に、音声認識サーバ４０が音声認識した認識結果を用いることも考えられる。これらのシステムでは、認識結果に基づいて、ユーザ端末５０のユーザの指示、操作、またはデータ入力を受け付け、たとえば、ウェブサーバ２０で提供されるシステムが、受け付けた指示、操作、またはデータ入力を解釈した結果や、実行可否判断を行った結果、または、処理を実行した結果をユーザ端末５０に返信することができる。
【００３３】
なお、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。以下の説明において、通信システム１は、一つのユーザ端末５０のみが音声認識処理を要求しているものとし、実際はユーザ端末５０がウェブサーバ２０にアクセスしているが、ここでは、ユーザ端末５０の動作は本発明の本質と関係ないので、詳細な説明を省略する。
【００３４】
また、本実施形態の通信システム１の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
【００３５】
本実施形態の通信システム１は、図２に示すように、音声データを入力して音声処理（音声認識処理）を行い、その処理結果（認識結果）を出力する音声処理装置（音声認識サーバ４０）と、ＴＣＰ（Transmission Control Protocol）上で、ＨＴＴＰ（HyperText Transfer Protocol）を用いて、一連の音声データを順次、一つのセッションにつき複数のコネクション３０ａ、３０ｂ、．．．、３０ｃ（以下、特に区別する必要がない場合は、コネクション３０と示す。）を利用して並列的に同時にネットワーク（不図示）を介して多重送出する音声データ送出部１３４、送出された複数の音声データをそれぞれ受信する音声データ受信部１０２と、音声データ受信部１０２により複数のコネクション３０を利用してそれぞれ受信した複数の音声データの中から一つの音声データを選択し、選択された音声データを順に並べ、音声認識サーバ４０にネットワーク（不図示）を介して送信し、音声認識サーバ４０により音声認識処理された認識結果を非同期に受信する制御部１１０と、受信した認識結果を、一つのセッションにつき複数のコネクション３０を利用して並列的に同時にネットワークを介して多重転送する転送部１１８と、を備える。
【００３６】
具体的には、本実施形態の制御装置１００は、図２に示すように、音声データ受信部１０２と、バッファ１０４と、制御部１１０と、送信部１１２と、認識結果受信部１１４と、バッファ１１６と、転送部１１８と、を備える。さらに、クライアント１０は、音声受付部１３０と、バッファ１３２と、音声データ送出部１３４と、処理結果受信部１４０と、バッファ１４２と、結果出力部１４４と、を備える。
【００３７】
ウェブサーバ２０、音声認識サーバ４０、および制御装置１００は、たとえば、図示しないＣＰＵやメモリ、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続されるサーバコンピュータやパーソナルコンピュータ、またはそれらに相当する装置により実現することができる。そして、ＣＰＵが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
【００３８】
なお、図１に示す本実施形態では、クライアント１０、ウェブサーバ２０、および音声認識サーバ４０は、それぞれ１つのみ備える構成としているが、これに限定されない。複数のクライアント１０、複数のウェブサーバ２０、および複数の音声認識サーバ４０を含むことができる。
【００３９】
また、以下に説明するクライアント１０の各機能は、ユーザ端末５０のプラグインとして、ウェブサーバ２０から各ユーザ端末５０に提供することができる。たとえば、ユーザ端末５０のウェブブラウザで利用可能なＡｃｔｉｖｅＸ（登録商標）コントロールなどにより実現させることができる。
【００４０】
クライアント１０において、音声受付部１３０は、ユーザ端末５０のマイクなどの音声入力部から入力された音声データを受け付ける。バッファ１３２は、音声受付部１３０が受け付けた音声データを一時的に格納する。音声データ送出部１３４は、音声受付部１３０が受け付けた音声データをバッファ１３２から読み出し、ウェブサーバ２０に送出する。音声データ送出部１３４は、ＴＣＰ上で、ＨＴＴＰを用いて、一連の音声ストリームデータを順次、一つのセッションにつき複数のコネクションを利用して並列的に同時にネットワークを介してウェブサーバ２０に多重送出する。本実施形態において、音声ストリームデータ（以下、音声データと呼ぶ）は、ＴＣＰ上で、ＨＴＴＰを用いてパケット通信により、順次送信される。
【００４１】
本実施形態において、音声データ送出部１３４は、一連の音声データを分割した複数のパケットの中から順に同じパケットを複数のコネクション３０（図１）を利用して、音声データの複数のパケットをウェブサーバ２０に多重送出する。
【００４２】
ここでは、セッションとは、音声データのパケットをクライアント１０（ユーザ端末５０）からウェブサーバ２０に送信するＨＴＴＰリクエストから、認識結果のパケットをウェブサーバ２０からクライアント１０（ユーザ端末５０）に返信するＨＴＴＰレスポンスまでの一連の通信手順を指すものとする。なお、本実施形態において、クライアント１０は、１つのＩＰアドレスのウェブサーバ２０にアクセスし、クライアント１０とウェブサーバ２０の間で、ＨＴＴＰによる多重通信を行う。ここで、複数のコネクション３０（図１）は、ウェブサーバ２０の複数の通信ポート、複数のＵＲＬ（Uniform Resource Locator）、または、複数のプロセスなどで確立することができる。
【００４３】
本実施形態において、たとえば、１パケットは０．５秒間程度分の音声データを送信できる。クライアント１０およびウェブサーバ２０間で送受信されるパケットの構成は、一般的なＨＴＴＰパケットと同様な情報に加え、本発明に特有な情報を含むことができる。音声データ送信時、たとえば、このパケットが音声データ全体のどの部分なのかを示す音声データ位置情報と、をクライアント１０からウェブサーバ２０に発信されるＨＴＴＰリクエストのヘッダに含むことができる。音声データ位置情報は、一意に音声データパケットを識別できる情報があればよく、たとえば、音声データ先頭からの相対時刻情報や、絶対時刻情報も例としてＮＴＰ（Network Time Protocol）のタイムスタンプ等を利用したりできる。あるいは、位置情報は、ブロック長が固定の場合、何個目の音声ブロックであるかを示すように各パケットに順に振られたシリアル番号等、とすることができる。
【００４４】
また、本実施形態のように、複数のユーザ端末５０から、複数の音声データが送信される場合、音声データ識別子をさらに含むことができる。この音声データ識別子は、たとえば、ユーザ端末５０のＩＰアドレスや、ユーザＩＤなどでもよい。
【００４５】
さらに、ＨＴＴＰリクエストのパケットヘッダには、音声終端情報、音声コーデック情報、音声認識オプション情報、および誤り訂正符号（Error Correcting Code：ＥＣＣ）等を含むこともできる。音声終端情報は、たとえば、音声認識すべき一連の音声データの最後を示す情報であり、これ以降、音声データが存在しないことを示す。例として、終端フラグ、たとえば、少なくとも１ビット必要であるが、他の情報と合わせて１オクテット（８ビット）となる情報として保持させると、効率がよい。
【００４６】
音声コーデック情報は、たとえば、通信システム１において、ユーザ端末５０またはクライアント１０、およびウェブサーバ２０、制御装置１００、または音声認識サーバ４０において、複数種類のコーデックを利用可能な場合に必要となる。コーデック処理は、ユーザ端末５０またはクライアント１０、あるいは、ウェブサーバ２０、制御装置１００、または音声認識サーバ４０のいずれで行ってもよい。
【００４７】
たとえば、複数の音声認識サーバ４０毎に異なるコーデック（たとえば、ＰＣＭ（Pulse Code Modulation）用、ＦＯＭＡ（登録商標）（Freedom Of Mobile multimedia Access）用、およびＳｋｙｐｅ（登録商標）用など）を準備し、いずれの音声認識サーバ４０に受信した音声データを認識処理させるか、受信した音声データが処理されたコーデックの種類に応じて、選択することができる。
【００４８】
たとえば、クライアント１０から、ウェブサーバ２０に、送信側で利用可能なコーデックの情報を送信し、ウェブサーバ２０、制御装置１００、または音声認識サーバ４０がそのコーデック情報の中から、利用するコーデックを選択し、選択したコーデックの情報をクライアント１０に返信する。クライアント１０は、ウェブサーバ２０、制御装置１００、または音声認識サーバ４０が選択したコーデックの情報に基づいて、以後、音声データを選択されたコーデックを利用して圧縮して送信する。ウェブサーバ２０、制御装置１００、または音声認識サーバ４０では、選択したコーデックを用いて、受信した音声データを伸張する。なお、コーデック情報は、ユーザ端末５０毎に、選択することもできる。この場合、ウェブサーバ２０は、ユーザ端末５０毎に選択したコーデックを後述する設定記憶部１０６に登録すればよい。
【００４９】
いずれのコーデックを利用するか、クライアント１０側とウェブサーバ２０側とで、情報を交換して同じコーデックを利用して、音声データを圧縮および伸張できるようにすることができる。たとえば、クライアント１０側またはウェブサーバ２０側の何れが先にコーデックの種類を通知してもよいし、何れが先に利用するコーデックを決定してもよい。決定権は、何れが持っていてもよいし、何れか一方に固定的に決めてもよい。たとえば、常にユーザ端末５０を優先するなどしてもよい。または、コーデックの確定前にパケットを駄目元で送信してもよいし、事前に音声データを含まないパケットにコーデック情報を載せて情報交換して整合を取ってもよい。あるいは、システムで事前に決定していて固定であれば、情報を交換する必要はない。
【００５０】
さらに、音声データのサンプリングレートの情報や、オーディオデバイスの情報をパケットヘッダに含めて、クライアント１０からウェブサーバ２０に送信してもよい。また、音声ブロック長が、選択式または可変式の場合、これらの情報をパケットヘッダに含めてもよい。
【００５１】
また、音声認識オプション情報は、たとえば、話者の性別などの声の情報、すなわち、音響モデルを選択するための情報や、発話内容のトピックスやドメインに関するヒント情報など、音声認識辞書や言語モデルを選択するための情報、あるいは、音声認識辞書および言語モデルの指定情報を、パケットヘッダに含めて、クライアント１０からウェブサーバ２０に送信してもよい。
【００５２】
処理結果受信部１４０は、ウェブサーバ２０から一つのセッションにつき複数のコネクションを利用して並列的に同時にネットワークを介して多重転送された複数の認証結果を受信する。処理結果受信部１４０は、一つのセッションにつき複数のコネクションを利用してそれぞれ多重転送された複数の処理結果（認証結果）の中から、一番早く到達した認証結果を選択して受信する。バッファ１４２は、処理結果受信部１４０が受信した認証結果を一時的に格納する。結果出力部１４４は、処理結果受信部１４０が受信した認証結果をユーザ端末５０に出力する。ユーザ端末５０では、結果出力部１４４から受け取った認証結果を、たとえば、表示部などに表示することができる。このとき、処理結果受信部１４０は、クライアント１０に到達した順に認識結果を受信するため、本来の順番でない可能性がある。そこで、処理結果受信部１４０にて再度、順番に並び替えられ、出力される。このとき、認識結果は、後述する認識結果識別情報に基づいて並べ替えることができる。
【００５３】
また、制御装置１００において、音声データ受信部１０２は、ウェブサーバ２０がクライアント１０を介して各ユーザ端末５０から送信された音声データを受信する。
【００５４】
本実施形態において、音声データ受信部１０２は、ＴＣＰ上で、ＨＴＴＰを用いてクライアント１０からウェブサーバ２０に送信される一連の音声データを順次、一つのセッションにつき複数のコネクション３０ａ、３０ｂ、．．．、３０ｃ（図１）（以下、特に区別する必要がない場合は、コネクション３０と示す。）を利用して、並列的に同時にクライアント１０からウェブサーバ２０に多重に送信させ、ウェブサーバ２０を介して複数の音声データをそれぞれ受信する。
【００５５】
本実施形態において、音声データ受信部１０２は、複数のコネクション３０（図１）を利用して、クライアント１０（ユーザ端末５０）から送出された一連の音声データを分割した複数のパケットの中の同じパケットを複数、ウェブサーバ２０を介して受信する。
【００５６】
バッファ１０４は、音声データ受信部１０２が受信した音声データを一時的に記憶する。設定記憶部１０６は、各種設定情報を記憶する。たとえば、上述した音声データのコーデック種類を示す情報や、ユーザＩＤ、クライアント１０やウェブサーバ２０のＩＰアドレス、音声認識サーバ４０の音声認識オプション設定などの情報を記憶する。
【００５７】
制御部１１０は、制御装置１００の各ユニットを制御する。本実施形態において、制御部１１０は、一つのセッションにつき複数のコネクション３０（図１）を利用してそれぞれ受信した複数の音声データの中から、一番早く音声データ受信部１０２が受信した音声データを選択する。さらに、制御部１１０は、選択された音声データを所定のコーデックで伸張した後、順に並べ、後述する送信部１１２に、音声認識サーバ４０へネットワーク（不図示）を介して送信させるよう指示する。
【００５８】
送信部１１２は、制御部１１０の指示に従い、音声データ受信部１０２が受信した音声データをバッファ１０４から読み出し、音声認識サーバ４０に送信する。なお、送信部１１２は、音声データとともに、音声認識オプションの指定情報を音声認識サーバ４０に送信し、音声認識サーバ４０に指定された音声認識オプションで音声認識処理を行わせる。また、通信システム１が、複数の音声認識サーバ４０を備えている場合、音声認識処理を複数の音声認識サーバ４０に割り振り、処理を分散させることができる。
【００５９】
音声認識サーバ４０は、制御装置１００の送信部１１２から送信された音声データに、指定された音声認識オプションに基づいて音声認識処理を施し、制御装置１００に認識結果を送信する。音声認識サーバ４０の音声認識処理は、特に、本発明の本質に関わらないので、詳細な説明は省略するが、本実施形態では、音声認識サーバ４０から出力される認識結果は非同期に制御装置１００に返信される。すなわち、音声認識サーバ４０は、所定の発話区間毎に音声認識処理を行うが、発話区間によって認識処理にかかる時間が異なる場合があり、先に転送したはずの音声データに対する認識結果の方が、後から転送した音声データに対する認識結果が先に早く制御装置１００に届く可能性もある。特に、複数の音声認識サーバ４０を用いて音声認識処理を行った場合、この傾向は顕著になる。
【００６０】
制御装置１００において、認識結果受信部１１４は、音声認識サーバ４０が音声認識処理した認識結果を非同期に受信する。認識結果は、たとえば、テキストデータである。バッファ１１６は、認識結果受信部１１４が受信した認識結果を一時的に記憶する。転送部１１８は、認識結果受信部１１４が非同期に受信した認識結果をバッファ１１６から読み出し、ウェブサーバ２０にタイミングよく送信する。具体的には、転送部１１８は、バッファ１１６に格納されている認識結果を順に並べ替え、そのとき、音声データ受信部１０２が受信しているＨＴＴＰリクエストに対するレスポンスに順次載せて、ウェブサーバ２０を介してクライアント１０に多重転送させる。
【００６１】
すなわち、本実施形態において、音声データ受信部１０２は、クライアント１０からのＨＴＴＰリクエストを受け付け、音声データのパケットを多重に受信するとともに、転送部１１８は、音声データ受信部１０２が受け付けたＨＴＴＰリクエストに対する返信として、ＨＴＴＰレスポンスに音声認識サーバ４０から非同期に受信した認識結果を含めて、多重転送する。
【００６２】
本実施形態において、認識結果データ送信時、たとえば、このパケットがどの認識結果データなのかを示す認識結果識別情報をウェブサーバ２０からクライアント１０に発信されるＨＴＴＰレスポンスのヘッダに含むことができる。
【００６３】
本実施形態では、この認識結果識別情報は、一意に認識結果データパケットを識別できる情報があればよく、たとえば、認識結果データが対応する音声データの先頭からの相対時刻情報や、認識結果データの絶対時刻情報もＮＴＰのタイムスタンプ等を利用したりできる。あるいは、認識結果識別情報として、認識結果データに順にシリアル番号を振り識別子としてもよい。
【００６４】
さらに、本実施形態では、ＨＴＴＰレスポンスのパケットヘッダには、欠落認識結果データ識別情報や、音声認識完了情報を含んでもよい。欠落認識結果データ識別情報は、たとえば、所定の時間内に期待された認識結果データが音声認識サーバ４０から制御装置１００に到達しない場合に、音声認識サーバ４０に対して再送依頼を行うための情報であり、前回受信した認識結果識別情報などを含めて欠落した認識結果データを示して再送を要求する。また、音声データの未着のパケットが存在するが、前後の状況により、無音である可能性が高いと判断された場合には、再送要求を行わないようにすることもできる。なお、上記認識結果識別情報がシリアル番号の場合には、特定のシリアル番号の認識結果のみがなかなか届かないような状況が考えられる。
【００６５】
音声認識完了情報は、音声認識処理が完了したことを示す情報であり、これ以降、音声認識結果が存在しないことを示す。例として、完了フラグ、たとえば、少なくとも１ビット必要であるが、他の情報と合わせて１オクテット（８ビット）となる情報として保持させると、効率がよい。あるいは、サーバステータス情報の一部としての完了ステートを、後述する各種ステータスとして送信してもよい。
【００６６】
さらに、上述したＨＴＴＰリクエストのパケットヘッダと同様に、複数のユーザ端末５０から、複数の音声データが送信される場合、ＨＴＴＰリクエストで通知された音声データ識別子に対応する認識結果を返信するとき、対応する音声データ識別子を、ＨＴＴＰレスポンスにさらに含むことができる。この音声データ識別子は、たとえば、ユーザ端末５０のＩＰアドレスや、ユーザＩＤなどでもよい。
【００６７】
さらに、ＨＴＴＰレスポンスのパケットヘッダには、音声認識サーバステータス情報や、音声ステータス情報、欠落音声ブロック識別情報などを含むことができる。音声認識サーバステータス情報は、たとえば、音声認識サーバの処理状況、例として、音声区間検出中、認識処理中、認識完了、エラーなどを含むことができる。さらに、音声認識サーバで既に処理済みの音声ブロックの識別情報を含むことができる。
【００６８】
音声ステータス情報は、たとえば、音声認識サーバ４０で処理中の音声データに対する最新の情報、例として、声の大きさ（「小さい」または「大きい」）、速度（「早口」または「遅い」）、雑音が大きい、発話が不明瞭、音量（ボリュームメータ）等の情報を含むことができる。
【００６９】
欠落音声ブロック識別情報は、所定の時間内に期待された音声ブロックがクライアント１０からウェブサーバ２０に到達しない場合、クライアント１０に対して再送依頼を行うための情報であり、前回受信した音声データ識別情報などを含めて欠落した音声データを示して再送を要求する。
【００７０】
クライアント１０からウェブサーバ２０、またはウェブサーバ２０からクライアント１０に送信されるデータに含まれる上記の各種情報は、ＨＴＴＰリクエストやＨＴＴＰレスポンスのヘッダに含むことができる。あるいは、所定のフォーマット、たとえば、ＸＭＬ（eXtensible Markup Language）やＪＳＯＮ（JavaScript（登録商標） Object Notation）等に従って、ＨＴＴＰのコンテンツボディに記載してもよい。音声データや認識結果データは、ＨＴＴＰのコンテンツボディとすることができる。
【００７１】
また、上述したコーデック情報や音声認識オプション情報、および誤り訂正符号をＨＴＴＰレスポンスに含むこともできる。コーデック情報は、クライアント１０側とウェブサーバ２０側で、事前に情報を交換して同じコーデックを利用して、音声データを圧縮および伸張できるようにするためである。また、音声認識オプション情報は、クライアント１０側とウェブサーバ２０側で、事前に情報を交換して、音声認識処理のオプションをクライアント１０から指定したり、ウェブサーバ２０から通知したりするものである。
【００７２】
また、本実施形態において、転送部１１８が認識結果を転送したとき、転送が正常に完了したか否かを判断する判断部（不図示）と、判断部により認識結果の転送が正常に完了しなかったと判断された場合、転送部１１８に、別のセッションを用いて認識結果を再送させる再送部（不図示）と、をさらに含むことができきる。
【００７３】
たとえば、上記音声データ送出部１３４と音声データ受信部１０２間および転送部１１８と処理結果受信部１４０間におけるパケット送受信処理時に、タイムアウト処理を行うことができる。タイムアウト処理は、適宜、様々な手順毎に行うことができる。たとえば、ＨＴＴＰリクエストに対するレスポンスまでの時間、音声データの受信完了までの時間、音声認識の処理時間、認識結果の転送完了までの時間などを監視し、所定時間以上経過した場合、それぞれ適切な処理を行うことで、エラー発生時や通信速度の低下などによる影響を最小限にとどめることができる。たとえば、一定時間内に音声データの受信や認識結果の送信が完了しなかった場合、制御部１１０は、送信部１１２に、エラー通知情報をＨＴＴＰレスポンスのヘッダに含めて通信状況をクライアント１０に通知させるとともに、送信部１１２または転送部１１８に、そのパケットを別のＨＴＴＰセッションで再度送受信させるなどの処理を行わせることができる。
【００７４】
また、認識結果が音声認識サーバ４０から得られなかった場合、制御部１１０は、転送部１１８に、エラー通知情報をＨＴＴＰレスポンスのヘッダに含めてクライアント１０に向けて返信させる。なお、クライアント１０は、音声データを最初に送信した後、制御装置１００から認識結果データが返信されるまでの間、所定の時間レスポンスを待機してもよい。また、クライアント１０は、認識処理の対象となる音声データを送信し終わった後も、認識処理が完了したことを示す認識完了情報を受信するまで、所定の期間、繰り返しＨＴＴＰリクエストを送信し続ける。
【００７５】
本実施の形態の制御装置（クライアント１０および制御装置１００）は、コンピュータプログラムに対応する各種の処理動作をＣＰＵが実行することにより、前述のような各種ユニットが各種機能として実現される。なお、上述したように、本実施形態の制御装置（クライアント１０および制御装置１００）の各ユニットの各種機能は、少なくとも部分的に、クライアント１０、ウェブサーバ２０、または音声認識サーバ４０のいずれかで実現させることができる。また、クライアント１０、ウェブサーバ２０、音声認識サーバ４０、および制御装置１００のうち少なくとも一部の機能は、同一のコンピュータにより実現させてもよい。いずれの装置でこれらの機能のいずれを実現するかは、特に限定されるものではなく、適宜、変更可能である。
【００７６】
本実施形態のコンピュータプログラムは、制御装置（クライアント１０および制御装置１００）を実現させるためのコンピュータに、ＴＣＰ上で、ＨＴＴＰを用いて、一連の音声データを順次、一つのセッションにつき複数のコネクションを利用して並列的に同時にネットワークを介して多重送出する手順と、送出された複数の音声データをそれぞれ受信する手順と、複数のコネクションを利用してそれぞれ受信した複数の音声データの中から一つの音声データを選択する手順と、選択された音声データを順に並べる手順と、音声データを音声認識サーバ４０にネットワークを介して送信する手順と、音声認識サーバ４０により音声認識処理された認識結果を非同期に受信する手順と、受信した認識結果を、一つのセッションにつき複数のコネクションを利用して並列的に同時にネットワークを介して多重転送する手順と、を実行させるように記述されている。
【００７７】
なお、本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記憶媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。コンピュータプログラムは、クライアント１０、ウェブサーバ２０、および制御装置１００などを実現するためのコンピュータ上で部分的に実行させることができ、これらの手順の各コンピュータへの割り当ては、特に限定されず、プログラム設計時に適宜変更可能であり、また、本発明の本質に関わらないので、詳細な説明は省略する。
【００７８】
上述のような構成において、本実施の形態の制御装置１００による通信制御方法を以下に説明する。図３および図４は、本実施形態の通信システム１の動作の一例を示すフローチャートである。以下、図１乃至図４を用いて説明する。
【００７９】
本実施形態の通信制御方法は、ＴＣＰ上で、ＨＴＴＰを用いてクライアント１０（図１）から送信された一連の音声データを順次、一つのセッションにつき複数のコネクション３０（図１）を利用して並列的に同時にネットワークを介して多重送出し（図３のステップＳ１０４）、送出された複数の音声データを音声データ受信部１０２（図２）がそれぞれ受信し（図４のステップＳ１２２）、制御部１１０（図２）が、複数のコネクション３０を利用してそれぞれ受信した複数の音声データの中から一つの音声データを選択し（図４のステップＳ１２４）、選択された音声データを順に並べ（図４のステップＳ１２６）、送信部１１２（図２）が、音声データを音声認識サーバ４０（図２）に送信し（図４のステップＳ１２８）、認識結果受信部１１４（図２）が音声認識サーバ４０により音声認識処理された認識結果を非同期に受信し（図４のステップＳ１３０）、制御部１１０（図２）が、転送部１１８に、受信した認識結果を、一つのセッションにつき複数のコネクション３０を利用して並列的に同時にネットワークを介して多重転送する（図４のステップＳ１３２）。
【００８０】
図３に示すように、本実施形態のクライアント１０において、音声受付部１３０が、ユーザ端末５０にて入力された音声を受け付け（ステップＳ１０２）、バッファ１３２に一時的に格納する。そして、音声データ送出部１３４が、ＴＣＰ上で、ＨＴＴＰを用いて複数のコネクション３０を利用して、並列的に同時に音声データを多重に送出する（ステップＳ１０４）。そして、処理結果受信部１４０が、ＨＴＴＰレスポンスを待つ（ステップＳ１０６のＮＯかつステップＳ１０８のＮＯ）。所定時間以内にレスポンスがなかった場合、処理結果受信部１４０は、タイムアウトを検出し（ステップＳ１０６のＮＯかつステップＳ１０８のＹＥＳ）、音声データ送出部１３４に再送指示を行い（ステップＳ１１０）、ステップＳ１０４に戻る。
【００８１】
一方、レスポンスを受信した場合（ステップＳ１０６のＹＥＳ）、処理結果受信部１４０が、一のセッションにつき複数のコネクション３０を利用して、並列的に同時にウェブサーバ２０を介して制御装置１００から転送された認識結果を多重に受信し（ステップＳ１１２）、バッファ１４２に一時的に格納する。そして、処理結果受信部１４０は、複数の認識結果の中から一つを選択し、結果出力部１４４に出力させる（ステップＳ１１４）。本実施形態では、処理結果受信部１４０は、複数の認識結果の中から一番早く到達した処理結果を選択する。
【００８２】
また、図４に示すように、本実施形態の制御装置１００において、音声データ受信部１０２が、クライアント１０から送出された複数の音声データを、ウェブサーバ２０を介して音声データ受信部１０２がそれぞれ受信する（ステップＳ１２２）。そして、制御部１１０が、複数のコネクション３０を利用してそれぞれ受信した複数の音声データの中から一つの音声データを選択し（ステップＳ１２４）、選択された音声データを順に並べる（ステップＳ１２６）。そして、送信部１１２が、音声データを音声認識サーバ４０に送信し（ステップＳ１２８）、認識結果受信部１１４が音声認識サーバ４０により音声認識処理された認識結果を非同期に受信する（ステップＳ１３０）。そして、制御部１１０が、転送部１１８に、受信した認識結果を、一つのセッションにつき複数のコネクション３０を利用して並列的に同時にネットワークを介して多重転送する（ステップＳ１３２）。
このようにして、制御装置１００から転送された認識結果は、上述したように、タイミングよくクライアント１０によって受信されることとなる。
【００８３】
以上説明したように、本発明の実施の形態の通信システム１によれば、複数のコネクションを利用してデータを同時に並列的に送信することで、あるコネクションで通信エラーや通信速度の低下やパケットのつまりなどが発生しても、他のコネクションで送信されたデータを利用できるので、単一コネクションによる音声データの通信で発生する再送処理が不要となり、通信遅延を回避でき、リアルタイムな効率のよいデータ通信を実現可能にすることができる。
【００８４】
特に、音声認識をネット越しに行い、認識結果をユーザに提示するような音声認識サービス提供システムでは、入力された音声データをシーケンシャルに処理する必要があるため、音声データのパケットは、一つでも到達が遅延したり、抜けがあると音声認識処理が行えない。そのため、確実に全てのパケットを順番に受信して処理する必要がある。本発明では、複数のコネクションでデータを並列的に同時に送信させるので、データの通信遅延を回避でき、かつ音声認識結果の精度も向上する。その結果、精度のよい音声認識結果を遅滞なくユーザに提示させることが可能となり、レスポンス性が向上し、ユーザが満足のいく品質のサービスを提供することができることとなる。
【００８５】
（第２の実施の形態）
図６は、本実施形態の通信システムの構成の一例を示すブロック図である。
本実施形態の通信システムは、上記実施の形態とは、クライアント１０からウェブサーバ２０に異なる複数の通信経路上でそれぞれ複数のコネクションを確立して、ＨＴＴＰ通信を行う点で相違する。ユーザ端末５０、クライアント１０、制御装置１００、および音声認識サーバ４０は、図１および図２の上記実施形態の構成と同様である。
【００８６】
本実施形態の通信システムの制御装置１００において、音声データ受信部１０２（図２）は、複数のウェブサーバ２２ａ、２２ｂ、．．．、２２ｃ（以下、特に区別が必要ない場合は、単にウェブサーバ２２と呼ぶ。）の異なるＩＰアドレスにそれぞれ対応する複数のコネクション３０ａ、３０ｂ、．．．、３０ｃを確立して、ＨＴＴＰを用いて多重通信を行う。
【００８７】
このように構成された本実施形態の通信システム１によれば、上記実施形態と同様な効果を奏するとともに、異なるＩＰアドレスのウェブサーバ２０にアクセスするので、異なる通信経路上に各コネクション３０を確立させることができるので、通信経路の通信状況が悪化しても、別の通信経路上のコネクション３０を利用してパケットを送受信できるので、パケットを送受信できる可能性がより高くなる。
【００８８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００８９】
たとえば、上記実施形態では、音声データ送出部１３４（図２）は、一連の音声データを分割した複数のパケットの中から順に同じパケットを複数のコネクション３０を利用して多重送出する構成としたが、これに限定されない。たとえば、他の実施形態において、音声データ送出部は、一連の音声データを分割した複数のパケットの中から順にパケットをずらしながら、複数のコネクション３０を利用して、ウェブサーバ２０に多重送出することができる。
【００９０】
この構成によれば、一部のパケットに遅延が生じても、他のコネクションまたは他のセクションにより、受信した他のパケットを利用することができるので、音声認識処理のリアルタイム性を確保できることとなる。特に、音声データのように一つのパケットが抜けただけでも、単語にすると１〜３語程度が認識できなくなってしまうため、遅延パケットを他のパケットで救済できると、音声認識精度が向上するとともに、処理が滞ることもなくより効果的である。
【００９１】
さらに、認識結果データをクライアント１０に送信する場合も同様な処理を行える。すなわち、他の実施形態において、図２の転送部１１８は、認識結果データを分割した複数のパケットの中から順にパケットをずらしながら、複数のコネクション３０を利用して送信させ、ウェブサーバ２０を介してクライアント１０に認識結果データの複数のパケットを受信させることができる。
【００９２】
この構成によれば、たとえば、ノイズなどにより伝送路に障害が発生した場合などに、同時期に同じパケットを多重に送信する形態に比較して、複数のコネクションにおいて同じパケットが欠落する可能性が低くなり、ノイズ障害によって欠落したパケットを他のコネクションで時間をずらして送信されたパケットで救済できる可能性が高くなるという効果がある。
【００９３】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
【符号の説明】
【００９４】
１  通信システム
１０  クライアント
２０  ウェブサーバ
２２  ウェブサーバ
３０  コネクション
４０  音声認識サーバ
５０  ユーザ端末
１００  制御装置
１０２  音声データ受信部
１０４  バッファ
１０６  設定記憶部
１１０  制御部
１１２  送信部
１１４  認識結果受信部
１１６  バッファ
１１８  転送部
１３０  音声受付部
１３２  バッファ
１３４  音声データ送出部
１４０  処理結果受信部
１４２  バッファ
１４４  結果出力部
２００  アプリケーション実行部
【図１】
2011139303.tif 000003
【図２】
2011139303.tif 000004
【図３】
2011139303.tif 000005
【図４】
2011139303.tif 000006
【図５】
2011139303.tif 000007
【図６】
2011139303.tif 000008