話者認識装置と話者認識方法およびプログラム
【課題】簡単かつ容易に話者認識を行うことができるようにする。
【解決手段】係数蓄積部40には、音声波形を予測するための予測係数を話者毎に蓄積させておく。予測波形生成部33は、入力音声の音声データと予測係数を用いた演算を行い、話者毎に予測波形を生成する。予測誤差算出部34は、入力音声の音声波形に対する予測波形の誤差を話者毎に算出する。話者特定部35は、算出された話者毎の誤差に基づいて、入力音声の話者を特定する。予測係数は、話者の音声データに対して線形予測分析を行って得られた線形予測係数を用いる。時間領域を周波数領域に変換する処理等を行う必要がなく、時間領域で話者認識を行えるようになる。
【解決手段】係数蓄積部40には、音声波形を予測するための予測係数を話者毎に蓄積させておく。予測波形生成部33は、入力音声の音声データと予測係数を用いた演算を行い、話者毎に予測波形を生成する。予測誤差算出部34は、入力音声の音声波形に対する予測波形の誤差を話者毎に算出する。話者特定部35は、算出された話者毎の誤差に基づいて、入力音声の話者を特定する。予測係数は、話者の音声データに対して線形予測分析を行って得られた線形予測係数を用いる。時間領域を周波数領域に変換する処理等を行う必要がなく、時間領域で話者認識を行えるようになる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、話者認識装置と話者認識方法およびプログラムに関する。詳しくは、話者の音声から予測係数を生成して話者毎に予め蓄積しておき、話者認識を行う際には、入力音声の音声波形と予測係数を用いて生成した話者毎の予測波形を比較して、この比較結果に基づいて入力音声の話者の特定を行うものである。
【背景技術】
【0002】
従来、話者認識法においては、音響信号の特徴を抽出し、その特徴を話者毎の特徴と照合することによって行われる。音響信号から抽出する特徴として、例えば特許文献1の音響特徴抽出装置では、メルケプストラム係数(MFCC:Mel-Frequency Cepstrum Coefficient)を算出することが開示されている。メルケプストラム係数は、音響信号のフーリエ変換(FFT:Fast Fourier Transform)を行って周波数領域の信号に変換したのち、周波数軸上に三角窓を配置して周波数領域の信号のフィルタバンク分析を行い、フィルタバンク出力すなわち窓の幅に対応する周波数帯域のパワーについて、離散コサイン変換(DCT:Discrete Cosine Transform)を行うことで得られるものである。
【0003】
【特許文献1】特開2002−278580号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、メルケプストラム係数(MFCC)を用いた従来の話者認識を行う場合、図14に示すように、ステップST111で音声取得を開始したのち、ステップST112のFFTと、ステップST113のDCTおよびステップST114のMFCCの処理をカスケードに行って音声の学習が行われる。また、話者認識では、ステップST121で音声取得を開始したのち、音声の学習によって得られた特徴量と、ステップST122のFFTとステップST123のDCTおよびステップST124のMFCCの処理をカスケードに行って得られた特徴量を、ステップST125において隠れマルコフ則(HMM:hidden Markov model)といわれる統計モデルで処理することにより推定した話者がステップST126で提示される。
【0005】
このようなFFT、DCT、MFCCおよびHMMは、複雑な計算を行うものであり、話者認識では、これらの処理をカスケードに行うことから、話者認識を高速に行うためには、性能の高い処理装置が必要となり、安価に話者認識を行うことができない。
【0006】
また、携帯機器等の認証において、指紋等の生体情報だけでなく、発話音声を用いた認証を行えるようにすれば、認証操作を容易に行うことができる。しかし、携帯機器等は処理能力が高くなく大容量のメモリを実装することも小型化やコスト面から困難であり、FFTやMFCCおよびHMMの処理をカスケードに行うものとすると、リアルタイム性を損なわず、速やかに話者認識を行うことができない。
【0007】
そこで、この発明では、簡単かつ容易に話者認識を行うことができる話者認識装置と話者認識方法およびプログラムを提供するものである。
【課題を解決するための手段】
【0008】
本発明の第1の側面は、音声波形を予測するための予測係数を話者毎に蓄積した係数蓄積部と、入力音声の音声データと前記予測係数を用いた演算を行い、前記話者毎に予測波形を生成する予測波形生成部と、前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出する予測誤差算出部と、前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定する話者特定部とを備える話者認識装置にある。
【0009】
この話者認識装置では、話者毎の音声データに対して例えば線形予測分析を行い、音声波形を予測するための予測係数を生成して、この予測係数に話者を関連付けて予め係数蓄積部に蓄積される。また、話者認識装置では、話者認識の対象である入力音声の音声波形に対する予測係数を用いて生成された予測波形の誤差の算出対象区間を、複数の比較単位区間に分割して、比較単位区間毎に予測係数の生成が行われる。
【0010】
さらに、話者認識装置では、話者認識を行う場合、話者認識の対象である入力音声の音声波形に対する予測係数を用いて生成された予測波形の誤差が話者毎に算出されて、算出された話者毎の誤差に基づいて、入力音声の話者の特定が行われる。話者毎の誤差としては、比較単位区間毎に得た誤差の統計的処理によって得た統計値が用いられる。例えば、比較単位区間毎に得た誤差の平均値や分散が用いられる。誤差の統計的処理では、誤差の算出対象区間における比較単位区間毎の誤差、または算出対象区間の先頭から複数の比較単位区間の誤差、または算出対象区間に対して比較単位区間の間引きを行い、間引き後の比較単位区間の誤差が用いられる。
【0011】
本発明の第2の側面は、音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップとを備える話者認識方法にある。
【0012】
本発明の第3の側面は、コンピュータに、音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップとを実行させるプログラムにある。
【0013】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータに対して、コンピュータ読み取り可能な形式で提供する記憶媒体、通信媒体、例えば光ディスクや磁気ディスクおよび半導体メモリ等の記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ読み取り可能な形式で提供することにより、コンピュータ上でプログラムに応じた処理が実現される。
【発明の効果】
【0014】
この発明によれば、音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算が行われて、話者毎に予測波形が生成される。また、入力音声の音声波形に対する生成された予測波形の誤差が話者毎に算出されて、算出された話者毎の誤差に基づいて入力音声の話者が特定される。このため、時間領域を周波数領域に変換する処理等を行うとなく、簡単かつ容易に話者認識を行うことができる。
【発明を実施するための最良の形態】
【0015】
以下、図を参照しながら、この発明の実施の一形態について説明する。本発明の話者認識装置は、音声波形を予測するための予測係数を予め話者毎に生成して蓄積させておき、この予測係数と入力音声の音声データとを用いて演算を行い、話者毎に予測波形を生成する。さらに、話者認識装置は、入力音声の音声波形に対する予測波形の誤差を話者毎に算出して、この算出された話者毎の誤差に基づいて入力音声の話者を特定する。このように、話者認識装置は、時間領域を周波数領域に変換することなく、時間領域で話者認識を行うものである。
【0016】
また、話者毎の予測係数は、話者の音声データに対して例えば線形予測分析(LPC分析:Linear Predictive Coding)を行って得られた線形予測係数が用いられる。また、予測係数は、予測誤差の算出対象区間(以下「誤差算出対象区間」という)が複数の比較単位区間に分割されて、比較単位区間毎に生成される。
【0017】
線形予測分析は、過去あるいは未来の信号からそれよりも未来あるいは過去の信号を予測するディジタル信号処理の手法であり、前向き線形予測と後向き線形予測を行うことができる。前向き線形予測は、時刻nの信号を、それよりも過去のMサンプルの信号から予測するものである。また、後向き線形予測は、時刻nよりもMサンプル前の信号を、それよりも未来のMサンプルの信号から予測するものである。
【0018】
次に、前向き線形予測によって予め得られている話者毎の予測係数を用いて予測波形を生成して、音声入力波形と予測波形の誤差に基づいて話者の認識を行う場合について説明する。
【0019】
図1は、話者認識装置の構成を示している。話者認識装置10は、個人係数登録部20と話者認識部30および係数蓄積部40で構成されている。個人係数登録部20は、話者の音声の特徴を予測係数で示すものとして、この予測係数を係数蓄積部40に蓄積させる処理を行う。また、話者認識部30は、係数蓄積部40に蓄積されている話者毎の予測係数を用いて予測波形の生成を行い、予測波形と入力音声の音声波形との誤差に基づき、入力音声の話者が予測係数の蓄積を行ったいずれの話者であるか特定する。
【0020】
個人係数登録部20は、音声取得部21とサンプル抽出部22および係数生成処理部23で構成されている。
【0021】
音声取得部21は、マイクロフォンを用いて構成されており、話者の音声を音声信号Saに変換してサンプル抽出部22に供給する。
【0022】
サンプル抽出部22は、A/D変換器やピーク検出器を用いて構成されている。サンプル抽出部22は、音声信号Saをディジタルの音声データDSaに変換する処理や、音声波形の最大ピークを検出して、最大ピークが検出された位置から音声データDSaを、予測係数の生成に必要とされるサンプル数抽出して係数生成処理部23に供給する処理を行う。
【0023】
係数生成処理部23は、サンプル抽出部22で抽出された音声データDSaを用いて前向き線形予測を行い、予測係数ωを生成する。さらに、生成した予測係数ωを話者と関連付けて係数蓄積部40に蓄積させる。また、係数生成処理部23は、良好な話者認識精度が得られるように、誤差算出対象区間を複数の比較単位区間に分割して、比較単位区間毎に予測係数を生成して蓄積させる処理を行う。
【0024】
話者認識部30は、音声取得部31とサンプル抽出部32、予測波形生成部33、予測誤差算出部34、話者特定部35で構成されている。
【0025】
音声取得部31は、音声取得部21と同様にマイクロフォンを用いて構成されており、話者の音声を音声信号Sbに変換してサンプル抽出部32に供給する。
【0026】
サンプル抽出部32は、音声取得部31と同様にA/D変換器やピーク検出器を用いて構成されている。サンプル抽出部32は、音声信号Sbをディジタルの音声データDSbに変換する処理や、音声波形の最大ピークを検出して、最大ピークが検出された位置から音声データDSbをサンプル抽出部22で抽出したサンプル数抽出して、予測波形生成部33と予測誤差算出部34に供給する処理を行う。
【0027】
予測波形生成部33は、係数蓄積部40に蓄積されている話者毎の予測係数ωと、サンプル抽出部32から供給された音声データDSbを用いて演算を行い、予測値DSyを算出する。すなわち、予測値DSyが示す信号波形が予測波形であり、予測波形生成部33は、算出した予測値DSyを予測誤差算出部34に供給する。
【0028】
予測誤差算出部34は、入力音声の音声波形に対する予測波形の誤差を、話者毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbに対する予測値DSyの誤差を算出して、この誤差を比較単位区間毎に加算する。さらに、予測誤差算出部34は、比較単位区間毎に得た誤差の統計的処理を行うことで得られた統計値を予測波形の誤差ESとして話者特定部35に供給する。予測誤差算出部34は、統計的処理によって予測波形の誤差の特徴を示す統計量を算出する。例えば比較単位区間毎に得た誤差の平均値、または平均値と分散等を統計量として算出する。
【0029】
話者特定部35は、算出された予測波形の誤差ESを話者間で比較したり、算出された予測波形の誤差ESと予め設定されている閾値の比較を行い、入力音声の音声波形に対する予測波形の誤差が最小で閾値未満となる予測波形を判別して、この予測波形の生成に用いた予測係数に関連付けられている話者を入力音声の話者と特定する。また、話者特定部35は、予測誤差と閾値との判定結果に応じて制御信号CSを生成して予測誤差算出部34に供給して、統計処理に用いる比較単位区間の追加等を行う。
【0030】
なお、図1の話者認識装置10では、個人係数登録部20と話者認識部30を別個に示しているが、予測係数登録時と話者認識時で音声取得部とサンプル抽出部を共用すれば、話者認識システムの構成が簡単となる。例えば、音声取得部21とサンプル抽出部22を削除して、予測係数登録時には、サンプル抽出部32から出力される音声データを係数生成処理部23に供給する。
【0031】
次に、話者認識システムの動作について説明する。図2は個人係数登録部の動作を示すフローチャートである。
【0032】
ステップST1で個人係数登録部20の音声取得部21は、音声取得を開始してステップST2に進む。
【0033】
ステップST2で個人係数登録部20のサンプル抽出部22は、音声波形の最大ピークを検出して、最大ピークが検出された位置を予測係数の算出開始位置としてステップST3に進む。ここで、時間領域で波形の誤差を算出する場合、波形の位相がずれていると波形が類似していても誤差が大きくなってしまう。そこで、最大ピークが検出された位置を予測係数の算出開始位置に設定することで、波形の位相をそろえるものとする。
【0034】
ステップST3で個人係数登録部20のサンプル抽出部22は、算出開始位置から所定サンプル数の音声データDSaを誤差算出対象区間の音声データとして抽出する。誤差算出対象区間は、良好な認識精度を得ることができるとともに、速やかに話者認識を行うことができるように短い区間とする。
【0035】
図3は、認識精度と誤差算出対象区間の長さの関係をモデル化して示したものである。誤差算出対象区間が短い場合、音素例えば母音の/a/の一周期よりも短い音声波形に対する予測波形の誤差が算出される。また、誤差算出対象区間が長くなると、母音の/a/の一周期の音声波形に対する予測波形の誤差が算出される。さらに、誤差算出対象区間が長くなると、母音の/a/の複数周期の音声波形に対する予測波形の誤差が算出される。すなわち、誤差算出対象区間が短いために、一周期よりも短い音声波形に対する予測波形の誤差が算出されたときには認識精度が低く、誤差算出対象区間が長くなると認識精度が高くなる。また、認識精度が高くなると、誤差算出対象区間を長くして複数周期の音声波形に対する予測波形の誤差を算出するものとしても、認識精度は大幅に向上することがない。したがって、個人係数登録部20は、音素例えば母音の/a/の一周期の音声データを抽出できるように誤差算出対象区間を予め設定しておく。ここで、サンプル抽出部32のサンプリング周波数が48kHzであるとき、例えば10000サンプル期間(約0.2秒)を誤差算出対象区間として音声データDSaを抽出する。
【0036】
ステップST4で個人係数登録部20の係数生成処理部23は、誤差算出対象区間の音声データに基づき予測係数の算出を行ってステップST5に進む。
【0037】
図4は、予測係数の算出動作を示すフローチャートである。予測係数は、誤差算出対象区間を複数の比較単位区間に分割して、比較単位区間毎に生成する。
【0038】
ステップST11で係数生成処理部23は、比較単位区間の予測係数を生成するために予め設定された学習区間の音声データを用いて、予測係数の算出を学習区間毎に行う。個人係数登録部20は、前向き線形予測における予測誤差が最小となるように学習区間の音声データを用いて予測係数を算出する。
【0039】
図5は、予測係数の算出処理を説明するための図であり、例えば図5の(A)に示すように、全サンプル数が12サンプル、学習区間が6サンプルである場合を示している。ここで、予測式を「DSy(n)=ω1・DSa(n-1)+ω2・DSa(n-2)+ω3・DSa(n-3)」とすると、図5の(B)に示す最初の学習区間(図5の(A)で示す学習区間TA)において、予測値DSy4は「DSy4=ω1・DSa3+ω2・DSa2+ω3・DSa1」となる。なお、DSa(n-1)、DSa(n-2)、DSa(n-3)は過去タップ、ω1,ω2,ω3は予測係数である。
【0040】
また、予測値DSy5,DSy6は「DSy5=ω1・DSa4+ω2・DSa3+ω3・DSa2、DSy6=ω1・DSa5+ω2・DSa4+ω3・DSa3」となる。なお、図5において、白丸は音声データ、黒丸は予測値を示している。
【0041】
したがって、個人係数登録部20は、予測値DSy4と音声データDSa4の誤差、予測値DSy5と音声データDSa5の誤差、予測値DSy6と音声データDSa6の誤差がそれぞれ最小となるように比較単位区間PAの予測係数ω1,ω2,ω3を算出する。ここで、誤差が最小となる予測係数の算出では、例えば最小自乗法を用いるものとする。
【0042】
図3におけるステップST12で係数生成処理部23は、学習区間を時間方向に(学習区間−過去タップ数)分だけ移動可能であるか否かを判別して、移動可能であるときはステップST13に進む。
【0043】
ステップST13で係数生成処理部23は、学習区間の移動を行う。係数生成処理部23は、学習区間を(学習区間−過去タップ数)分だけ移動してステップST11に戻る。
【0044】
図5の(C)は、移動後の学習区間(図5の(A)で示す学習区間TB)を示している。この学習区間TBにおいても、個人係数登録部20は、図5の(B)に示す学習区間と同様に処理を行い、予測値DSy7と音声データDSa7の誤差、予測値DSy8と音声データDSa8の誤差、予測値DSy9と音声データDSa9の誤差がそれぞれ最小となるように比較単位区間PBの予測係数ω1,ω2,ω3を算出する。
【0045】
図3のステップST12で係数生成処理部23は、学習区間を時間方向に(学習区間−過去タップ数)分だけ移動可能であるか否かを判別して、移動可能であるときはステップST13に進み、学習区間を(学習区間−過去タップ数)分だけ移動してステップST11に戻る。
【0046】
図5の(D)は、移動後の学習区間(図5の(A)で示す学習区間TC)を示している。この学習区間TCにおいても、個人係数登録部20は、図5の(B)に示す学習区間と同様に処理を行い、予測値DSy10と音声データDSa10の誤差、予測値DSy11と音声データDSa11の誤差、予測値DSy12と音声データDSa12の誤差がそれぞれ最小となるように比較単位区間PCの予測係数ω1,ω2,ω3を算出する。
【0047】
図3のステップST12で係数生成処理部23は、再度学習区間を時間方向に(学習区間−過去タップ数)分だけ移動可能であるか否かを判別する。ここで、学習区間TCは最後のサンプルの位置までとなっていることから、係数生成処理部23は移動可能でないと判別して図2のステップST5に進む。
【0048】
ステップST5で個人係数登録部20の係数生成処理部23は、算出した比較単位区間毎の予測係数を話者に関連付けて係数蓄積部40に蓄積させる。なお、係数蓄積部40に予測係数を蓄積させる話者を登録話者と呼ぶものとする。
【0049】
登録話者は、予測係数を係数蓄積部40に蓄積させるときの音声として、波形の比較が容易となるように、1音素例えば母音/a/,/i/,/u/,/e/,/o/のいずれか1つを発音して、予測係数を係数蓄積部40に蓄積させる。なお、発音する母音は、登録話者で共通するものとしてもよく、登録話者毎に異なる母音を発音して予測係数を係数蓄積部40に蓄積させるものとしてもよい。さらに、1人の登録話者について、複数の音素の予測係数を音素毎に蓄積させるものとしてもよい。例えば、1人の登録話者について、母音/a/についての予測係数と、母音/i/についての予測係数を蓄積させてもよい。係数蓄積部40に異なる音素の予測係数を蓄積させる場合、係数蓄積部40は、予測係数と登録話者だけでなく音素も関連付けて蓄積すれば、後述するように認識精度を低下させることなく話者認識に要する時間を短縮することが可能となる。
【0050】
個人係数登録部20は、比較単位区間毎の予測係数を係数蓄積部40に蓄積させる処理をオフラインで話者毎に行う。したがって、オンラインで話者認識を行うときに、予測係数を算出する処理を行う必要がなく、話者認識を効率よく行うことができる。
【0051】
また、個人係数登録部20は、FFTやDCTおよびMFCCなどの負荷の高い演算処理が不要となり、単純な積和演算等で予測係数を算出できることから、携帯機器などのように、処理能力が高くなく大容量のメモリを実装することも小型化やコスト面から困難な機器にも適用できる。
【0052】
なお、図5は、個人係数登録部20の動作を容易に理解できるものとするため、学習区間を6サンプル、過去タップ数を3サンプルとしているが、実際の動作では、認識精度の高い話者認識を行うことができるように、学習区間や過去タップ数を例えば実験的に決定する。
【0053】
次に、話者認識部30の動作について説明する。図6は話者認識部の動作を示すフローチャートである。
【0054】
ステップST21で話者認識部30の音声取得部31は、音声取得を開始してステップST22に進む。
【0055】
ステップST22で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST23に進む。個人係数登録部20は、上述のように最大ピークが検出された位置を予測係数の算出開始位置としている。したがって、個人係数登録部20で取得された入力音声と話者認識部30で取得された入力音声の波形が類似している場合、話者認識の検出開始位置と予測係数の算出開始位置がほぼ等しくなり、入力音声の音声波形と予測波形の位相をそろえることができる。
【0056】
ステップST23で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST24に進む。
【0057】
ステップST24で話者認識部30の予測波形生成部33は、予測波形の生成を行う。図7は予測波形の生成動作を示すフローチャートである。
【0058】
ステップST31で予測波形生成部33は、予測係数の読み出しを行う。予測波形生成部33は、係数蓄積部40に蓄積されている登録話者毎の予測係数を読み出してステップST32に進む。
【0059】
ステップST32で予測波形生成部33は、予測係数を用いて予測波形を生成する。予測波形生成部33は、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、予測波形を比較単位区間毎に生成する。ここで、過去Mサンプルの音声データを用いて前向き線形予測を行うことで予測係数が生成されている場合、予測式は「DSy(n)=ω1・DSb(n-1)+ω2・DSb(n-2)+ω3・DSb(n-3)+・・・+ωM・DSb(n-M)」とする。なおDSy(n)は予測値、ω1〜ωMは予測係数である。
【0060】
ステップST33で予測波形生成部33は、全比較単位区間の予測波形の生成が完了したか否かを判別する。予測波形生成部33は、予測波形の生成が行われていない比較単位区間があるときはステップST34に進み、全比較単位区間すなわち誤差算出対象区間の予測波形の生成が完了したときにはステップST35に進む。
【0061】
ステップST34で予測波形生成部33は、比較単位区間の切り換えを行う。予測波形生成部33は、予測波形の生成が行われていない比較単位区間の予測係数を選択してステップST32に戻る。
【0062】
誤差算出対象区間の予測波形の生成が完了してステップST33からステップST35に進むと、予測波形生成部33は、全登録話者の予測波形の生成が完了したか否かを判別する。予測波形生成部33は、全登録話者の予測波形の生成が完了していないと判別したときステップST36に進み、全登録話者の予測波形の生成が完了していると判別したとき、予測波形の生成を終了して図6のステップST25に進む。
【0063】
ステップST36で予測波形生成部33は、新たな登録話者の予測係数の読み出しを行う。予測波形生成部33は、係数蓄積部40から、予測波形の生成が行われていない登録話者の予測係数を読み出してステップST32に戻る。
【0064】
図6のステップST25で予測誤差算出部34は、入力音声の音声波形に対する予測波形の誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を比較単位区間内で加算して得た差分絶対値和を、入力音声の音声波形に対する予測波形の誤差(以下「予測誤差」という)としてステップST26に進む。なお、予測誤差は、入力音声波形に対する予測波形を示すものであれば差分絶対値和に限られるものではない。
【0065】
ステップST26で予測誤差算出部34は、比較単位区間毎の予測誤差を用いて統計処理を行い、予測波形の誤差の特徴を示す統計量を算出する。また、予測誤差算出部34は統計処理を予測波形毎に行い統計値を算出する。予測誤差算出部34は、登録話者毎に予測誤差の統計値を算出してステップST27に進む。予測誤差の統計値としては、比較単位区間毎の予測誤差の代表的な値、例えば比較単位区間毎の予測誤差の平均値を用いる。また統計値として中央値等を用いるものとしてもよい。
【0066】
ステップST27で話者特定部35は、予測誤差の統計値に基づき、登録話者毎の予測波形から入力音声の音声波形と最も近似した予測波形を決定してステップST28に進む。ここで、予測誤差の統計値として比較単位区間毎の予測誤差の平均値が用いられている場合、平均値が最小となる予測波形を、入力音声の音声波形と最も近似した予測波形と決定する。
【0067】
ステップST28で話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。ここで、音声取得部31で取得された入力音声の話者に対応する予測係数が係数蓄積部40に蓄積されていないとき、決定した予測波形に対応する登録話者、すなわち予測誤差の平均値が最小となる予測波形の生成で用いた予測係数と関連付けられた登録話者は、音声取得部31で取得された入力音声の話者と異なる第三者となる。
【0068】
また、予測誤差の平均値は、音声取得部31で取得された入力音声の話者と、決定した予測波形に対応する登録話者が異なる場合、この入力音声の話者と登録話者が一致する場合に比べて大きくなる。したがって、閾値は、音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者であるかまたは第三者であるかを判別できるように設定する。
【0069】
例えば予測係数を生成したときに、生成した予測係数を用いて予測波形を生成すれば、予測係数の生成に用いた音声波形と予測波形との予測誤差を算出できる。したがって、個人係数登録部20は、予測係数を生成したときに話者認識部30と同様にして予測誤差の算出を行い、予測誤差を係数蓄積部40に蓄積するとき、算出した予測誤差を予測係数と関連付けて蓄積しておく。話者認識部30は、係数蓄積部40に蓄積されている予測係数に関連付けられている予測誤差の中で最大値を判別して、この最大値よりも予測誤差が大きくなるときは第三者と判別できるように閾値を設定する。また、話者認識部30は、入力音声の音声波形と最も近似した予測波形が決定されたとき、決定された予測波形の生成に用いた予測係数に関連付けられている予測誤差に基づき閾値を設定するものとしてもよい。このように、決定された予測波形の生成に用いた予測係数に関連付けられている予測誤差に基づき閾値を設定すれば、予測誤差の最大値に基づいて閾値を設定する場合に比べて最適な閾値を設定することができる。
【0070】
このようにして閾値の設定を行い、設定された閾値を用いて音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者であるかまたは第三者であるかを判別する。
【0071】
話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST29に進み、閾値未満でないと判別したときステップST30に進む。
【0072】
ステップST29で話者特定部35は、話者を特定する。話者特定部35は、予測誤差の統計値が閾値未満であることから、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。なお、決定した予測波形に対応する登録話者とは、決定した予測波形を生成する際に用いた予測係数に関連付けられている登録話者である。
【0073】
ステップST30で話者特定部35は認識エラー処理を行う。話者特定部35は、予測誤差の統計値が閾値未満でないことから、音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者とは異なる第三者であり、話者の特定ができない旨の通知を行って話者認識を終了する。
【0074】
このように、話者認識部30は、予測係数と音声データを用いて積和演算を行うことにより予測波形を登録話者毎に生成したのち、入力音声の音声波形と予測波形との予測誤差を算出する。さらに、話者認識部30は、予測誤差が最小となる予測波形を検出することで話者の認識が行われる。したがって、話者認識部30は、FFTやDCTおよびMFCCの等のような負荷の高い演算処理を行わなくとも話者の認識が可能となり、携帯機器等のように、処理能力が高くなく大容量のメモリを実装することも小型化やコスト面から困難な機器にも適用できる。
【0075】
さらに、予測係数は上述したようにオフラインで予め係数蓄積部40に蓄積されているので、速やかに話者認識を行うことができるため、例えば特定の話者の音声でコマンド入力を行う場合、入力後の待ち時間が短縮されて応答性が良好なシステムを構築できる。
【0076】
また、誤差算出対象区間が複数の比較単位区間に分割されて、比較単位区間毎に予測係数が生成されているので、話者認識精度の高い予測係数を生成することができる。さらに、位相シフトによる認識精度の低下を抑制することも可能となる。
【0077】
表1は、サンプル抽出部のサンプリング周波数が48kHzであって、例えば10000サンプル期間(約0.2秒)の音声データを抽出する場合、過去タップ数と学習区間をどのように設定するか決定するために行った実験結果を例示している。具体的には、過去タップ数と学習サンプル数と誤判定回数の関係を示している。なお、学習サンプル数は、学習区間のサンプル数から過去タップ数を減算した値とする。
【0078】
表1の(A)は予測式の次数=1の場合を示している。この場合、過去タップ数が50で、学習サンプル数が過去タップ数の5倍(×5)および10倍(×10)であるとき、誤判定が少ない。また、表1の(B)は予測式の次数=2の場合を示している。この場合、過去タップ数が50で、学習サンプル数が過去タップ数の5倍(×5)であるとき、誤判定が少ない。さらに、表1の(C)は予測式の次数=3の場合を示している。この場合、次数=1であって過去タップ数が50,学習サンプル数が過去タップ数の10倍(×10)のとき、誤判定が「0」となり良好な認識精度が得られる。したがって、過去タップ数は50サンプルとして、学習サンプル数は過去タップ数の例えば10倍とする。
【0079】
【表1】
【0080】
図8は、過去タップ数を50サンプル、学習サンプル数を過去タップ数の10倍(500サンプル)としたときの学習区間(550サンプル)を示している。このように過去タップ数と学習区間を設定して図5に示すように学習区間を移動するものとしたとき、サンプル抽出で抽出された10000サンプルに対して設けられる比較単位区間の数は、「(10000−50)/500=19.9」であることから19個となる。また、予測式を例えば「DSy(n)=ω1・DSa(n-1)+ω2・DSa(n-2)+・・・+ω50・DSa(n-50)」とすると、係数蓄積部40には、入力された例えば1つの母音に対して予測係数(ω1〜ω50)が19セット蓄積されることになる。したがって、図6のステップST26では、19個の予測誤差の平均値を予測波形毎に算出することになる。
【0081】
ところで、図6に示す処理は、比較単位区間毎の予測誤差の統計値として、比較単位区間毎の予測誤差の代表値である予測誤差平均値を用いて予測波形を決定するものである。しかし、比較単位区間毎の予測誤差の代表値のみを用いるものとすると、比較単位区間毎の予測誤差のばらつきを考慮することなく話者認識が行われてしまう。そこで、比較単位区間毎の予測誤差の統計値として、比較単位区間毎の予測誤差のばらつきを示す値、例えば分散や偏差等も用いるものとすれば、予測誤差のばらつきを考慮した話者認識を行うことができるので認識精度を向上させることが可能となる。
【0082】
図9は、比較単位区間毎の予測誤差の統計量として、予測誤差の平均値と分散を用いる場合の動作を示すフローチャートである。
【0083】
ステップST41で話者認識部30の音声取得部31は、音声取得を開始してステップST42に進む。
【0084】
ステップST42で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST43に進む。
【0085】
ステップST43で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST44に進む。
【0086】
ステップST44で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成してステップST45に進む。
【0087】
ステップST45で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST46に進む。
【0088】
ステップST46で予測誤差算出部34は、比較単位区間毎の予測誤差の統計処理を行い、予測波形の誤差の特徴を示す統計量として予測誤差の平均値と分散を、予測波形毎に算出してステップST47に進む。
【0089】
ステップST47で話者特定部35は、予測誤差の平均値と分散に基づき、入力音声の音声波形と最も近似した予測波形を決定してステップST48に進む。話者特定部35は、予測誤差の平均値が小さく分散の少ない予測波形を音声波形と最も近似した予測波形に決定する。
【0090】
ステップST48で話者特定部35は、決定した予測波形に対する予測誤差の平均値と分散が閾値未満であるか否かを判別する。話者特定部35は、決定した予測波形について、予測誤差の平均値と分散が閾値未満であると判別したときステップST49に進み、閾値未満でないと判別したときステップST50に進む。
【0091】
ステップST49で話者特定部35は、話者を特定する。話者特定部35は、予測誤差の平均値と分散が閾値未満であることから、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。
【0092】
ステップST50で話者特定部35は認識エラー処理を行う。話者特定部35は、予測誤差の平均値や分散が閾値未満でないことから、音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者とは異なる第三者であり、話者の特定ができない旨の通知を行って話者認識を終了する。
【0093】
このように、学習区間毎の予測誤差のばらつきを考慮して話者認識を行うものとすれば、比較単位区間毎の予測誤差の代表値のみに基づいて話者認識を行う場合に比べて、話者認識の精度を向上させることができる。
【0094】
また、上述の話者認識部30は、全ての比較単位区間の予測波形を用いて話者認識を行うものである。しかし、比較単位区間毎の予測波形を選択的に用いて話者認識を行うものとすれば、全ての比較単位区間の予測波形を用いて話者認識を行う場合に比べて、演算時間を短縮することが可能となる。
【0095】
図10および図11は、比較単位区間毎の予測波形を選択的に用いて話者認識を行う場合の動作を示すフローチャートである。なお、図10は、時間的に最も古い比較単位区間から所定数区間の予測波形を選択的に用いて話者認識を行う場合、図11は比較単位区間の間引きを行って話者認識を行う場合を示している。
【0096】
図10のステップST51で話者認識部30の音声取得部31は、音声取得を開始してステップST52に進む。
【0097】
ステップST52で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST53に進む。
【0098】
ステップST53で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST54に進む。
【0099】
ステップST54で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成してステップST55に進む。
【0100】
ステップST55で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST56に進む。
【0101】
ステップST56で予測誤差算出部34は、誤差算出対象区間における先頭から所定数の比較単位区間の予測誤差を予測波形毎に抽出する。例えば比較単位区間が上述のように19区間であるとき、時間的に古い順から3比較単位区間の予測誤差を抽出してステップST57に進む。
【0102】
ステップST57で予測誤差算出部34は、抽出した予測誤差の統計処理を予測波形毎に行いステップST58に進む。
【0103】
ステップST58で話者特定部35は、予測誤差の統計値(例えば平均値または平均値と分散等)に基づき、入力音声の音声波形と最も近似した予測波形を決定してステップST59に進む。
【0104】
ステップST59で話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST60に進み、閾値未満でないと判別したときステップST61に進む。
【0105】
ステップST60で話者特定部35は、話者を特定する。すなわち、予測誤差の統計値が閾値未満であることから、話者特定部35は、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。
【0106】
ステップST61で話者特定部35は、全比較単位区間の予測誤差が用いられているか判別する。話者特定部35は、全比較単位区間の予測誤差が用いられていないと判別したときステップST62に進み、全比較単位区間の予測誤差が用いられていると判別したときステップST63に進む。
【0107】
ステップST62で予測誤差算出部34は、予測誤差の抽出を1比較単位区間追加してステップST57に戻る。
【0108】
すなわち、ステップST58で決定した予測波形に対する予測誤差の統計値が閾値未満とならないときには、比較単位区間が追加されて、追加された比較単位区間の予測誤差を含めた予測誤差の統計値が予測波形毎に算出される。さらに、この予測誤差の統計値に基づいて、入力音声の音声波形と最も近似した予測波形を決定する処理が再度行われる。
【0109】
ステップST61で全比較単位区間の予測誤差が用いられていると判別されてステップST63に進むと、ステップST63で話者特定部35は認識エラー処理を行う。
【0110】
このように、誤差算出対象区間における先頭から所定数の比較単位区間の予測誤差を抽出して話者認識を行い、話者が特定できないときには比較単位区間を追加して話者認識が繰り返される。したがって、入力音声の話者が、決定した予測波形に対応する登録話者であるとき、全比較単位区間の予測誤差を用いて統計量を算出しなくとも、所定数の比較単位区間の予測誤差に基づいて話者が特定されるので、全比較単位区間の予測誤差を用いて話者認識を行う場合に比べて、話者が特定されるまでに要する演算時間を短縮することが可能となる。
【0111】
図11のステップST71で話者認識部30の音声取得部31は、音声取得を開始してステップST72に進む。
【0112】
ステップST72で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST73に進む。
【0113】
ステップST73で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST74に進む。
【0114】
ステップST74で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成してステップST75に進む。
【0115】
ステップST75で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST76に進む。
【0116】
ステップST76で予測誤差算出部34は、比較単位区間の間引きを行ってステップST77に進む。比較単位区間の間引きでは、等間隔で比較単位区間の間引きを行う。例えば比較単位区間が上述のように19区間であるとき、1比較単位区間を用いるものとして次の2比較単位区間間隔を間引くものとする。
【0117】
ステップST77で予測誤差算出部34は、間引き後の比較単位区間毎の予測誤差を予測波形毎に抽出してステップST78に進む。
【0118】
ステップST78で予測誤差算出部34は、抽出した予測誤差の統計処理を予測波形毎に行いステップST79に進む。
【0119】
ステップST79で話者特定部35は、予測誤差の統計値に基づき、入力音声の音声波形と最も近似した予測波形を決定してステップST80に進む。
【0120】
ステップST80で話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST80に進み、閾値未満でないと判別したときステップST81に進む。
【0121】
ステップST81で話者特定部35は、話者を特定する。話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であることから、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。
【0122】
ステップST82で話者特定部35は、全比較単位区間の予測誤差が用いられているか判別する。話者特定部35は、全比較単位区間の予測誤差が用いられていないと判別したときステップST83に進み、全比較単位区間の予測誤差が用いられていると判別したときステップST84に進む。
【0123】
ステップST83で予測誤差算出部34は、比較単位区間の間引き間隔を1比較単位区間減少させてステップST76に戻る。
【0124】
すなわち、ステップST79で決定した予測波形に対する予測誤差の統計値が閾値未満とならないときには、比較単位区間が追加されて、追加された比較単位区間の予測誤差を含めた予測誤差の統計値が予測波形毎に算出される。さらに、この予測誤差の統計値に基づき、入力音声の音声波形と最も近似した予測波形を決定する処理が再度行われる。
【0125】
ステップST82で全比較単位区間の予測誤差が用いられていると判別されてステップST84に進むと、ステップST84で話者特定部35は認識エラー処理を行う。
【0126】
このように、比較単位区間の間引きを行い、間引き後の比較単位区間の予測誤差を抽出して話者認識を行い、話者が特定できないときには比較単位区間を追加して話者認識が繰り返される。したがって、入力音声の話者が、決定した予測波形に対応する登録話者であるとき、全比較単位区間の予測誤差を用いて統計量を算出しなくとも、間引き後の比較単位区間の予測誤差に基づいて話者が特定されるので、全比較単位区間の予測誤差を用いて話者認識を行う場合に比べて、話者が特定されるまでに要する演算時間を短縮することが可能となる。
【0127】
また、比較単位区間の間引きは、等間隔で間引きを行う場合に限られるものではなく、音声データの波形形状の特徴に応じて間引き位置を調整するものとしてもよい。例えば母音/a/や母音/o/では、話者の違いによる音声波形の相違が音声波形の先頭側で顕著になりやすい。また、母音/i/や母音/u/では、話者の違いによる音声波形の相違が音声波形の全体で現れて、音声波形の先頭側で顕著となるものではない。したがって、音声が母音/a/や母音/o/であるときには、先頭側の間引き間隔を狭くして、母音/i/や母音/u/であるときは、間引き間隔を等しくする。
【0128】
この場合、話者認識部30は、音声取得を行う際に、入力音声がどのような音素であるかを示す音素情報を合わせて取得する。例えば話者認識部30は、母音毎に操作キーを設けておき、発話する母音に対応する操作キーを操作しながら音声入力を話者に行わせることで、入力音声と音素情報を取得する。話者認識部30は、取得した音素情報に基づき間引き位置を調整して話者認識を行う。
【0129】
このように、話者認識部30は、入力音声がどのような音素であるかに応じて、間引き位置を調整して最適化することができるので、話者認識をさらに効率よく行うことができる。
【0130】
なお、図10および図11では、全比較単位区間の予測波形の生成や予測誤差の算出を行ってから、選択的に予測誤差を用いて話者認識を行うものであるが、話者認識に用いる比較単位区間についてのみ予測波形の生成や予測誤差の算出を行い、比較単位区間が追加されるときには、追加された比較単位区間について予測波形の生成や予測誤差の算出を行って話者認識を行うこともできる。
【0131】
ところで、上述の話者認識部30は、全登録話者の予測誤差の統計値について比較を行い、比較結果に基づいて話者認識を行うものであるが、予測係数の蓄積を行った登録話者毎の予測誤差を順次閾値と比較して、この比較結果に基づいて入力音声の話者の特定を行うこともできる。
【0132】
図12は、登録話者毎の予測誤差を順次閾値と比較して話者認識を行う場合の動作を示すフローチャートである。
【0133】
ステップST91で話者認識部30の音声取得部31は、音声取得を開始してステップST92に進む。
【0134】
ステップST92で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST93に進む。
【0135】
ステップST93で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST94に進む。
【0136】
ステップST94で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成する。
【0137】
ステップST95で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位期間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST96に進む。
【0138】
ステップST96で予測誤差算出部34は、予測誤差の統計処理を予測波形毎に実施してステップST97に進む。
【0139】
ステップST97で話者特定部35は、予測係数の蓄積を行った登録話者を選択してステップST98に進む。
【0140】
ステップST98で話者特定部35は、選択した登録話者の予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。話者特定部35は、予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST99に進み、閾値未満でないと判別したときステップST100に進む。
【0141】
ステップST99で話者特定部35は、話者を特定する。話者特定部35は、予測誤差の統計値が閾値未満であることから、音声取得部31で取得された入力音声の話者を、選択した登録話者と特定して話者認識を終了する。
【0142】
ステップST100で話者特定部35は、全登録話者の選択が完了したか否かを判別する。話者特定部35は、全登録話者の選択が完了していないと判別したときステップST101に進み、全登録話者の選択が完了したと判別したときステップST102に進む。
【0143】
ステップST101で話者特定部35は、新たな登録話者を選択してステップST98に戻る。話者特定部35は、まだ選択されていない登録話者から新たに登録話者を選択する。
【0144】
ステップST100で全登録話者について予測波形の選択が完了したと判別されてステップST102に進むと、ステップST102で話者特定部35は認識エラー処理を行う。
【0145】
このように、選択された登録話者の予測波形に対する予測誤差の統計値が閾値未満と判別されたときに、音声取得部31で取得された入力音声の話者が、選択した登録話者と特定される。したがって、全登録話者の予測波形に対する予測誤差の統計値を比較して、最も音声波形に近似した予測波形を決定する必要がないことから、話者が特定されるまでに要する時間を短縮することが可能となる。
【0146】
なお、図12では、全登録話者の予測波形の生成や予測誤差の算出を行ってから、選択された登録話者の予測波形に対する予測誤差の統計値を用いて話者認識を行うものであるが、登録話者が選択されたとき、選択された登録話者に対応する予測波形の生成や予測誤差の算出を行って話者認識を行うこともできる。
【0147】
さらに、上述の話者認識はソフトウェアで行うものとしてもよい。図13は、上述の処理をプログラムにより実行するコンピュータの構成を示した図である。
【0148】
コンピュータ60のCPU(Central Processing Unit)61は、ROM(Read Only Memory)62またはRAM(Random Access Memory)63に記録されているプログラムにしたがって、各種の処理を実行する。また、RAM63は、各種の処理を実行する際のワーキングメモリとして用いられる。これらのCPU61、ROM62、およびRAM63は、バス64により相互に接続されている。また、CPU61には、バス64を介して入出力インタフェース部65が接続されている。入出力インタフェース部65には、ユーザインタフェース部66、入力部67、出力部68、情報蓄積部69等が接続されている。
【0149】
ユーザインタフェース部66は、操作キー等を用いて構成されており、ユーザ操作に応じた操作信号をCPU61に供給する。入力部67は、話者の音声取得を行うものであり、出力部68は、話者認識結果を出力するものである。情報蓄積部69は不揮発性メモリ等で構成されており、話者毎の予測係数および予測係数に関連付けられている話者や予測誤差等の情報を蓄積するものである。
【0150】
なお、図示せずも、例えばリムーバブルメディア例えば着脱可能な半導体メモリ等に対してデータの読み出しやデータの書き込みを行うドライブ部、外部機器と通信を行う通信部を設けるものとしてもよい。このように、ドライブ部や通信部を設けるものとすれば、ドライブ部や通信部を介してプログラムの取得や更新を容易に行うことができる。
【0151】
CPU61は、プログラムを実行して、入力部67で音声取得を行って得られた音声データから予測係数を生成して情報蓄積部69に蓄積させる処理を行う。また、話者認識を行う場合、CPU61は、入力部67で音声取得を行って得られた音声データと情報蓄積部69に蓄積されている話者毎の予測係数を用いて予測波形の生成を行う。さらに、生成した予測波形と入力音声の音声波形との誤差に基づき、入力音声の話者を特定して、話者認識結果を出力部68から出力させる。
【0152】
このようにして上述の一連の処理をプログラムにより実行すれば、時間領域を周波数領域に変換するなどの高度な演算処理を行うことなく話者認識を行うことができる。
【0153】
以上のように本願の発明は、話者の音声から生成した予測係数を話者毎に予め蓄積しておき、話者認識を行う際には、予測係数を用いて生成した予測波形と入力音声の音声波形を比較して、誤差の少ない予測波形の生成に用いた予測係数に関連付けられている登録話者が、入力音声の話者と特定される。
【0154】
したがって、FFTやDCT、MFCC等の演算を行う必要がなく、処理能力の高くない機器や大容量のメモリを実装することが困難な機器であっても、話者認識を行うことができるようになる。また、演算処理の負荷が軽減されているので、例えば携帯端末に適用してもリアルタイム性を損なわず軽快な動作を期待できる。さらに、携帯端末に話者認識を適用した場合、話者認識によるドアロックの解除、口座取扱時の本人確認、他者の無断使用を防ぐために他人拒否などを行うセキュリティ用途のアプリケーション等で話者認識を利用できる。また、他の認識処理、例えば顔認識や指紋認識、静脈認識、網膜認識、虹彩認識などと本願の話者認識を組み合わせて用いるものとすれば、よりセキュアなシステムを構築することができる。なお、本発明の実施の形態に限らず、本発明の要旨を逸脱しない範囲において種々の変更も可能である。
【産業上の利用可能性】
【0155】
この発明の話者認識装置と話者認識方法およびプログラムは、時間領域を周波数領域に変換する処理等行うことなく、時間領域で簡単かつ容易に話者認識を行うことができるものである。したがって、携帯機器等に適用すれば、セキュリティ用途例えばユーザ認証等に利用することができる。
【図面の簡単な説明】
【0156】
【図1】話者認識装置の構成を示す図である。
【図2】個人係数登録部の動作を示すフローチャートである。
【図3】認識精度と誤差算出対象区間の長さの関係をモデル化して示した図である。
【図4】予測係数の算出動作を示すフローチャートである。
【図5】予測係数の算出処理を説明するための図である。
【図6】話者認識部の動作を示すフローチャートである。
【図7】予測波形の生成動作を示すフローチャートである。
【図8】学習区間を示す図である。
【図9】予測誤差の平均値と分散を用いる場合の動作を示すフローチャートである。
【図10】比較単位区間毎の予測波形を選択的に用いて話者認識を行う場合の動作を示すフローチャートである。
【図11】比較単位区間毎の予測波形を選択的に用いて話者認識を行う場合の動作を示すフローチャートである。
【図12】登録話者毎の予測誤差を順次閾値と比較して話者認識を行う場合の動作を示すフローチャートである。
【図13】コンピュータの構成を示す図である。
【図14】従来の話者認識の動作を示すフローチャートである。
【符号の説明】
【0157】
10・・・話者認識装置、20・・・個人係数登録部、21,31・・・音声取得部、22,32・・・サンプル抽出部、23・・・係数生成処理部、30・・・話者認識部、33・・・予測波形生成部、34・・・予測誤差算出部、35・・・話者特定部、40・・・係数蓄積部、60・・・コンピュータ、61・・・CPU、62・・・ROM、63・・・RAM、64・・・バス、65・・・入出力インタフェース部、66・・・ユーザインタフェース部、67・・・入力部、68・・・出力部、69・・・情報蓄積部
【技術分野】
【0001】
この発明は、話者認識装置と話者認識方法およびプログラムに関する。詳しくは、話者の音声から予測係数を生成して話者毎に予め蓄積しておき、話者認識を行う際には、入力音声の音声波形と予測係数を用いて生成した話者毎の予測波形を比較して、この比較結果に基づいて入力音声の話者の特定を行うものである。
【背景技術】
【0002】
従来、話者認識法においては、音響信号の特徴を抽出し、その特徴を話者毎の特徴と照合することによって行われる。音響信号から抽出する特徴として、例えば特許文献1の音響特徴抽出装置では、メルケプストラム係数(MFCC:Mel-Frequency Cepstrum Coefficient)を算出することが開示されている。メルケプストラム係数は、音響信号のフーリエ変換(FFT:Fast Fourier Transform)を行って周波数領域の信号に変換したのち、周波数軸上に三角窓を配置して周波数領域の信号のフィルタバンク分析を行い、フィルタバンク出力すなわち窓の幅に対応する周波数帯域のパワーについて、離散コサイン変換(DCT:Discrete Cosine Transform)を行うことで得られるものである。
【0003】
【特許文献1】特開2002−278580号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、メルケプストラム係数(MFCC)を用いた従来の話者認識を行う場合、図14に示すように、ステップST111で音声取得を開始したのち、ステップST112のFFTと、ステップST113のDCTおよびステップST114のMFCCの処理をカスケードに行って音声の学習が行われる。また、話者認識では、ステップST121で音声取得を開始したのち、音声の学習によって得られた特徴量と、ステップST122のFFTとステップST123のDCTおよびステップST124のMFCCの処理をカスケードに行って得られた特徴量を、ステップST125において隠れマルコフ則(HMM:hidden Markov model)といわれる統計モデルで処理することにより推定した話者がステップST126で提示される。
【0005】
このようなFFT、DCT、MFCCおよびHMMは、複雑な計算を行うものであり、話者認識では、これらの処理をカスケードに行うことから、話者認識を高速に行うためには、性能の高い処理装置が必要となり、安価に話者認識を行うことができない。
【0006】
また、携帯機器等の認証において、指紋等の生体情報だけでなく、発話音声を用いた認証を行えるようにすれば、認証操作を容易に行うことができる。しかし、携帯機器等は処理能力が高くなく大容量のメモリを実装することも小型化やコスト面から困難であり、FFTやMFCCおよびHMMの処理をカスケードに行うものとすると、リアルタイム性を損なわず、速やかに話者認識を行うことができない。
【0007】
そこで、この発明では、簡単かつ容易に話者認識を行うことができる話者認識装置と話者認識方法およびプログラムを提供するものである。
【課題を解決するための手段】
【0008】
本発明の第1の側面は、音声波形を予測するための予測係数を話者毎に蓄積した係数蓄積部と、入力音声の音声データと前記予測係数を用いた演算を行い、前記話者毎に予測波形を生成する予測波形生成部と、前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出する予測誤差算出部と、前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定する話者特定部とを備える話者認識装置にある。
【0009】
この話者認識装置では、話者毎の音声データに対して例えば線形予測分析を行い、音声波形を予測するための予測係数を生成して、この予測係数に話者を関連付けて予め係数蓄積部に蓄積される。また、話者認識装置では、話者認識の対象である入力音声の音声波形に対する予測係数を用いて生成された予測波形の誤差の算出対象区間を、複数の比較単位区間に分割して、比較単位区間毎に予測係数の生成が行われる。
【0010】
さらに、話者認識装置では、話者認識を行う場合、話者認識の対象である入力音声の音声波形に対する予測係数を用いて生成された予測波形の誤差が話者毎に算出されて、算出された話者毎の誤差に基づいて、入力音声の話者の特定が行われる。話者毎の誤差としては、比較単位区間毎に得た誤差の統計的処理によって得た統計値が用いられる。例えば、比較単位区間毎に得た誤差の平均値や分散が用いられる。誤差の統計的処理では、誤差の算出対象区間における比較単位区間毎の誤差、または算出対象区間の先頭から複数の比較単位区間の誤差、または算出対象区間に対して比較単位区間の間引きを行い、間引き後の比較単位区間の誤差が用いられる。
【0011】
本発明の第2の側面は、音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップとを備える話者認識方法にある。
【0012】
本発明の第3の側面は、コンピュータに、音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップとを実行させるプログラムにある。
【0013】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータに対して、コンピュータ読み取り可能な形式で提供する記憶媒体、通信媒体、例えば光ディスクや磁気ディスクおよび半導体メモリ等の記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ読み取り可能な形式で提供することにより、コンピュータ上でプログラムに応じた処理が実現される。
【発明の効果】
【0014】
この発明によれば、音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算が行われて、話者毎に予測波形が生成される。また、入力音声の音声波形に対する生成された予測波形の誤差が話者毎に算出されて、算出された話者毎の誤差に基づいて入力音声の話者が特定される。このため、時間領域を周波数領域に変換する処理等を行うとなく、簡単かつ容易に話者認識を行うことができる。
【発明を実施するための最良の形態】
【0015】
以下、図を参照しながら、この発明の実施の一形態について説明する。本発明の話者認識装置は、音声波形を予測するための予測係数を予め話者毎に生成して蓄積させておき、この予測係数と入力音声の音声データとを用いて演算を行い、話者毎に予測波形を生成する。さらに、話者認識装置は、入力音声の音声波形に対する予測波形の誤差を話者毎に算出して、この算出された話者毎の誤差に基づいて入力音声の話者を特定する。このように、話者認識装置は、時間領域を周波数領域に変換することなく、時間領域で話者認識を行うものである。
【0016】
また、話者毎の予測係数は、話者の音声データに対して例えば線形予測分析(LPC分析:Linear Predictive Coding)を行って得られた線形予測係数が用いられる。また、予測係数は、予測誤差の算出対象区間(以下「誤差算出対象区間」という)が複数の比較単位区間に分割されて、比較単位区間毎に生成される。
【0017】
線形予測分析は、過去あるいは未来の信号からそれよりも未来あるいは過去の信号を予測するディジタル信号処理の手法であり、前向き線形予測と後向き線形予測を行うことができる。前向き線形予測は、時刻nの信号を、それよりも過去のMサンプルの信号から予測するものである。また、後向き線形予測は、時刻nよりもMサンプル前の信号を、それよりも未来のMサンプルの信号から予測するものである。
【0018】
次に、前向き線形予測によって予め得られている話者毎の予測係数を用いて予測波形を生成して、音声入力波形と予測波形の誤差に基づいて話者の認識を行う場合について説明する。
【0019】
図1は、話者認識装置の構成を示している。話者認識装置10は、個人係数登録部20と話者認識部30および係数蓄積部40で構成されている。個人係数登録部20は、話者の音声の特徴を予測係数で示すものとして、この予測係数を係数蓄積部40に蓄積させる処理を行う。また、話者認識部30は、係数蓄積部40に蓄積されている話者毎の予測係数を用いて予測波形の生成を行い、予測波形と入力音声の音声波形との誤差に基づき、入力音声の話者が予測係数の蓄積を行ったいずれの話者であるか特定する。
【0020】
個人係数登録部20は、音声取得部21とサンプル抽出部22および係数生成処理部23で構成されている。
【0021】
音声取得部21は、マイクロフォンを用いて構成されており、話者の音声を音声信号Saに変換してサンプル抽出部22に供給する。
【0022】
サンプル抽出部22は、A/D変換器やピーク検出器を用いて構成されている。サンプル抽出部22は、音声信号Saをディジタルの音声データDSaに変換する処理や、音声波形の最大ピークを検出して、最大ピークが検出された位置から音声データDSaを、予測係数の生成に必要とされるサンプル数抽出して係数生成処理部23に供給する処理を行う。
【0023】
係数生成処理部23は、サンプル抽出部22で抽出された音声データDSaを用いて前向き線形予測を行い、予測係数ωを生成する。さらに、生成した予測係数ωを話者と関連付けて係数蓄積部40に蓄積させる。また、係数生成処理部23は、良好な話者認識精度が得られるように、誤差算出対象区間を複数の比較単位区間に分割して、比較単位区間毎に予測係数を生成して蓄積させる処理を行う。
【0024】
話者認識部30は、音声取得部31とサンプル抽出部32、予測波形生成部33、予測誤差算出部34、話者特定部35で構成されている。
【0025】
音声取得部31は、音声取得部21と同様にマイクロフォンを用いて構成されており、話者の音声を音声信号Sbに変換してサンプル抽出部32に供給する。
【0026】
サンプル抽出部32は、音声取得部31と同様にA/D変換器やピーク検出器を用いて構成されている。サンプル抽出部32は、音声信号Sbをディジタルの音声データDSbに変換する処理や、音声波形の最大ピークを検出して、最大ピークが検出された位置から音声データDSbをサンプル抽出部22で抽出したサンプル数抽出して、予測波形生成部33と予測誤差算出部34に供給する処理を行う。
【0027】
予測波形生成部33は、係数蓄積部40に蓄積されている話者毎の予測係数ωと、サンプル抽出部32から供給された音声データDSbを用いて演算を行い、予測値DSyを算出する。すなわち、予測値DSyが示す信号波形が予測波形であり、予測波形生成部33は、算出した予測値DSyを予測誤差算出部34に供給する。
【0028】
予測誤差算出部34は、入力音声の音声波形に対する予測波形の誤差を、話者毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbに対する予測値DSyの誤差を算出して、この誤差を比較単位区間毎に加算する。さらに、予測誤差算出部34は、比較単位区間毎に得た誤差の統計的処理を行うことで得られた統計値を予測波形の誤差ESとして話者特定部35に供給する。予測誤差算出部34は、統計的処理によって予測波形の誤差の特徴を示す統計量を算出する。例えば比較単位区間毎に得た誤差の平均値、または平均値と分散等を統計量として算出する。
【0029】
話者特定部35は、算出された予測波形の誤差ESを話者間で比較したり、算出された予測波形の誤差ESと予め設定されている閾値の比較を行い、入力音声の音声波形に対する予測波形の誤差が最小で閾値未満となる予測波形を判別して、この予測波形の生成に用いた予測係数に関連付けられている話者を入力音声の話者と特定する。また、話者特定部35は、予測誤差と閾値との判定結果に応じて制御信号CSを生成して予測誤差算出部34に供給して、統計処理に用いる比較単位区間の追加等を行う。
【0030】
なお、図1の話者認識装置10では、個人係数登録部20と話者認識部30を別個に示しているが、予測係数登録時と話者認識時で音声取得部とサンプル抽出部を共用すれば、話者認識システムの構成が簡単となる。例えば、音声取得部21とサンプル抽出部22を削除して、予測係数登録時には、サンプル抽出部32から出力される音声データを係数生成処理部23に供給する。
【0031】
次に、話者認識システムの動作について説明する。図2は個人係数登録部の動作を示すフローチャートである。
【0032】
ステップST1で個人係数登録部20の音声取得部21は、音声取得を開始してステップST2に進む。
【0033】
ステップST2で個人係数登録部20のサンプル抽出部22は、音声波形の最大ピークを検出して、最大ピークが検出された位置を予測係数の算出開始位置としてステップST3に進む。ここで、時間領域で波形の誤差を算出する場合、波形の位相がずれていると波形が類似していても誤差が大きくなってしまう。そこで、最大ピークが検出された位置を予測係数の算出開始位置に設定することで、波形の位相をそろえるものとする。
【0034】
ステップST3で個人係数登録部20のサンプル抽出部22は、算出開始位置から所定サンプル数の音声データDSaを誤差算出対象区間の音声データとして抽出する。誤差算出対象区間は、良好な認識精度を得ることができるとともに、速やかに話者認識を行うことができるように短い区間とする。
【0035】
図3は、認識精度と誤差算出対象区間の長さの関係をモデル化して示したものである。誤差算出対象区間が短い場合、音素例えば母音の/a/の一周期よりも短い音声波形に対する予測波形の誤差が算出される。また、誤差算出対象区間が長くなると、母音の/a/の一周期の音声波形に対する予測波形の誤差が算出される。さらに、誤差算出対象区間が長くなると、母音の/a/の複数周期の音声波形に対する予測波形の誤差が算出される。すなわち、誤差算出対象区間が短いために、一周期よりも短い音声波形に対する予測波形の誤差が算出されたときには認識精度が低く、誤差算出対象区間が長くなると認識精度が高くなる。また、認識精度が高くなると、誤差算出対象区間を長くして複数周期の音声波形に対する予測波形の誤差を算出するものとしても、認識精度は大幅に向上することがない。したがって、個人係数登録部20は、音素例えば母音の/a/の一周期の音声データを抽出できるように誤差算出対象区間を予め設定しておく。ここで、サンプル抽出部32のサンプリング周波数が48kHzであるとき、例えば10000サンプル期間(約0.2秒)を誤差算出対象区間として音声データDSaを抽出する。
【0036】
ステップST4で個人係数登録部20の係数生成処理部23は、誤差算出対象区間の音声データに基づき予測係数の算出を行ってステップST5に進む。
【0037】
図4は、予測係数の算出動作を示すフローチャートである。予測係数は、誤差算出対象区間を複数の比較単位区間に分割して、比較単位区間毎に生成する。
【0038】
ステップST11で係数生成処理部23は、比較単位区間の予測係数を生成するために予め設定された学習区間の音声データを用いて、予測係数の算出を学習区間毎に行う。個人係数登録部20は、前向き線形予測における予測誤差が最小となるように学習区間の音声データを用いて予測係数を算出する。
【0039】
図5は、予測係数の算出処理を説明するための図であり、例えば図5の(A)に示すように、全サンプル数が12サンプル、学習区間が6サンプルである場合を示している。ここで、予測式を「DSy(n)=ω1・DSa(n-1)+ω2・DSa(n-2)+ω3・DSa(n-3)」とすると、図5の(B)に示す最初の学習区間(図5の(A)で示す学習区間TA)において、予測値DSy4は「DSy4=ω1・DSa3+ω2・DSa2+ω3・DSa1」となる。なお、DSa(n-1)、DSa(n-2)、DSa(n-3)は過去タップ、ω1,ω2,ω3は予測係数である。
【0040】
また、予測値DSy5,DSy6は「DSy5=ω1・DSa4+ω2・DSa3+ω3・DSa2、DSy6=ω1・DSa5+ω2・DSa4+ω3・DSa3」となる。なお、図5において、白丸は音声データ、黒丸は予測値を示している。
【0041】
したがって、個人係数登録部20は、予測値DSy4と音声データDSa4の誤差、予測値DSy5と音声データDSa5の誤差、予測値DSy6と音声データDSa6の誤差がそれぞれ最小となるように比較単位区間PAの予測係数ω1,ω2,ω3を算出する。ここで、誤差が最小となる予測係数の算出では、例えば最小自乗法を用いるものとする。
【0042】
図3におけるステップST12で係数生成処理部23は、学習区間を時間方向に(学習区間−過去タップ数)分だけ移動可能であるか否かを判別して、移動可能であるときはステップST13に進む。
【0043】
ステップST13で係数生成処理部23は、学習区間の移動を行う。係数生成処理部23は、学習区間を(学習区間−過去タップ数)分だけ移動してステップST11に戻る。
【0044】
図5の(C)は、移動後の学習区間(図5の(A)で示す学習区間TB)を示している。この学習区間TBにおいても、個人係数登録部20は、図5の(B)に示す学習区間と同様に処理を行い、予測値DSy7と音声データDSa7の誤差、予測値DSy8と音声データDSa8の誤差、予測値DSy9と音声データDSa9の誤差がそれぞれ最小となるように比較単位区間PBの予測係数ω1,ω2,ω3を算出する。
【0045】
図3のステップST12で係数生成処理部23は、学習区間を時間方向に(学習区間−過去タップ数)分だけ移動可能であるか否かを判別して、移動可能であるときはステップST13に進み、学習区間を(学習区間−過去タップ数)分だけ移動してステップST11に戻る。
【0046】
図5の(D)は、移動後の学習区間(図5の(A)で示す学習区間TC)を示している。この学習区間TCにおいても、個人係数登録部20は、図5の(B)に示す学習区間と同様に処理を行い、予測値DSy10と音声データDSa10の誤差、予測値DSy11と音声データDSa11の誤差、予測値DSy12と音声データDSa12の誤差がそれぞれ最小となるように比較単位区間PCの予測係数ω1,ω2,ω3を算出する。
【0047】
図3のステップST12で係数生成処理部23は、再度学習区間を時間方向に(学習区間−過去タップ数)分だけ移動可能であるか否かを判別する。ここで、学習区間TCは最後のサンプルの位置までとなっていることから、係数生成処理部23は移動可能でないと判別して図2のステップST5に進む。
【0048】
ステップST5で個人係数登録部20の係数生成処理部23は、算出した比較単位区間毎の予測係数を話者に関連付けて係数蓄積部40に蓄積させる。なお、係数蓄積部40に予測係数を蓄積させる話者を登録話者と呼ぶものとする。
【0049】
登録話者は、予測係数を係数蓄積部40に蓄積させるときの音声として、波形の比較が容易となるように、1音素例えば母音/a/,/i/,/u/,/e/,/o/のいずれか1つを発音して、予測係数を係数蓄積部40に蓄積させる。なお、発音する母音は、登録話者で共通するものとしてもよく、登録話者毎に異なる母音を発音して予測係数を係数蓄積部40に蓄積させるものとしてもよい。さらに、1人の登録話者について、複数の音素の予測係数を音素毎に蓄積させるものとしてもよい。例えば、1人の登録話者について、母音/a/についての予測係数と、母音/i/についての予測係数を蓄積させてもよい。係数蓄積部40に異なる音素の予測係数を蓄積させる場合、係数蓄積部40は、予測係数と登録話者だけでなく音素も関連付けて蓄積すれば、後述するように認識精度を低下させることなく話者認識に要する時間を短縮することが可能となる。
【0050】
個人係数登録部20は、比較単位区間毎の予測係数を係数蓄積部40に蓄積させる処理をオフラインで話者毎に行う。したがって、オンラインで話者認識を行うときに、予測係数を算出する処理を行う必要がなく、話者認識を効率よく行うことができる。
【0051】
また、個人係数登録部20は、FFTやDCTおよびMFCCなどの負荷の高い演算処理が不要となり、単純な積和演算等で予測係数を算出できることから、携帯機器などのように、処理能力が高くなく大容量のメモリを実装することも小型化やコスト面から困難な機器にも適用できる。
【0052】
なお、図5は、個人係数登録部20の動作を容易に理解できるものとするため、学習区間を6サンプル、過去タップ数を3サンプルとしているが、実際の動作では、認識精度の高い話者認識を行うことができるように、学習区間や過去タップ数を例えば実験的に決定する。
【0053】
次に、話者認識部30の動作について説明する。図6は話者認識部の動作を示すフローチャートである。
【0054】
ステップST21で話者認識部30の音声取得部31は、音声取得を開始してステップST22に進む。
【0055】
ステップST22で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST23に進む。個人係数登録部20は、上述のように最大ピークが検出された位置を予測係数の算出開始位置としている。したがって、個人係数登録部20で取得された入力音声と話者認識部30で取得された入力音声の波形が類似している場合、話者認識の検出開始位置と予測係数の算出開始位置がほぼ等しくなり、入力音声の音声波形と予測波形の位相をそろえることができる。
【0056】
ステップST23で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST24に進む。
【0057】
ステップST24で話者認識部30の予測波形生成部33は、予測波形の生成を行う。図7は予測波形の生成動作を示すフローチャートである。
【0058】
ステップST31で予測波形生成部33は、予測係数の読み出しを行う。予測波形生成部33は、係数蓄積部40に蓄積されている登録話者毎の予測係数を読み出してステップST32に進む。
【0059】
ステップST32で予測波形生成部33は、予測係数を用いて予測波形を生成する。予測波形生成部33は、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、予測波形を比較単位区間毎に生成する。ここで、過去Mサンプルの音声データを用いて前向き線形予測を行うことで予測係数が生成されている場合、予測式は「DSy(n)=ω1・DSb(n-1)+ω2・DSb(n-2)+ω3・DSb(n-3)+・・・+ωM・DSb(n-M)」とする。なおDSy(n)は予測値、ω1〜ωMは予測係数である。
【0060】
ステップST33で予測波形生成部33は、全比較単位区間の予測波形の生成が完了したか否かを判別する。予測波形生成部33は、予測波形の生成が行われていない比較単位区間があるときはステップST34に進み、全比較単位区間すなわち誤差算出対象区間の予測波形の生成が完了したときにはステップST35に進む。
【0061】
ステップST34で予測波形生成部33は、比較単位区間の切り換えを行う。予測波形生成部33は、予測波形の生成が行われていない比較単位区間の予測係数を選択してステップST32に戻る。
【0062】
誤差算出対象区間の予測波形の生成が完了してステップST33からステップST35に進むと、予測波形生成部33は、全登録話者の予測波形の生成が完了したか否かを判別する。予測波形生成部33は、全登録話者の予測波形の生成が完了していないと判別したときステップST36に進み、全登録話者の予測波形の生成が完了していると判別したとき、予測波形の生成を終了して図6のステップST25に進む。
【0063】
ステップST36で予測波形生成部33は、新たな登録話者の予測係数の読み出しを行う。予測波形生成部33は、係数蓄積部40から、予測波形の生成が行われていない登録話者の予測係数を読み出してステップST32に戻る。
【0064】
図6のステップST25で予測誤差算出部34は、入力音声の音声波形に対する予測波形の誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を比較単位区間内で加算して得た差分絶対値和を、入力音声の音声波形に対する予測波形の誤差(以下「予測誤差」という)としてステップST26に進む。なお、予測誤差は、入力音声波形に対する予測波形を示すものであれば差分絶対値和に限られるものではない。
【0065】
ステップST26で予測誤差算出部34は、比較単位区間毎の予測誤差を用いて統計処理を行い、予測波形の誤差の特徴を示す統計量を算出する。また、予測誤差算出部34は統計処理を予測波形毎に行い統計値を算出する。予測誤差算出部34は、登録話者毎に予測誤差の統計値を算出してステップST27に進む。予測誤差の統計値としては、比較単位区間毎の予測誤差の代表的な値、例えば比較単位区間毎の予測誤差の平均値を用いる。また統計値として中央値等を用いるものとしてもよい。
【0066】
ステップST27で話者特定部35は、予測誤差の統計値に基づき、登録話者毎の予測波形から入力音声の音声波形と最も近似した予測波形を決定してステップST28に進む。ここで、予測誤差の統計値として比較単位区間毎の予測誤差の平均値が用いられている場合、平均値が最小となる予測波形を、入力音声の音声波形と最も近似した予測波形と決定する。
【0067】
ステップST28で話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。ここで、音声取得部31で取得された入力音声の話者に対応する予測係数が係数蓄積部40に蓄積されていないとき、決定した予測波形に対応する登録話者、すなわち予測誤差の平均値が最小となる予測波形の生成で用いた予測係数と関連付けられた登録話者は、音声取得部31で取得された入力音声の話者と異なる第三者となる。
【0068】
また、予測誤差の平均値は、音声取得部31で取得された入力音声の話者と、決定した予測波形に対応する登録話者が異なる場合、この入力音声の話者と登録話者が一致する場合に比べて大きくなる。したがって、閾値は、音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者であるかまたは第三者であるかを判別できるように設定する。
【0069】
例えば予測係数を生成したときに、生成した予測係数を用いて予測波形を生成すれば、予測係数の生成に用いた音声波形と予測波形との予測誤差を算出できる。したがって、個人係数登録部20は、予測係数を生成したときに話者認識部30と同様にして予測誤差の算出を行い、予測誤差を係数蓄積部40に蓄積するとき、算出した予測誤差を予測係数と関連付けて蓄積しておく。話者認識部30は、係数蓄積部40に蓄積されている予測係数に関連付けられている予測誤差の中で最大値を判別して、この最大値よりも予測誤差が大きくなるときは第三者と判別できるように閾値を設定する。また、話者認識部30は、入力音声の音声波形と最も近似した予測波形が決定されたとき、決定された予測波形の生成に用いた予測係数に関連付けられている予測誤差に基づき閾値を設定するものとしてもよい。このように、決定された予測波形の生成に用いた予測係数に関連付けられている予測誤差に基づき閾値を設定すれば、予測誤差の最大値に基づいて閾値を設定する場合に比べて最適な閾値を設定することができる。
【0070】
このようにして閾値の設定を行い、設定された閾値を用いて音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者であるかまたは第三者であるかを判別する。
【0071】
話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST29に進み、閾値未満でないと判別したときステップST30に進む。
【0072】
ステップST29で話者特定部35は、話者を特定する。話者特定部35は、予測誤差の統計値が閾値未満であることから、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。なお、決定した予測波形に対応する登録話者とは、決定した予測波形を生成する際に用いた予測係数に関連付けられている登録話者である。
【0073】
ステップST30で話者特定部35は認識エラー処理を行う。話者特定部35は、予測誤差の統計値が閾値未満でないことから、音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者とは異なる第三者であり、話者の特定ができない旨の通知を行って話者認識を終了する。
【0074】
このように、話者認識部30は、予測係数と音声データを用いて積和演算を行うことにより予測波形を登録話者毎に生成したのち、入力音声の音声波形と予測波形との予測誤差を算出する。さらに、話者認識部30は、予測誤差が最小となる予測波形を検出することで話者の認識が行われる。したがって、話者認識部30は、FFTやDCTおよびMFCCの等のような負荷の高い演算処理を行わなくとも話者の認識が可能となり、携帯機器等のように、処理能力が高くなく大容量のメモリを実装することも小型化やコスト面から困難な機器にも適用できる。
【0075】
さらに、予測係数は上述したようにオフラインで予め係数蓄積部40に蓄積されているので、速やかに話者認識を行うことができるため、例えば特定の話者の音声でコマンド入力を行う場合、入力後の待ち時間が短縮されて応答性が良好なシステムを構築できる。
【0076】
また、誤差算出対象区間が複数の比較単位区間に分割されて、比較単位区間毎に予測係数が生成されているので、話者認識精度の高い予測係数を生成することができる。さらに、位相シフトによる認識精度の低下を抑制することも可能となる。
【0077】
表1は、サンプル抽出部のサンプリング周波数が48kHzであって、例えば10000サンプル期間(約0.2秒)の音声データを抽出する場合、過去タップ数と学習区間をどのように設定するか決定するために行った実験結果を例示している。具体的には、過去タップ数と学習サンプル数と誤判定回数の関係を示している。なお、学習サンプル数は、学習区間のサンプル数から過去タップ数を減算した値とする。
【0078】
表1の(A)は予測式の次数=1の場合を示している。この場合、過去タップ数が50で、学習サンプル数が過去タップ数の5倍(×5)および10倍(×10)であるとき、誤判定が少ない。また、表1の(B)は予測式の次数=2の場合を示している。この場合、過去タップ数が50で、学習サンプル数が過去タップ数の5倍(×5)であるとき、誤判定が少ない。さらに、表1の(C)は予測式の次数=3の場合を示している。この場合、次数=1であって過去タップ数が50,学習サンプル数が過去タップ数の10倍(×10)のとき、誤判定が「0」となり良好な認識精度が得られる。したがって、過去タップ数は50サンプルとして、学習サンプル数は過去タップ数の例えば10倍とする。
【0079】
【表1】
【0080】
図8は、過去タップ数を50サンプル、学習サンプル数を過去タップ数の10倍(500サンプル)としたときの学習区間(550サンプル)を示している。このように過去タップ数と学習区間を設定して図5に示すように学習区間を移動するものとしたとき、サンプル抽出で抽出された10000サンプルに対して設けられる比較単位区間の数は、「(10000−50)/500=19.9」であることから19個となる。また、予測式を例えば「DSy(n)=ω1・DSa(n-1)+ω2・DSa(n-2)+・・・+ω50・DSa(n-50)」とすると、係数蓄積部40には、入力された例えば1つの母音に対して予測係数(ω1〜ω50)が19セット蓄積されることになる。したがって、図6のステップST26では、19個の予測誤差の平均値を予測波形毎に算出することになる。
【0081】
ところで、図6に示す処理は、比較単位区間毎の予測誤差の統計値として、比較単位区間毎の予測誤差の代表値である予測誤差平均値を用いて予測波形を決定するものである。しかし、比較単位区間毎の予測誤差の代表値のみを用いるものとすると、比較単位区間毎の予測誤差のばらつきを考慮することなく話者認識が行われてしまう。そこで、比較単位区間毎の予測誤差の統計値として、比較単位区間毎の予測誤差のばらつきを示す値、例えば分散や偏差等も用いるものとすれば、予測誤差のばらつきを考慮した話者認識を行うことができるので認識精度を向上させることが可能となる。
【0082】
図9は、比較単位区間毎の予測誤差の統計量として、予測誤差の平均値と分散を用いる場合の動作を示すフローチャートである。
【0083】
ステップST41で話者認識部30の音声取得部31は、音声取得を開始してステップST42に進む。
【0084】
ステップST42で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST43に進む。
【0085】
ステップST43で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST44に進む。
【0086】
ステップST44で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成してステップST45に進む。
【0087】
ステップST45で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST46に進む。
【0088】
ステップST46で予測誤差算出部34は、比較単位区間毎の予測誤差の統計処理を行い、予測波形の誤差の特徴を示す統計量として予測誤差の平均値と分散を、予測波形毎に算出してステップST47に進む。
【0089】
ステップST47で話者特定部35は、予測誤差の平均値と分散に基づき、入力音声の音声波形と最も近似した予測波形を決定してステップST48に進む。話者特定部35は、予測誤差の平均値が小さく分散の少ない予測波形を音声波形と最も近似した予測波形に決定する。
【0090】
ステップST48で話者特定部35は、決定した予測波形に対する予測誤差の平均値と分散が閾値未満であるか否かを判別する。話者特定部35は、決定した予測波形について、予測誤差の平均値と分散が閾値未満であると判別したときステップST49に進み、閾値未満でないと判別したときステップST50に進む。
【0091】
ステップST49で話者特定部35は、話者を特定する。話者特定部35は、予測誤差の平均値と分散が閾値未満であることから、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。
【0092】
ステップST50で話者特定部35は認識エラー処理を行う。話者特定部35は、予測誤差の平均値や分散が閾値未満でないことから、音声取得部31で取得された入力音声の話者が、決定した予測波形に対応する登録話者とは異なる第三者であり、話者の特定ができない旨の通知を行って話者認識を終了する。
【0093】
このように、学習区間毎の予測誤差のばらつきを考慮して話者認識を行うものとすれば、比較単位区間毎の予測誤差の代表値のみに基づいて話者認識を行う場合に比べて、話者認識の精度を向上させることができる。
【0094】
また、上述の話者認識部30は、全ての比較単位区間の予測波形を用いて話者認識を行うものである。しかし、比較単位区間毎の予測波形を選択的に用いて話者認識を行うものとすれば、全ての比較単位区間の予測波形を用いて話者認識を行う場合に比べて、演算時間を短縮することが可能となる。
【0095】
図10および図11は、比較単位区間毎の予測波形を選択的に用いて話者認識を行う場合の動作を示すフローチャートである。なお、図10は、時間的に最も古い比較単位区間から所定数区間の予測波形を選択的に用いて話者認識を行う場合、図11は比較単位区間の間引きを行って話者認識を行う場合を示している。
【0096】
図10のステップST51で話者認識部30の音声取得部31は、音声取得を開始してステップST52に進む。
【0097】
ステップST52で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST53に進む。
【0098】
ステップST53で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST54に進む。
【0099】
ステップST54で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成してステップST55に進む。
【0100】
ステップST55で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST56に進む。
【0101】
ステップST56で予測誤差算出部34は、誤差算出対象区間における先頭から所定数の比較単位区間の予測誤差を予測波形毎に抽出する。例えば比較単位区間が上述のように19区間であるとき、時間的に古い順から3比較単位区間の予測誤差を抽出してステップST57に進む。
【0102】
ステップST57で予測誤差算出部34は、抽出した予測誤差の統計処理を予測波形毎に行いステップST58に進む。
【0103】
ステップST58で話者特定部35は、予測誤差の統計値(例えば平均値または平均値と分散等)に基づき、入力音声の音声波形と最も近似した予測波形を決定してステップST59に進む。
【0104】
ステップST59で話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST60に進み、閾値未満でないと判別したときステップST61に進む。
【0105】
ステップST60で話者特定部35は、話者を特定する。すなわち、予測誤差の統計値が閾値未満であることから、話者特定部35は、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。
【0106】
ステップST61で話者特定部35は、全比較単位区間の予測誤差が用いられているか判別する。話者特定部35は、全比較単位区間の予測誤差が用いられていないと判別したときステップST62に進み、全比較単位区間の予測誤差が用いられていると判別したときステップST63に進む。
【0107】
ステップST62で予測誤差算出部34は、予測誤差の抽出を1比較単位区間追加してステップST57に戻る。
【0108】
すなわち、ステップST58で決定した予測波形に対する予測誤差の統計値が閾値未満とならないときには、比較単位区間が追加されて、追加された比較単位区間の予測誤差を含めた予測誤差の統計値が予測波形毎に算出される。さらに、この予測誤差の統計値に基づいて、入力音声の音声波形と最も近似した予測波形を決定する処理が再度行われる。
【0109】
ステップST61で全比較単位区間の予測誤差が用いられていると判別されてステップST63に進むと、ステップST63で話者特定部35は認識エラー処理を行う。
【0110】
このように、誤差算出対象区間における先頭から所定数の比較単位区間の予測誤差を抽出して話者認識を行い、話者が特定できないときには比較単位区間を追加して話者認識が繰り返される。したがって、入力音声の話者が、決定した予測波形に対応する登録話者であるとき、全比較単位区間の予測誤差を用いて統計量を算出しなくとも、所定数の比較単位区間の予測誤差に基づいて話者が特定されるので、全比較単位区間の予測誤差を用いて話者認識を行う場合に比べて、話者が特定されるまでに要する演算時間を短縮することが可能となる。
【0111】
図11のステップST71で話者認識部30の音声取得部31は、音声取得を開始してステップST72に進む。
【0112】
ステップST72で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST73に進む。
【0113】
ステップST73で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST74に進む。
【0114】
ステップST74で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成してステップST75に進む。
【0115】
ステップST75で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位区間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST76に進む。
【0116】
ステップST76で予測誤差算出部34は、比較単位区間の間引きを行ってステップST77に進む。比較単位区間の間引きでは、等間隔で比較単位区間の間引きを行う。例えば比較単位区間が上述のように19区間であるとき、1比較単位区間を用いるものとして次の2比較単位区間間隔を間引くものとする。
【0117】
ステップST77で予測誤差算出部34は、間引き後の比較単位区間毎の予測誤差を予測波形毎に抽出してステップST78に進む。
【0118】
ステップST78で予測誤差算出部34は、抽出した予測誤差の統計処理を予測波形毎に行いステップST79に進む。
【0119】
ステップST79で話者特定部35は、予測誤差の統計値に基づき、入力音声の音声波形と最も近似した予測波形を決定してステップST80に進む。
【0120】
ステップST80で話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST80に進み、閾値未満でないと判別したときステップST81に進む。
【0121】
ステップST81で話者特定部35は、話者を特定する。話者特定部35は、決定した予測波形に対する予測誤差の統計値が閾値未満であることから、音声取得部31で取得された入力音声の話者を、決定した予測波形に対応する登録話者と特定して話者認識を終了する。
【0122】
ステップST82で話者特定部35は、全比較単位区間の予測誤差が用いられているか判別する。話者特定部35は、全比較単位区間の予測誤差が用いられていないと判別したときステップST83に進み、全比較単位区間の予測誤差が用いられていると判別したときステップST84に進む。
【0123】
ステップST83で予測誤差算出部34は、比較単位区間の間引き間隔を1比較単位区間減少させてステップST76に戻る。
【0124】
すなわち、ステップST79で決定した予測波形に対する予測誤差の統計値が閾値未満とならないときには、比較単位区間が追加されて、追加された比較単位区間の予測誤差を含めた予測誤差の統計値が予測波形毎に算出される。さらに、この予測誤差の統計値に基づき、入力音声の音声波形と最も近似した予測波形を決定する処理が再度行われる。
【0125】
ステップST82で全比較単位区間の予測誤差が用いられていると判別されてステップST84に進むと、ステップST84で話者特定部35は認識エラー処理を行う。
【0126】
このように、比較単位区間の間引きを行い、間引き後の比較単位区間の予測誤差を抽出して話者認識を行い、話者が特定できないときには比較単位区間を追加して話者認識が繰り返される。したがって、入力音声の話者が、決定した予測波形に対応する登録話者であるとき、全比較単位区間の予測誤差を用いて統計量を算出しなくとも、間引き後の比較単位区間の予測誤差に基づいて話者が特定されるので、全比較単位区間の予測誤差を用いて話者認識を行う場合に比べて、話者が特定されるまでに要する演算時間を短縮することが可能となる。
【0127】
また、比較単位区間の間引きは、等間隔で間引きを行う場合に限られるものではなく、音声データの波形形状の特徴に応じて間引き位置を調整するものとしてもよい。例えば母音/a/や母音/o/では、話者の違いによる音声波形の相違が音声波形の先頭側で顕著になりやすい。また、母音/i/や母音/u/では、話者の違いによる音声波形の相違が音声波形の全体で現れて、音声波形の先頭側で顕著となるものではない。したがって、音声が母音/a/や母音/o/であるときには、先頭側の間引き間隔を狭くして、母音/i/や母音/u/であるときは、間引き間隔を等しくする。
【0128】
この場合、話者認識部30は、音声取得を行う際に、入力音声がどのような音素であるかを示す音素情報を合わせて取得する。例えば話者認識部30は、母音毎に操作キーを設けておき、発話する母音に対応する操作キーを操作しながら音声入力を話者に行わせることで、入力音声と音素情報を取得する。話者認識部30は、取得した音素情報に基づき間引き位置を調整して話者認識を行う。
【0129】
このように、話者認識部30は、入力音声がどのような音素であるかに応じて、間引き位置を調整して最適化することができるので、話者認識をさらに効率よく行うことができる。
【0130】
なお、図10および図11では、全比較単位区間の予測波形の生成や予測誤差の算出を行ってから、選択的に予測誤差を用いて話者認識を行うものであるが、話者認識に用いる比較単位区間についてのみ予測波形の生成や予測誤差の算出を行い、比較単位区間が追加されるときには、追加された比較単位区間について予測波形の生成や予測誤差の算出を行って話者認識を行うこともできる。
【0131】
ところで、上述の話者認識部30は、全登録話者の予測誤差の統計値について比較を行い、比較結果に基づいて話者認識を行うものであるが、予測係数の蓄積を行った登録話者毎の予測誤差を順次閾値と比較して、この比較結果に基づいて入力音声の話者の特定を行うこともできる。
【0132】
図12は、登録話者毎の予測誤差を順次閾値と比較して話者認識を行う場合の動作を示すフローチャートである。
【0133】
ステップST91で話者認識部30の音声取得部31は、音声取得を開始してステップST92に進む。
【0134】
ステップST92で話者認識部30のサンプル抽出部32は、音声波形の最大ピークを検出して、最大ピークが検出された位置を話者認識の検出開始位置としてステップST93に進む。
【0135】
ステップST93で話者認識部30のサンプル抽出部32は、検出開始位置から所定サンプル数の音声データDSbを抽出する。サンプル抽出部32は、例えば個人係数登録部20のサンプル抽出部22で抽出した音声データのサンプル数分だけ音声データDSbを抽出してステップST94に進む。
【0136】
ステップST94で話者認識部30の予測波形生成部33は、予測波形の生成を行う。予測波形の生成では、予測式を用いて予測係数と抽出した音声データDSbとの演算を行い、誤差算出対象区間の予測波形を生成する。
【0137】
ステップST95で予測誤差算出部34は、入力音声の音声波形に対する予測波形の予測誤差を比較単位期間毎に算出する。予測誤差算出部34は、サンプル位置毎に音声データDSbと予測値DSyの差分を求めて、この差分の絶対値を加算することにより差分絶対値和を比較単位区間毎に算出して、この差分絶対値和を予測誤差としてステップST96に進む。
【0138】
ステップST96で予測誤差算出部34は、予測誤差の統計処理を予測波形毎に実施してステップST97に進む。
【0139】
ステップST97で話者特定部35は、予測係数の蓄積を行った登録話者を選択してステップST98に進む。
【0140】
ステップST98で話者特定部35は、選択した登録話者の予測波形に対する予測誤差の統計値が閾値未満であるか否かを判別する。話者特定部35は、予測波形に対する予測誤差の統計値が閾値未満であると判別したときステップST99に進み、閾値未満でないと判別したときステップST100に進む。
【0141】
ステップST99で話者特定部35は、話者を特定する。話者特定部35は、予測誤差の統計値が閾値未満であることから、音声取得部31で取得された入力音声の話者を、選択した登録話者と特定して話者認識を終了する。
【0142】
ステップST100で話者特定部35は、全登録話者の選択が完了したか否かを判別する。話者特定部35は、全登録話者の選択が完了していないと判別したときステップST101に進み、全登録話者の選択が完了したと判別したときステップST102に進む。
【0143】
ステップST101で話者特定部35は、新たな登録話者を選択してステップST98に戻る。話者特定部35は、まだ選択されていない登録話者から新たに登録話者を選択する。
【0144】
ステップST100で全登録話者について予測波形の選択が完了したと判別されてステップST102に進むと、ステップST102で話者特定部35は認識エラー処理を行う。
【0145】
このように、選択された登録話者の予測波形に対する予測誤差の統計値が閾値未満と判別されたときに、音声取得部31で取得された入力音声の話者が、選択した登録話者と特定される。したがって、全登録話者の予測波形に対する予測誤差の統計値を比較して、最も音声波形に近似した予測波形を決定する必要がないことから、話者が特定されるまでに要する時間を短縮することが可能となる。
【0146】
なお、図12では、全登録話者の予測波形の生成や予測誤差の算出を行ってから、選択された登録話者の予測波形に対する予測誤差の統計値を用いて話者認識を行うものであるが、登録話者が選択されたとき、選択された登録話者に対応する予測波形の生成や予測誤差の算出を行って話者認識を行うこともできる。
【0147】
さらに、上述の話者認識はソフトウェアで行うものとしてもよい。図13は、上述の処理をプログラムにより実行するコンピュータの構成を示した図である。
【0148】
コンピュータ60のCPU(Central Processing Unit)61は、ROM(Read Only Memory)62またはRAM(Random Access Memory)63に記録されているプログラムにしたがって、各種の処理を実行する。また、RAM63は、各種の処理を実行する際のワーキングメモリとして用いられる。これらのCPU61、ROM62、およびRAM63は、バス64により相互に接続されている。また、CPU61には、バス64を介して入出力インタフェース部65が接続されている。入出力インタフェース部65には、ユーザインタフェース部66、入力部67、出力部68、情報蓄積部69等が接続されている。
【0149】
ユーザインタフェース部66は、操作キー等を用いて構成されており、ユーザ操作に応じた操作信号をCPU61に供給する。入力部67は、話者の音声取得を行うものであり、出力部68は、話者認識結果を出力するものである。情報蓄積部69は不揮発性メモリ等で構成されており、話者毎の予測係数および予測係数に関連付けられている話者や予測誤差等の情報を蓄積するものである。
【0150】
なお、図示せずも、例えばリムーバブルメディア例えば着脱可能な半導体メモリ等に対してデータの読み出しやデータの書き込みを行うドライブ部、外部機器と通信を行う通信部を設けるものとしてもよい。このように、ドライブ部や通信部を設けるものとすれば、ドライブ部や通信部を介してプログラムの取得や更新を容易に行うことができる。
【0151】
CPU61は、プログラムを実行して、入力部67で音声取得を行って得られた音声データから予測係数を生成して情報蓄積部69に蓄積させる処理を行う。また、話者認識を行う場合、CPU61は、入力部67で音声取得を行って得られた音声データと情報蓄積部69に蓄積されている話者毎の予測係数を用いて予測波形の生成を行う。さらに、生成した予測波形と入力音声の音声波形との誤差に基づき、入力音声の話者を特定して、話者認識結果を出力部68から出力させる。
【0152】
このようにして上述の一連の処理をプログラムにより実行すれば、時間領域を周波数領域に変換するなどの高度な演算処理を行うことなく話者認識を行うことができる。
【0153】
以上のように本願の発明は、話者の音声から生成した予測係数を話者毎に予め蓄積しておき、話者認識を行う際には、予測係数を用いて生成した予測波形と入力音声の音声波形を比較して、誤差の少ない予測波形の生成に用いた予測係数に関連付けられている登録話者が、入力音声の話者と特定される。
【0154】
したがって、FFTやDCT、MFCC等の演算を行う必要がなく、処理能力の高くない機器や大容量のメモリを実装することが困難な機器であっても、話者認識を行うことができるようになる。また、演算処理の負荷が軽減されているので、例えば携帯端末に適用してもリアルタイム性を損なわず軽快な動作を期待できる。さらに、携帯端末に話者認識を適用した場合、話者認識によるドアロックの解除、口座取扱時の本人確認、他者の無断使用を防ぐために他人拒否などを行うセキュリティ用途のアプリケーション等で話者認識を利用できる。また、他の認識処理、例えば顔認識や指紋認識、静脈認識、網膜認識、虹彩認識などと本願の話者認識を組み合わせて用いるものとすれば、よりセキュアなシステムを構築することができる。なお、本発明の実施の形態に限らず、本発明の要旨を逸脱しない範囲において種々の変更も可能である。
【産業上の利用可能性】
【0155】
この発明の話者認識装置と話者認識方法およびプログラムは、時間領域を周波数領域に変換する処理等行うことなく、時間領域で簡単かつ容易に話者認識を行うことができるものである。したがって、携帯機器等に適用すれば、セキュリティ用途例えばユーザ認証等に利用することができる。
【図面の簡単な説明】
【0156】
【図1】話者認識装置の構成を示す図である。
【図2】個人係数登録部の動作を示すフローチャートである。
【図3】認識精度と誤差算出対象区間の長さの関係をモデル化して示した図である。
【図4】予測係数の算出動作を示すフローチャートである。
【図5】予測係数の算出処理を説明するための図である。
【図6】話者認識部の動作を示すフローチャートである。
【図7】予測波形の生成動作を示すフローチャートである。
【図8】学習区間を示す図である。
【図9】予測誤差の平均値と分散を用いる場合の動作を示すフローチャートである。
【図10】比較単位区間毎の予測波形を選択的に用いて話者認識を行う場合の動作を示すフローチャートである。
【図11】比較単位区間毎の予測波形を選択的に用いて話者認識を行う場合の動作を示すフローチャートである。
【図12】登録話者毎の予測誤差を順次閾値と比較して話者認識を行う場合の動作を示すフローチャートである。
【図13】コンピュータの構成を示す図である。
【図14】従来の話者認識の動作を示すフローチャートである。
【符号の説明】
【0157】
10・・・話者認識装置、20・・・個人係数登録部、21,31・・・音声取得部、22,32・・・サンプル抽出部、23・・・係数生成処理部、30・・・話者認識部、33・・・予測波形生成部、34・・・予測誤差算出部、35・・・話者特定部、40・・・係数蓄積部、60・・・コンピュータ、61・・・CPU、62・・・ROM、63・・・RAM、64・・・バス、65・・・入出力インタフェース部、66・・・ユーザインタフェース部、67・・・入力部、68・・・出力部、69・・・情報蓄積部
【特許請求の範囲】
【請求項1】
音声波形を予測するための予測係数を話者毎に蓄積した係数蓄積部と、
入力音声の音声データと前記予測係数を用いた演算を行い、前記話者毎に予測波形を生成する予測波形生成部と、
前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出する予測誤差算出部と、
前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定する話者特定部と
を備える話者認識装置。
【請求項2】
前記予測係数は、話者の音声データに対して線形予測分析を行って得られた線形予測係数である
請求項1記載の話者認識装置。
【請求項3】
前記係数蓄積部は、前記誤差の算出対象区間が複数の比較単位区間に分割されて比較単位区間毎に得られた予測係数を蓄積するものとし、
前記予測誤差算出部は、前記比較単位区間毎に得た誤差の統計的処理を行うことで前記予測波形の誤差の特徴を示す統計量を算出し、
前記話者特定部は、前記話者毎の誤差として、前記統計的処理を行うことにより得られた話者毎の統計値を用いる
請求項2記載の話者認識装置。
【請求項4】
前記予測誤差算出部は、前記誤差の算出対象区間の先頭から複数の前記比較単位区間のそれぞれで得た誤差の統計的処理を話者毎に行う
請求項3記載の話者認識装置。
【請求項5】
前記予測誤差算出部は、前記誤差の算出対象区間に対して前記比較単位区間の間引きを行い、間引き後の前記比較単位区間のそれぞれで得た誤差の統計的処理を話者毎に行い、
請求項3記載の話者認識装置。
【請求項6】
前記予測誤差算出部は、前記予測係数の生成に用いた音声に応じて、前記比較単位区間の間引き位置を設定する
請求項5記載の話者認識装置。
【請求項7】
前記予測誤差算出部は、前記比較単位区間毎に得た誤差の統計的処理を行い、前記誤差の平均値または前記誤差の平均値と分散を前記統計値として算出する
請求項3記載の話者認識装置。
【請求項8】
話者毎の音声データに対して線形予測分析を行い、前記音声波形を予測するための予測係数を生成して、該予測係数に話者を関連付けて前記係数蓄積部に蓄積させる係数生成処理部をさらに備える
請求項1記載の話者認識装置。
【請求項9】
音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、
前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、
前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップと
を備える話者認識方法。
【請求項10】
コンピュータに、
音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、
前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、
前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップと
を実行させるプログラム。
【請求項1】
音声波形を予測するための予測係数を話者毎に蓄積した係数蓄積部と、
入力音声の音声データと前記予測係数を用いた演算を行い、前記話者毎に予測波形を生成する予測波形生成部と、
前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出する予測誤差算出部と、
前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定する話者特定部と
を備える話者認識装置。
【請求項2】
前記予測係数は、話者の音声データに対して線形予測分析を行って得られた線形予測係数である
請求項1記載の話者認識装置。
【請求項3】
前記係数蓄積部は、前記誤差の算出対象区間が複数の比較単位区間に分割されて比較単位区間毎に得られた予測係数を蓄積するものとし、
前記予測誤差算出部は、前記比較単位区間毎に得た誤差の統計的処理を行うことで前記予測波形の誤差の特徴を示す統計量を算出し、
前記話者特定部は、前記話者毎の誤差として、前記統計的処理を行うことにより得られた話者毎の統計値を用いる
請求項2記載の話者認識装置。
【請求項4】
前記予測誤差算出部は、前記誤差の算出対象区間の先頭から複数の前記比較単位区間のそれぞれで得た誤差の統計的処理を話者毎に行う
請求項3記載の話者認識装置。
【請求項5】
前記予測誤差算出部は、前記誤差の算出対象区間に対して前記比較単位区間の間引きを行い、間引き後の前記比較単位区間のそれぞれで得た誤差の統計的処理を話者毎に行い、
請求項3記載の話者認識装置。
【請求項6】
前記予測誤差算出部は、前記予測係数の生成に用いた音声に応じて、前記比較単位区間の間引き位置を設定する
請求項5記載の話者認識装置。
【請求項7】
前記予測誤差算出部は、前記比較単位区間毎に得た誤差の統計的処理を行い、前記誤差の平均値または前記誤差の平均値と分散を前記統計値として算出する
請求項3記載の話者認識装置。
【請求項8】
話者毎の音声データに対して線形予測分析を行い、前記音声波形を予測するための予測係数を生成して、該予測係数に話者を関連付けて前記係数蓄積部に蓄積させる係数生成処理部をさらに備える
請求項1記載の話者認識装置。
【請求項9】
音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、
前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、
前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップと
を備える話者認識方法。
【請求項10】
コンピュータに、
音声波形を予測するための予め話者毎に蓄積されている予測係数と、入力音声の音声データとを用いて演算を行い、前記話者毎に予測波形を生成するステップと、
前記入力音声の音声波形に対する前記生成された予測波形の誤差を、前記話者毎に算出するステップと、
前記算出された話者毎の誤差に基づいて、前記入力音声の話者を特定するステップと
を実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−294307(P2009−294307A)
【公開日】平成21年12月17日(2009.12.17)
【国際特許分類】
【出願番号】特願2008−145668(P2008−145668)
【出願日】平成20年6月3日(2008.6.3)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成21年12月17日(2009.12.17)
【国際特許分類】
【出願日】平成20年6月3日(2008.6.3)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]