説明

音声処理装置、音声処理方法及び音声処理プログラム

【課題】外部音声データを使用した適切な音声処理を行うことが可能な「音声処理装置、音声処理方法、及び、音声処理装置としてのコンピュータによって実行される音声処理プログラム」を提供する。
【解決手段】CPU102は、音声処理用のアプリケーションソフトウェアの実行が滞ることによって、複数のバッファにMICデータが格納されている場合、バッファリストに基づいて、最新のMICデータが格納されたバッファを特定する。更に、CPU102は、その特定したバッファから最新のMICデータを読み出し、当該最新のMICデータを使用して、外部音声のレベルに応じた出力音声のレベル調整を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オーディオ機能を有する機器において、音声処理を行う音声処理装置、音声処理方法、及び、音声処理装置としてのコンピュータによって実行される音声処理プログラムに関する。
【背景技術】
【0002】
音声認識(SR)や音声録音等、外部音声に基づく各種の音声処理を行う装置(音声処理装置)では、アプリケーションソフトウェアが、マイクによって検出された外部音声のデータ(MICデータ)の逐次処理を行う(例えば、特許文献1参照)。
【0003】
図18は、音声処理の動作を示すシーケンス図である。音声処理装置内のCPUのリソースが音声処理用のアプリケーションソフトウェアに割り当てられている間、CPUによって、当該音声処理用のアプリケーションソフトウェアが実行される。CPUは、音声処理用のアプリケーションソフトウェアの実行により、音声処理装置内のメモリに設けられたバッファのうち、複数の空のバッファをMICデータの格納領域として特定し(S501)、サウンドドライバ(SD)に対して、その複数の空のバッファのキューへの登録を要求する(S502)。CPUは、サウンドドライバの実行により、空のバッファを待機させておくキューを用意し、登録要求された複数の空のバッファを、そのキューに順に登録する(S503)。
【0004】
ここで、汎用のCPUによって各アプリケーションソフトウェアに対応する複数のプロセスが処理される場合、任意のプロセスに割り当てられるCPUのリソースの割り当てやその割り当ての間隔は保証されていない。また、一般にプロセスは、予め定められた優先度に応じて実行管理がなされている。このため、あるプロセスが処理中に、当該プロセスよりも優先度の高いプロセスが割り込んだ場合、プロセスが切り替わり、優先度の低いプロセスは、優先度の高いプロセスが処理されている間、処理不能となる。従って、優先度の低いプロセスが上述した音声処理用のアプリケーションソフトウェアに対応するプロセスの場合には、その実行に際して必要なCPUのリソースが割り当てられず、キューに空のバッファが登録されない期間が長期になる可能性がある。この場合、CPUは、サウンドドライバの実行によって、マイクによってMICデータをバッファに格納することができず、MICデータの取りこぼしが発生する。このような問題に対し、CPUは、上述したS502での音声処理用のアプリケーションソフトウェアの実行によって、複数の空のバッファのキューへの登録をサウンドドライバに要求し、上述したS503でのサウンドドライバの実行によって、その複数の空のバッファをキューに登録する。
【0005】
その後、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して録音開始命令を出す(S504)。更に、CPUは、サウンドドライバの実行によって、この命令に応じて、マイクからMICデータを取り込んで、キューの登録順に空のバッファに格納する(S505)。ここでは、キューに登録されたバッファのうち、キューの先頭に近い空のバッファから順にMICデータが格納される。そして、バッファにMICデータが格納されると、CPUは、サウンドドライバの実行によって、バッファへの録音完了を音声処理用のアプリケーションソフトウェアへ通知する(S506)。
【0006】
バッファへの録音完了が通知されると、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、バッファへの録音完了通知を取得し、そのバッファに格納されたMICデータを使用して、所定の音声処理を行う(S507)。更に、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して、S507において処理の対象となったMICデータが格納されたバッファをキューに登録するように要求する(S508)。更に、CPUは、サウンドドライバの実行によって、登録が要求されたバッファ、換言すれば、キューの先頭のバッファを、キューの末尾に登録する(S509)。これにより、それまではキューの2番目に登録されていたバッファがキューの先頭になる。その後は、録音処理が終了するまで、S505乃至S509の処理が繰り返される。
【特許文献1】特開平11−166835号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところで、車載用のオーディオ装置には、ユーザが常に一定の音量感を保って音を聴取することができるように、車室内の騒音を検出し、その騒音のレベルに応じてガイダンス音声(RG)等の出力音声のレベルを調整する機能を有するものがある。
【0008】
このような機能によって、現在の車室内の音響環境に応じた適切な出力音声の調整を行うためには、できるだけ最新の騒音に対応するMICデータに応じて出力音声のレベルを調整し、リアルタイム性を確保する必要がある。しかし、上述した従来の技術では、優先度の低い音声処理用のアプリケーションソフトウェアに対応するプロセスにCPUのリソースが割り当てられない一方で、優先度の高いサウンドドライバにCPUのリソースが割り当てられる場合には、サウンドドライバの実行によって、キューに登録されたバッファに逐次MICデータが格納されるにもかかわらず、音声処理用のアプリケーションソフトウェアの実行におけるMICデータを使用した処理が滞る。そして、その後に音声処理用のアプリケーションソフトウェアにCPUのリソースが割り当てられた後には、キューの先頭に登録されたバッファ内のMICデータ、換言すれば、過去のMICデータから順次処理の対象となる。
【0009】
例えば、音声処理用のアプリケーションソフトウェアの実行におけるMICデータを使用した処理が滞る場合を考える。図19では、マイク504によって検出された外部音声がアナログ・デジタルコンバータ(ADC)506によってデジタルデータに変換されて得られるMICデータが、キューに登録されたバッファA乃至Eのうち、先頭から3つのバッファA乃至CにMICデータが格納されている。
【0010】
図20は、図19に示すようにMICデータを使用した処理が滞った場合の音声録音処理の動作を示すシーケンス図である。音声処理用のアプリケーションソフトウェアの実行におけるMICデータを使用した処理が滞り、その間に、サウンドドライバの実行によってバッファA乃至CにMICデータが格納された場合、CPUは、サウンドドライバの実行によって、それぞれのバッファにMICデータが格納される毎に、それぞれのバッファへの録音完了を音声処理用のアプリケーションソフトウェアへ通知する(S511、S512、S513)。
【0011】
その後に、音声処理装置内のCPUのリソースが音声処理用のアプリケーションソフトウェアに割り当てられると、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、まず、バッファAへの録音完了通知を取得し、キューの先頭に登録されたバッファAに格納されたMICデータを使用して、所定の音声処理を行う(S514)。具体的には、図21に示すように、バッファA内の過去のMICデータが音声処理用のアプリケーションソフトウェアにおける受付部に受け付けられて、処理部によって処理される。
【0012】
次に、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して、S514において処理の対象となったMICデータが格納されたバッファAをキューの末尾に登録するように要求する(S515)。更に、CPUは、サウンドドライバの実行によって、登録が要求されたバッファA、換言すれば、キューの先頭のバッファAを、キューの末尾に登録する(S516)。これにより、それまではキューの2番目に登録されていたバッファBがキューの先頭になる。
【0013】
次に、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、バッファBへの録音完了通知を取得し、キューの先頭に登録されたバッファBに格納されたMICデータを使用して、所定の音声処理を行う(S517)。具体的には、図22に示すように、バッファB内の過去のMICデータが音声処理用のアプリケーションソフトウェアにおける受付部に受け付けられて、処理部によって処理される。
【0014】
次に、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して、S517において処理の対象となったMICデータが格納されたバッファBをキューの末尾に登録するように要求する(S518)。更に、CPUは、サウンドドライバの実行によって、登録が要求されたバッファB、換言すれば、キューの先頭のバッファBを、キューの末尾に登録する(S519)。これにより、それまではキューの2番目に登録されていたバッファCがキューの先頭になる。
【0015】
次に、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、バッファCへの録音完了通知を取得し、キューの先頭に登録されたバッファCに格納されたMICデータを使用して、所定の音声処理を行う(S520)。具体的には、図23に示すように、バッファC内の過去のMICデータが音声処理用のアプリケーションソフトウェアにおける受付部に受け付けられて、処理部によって処理される。
【0016】
次に、CPUは、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して、S520において処理の対象となったMICデータが格納されたバッファCをキューの末尾に登録するように要求する(S521)。更に、CPUは、サウンドドライバの実行によって、登録が要求されたバッファC、換言すれば、キューの先頭のバッファCを、キューの末尾に登録する(S522)。
【0017】
このように、最新のMICデータは、当初、キューの3番目に登録されたバッファCに格納されているため、当該最新のMICデータは直ちに処理されない。すなわち、バッファCに最新のMICデータが格納されてから当該最新のMICデータが処理されるまでには、バッファA及びBに登録されたバッファ内の過去のMICデータの処理に要する時間に相当する時間差が生じ、最新のMICデータを使用した出力音声の調整が適切に行われる保証がない。
【0018】
このような問題に対して、出力音声調整のための専用のデジタル信号プロセッサ(DSP)を設けることも考えられるが、コストが増加するため、適切ではない。
【0019】
本発明の目的は、上述した問題を解決するものであり、外部音声データを使用した適切な音声処理を行うことが可能な音声処理装置、音声処理方法、及び、音声処理装置としてのコンピュータによって実行される音声処理プログラムを提供するものである。
【課題を解決するための手段】
【0020】
本発明に係る音声処理装置は、複数のバッファと、外部音声を検出する外部音声検出手段と、前記複数のバッファのうち、空のバッファに前記外部音声検出手段により検出された前記外部音声のデータを格納させる格納処理手段と、前記格納処理手段により前記バッファに格納された前記外部音声のデータのうち、該外部音声のデータを使用した処理に応じて定まる外部音声のデータを読み出す外部音声データ読み出し手段と、前記外部音声データ読み出し手段により読み出された前記外部音声のデータを使用した処理を行う外部音声処理手段とを有する。
【0021】
この構成によれば、音声処理が滞ることにより、複数のバッファに外部音声データが格納された場合には、音声処理に応じて定まる外部音声データが読み出されて、当該外部音声のデータを使用した音声処理が行われる。従って、適切な外部音声データを使用した音声処理を行うことが可能となる。
【0022】
また、本発明に係る音声処理装置は、前記外部音声データ読み出し手段が、前記格納処理手段により前記バッファに格納された前記外部音声のデータのうち、最新の外部音声のデータを読み出し、前記外部音声処理手段が、前記外部音声データ読み出し手段により読み出された前記最新の外部音声のデータに基づいて、出力音声のレベルを調整するようにしてもよい。
【0023】
この構成によれば、外部音声のレベルに応じて出力音声のレベルを調整する際に、その調整処理が滞って複数のバッファに外部音声データが格納された場合には、最新の外部音声データが読み出されて、当該外部音声のデータを使用した音声処理が行われる。従って、適切な外部音声データを使用した音声処理を行うことが可能となる。
【0024】
同様の観点から、本発明に係る音声処理装置は、前記空のバッファをキューに登録するキュー登録手段を有し、前記格納処理手段が、前記キューに登録された前記空のバッファに前記外部音声のデータを格納させるようにしてもよい。
【0025】
また、本発明に係る音声処理装置は、前記外部音声のデータが格納されたバッファのうち、前記最新の外部音声のデータが格納されたバッファを特定する最新外部音声データ格納バッファ特定手段を有し、前記外部音声データ読み出し手段が、前記最新外部音声データ格納バッファ特定手段により特定されたバッファに格納された前記最新の外部音声のデータを読み出すようにしてもよい。
【0026】
この構成によれば、最新の外部音声のデータが格納されたバッファが特定されることにより、そのバッファから最新の外部音声データが読み出されて、当該外部音声のデータを使用した音声処理を適切に行うことが可能となる。
【0027】
同様の観点から、本発明に係る音声処理装置は、前記バッファにおける前記外部音声データの格納状況の情報を保持する保持手段を有し、前記最新外部音声データ格納バッファ特定手段が、前記保持手段に保持されたバッファの格納状況の情報に基づいて、前記最新の外部音声のデータが格納されたバッファを特定するようにしてもよい。
【0028】
また、本発明に係る音声処理装置は、前記バッファに格納された前記外部音声のデータが予め定められた有効期間内であるか否かを判定する判定手段と、前記判定手段により有効期間内でないと判定された場合に、対応する前記外部音声のデータを、前記外部音声処理手段による処理の対象から除外する第1の除外手段とを有するようにしてもよい。
【0029】
この構成によれば、バッファに格納された外部音声データが有効期間内でない場合には、その外部音声データは出力音声の調整には不要であるとみなして処理対象から除外することで、適切な音声処理を行うことができる。
【0030】
同様の観点から、本発明に係る音声処理装置は、前記判定手段が、前記外部音声のデータが前記バッファに格納されてからの経過時間が所定時間内であるか否かを判定するようにしてもよい。
【0031】
また、本発明に係る音声処理装置は、前記最新の外部音声のデータよりも過去に格納された外部音声のデータを、前記外部音声処理手段による処理の対象から除外する第2の除外手段を有するようにしてもよい。
【0032】
この構成によれば、最新の外部音声データよりも過去にバッファに格納された外部音声データについては、出力音声の調整には不要であるとみなして処理対象から除外することで、適切な音声処理を行うことができる。
【0033】
本発明に係る音声処理方法は、外部音声を検出する外部音声検出ステップと、複数のバッファのうち、空のバッファに前記外部音声検出手段により検出された前記外部音声のデータを格納させる格納処理ステップと、前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、該外部音声のデータを使用した処理に応じて定まる外部音声のデータを読み出す外部音声データ読み出しステップと、前記外部音声データ読み出しステップにより読み出された前記外部音声のデータを使用した処理を行う外部音声処理ステップとを有する。
【0034】
また、本発明に係る音声処理方法は、前記外部音声データ読み出しステップが、前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、最新の外部音声のデータを読み出し、前記外部音声処理ステップが、前記外部音声データ読み出しステップにより読み出された前記最新の外部音声のデータに基づいて、出力音声のレベルを調整するようにしてもよい。
【0035】
また、本発明に係る音声処理方法は、前記外部音声のデータが格納されたバッファのうち、前記最新の外部音声のデータが格納されたバッファを特定する最新外部音声データ格納バッファ特定ステップを有し、前記外部音声データ読み出しステップが、前記最新外部音声データ格納バッファ特定ステップにより特定されたバッファに格納された前記最新の外部音声のデータを読み出すようにしてもよい。
【0036】
また、本発明に係る音声処理方法は、前記バッファに格納された前記外部音声のデータが予め定められた有効期間内であるか否かを判定する判定ステップと、前記判定ステップにより有効期間内でないと判定された場合に、対応する前記外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第1の除外ステップとを有するようにしてもよい。
【0037】
また、本発明に係る音声処理方法は、前記最新の外部音声のデータよりも過去に格納された外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第2の除外ステップを有するようにしてもよい。
【0038】
本発明に係る音声処理プログラムは、外部音声を検出する外部音声検出ステップと、複数のバッファのうち、空のバッファに前記外部音声検出手段により検出された前記外部音声のデータを格納させる格納処理ステップと、前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、該外部音声のデータを使用した処理に応じて定まる外部音声のデータを読み出す外部音声データ読み出しステップと、前記外部音声データ読み出しステップにより読み出された前記外部音声のデータを使用した処理を行う外部音声処理ステップとを音声処理装置としてのコンピュータに実行させる。
【0039】
また、本発明に係る音声処理プログラムは、前記外部音声データ読み出しステップが、前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、最新の外部音声のデータを読み出し、前記外部音声処理ステップが、前記外部音声データ読み出しステップにより読み出された前記最新の外部音声のデータに基づいて、出力音声のレベルを調整するようにしてもよい。
【0040】
また、本発明に係る音声処理プログラムは、前記外部音声のデータが格納されたバッファのうち、前記最新の外部音声のデータが格納されたバッファを特定する最新外部音声データ格納バッファ特定ステップを音声処理装置としてのコンピュータに実行させ、前記外部音声データ読み出しステップが、前記最新外部音声データ格納バッファ特定ステップにより特定されたバッファに格納された前記最新の外部音声のデータを読み出すようにしてもよい。
【0041】
また、本発明に係る音声処理プログラムは、前記バッファに格納された前記外部音声のデータが予め定められた有効期間内であるか否かを判定する判定ステップと、前記判定ステップにより有効期間内でないと判定された場合に、対応する前記外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第1の除外ステップとを音声処理装置としてのコンピュータに実行させるようにしてもよい。
【0042】
また、本発明に係る音声処理プログラムは、前記最新の外部音声のデータよりも過去に格納された外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第2の除外ステップを音声処理装置としてのコンピュータに実行させるようにしてもよい。
【発明の効果】
【0043】
本発明によれば、音声処理に応じて定まる外部音声データが読み出されて、当該外部音声データを使用した音声処理が行われるため、外部音声データを使用した適切な音声処理を行うことが可能となる。
【発明を実施するための最良の形態】
【0044】
以下、本発明の実施の形態について、図面を参照して具体的に説明する。図1は、本発明の実施形態に係る音声処理装置の構成を示す図である。図1に示す音声処理装置100は、例えば車両に搭載されるナビゲーション装置内に構成されるものであり、CPU102、マイク104、アナログ・デジタルコンバータ(ADC)106、デジタル・アナログコンバータ(DAC)108、スピーカ110及びメモリ112により構成される。
【0045】
CPU102は、音声処理用のアプリケーションソフトウェア、音声入出力用のサウンドドライバソフトウェア、ナビゲーション用のアプリケーションソフトウェア、オーディオ再生用のアプリケーションソフトウェア、通信用のアプリケーションソフトウェア等の各種のアプリケーションソフトウェアを実行する。これらのソフトウェアはメモリ112に記憶されており、CPU102は、当該メモリ112から必要に応じて各ソフトウェアを読み出して実行する。また、これらソフトウェアのうち、音声処理用のアプリケーションソフトウェアは、音声再生モジュール、音声認識モジュール及び出力音声調整モジュール等により構成される。
【0046】
次に、音声処理装置100の出力音声調整処理を説明する。図2は、音声処理装置100による出力音声調整処理を示すシーケンス図である。音声処理装置100内のCPU102のリソースが音声処理用のアプリケーションソフトウェアに割り当てられている間、CPU102によって、当該音声処理用のアプリケーションソフトウェアが実行される。
【0047】
CPU102は、音声処理用のアプリケーションソフトウェアの実行によって、メモリ112に設けられたバッファのうち、複数の空のバッファをMICデータの格納領域として特定する(S101)。
【0048】
図3は、MICデータの格納領域として特定される空のバッファについてのリスト(バッファリスト)の一例を示す図である。図4に示すバッファリストは、バッファ毎のバッファ情報によって構成され、当該バッファ情報は、対応するバッファの識別情報であるバッファIDと、対応するバッファの格納状況(空の場合は「空」、MICデータが格納されている場合は「満」)と、対応するバッファにMICデータが格納された場合の格納時刻とからなる。バッファ毎のバッファ情報の並び順は、当該バッファ情報に対応するバッファのキュー(後述)への登録順と一致する。CPU102は、このバッファリストを作成してメモリ112に記憶させる。
【0049】
再び、図2に戻って説明する。次に、CPU102は、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して、複数の空のバッファのキューへの登録を要求する(S102)。この登録要求には、複数の空のバッファの識別情報としてのバッファIDが含まれる。更に、CPU102は、サウンドドライバの実行により、空のバッファを待機させておくキューを用意し、S102において登録要求された複数の空のバッファを、そのキューに順に登録する(S103)。
【0050】
図4は、バッファのキューへの登録処理の一例を示す図である。音声処理用のアプリケーションソフトウェアの実行によって、バッファA乃至Eが空のバッファとして特定されると、サウンドドライバの実行によって、これらバッファA乃至Eがキューに先頭から順に登録される。
【0051】
再び、図2に戻って説明する。その後、CPU102は、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して録音開始命令を出す(S104)。更に、CPU102は、サウンドドライバの実行によって、この録音開始命令に応じて、マイク104によって検出された外部音声(車室内の音声)をADC106によってデジタル化して得られるMICデータを取り込んで、キューの登録順に空のバッファに格納する(S105)。ここでは、キューに登録されたバッファのうち、キューの先頭に近いバッファから順にMICデータが格納される。
【0052】
そして、バッファにMICデータが格納されると、CPU102は、サウンドドライバの実行によって、以下の処理を行う。まず、CPU102は、メモリ112に格納されたバッファリストを読み出し、MICデータが格納されたバッファのバッファIDを含むバッファ情報内の格納状況に、MICデータが格納されていることを示す「満」を設定するとともに、格納時刻に、そのMICデータが格納された時刻を設定する(S106)。更に、CPU102は、バッファへの録音完了を音声処理用のアプリケーションソフトウェアへ通知する(S107)。この通知(バッファ録音完了通知)には、MICデータが格納されたバッファのバッファIDが含まれている。
【0053】
バッファへの録音完了が通知されると、CPU102は、音声処理用のアプリケーションソフトウェアの実行によって、バッファ内の最新のMICデータを使用して、出力音声を調整する処理を行う(S108)。
【0054】
図5は、出力音声調整処理の動作を示すフローチャートである。CPU102は、音声処理用のアプリケーションソフトウェアの実行によって、以下の処理を行う。まず、CPU102は、バッファ録音完了通知を取得する(S151)。更に、CPU102は、メモリ112に格納されたバッファリストを読み出し、最新のMICデータが格納されたバッファを特定する。具体的には、CPU102は、バッファリストにおいて、バッファ録音完了通知時に含まれるバッファIDよりも、下位のバッファIDを含むバッファ情報内の格納状況を調べ、その格納状況に「満」が設定されているバッファ情報内のバッファIDのうち、最下位のバッファIDのバッファを、最新のMICデータが格納されたバッファとして特定する(S152)。
【0055】
次に、CPU102は、S152において特定したバッファに格納されたMICデータよりも新しいMICデータを使用した音声調整処理が既に済んでいるか否かを判定する(S153)。具体的には、CPU102は、バッファリストにおいて、最新のMICデータが格納されたバッファに対応するバッファ情報よりも下位のバッファ情報に対応するバッファに格納されたMICデータを直前の音声調整処理において使用している場合には、S153において肯定判断される。
【0056】
S152において特定したバッファに格納されたMICデータよりも新しいMICデータを使用した音声調整処理が済んでいない場合には、次に、CPU102は、S152において特定したバッファ内の最新のMICデータが有効期間内であるか否かを判定する(S154)。具体的には、CPU102は、バッファリストにおいて、最新のMICデータが格納されたバッファに対応するバッファ情報内の格納時刻を取得し、当該格納時刻から現在までの経過時間が予め定められた所定期間内であるか否かを判定する。
【0057】
最新のMICデータが有効期間内である場合には、次に、CPU102は、S152において特定したバッファ内の最新のMICデータを読み出し(S155)、その最新のMICデータを使用した音声調整処理を行う(S156)。具体的には、CPU102は、最新のMICデータに基づいて外部音声のレベルを認識し、その外部音声のレベルに応じてガイダンス音声のレベルを設定し、その設定したレベルに応じてデジタルのガイダンス音声のデータを補正する。ここでは、外部音声のレベルが高いほど、ガイダンス音声のレベルが高くなるように、補正される。更に、CPU102は、サウンドドライバの実行によって、補正後のガイダンス音声を再生する。補正後のガイダンス音声のデータは、DAC108によってアナログ化され、スピーカ110からガイダンス音声が出力される。
【0058】
次に、CPU102は、S156における出力音声調整処理に使用した最新のMICデータと、当該最新のMICデータよりも過去のMICデータとをバッファから削除する(S157)。上述したS156において、最新のMICデータを使用した出力音声調整処理が行われているため、当該最新のMICデータは不要であり、当該最新のMICデータよりも過去のMICデータも、出力音声調整処理にリアルタイム性が要求されることを鑑みれば、同様に不要である。このため、S157では、最新のMICデータと、当該最新のMICよりも過去のMICデータとがバッファから削除され、出力音声調整処理の対象から除外される。
【0059】
具体的には、CPU102は、バッファリストにおいて、最新のMICデータが格納されたバッファに対応するバッファ情報内のバッファIDを取得し、そのバッファIDにより特定されるバッファ内のMICデータを削除する。更に、CPU102は、バッファリストにおいて、最新のMICデータが格納されたバッファに対応するバッファ情報よりも上位に設定されているバッファ情報を、最新のMICデータよりも過去のMICデータが格納されたバッファに対応するバッファ情報として特定する。そして、CPU102は、特定したバッファ情報内のバッファIDを取得し、そのバッファIDにより特定されるバッファ内のMICデータを削除する。
【0060】
次に、CPU102は、サウンドドライバに対して、S157においてMICデータを削除することによって空になったバッファのキューへの登録要求を行うとともに、バッファリストを更新する(S158)。具体的には、CPU102は、バッファリストにおいて、S157にてMICデータを削除したバッファに対応するバッファ情報内のバッファIDを取得し、当該バッファIDを含んだ登録要求を行う。更に、CPU102は、バッファリストにおいて、S157にてMICデータを削除したバッファに対応するバッファ情報内の格納状況が「満」である場合には「空」に更新し、格納時刻が設定されている場合には、その格納時刻を削除する。更に、CPU102は、S157にてMICデータを削除したバッファに対応するバッファ情報をバッファリストの末尾に移動させる。
【0061】
空になったバッファのキューへの登録要求と、バッファリストの更新との後、CPU102は、バッファ録音完了通知の取得待ち状態となる(S159)。その後は、再び、S151におけるバッファ録音完了通知の取得(S151)以降の動作が繰り返される。
【0062】
一方、何らかの不具合が生じたことによって、S153において、S152にて特定したバッファに格納されたMICデータよりも新しいMICデータを使用した音声調整処理が済んでいると判定した場合には、CPU102は、バッファ内の全てのMICデータを削除する(S160)。S152にて特定したバッファに格納されたMICデータよりも新しいMICデータを使用した音声調整処理が済んでいる場合には、バッファに格納されているMICデータは、その音声調整処理に使用されたMICデータよりも過去のMICデータであり、出力音声調整処理にリアルタイム性が要求されることを鑑みれば、不要である。このため、S160では、バッファに格納された全てのMICデータが当該バッファから削除される。
【0063】
また、S154において、最新のMICデータが有効期間内でないと判定した場合にも、CPU102は、バッファ内の全てのMICデータを削除する(S160)。最新のMICデータが有効期間内でない場合には、その最新のMICデータのみならず、当該最新のMICデータよりも過去のMICデータも有効期間内でなく、出力音声調整処理にリアルタイム性が要求されることを鑑みれば、不要である。このため、S160では、バッファに格納された全てのMICデータが当該バッファから削除され、出力音声調整処理の対象から除外される。
【0064】
S160において、バッファ内の全てのMICデータが削除された場合、次に、CPU102は、サウンドドライバに対して、S160においてMICデータを削除することによって空になったバッファのキューへの登録要求を行うとともに、バッファリストの更新とを行う(S158)。具体的には、CPU102は、バッファリストにおいて、S160にてMICデータを削除したバッファに対応するバッファ情報内のバッファIDを取得し、当該バッファIDを含んだ登録要求を行う。次に、CPU102は、バッファリストにおいて、S160にてMICデータを削除したバッファに対応するバッファ情報内の格納状況が「満」である場合には「空」に更新し、格納時刻が設定されている場合には、その格納時刻を削除する。更に、CPU102は、S160にてMICデータを削除したバッファに対応するバッファ情報をバッファリストの末尾に移動させる。
【0065】
空になったバッファのキューへの登録要求と、バッファリストの更新との後、CPU102は、バッファ録音完了通知の取得待ち状態となる(S159)。その後は、再び、S151におけるバッファ録音完了通知の取得(S151)以降の動作が繰り返される。
【0066】
再び、図2に戻って説明する。CPU102は、音声処理用のアプリケーションソフトウェアの実行によって、サウンドドライバに対して、空のバッファをキューの末尾に登録するように要求する(S109)。更に、CPU102は、サウンドドライバの実行によって、登録が要求されたバッファを、キューの末尾に登録する(S110)。
【0067】
以下、上述したS106乃至S110の動作の具体例を説明する。まず、1つのバッファにのみMICデータが格納されている場合について説明する。この場合、図6に示すように、サウンドドライバにおけるキューの先頭に登録されたバッファ(ここではバッファA)にMICデータが格納されることになる。そして、図7に示すように、バッファリストの最上位であるバッファAに対応するバッファ情報内の格納状況が「満」となり、格納時刻が設定され、当該バッファAへのMICデータの格納が完了したことを示すバッファ録音完了通知がなされる。
【0068】
その後、図8に示すように、バッファAに格納されたMICデータが読み出されて、音声処理用のアプリケーションソフトウェアにおける受付部に受け付けられ、更に、図9に示すように、処理部によって処理される。処理が終了すると、図10に示すように、バッファAに格納されたMICデータが削除され、空になったバッファAがキューの末尾に登録される。また、図11に示すように、バッファリストにおけるバッファAに対応するバッファ情報内の格納状況が「満」から「空」に更新されるとともに、格納時刻が削除され、更に、バッファAに対応するバッファ情報が末尾に移動する。これにより、キューにおけるバッファの登録状況及びバッファの格納状況と、バッファリストの内容との整合が図られる。
【0069】
次に、音声処理用のアプリケーションソフトウェアの実行が滞ることによって、複数のバッファにMICデータが格納される場合について説明する。この場合、図12に示すように、サウンドドライバにおけるキューの先頭のバッファから順次複数のバッファ(ここでは、バッファA乃至C)にMICデータが格納される。これらバッファA乃至Cに格納されたMICデータのうち、最新のものはバッファCに格納されたMICデータである。この場合、図13に示すように、バッファリストにおける、バッファA乃至Cに対応するバッファ情報内の格納状況が「満」となり、格納時刻が設定され、バッファA乃至CへのMICデータの格納が完了したことを示すバッファ録音完了通知がなされている。
【0070】
その後、図14に示すように、バッファA乃至Cに格納されたMICデータのうち、最新のMICデータであるバッファCに格納されたMICデータが読み出されて、音声処理用のアプリケーションソフトウェアにおける受付部に受け付けられ、更に、図15に示すように、処理部によって処理される。処理が終了すると、図16に示すように、処理に使用されたバッファCに格納された最新のMICデータが削除されるとともに、当該最新のMICデータよりも過去のMICデータである、バッファA及びBに格納されたMICデータが削除され、空になったバッファA乃至Cがキューの末尾に登録される。
【0071】
また、バッファリストにおけるバッファCに対応するバッファ情報内の格納状況が「満」から「空」に更新されるとともに、格納時刻が削除され、更に、バッファCに対応するバッファ情報よりも上位であるバッファA及びBに対応するバッファ情報と、バッファCに対応するバッファ情報とが末尾に移動する(図17参照)。これにより、キューにおけるバッファの登録状況及びバッファの格納状況と、バッファリストの内容との整合が図られる。
【0072】
このように、本実施形態の音声処理装置100は、音声処理用のアプリケーションソフトウェアの実行が滞ることによって、複数のバッファにMICデータが格納されている場合には、これら複数のバッファに格納されたMICデータのうち、最新のMICデータを読み出して、その最新のMICデータを使用した出力音声調整処理を行う。従って、従来のように、複数のバッファにMICデータが格納されている場合に、過去のMICデータから順に使用して出力音声調整処理を行うことがなく、リアルタイム性を要求される出力音声調整処理を適切に行うことができる。
【0073】
また、本実施形態の音声処理装置100は、キューに登録された各バッファの登録順、当該バッファにおけるMICデータの格納状況、及び、当該バッファにおけるMICデータの格納時刻を表すバッファリストを用いることにより、最新のMICデータが格納されているバッファを的確に特定することができるとともに、バッファに格納されたMICデータが有効期間内であるか否かを適切に判断することが可能となる。
【0074】
また、本実施形態の音声処理装置100は、バッファに格納されたMICデータが有効期間内でない場合や、出力音声調整処理に使用された最新のMICデータよりも過去の場合には、そのMICデータは出力音声調整処理には不要であるとみなして削除することで、バッファの有効利用を図ることができる。
【0075】
なお、上述した実施形態では、出力音声調整処理に使用された最新のMICデータよりも過去の場合には、そのMICデータは出力音声調整処理には不要であるとみなして削除したが、削除せずに出力音声調整処理に使用するようにしてもよい。この場合、CPU102は、図5のS155乃至S157の動作に代えて、以下の動作を行う。
【0076】
CPU102は、最新のMICデータが格納されたバッファとして特定したバッファ内のその最新のMICデータを読み出すとともに、当該最新のMICデータよりも過去のMICデータをバッファから読み出す。具体的には、CPU102は、バッファリストにおいて、最新のMICデータが格納されたバッファに対応するバッファ情報よりも上位に設定されているバッファ情報を、最新のMICデータよりも過去のMICデータが格納されたバッファに対応するバッファ情報として特定する。そして、CPU102は、その特定したバッファに対応するバッファ情報内のバッファIDを取得し、そのバッファIDにより特定されるバッファ内のMICデータを読み出す。
【0077】
更に、CPU102は、読み出した最新のMICデータと、当該最新のMICデータよりも過去のMICデータとを使用した音声調整処理を行う。具体的には、CPU102は、最新のMICデータと、当該最新のMICデータよりも過去のMICデータとに基づいて、外部音声の平均レベルを認識し、その外部音声の平均レベルに応じてガイダンス音声のレベルを設定し、その設定したレベルに応じてデジタルのガイダンス音声のデータを補正する。更に、CPU102は、サウンドドライバの実行によって、補正後のガイダンス音声を再生する。補正後のガイダンス音声のデータは、DAC108によってアナログ化され、スピーカ110からガイダンス音声が出力される。
【0078】
次に、CPU102は、出力音声調整処理に使用したMICデータ、換言すれば、最新のMICデータと、当該最新のMICデータよりも過去のMICデータとをバッファから削除する。具体的には、CPU102は、バッファリストにおいて、最新のMICデータが格納されたバッファに対応するバッファ情報内のバッファIDを取得し、そのバッファIDにより特定されるバッファ内のMICデータを削除する。更に、CPU102は、バッファリストにおいて、最新のMICデータが格納されたバッファに対応するバッファ情報よりも上位に設定されているバッファ情報内のバッファIDを取得し、そのバッファIDにより特定されるバッファ内のMICデータを削除する。
【0079】
その後は、上述と同様、CPU102は、サウンドドライバに対して、MICデータを削除することによって空になったバッファのキューへの登録要求を行うとともに、バッファリストを更新する。
【0080】
また、上述した実施形態では、有効期間内にないMICデータについては出力音声調整処理に使用せずに削除したが、当該MICデータについても出力音声調整処理に使用するようにしてもよい。
【0081】
また、上述した実施形態では、MICデータの格納状態を、バッファリスト(リスト構造)によって管理したが、例えば、スタック等の構造を用いて管理してもよい。
【産業上の利用可能性】
【0082】
以上、説明したように、本発明に係る音声処理装置、音声処理方法及び音声処理プログラムは、外部音声データを使用した適切な音声処理を行うことが可能であり、音声処理装置等として有用である。
【図面の簡単な説明】
【0083】
【図1】本発明の実施形態に係る音声処理装置の構成を示す図である。
【図2】音声処理装置の動作を示すシーケンス図である。
【図3】バッファリストの第1の例を示す図である。
【図4】キューへのバッファ登録処理の第1の例を示す図である。
【図5】出力音声調整処理の動作を示すフローチャートである。
【図6】バッファへのMICデータの格納処理の第1の例を示す図である。
【図7】バッファリストの第2の例を示す図である。
【図8】バッファからのMICデータの読み出しの第1の例を示す図である。
【図9】MICデータを使用した出力音声調整処理の第1の例を示す図である。
【図10】キューへのバッファ登録処理の第2の例を示す図である。
【図11】バッファリストの第3の例を示す図である。
【図12】バッファへのMICデータの格納処理の第2の例を示す図である。
【図13】バッファリストの第3の例を示す図である。
【図14】バッファからのMICデータの読み出しの第2の例を示す図である。
【図15】MICデータを使用した出力音声調整処理の第2の例を示す図である。
【図16】キューへのバッファ登録処理の第3の例を示す図である。
【図17】バッファリストの第4の例を示す図である。
【図18】従来の音声処理の動作を示す第1のシーケンス図である。
【図19】従来のバッファへのMICデータの格納処理の一例を示す図である。
【図20】従来の音声処理の動作を示す第2のシーケンス図である。
【図21】従来のMICデータを使用した音声処理の第1の例を示す図である。
【図22】従来のMICデータを使用した音声処理の第2の例を示す図である。
【図23】従来のMICデータを使用した音声処理の第3の例を示す図である。
【符号の説明】
【0084】
100 音声処理装置
102 CPU
104 マイク
106 ADC
108 DAC
110 スピーカ
112 メモリ

