(57)【要約】【課題】様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録する。【解決手段】音声入力部２０１は、音声データを入力する。分割部２０３は、分割の粒度に係る複数の変数を設定し、変数毎に前記音声データを複数の区間に分割する。認識部２０４は、変数毎に前記各区間の音声単位を認識する。接続部２０５は、変数毎に各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する。尤度計算部２０６は、変数毎の音声単位列の夫々について音声データに対する尤度を計算する。登録部２０７は、計算された尤度に基づいて、変数毎の音声単位列から前記音声データに対応する音声単位列を登録する。【選択図】図２
2012194364.tif 000002
【特許請求の範囲】
【請求項１】
音声データを入力する入力手段と、
分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割手段と、
前記変数毎に前記各区間の音声単位を認識する認識手段と、
前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続手段と、
前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算手段と、
前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録手段とを有することを特徴とする音声認識装置。
【請求項２】
前記分割手段は、前記音声データの長さに応じて、前記複数の変数を設定することを特徴とする請求項１に記載の音声認識装置。
【請求項３】
前記分割手段は、前記音声データの信号対雑音比に応じて、前記複数の変数を設定することを特徴とする請求項１に記載の音声認識装置。
【請求項４】
前記分割手段は、前記登録手段によって過去に登録された音声単位列に対応する変数に基づいて、前記複数の変数を設定することを特徴とする請求項１に記載の音声認識装置。
【請求項５】
単語の音声単位列を保持する保持手段を更に有し、
前記計算手段は、前記保持手段に保持される前記単語の音声単位列についても前記音声データに対する尤度を計算し、前記登録手段は、前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列及び前記単語の音声単位列から前記音声データに対応する音声単位列を登録することを特徴とする請求項１に記載の音声認識装置。
【請求項６】
前記認識手段は、前記音声単位を表すモデルを用いて前記各区間の音声単位を認識し、前記モデルは、開始状態から前記音声単位の最初の状態である第１の状態をスキップして第２の状態へ遷移する状態遷移、及び、前記第２の状態から前記音声単位の最後の状態である第３の状態をスキップして終了状態へ遷移する状態遷移のうちの少なくとも何れか一方を有することを特徴とする請求項１乃至５の何れか１項に記載の音声認識装置。
【請求項７】
前記認識手段は、前記音声単位を表すモデルを用いて前記各区間の音声単位を認識し、前記モデルは、前記音声単位の前又は後に、所定の音を学習させたガーベッジモデルが接続されることを特徴とする請求項１乃至５の何れか１項に記載の音声認識装置。
【請求項８】
前記登録手段は、前記計算手段により計算された尤度のうち、最も大きい尤度に対応する音声単位列を登録することを特徴とする請求項１乃至７の何れか１項に記載の音声認識装置。
【請求項９】
音声認識装置によって実行される音声認識方法であって、
音声データを入力する入力ステップと、
分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割ステップと、
前記変数毎に前記各区間の音声単位を認識する認識ステップと、
前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続ステップと、
前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算ステップと、
前記計算ステップにより計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録ステップとを有することを特徴とする音声認識方法。
【請求項１０】
音声データを入力する入力ステップと、
分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割ステップと、
前記変数毎に前記各区間の音声単位を認識する認識ステップと、
前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続ステップと、
前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算ステップと、
前記計算ステップにより計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声データを認識する技術に関するものである。
【背景技術】
【０００２】
音声認識技術の一つとして、ユーザ登録型音声認識が古くから使用されている。ユーザ登録型音声認識とは、予めユーザが発声した音声を登録し、認識時には登録時と同じ内容を発声して登録された音声と同じか否かを認識する技術である。
【０００３】
音声を登録する方法としては、ユーザが発声した登録用音声を標準パターンとして登録する方法と、音声の細かい認識単位である音素のモデルを予め保持しておき、登録用音声と音素モデルとが最もマッチする音素の系列を計算して登録する方法とがある。前者は、登録用音声に特化したモデルができるため、同じユーザの発話に対して認識率が高いという利点がある一方、異なるユーザや異なる雑音環境での認識率が低下するという課題がある。後者は、予め様々な話者や環境を含む大量の音声データベースから音素モデルを生成しておくことができるため、異なるユーザや異なる雑音環境においても認識率の低下が前者と比較して少ない。
【０００４】
後者の方法として、特許文献１には次のような技術が開示されている。即ち、特許文献１に開示される技術は、音声登録時には、音節又は音素等の認識単位からなる音声モデルに基づいて語彙による制約なしで音情報を認識し、当該音情報を認識単位列に変換して記述する。そして音声認識時には、音声登録時に記述された認識単位列を語彙に含ませ、当該語彙及び音声モデルに基づいて音情報を認識する。
【０００５】
特許文献２には、登録用音声の一定時間毎の音響的特徴量を計算し、その度に音響的特徴量とサブワードの集合とのマッチングを行い、当該サブワードの集合から登録用音声に最も近いサブワードの連接を求め、サブワード列として出力する技術が開示されている。このとき、サブワードは一定時間毎に一つ求まるが、同一のサブワードの連続は一つに省略している。
【０００６】
特許文献１に開示される技術のように登録用音声から音素列を求める場合、音素の集合を繰り返しループするようなネットワークを生成して、そのネットワークを探索して尤度計算し、認識している。このような場合、音素は前後の音素に依存した音素であるトライフォンに展開してネットワークを生成したり、また、探索中に音素の履歴を保持したりする必要があるため、メモリ消費が大きくなるという問題がある。
【０００７】
一方、特許文献２のように一定時間（フレーム）毎に最適な音素を求める場合には、特許文献１に開示される技術のような、ループするネットワークを探索する必要がないため、メモリ消費は抑えられる。しかし、一定フレーム毎に音素を特定すると、同じ単語でもゆっくり発話した場合と早く発話した場合とでは音素列長が変わってしまう。特許文献２に開示される技術では、この対策として同一音素の連続を一つに省略しているが、一音素区間の中で毎フレーム同一の音素が求まる保証はないため、ロバストとはいえない。
【０００８】
これに対処するためには、フレーム毎に求まる特徴量から音声区間を分割（セグメンテーション）し、求まったセグメント毎に最適な音素や音節等の音声単位を選ぶことが好適である。非特許文献１では、複数の話者の音声区間の分割手法として、ＢＩＣ（ベイズ情報量基準）を用いた分割手法が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−９０９７９号公報
【特許文献２】特開平１１−２４２４９３号公報
【非特許文献】
【００１０】
【非特許文献１】IEEE TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING, VOL. 16, NO. 5, JULY 2008 , p920-933, "Computationally Efficient and Robust BIC-Based Speaker Segmentation"
【発明の概要】
【発明が解決しようとする課題】
【００１１】
非特許文献１のように音声区間の分割を行った上で、それぞれの音声区間毎に音素又は音節等の音声単位を認識し、最適な音声単位を求めることにより、メモリ消費を抑えながら適切な音声区間に対して音声単位を求めることができる。しかしながら、この場合、正しい音声単位の境界で音声区間を分割できることが前提となる。ところが、設定するパラメータによって音声区間の分割のしやすさが変化するため、様々な環境や話者にロバストに音声単位の境界で分割することは難しい。
【００１２】
そこで、本発明の目的は、様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録することにある。
【課題を解決するための手段】
【００１３】
本発明の音声認識装置は、音声データを入力する入力手段と、分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割手段と、前記変数毎に前記各区間の音声単位を認識する認識手段と、前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続手段と、前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算手段と、前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録手段とを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る音声認識装置のハードウェア構成を示す図である。
【図２】本発明の実施形態に係る音声認識装置の機能的な構成を示す図である。
【図３】本発明の第１の実施形態に係る音声認識装置による認識用の語彙の登録処理を示すフローチャートである。
【図４】音声データを音声区間に分割する方法を説明するための図である。
【図５】変数の値や変数の候補の数を設定する方法を説明するための図である。
【図６】認識部が音素認識に使用する音素モデルを示す図である。
【図７】ビタビアルゴリズムについて説明するための図である。
【図８】３種類の音素モデルを示す図である。
【図９】音声データから取得された複数の音素列を示す図である。
【図１０】尤度計算部が上記音素列に対する尤度計算を行うためのモデルを取得する状態を示す図である。
【図１１】複数の変数に対応して得られた音素列の尤度を示す図である。
【図１２】本発明の第１の実施形態に係る音声認識装置による音声認識処理を示すフローチャートである。
【図１３】本発明の第２の実施形態における変数の設定方法について具体的に説明するための図である。
【図１４】本発明の第３の実施形態を説明するための図である。
【発明を実施するための形態】
【００１６】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１７】
先ず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る音声認識装置のハードウェア構成を示す図である。図１において、１０１はＣＰＵ（中央処理装置）であり、音声認識装置の制御プログラムを実行する。１０２はＲＯＭであり、制御プログラム等を格納する。１０３はＲＡＭであり、ＣＰＵ１０１のワークエリアを提供するために用いられる。１０４はハードディスク等の記憶装置であり、データを格納する。１０５は音声データを入力するマイクである。
【００１８】
図２は、本発明の第１の実施形態に係る音声認識装置の機能的な構成を示す図である。図２において、２０１は、マイク１０５から音声データを入力する音声入力部である。２０２は、音声入力部２０１から入力された音声データの特徴量を一定時間（フレーム）毎に抽出する特徴量抽出部である。２０３は、特徴量抽出部２０２により抽出された特徴量に基づいて音声データを音声区間に分割する分割部である。２０４は、音声データの特徴量とモデルとのマッチングを行うことにより、音素や音節である音声単位を認識する認識部である。２０５は、認識部２０４によって認識された音声単位を、分割部２０３によって分割された音声区間の出現順に接続して音素列を取得する接続部である。２０６は、接続部２０５によって接続された音素列に対する、音声入力部２０１から入力された音声データの尤度を計算する尤度計算部である。２０７は、音素列を認識用の語彙として登録する登録部である。２０８は、認識部２０４による認識結果を出力する出力部である。
【００１９】
図３は、本発明の第１の実施形態に係る音声認識装置による認識用の語彙の登録処理を示すフローチャートである。以下、図３を参照しながら、第１の実施形態に係る音声認識装置の処理について説明する。
【００２０】
ステップＳ３０１において、音声入力部２０１はマイク１０５から音声データを入力する。ステップＳ３０２において、特徴量抽出部２０２は一定時間（フレーム）毎に音声データの特徴量を抽出する。特徴量は、ＭＦＣＣ（メル周波数ケプストラム係数）やＬＰＣ（線形予測分析）係数、各特徴量の時間変動等、一般的に使用されるどのようなものでもよい。ステップＳ３０３において、分割部２０３は、分割の粒度を変化させる変数を所定の値に設定し、音声データの特徴量に基づいて音声データを音声区間に分割する。なお、音声データの分割方法の詳細については後述する。ステップＳ３０４において、認識部２０４は、分割部２０３によって分割された各音声区間について音素認識を行うことにより、音声区間毎に音声単位を認識する。本実施形態では、音声単位として音素を使用するが、本発明はこれに限るものではなく、音声単位として音節を使用してもよい。
【００２１】
ステップＳ３０５において、接続部２０５は、音声区間毎に認識された音素を接続して音素列を取得する。ステップＳ３０６において、音声認識装置は、分割部２０３によって設定された変数の候補全てについてステップＳ３０３〜Ｓ３０５までの処理を実行したか否かを判定する。変数の候補全てについて処理していなければ、処理はステップＳ３０７に移行する。一方、変数の候補全てについて処理していれば、処理はステップＳ３０８に移行する。
【００２２】
ステップＳ３０７において、分割部２０３は変数を変更する。そして、処理はステップＳ３０３に戻る。ステップＳ３０８において、尤度計算部２０６は、変数毎に得られた音素列それぞれについて尤度を計算する。ステップＳ３０９において、登録部２０７は、最も尤度が高い音素列を認識用の語彙として登録する。
【００２３】
ここで、ステップＳ３０３における分割部２０３による音声データの分割方法について詳細に説明する。音声データの分割方法としてはどのような方法をとっても構わないが、ここではＢＩＣ（ベイズ情報量基準）による音声データの分割を用いるものとする。図４は、音声データを音声区間に分割する方法を説明するための図である。分割部２０３は、入力された音声データに対して、各フレームで音声データを分割すべきか否かを判定する。図４において、時刻ｔ０は音声区間の開始時刻であり、分割部２０３は、所定フレーム後の時刻ｔ２までの音声区間０の音声データを時刻ｔ１にて音声区間１と音声区間２とに分割すべきか否かの判断基準であるΔＢＩＣを、下記の式で計算する。
【００２４】
【数１】
2012194364.tif 000003
【００２５】
分割部２０３は、ΔＢＩＣが０以上であれば、時刻ｔ１において音声データを分割し、ΔＢＩＣが０未満であれば、時刻ｔ１では音声データを分割しない。ｔ１はｔ０〜ｔ２の間で順次走査して逐一計算される。もし、時刻ｔ１で音声データが分割されれば、分割部２０３は、時刻ｔ１を新たな音声区間の開始ｔ０と設定して、新たなｔ０の位置からｔ２を設定しなおし、その間で次の分割点を同様に探す。もし時刻ｔ１を時刻ｔ２まで走査しても分割点が見つからなければ、分割部２０３は、時刻ｔ２を所定のフレーム分延長し、時刻ｔ１の走査を続けて分割点を探す。以上の操作を音声データの開始から終了まで実行することにより、それぞれ音の異なる時刻で音声データを分割することができる。
【００２６】
ここで、変数Ｐは調整のためのパラメータであり、Ｐが大きければ音声データは分割されやすくなり、Ｐが小さければ音声データは分割され難くなる。そこで、ステップＳ３０３、Ｓ３０７において、分割部２０３は、変数Ｐを複数設定することによって音声データの分割の細かさを変えている。変数Ｐの候補となる値は固定でも構わないし、音声データの長さや音声データの信号対雑音比に応じて変化するように設定してもよい。変数Ｐの候補の値を大きめに設定することで分割しやすくしたり、変数Ｐの候補の数を増やすことで最適な音素列を見つけやすくしている。
【００２７】
図５（ａ）は、音声データの長さに応じて変数Ｐの中央値を決定するためのグラフを示している。図５（ａ）の例では、音声データの長さ（音声長（フレーム数））Ｎが長いほど、変数Ｐの中央値Ｐ（Ｎ）を大きな値で設定している。変数Ｐの候補は中央値及びその周囲に設定される（例えば、中央値Ｐ（Ｎ）、Ｐ（Ｎ）±１、Ｐ（Ｎ）±２の５つ）。このように音声データが長いほど、変数Ｐの中央値Ｐ（Ｎ）を大きな値とすることにより、音声データを分割しやすくしている。
【００２８】
図５（ｂ）は、音声データの長さに応じて変数Ｐの候補の数を決定するためのグラフを示している。図５（ｂ）の例では、音声データの長さ（音声長（フレーム数））Ｎが長いほど、変数Ｐの候補数Ｘ（Ｎ）が増えるように設定している。例えばＸ（Ｎ）＝３の場合、所定の値Ｐｃ及び所定の値Ｐｃから所定の間隔１ずつ離れた値であるＰｃ、Ｐｃ±１が変数Ｐの候補となる。同様にＸ（Ｎ）＝７の場合、Ｐｃ、Ｐｃ±１、Ｐｃ±２、Ｐｃ±３が候補となる。このように長い音声データの場合に候補の数を増やすことで、最適な音素列を見つけやすくしている。
【００２９】
図５（ｃ）は、信号対雑音比に応じて変数Ｐの中央値を決定するためのグラフを示している。図５（ｃ）の例では、信号対雑音比が小さい（雑音が大きい）ほど、変数Ｐの中央値Ｐ（Ｎ）を大きな値で設定している。これにより、雑音で音声データの特徴が区別しにくくなる場合でも音声データを分割しやすくしている。図５（ｄ）は、信号対雑音比に応じて変数Ｐの候補の数を決定するためのグラフを示している。図５（ｄ）の例では、信号対雑音比が小さい（雑音が大きい）ほど、変数Ｐの中央値Ｐ（Ｎ）を大きな値で設定している。これにより、雑音で音声データの特徴が区別しにくくなる場合でも音素列の候補を増やし、最適な音素列を見つけやすくしている。
【００３０】
次に、図６を参照しながら、ステップＳ３０４における認識部２０４による音素認識方法について詳細に説明する。図６は、認識部２０４が音素認識に使用する音素モデルを示す図である。図６において、６０１は音素モデルを表現するＨＭＭ（隠れマルコフモデル）である。６０２はＨＭＭの状態を表している。６０３はＨＭＭの状態遷移を表している。即ち、音素モデルは複数のＨＭＭの状態６０２とＨＭＭの状態遷移６０３とで構成される。認識部２０４は、分割部２０３によって分割された音声区間の音声データの特徴量系列と６０１の各音素モデルのＨＭＭとをビタビアルゴリズムと呼ばれる探索方法でマッチングをとり、音素モデル毎に尤度を出力する。そして、認識部２０４は、尤度が最大となる音素モデルの音素を当該音声区間の音素とする。
【００３１】
ビタビアルゴリズムは、音声データの特徴量系列に対して、ＨＭＭとの距離計算の尤度が最大となるような経路を探索する方法である。図７（ａ）は、音素を表す３つの状態のＨＭＭであり、Ｓ０は開始状態、Ｓ４は終了状態、Ｓ１、Ｓ２、Ｓ３が音素の特徴量を有するモデルの状態を示している。図７（ｂ）はＨＭＭの探索を示しており、横軸が音声区間の各時刻、縦軸がＨＭＭの状態番号を示している。図７（ｂ）では、時刻ｔ０からｔ５までの間の音声区間の特徴量とＨＭＭとのマッチングをとっている。このとき、時刻ｔ０からｔ５までの音声区間で通り得るＨＭＭのパスは、図７（ｂ）の矢印で書かれており、直接は分からない。そこで、認識部２０４は、ビタビアルゴリズムにより尤度が最大となるパスを逐次計算して探索する。
【００３２】
尤度計算は、（前の状態での尤度）＋（前の状態から現状態へ遷移する確率である状態遷移確率の対数）＋（特徴量と現状態のモデルとの距離から得られる出力確率の対数）で行われる。例として、（時刻ｔ２、状態Ｓ２）への遷移は、太線で記載の通り、（時刻ｔ１、状態Ｓ１）又は（時刻ｔ１、状態Ｓ２）からの遷移のいずれかである。ここで図７に示す通りに、時刻ｔ１での各状態の尤度と（時刻ｔ２、状態Ｓ２）の出力確率の対数、各状態から状態Ｓ２への状態遷移確率の対数が得られるとする。この際、（時刻ｔ２、状態Ｓ２）の尤度は、（時刻ｔ１、状態Ｓ１）からの遷移の場合、（−１０）＋（−５）＋（−３）＝−１８、（時刻ｔ１、状態Ｓ２）からの遷移の場合、（−２０）＋（−２）＋（−３）＝−２５となる。ビタビアルゴリズムでは最大となる遷移を選択することから、（時刻ｔ１、状態Ｓ１）からの遷移が選択され、（時刻ｔ２、状態Ｓ２）の尤度は−１８となる。認識部２０４は、以上の逐次計算を実行し、最終状態Ｓ４での最大パスの尤度を累積計算することによって、音声区間に対するＨＭＭの尤度を得る。そして認識部２０４は、この計算をＨＭＭ毎に実行し、尤度が最大となる音素モデルの音素を当該音声区間の音素とする。
【００３３】
ここで音素モデル６０１は、図６に示すように、一般的には開始から終了まで連接する状態への遷移及び同じ状態への遷移（自己ループ）で構成される。しかし、分割部２０３が正しく音素境界で分割できない場合も考えられる。音素の開始／終了が途切れたり、又は、音素の前後に他の音が繋がったりしても対応可能なように設計した音素モデルを使用することも考えられる。
【００３４】
図８は、３種類の音素モデルを示す図である。図８（ａ）は、音素の開始／終了が途切れることに対応した音素モデルを示している。即ち、図８（ａ）における８０１は、開始状態から音素の最初の状態である第１の状態をスキップして第２の状態へ遷移する状態遷移を示している。また、図８（ａ）における８０２は、音素の第２の状態から最後の状態である第３の状態をスキップして終了状態へ遷移する状態遷移を示している。このような状態遷移を有することにより、音素の開始／終了が途切れた区間の音についても尤度を大きく下げずに認識することができる。図８（ｂ）は、音素の前後に他の音が繋がる区間に対応した音素モデルを示している。図８（ｂ）における８０３は、様々な音素や音を第１、第３の状態のモデルに学習させたガーベッジモデルを示している。音素の前後にガーベッジモデル８０３を接続することによって、音素の前後に他の音が繋がる場合でも、ガーベッジモデル８０３がその区間を吸収して尤度が保たれるため、尤度を大きく下げずに認識することができる。図８（ｃ）は、図８（ａ）と図８（ｂ）とを組み合わせた音素モデルを示しており、音素の開始／終了が途切れたり、又は、音素の前後に他の音が繋がったりしても、尤度を大きく下げずに認識することができる。
【００３５】
次に、ステップＳ３０８における尤度計算部２０６による音素列の尤度計算について詳細に説明する。図９は、音声データから取得された複数の音素列を示す図である。図９において、９０１は音声データの入力音声波形である。９０２は、ステップＳ３０３又はＳ３０７によって設定された変数毎に、分割部２０３によって分割された音声区間と、認識部２０４によって認識された音声区間毎の音素とを示している。このように変数毎に音素が得られ、例えば変数Ｐ２の場合には、接続部２０５は、これらの音素を接続して音素列（ａ、ｋ、ａ、ｍ、ｅ、ｋ、ａ、Ｘ、ｗ、ａ）を得る。
【００３６】
図１０は、尤度計算部２０６が上記音素列に対する尤度計算を行うためのモデルを取得する状態を示す図である。図１０において、１００１は接続部２０５によって取得された音素列である。１００２は音素列をトライフォンに展開したトライフォン列である。１００３はトライフォン列１００２のＨＭＭである。尤度計算部２０６は、音素列１００１からトライフォン列１００２に展開する。トライフォンとは、音素をさらに前後環境に依存した音に分割した音の単位である。例えば、Ｓｉｌ−ａ＋ｋは、前の音がＳｉｌ（サイレンス）、後ろの音がｋであるａの音を表す。トライフォンのモデルは音素と同様に例えば３つ状態のＨＭＭで構成されており、尤度計算部２０６はそれぞれのトライフォンのＨＭＭを、トライフォン列１００２に基づいて接続する。１００３は、トライフォン列１００２に基づいて各トライフォンのＨＭＭを接続したＨＭＭを示している。尤度計算部２０６は、ＨＭＭ１００３に対して、音声データの特徴量系列を入力としてビタビアルゴリズムで探索し、音素列１００１に対応する尤度を得る。
【００３７】
ここで、トライフォンのＨＭＭは、トライフォン毎に生成してもよいが、トライフォンは音素数の３乗の数存在するため、データ量が膨大になったり、ＨＭＭの学習データが存在しなかったり、不十分になることがある。例えば日本語の場合、音素列“ｐ−ｋ＋ｋ”のような子音の連続するトライフォンは通常の音声データには現れない。これを解決する方法としては、各トライフォンの状態を決定木と呼ばれる手法でクラスタリングしてモデル間で共有し、共有する状態のモデルを学習する。決定木とは音響的質問、言語的質問等、様々な質問で各トライフォンの各状態を分類分けする方法である。質問は予め用意し、木構造の各ノードでどの質問を適用するかは学習データの分離度によって決定することが一般的である。木構造の各ノードの質問によって分類され、木構造の葉にあたるモデルで各状態が共有される。
【００３８】
図１１は、複数の変数Ｐ１〜Ｐ３に対応して得られた音素列の尤度を示す図である。このように、入力された音声データに対して音素列の尤度に差が出る。そこで登録部２０７は、尤度の最も高い音素列を登録する。図１１の例では、変数Ｐ２で得られた音素列（ａ、ｋ、ａ、ｍ、ｅ、ｋ、ａ、Ｘ、ｗ、ａ）が最も尤度が高いので、登録部２０７はこの音素列を認識用の語彙として登録する。
【００３９】
次に、図１２を参照しながら、以上のようにして登録された認識用の語彙を用いた音声認識処理の流れについて説明する。図１２は、本発明の第１の実施形態に係る音声認識装置による音声認識処理を示すフローチャートである。
【００４０】
ステップＳ１２０１において、音声入力部２０１はマイク１０５から音声データを入力する。ステップＳ１２０２において、特徴量抽出部２０２は、登録時のステップＳ３０２と同様に音声データの特徴量を抽出する。ステップＳ１２０３において、認識部２０４は、音声データの特徴量系列に基づいて音声認識する。この際に使用される認識用の語彙は、登録部２０７によって登録された音素列である。認識部２０４は、認識用の語彙の登録時に尤度計算部２０６によって計算されるＨＭＭ８０３と同様に、認識用の語彙（音素列）をトライフォン列に展開し、入力された音声データの特徴量系列に対してトライフォン列のＨＭＭをビタビアルゴリズムで探索する。これにより、認識部２０４は尤度を計算し、尤度が最大の認識用の語彙を認識結果とする。そして、ステップＳ１２０４において、出力部２０８は認識部２０４の認識結果を出力する。
【００４１】
以上のように、本実施形態によれば、様々な分割の粒度に対応した音素列を取得し、そのうちから音声データに対応する音素列を登録することが可能となる。また、本実施形態においては、認識用の語彙の登録時に音声データを分割し、分割した音声区間毎に音素を認識することにより音素列を得るので、連続音素認識のようにネットワークや音素履歴を保持するためのメモリを削減できる。その上で、音声データの分割しやすさを変える変数を複数設定してそれぞれ音素列を得て、その音素列を入力された音声データで再計算するので、様々な話者や環境に対して音声データの分割がロバストではない場合にも頑健に適した音素列を登録できる。
【００４２】
次に、本発明の第２の実施形態について説明する。第１の実施形態は、音声データの分割のための変数Ｐを複数設定するために、固定値又は音声長に依存した値として複数の値をとる。これに対し、第２の実施形態は、過去に登録した音素列を得た変数の値によって、その近傍で変数の値を設定する。なお、第２の実施形態に係る音声認識装置の構成は、図２に示す構成と同様であるため、以下の説明では図２の符号を用いるものとする。
【００４３】
以下、図１３を参照しながら、第２の実施形態における変数の設定方法について具体的に説明する。分割部２０３は、例えば図１３に示すように、変数を２．０刻みで３つの値に設定する。このとき、接続部２０５は３種類の音素列を得る。尤度計算部２０６はこれらの３種類の音素列に対して尤度計算を行う。図１３の例では、変数Ｐ３＝１．０で得られた音素列（ｓ、ｕ、ｔ、ａ、ｐ、ｏ）が最も尤度が高い。このとき、登録部２０７はこの音素列を認識用の語彙として登録するとともに、分割部２０３は次回の登録時の変数の値をＰ３＝１．０の近傍から設定する。前提として、変数は２．０刻みで３つの値に設定するため、分割部２０３は、Ｐ３＝１．０及びその±２．０である、３．０、１．０、−１．０の３つを変数の候補として次回のステップＳ３０３、Ｓ３０７において設定する。このように、過去の値に基づいて変数の候補を設定することにより、より効率的に適切な音素列を取得できる。
【００４４】
次に、本発明の第３の実施形態について説明する。なお、第３の実施形態に係る音声認識装置の構成は、図２に示す構成と同様であるため、以下の説明では図２の符号を用いるものとする。
【００４５】
上述した実施形態では、尤度計算部２０６は、複数の変数の値に対応して得られた複数の音素列に対して、音声データに対する尤度を計算し、尤度が最大となる音素列を認識用の語彙として登録している。これに対し、第３の実施形態においては、尤度計算部２０６はさらに音声認識装置が保有する単語の音素列に対して尤度計算を行う。その結果、もし単語の音素列の方が尤度が高ければ、登録部２０７は変数毎の音素列を全て廃棄し、単語の音素列を認識用の語彙として登録する。
【００４６】
以下、図１４を参照しながら、第３の実施形態について具体的に説明する。図１４において、１４０１は、認識部２０４が音素を認識し、接続部２０５が音素を接続することにより得られる複数の変数毎の音素列である。１４０２は、音声認識装置において予め保持される辞書に含まれる単語の音素列である。尤度計算部２０６は予め所定の単語を複数保持しており、その音素列に対しても音声データの尤度計算を実行する。その上で、登録部２０７は全ての尤度を比較し、尤度が最大の音素列を認識用の語彙として登録する。図１４の例では、複数の変数毎の音素列の中では、変数Ｐ３に対応する音素列（ｉ、Ｘ、ｔ、ａ、ｔｓ、ｕ、ｐ、ａ、ｉ、ｓｈ、ｉ）が最も尤度が高い。しかしながら、辞書に含まれる単語の一つである「印刷開始」の音素列（ｉ、Ｘ、ｓ、ａ、ｔｓ、ｕ、ｋ、ａ、ｉ、ｓｈ、ｉ）の方が尤度が高いため、音素列（ｉ、Ｘ、ｓ、ａ、ｔｓ、ｕ、ｋ、ａ、ｉ、ｓｈ、ｉ）が認識用の語彙として登録される。
【００４７】
第３の実施形態によれば、予め辞書に保有される単語の音素列も用いることで、より適切な音素列を認識用の語彙として登録することができる。
【００４８】
なお、上述した実施形態においては、ＢＩＣを用いた手法によって音声データの分割を行ったが、本発明はこれに限るものではなく、設定する変数によって音声データの分割の粒度が変わるものであればどのような手法でもかまわない。
【００４９】
また、上述した実施形態においては、尤度計算部２０６によって計算した尤度が最大となる音素列のみを認識用の語彙として登録したが、尤度が高い順に複数の音素列を認識用の語彙として登録しても構わない。この場合、入力された音声データに対して複数の音素列が認識用の語彙として登録される。従って、登録された音素列を音声認識の際に呼び出す場合には、いずれの音素列を認識した場合にも同じ機能が動作するよう、それぞれの音素列に同一のＩＤ等を付加しておくことが望ましい。
【００５０】
また、上述した実施形態においては、音声単位として音素を使用したが、本発明はこれに限るものではなく、音節を使用してもよい。音節は、“ａ”のような母音音素、又は“ｋａ”のような子音音素と母音音素の接続で構成される。音声単位として音節を使用する場合、ステップＳ３０４では、音素認識の代わりに音節認識が行われ、ステップＳ３０５では、音節を接続して音節列が生成される（例えば、“ａ、ｋａ、ｍｅ、ｋａ、Ｘ、ｗａ”）。そして、認識部２０４が音素又は音節である音声単位を音声区間毎に認識し、尤度計算部２０６は、これを接続した音声単位列に対する音声データの尤度を計算し、登録部２０７は、尤度が最も大きい音声単位列を認識用の語彙として登録する。
【００５１】
また、音素の代わりに音節を使用することで、日本語等の言語では子音の連続のような言語上発生し得ない音素の並びを抑制することができる。更にこの場合、ステップＳ３０８の尤度計算においては、８０２のトライフォン列に代えて左右環境依存の音節列（“ａ−ｋａ＋ｍｅ”等）を使用してもよいし、左右環境は考慮せずそのまま音節のモデルを接続して尤度を計算してもよい。
【００５２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００５３】
２０１：音声入力部、２０２：特徴量抽出部、２０３：分割部、２０４：認識部、２０５：接続部、２０６：尤度計算部、２０７：登録部、２０８：出力部
【図１】
2012194364.tif 000004
【図２】
2012194364.tif 000005
【図３】
2012194364.tif 000006
【図４】
2012194364.tif 000007
【図５】
2012194364.tif 000008
【図６】
2012194364.tif 000009
【図７】
2012194364.tif 000010
【図８】
2012194364.tif 000011
【図９】
2012194364.tif 000012
【図１０】
2012194364.tif 000013
【図１１】
2012194364.tif 000014
【図１２】
2012194364.tif 000015
【図１３】
2012194364.tif 000016
【図１４】
2012194364.tif 000017