(57)【要約】【課題】データの送信が困難な状況に対応可能な通信システムを提供すること。【解決手段】送信された送信データを処理する第一の情報処理装置５０と、前記第一の情報処理装置に送信データを送信する第二の情報処理装置１０とを有する通信システム１００であって、送信データを取得するデータ取得手段１２と、前記データ取得手段が取得した送信データを記憶装置に記憶させる記憶手段１６と、前記第一の情報処理装置と前記第二の情報処理装置との通信状態に応じて、記憶装置における送信データの記憶先を制御する制御手段１４と、前記記憶装置に記憶された送信データを前記第一の情報処理装置に送信する送信手段１１ｂと、を有する。【選択図】図１
2018049080.tif 000002
【特許請求の範囲】
【請求項１】
送信された送信データを処理する第一の情報処理装置と、前記第一の情報処理装置に送信データを送信する第二の情報処理装置とを有する通信システムであって、
送信データを取得するデータ取得手段と、
前記データ取得手段が取得した送信データを記憶装置に記憶させる記憶手段と、
前記第一の情報処理装置と前記第二の情報処理装置との通信状態に応じて、記憶装置における送信データの記憶先を制御する制御手段と、
前記記憶装置に記憶された送信データを前記第一の情報処理装置に送信する送信手段と、を有する通信システム。
【請求項２】
前記送信データは音声データであり、
前記制御手段は、前記第一の情報処理装置と前記第二の情報処理装置との通信が接続されている場合と、前記第一の情報処理装置と前記第二の情報処理装置との通信が切断されている場合とで、音声データの記憶先を制御する請求項１に記載の通信システム。
【請求項３】
前記記憶手段は、前記第一の情報処理装置と前記第二の情報処理装置との通信が接続されている場合、音声データを前記記憶装置の第一の領域に記憶し、
前記送信手段は、前記第一の領域に記憶されている音声データを前記第一の情報処理装置に送信し、
前記記憶手段は、前記第一の情報処理装置と前記第二の情報処理装置との通信が切断されている場合、音声データを前記記憶装置の第二の領域に記憶し、
前記第一の情報処理装置と前記第二の情報処理装置との通信が接続された場合、前記送信手段は、前記第二の領域に記憶されている音声データを先に前記第一の情報処理装置に送信してから前記第一の領域の音声データを前記第一の情報処理装置に送信する請求項２に記載の通信システム。
【請求項４】
前記制御手段は、前記第一の情報処理装置と前記第二の情報処理装置との通信が切断された場合、前記第一の領域の音声データを前記第二の領域に移動させ、
前記記憶手段は、前記第一の領域の音声データが移動された前記第二の領域に音声データを記憶させる請求項３に記載の通信システム。
【請求項５】
前記記憶手段は、前記第一の情報処理装置と前記第二の情報処理装置との通信が接続されている場合、音声データを前記記憶装置の第一の領域に記憶し、
前記第一の領域に記憶されている音声データを前記第一の情報処理装置に送信する送信手段を有し、
前記記憶手段は、前記第一の情報処理装置と前記第二の情報処理装置との通信が切断されている場合、音声データをファイルに格納し、
前記第一の情報処理装置と前記第二の情報処理装置との通信が接続された場合、前記送信手段は、前記ファイルに格納されている音声データを先に前記第一の情報処理装置に送信してから前記第一の領域の音声データを前記第一の情報処理装置に送信する請求項２に記載の通信システム。
【請求項６】
前記制御手段は、前記第一の情報処理装置と前記第二の情報処理装置との通信が切断された場合、前記第一の領域の音声データをファイルに格納させ、
前記記憶手段は、前記第一の領域の音声データが格納されたファイルに音声データを追加して格納する請求項５に記載の通信システム。
【請求項７】
前記第一の情報処理装置と前記第二の情報処理装置との通信が切断されている場合、前記制御手段は、前記第二の領域の空き容量が閾値未満か否かを判断し、閾値未満でない場合は、前記記憶手段の前記第二の領域に音声データを記憶させ、
閾値未満である場合、音声データをファイルに格納させ、
前記第一の情報処理装置と前記第二の情報処理装置との通信が接続された場合、前記送信手段は、前記第二の領域に記憶されている音声データを前記第一の情報処理装置に送信し、次に、ファイルの音声データを前記第一の情報処理装置に送信し、次に、前記第一の領域の音声データを前記第一の情報処理装置に送信する請求項３又は４に記載の通信システム。
【請求項８】
前記記憶手段は、前記送信手段が前記第一の情報処理装置に送信する音声データの容量を測定し、
前記容量が閾値より多くなった場合、前記第一の情報処理装置と前記第二の情報処理装置との通信を切断する通信制御手段を有する請求項１〜７のいずれか１項に記載の通信システム。
【請求項９】
第一の情報処理装置に送信データを送信する情報処理装置であって、
送信データを取得するデータ取得手段と、
前記データ取得手段が取得した送信データを記憶装置に記憶させる記憶手段と、
前記第一の情報処理装置と前記情報処理装置との通信状態に応じて、記憶装置における送信データの記憶先を制御する制御手段と、
前記記憶装置に記憶された送信データを前記第一の情報処理装置に送信する送信手段と、を有する情報処理装置。
【請求項１０】
第一の情報処理装置に送信データを送信する情報処理装置を、
送信データを取得するデータ取得手段と、
前記データ取得手段が取得した送信データを記憶装置に記憶させる記憶手段と、
前記第一の情報処理装置と前記情報処理装置との通信状態に応じて、記憶装置における送信データの記憶先を制御する制御手段と、
前記記憶装置に記憶された送信データを前記第一の情報処理装置に送信する送信手段、として機能させるためのプログラム。
【請求項１１】
送信された送信データを処理する第一の情報処理装置と、前記第一の情報処理装置に送信データを送信する第二の情報処理装置とを有する通信システムが行う通信方法であって、
データ取得手段が、送信データを取得するステップと、
記憶手段が、前記データ取得手段が取得した送信データを記憶装置に記憶させるステップと、
制御手段が、前記第一の情報処理装置と前記第二の情報処理装置との通信状態に応じて、記憶装置における送信データの記憶先を制御するステップと、
送信手段が、前記記憶装置に記憶された送信データを前記第一の情報処理装置に送信するステップと、を有する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、情報処理装置、プログラム及び通信方法に関する。
【背景技術】
【０００２】
人が発声する音声をマイクから取得し、音声認識を行うことでテキストデータに変換する音声認識技術が知られている。音声認識を行う装置やシステムは音声認識することで、例えば会議の議事録を作成したり、電話の内容を記録したりすることができる。テキストデータに変換されていればテキストデータを検索することなどが可能になりテキストデータの活用の幅が広がる。
【０００３】
例えば、他拠点間のビデオ会議の発言内容を音声認識する技術が考案されている（例えば、特許文献１参照。）。特許文献１には、音声ストリームから変換されたテキストデータを字幕として映像に挿入するビデオ会議システムが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、音声認識が困難な状態が考慮されていないという問題がある。例えば、音声認識を行うサーバがネットワーク上にある場合、認識の対象となる音声データがネットワークを介してサーバまで送信されなければならない。しかしながら、何らか原因で通信が切断される場合がある。この場合、通信が切断されてから通信が回復するまで、ユーザが発声した音声はサーバまで送信されないので、サーバは音声をテキストデータに変換できず、記録されないテキストデータが生じてしまう。このような場合、例えばビデオ会議であれば会議を中断することを余儀なくされる。
【０００５】
本発明は、データの送信が困難な状況に対応可能な通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、送信された送信データを処理する第一の情報処理装置と、前記第一の情報処理装置に送信データを送信する第二の情報処理装置とを有する通信システムであって、送信データを取得するデータ取得手段と、前記データ取得手段が取得した送信データを記憶装置に記憶させる記憶手段と、前記第一の情報処理装置と前記第二の情報処理装置との通信状態に応じて、記憶装置における送信データの記憶先を制御する制御手段と、前記記憶装置に記憶された送信データを前記第一の情報処理装置に送信する送信手段と、を有する。
【発明の効果】
【０００７】
データの送信が困難な状況に対応可能な通信システムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】音声データの送信方法を説明する図の一例である。
【図２】音声認識システムの概略構成図の一例である。
【図３】情報処理装置の概略的なハードウェア構成図の一例である。
【図４】情報処理装置の機能をブロック状に示す機能ブロック図の一例である。
【図５】記憶部に構築される通信用データバッファと退避用データバッファを模式的に説明する図の一例である。
【図６】通信が切断されない場合の音声認識システムの全体的な動作を示すシーケンス図の一例である。
【図７】情報処理装置が通信制限容量に基づいて通信を切断する場合の音声認識システムの動作手順を示すシーケンス図の一例である。
【図８】情報処理装置が通信制限容量に基づいて通信を切断する場合の情報処理装置１０の動作手順を示すフローチャート図の一例である。
【図９】通信用データバッファと退避用データバッファへ格納される音声データを模式的に説明する図の一例である。
【図１０】通信が切断された場合に情報処理装置が行う処理を示すシーケンス図の一例である。
【図１１】セッションが切断されてから再接続する過程の音声データのテキスト化のタイミングを説明する図の一例である。
【図１２】情報処理装置が通信制限容量に基づいて通信を切断する場合の情報処理装置の動作手順を示すフローチャート図の一例である。
【図１３】情報処理装置が通信制限容量に基づいて通信を切断する場合の情報処理装置の動作手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施する音声認識システムと音声認識システムが行う音声認識方法について、図面を参照しながら実施例を挙げて説明する。
【実施例１】
【００１０】
＜音声認識システムの動作の概略＞
図１は、音声データの送信方法を説明する図の一例である。まず、図１（ａ）は情報処理装置１０とクラウドサーバ５０が通信している状態を示す。通信状態の場合、音声入力部１２が入力を受け付けた音声データは通信用データバッファ１９ｂに格納され、通信部１１はキュー方式（先入れ先出し）で通信用データバッファ１９ｂに格納された音声データをクラウドサーバ５０に送信する。
【００１１】
図１（ｂ）は情報処理装置１０とクラウドサーバ５０の通信が切断された状態を示す。通信が切断されている場合、音声入力部１２が入力を受け付けた音声データは退避用データバッファ１９ｃに格納される。しかし、通信部１１は通信が再接続されるまで音声データを送信できない。
【００１２】
図１（ｃ）は情報処理装置１０とクラウドサーバ５０の通信が再接続された状態を示す。通信状態の場合、音声入力部１２が入力を受け付けた音声データは通信用データバッファ１９ｂに格納される。しかし、通信が再接続された場合、通信部１１は退避用データバッファ１９ｃに格納された音声データを先にキュー方式でクラウドサーバ５０に送信する。退避用データバッファ１９ｃに格納された音声データがなくなると、通信用データバッファ１９ｂに格納された音声データをキュー方式でクラウドサーバ５０に送信する。
【００１３】
このように、本実施形態では、通信用データバッファ１９ｂと退避用データバッファ１９ｃを用意し、通信が接続状態か切断状態かで音声データの格納先を切り替えるので、通信の切断中もユーザは会話を継続でき、通信の切断中の音声データもテキストデータに変換できる。また、通信の再接続後は、退避用データバッファ１９ｃの音声データを優先して送信するので、時系列に音声データをテキストデータに変換できる。
【００１４】
＜用語について＞
特許請求の範囲の送信データとは、情報処理装置１０がクラウドサーバ５０に送信するデータをいう。本実施形態では一例として音声データという用語で説明する。
【００１５】
通信状態とは、主に、情報処理装置１０とクラウドサーバ５０とが通信している状態と、通信していない状態をいう。また、通信しているかどうかと、後述するセッションが接続しているかどうかを区別しないで使用する場合がある。
【００１６】
また、記憶先とは、音声データの記憶場所や記憶態様などをいう。記憶態様の一例として、ストリーミング形式で音声データを記憶する態様、又は、ファイル形式で記憶する態様がある。さらに、圧縮する場合としない場合、暗号化する場合としない場合なども記憶態様の１つである。
【００１７】
＜システム構成例＞
図２は、本実施形態の音声認識システム１００の概略構成図の一例である。音声認識システム１００は、ネットワークＮを介して通信する情報処理装置１０とクラウドサーバ５０を有する。
【００１８】
クラウドサーバ５０は、音声をテキストデータに変換するサービスを行う情報処理装置１０の一例である。クラウドサーバ５０はクラウドベースの人口知能を利用しているため（つまり、多くの人が使う単語を学習しているため）、専門的な単語や造語、又は、使用頻度が極めて少ない単語を認識できない、又は認識しにくい。
【００１９】
また、クラウドサーバ５０のクラウドとは、サーバがクラウドコンピューティングに対応していることを意図している。クラウドとは特定ハードウェア資源を意識しないでネットワーク上のリソースを利用する利用形態である。この場合、クラウドサーバ５０は、１つの筐体に収納されていたりひとまとまりの装置として備えられていたりする必要はなく、負荷に応じてハード的なリソースが動的に接続・切断されることで構成される。また、一台の情報処理装置１０の中の仮想化環境に構築されていたり、複数台の情報処理装置１０に跨って構築されたりしてもよい。
【００２０】
また、本実施形態ではクラウドサーバ５０はインターネット上に存在するものとして説明するが、ネットワークに接続されていればどこに存在してもよい。オンプレミスに存在してもよい。また、クラウドサーバ５０はリソースの所在が明らかになっている通常のサーバであっても本実施形態に適用可能である。
【００２１】
情報処理装置１０は、例えばＰＣ（Personal Computer）であるが情報処理装置１０としての機能を有する装置であればよい。ＰＣの他、情報処理装置１０は例えば電子黒板、テレビ会議端末、ＭＦＰ（Multi-Function Peripheral）、プロジェクタ、デジタルサイネージなどでもよい。また、ＰＣの他、スマートフォン、タブレット端末、ゲーム機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ、携帯電話、ウェアラブルＰＣ（Personal Computer）などでもよい。
【００２２】
ネットワークＮは、情報処理装置１０が設置されている施設などに構築されているＬＡＮ、ＬＡＮをインターネットに接続するプロバイダのプロバイダネットワーク、及び、回線事業者が提供する回線等により構築されている。ネットワークＮが複数のＬＡＮを有する場合、ネットワークＮはＷＡＮやインターネットと呼ばれる。ネットワークＮは有線又は無線のどちらで構築されてもよく、また、有線と無線が組み合わされていてもよい。また、情報処理装置１０が３Ｇ、ＬＴＥ、４Ｇなどで直接、公衆回線網に接続する場合は、ＬＡＮを介さずにプロバイダネットワークに接続することができる。
【００２３】
音声認識システム１００による音声のテキストは一般的に以下のように行われる。
（１）ユーザが発声した音声データが情報処理装置１０からネットワーク経由でクラウドサーバ５０に送信される。なお、音声データの形式は問わない。ストリームデータ（データの生成と送信がリアルタイムに行われるデータ。ストリーミングデータと呼ばれる場合もある。）でもよいし、ストリームではないファイルなどの固まりのデータでもよい。
（２）クラウドサーバ５０は音声データに音声認識処理を行いテキストデータに変換する。認識の際、クラウドサーバ５０は単語ごとに認識の信頼度を算出する。認識の信頼度は、認識結果をどれだけ「信頼」してよいかを表す尺度である（１に近いほど信頼度が高い）。また、変換候補が複数ある場合は、１つの単語に複数の候補とそれぞれの信頼度が作成される。
（３）信頼度を含む認識結果データ８がネットワーク経由で情報処理装置１０に送信される。
（４）情報処理装置１０は、認識結果データ８を表示する。例えば、認識結果データ８を信頼度に応じて色分けするなどして表示する。ユーザが単語をマウスなどのポインティングデバイスで押下すると、情報処理装置１０は他の変換候補を表示したり、単語ごとの信頼度を表示したりする。
【００２４】
＜ハードウェア構成＞
図３は、情報処理装置１０の概略的なハードウェア構成図の一例である。情報処理装置１０は、ＣＰＵ２０１と、ＣＰＵ２０１が使用するデータの高速アクセスを可能とするメモリ２０２とを備える。ＣＰＵ２０１及びメモリ２０２は、システム・バス２０３を介して、情報処理装置１０の他のデバイス又はドライバ、例えば、グラフィックス・ドライバ２０４及びネットワーク・ドライバ（ＮＩＣ）２０５へと接続されている。
【００２５】
グラフィックス・ドライバ２０４は、バスを介してＬＣＤ（ディスプレイ装置）２０６に接続されて、ＣＰＵ２０１による処理結果をモニタする。また、ネットワーク・ドライバ２０５は、トランスポート層レベル及び物理層レベルで情報処理装置１０をネットワークＮへと接続して、クラウドサーバ５０とのセッションを確立させている。
【００２６】
システム・バス２０３には、さらにＩ／Ｏバス・ブリッジ２０７が接続されている。Ｉ／Ｏバス・ブリッジ２０７の下流側には、ＰＣＩなどのＩ／Ｏバス２０８を介して、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、シリアルＡＴＡ、ＳＣＳＩ、ＵＳＢなどにより、ＨＤＤ（ハードディスクドライブ）２０９などの記憶装置が接続されている。ＨＤＤ２０９は情報処理装置１０の全体を制御するプログラム２０９ｐを記憶している。ＨＤＤ２０９はＳＳＤ（Solid State Drive）でもよい。
【００２７】
また、Ｉ／Ｏバス２０８には、ＵＳＢなどのバスを介して、キーボード及びマウス（ポインティング・デバイスと呼ばれる）などの入力装置２１０が接続され、システム管理者などのオペレータによる入力及び指令を受け付けている。
【００２８】
また、Ｉ／Ｏバス２０８には、マイクＩ／Ｆなどを介してマイク２１１が接続されている。マイク２１１は周囲の音声を集音して電気信号に変換し、所定のサンプリング周波数で電気信号を取り込むことでデジタルデータに変更する。
【００２９】
なお、クラウドサーバ５０のハードウェア構成はマイク２１１やＬＣＤ２０６が不要となるなどの違いがあるが、本実施形態の説明に際しては支障がないものとする。また、クラウドサーバ５０のハードウェア構成は、クラウドサーバ５０が有すべき要素を示すものであり、１つの筐体に収納されていたりひとまとまりの装置として備えられていたりする必要はない。
【００３０】
＜機能について＞
図４（ａ）は、情報処理装置１０の機能をブロック状に示す機能ブロック図の一例である。情報処理装置１０は、通信部１１、音声入力部１２、表示部１３、制御部１４、表示内容判断部１５、音声データ監視部１６、及び、ファイル変換部１７を有する。これら各機能は、図３に示したＨＤＤ２０９からメモリ２０２に展開されたプログラム２０９ｐをＣＰＵ２０１が実行することにより実現されている。なお、このプログラム２０９ｐは、プログラム配信用のサーバから配信されてもよいし、ＵＳＢメモリや光記憶媒体などの可搬性の記憶媒体に記憶された状態で配布されてもよい。
【００３１】
また、情報処理装置１０は、図３に示したＨＤＤ２０９及びメモリ２０２の少なくとも一方に実現される記憶部１９を有する。記憶部１９には、テキスト変換結果ＤＢ１９ａ（Ｄａｔａ Ｂａｓｅ）、通信用データバッファ１９ｂ、及び退避用データバッファ１９ｃが構築される。以下、これらについて説明する。
【００３２】
【表１】
2018049080.tif 000003
表１は、テキスト変換結果ＤＢ１９ａに記憶される認識結果データ８を模式的に示す。テキスト変換結果ＤＢ１９ａは認識結果データ８が記憶されるデータベースである。表１の認識結果データ８は、「機構」という音声が入力された場合の認識結果を示す。本実施形態のクラウドサーバ５０からは１つの単語に対し、複数のテキスト化候補と対応する信頼度が送信される。信頼度は 0.0 〜 1.0 の範囲の値を取り、数値が1.0 に近いほど正しい認識結果である可能性が高い。より具体的には、１つの認識対象の単語に対しテキスト化候補となる単語との類似度などが算出され0.0 〜 1.0 の数値で表されている。
【００３３】
図５は、記憶部１９に構築される通信用データバッファ１９ｂと退避用データバッファ１９ｃを模式的に説明する図の一例である。通信用データバッファ１９ｂと退避用データバッファ１９ｃには音声データの場所を特定するためのアドレスが付されており、このアドレスの所定範囲が通信用データバッファ１９ｂと退避用データバッファ１９ｃに割り当てられている。
【００３４】
なお、通信用データバッファ１９ｂ及び退避用データバッファ１９ｃは連続した領域で確保されていなくてもよい。また、通信用データバッファ１９ｂ及び退避用データバッファ１９ｃのサイズは予め決定されているが、通信用データバッファ１９ｂのサイズを情報処理装置１０がクラウドサーバ５０との通信速度に応じて増減したり、退避用データバッファ１９ｃのサイズを通信の切断中の時間に応じて情報処理装置１０が増減したりしてもよい。これにより、通信速度に応じて通信用データバッファ１９ｂのサイズを最適化したり、切断中の時間に応じて退避用データバッファ１９ｃのサイズを最適化したりすることができる。
【００３５】
なお、音声データは通信用データバッファ１９ｂ及び退避用データバッファ１９ｃのそれぞれアドレスの小さい方から順に記憶される。
【００３６】
（情報処理装置１０の機能）
図４に戻って説明する。音声入力部１２は、図３に示したＣＰＵ２０１がプログラム２０９ｐを実行しマイク２１１を制御すること等により実現され、テキストデータへの変換の対象となる音声データの入力を受け付ける。なお、マイク２１１から音声データが入力される場合、音声データはストリームデータと呼ばれる。マイク２１１が使用されない場合、音声データはファイルとして記憶されている。音声入力部１２はこのファイルをＨＤＤ２０９等から読み出すことで取得してもよい。音声データが格納されるファイルとしては、ＷＡＶＥファイル、ＡＩＦＦファイル、ＭＰ３ファイル、ＡＡＣファイル等があるがこれらには限られない。
【００３７】
通信部１１は、図３に示したＣＰＵ２０１がプログラム２０９ｐを実行しネットワーク・ドライバ２０５を制御すること等により実現される。通信部１１はさらに、セッション接続部１１ａ、音声送信部１１ｂ、及び認識結果受信部１１ｃを有する。セッション接続部１１ａは、クラウドサーバ５０とセッションの接続・切断を行う。セッションを切断したり又は切断されたりした場合、再度、セッションを接続する。セッションの再接続は、切断後、速やかに（可能な限り早く）行われる。例えば、音声データの送信にＨＴＴＰやＨＴＴＰｓの通信プロトコルが用いられる場合、セッションとしてＴＣＰコネクションを接続するためのスリーウェイハンドチシェークが知られている。また、ＨＴＴＰｓなどで使用されるＴＳＬ（Transport Layer Security）による通信では、ＴＳＬで使う暗号の仕様についてクラウドサーバ５０とやりとりし合意することでセッションが接続される。また、ＷｅｂＳｏｃｋｅｔという通信プロトコルで通信する場合、セッションの接続にＨＴＴＰ通信が利用される。具体的にはＨＴＴＰのUpgradeヘッダフィールドにＷｅｂＳｏｃｋｅｔを使用することの同意を得ることでクラウドサーバ５０とセッションを接続する。
【００３８】
音声送信部１１ｂは、セッション接続部１１ａが接続したセッションを使用するWebSocket、ＨＴＴＰ、ＨＴＴＰｓなどの通信プロトコルで音声入力部１２が入力を受け付けた音声データをクラウドサーバ５０に送信する。クラウドサーバ５０のＩＰアドレスは予め既知であるとする。認識結果受信部１１ｃは、音声データがテキストデータに変換された認識結果データ８をクラウドサーバ５０から例えばＨＴＭＬデータで受信する。
【００３９】
制御部１４は、図３に示したＣＰＵ２０１がプログラム２０９ｐを実行すること等により実現され、ユーザインタフェースからの入力の受付やそれに応じて情報処理装置１０の制御を行う。また、通信用データバッファ１９ｂと退避用データバッファ１９ｃのどちらに音声データを格納するか、及び、どちらから音声データをクラウドサーバ５０に送信するかを制御する。
【００４０】
表示内容判断部１５は、図３に示したＣＰＵ２０１がプログラム２０９ｐを実行すること等により実現され、ＬＣＤ２０６に表示する認識結果データ８を決定する。すなわち、テキスト変換結果ＤＢ１９ａに記憶されている認識結果データ８のうちＬＣＤ２０６にまだ表示されていない認識結果データ８をＬＣＤ２０６に表示すると決定する。
【００４１】
音声データ監視部１６は、図３に示したＣＰＵ２０１がプログラム２０９ｐを実行すること等により実現され、送信予定（通信用データバッファ１９ｂの）の音声データがクラウドサーバ５０の通信制限容量内であるか否かを判断する。
【００４２】
表示部１３は、図３に示したＣＰＵ２０１がプログラム２０９ｐを実行しグラフィックス・ドライバ２０４を制御すること等により実現される。表示部１３は、テキスト変換結果ＤＢ１９ａの認識結果データ８をＬＣＤ２０６に表示する。
【００４３】
ファイル変換部１７は、図３に示したＣＰＵ２０１がプログラム２０９ｐを実行すること等により実現され、音声データを音声データ格納用のファイル（例えばＷＡＶＥファイル）に変換する。
【００４４】
<<クラウドサーバ５０の機能について>>
図４（ｂ）はクラウドサーバ５０の機能をブロック状に示す機能ブロック図の一例である。クラウドサーバ５０は、前処理部３１、特徴抽出部３２、及び識別演算部３３を有し、識別演算部３３はさらに音響モデル３４と言語モデル３５を使用する。これら各機能は、図３に示したＨＤＤ２０９からメモリ２０２に展開されたプログラム２０９ｐをＣＰＵ２０１が実行することにより実現されている。
【００４５】
前処理部３１は音声データに特徴抽出しやすくするための処理を施す。例えば、音声データを決まった段階に量子化する。また、前処理部３１は音声データを周波数スペクトルに変換して雑音に相当する周波数部分を除去するなどの処理を行う。特徴抽出部３２は音声データからパターンの認識に役立つ情報を取り出す。音声データは連続データなので例えば２０ミリ秒などの所定時間ごとに音声データを区切って、この所定時間ごとに特徴を抽出する。音声データの場合、例えば、周波数スペクトルに変換してフォルマント又はＭＦＣＣ（Mel Frequency Cepstrum Coefficient）を抽出する。フォルマントやＭＦＣＣの求め方は公知なので説明を省略する。これにより、音声データから数十次元の特徴ベクトルが得られる。
【００４６】
識別演算部３３は音響モデル３４と言語モデル３５を使って、音声データをテキストデータに変換する。音響モデル３４は音声の波形とその時の音声のテキストデータを紐付けたものである。音声の波形は一例としてトライフォンと呼ばれる３つの音素が組み合わされた組音素で表される。言語モデル３５はテキストデータから作成された単語と単語のつながり方を確率で表現したデータである。たとえば、「特許を」に続いて「取る」「取得する」「放棄する」などの単語がそれぞれどのくらいの確率で出現するかというデータを有する。識別演算部３３は入力された音声データの特徴ベクトルと音響データを比較しトライフォンを推定する。これを連続して行い言語モデル３５を参照しながら最も出現確率が高い単語を推定していく。音声データが音響データとどのくらい類似しているか、及び、言語データの出現確率によっては単語が一意に定まらないため、入力された音声データに対し複数の単語が推定される場合も多い。また、出現確率に基づいて信頼度が算出される。
【００４７】
なお、ここで説明した音声認識方法は一例に過ぎず、クラウドサーバ５０はどのような方法で音声認識してもよい。例えば、クラウドサーバ５０に特有の方法で音声認識してもよい。
【００４８】
＜クラウドサーバ５０の通信容量の制限について＞
クラウドサーバ５０の通信容量の制限について説明する。音声認識を行う一部のクラウドサーバ５０では、通信容量に制限を行う場合がある。通信容量の制限とは１回のセッションで情報処理装置１０がクラウドサーバ５０に送信できる通信容量に上限があることをいう。例えば、セッションを接続してから１００Ｍバイトの音声データがクラウドサーバ５０に送信されると、クラウドサーバ５０が機械的にセッションを切断する。すなわち、通信が切断される。
【００４９】
クラウドサーバ５０から任意に切断されても情報処理装置１０が再度、セッションを接続することで音声認識を再開できるが、切断の直後にユーザが発声した音声データが認識の対象とならない可能性がある。
【００５０】
そこで、音声データの通信容量を測定しておき、通信容量が通信制限容量に到達した時、到達する直前、又は、クラウドサーバ５０からの切断予告などに応じて、情報処理装置１０がセッションを切断し、その際の音声データを退避用データバッファ１９ｃに待避しておくことが有効になる。
【００５１】
なお、クラウドサーバ５０によっては通信容量でなく時間で制限を設ける場合もあるが、この場合、情報処理装置１０はセッションを接続してからの時間を測定しておけばよい。
【００５２】
＜動作手順＞
図６は、通信が切断されない場合の音声認識システムの全体的な動作を示すシーケンス図の一例である。
【００５３】
S1：ユーザは情報処理装置１０のＬＣＤ２０６に表示されたソフトキーやハードキーを押下して音声認識を開始するための操作を行う。どのように音声認識を開始するかは情報処理装置１０が具体的にどのような装置であるかによって異なる。例えばＰＣの場合、クラウドサーバ５０から送信されたＨＴＭＬデータを解析して表示した画面のスタートボタンを押下する。また、電子黒板やテレビ会議端末の場合、他拠点の情報処理装置１０とセッションが接続することで音声認識がスタートしてよい。
【００５４】
音声認識が開始されるとユーザは、テキストデータに変換したい音声をマイク２１１が集音できる態様で発声する。上記のように、ユーザが音声のファイルを入力してもよい。
【００５５】
S2：音声入力部１２は音声データをサンプリングする処理を繰り返し、アナログの音声をデジタルの音声データに変換して、音声データ監視部１６に送出する。
【００５６】
S3：音声データ監視部１６はセッションが接続されてから切断されるまで音声データの通信容量を累積する。図６では通信容量が通信制限容量未満であるとする。通信容量が通信制限容量未満なので、音声データ監視部１６は、記憶部１９の通信用データバッファ１９ｂに音声データを記憶させる。なお、音声データ監視部１６は、通信用データバッファ１９ｂと退避用データバッファ１９ｃの音声データの末尾のアドレス（ポインタ）を管理しており、音声データの末尾に音声データを追加していく。
【００５７】
S4：制御部１４は記憶部１９の通信用データバッファ１９ｂと退避用データバッファ１９ｃを監視しており、新たな音声データが記憶されたことを検出する。これにより、音声データの末尾のアドレスを管理できる。制御部１４が音声データ監視部１６から音声データの末尾のアドレスを取得してもよい。
【００５８】
S5：制御部１４は、通信用データバッファ１９ｂに格納されている音声データの末尾のアドレスを音声送信部１１ｂに通知する。
【００５９】
S6：音声送信部１１ｂは通信用データバッファ１９ｂの先頭から音声データの末尾のアドレスのうち送信した音声データの末尾（送信データ末尾）を管理している。したがって、音声送信部１１ｂはクラウドサーバ５０に送信すべき音声データを特定し、通信用データバッファ１９ｂから音声データを読み出すことができる。
【００６０】
S7：音声送信部１１ｂは例えばＷｅｂＳｏｃｋｅｔを使用して音声データをクラウドサーバ５０に送信する。ＨＴＴＰやＨＴＴＰｓなどの通信プロトコルで送信してもよい。しかし、ＷｅｂＳｏｃｋｅｔによって両者の間に永続的なＴＣＰコネクションを構築することができ、双方がそれぞれ必要に応じて送信を開始できるようになる。サーバ側からも任意のタイミングで通信を開始することができるため、ストリームデータの処理に適している。
【００６１】
S8：クラウドサーバ５０は音声データをテキストデータに変換する。
【００６２】
S9：クラウドサーバ５０は認識結果データ８を情報処理装置１０に送信する。
【００６３】
S10：情報処理装置１０の認識結果受信部１１ｃは認識結果データ８を受信し、認識結果受信部１１ｃは認識結果データ８を記憶部１９に送出する。
【００６４】
S11：記憶部１９は、テキスト変換結果ＤＢ１９ａに認識結果データ８を記憶させる。
【００６５】
S12：表示内容判断部１５はテキスト変換結果ＤＢ１９ａを監視しており、新たな認識結果データ８が記憶されるとそれを読み出す。
【００６６】
S13：表示内容判断部１５はすでに表示部１３に送出した認識結果データ８と比較して送出していない認識結果データ８を特定する。
【００６７】
S14：表示内容判断部１５は、新たに記憶された認識結果データ８を表示部１３に送出する。この認識結果データは表示されるため表示内容と呼ばれる場合がある。
【００６８】
S15：表示内容判断部１５が表示部１３に表示内容を送出すると、表示内容の表示準備が完了した旨を制御部１４に通知する。
【００６９】
S16：これを受けて制御部１４は表示部１３に表示内容の表示を指示する。
【００７０】
S17：表示部１３は表示内容判断部１５から送出された表示内容をＬＣＤ２０６に表示する。
【００７１】
S18：ユーザは発声した音声の認識結果を確認する。なお、表示内容を表示するのでなく、記憶部１９や記憶媒体に記憶するだけでもよいし、プリンタで印刷してもよい。また、情報処理装置１０が任意の装置に送信してもよい。すなわち、認識結果データ８は何らかの形態で出力されればよい。
【００７２】
<<情報処理装置１０が通信を切断する場合>>
図７を用いて、情報処理装置１０が通信を切断する場合の音声認識システムの全体的な動作を説明する。図７は、情報処理装置１０が通信制限容量に基づいて通信を切断する場合の音声認識システム１００の動作手順を示すシーケンス図の一例である。なお、情報処理装置１０とクラウドサーバ５０はすでに通信中である。
【００７３】
S1〜S3：図６のステップＳ１〜Ｓ３と同様でよい。なお、ユーザが音声を発する間、ステップＳ１〜Ｓ３が繰り返される。
【００７４】
S4：音声データ監視部１６はセッションの開始から測定している音声データの通信容量がクラウドサーバ５０の通信制限容量を超えそうであると判断する。この判断の詳細は後述される。そこで、音声データ監視部１６は、通信制限容量を超える旨をセッション接続部１１ａに通知する。
【００７５】
S5：セッション接続部１１ａはいったんセッションを切断する。これにより、クラウドサーバ５０側の通信容量の測定は初期化される。
【００７６】
S6：セッション接続部１１ａはセッションを切断した旨を制御部１４に通知する。
【００７７】
S7：これにより、制御部１４は音声データの格納先を通信用データバッファ１９ｂから退避用データバッファ１９ｃに切り替える。例えば、保持している退避用データバッファ１９ｃの先頭アドレスを音声データ監視部１６に通知する。なお、制御部１４は通信用データバッファ１９ｂに残っている音声データを退避用データバッファ１９ｃに移動させる。これにより、音声送信部１１ｂは退避用データバッファ１９ｃから音声データを送信すればよくなる。以降は、音声データ監視部１６が退避用データバッファの音声データの末尾のアドレスを管理する。
【００７８】
S8：また、制御部１４は音声データの送信元を通信用データバッファ１９ｂから退避用データバッファ１９ｃに切り替えるように音声送信部１１ｂに指示する。また、退避用データバッファの音声データの末尾のアドレスを音声送信部１１ｂに指示する。音声送信部１１ｂは、退避用データバッファ１９ｃに音声データがなければ通信用データバッファ１９ｂから音声データを送信するのでこの通知はなくてもよい。以降、退避用データバッファ１９ｃの送信データ末尾のアドレスは音声送信部１１ｂが管理する。
【００７９】
S9：次に、セッション接続部１１ａはセッションの再接続をクラウドサーバ５０に要求する。
【００８０】
S10：クラウドサーバ５０はセッションの再接続に応じる。退避用データバッファ１９ｃがあるので再接続までの間もユーザは音声を発声することができる。
【００８１】
S11：クラウドサーバ５０とのセッションが再接続されると、セッション接続部１１ａは再接続が完了した旨を制御部１４に通知する。
【００８２】
S12：この通知を受けて、制御部１４は音声データの格納先を退避用データバッファ１９ｃから通信用データバッファ１９ｂに切り替える。例えば、保持している通信用データバッファ１９ｂの先頭アドレスを音声データ監視部１６に通知する。以降は、音声データ監視部１６が通信用データバッファ１９ｂの音声データの末尾のアドレスを管理する。
【００８３】
S13：また、制御部１４は音声データの送信元を退避用データバッファ１９ｃから通信用データバッファ１９ｂに切り替えるように音声送信部１１ｂに指示する。また、通信用データバッファの音声データの末尾のアドレスを音声送信部１１ｂに指示する。音声送信部１１ｂは、退避用データバッファ１９ｃに音声データがなければ通信用データバッファ１９ｂから音声データを送信するのでこの通知はなくてもよい。以降、通信用データバッファ１９ｂの送信データ末尾のアドレスは音声送信部１１ｂが管理する。
【００８４】
S14：セッション接続部１１ａは、再接続が完了した旨を音声送信部１１ｂに通知する。
【００８５】
S15：音声送信部１１ｂは、記憶部１９の通信用データバッファ１９ｂ又は退避用データバッファ１９ｃから音声データを取得する。音声送信部１１ｂは、退避用データバッファ１９ｃの音声データを優先して送信し、退避用データバッファ１９ｃの音声データを全て送信すると通信用データバッファ１９ｂの音声データを送信する。
【００８６】
以降のステップＳ１６〜Ｓ２７の手順は図６のステップＳ７〜Ｓ１８と同様でよい。
【００８７】
<<  情報処理装置１０の処理の詳細 >>
図８は、情報処理装置１０が通信制限容量に基づいて通信を切断する場合の情報処理装置１０の動作手順を示すフローチャート図の一例である。図８の処理は、音声データのテキスト化を開始するとスタートする。
【００８８】
まず、ユーザが発声すると音声データが情報処理装置１０に入力される（Ｓ１０）。
【００８９】
制御部１４は、セッション接続部１１ａからの通知又は問い合わせに基づいて、セッションが接続中か否かを判断する（Ｓ２０）。
【００９０】
接続中である場合（Ｓ２０のＹｅｓ）、音声データ監視部１６は音声データの通信制限容量と現在の通信容量を比較する（Ｓ３０）。
【００９１】
通信制限容量より通信容量の方が小さい場合（Ｓ３０のＹｅｓ）、継続して音声データをクラウドサーバ５０に送信できるので、音声データ監視部１６は引き続き通信用データバッファ１９ｂに音声データを記憶させる（Ｓ４０）。
【００９２】
次に、音声送信部１１ｂは、退避用データバッファ１９ｃに音声データが存在するかどうかを判断する（Ｓ５０）。これは、一度、セッションが切断された場合、退避用データバッファ１９ｃに音声データがある可能性があるためである。すなわち、切断中に蓄積しておいた音声データを時系列にテキスト化するためである。
【００９３】
退避用データバッファ１９ｃにデータがない場合（Ｓ５０のＮｏ）、音声送信部１１ｂは通信用データバッファ１９ｂから音声データを読み出し、クラウドサーバ５０に送信する（Ｓ６０）。
【００９４】
退避用データバッファ１９ｃにデータがある場合（Ｓ５０のＹｅｓ）、音声送信部１１ｂは退避用データバッファ１９ｃから音声データを読み出し、クラウドサーバ５０に送信する（Ｓ７０）。
【００９５】
認識結果受信部１１ｃは、クラウドサーバ５０から認識結果データを受信する（Ｓ８０）。
【００９６】
一方、ステップＳ３０で、通信容量が通信制限容量よりも小さくない場合（Ｓ３０のＮｏ）、通信容量が通信制限容量を超えるので、セッション接続部１１ａはセッションを切断する（Ｓ９０）。ただし、クラウドサーバ５０からセッションを切断する場合、この処理は不要である。
【００９７】
次に、制御部１４は通信用データバッファ１９ｂにデータがあるか否かを判断する（Ｓ１００）。これは、通信容量が通信制限容量を超える前に既に通信用データバッファ１９ｂに記憶された音声データが残っていないかを判断するためである。
【００９８】
通信用データバッファ１９ｂに通信容量が通信制限容量を超える前の音声データが存在している場合（Ｓ１００のＹｅｓ）、制御部１４は通信用データバッファ１９ｂから退避用データバッファ１９ｃにデータを移動する（Ｓ１１０）。これにより、接続の再開後は、退避用データバッファ１９ｃから送信されるので、移動により変換漏れをなくすことができる。
【００９９】
通信用データバッファ１９ｂに音声データが存在していない場合（Ｓ１００のＮｏ）、及び、ステップＳ１１０に続いて、音声データ監視部１６は制御部１４による制御により退避用データバッファ１９ｃに音声データを記憶させる（Ｓ１２０）。通信用データバッファ１９ｂに音声データが存在していた場合、音声データが通信用データバッファ１９ｂから退避用データバッファ１９ｃに移動されているため、その音声データの続きに、ステップ１０で入力された音声データを記憶させる。
【０１００】
また、セッションが切断されたため、音声データ監視部１６は測定している通信容量をリセットする（Ｓ１２０−２）。
【０１０１】
次に、セッション接続部１１ａはクラウドサーバ５０とセッションを再接続する（Ｓ１３０）。
【０１０２】
セッション切断後、接続中でない場合（Ｓ２０のＮｏ）、音声データ監視部１６は引き続き音声データを退避用データバッファ１９ｃに記憶させる（Ｓ１４０）。
【０１０３】
再接続が完了すると、処理はステップＳ２０でＹｅｓ，ステップＳ３０でＹｅｓ、及びステップＳ５０に進むので、退避用データバッファ１９ｃに音声データがある場合には、退避用データバッファ１９ｃから音声データを送信する。ステップＳ１１０の処理が行われているため、クラウドサーバ５０は音声データを時系列通りに認識することができる。
【０１０４】
<<通信用データバッファ１９ｂと退避用データバッファ１９ｃへの記憶>>
図９は、通信用データバッファ１９ｂと退避用データバッファ１９ｃへ格納される音声データを模式的に説明する図の一例である。図９では、図８の処理と通信用データバッファ１９ｂと退避用データバッファ１９ｃの状態の対応を説明している。図９では左から右へ時間が経過している。
【０１０５】
図９（ａ）の記憶部１９では、通信用データバッファ１９ｂに音声データ１が記憶されている。音声データ１は通信制限容量を通信容量が超えていない間に、通信用データバッファ１９ｂに記憶された音声データを表している。例えば図８のステップＳ４０が対応する。
【０１０６】
図９（ｂ）は、通信制限容量を通信容量が超えた場合に、通信用データバッファ１９ｂから音声データバッファに音声データ１が移動された状態を示す。図８のステップＳ１１０が対応する。なお、図９（ｂ）の通信用データバッファ１９ｂの斜線部は音声データ１が移動されたこと（削除された）を示している。
【０１０７】
図９（ｃ）は、クラウドサーバ５０と情報処理装置１０の再接続が完了するまでに退避用データバッファ１９ｃに記憶される音声データ２を示す。セッションが接続されていないので、退避用データバッファ１９ｃの音声データ１に続いて音声データ２が記憶される。図８のステップＳ１２０とＳ１４０が対応する。
【０１０８】
クラウドサーバ５０と情報処理装置１０のセッションの再接続が完了すると、情報処理装置１０は退避用データバッファ１９ｃの最初のアドレスから音声データを送信するので、セッションの切断中の音声を時系列にテキスト化することができる。
【０１０９】
<<情報処理装置１０が意図せずに通信が切断される場合>>
情報処理装置１０が意図的に通信を切断しなくても、情報処理装置１０とクラウドサーバ５０の通信が接続される場合がある。これは、ネットワークＮの負荷が通信を維持できないほどに増大した場合、断線した場合、セッションを切断する前にクラウドサーバ５０の通信制限容量を超えた場合（情報処理装置１０がセッションを切断する処理を行わない場合や情報処理装置１０がセッションを切断するタイミングを誤った場合）などに生じうる。
【０１１０】
図１０は、通信が切断された場合に情報処理装置１０が行う処理を示すシーケンス図の一例である。なお、情報処理装置１０とクラウドサーバ５０はすでに通信中である。
【０１１１】
S1：まず、クラウドサーバ５０が情報処理装置１０に切断通知を送信する。これは、クラウドサーバ５０が通信制限容量を超えたことを検出したため、切断する旨を通知する場合に送信される。したがって、ＨＴＴＰのパケットが認識結果受信部１１ｃに送信される。これに対し、ネットワークの原因により通信が切断された場合、セッション接続部１１ａがクラウドサーバ５０から応答がないことで切断を検出する。
【０１１２】
S2：認識結果受信部１１ｃはセッション接続部１１ａに通信が切断された旨を通知する。
【０１１３】
S3：セッション接続部１１ａはセッションが切断された旨を制御部１４に通知する。
【０１１４】
S4：これにより、制御部１４は音声データの格納先を通信用データバッファ１９ｂから退避用データバッファ１９ｃに切り替える。切り替え方は図７と同様である。なお、音声データ監視部１６は制御部１４から通知により通信容量を初期化する。制御部１４は通信用データバッファ１９ｂに残っている音声データを退避用データバッファ１９ｃに移動させる。これにより、音声送信部１１ｂは退避用データバッファ１９ｃから音声データを送信すればよくなる。
【０１１５】
S5：また、制御部１４は音声データの送信元を通信用データバッファ１９ｂから退避用データバッファ１９ｃに切り替えるように音声送信部１１ｂに指示する。この処理は図7と同様でよい。
【０１１６】
S6〜S8：図６のステップＳ１〜Ｓ３と同様の処理である。セッションが切断されても、ユーザが音声を発する間、音声データが記憶部１９の退避用データバッファ１９ｃに記憶される。以降のステップＳ９〜Ｓ２７の手順は図７のステップＳ９〜Ｓ２７と同様でよい。
【０１１７】
また、図１０のシーケンス図において図８のフローチャート図に相当する処理として、切断された直後（例えばステップＳ２０でＮｏ）にステップＳ１００〜Ｓ１３０の処理を行えばよい。ステップＳ９０の処理は不要になる。
【０１１８】
以上のように、本実施形態の音声認識システムでは、通信用データバッファ１９ｂと退避用データバッファ１９ｃを用意し、通信が接続状態か切断状態かで音声データの格納先を切り替え、再接続後は退避用データバッファ１９ｃの音声データを優先して送信するので、通信の切断中もユーザは会話を継続でき、通信の切断中の音声データも時系列にテキストデータに変換することができる。
【実施例２】
【０１１９】
実施例1では退避用データバッファ１９ｃにセッションが切断中の音声データを記憶したが、本実施例ではセッションが接続中の音声データをファイルに格納する音声認識システムについて説明する。
【０１２０】
図１１は、セッションが切断されてから再接続する過程の音声データのテキスト化のタイミングを説明する図の一例である。図１１では時間の流れに対し、ファイルに格納される音声データと通信用データバッファ１９ｂに格納される音声データが示されている。
【０１２１】
時刻ｔ１でセッションが切断されると情報処理装置１０は音声データをファイルに格納する。例えば、音声データはWAVEファイルとして記憶部１９に記憶されるが、ファイルの形式は特に制限されない。情報処理装置１０は時刻ｔ１から、セッションが再接続される時刻ｔ２まで音声データをWAVEファイルに格納する。
【０１２２】
時刻ｔ２でセッションが再接続されると、情報処理装置１０はストリーミングで音声データを送信することができるが、時刻ｔ１〜ｔ２の間に作成したWAVEファイルを先に、クラウドサーバ５０に送信する。情報処理装置１０はWAVEファイルをクラウドサーバ５０に送信する。
【０１２３】
また、時刻ｔ２で、音声データをストリーミングで送信する準備はできているが、録音したWAVEファイルをテキスト化している間、クラウドサーバ５０に音声データを送信しない。しかし、時刻ｔ２から時刻ｔ３の間もユーザは音声を発声しているので、情報処理装置１０は音声データを通信用データバッファ１９ｂに蓄積しておく。
【０１２４】
時刻ｔ３でWAVEファイルの音声データの送信が完了すると、情報処理装置１０は蓄積しておいた通信用データバッファ１９ｂの音声データのストリーミングによる送信を開始する。
【０１２５】
このように送信する音声データの形式と切り替えるタイミングを制御することでセッションの切断中の音声データを途切れなくテキスト化することができる。
【０１２６】
なお、本明細書において、同一の符号を付した構成要素については、同様の機能を果たすので、一度説明した構成要素の説明を省略あるいは相違点についてのみ説明する場合がある。具体的には、図２のシステム構成、図３のハードウェア構成、及び、図４の機能ブロック図については実施例１と同様であるため、これらを再掲することなく必要に応じて参照して説明する。また、音声データのファイルへの格納は図７と図１０のどちらのシーケンス図にも適用可能である。
【０１２７】
＜動作手順＞
図１２は、情報処理装置１０が通信制限容量に基づいて通信を切断する場合の情報処理装置１０の動作手順を示すフローチャート図の一例である。図１２の処理は、音声データのテキスト化を開始するとスタートする。
【０１２８】
まず、ユーザが発声すると音声データが情報処理装置１０に入力される（Ｓ１０）。
【０１２９】
制御部１４は、セッション接続部１１ａからの通知に基づいて、セッションが接続中か否かを判断する（Ｓ２０）。
【０１３０】
接続中である場合（Ｓ２０のＹｅｓ）、音声データ監視部１６は音声データの通信制限容量と現在の通信容量を比較する（Ｓ３０）。
【０１３１】
通信制限容量より通信容量の方が小さい場合（Ｓ３０のＹｅｓ）、継続して音声データをクラウドサーバ５０に送信できるので、音声データ監視部１６は通信用データバッファ１９ｂに音声データを記憶させる（Ｓ４０）。
【０１３２】
次に、音声送信部１１ｂは、音声データが格納されたファイルがあるか否かを判断する（Ｓ５０）。この判断は、例えば、ファイルがある場合にＯＮとなるフラグを参照してもよいし、記憶部１９に所定のファイル名のファイルがあるか否かを判断してもよい。これは、一度、セッションが切断された場合、ファイルに音声データが格納されている可能性があるためである。すなわち、切断中に蓄積しておいた音声データを最初にテキスト化するためである。
【０１３３】
音声データのファイルがない場合（Ｓ５０のＮｏ）、音声送信部１１ｂは通信用データバッファ１９ｂから音声データを読み出し、クラウドサーバ５０に送信する（Ｓ６０）。
【０１３４】
音声データのファイルがある場合（Ｓ５０のＹｅｓ）、音声送信部１１ｂはファイルの音声データをクラウドサーバ５０に送信する（Ｓ７０）。
【０１３５】
認識結果受信部１１ｃは、クラウドサーバ５０から認識結果データを受信する（Ｓ８０）。
【０１３６】
一方、ステップＳ３０で、通信容量が通信制限容量よりも小さくない場合（Ｓ３０のＮｏ）、セッション接続部１１ａはセッションを切断する（Ｓ９０）。ただし、クラウドサーバ５０からセッションを切断する場合、この処理は不要である。
【０１３７】
次に、音声データ監視部１６はファイル変換部１７を用いて音声データをファイルとして録音することを開始する（Ｓ１００）。この時、ファイル変換部１７は通信用データバッファ１９ｂにデータがある場合、これを最初にファイルに変換する。これは、通信容量が通信制限容量をこえる前に既に通信用データバッファ１９ｂに音声データが残っている場合、これをファイルに変換しておくためである。これにより、接続の再開後は、ファイルから送信されるので、ファイル化による変換漏れをなくすことができる。
【０１３８】
また、音声データ監視部１６は通信容量をリセットする（Ｓ１１０）。
【０１３９】
次に、セッション接続部１１ａはクラウドサーバ５０とセッションを再接続する（Ｓ１２０）。
【０１４０】
セッション切断後、接続中でない場合（Ｓ２０のＮｏ）、音声データ監視部１６はファイル変換部１７を用いて音声データをファイルに格納する（Ｓ１３０）。すでに音声データが格納されているファイルがある場合は、ファイルに音声データを追加する。複数のファイルに分けて音声データを格納してもよい。
【０１４１】
再接続が完了すると、処理は、ステップＳ２０でＹｅｓ，ステップＳ３０でＹｅｓ、及びステップＳ５０に進むので、音声データのファイルがある場合には、音声送信部１１ｂはファイルから音声データを送信する。通信用データバッファ１９ｂの音声データがファイルに変換されているので、クラウドサーバ５０は音声データを時系列通りに認識することができる。
【０１４２】
このような処理によれば、メモリ２０２ではなくＨＤＤにも記憶できるファイルに音声データを格納できるので、メモリ２０２を圧迫することを抑制できる。
【０１４３】
<<退避用データバッファ１９ｃとファイルの併用＞
ファイルのみを使用するのでなく退避用データバッファ１９ｃとファイルを併用してもよい。退避用データバッファ１９ｃはメモリ２０２を圧迫するが、メモリ２０２からの送信はファイル変換部１７がファイルに変換する処理が不要になるので、処理を単純にできる。一方、セッションの切断時間が長くなるとメモリ２０２を圧迫するおそれがある。そこで、セッションの切断時間が短い場合は退避用データバッファ１９ｃを使用し、セッションの切断時間が長くなるとメモリ２０２を圧迫するためファイルを使用することが有効になる。
【０１４４】
図１３は、情報処理装置１０が通信制限容量に基づいて通信を切断する場合の情報処理装置１０の動作手順を示すフローチャート図の一例である。なお、図１３の説明では主に図８との相違を説明する。
【０１４５】
・ステップＳ９０〜Ｓ１２０
セッションを切断した直後の処理では、退避用データバッファ１９ｃの容量に余裕があるので処理は図８と同様でよい。
【０１４６】
・ステップ２０、Ｓ１４０，Ｓ１４２、Ｓ１４４
セッションの切断中、制御部１４は退避用データバッファ１９ｃの空き容量が閾値未満か否かを判断する（Ｓ１４０）。
【０１４７】
ステップＳ１４０の判断がＮｏの場合、音声データ監視部１６は引き続き退避用データバッファ１９ｃに音声データを記憶する（Ｓ１４２）。
【０１４８】
ステップＳ１４０の判断がＹｅｓの場合、制御部１４は音声データ監視部１６にファイルへの音声データの格納を要求する。これにより、音声データ監視部１６はファイル変換部１７を用いてファイルに音声データを格納する（Ｓ１４４）。
【０１４９】
・ステップＳ３０〜Ｓ８０
ステップＳ５０で退避用データバッファ１９ｃに音声データがあると判断されると、先に音声送信部１１ｂは退避用データバッファ１９ｃの音声データをクラウドサーバ５０に送信する（Ｓ７０）。
【０１５０】
そして、ファイルがあるか否かを判断し（Ｓ７２）、ファイルがある場合、音声送信部１１ｂはファイルをクラウドサーバ５０に送信する（Ｓ７４）。
【０１５１】
こうすることで、ファイルと退避用データバッファ１９ｃを併用しても、クラウドサーバ５０は音声データを時系列通りに認識することができる。
【０１５２】
なお、ステップＳ１４０で、制御部１４は退避用データバッファ１９ｃの空き容量が閾値未満か否かを判断したが、セッションが切断されている時間が閾値以上か否かを判断してもよい。セッションが切断されている時間が長いほど、多くの音声データが退避用データバッファ１９ｃに記憶されるため、同様の効果を奏することができる。
【０１５３】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１５４】
例えば、本実施形態ではクラウドサーバ５０がインターネット上にあると説明したが、クラウドサーバ５０は情報処理装置１０と同じＬＡＮに接続されていてもよい。また、クラウドサーバ５０と情報処理装置１０はＵＳＢケーブルなどの専用線で接続されていてもよい。すなわち、通信が切断されうる状態であればよい。
【０１５５】
また、本実施形態では同時期に1つのセッションしか接続されていないが、同時に２つ以上のセッションを接続することも可能である。例えば、情報処理装置はファイルの音声データを送信しながら通信用データバッファ及び退避用データバッファの音声データをクラウドサーバ５０に送信することができる。
【０１５６】
また、クラウドサーバ５０が複数有ってもよいし、情報処理装置１０が複数あってもよい。
【０１５７】
また、図４の構成例は、情報処理装置１０の処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。また、情報処理装置１０の処理は、処理内容に応じてさらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【０１５８】
クラウドサーバ５０は第一の情報処理装置の一例であり、情報処理装置１０は第二の情報処理装置の一例であり、音声入力部１２は音声データ取得手段の一例であり、記憶部１９は記憶手段の一例であり、制御部１４は制御手段の一例であり、音声送信部１１ｂは送信手段の一例であり、セッション接続部１１ａは通信制御手段の一例であり、通信用データバッファ１９ｂは第一の領域の一例であり、退避用データバッファ１９ｃは第二の領域の一例であり、音声データ監視部１６は測定手段の一例である。音声認識システム１００は通信システムの一例であり、音声認識システム１００が行う音声認識方法は通信方法の一例である。
【符号の説明】
【０１５９】
１０      情報処理装置
１１      通信部
１２      音声入力部
１３      表示部
１４      制御部
１５      表示内容判断部
１６      音声データ監視部
１７      ファイル変換部
１９      記憶部
５０      クラウドサーバ
１００    音声認識システム
【先行技術文献】
【特許文献】
【０１６０】
【特許文献１】特開2011-209731号公報
【図１】
2018049080.tif 000004
【図２】
2018049080.tif 000005
【図３】
2018049080.tif 000006
【図４】
2018049080.tif 000007
【図５】
2018049080.tif 000008
【図６】
2018049080.tif 000009
【図７】
2018049080.tif 000010
【図８】
2018049080.tif 000011
【図９】
2018049080.tif 000012
【図１０】
2018049080.tif 000013
【図１１】
2018049080.tif 000014
【図１２】
2018049080.tif 000015
【図１３】
2018049080.tif 000016