以下に、本願の開示する音声処理装置、音声処理プログラム及び音声処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
以下においては、図1及び図4乃至図7を用いて、本実施例において音声処理装置100が実行する音声認識処理について説明する。図1は、実施例1における音声認識処理の一例を示す図である。図1に示すように、後述するユーザの操作に応じて音を収集する端末10が、音の収集開始を指示するスイッチ操作9001を受け付けると、スイッチON情報を音声処理装置100に送信する。後述する音声処理装置100のスイッチ情報取得部132は、スイッチON情報を受信する。次に、スイッチ情報取得部132は、スイッチOFF情報を受信したタイミングを、端末10において音の収集が開始されたタイミングとして特定する。その後、端末10は、音を収集して、音声データにエンコードし、矢印9011乃至9012に示すように音声処理装置100に送信する。
後述する音声処理装置100の音声データ取得部131は、端末10から送信された音声データを逐次受信し、後述する音声バッファ121に記憶する。なお、以下において、音声データを音声バッファ121に記憶することを「バッファリングする」と表記する場合がある。
この場合に、端末10から音声処理装置100への送信レートが音声データのエンコードレートを下回ると、音声処理装置100が全ての音声データの受信が完了するまでの時間が、端末10が音の収集を開始してから終了するまでの時間を超過する場合がある。以下においては、送信レートがエンコードレートの「40%」である場合、すなわち「2.0秒」間に収集された音がエンコードされた音声データの取得完了に「5.0秒」を要する場合について説明する。また、以下においては、端末10から音声処理装置100へのスイッチON情報及びスイッチOFF情報の送信の際には、タイムラグは発生しないものとする。
端末10は、ユーザから音の収集終了を指示するスイッチ操作9002を受け付けると、スイッチOFF情報を音声処理装置100に送信する。音声処理装置100のスイッチ情報取得部132は、スイッチOFF情報を受信したタイミングを、端末10において音の収集が終了されたタイミングとして特定する。次に、後述するタイミング設定部133は、スイッチOFF情報を受信したタイミングにおいて、バッファリングされた音声データの再生時間の長さと、音声取得時間の長さとの比率を用いて、全ての音声データの受信が完了する予定時刻を算出する。
そして、タイミング設定部133は、全ての音声データの受信が完了する予定時刻から、音声取得時間を減算して、音声認識処理の開始時刻を設定する。音声処理装置100の後述する音声認識部134は、音声認識処理の開始時刻に到達したタイミングで、音声認識処理を開始する。
かかる実施例において、音声処理装置100は、音声データの取得開始から「3.0」秒後のタイミング9033に音声認識処理を開始し、音声データの取得開始から「5.0」秒後のタイミング9034に音声認識処理を完了する。
一方、背景技術における音声認識処理について、図2及び図3を用いて説明する。図2は、背景技術における音声認識処理の一例を示す図である。図2に示すように、背景技術における音声処理装置は、全ての音声データの受信が完了したタイミング9114において音声認識処理を開始し、タイミング9105において音声認識処理を完了する。この場合、音声処理装置は、音声データの取得開始から「5.0」秒後に音声認識処理を開始し、音声データの取得開始から「7.0」秒後に音声認識処理を完了する。すなわち、本実施例における音声処理装置100は、より小さなタイムラグで、音声認識処理を完了することができる。
次に、背景技術において、音声認識処理のタイムラグを小さくする場合について説明する。図3は、背景技術における音声認識処理の別の一例を示す図である。図3に示すように、音声処理装置は、端末からスイッチOFF情報9202を受信した時点において、音声認識処理を開始する。
この場合においては、音声データの受信が、音声認識処理に追いつかなくなる。例えば、音声認識処理が完了するタイミングにおいては、約「1.6」秒分の音声データしか音声バッファにバッファリングされていない。すなわち、音声データの一部9211のみがバッファリングされ、音声データの残りの一部9212は、音声認識処理が完了するタイミングにおいては取得が完了していない。
例えば、端末から「車で10分以内のイタリアンのお店」という音声データ9221が送信される場合において、受信された音声データの一部9211に対して音声認識処理が行われた結果9222は、「車で10分以内のイタリ」という不完全なものである。この場合、音声認識装置は端末から送信された音声データ全てについて音声認識処理を完了することができない。
このように、本実施例における音声処理装置は、無線でマイクから音声を受信する際に、音声入力終了情報を取得した時点の受信済みデータの割合から、受信バッファが枯渇しない音声認識開始タイミングを求める。これにより、音声の途切れのない音声認識を早く開始できる。
[機能ブロック]
次に、本実施例における音声処理システムの一例について、図4を用いて説明する。図4は、実施例1における音声処理システムの一例を示す図である。図4に示すように、本実施例における音声処理システム1は、端末10と、音声処理装置100とを含む。なお、図4においては、端末10と、音声処理装置100とを1台ずつ含む構成を例示するが、これに限られず、音声処理システム1が複数の端末10又は音声処理装置100を含むような構成であってもよい。
端末10は、例えば指輪型などのウェアラブル端末により実現できる。端末10は、マイク11と、通信部12と、スイッチ14とを有する。マイク11は、端末10を装着するユーザが発する音声を収集し、図示しない音声処理部に出力する。図示しない音声処理部は、マイク11から入力される音声を音声データにエンコードし、通信部12に出力する。通信部12は、図示しない音声処理部から出力された音声データを、BlueTooth(登録商標)LE等の無線通信手段を用いて音声処理装置100に送信する。
スイッチ14は、マイク11、図示しない音声処理部等の起動又は停止を制御する。スイッチ14は、例えば端末10のユーザによるスイッチONの操作を受け付けて、マイク11を起動し、音声の収集を開始させる。また、スイッチ14は、例えば端末10のユーザによるスイッチOFFの操作を受け付けて、マイク11を停止し、音声の収集を終了させる。また、スイッチ14は、スイッチONの操作があった場合、通信部12を通じて、スイッチON情報を音声処理装置100に送信し、スイッチOFFの操作があった場合、通信部12を通じて、スイッチOFF情報を音声処理装置100に送信する。
なお、音声データは、例えば端末10を一意に識別する識別子である端末ID(Identifier)と、音が収集されたタイミングを示すタイムスタンプと、音声データの再生時間の長さを示す情報とを含むヘッダを付加されたパケットの形で送信される。
次に、本実施例における音声処理装置100の機能構成について説明する。図5は、実施例1における音声処理装置の機能ブロックの一例を示す図である。図5に示すように、本実施例における音声処理装置100は、通信部111、記憶部120及び制御部130を有する。なお、音声処理装置100は、コンピュータ等の機器により実現され、図5に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。また、音声処理装置100は、例えばスマートフォンやノート型コンピュータなどの携帯可能なコンピュータであるが、これに限られず、据置型のコンピュータでもよい。
通信部111は、BlueTooth(登録商標)LE等の無線通信手段を用いて端末10との間の通信を制御する。また、通信部111は、端末10から受信したスイッチON情報、スイッチOFF情報、音声データ等を制御部130に出力する。
記憶部120は、例えば制御部130が実行するプログラム、各種データなどを記憶する。また、記憶部120は、音声バッファ121及び音声DB122を有する。記憶部120は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
音声バッファ121は、通信部111を通じて端末10から受信された音声データを記憶する。音声バッファ121は、例えば音声データのパケットを、タイムスタンプ順に記憶していく。なお、音声バッファ121に記憶される音声データは、例えば後述する音声データ取得部131により入力され、また後述する音声認識部134により読み出される際に削除される。すなわち、本実施例における音声バッファ121は、音声データ取得部131による音声データ取得が開始された時点において空である。なお、音声バッファ121は、記憶部の一例である。
音声DB122は、音声認識処理が完了した音声データに関する情報を記憶する。図6は、実施例1における音声DBの一例を示す図である。図6に示すように、音声DB122は、「ファイル名」と、「端末ID」と、「音の収集開始時刻」と、「音声取得終了時刻」と、「音声取得時間」と、「認識結果」とを対応付けて記憶する。なお、音声DB122に記憶される情報は、例えば後述するスイッチ情報取得部132、タイミング設定部133及び音声出力部135により入力される。
図6において、「ファイル名」は、音声データのファイル名を記憶する。「端末ID」は、音声データを送信した端末10を一意に識別する識別子である。「音声取得開始時刻」及び「音声取得終了時刻」は、それぞれ音声データ取得部131が端末10から音声データの収集を開始し、終了した時刻を記憶する。「音声取得時間」は、端末10において音声取得に要した時間を記憶する。「音声取得時間」は、例えば「音声取得終了時刻」から「音声取得開始時刻」を差し引くことにより算出される。「認識結果」は、後述する音声認識部134による音声認識処理によって抽出された文字列を記憶する。
図5に戻って、制御部130は、音声処理装置100の全体的な処理を司る処理部であり、例えばプロセッサなどである。この制御部130は、音声データ取得部131、スイッチ情報取得部132、タイミング設定部133、音声認識部134及び音声出力部135を有する。なお、音声データ取得部131、スイッチ情報取得部132、タイミング設定部133、音声認識部134及び音声出力部135は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
音声データ取得部131は、通信部111を通じて、端末10から音声データを取得し、音声バッファ121に記憶する。音声データ取得部131は、例えば、端末10から取得した音声データのパケットを、逐次音声バッファ121に記憶する。なお、音声データ取得部131が、音声データのパケットに付加されたタイムスタンプを参照し、タイムスタンプの順に音声データのパケットを音声バッファ121に記憶するような構成であってもよい。なお、音声データ取得部131は、第1受信部の一例である。
スイッチ情報取得部132は、通信部111を通じて、端末10からスイッチON情報及びスイッチOFF情報を取得する。例えば、スイッチ情報取得部132は、端末10からスイッチON情報を取得した場合、音声データ取得部131及びタイミング設定部133に音声データ取得開始を示す情報を出力する。そして、スイッチ情報取得部132は、スイッチON情報を取得した時刻を特定して、記憶部120及び音声DB122に音声取得開始時刻として記憶する。なお、スイッチ情報取得部132は、第2受信部の一例である。
また、スイッチ情報取得部132は、端末10からスイッチOFF情報を取得した場合、音声データ取得部131及びタイミング設定部133に音声データ取得終了を示す情報を出力する。そして、スイッチ情報取得部132は、スイッチOFF情報を取得した時刻を特定して、記憶部120及び音声DB122に音声取得終了時刻として記憶する。
タイミング設定部133は、音声認識部134が音声認識処理を開始するタイミングである音声認識開始時刻を設定する。具体的には、タイミング設定部133は、スイッチ情報取得部132から音声データ取得終了を示す情報の入力を受けると、音声データ取得終了を示す情報と音声データ取得開始を示す情報との差分から、音声取得時間を算出する。そして、タイミング設定部133は、算出された音声取得時間を、記憶部120及び音声DB122に記憶する。例えば、タイミング設定部133は、図6に示すように、音声取得開始時刻と音声取得終了時刻との差を用いて、音声取得時間が「2.0秒」であることを算出する。なお、タイミング設定部133は、特定部の一例である。
次に、タイミング設定部133は、音声バッファ121を参照し、記憶された音声データの再生時間の長さを特定する。例えば、タイミング設定部133は、音声バッファ121に、再生時間「0.2秒」のパケットが「4つ」記憶されている場合、記憶された音声データの再生時間の長さが「0.2秒×4=0.8秒」であることを特定する。なお、以下において特定された再生時間の長さを「バッファ済再生時間長」と記載する場合がある。
次に、タイミング設定部133は、バッファ済再生時間長と、算出された音声取得時間とを用いて、音声データ取得部131が端末10から音声データの取得を完了するタイミングを算出する。具体的には、タイミング設定部133は、音声データ取得終了を示す情報の入力を受けた時点で、音声取得時間「2.0秒」中、バッファ済再生時間長「0.8秒」が占める割合が「40%」であることを特定する。
次に、タイミング設定部133は、音声取得時間を、バッファ済再生時間長が占める割合で除算することにより、端末から音声データの取得を開始してから完了するまでの時間の長さを特定する。例えば、タイミング設定部133は、音声データの取得を完了するタイミングが、音声データの取得を開始したタイミングから「2.0秒/40%=5.0秒」後であることを特定する。具体的には、タイミング設定部133は、音声データの取得を開始するタイミングに該当する時刻が「15:00:00」であった場合、音声データの取得を完了するタイミングに該当する時刻は「5.0秒」後の「15:00:05」であることを特定する。
そして、タイミング設定部133は、特定された音声データの取得を完了するタイミングから、音声取得時間を減算することにより、音声認識開始時刻を算出する。例えば、タイミング設定部133は、音声データの取得を完了するタイミングに該当する時刻が「15:00:05」であった場合、そこから「2.0秒」を減算した「15:00:03」を音声認識開始時刻として算出する。そして、タイミング設定部133は、算出された音声認識開始時刻を、音声認識部134に出力する。
なお、タイミング設定部133が音声認識開始時刻を設定する構成はこれに限られない。例えば、タイミング設定部133が、バッファリング済みのデータ容量や、音声データの再生レート等を用いて、音声認識開始時刻を設定するような構成であってもよい。
音声認識部134は、音声バッファ121に記憶された音声データを用いて、音声認識処理を行う。音声認識部134は、例えば公知の音声認識技術等を用いて、音声データから文字列を抽出し、音声出力部135に出力する。音声認識部134は、タイミング設定部133から入力された音声認識開始時刻に到達したか否かを判定し、音声認識開始時刻に到達したタイミングで音声認識処理を開始する。
音声出力部135は、音声認識部134により認識された音声を出力する。音声出力部135は、音声認識部134から音声の入力を受けると、例えば音声処理装置100が有するスピーカを通じて、認識された音声を出力する。また、音声出力部135は、認識された音声データを音声DB122に記憶する。なお、音声出力部135が、認識された文字列を図示しない表示部等に出力するような構成であってもよい。
[処理の流れ]
次に、本実施例における音声処理装置100による音声認識処理について説明する。図7は、実施例1における音声認識処理の一例を示すフローチャートである。
図7に示すように、音声処理装置100のスイッチ情報取得部132は、例えば、端末10からスイッチON情報を取得するまで待機する(S100:No)。スイッチ情報取得部132は、スイッチON情報を取得すると(S100:Yes)、スイッチON情報を取得した時刻を記憶部120に記憶する(S101)。そして、音声データ取得部131は、端末10から送信される音声データを取得し、音声バッファ121に記憶する(S102)。
次に、スイッチ情報取得部132は、端末10からスイッチOFF情報を取得したか否か判定する(S103)。スイッチ情報取得部132は、端末10からスイッチOFF情報を取得していないと判定した場合(S103:No)、S102に戻って処理を繰り返す。
一方、スイッチ情報取得部132は、端末10からスイッチOFF情報を取得したと判定した場合(S103:Yes)、スイッチOFF情報を取得した時刻を記憶部120に記憶する(S104)。次に、タイミング設定部133は、スイッチON情報を取得した時刻とスイッチOFF情報を取得した時刻とを用いて、音声取得時間を算出する(S105)。
次に、タイミング設定部133は、音声バッファ121に記憶された、取得済みの音声データの情報量に基づき、音声データの再生時間を特定する(S106)。そして、タイミング設定部133は、音声データの再生時間の音声取得時間に占める割合を用いて、音声データ取得完了予定時刻を算出する(S107)。次に、タイミング設定部133は、音声データ取得完了予定時刻から、音声取得時間を差し引くことで、音声認識開始時刻を算出する(S108)。その後、音声データ取得部131は、引き続き端末10から送信される音声データを取得し、音声バッファ121に記憶する(S109)。
タイミング設定部133は、音声認識開始時刻に到達したか否かを判定する(S110)。タイミング設定部133は、音声認識開始時刻に到達していないと判定した場合(S110:No)、S109に戻って処理を繰り返す。一方、音声認識部134は、音声認識開始時刻に到達したと判定した場合(S110:Yes)、音声認識処理を開始し、処理結果を音声DB122に記憶する(S111)。そして、音声出力部135は、音声DB122に記憶された音声認識結果を出力し(S112)、処理を終了する。
[効果]
以上説明したように、本実施例における音声処理装置は、端末により収集された音に関する情報を受信して記憶し、ユーザの操作の終了に応じて送信される操作情報を受信する。また、本実施例における音声処理装置は、受信した操作情報と無線通信される音に関する情報の情報量とに基づいて、音声認識を開始するタイミングを特定する。そして、本実施例における音声処理装置は、特定されたタイミングに到達した場合に、記憶部に記憶された音に関する情報を用いた音声認識処理を行い、処理結果を記憶する。これにより、端末から取得した音声データを用いて適切なタイミングで音声認識処理を行うことができる。
また、本実施例における音声処理装置100は、操作情報として、端末において音の収集が終了したタイミングを示す情報を受信し、端末において音の収集が開始されたタイミングと、音の収集が終了したタイミングを示す情報とに基づいて収集された音の長さを特定する。そして、本実施例における音声処理装置100は、記憶部に記憶された音に関する情報の情報量と音の長さとの比率に基づいて、第1受信部が音に関する情報の受信を完了するタイミングを特定する。さらに、本実施例における音声処理装置100は、音に関する情報の受信を完了するタイミングから音の長さを差し引いたタイミング以後のタイミングに、音声認識を開始する。これにより、バッファの枯渇による音声の途切れのない音声認識を早く開始できる。
なお、本実施例における音声処理装置100は、音に関する情報の受信を完了するタイミングからの長さを差し引いたタイミングで音声認識を開始してもよい。これにより、音声の途切れのない音声認識をより小さなタイムラグで開始できる。
実施例1における音声処理装置100は、端末10からスイッチOFF情報を取得してから、音声認識処理を開始するタイミングを特定していたが、実施の形態はこれに限られない。例えば、音声処理装置が、音声データを取得したタイミングで音声認識処理を開始し、全ての音声データを取得したタイミングにおける音声処理結果を採用するような構成であってもよい。この場合において、音声処理装置は、全ての音声データを取得するタイミングまでに取得された音声処理結果を記憶せずに破棄してもよい。
実施例2においては、図8乃至図10を用いて、音声データの取得開始後、逐次音声認識処理を実行する音声処理装置200について説明する。なお、以下の実施例において、先に説明した図面に示す部位と同一の部位には同一の符号を付し、重複する説明は省略する。
図8は、実施例2における音声認識処理の一例を示す図である。なお、実施例2における音声処理装置200は、実施例1における音声処理装置100と同様に、ユーザの操作に応じて音を収集する端末10から音声データを取得する。
以下において、端末10において、例えば「あすはあめ」という「2.0」秒間の音声が収集される例について説明する。まず、端末10は、実施例1と同様に、音の収集開始を指示するスイッチ操作9001を受け付けると、スイッチON情報を音声処理装置200に送信する。後述する音声処理装置200のタイムスタンプ取得部232は、スイッチON情報を取得し、取得した時刻を後述する音声処理装置200のタイムスタンプ格納部223に記憶する。
次に、端末10は、音9501を収集してエンコードし、音の収集開始から何秒後に収集された音かを示すタイムスタンプ9511を付加した音声データを音声処理装置200に送信する。図8に示すように、例えば「す」という音に対応する音声データには、音の収集開始から「0.8」秒後に収集された音であることを示すタイムスタンプが付加される。
また、端末10は、ユーザから音の収集終了を指示するスイッチ操作9002を受け付けると、タイムスタンプを付加したスイッチOFF情報を音声処理装置200に送信する。図8に示す例においては、音の収集終了時点である、音の収集開始から「2.0」秒後であることを示すタイムスタンプ9513が、スイッチOFF情報に付加されて音声処理装置200に送信される。音声処理装置200のタイムスタンプ取得部232は、スイッチOFF情報を取得すると、スイッチOFF情報に付加されたタイムスタンプ9513を、タイムスタンプ格納部223に記憶する。
一方、後述する音声処理装置200の音声データ取得部131は、端末10から送信された音声データを逐次取得し、後述する音声バッファ121にバッファリングする。そして、後述する音声処理装置200の音声認識部234は、音声バッファ121に音声データがバッファリングされると、音声データを用いて音声認識処理を開始し、認識結果を後述する音声処理装置200の認識結果格納部224に記憶する。音声認識部234は、例えば、音声データ9522が音声バッファ121に格納されると、音声データ9522から文字列「あ」を認識して、認識結果格納部224に記憶する。
次に、後述する音声処理装置200のタイムスタンプ判定部233は、音声データに付加されたタイムスタンプと、タイムスタンプ格納部223に格納されたタイムスタンプとが合致するか否かを判定する。タイムスタンプ判定部233は、例えば複数の音声データがバッファリングされている場合、最後に記憶された音声データのタイムスタンプを参照する。
タイムスタンプ判定部233は、タイムスタンプが合致しないと判定した場合、又はタイムスタンプがタイムスタンプ格納部223に記憶されていない場合、認識結果格納部224に記憶された認識結果を破棄する。
例えば、タイムスタンプ判定部233は、音声データ9522に付加されたタイムスタンプは「0.4」であり、タイムスタンプ格納部223にはタイムスタンプが記憶されていないので、音声データ9522の認識結果「あ」を破棄する。この場合において、音声認識部234は、認識結果が破棄された時点で、音声バッファ121に記憶された音声データ9523を用いて音声認識処理を行う。
また、タイムスタンプ判定部233は、タイムスタンプ格納部223にタイムスタンプ「2.0」が記憶された場合において、音声データ9524に付加されたタイムスタンプ「1.2」は記憶されたタイムスタンプと合致しないと判定する。この場合、タイムスタンプ判定部233は、音声データ9524の認識結果「あすは」を破棄する。この場合も、音声認識部234は、同様に繰り返し音声認識処理を行う。
そして、タイムスタンプ判定部233は、タイムスタンプが合致すると判定した場合、認識結果格納部224に記憶された認識結果を音声処理装置200の後述する音声DB222に記憶し、処理を終了する。すなわち、符号9541に示す各タイムスタンプ9531乃至9533に対応する音声データ9521乃至9523の認識結果9541は破棄され、タイムスタンプ9534に対応する認識結果9551が採用される。なお。実施例1と同様に、実施例2における音声処理装置200は、音声データの取得開始から「3.0」秒後のタイミング9033に開始され、「5.0」秒後のタイミング9034に完了した音声認識処理の結果を出力する。
[機能ブロック]
次に、本実施例における機能構成について説明する。図9は、実施例2における音声処理装置の機能ブロックの一例を示す図である。図9に示すように、本実施例における音声処理装置200は、図5に示す音声処理装置100と同様のコンピュータにより実装され、通信部111、記憶部220及び制御部230を有する。
記憶部220は、音声バッファ121、音声DB222、タイムスタンプ格納部223及び認識結果格納部224を有する。音声DB222は、音声認識処理が完了した音声データに関する情報を記憶する。音声DB222に記憶される情報は、図6に示す音声DB122と同様であるため、詳細な説明は省略する。なお、音声DB222に記憶される情報は、例えば後述するタイムスタンプ判定部233により入力される。
タイムスタンプ格納部223は、端末10が送信するスイッチON情報が取得された時刻と、端末10が送信するスイッチOFF情報に付加されたタイムスタンプとを記憶する。なお、タイムスタンプ格納部223に記憶される情報は、後述するタイムスタンプ取得部232により入力される。
認識結果格納部224は、後述する音声認識部234による処理結果である文字列及び音声データを一時的に記憶する。なお、認識結果格納部224に記憶される情報は、後述する音声認識部234により入力され、また後述するタイムスタンプ判定部233により破棄又は移動される。
制御部230は、音声処理装置200の全体的な処理を司る処理部であり、例えばプロセッサなどである。この制御部230は、音声データ取得部131、タイムスタンプ取得部232、タイムスタンプ判定部233、音声認識部234及び音声出力部235を有する。
タイムスタンプ取得部232は、通信部111を通じて、端末10からスイッチON情報及びスイッチOFF情報を取得する。例えば、タイムスタンプ取得部232は、端末10からスイッチON情報を取得した場合、音声データ取得部131に音声データ取得開始を示す情報を出力する。そして、タイムスタンプ取得部232は、スイッチON情報を取得した時刻を特定して、タイムスタンプ格納部223に記憶する。
また、タイムスタンプ取得部232は、端末10からスイッチOFF情報を取得した場合、スイッチOFF情報に付加されたタイムスタンプを、タイムスタンプ格納部223に記憶する。
タイムスタンプ判定部233は、バッファリングされた音声データに付加されたタイムスタンプと、タイムスタンプ格納部223に格納されたタイムスタンプとが合致するか否かを判定する。タイムスタンプ判定部233は、タイムスタンプが合致しない場合、又はタイムスタンプ格納部223にタイムスタンプが記憶されていない場合、認識結果格納部224に格納された音声データ及び文字列を破棄する。
また、タイムスタンプ判定部233は、タイムスタンプが合致する場合、認識結果格納部224に格納された音声データ及び文字列を、音声DB222に記憶するとともに、音声出力部235に認識完了を示す情報を出力する。
音声認識部234は、音声バッファ121に記憶された音声データを用いて、音声認識処理を行う。音声認識部234は、例えば公知の音声認識技術等を用いて、音声データから文字列を抽出し、音声出力部235に出力する。音声認識部234は、タイムスタンプ判定部233から入力された音声認識開始時刻に到達したか否かを判定し、音声認識開始時刻に到達したタイミングで音声認識処理を開始する。
音声出力部235は、音声認識部234により認識された音声を出力する。音声出力部235は、タイムスタンプ判定部233から認識完了を示す情報の入力を受けると、音声DB222に記憶された音声を出力する。なお、音声出力部235が、音声出力部135と同様に、認識された文字列を図示しない表示部等に出力するような構成であってもよい。
[処理の流れ]
次に、本実施例における音声処理装置200による音声認識処理について説明する。図10は、実施例2の音声認識処理の一例を示すフローチャートである。
図10に示すように、音声処理装置200のタイムスタンプ取得部232は、例えば、端末10からスイッチON情報を取得するまで待機する(S200:No)。タイムスタンプ取得部232は、スイッチON情報を取得すると(S200:Yes)、スイッチON情報を取得した時刻をタイムスタンプ格納部223に記憶する(S201)。
次に、タイムスタンプ取得部232は、端末10からスイッチOFF情報を取得したか否かを判定する(S202)。タイムスタンプ取得部232は、スイッチOFF情報を取得したと判定した場合(S202:Yes)、スイッチOFF情報に付加されたタイムスタンプをタイムスタンプ格納部223に記憶し(S203)、S204に移行する。
一方、スイッチOFF情報を取得していないと判定した場合(S202:No)、音声データ取得部131は、端末10から送信される音声データを取得し、音声バッファ121に記憶する(S204)。そして、音声認識部234は、音声バッファ121に記憶された音声データを用いて、音声認識処理を開始し、音声認識結果を認識結果格納部224に記憶する(S205)。
次に、タイムスタンプ判定部233は、音声バッファ121に記憶された音声データに付加されたタイムスタンプと、タイムスタンプ格納部223に記憶されたタイムスタンプとが合致するか否かを判定する(S206)。タイムスタンプ判定部233は、タイムスタンプが合致しないと判定した場合、(S206:No)、認識結果格納部224に記憶された音声認識結果を破棄する(S207)。また、タイムスタンプ判定部233は、タイムスタンプ格納部223にタイムスタンプが記憶されていない場合についても、認識結果格納部224に記憶された音声認識結果を破棄する。そして、タイムスタンプ判定部233は、S202に戻って処理を繰り返す。
一方、タイムスタンプ判定部233は、タイムスタンプが合致すると判定した場合(S206:Yes)、認識結果格納部224に記憶された音声認識結果を音声DB222に記憶する(S208)。そして、音声出力部235は、音声DB222に記憶された音声認識結果を出力し(S209)、処理を終了する。
[効果]
以上説明したように、本実施例における音声処理装置200は、音声データの取得が開始されたタイミングで逐次音声認識を開始し、操作情報に対応する音に関する情報を取得していないと判定した場合は、音声認識により取得されたデータを破棄し、音声認識を繰り返す。これにより、バッファの枯渇による音声の途切れのない音声認識を早く開始できる。
また、本実施例における音声処理装置200は、操作情報により特定されるタイミングと、音に関する情報に付加されたタイミングを示す情報とが合致するか否かを判定する。そして、音声処理装置200は、タイミングと情報とが合致しないと判定した場合は、音声認識により取得されたデータを破棄し、音声認識を繰り返す。これにより、音の収集が終了したタイミングを適切に特定できる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
なお、実施例1において、音声処理装置100のタイミング設定部133が、音声データ取得の開始時刻及び終了時刻を特定する構成を開示したが、実施の形態はこれに限られない。例えば、タイミング設定部133が開始時刻及び終了時刻を特定する代わりに、スイッチON情報を取得してからスイッチOFF情報を取得するまでの経過時間を測定するような構成であってもよい。
また、実施例1において、音声認識部134が、音声認識開始時刻に到達したタイミングで音声認識処理を開始する例を説明したが、音声認識処理を開始するタイミングはこれに限られない。例えば、音声認識部134が、設定した音声認識開始時刻より遅く、かつ全ての音声データの受信が完了するより早いタイミングで音声認識処理を開始してもよい。
また、実施例2において、音声認識部234が、音声データの取得を開始したタイミングで音声認識処理を開始する例を説明したが、これに限られず、例えばスイッチOFF情報を取得したタイミングで音声認識処理を開始してもよい。これにより、タイムスタンプが記憶されていない状態で音声認識処理が行われることを抑制できる。
[システム]
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
[ハードウェア]
上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図11は、音声処理プログラムを実行するコンピュータの一例を示す図である。なお、以下においては、音声処理装置100を例として説明するが、音声処理装置200についても同様のハードウェア構成により実現できる。
図11が示すように、コンピュータ300は、CPU310、HDD320、RAM340及びスピーカ350を有する。これら310〜350の各部は、バス400を介して接続される。
HDD320には、音声処理装置100の音声データ取得部131、スイッチ情報取得部132、タイミング設定部133、音声認識部134及び音声出力部135と同様の機能を発揮する音声処理プログラム320aが予め記憶される。なお、音声処理プログラム320aについては、適宜分離しても良い。また、HDD320は、各種情報を記憶する。
そして、CPU310が、音声処理プログラム320aをHDD320から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、音声処理プログラム320aは、音声データ取得部131、スイッチ情報取得部132、タイミング設定部133、音声認識部134及び音声出力部135と同様の動作を実行する。
なお、上記した音声処理プログラム320aについては、必ずしも最初からHDD320に記憶させることを要しない。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。さらには、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。