(57)【特許請求の範囲】
【請求項１】
話者適応用の単語について複数の不特定話者の発する音声データを分析して得られた不特定話者ごとの複数の特徴ベクトルの時系列を得て、
前記不特定話者ごとの複数の特徴ベクトルの時系列の時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで、前記話者適応用の単語についての重心ベクトルの時系列を求めておき、
入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列と前記重心ベクトルの時系列の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心ベクトルの時系列を構成する各重心ベクトルとを対応付けし、前記各重心ベクトルに対応した差分ベクトルを求め、
前記差分ベクトルを用いて、予め作成された不特定話者コードブックのコードベクトルを変換して入力話者コードブックのコードベクトルを求めることを特徴とする話者適応化方法。
【請求項２】
前記入力話者コードブックのコードベクトルを求める処理は、不特定話者コードブックに存在するそれぞれのコードベクトルに対し、そのコードベクトルに近い距離に存在する前記重心ベクトルを幾つか選択し、この選択された重心ベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの当該コードベクトルに加算することで入力話者コードブックのコードベクトルを求めることを特徴とする請求項１記載の話者適応化方法。
【請求項３】
前記距離に応じた重み係数は、２乗距離の逆数に比例した係数であることを特徴とする請求項２記載の話者適応化方法。
【請求項４】
話者適応用の単語について複数の不特定話者の発する音声データを分析して得られた不特定話者ごとの複数の音声特徴ベクトルの時系列を得て、
前記不特定話者ごとの複数の特徴ベクトルの時系列の時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで、前記話者適応用の単語についての重心ベクトルの時系列を求めておき、
予め作成された不特定話者コードブックのコードベクトルと前記重心ベクトルの時系列とを対応付けして、当該重心ベクトルの時系列を量子化し、
入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列と、前記量子化された重心ベクトルの時系列（重心コードベクトルの時系列）の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心コードベクトルの時系列を構成する各重心コードベクトルとを対応付けして、前記各重心コードベクトルに対応した差分ベクトルを求め、前記差分ベクトルを用いて、前記不特定話者コードブックのコードベクトルを入力話者コードブックに変換することを特徴とする話者適応化方法。
【請求項５】
前記不特定話者コードブックのコードベクトルを入力話者コードブックに変換する処理において、前記量子化された重心ベクトル（重心コードベクトル）に対しては、それぞれの重心コードベクトルに対応する差分ベクトルを加算することで変換後のコードベクトルとし、不特定話者コードブックに存在する前記量子化された重心ベクトル以外のコードベクトル（未学習コードベクトル）に対しては、当該未学習コードベクトルに近い距離に存在する前記重心コードベクトルを幾つか選択し、この選択された重心コードベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの未学習コードベクトルに加算することで変換後のコードベクトルとすることを特徴とする請求項４記載の話者適応化方法。
【請求項６】
前記距離に応じた重み係数は、２乗距離の逆数に比例した係数であることを特徴とする請求項５記載の話者適応化方法。
【請求項７】
話者適応用の単語について複数の不特定話者の発する音声データを分析して得られた不特定話者ごとの複数の特徴ベクトルの時系列前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで得られた前記話者適応用の単語についての重心ベクトルの時系列を記憶する重心ベクトル列記憶手段と、
入力話者の音声を音声分析して得られた音声特徴ベクトルの時系列を記憶する入力データ記憶部と、
前記入力データ記憶部に記憶された入力話者が発する前記話者適応用の単語の音声特徴ベクトルの時系列と前記重心ベクトルの時系列の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心ベクトルの時系列を構成する各重心ベクトルとを対応付けし、前記各重心ベクトルに対応した差分ベクトルを求め、前記差分ベクトルを用いて、予め作成された不特定話者コードブックのコードベクトルを変換して入力話者コードブックのコードベクトルを求める話者適応処理部と、
を有したことを特徴とする話者適応化装置。
【請求項８】
前記不特定話者コードブックのコードベクトルを変換して入力話者コードブックのコードベクトルを求める処理は、不特定話者コードブックに存在するそれぞれのコードベクトルに対し、そのコードベクトルに近い距離に存在する前記重心ベクトルを幾つか選択し、この選択された重心ベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの当該コードベクトルに加算することで入力話者コードブックのコードベクトルを求めることを特徴とする請求項７記載の話者適応化装置。
【請求項９】
前記距離に応じた重み係数は、２乗距離の逆数に比例した係数であることを特徴とする請求項８記載の話者適応化装置。
【請求項１０】
話者適応用の単語について複数の不特定の話者の発する音声データを分析して得られた不特定話者ごとの複数の音声特徴ベクトルの時系列の時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで得られた前記話者適応用の単語についての重心ベクトルの時系列を記憶する重心ベクトル列記憶手段と、
入力話者の音声を音声分析して得られた音声特徴ベクトルの時系列を記憶する入力音声データ記憶部と、
予め作成された不特定話者コードブックのコードベクトルと前記重心ベクトルの時系列とを対応付けして、当該重心ベクトルの時系列を量子化し、前記入力音声データ記憶部に記憶された入力話者が発する前記話者適応用の単語の音声特徴ベクトルの時系列と、前記量子化された重心ベクトルの時系列（重心コードベクトルの時系列）の時系列の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心コードベクトルの時系列を構成する各重心コードベクトルとを対応付けして、前記各重心コードベクトルに対応した差分ベクトルを求め、前記差分ベクトルを用いて、前記不特定話者コードブックのコードベクトルを入力話者コードブックに変換する話者適応処理部と、
を有したことを特徴とする話者適応化装置。
【請求項１１】
前記話者適応処理部が行う不特定話者コードブックのコードベクトルを入力話者コードブックに変換する処理において、量子化された重心ベクトル（重心コードベクトル）に対しては、それぞれの重心コードベクトルに対応する差分ベクトルを加算することで変換後のコードベクトルとし、不特定話者コードブックに存在するそれ以外のコードベクトル（未学習コードベクトル）に対しては、未学習コードベクトルに近い距離に存在する前記重心コードベクトルを幾つか選択し、この選択された重心コードベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの未学習コードベクトルに加算することで変換後のコードベクトルとすることを特徴とする請求項１０記載の話者適応化装置。
【請求項１２】
前記距離に応じた重み係数は、２乗距離の逆数に比例した係数であることを特徴とする請求項１１記載の話者適応化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトル量子化を用いた音声認識に適用される話者適応化方法および話者適応化装置に関する。
【０００２】
【従来の技術】
ベクトル量子化を用いた音声認識においては、不特定の話者の音声認識の認識性能を高めるために話者適応を用いる方法が知られている。このベクトル量子化を用いた音声認識における従来の話者適応方法として、音声認識時において、入力話者の音声が入力されると、ある一人の標準話者から作成されたコードブック（入力話者コードブックおよび標準話者コードブック）に基づいて、入力話者の特徴ベクトル列を標準話者の特徴ベクトル列に変換して出力する方法が一般的に用いられている。これを図１２により説明する。図１２（ａ）は、入力話者の音声特徴ベクトル列であり、同図（ｂ）は予め作成された入力話者コードブック、同図（ｃ）は標準話者コードブックである。
【０００３】
なお、入力話者の音声は、通常、Ａ／Ｄ変換器でディジタル信号に変換されたのち、周波数分析され、音声波形信号の周波数の特徴を表す１０次元程度の特徴ベクトル（LPCーCEPSTRUM係数が一般的）として出力されるが、ここでは、説明を簡略化するため、５次元の特徴ベクトル列で示している。また、コードブックのサイズは通常２５６あるいは５１２といったサイズが用いられるが、ここでは、サイズを３としている。そして、入力話者コードブックと標準話者コードブックはそれぞれのデータが予め対応づけられており、たとえば、入力話者コードブックのＡのデータは標準話者コードブックのＡ’に、入力話者コードブックのＢのデータは標準話者コードブックのＢ’に、入力話者コードブックのＣのデータは標準話者コードブックのＣ’にそれぞれ対応づけられている。
【０００４】
今、図１２（ａ）に示すような入力話者の入力音声の特徴ベクトル列（イ）、（ロ）、（ハ）、・・・が、入力されると、これらの特徴ベクトル列（イ）、（ロ）、（ハ）、・・・が同図（ｂ）に示す入力話者コードブックのどのデータと最も近いかを距離計算により求める。たとえば、入力音声（イ）のデータ（３・２・０・０・０）は入力話者コードブックのデータＡ（３・２・０・０・０）と最も近く、入力音声（ロ）のデータ（２・１・１・１・１）は入力話者コードブックのデータＢ（１・１・１・１・１）と最も近く、入力音声（ハ）のデータ（１・２・１・１・１）は入力話者コードブックのデータＢ（１・１・１・１・１）と最も近く、入力音声（ニ）のデータ（０・０・２・２・２）は入力話者コードブックのデータＣ（０・０・０・２・２）と最も近く、入力音声（ホ）のデータ（０・０・０・２・３）は入力話者コードブックのデータＣ（０・０・０・２・２）と最も近いということが求められる。
【０００５】
このようにして、入力音声の１つ１つのデータ毎に入力話者コードブックを参照して、最も近い特徴ベクトルを選ぶ。したがって、この場合、入力音声（イ）〜（ホ）に限って考えれば、Ａ・Ｂ・Ｂ・Ｃ・Ｃという特徴コードベクトルが求められる。
【０００６】
そして、入力話者コードブックは標準話者コードブックに対して、ＡはＡ’、ＢはＢ’、ＣはＣ’というような対応付けができているので、この場合、入力音声は標準話者のコードブックのＡ’・Ｂ’・Ｂ’・Ｃ’・Ｃ’というデータに変換されることになる。なお、この場合、標準音声話者コードブックのデータＡ’は（３・３・０・０・０）であり、データＢ’は（２・２・２・１・１）であり、データＣ’は（０・０・０・３・３）である。
【０００７】
以上のようにして、入力音声の特徴ベクトル列は標準話者コードブックの特徴ベクトル列に変換でき、この変換された特徴ベクトル列が音声認識処理部に送信される。
【０００８】
【発明が解決しようとする課題】
従来の話者適応化方法では、一人の標準話者から作成したコードブックを入力話者の音声特徴空間にマッピングすることで話者適応を行っていた。しかしながら、一人の標準話者から作成したコードブックを用いて話者適応を行おうとすると、特定の一人の音声の特徴ベクトルと標準話者の音声特徴ベクトルが大きく異なる場合、数個の単語を用いたコードブックマッピング法による話者適応処理では、高精度な話者適応はあまり期待できず、これにより話者適応されたコードベクトルを用いての音声認識は、十分な認識性能が得られないという問題があった。
これを解決する手段として、多数の標準話者の音声モデルと標準話者コードブックを用意しておき、入力話者に対して音声特徴の近い標準話者を選択して話者適応を行う方法も考えられるが、この方法では、幾つもの標準話者の音声モデルと標準話者コードブックを用意する必要があり、小型で安価な装置適用するには現実的でなく、実用性に乏しかった。
【０００９】
そこで、本発明は、ある単語について複数の不特定の話者ごとの音声特徴ベクトル列を得て、これら不特定話者ごとの特徴ベクトル列から重心ベクトル列を求めておき、入力話者が発する単語の音声データから得られた特徴ベクトル列との差分ベクトルを求め、その差分ベクトルと複数話者の音声データから作成した不特定話者コードブックとを用いて、入力話者コードブックのコードベクトルを求めるようにすることで、入力話者の音声の特徴に左右されない高精度な話者適応を、演算量が少なく簡単な処理で、しかも安価に可能とすることを目的としている。
【００１０】
【課題を解決するための手段】
本発明の話者適応化方法は、話者適応用の単語について複数の不特定話者の発する音声データを分析して得られた不特定話者ごとの複数の特徴ベクトルの時系列を得て、前記不特定話者ごとの複数の特徴ベクトルの時系列の時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで、前記話者適応用の単語についての重心ベクトルの時系列を求めておき、入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列と前記重心ベクトルの時系列の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心ベクトルの時系列を構成する各重心ベクトルとを対応付けし、前記各重心ベクトルに対応した差分ベクトルを求め、前記差分ベクトルを用いて、予め作成された不特定話者コードブックのコードベクトルを変換して入力話者コードブックのコードベクトルを求めることを特徴とする。
【００１１】
このような話者適応化方法において、前記入力話者コードブックのコードベクトルを求める処理は、不特定話者コードブックに存在するそれぞれのコードベクトルに対し、そのコードベクトルに近い距離に存在する前記重心ベクトルを幾つか選択し、この選択された重心ベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの当該コードベクトルに加算することで入力話者コードブックのコードベクトルを求めることを特徴とする。
【００１２】
そして、前記距離に応じた重み係数は一例として、２乗距離の逆数に比例した係数を用いる。
【００１３】
また、本発明の話者適応化方法は、話者適応用の単語について複数の不特定話者の発する音声データを分析して得られた不特定話者ごとの複数の音声特徴ベクトルの時系列を得て、前記不特定話者ごとの複数の特徴ベクトルの時系列の時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで、前記話者適応用の単語についての重心ベクトルの時系列を求めておき、予め作成された不特定話者コードブックのコードベクトルと前記重心ベクトルの時系列とを対応付けして、当該重心ベクトルの時系列を量子化し、入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列と、前記量子化された重心ベクトルの時系列（重心コードベクトルの時系列）の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心コードベクトルの時系列を構成する各重心コードベクトルとを対応付けして、前記各重心コードベクトルに対応した差分ベクトルを求め、前記差分ベクトルを用いて、前記不特定話者コードブックのコードベクトルを入力話者コードブックに変換することを特徴とする。
【００１４】
このような話者適応化方法における前記不特定話者コードブックのコードベクトルを入力話者コードブックに変換する処理において、前記量子化された重心ベクトル（重心コードベクトル）に対しては、それぞれの重心コードベクトルに対応する差分ベクトルを加算することで変換後のコードベクトルとし、不特定話者コードブックに存在する前記量子化された重心ベクトル以外のコードベクトル（未学習コードベクトル）に対しては、当該未学習コードベクトルに近い距離に存在する前記重心コードベクトルを幾つか選択し、この選択された重心コードベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの未学習コードベクトルに加算することで変換後のコードベクトルとすることを特徴とする。
【００１５】
そして、前記距離に応じた重み係数は、一例として、２乗距離の逆数に比例した係数を用いる。
【００１６】
このように、本発明の話者適応化方法は、話者適応用の単語について、複数の不特定話者の特徴ベクトルの時系列を求め、それぞれの特徴ベクトルの時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで、話者適応用の単語についての重心ベクトルの時系列を求め、この重心ベクトルの時系列を代表ベクトル列として、この重心ベクトルの時系列と入力話者の特徴ベクトルの時系列との対応を用いて話者適応するようにしたので、高精度な話者適応が行える。また、前記重み係数を２乗距離の逆数に比例した係数を用いることにより、少ない計算量で重み係数を求めることができる。
【００１７】
また、本発明の話者適応化装置は、話者適応用の単語について複数の不特定話者の発する音声データを分析して得られた不特定話者ごとの複数の特徴ベクトルの時系列前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで得られた前記話者適応用の単語についての重心ベクトルの時系列を記憶する重心ベクトル列記憶手段と、入力話者の音声を音声分析して得られた音声特徴ベクトルの時系列を記憶する入力データ記憶部と、前記入力データ記憶部に記憶された入力話者が発する前記話者適応用の単語の音声特徴ベクトルの時系列と前記重心ベクトルの時系列の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心ベクトルの時系列を構成する各重心ベクトルとを対応付けし、前記各重心ベクトルに対応した差分ベクトルを求め、前記差分ベクトルを用いて、予め作成された不特定話者コードブックのコードベクトルを変換して入力話者コードブックのコードベクトルを求める話者適応処理部と、を有したことを特徴とする。
【００１８】
このような話者適応化装置において、前前記不特定話者コードブックのコードベクトルを変換して入力話者コードブックのコードベクトルを求める処理は、不特定話者コードブックに存在するそれぞれのコードベクトルに対し、そのコードベクトルに近い距離に存在する前記重心ベクトルを幾つか選択し、この選択された重心ベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの当該コードベクトルに加算することで入力話者コードブックのコードベクトルを求めることを特徴とする。
【００１９】
そして、前記距離に応じた重み係数は、一例として、２乗距離の逆数に比例した係数を用いる。
【００２０】
また、本発明の話者適応化装置は、話者適応用の単語について複数の不特定の話者の発する音声データを分析して得られた不特定話者ごとの複数の音声特徴ベクトルの時系列の時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで得られた前記話者適応用の単語についての重心ベクトルの時系列を記憶する重心ベクトル列記憶手段と、入力話者の音声を音声分析して得られた音声特徴ベクトルの時系列を記憶する入力音声データ記憶部と、予め作成された不特定話者コードブックのコードベクトルと前記重心ベクトルの時系列とを対応付けして、当該重心ベクトルの時系列を量子化し、前記入力音声データ記憶部に記憶された入力話者が発する前記話者適応用の単語の音声特徴ベクトルの時系列と、前記量子化された重心ベクトルの時系列（重心コードベクトルの時系列）の時系列の時間的な長さを正規化して、前記入力話者が発する前記話者適応用の単語の音声データから得られた特徴ベクトルの時系列を構成する各特徴ベクトルと、前記重心コードベクトルの時系列を構成する各重心コードベクトルとを対応付けして、前記各重心コードベクトルに対応した差分ベクトルを求め、前記差分ベクトルを用いて、前記不特定話者コードブックのコードベクトルを入力話者コードブックに変換する話者適応処理部と、を有したことを特徴とする。
【００２１】
このような話者適応化装置における前記話者適応処理部が行う不特定話者コードブックのコードベクトルを入力話者コードブックに変換する処理において、量子化された重心ベクトル（重心コードベクトル）に対しては、それぞれの重心コードベクトルに対応する差分ベクトルを加算することで変換後のコードベクトルとし、不特定話者コードブックに存在するそれ以外のコードベクトル（未学習コードベクトル）に対しては、未学習コードベクトルに近い距離に存在する前記重心コードベクトルを幾つか選択し、この選択された重心コードベクトルに対応するそれぞれの差分ベクトルに対して前記距離に応じた重み係数を考慮した差分ベクトルを求めて、その差分ベクトルを前記不特定話者コードブックの未学習コードベクトルに加算することで変換後のコードベクトルとすることを特徴とする。
【００２２】
そして、前記距離に応じた重み係数は、一例として、２乗距離の逆数に比例した係数を用いる。
【００２３】
このように、本発明の話者適応化装置は、話者適応用の単語について、複数の不特定話者の特徴ベクトルの時系列を求め、それぞれの特徴ベクトルの時間的な長さを正規化して、前記複数の不特定話者のうち、所定の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルと、前記複数の不特定話者のうち、前記所定の不特定話者以外の不特定話者の特徴ベクトルの時系列を構成する各特徴ベクトルとを対応付けし、それぞれ対応付けられた特徴ベクトル毎に重心ベクトルを求めることで、話者適応用の単語についての重心ベクトルの時系列を求め、この重心ベクトルの時系列を代表ベクトル列として、この重心ベクトルの時系列と入力話者の特徴ベクトルの時系列との対応を用いて話者適応するようにしたので、高精度な話者適応が行える。また、前記重み係数を２乗距離の逆数に比例した係数を用いることにより、少ない計算量で重み係数を求めることができる。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【００２５】
（第１の実施の形態）
図１は本発明が適用された音声認識装置の概略的な構成を説明するブロック図であり、その構成は大きく分けると、音声入力部１、話者適応部２、音声認識部３、話者適応化設定処理部４から構成されている。
【００２６】
前記音声入力部１は、マイクロホン１１、マイクロホン１１から入力された音声をＡ／Ｄ変換するＡ／Ｄ変換部１２、Ａ／Ｄ変換された音声波形信号を、演算器を用いて短時間毎に周波数分析を行い、周波数の特徴を表す数次元の特徴ベクトル（LPCーCEPSTRUM係数が一般的）を抽出し、この特徴ベクトルの時系列（以下、音声特徴ベクトル列という）を出力する音声分析部１３などから構成される。
【００２７】
また、話者適応部２は、ベクトル量子化部２１、入力話者コードブック２２、不特定話者コードブック２３などから構成され、音声分析部１３からの特徴ベクトル列を、前記従来技術の項で説明したように、入力話者コードブック２２を用いて、不特定話者コードブック２３の内容との対応をとり、入力音声の特徴ベクトルに対応する不特定話者コードベクトルを音声認識部３に出力する。
【００２８】
音声認識部３は、予め選ばれた単語（登録単語）に対するたとえば２００人程度の不特定話者の音声特徴データを基に作成された不特定話者の音声特徴データが記憶されている不特定話者音声特徴データ記憶部３１、この不特定話者音声特徴データ記憶部３１の内容と前記話者適応部２から送られてくるデータとを比較して単語検出データを出力する単語検出部３２、この単語検出部３２からの検出データを基に入力音声に対する認識データを出力する音声認識処理部３３等から構成されている。
【００２９】
また、話者適応化設定処理部４は、本発明の要旨となる部分であり、前記話者適応部２の入力話者コードブック２２の内容を設定するもので、音声分析部１３からの特徴ベクトル列を蓄える入力データ記憶部４１、話者適応処理部４２、重心ベクトル記憶部４３などから構成される。以下にこの話者適応化設定処理部４について詳細に説明する。
【００３０】
本発明は、ある幾つかの話者適応用の単語について、それぞれの単語ごとに複数の不特定の話者の発する音声データを分析して得られた不特定話者ごとの音声特徴ベクトル列を得て、これら不特定話者ごとの特徴ベクトル列から単語ごとの重心ベクトル列を求めておき、入力話者が発するある単語の音声データから得られた特徴ベクトル列とその単語の重心ベクトル列とを対応付けし、前記重心ベクトル列を構成する各重心ベクトルに対応した差分ベクトルを求め、その差分ベクトルを用いて、入力話者コードブック２２のコードベクトルを求めることを要旨としている。
【００３１】
前記多数話者の音声データの重心ベクトル列というのは、ある単語を不特定の２００人程度の話者に発話させ、その音声を短時間ごとに音声分析して得られた特徴ベクトル（たとえば、１０次元のＬＰＣケプストラム係数による特徴ベクトル）を求め、各不特定話者ごとの特徴ベクトルを各時刻ごとに平均を取って得られたベクトル列である。これを図２により説明する。図２は、たとえば、「おはよう」という単語を、Ａ，Ｂ，Ｃ，Ｄの４人の話者に発話させて得られた特徴ベクトル列であるとする。
【００３２】
このようなＡ，Ｂ，Ｃ，Ｄの４人の話者からの「おはよう」という単語に対する特徴ベクトル列の重心ベクトル列は、以下のようにして求める。
【００３３】
まず、図２において、たとえば、Ａの人が発話した音声における時刻ｔ１の１０次元の特徴ベクトルをＣａ１、時刻ｔ２の１０次元の特徴ベクトルをＣａ２、時刻ｔ３の１０次元の特徴ベクトルをＣａ３、・・・というように表し、Ｂの人が発話した音声における時刻ｔ１の１０次元の特徴ベクトルをＣｂ１、時刻ｔ２の１０次元の特徴ベクトルをＣｂ２、時刻ｔ３の１０次元の特徴ベクトルをＣｂ３、・・・というように表し、Ｃの人が発話した音声における時刻ｔ１の１０次元の特徴ベクトルをＣｃ１、時刻ｔ２の１０次元の特徴ベクトルをＣｃ２、時刻ｔ３の１０次元の特徴ベクトルをＣｃ３、・・・というように表し、Ｄの人が発話した音声における時刻ｔ１の１０次元の特徴ベクトルをＣｄ１、時刻ｔ２の１０次元の特徴ベクトルをＣｄ２、時刻ｔ３の１０次元の特徴ベクトルをＣｄ３、・・・というように表すものとする。
【００３４】
このように、同じ「おはよう」という単語を発話した場合でも、Ａ，Ｂ，Ｃ，Ｄの人の「おはよう」という単語に対する特徴ベクトル列は、それぞれの人の個性によって時間的な長さや特徴ベクトルに違いが生じる。
【００３５】
次に、この「おはよう」という単語に対するＡ，Ｂ，Ｃ，Ｄの人の特徴ベクトル列を、それぞれの時刻ごとに重心ベクトルを求めるわけであるが、この重心ベクトルを求めるに際して、それぞれの特徴ベクトル列の時間的な長さを正規化、つまり、それぞれの特徴ベクトルの数を同一にする必要がある。これを行うためにどれか１つの特徴ベクトル列を基準ベクトル列として選び、その基準ベクトル列とのＤＰマッチングを取ることで正規化を行う。この正規化処理について図３を参照して説明する。
【００３６】
図３は説明を分かり易くするために、Ａの特徴ベクトル列のサンプリング時刻をｔ１，ｔ２，ｔ３の３つとし、Ｂの特徴ベクトル列のサンプリング時刻をｔ１，ｔ２，ｔ３，ｔ４の４つとし、Ｃの特徴ベクトル列のサンプリング時刻をｔ１，ｔ２，ｔ３，ｔ４，ｔ５の５つとし、Ｄの特徴ベクトル列のサンプリング時刻をｔ１，ｔ２，ｔ３，ｔ４，ｔ５，ｔ６の６つとし、ここでは、Ｂの特徴ベクトル列を基準のベクトル列とする。
【００３７】
そして、この基準となるＢの特徴ベクトル列の時刻ｔ１，ｔ２，ｔ３，ｔ４における特徴ベクトルＣｂ１，Ｃｂ２，Ｃｂ３，Ｃｂ４に対して、Ａの特徴ベクトル列のそれぞれの時刻における特徴ベクトルＣａ１，Ｃａ２，Ｃa３、Ｃの特徴ベクトル列のそれぞれの時刻における特徴ベクトルＣｃ１，Ｃｃ２，Ｃｃ３，Ｃｃ４，Ｃｃ５、Ｄの特徴ベクトル列のそれぞれの時刻における特徴ベクトルＣｄ１，Ｃｄ２，Ｃｄ３，Ｃｄ４，Ｃｄ５，Ｃｄ６をＤＰマッチングにより対応付けする。
【００３８】
このように、基準となる特徴ベクトル列の各時刻における特徴ベクトルに対して、その他の特徴ベクトル列の特徴ベクトルがＤＰマッチングにより対応付けされることにより、特徴ベクトルの数を正規化することができる。
【００３９】
つまり、基準となるＢの特徴ベクトル列とＡの特徴ベクトル列は、Ｃｂ１に対してはＣａ１が対応付けされ、Ｃｂ２に対してはＣａ２が対応付けされ、Ｃｂ３とＣｂ４に対してはそれぞれＣａ３が対応付けされるというような対応付けがなされ、また、Ｂの基準ベクトル列とＣの特徴ベクトル列は、Ｃｂ１に対してはＣｃ１が、Ｃｂ２に対してはＣｃ２が、Ｃｂ３に対してはＣｃ３、Ｃｂ４に対してはＣｃ５がそれぞれ応付けられる。さらに、Ｂの基準ベクトル列とＤの特徴ベクトル列は、Ｃｂ１に対してはＣｄ１が、Ｃｂ２に対してはＣｄ２、Ｃｂ３に対してはＣｄ４が、Ｃｂ４に対してはＣｄ６がそれぞれ対応付られる。
【００４０】
以上のようにして、基準となる特徴ベクトル列とそれ以外の特徴ベクトル列とを、ＤＰマッチングにより対応付けすることにより、特徴ベクトルの数の正規化がなされる。そして、それぞれ対応づけられた特徴ベクトルごとに重心ベクトルを求める。
【００４１】
この重心ベクトルを求める手法はどのような方法を用いてもよいが、ここでは、以下のようにして重心ベクトルを求める。
【００４２】
時刻ｔ１における特徴ベクトルＣａ１，Ｃｂ１，Ｃｃ１，Ｃｄ１を構成するそれぞれの１０次元ＬＰＣケプストラム係数を、
Ｃａ１＝（Ｃａ１０，Ｃａ１１，・・・，Ｃａ１９）
Ｃｂ１＝（Ｃｂ１０，Ｃｂ１１，・・・，Ｃｂ１９）
Ｃｃ１＝（Ｃｃ１０，Ｃｃ１１，・・・，Ｃｃ１９）
Ｃｄ１＝（Ｃｄ１０，Ｃｄ１１，・・・，Ｃｄ１９）
とすると、それぞれの次元毎の平均の値で構成される１０次元のＬＰＣケプストラム係数を時刻ｔ１における重心ベクトルとする。つまり、１次元目の平均値Ｃα１０は
Ｃα１０＝（Ｃａ１０＋Ｃｂ１０＋Ｃｃ１０＋Ｃｄ１０）／４
２次元目の平均値Ｃα１１は、
Ｃα１１＝（Ｃａ１１＋Ｃｂ１１＋Ｃｃ１１＋Ｃｄ１１）／４
１０次元目の平均値Ｃα１９は
Ｃα１９＝（Ｃａ１９＋Ｃｂ１０＋Ｃｃ１９＋Ｃｄ１９）／４
となる。このようにして求められた時刻ｔ１における１０次元ＬＰＣケプストラム係数の平均（Ｃα１０，Ｃα１１，・・・、Ｃα１９）を、時刻ｔ１における重心ベクトルとし、これをＣｓ１で表す。同様にして、時刻ｔ２，ｔ３，・・・における重心ベクトルＣｓ２，Ｃｓ３，・・・を求める。このようにして求められた重心ベクトルＣｓ１，Ｃｓ２，Ｃｓ３，・・・で構成される重心ベクトル列を図３において一点鎖線で表し、求められた重心ベクトルＣｓ１，Ｃｓ２，Ｃｓ３，Ｃｓ４は、この図では白丸で表している。
【００４３】
以上は、「おはよう」という単語に対する不特定話者の重心ベクトル列を求める場合であるが、「おはよう」以外にも幾つかの単語に対して同様に、不特定話者の重心ベクトルを求め、これら幾つかの単語に対する不特定話者の重心ベクトル列を図１の重心ベクトル記憶部４３に記憶させておく。
【００４４】
次に、ユーザの話す音声を用いて入力話者コードブック２２を作成する処理について説明する。
【００４５】
話者適応を行うに際して、システム側から、話者適応用の単語として、たとえば、「おはよう」と話して下さいというような指示がなされ、ユーザがその指示にしたがって、「おはよう」と発話すると、その音声はマイクロホン１１を通して入力され、Ａ／Ｄ変換部１２でＡ／Ｄ変換されたのち、音声分析部１３から周波数の特徴を表す音声特徴ベクトル列を出力する。そして、その音声分析された特徴ベクトルは入力データ記憶部４１に、一旦、記憶される。同様に、次の話者適応用の単語として、たとえば、「こんにちわ」と話して下さいというような指示がなされ、ユーザがその指示にしたがって、「こんにちわ」と言うと、その音声を音声分析されて得られた音声特徴ベクトル列が出力され、その特徴ベクトル列は入力データ記憶部４１に記憶される。このようにして、幾つかの話者適応用の単語の特徴ベクトル列が記憶される。
【００４６】
変換コードブック２２の作成は、話者適応処理部４２が不特定話者コードブック２３、重心ベクトル列記憶部４３、入力データ記憶部４１のそれぞれのデータを用いて行う。以下、この処理を図４を参照しながら説明する。
【００４７】
図４は不特定話者コードブック２３を表し、ここでは、そのサイズを２５６とし、白丸で示す２５６個の不特定話者コードベクトルで構成されている。そして、これらの不特定話者のコードベクトルをＣｋ１，Ｃｋ２，Ｃｋ３，・・・，Ｃｋ２５６で表し、実際には、２５６個のコードベクトルで構成されるが、図４ではこのコードベクトルはＣｋ１，Ｃｋ２，・・・，Ｃｋ９のみが図示されている。この不特定話者コードベクトルは、たとえば、２００単語程度の単語数をそれぞれの単語ごとに２００人程度の人に話してもらったとき得られる特徴ベクトル数、つまり、１つの単語につき２５個程度の特徴ベクトル数が有るとすると、１００万個程度の特徴ベクトルが得られるが、それをベクトル量子化して２５６個の代表のコードベクトルにまとめたものである。
【００４８】
このような不特定話者コードブック２３に対して、たとえば、前記のように求められた「おはよう」に対する重心ベクトル列（ここでは、図中、黒丸で示し、重心ベクトルＣｓ１，Ｃｓ２，・・・，Ｃｓ７で構成されているものとする）をベクトル量子化する。つまり、「おはよう」の重心ベクトル列とＣｋ１，Ｃｋ２，・・・，Ｃｋ２５６のコードベクトルを用いてベクトル量子化すると、重心ベクトル列の１番目と２番目の重心ベクトルＣｓ１，Ｃｓ２はコードベクトルＣｋ１と対応づけられ、３番目の重心ベクトルＣｓ３はコードベクトルＣｋ３と対応づけられ、４番目の重心ベクトルＣｓ４はコードベクトルＣｋ４と対応づけられ、５番目、６番目、７番目の重心ベクトルＣｓ５，Ｃｓ６，Ｃｓ７はそれぞれコードベクトルＣｋ５と対応づけられる、これにより、「おはよう」の重心ベクトル列は、Ｃｋ１，Ｃｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５，Ｃｋ５，Ｃｋ５のコードベクトル列に置き換えられることになる。
【００４９】
そして、入力データ記憶部４１に記憶されているユーザからの「おはよう」の特徴ベクトル列を、前記量子化された「おはよう」の重心ベクトル列（重心コードベクトル列という）に対してＤＰマッチングにより対応付けを行う。
【００５０】
これを図５に示す。なお、図５においては、説明を分かり易くするため、不特定話者コードブック２３の内容は、「おはよう」の重心コードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５のみを示し、他のコードベクトルは図示を省略している。
【００５１】
ここで、ユーザからの「おはよう」が入力されると、その「おはよう」の特徴ベクトル列（入力話者特徴ベクトル列）と前記重心コードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５とをＤＰマッチングにより対応づける。前記入力話者特徴ベクトル列のそれぞれの特徴ベクトルＣｉ１，Ｃｉ２，Ｃｉ３，Ｃｉ４，Ｃｉ５，Ｃｉ６が図５に示すような位置であるとすれば、前記重心コードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５とのＤＰマッチングをとると、この場合、入力話者特徴ベクトルＣｉ１，Ｃｉ２はそれぞれ重心コードベクトルＣｋ１に対応づけられ、入力話者特徴ベクトルＣｉ３は重心コードベクトルＣｋ３に対応づけられ、入力話者特徴ベクトルＣｉ４，Ｃｉ５はそれぞれ重心コードベクトルＣｋ４に対応づけられ、入力話者特徴ベクトルＣｉ６は重心コードベクトルＣｋ５に対応づけられる。
【００５２】
このようにして、入力話者特徴ベクトル列と、前記重心コードベクトル列との対応付けがなされると、次に、対応づけられたベクトル間の差分ベクトル（入力話者特徴ベクトル−重心コードベクトル）を求める。この場合、入力話者特徴ベクトルＣｉ１，Ｃｉ２はそれぞれＣｋ１に対応づけられているので、差分ベクトルＶ１は、入力話者特徴ベクトルＣｉ１，Ｃｉ２の平均を取って、
Ｖ１＝（Ｃｉ１＋Ｃｉ２）／２−Ｃｋ１
で求められ、同様に、入力話者特徴ベクトルＣｉ３はＣｋ３に対応づけられられているので、差分ベクトルＶ３は、
Ｖ３＝Ｃｉ３−Ｃｋ３
で求められ、同様に、入力話者特徴ベクトルＣｉ４，Ｃｉ５はそれぞれＣｋ４に対応づけられているので、差分ベクトルＶ４は、入力話者特徴ベクトルＣｉ４，Ｃｉ５の平均を取って、
Ｖ４＝（Ｃｉ４＋Ｃｉ５）／２−Ｃｋ４
で求められ、同様に、入力話者特徴ベクトルＣｉ６はＣｋ５に対応づけられているので、差分ベクトルＶ５は、
Ｖ５＝Ｃｉ６−Ｃｋ５
で求められる。すなわち、重心コードベクトル列の各重心コードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５は、入力話者特徴ベクトル列に対し、前記のように求められたＶ１，Ｖ３，Ｖ４，Ｖ５の差分ベクトルを有しているということである。
【００５３】
このようにして、差分ベクトルＶ１，Ｖ３，Ｖ４，Ｖ５が求められると、次に、この差分ベクトルを用いて、入力話者の「おはよう」に対するコードベクトルを求め、それを入力話者コードブック２２にマッピングする。
【００５４】
ここで、求めるコードベクトルをＣｔｘで表す（このｘはコードベクトルの番号を表し、ここでは１，３，４，５の数値を取る）と、
Ｃｔ１＝Ｃｋ１＋Ｖ１
Ｃｔ３＝Ｃｋ３＋Ｖ３
Ｃｔ４＝Ｃｋ４＋Ｖ４
Ｃｔ５＝Ｃｋ５＋Ｖ５
となる。
【００５５】
これらＣｔ１，Ｃｔ３，Ｃｔ４，Ｃｔ５は、不特定話者コードブック２３における「おはよう」の重心コードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５と入力話者の特徴ベクトル列とを対応付けし、その差分ベクトルＶ１，Ｖ３，Ｖ４，Ｖ５を、不特定話者コードブック２３の重心コードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５にプラスして得られたコードベクトルであり、図６に示すように、不特定話者コードブック２３のコードベクトルが差分ベクトルにより、入力話者コードブック２２のコードベクトルに変換される。
【００５６】
ただし、この場合、「おはよう」という１つの話者適応用の単語のみについて考えているので、４つのコードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５のみが変換されたコードベクトルとして求められたことになるが、その他の話者適応用の単語について同様の処理を行うことにより、それに対する入力話者コードベクトルが作成される。
【００５７】
このようにして、不特定話者コードブック２３のコードベクトルが入力話者コードブック２２のコードベクトルに変換されて入力話者コードブックが作成されるが、不特定話者コードブック２３内に、たとえば、２５６個のコードベクトルがあるとすると、全てが変換されるものではなく、変換されないコードベクトル（未学習コードベクトルという）も多く存在する。この未学習コードベクトルを変換するための処理（これを補間処理という）について以下に説明する。
【００５８】
ここでは、説明を簡略化するため、「おはよう」という１つの話者適応用の単語のみについて考えるものとし、この「おはよう」という単語に対して４つの重心コードベクトルＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５が入力話者コードブックへのコードベクトルとして変換され、そのほか変換すべきコードベクトル（未学習コードベクトル）は図６に示すように、Ｃｋ２，Ｃｋ６，Ｃｋ７，Ｃｋ８，Ｃｋ９であるとする。
【００５９】
この未学習コードベクトルＣｋ２，Ｃｋ６，Ｃｋ７，Ｃｋ８，Ｃｋ９のうち、今、Ｃｋ２を入力話者コードブックへ変換するための補間処理について図７を参照しながら説明する。
【００６０】
図７において、未学習コードベクトルＣｋ２の周辺に存在する学習済みのコードベクトルのうち、３つのコードベクトルを選ぶ。この場合、未学習コードベクトルＣｋ２の周辺には、学習済みのコードベクトルとしてＣｋ１，Ｃｋ３，Ｃｋ４，Ｃｋ５の４つが存在するが、このうち、コードベクトルＣｋ１，Ｃｋ４，Ｃｋ５の３個がＣｋ２に近い距離に存在する学習済みのコードベクトルであるとすると、これら近い距離の３つの学習済みコードベクトルを選択し、これらのコードベクトルＣｋ１，Ｃｋ４，Ｃｋ５に対応する前記差分ベクトルＶ１，Ｖ４，Ｖ５を用いて、未学習コードベクトルＣｋ２に対する差分ベクトルＶ２を決定する。このＶ２は、
Ｖ２＝μ２１・Ｖ１＋μ２４・Ｖ４＋μ２５・Ｖ５
で求められる。この式において、μ２１、μ２４、μ２５は重みを表す係数であり、μ２１はＣｋ２とＣｋ１の距離に応じた重み、μ２４はＣｋ２とＣｋ４の距離に応じた重み、μ２５はＣｋ２とＣｋ５の距離に応じた重みであることを示し、それぞれの距離に応じて重みの大きさが設定され、μ２１＋μ２４＋μ２５＝１となるように設定される。このようにして、Ｃｋ２に対する差分ベクトルが決定され、その差分ベクトルＶ２を用い、
Ｃｔ２＝Ｃｋ２＋Ｖ２
により、未学習コードベクトルＣｋ２が入力話者コードブックのコードベクトルに変換される。
【００６１】
同様にして、Ｃｋ２以外の未学習コードベクトルＣｋ６，Ｃｋ７，Ｃｋ８，Ｃｋ９のそれぞれの差分ベクトルが求められ、それぞれの差分ベクトルを用いて変換される。
【００６２】
なお、前記重み係数μを求める方法としては、ファジー級数を用いる方法、あるいは２乗距離の逆数に比例した距離を用いる方法などがある。２乗距離の逆数に比例した距離を用いる方法の一例として、たとえば、μ２１を例に取れば、
μ２１＝（１／（ｄ２１＊ｄ２１））／（１／（ｄ２１＊ｄ２１）＋１／（ｄ２４＊ｄ２４）＋１／（ｄ２５＊ｄ２５））
により求める。ここで、ｄ２１はコードベクトルＣｋ２とＣｋ１との距離、ｄ２４はコードベクトルＣｋ２とＣｋ４との距離、ｄ２５はコードベクトルＣｋ２とＣｋ５との距離を示している。なお、上式において、距離の２乗分の１（１／（ｄ２１＊ｄ２１））を、（１／（ｄ２１＊ｄ２１）＋１／（ｄ２４＊ｄ２４）＋１／（ｄ２５＊ｄ２５））で割るのは、前記したように、μ２１＋μ２４＋μ２５＝１となるμ２１を求めるためである。同様にして、μ２４、μ２５も求められる。このような２乗距離の逆数に比例した距離により重み係数を求める方法は、計算量が少なく単純であるため、これを用いた方が有利な場合が多い。
【００６３】
以上のような処理により、変換コードブック２２の変換コードを作成することができる。すなわち、図８のフローチャートに示されるように、幾つかの話者適応用の単語を不特定話者に発話させて、それぞれの単語ごとに重心ベクトル列を求め、これを重心ベクトル列記憶部４３に記憶させておく（ステップｓ１）。そして、これらの単語の重心ベクトル列を不特定話者コードブック２３のコードベクトルに対応づけて重心ベクトル列のコードベクトル列（重心コードベクトル列）を求め（ステップｓ２）、この重心コードベクトル列とユーザが入力した単語の特徴ベクトル列をＤＰマッチングにより対応付けし、重心コードベクトル列の各重心ベクトルに対する入力音声特徴ベクトル列の各特徴ベクトルの差分ベクトルを求める（ステップｓ３）。このようにして求められた差分ベクトルを用いて、不特定話者コードブック２３内の前記重心コードベクトルを差分ベクトルで示される位置に変換することで変換コードブックを作成する。また、このとき、未学習のコードベクトルに対しては、前記したような補間処理を行うことで、その未学習のコードベクトルの差分ベクトルを決定し、その差分ベクトルで示される位置に変換する（ステップｓ４）。
【００６４】
このようにして入力話者コードブック２２が作成される。
【００６５】
このように、本発明の第１の実施の形態では、不特定話者の話す音声特徴ベクトルにより得られた重心ベクトル列を不特定話者コードブックのコードベクトルと対応付けし、重心ベクトルを量子化した重心コードベクトル列を得て、この重心コードベクトル列と、ユーザの入力音声特徴ベクトル列との対応をとり、その差分ベクトルを用いて、前記不特定話者コードブックの重心コードベクトルを入力話者コードブックに変換するようにしたので、より高精度な話者適応が可能となり、その後に行われる不特定話者音声認識性能をより一層向上させることができる。
【００６６】
（第２の実施の形態）
以上説明した第１の実施の形態は、不特定話者の話す音声特徴ベクトルにより得られた単語ごとの重心ベクトル列を量子化して得られたコードベクトル列（重心コードベクトル列）と、ユーザの入力音声特徴ベクトル列との対応をとり、その差分ベクトルを用いて変換コードブックを作成するようにしたが、この第２の実施の形態では、重心ベクトル列を量子化せず、求められた重心ベクトル列そのものを用いて、入力話者の特徴ベクトルとの対応をとるようにしたものである。以下、図９を参照しながら説明する。
【００６７】
図９において、たとえば、「おはよう」という単語に対して求められた重心ベクトル列（Ｃｓ１Ｃｓ２，・・・，Ｃｓ７とする）に対してユーザの話す「おはよう」の入力話者特徴ベクトル列（Ｃｉ１，Ｃｉ２，・・・，Ｃｉ６）が入力されたとすると、重心ベクトル列を基準に入力話者特徴ベクトル列との対応をＤＰマッチングを用いてとる。この対応付けにより、入力話者特徴ベクトル列のＣｉ１が重心ベクトル列のＣｓ１と、Ｃｉ２がＣｓ２と、Ｃｉ３がＣｓ３と、Ｃｉ４がＣｓ４と、Ｃｉ５がＣｓ５と、Ｃｉ６がＣｓ６およびＣｓ７と、それぞれ対応づけられたとする。
【００６８】
そして、重心ベクトル列に対する入力話者特徴ベクトル列の差分ベクトルＶ１，ｖ２，・・・，Ｖ７を求める。この差分ベクトルの求める方法は、第１の実施の形態で説明したと同様に、入力話者特徴ベクトルから重心ベクトルを引いて求める。たとえば、重心ベクトルＣｓ１に対する差分ベクトルＶ１は、Ｖ１＝Ｃｉ１−Ｃｓ１で求められ、重心ベクトルＣｓ２に対する差分ベクトルＶ２は、Ｖ２＝Ｃｉ２−Ｃｓ２で求められる。
【００６９】
このようにして重心ベクトル列Ｃｓ１Ｃｓ２，・・・，Ｃｓ７に対する差分ベクトルＶ１，Ｖ２，・・・，Ｖ７が求められると、次に、これら差分ベクトルを用いて、不特定話者コードブック２３に存在するたとえば２５６個のコードベクトルを前記した補間処理を用いて変換することで変換コードブック２２を作成する。
【００７０】
以上の説明では、「おはよう」という単語についてその重心ベクトル列と入力話者特徴ベクトル列とを対応付けし、差分ベクトルを求めたが、「おはよう」以外の幾つかの話者適応用の幾つかの単語についても同様に、それぞれの重心ベクトルと入力話者ベクトルとの対応付けを行い、差分ベクトルを求めておき、求められた差分ベクトルを記憶させておく。
【００７１】
そして、この差分ベクトルを用いて不特定話者コードブック２３内のたとえば２５６個のコードベクトルを入力話者コードブックに変換する。その変換処理について図１０を参照しながら説明する。
【００７２】
なお、不特定話者コードブック２３内に存在する変換すべきコードベクトルは実際には、この場合、２５６個あるが、図１０においては、そのうちの幾つかのコードベクトルＣｋ１，Ｃｋ２，・・・のみが図示されている。今、コードベクトルＣｋ１を変換する処理について説明する。まず、このコードベクトルＣｋ１に最も近い距離に存在する３つの重心ベクトルを選ぶ。ここでは、重心ベクトルＣｓ１，Ｃｓ２，Ｃｓ３が選択されたとする。そして、これら、選択された３つの重心ベクトルＣｓ１，Ｃｓ２，Ｃｓ３の差分ベクトルＶ１，Ｖ２，Ｖ３を用いて、以下の式により、変換後のコードベクトルＣｔ１を求める。
【００７３】
Ｃｔ１＝Ｃｋ１＋（μ１１・Ｖ１＋μ１２・Ｖ２＋μ１３・Ｖ３）
この式において、μは前記したように重み係数であり、μ１１はＣｋ１とＣｓ１の距離に応じた重み、μ１２はＣｋ１とＣｓ２の距離に応じた重み、μ１３はＣｋ１とＣｓ３の距離に応じた重みであることを示し、それぞれの距離に応じて重みの大きさが設定され、μ１１＋μ１２＋μ１３＝１となるように設定される。このようにして不特定話者コードブック２３のコードベクトルが入力話者コードブック２２のコードベクトルに変換される。
【００７４】
同様にして、Ｃｋ１以外のコードベクトルＣｋ２，Ｃｋ３，・・・Ｃｋ２５６もそれぞれ最も近い距離に存在する３つの重心ベクトルを選択し、選択された３つの重心ベクトルの持つそれぞれの差分ベクトルを用いて、前記Ｃｔ１を求めたと同様にして、変換後のコードベクトルＣｔ２，Ｃｔ３，・・・，Ｃｔ２５６を求め、不特定話者コードブック２３の全てのコードベクトルが入力話者コードブック２２のコードベクトルに変換される。
【００７５】
図１１は以上の処理を示すフローチャートであり、幾つかの話者適応用の単語に対する重心ベクトルを予め求めておき（ステップｓ１１）、入力話者が話す話者適応用の単語の特徴ベクトル列と、その単語に対する重心ベクトル列とを重心ベクトル列を基準としてＤＰマッチングによる対応をとり（ステップｓ１２）、話者適応用の幾つかの単語の重心ベクトル列を構成する重心ベクトルごとに、各単語に対応する入力話者特徴ベクトル列の各特徴ベクトルに対する差分ベクトルを求める（ステップｓ１３）。このようにして、話者適応用の幾つかの単語の重心ベクトル列を構成する重心ベクトルごとに差分ベクトルを求めておく。そして、不特定話者コードブックに存在する全てのコードベクトルを、それぞれのコードベクトルに最も近い幾つかの重心ベクトルを選択し、その選択された重心ベクトルの有する差分ベクトルを用いてそのコードベクトルを入力話者コードブックに変換する（ステップｓ１４）。
【００７６】
以上のように、第２の実施の形態においては、重心ベクトル列を量子化したコードベクトル列ではなく、重心ベクトル列そのものを、入力話者特徴ベクトル列と対応付けしてその差分ベクトルを求め、その差分ベクトルを用いて不特定話者コードブックのコードベクトルを変換することで変換コードブックを作成するようにしている。これにより、重心ベクトル列を量子化せず重心ベクトル列そのもを用いているので、データが粗くならず高精度な変換コードブックとすることができる。
【００７７】
なお、この第２の実施の形態において、以上の説明は、多数話者の音声データから作成したコードブック（不特定話者コードブック）を用いて、この不特定話者コードブックの内容を入力話者コードブックに変換した例を示したが、ある１名の標準話者から作成した標準話者コードブックを用い、重心ベクトル列そのものと入力話者の特徴ベクトルとの対応付けを行い、差分ベクトルを求め、その差分ベクトルを用いて、前記ある１名の標準話者から作成した標準話者コードブックのコードベクトルを変換して入力話者コードブックを作成するようにしてもよい。
【００７８】
また、前記第１、第２の実施の形態において、差分ベクトルを計算する場合、ユーザが話す幾つかの話者適応用の単語の特徴データを、一旦、入力データ記憶部４３に記憶させたのち、重心ベクトル記憶部４３に記憶されている重心ベクトルを用いて入力話者特徴ベクトルとを対応付けするなどの処理を行うようにしている。この入力データ記憶部４１はＲＡＭが用いられるが、装置全体をできるだけ小型化しようとする場合、当然ながらＲＡＭの容量も限られたものとなる。これに対処するため、入力データを量子化してコード化したデータとして入力データ記憶部４１に記憶させるようにしてもよい。
【００７９】
なお、以上説明した本発明の処理を行うためのプログラムはフロッピィディスクなどの記憶媒体に記憶させておくことができ、本発明は、この記憶媒体をも含むものである。
【００８０】
以上説明したように、本発明によれば、話者適応用の幾つかの単語ごとに、多くの不特定話者の特徴ベクトル列を求め、それぞれの特徴ベクトルから単語ごとの重心ベクトル列を求め、この重心ベクトル列を代表ベクトル列として、この重心ベクトル列と入力話者の特徴ベクトル列との対応を用い、差分ベクトルを求め、この差分ベクトルを用いて、入力話者コードブックを作成し、これにより話者適応するようにしたので、入力話者の音声特徴に左右されにくい高精度な話者適応が行える。したがって、この話者適応化手段をその後に行われる不特定話者音声認識手段に適用することにより、音声認識性能をより一層向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態の構成を説明するブロック図。
【図２】何人かの不特定話者による或る単語に対する特徴ベクトル列から重心ベクトル列を求める例を説明する図。
【図３】重心ベクトルを求める際に特徴ベクトル列の時間的な長さを正規化する処理を説明する図。
【図４】第１の実施の形態において、不特定話者コードブック内のコードベクトルと重心ベクトルとの対応付けを行い重心ベクトルを量子化する処理を説明する図。
【図５】量子化された重心ベクトル（重心コードベクトル）と入力話者特徴ベクトルとの対応付けを説明する図。
【図６】差分ベクトルを用いて不特定話者コードブックの学習済みコードベクトルを入力話者コードブックに変換する処理を説明する図。
【図７】未学習コードベクトルの補間処理を説明する図。
【図８】第１の実施の形態の処理を説明するフローチャート。
【図９】第２の実施の形態において、重心ベクトルそのものと入力話者特徴ベクトルとの対応付けを説明する図。
【図１０】第２の実施の形態において、不特定話者コードブック内のコードベクトルを差分ベクトルを用いて入力話者コードブックに変換する処理を説明する図。
【図１１】第２の実施の形態における処理を説明するフローチャート。
【図１２】従来の話者適応化処理の一例を説明する図。
【符号の説明】
１  音声入力部
２  話者適応部
３  音声認識部
４  話者適応化設定処理部
１１  マイクロホン
１２  Ａ／Ｄ変換部
１３  音声分析部
２１  ベクトル量子化部
２２  入力話者コードブック
２３  不特定話者コードブック
３１  不特定話者音声特徴データ記憶部
３２  単語検出部
３３  音声認識処理部
４１  入力データ記憶部
４２  話者適応処理部
４３  重心ベクトル記憶部
Ｃａ１，Ｃａ２，・・・  Ａの話者の音声特徴ベクトル
Ｃｂ１，Ｃｂ２，・・・  Ｂの話者の音声特徴ベクトル
Ｃｃ１，Ｃｃ２，・・・  Ｃの話者の音声特徴ベクトル
Ｃｄ１，Ｃｄ２，・・・  Ｄの話者の音声特徴ベクトル
Ｃｓ１，Ｃｓ２，・・・  重心ベクトル
Ｃｋ１，Ｃｋ２，・・・  不特定話者コードブックのコードベクトル
Ｃｉ１，Ｃｉ２，・・・  入力話者の音声特徴ベクトル
Ｖ１，Ｖ２，・・・  差分ベクトル
Ｃｔ１，Ｃｔ２，・・・  差分ベクトルを用いて変換されたコードベクトル
【図１】
0004027443.tif 000002
【図２】
0004027443.tif 000003
【図３】
0004027443.tif 000004
【図４】
0004027443.tif 000005
【図５】
0004027443.tif 000006
【図６】
0004027443.tif 000007
【図７】
0004027443.tif 000008
【図８】
0004027443.tif 000009
【図９】
0004027443.tif 000010
【図１０】
0004027443.tif 000011
【図１１】
0004027443.tif 000012
【図１２】
0004027443.tif 000013