【特許請求の範囲】
【請求項1】
複数のバッファと、
外部音声を検出する外部音声検出手段と、
前記複数のバッファのうち、空のバッファに前記外部音声検出手段により検出された前記外部音声のデータを格納させる格納処理手段と、
前記格納処理手段により前記バッファに格納された前記外部音声のデータのうち、該外部音声のデータを使用した処理に応じて定まる外部音声のデータを読み出す外部音声データ読み出し手段と、
前記外部音声データ読み出し手段により読み出された前記外部音声のデータを使用した処理を行う外部音声処理手段とを有する音声処理装置。
【請求項2】
前記外部音声データ読み出し手段は、前記格納処理手段により前記バッファに格納された前記外部音声のデータのうち、最新の外部音声のデータを読み出し、
前記外部音声処理手段は、前記外部音声データ読み出し手段により読み出された前記最新の外部音声のデータに基づいて、出力音声のレベルを調整する請求項1に記載の音声処理装置。
【請求項3】
前記空のバッファをキューに登録するキュー登録手段を有し、
前記格納処理手段は、前記キューに登録された前記空のバッファに前記外部音声のデータを格納させる請求項2に記載の音声処理装置。
【請求項4】
前記外部音声のデータが格納されたバッファのうち、前記最新の外部音声のデータが格納されたバッファを特定する最新外部音声データ格納バッファ特定手段を有し、
前記外部音声データ読み出し手段は、前記最新外部音声データ格納バッファ特定手段により特定されたバッファに格納された前記最新の外部音声のデータを読み出す請求項2又は3に記載の音声処理装置。
【請求項5】
前記バッファにおける前記外部音声データの格納状況の情報を保持する保持手段を有し、
前記最新外部音声データ格納バッファ特定手段は、前記保持手段に保持されたバッファの格納状況の情報に基づいて、前記最新の外部音声のデータが格納されたバッファを特定する請求項4に記載の音声処理装置。
【請求項6】
前記バッファに格納された前記外部音声のデータが予め定められた有効期間内であるか否かを判定する判定手段と、
前記判定手段により有効期間内でないと判定された場合に、対応する前記外部音声のデータを、前記外部音声処理手段による処理の対象から除外する第1の除外手段とを有する請求項2乃至5のいずれかに記載の音声処理装置。
【請求項7】
前記判定手段は、前記外部音声のデータが前記バッファに格納されてからの経過時間が所定時間内であるか否かを判定する請求項6に記載の音声処理装置。
【請求項8】
前記最新の外部音声のデータよりも過去に格納された外部音声のデータを、前記外部音声処理手段による処理の対象から除外する第2の除外手段を有する請求項2乃至7のいずれかに記載の音声処理装置。
【請求項9】
外部音声を検出する外部音声検出ステップと、
複数のバッファのうち、空のバッファに前記外部音声検出手段により検出された前記外部音声のデータを格納させる格納処理ステップと、
前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、該外部音声のデータを使用した処理に応じて定まる外部音声のデータを読み出す外部音声データ読み出しステップと、
前記外部音声データ読み出しステップにより読み出された前記外部音声のデータを使用した処理を行う外部音声処理ステップとを有する音声処理方法。
【請求項10】
前記外部音声データ読み出しステップは、前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、最新の外部音声のデータを読み出し、
前記外部音声処理ステップは、前記外部音声データ読み出しステップにより読み出された前記最新の外部音声のデータに基づいて、出力音声のレベルを調整する請求項9に記載の音声処理方法。
【請求項11】
前記外部音声のデータが格納されたバッファのうち、前記最新の外部音声のデータが格納されたバッファを特定する最新外部音声データ格納バッファ特定ステップを有し、
前記外部音声データ読み出しステップは、前記最新外部音声データ格納バッファ特定ステップにより特定されたバッファに格納された前記最新の外部音声のデータを読み出す請求項9又は10に記載の音声処理方法。
【請求項12】
前記バッファに格納された前記外部音声のデータが予め定められた有効期間内であるか否かを判定する判定ステップと、
前記判定ステップにより有効期間内でないと判定された場合に、対応する前記外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第1の除外ステップとを有する請求項10又は11に記載の音声処理方法。
【請求項13】
前記最新の外部音声のデータよりも過去に格納された外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第2の除外ステップを有する請求項10乃至12のいずれかに記載の音声処理方法。
【請求項14】
外部音声を検出する外部音声検出ステップと、
複数のバッファのうち、空のバッファに前記外部音声検出手段により検出された前記外部音声のデータを格納させる格納処理ステップと、
前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、該外部音声のデータを使用した処理に応じて定まる外部音声のデータを読み出す外部音声データ読み出しステップと、
前記外部音声データ読み出しステップにより読み出された前記外部音声のデータを使用した処理を行う外部音声処理ステップとを音声処理装置としてのコンピュータに実行させる音声処理プログラム。
【請求項15】
前記外部音声データ読み出しステップは、前記格納処理ステップにより前記バッファに格納された前記外部音声のデータのうち、最新の外部音声のデータを読み出し、
前記外部音声処理ステップは、前記外部音声データ読み出しステップにより読み出された前記最新の外部音声のデータに基づいて、出力音声のレベルを調整する請求項14に記載の音声処理プログラム。
【請求項16】
前記外部音声のデータが格納されたバッファのうち、前記最新の外部音声のデータが格納されたバッファを特定する最新外部音声データ格納バッファ特定ステップを音声処理装置としてのコンピュータに実行させ、
前記外部音声データ読み出しステップは、前記最新外部音声データ格納バッファ特定ステップにより特定されたバッファに格納された前記最新の外部音声のデータを読み出す請求項14又は15に記載の音声処理プログラム。
【請求項17】
前記バッファに格納された前記外部音声のデータが予め定められた有効期間内であるか否かを判定する判定ステップと、
前記判定ステップにより有効期間内でないと判定された場合に、対応する前記外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第1の除外ステップとを音声処理装置としてのコンピュータに実行させる請求項14乃至16のいずれかに記載の音声処理プログラム。
【請求項18】
前記最新の外部音声のデータよりも過去に格納された外部音声のデータを、前記外部音声処理ステップによる処理の対象から除外する第2の除外ステップを音声処理装置としてのコンピュータに実行させる請求項14乃至17のいずれかに記載の音声処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2009−163182(P2009−163182A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−3070(P2008−3070)
【出願日】平成20年1月10日(2008.1.10)
【出願人】(000101732)アルパイン株式会社 (2,424)