音声認識装置、音声認識方法及びプログラム
【課題】様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録する。
【解決手段】音声入力部201は、音声データを入力する。分割部203は、分割の粒度に係る複数の変数を設定し、変数毎に前記音声データを複数の区間に分割する。認識部204は、変数毎に前記各区間の音声単位を認識する。接続部205は、変数毎に各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する。尤度計算部206は、変数毎の音声単位列の夫々について音声データに対する尤度を計算する。登録部207は、計算された尤度に基づいて、変数毎の音声単位列から前記音声データに対応する音声単位列を登録する。
【解決手段】音声入力部201は、音声データを入力する。分割部203は、分割の粒度に係る複数の変数を設定し、変数毎に前記音声データを複数の区間に分割する。認識部204は、変数毎に前記各区間の音声単位を認識する。接続部205は、変数毎に各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する。尤度計算部206は、変数毎の音声単位列の夫々について音声データに対する尤度を計算する。登録部207は、計算された尤度に基づいて、変数毎の音声単位列から前記音声データに対応する音声単位列を登録する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声データを認識する技術に関するものである。
【背景技術】
【0002】
音声認識技術の一つとして、ユーザ登録型音声認識が古くから使用されている。ユーザ登録型音声認識とは、予めユーザが発声した音声を登録し、認識時には登録時と同じ内容を発声して登録された音声と同じか否かを認識する技術である。
【0003】
音声を登録する方法としては、ユーザが発声した登録用音声を標準パターンとして登録する方法と、音声の細かい認識単位である音素のモデルを予め保持しておき、登録用音声と音素モデルとが最もマッチする音素の系列を計算して登録する方法とがある。前者は、登録用音声に特化したモデルができるため、同じユーザの発話に対して認識率が高いという利点がある一方、異なるユーザや異なる雑音環境での認識率が低下するという課題がある。後者は、予め様々な話者や環境を含む大量の音声データベースから音素モデルを生成しておくことができるため、異なるユーザや異なる雑音環境においても認識率の低下が前者と比較して少ない。
【0004】
後者の方法として、特許文献1には次のような技術が開示されている。即ち、特許文献1に開示される技術は、音声登録時には、音節又は音素等の認識単位からなる音声モデルに基づいて語彙による制約なしで音情報を認識し、当該音情報を認識単位列に変換して記述する。そして音声認識時には、音声登録時に記述された認識単位列を語彙に含ませ、当該語彙及び音声モデルに基づいて音情報を認識する。
【0005】
特許文献2には、登録用音声の一定時間毎の音響的特徴量を計算し、その度に音響的特徴量とサブワードの集合とのマッチングを行い、当該サブワードの集合から登録用音声に最も近いサブワードの連接を求め、サブワード列として出力する技術が開示されている。このとき、サブワードは一定時間毎に一つ求まるが、同一のサブワードの連続は一つに省略している。
【0006】
特許文献1に開示される技術のように登録用音声から音素列を求める場合、音素の集合を繰り返しループするようなネットワークを生成して、そのネットワークを探索して尤度計算し、認識している。このような場合、音素は前後の音素に依存した音素であるトライフォンに展開してネットワークを生成したり、また、探索中に音素の履歴を保持したりする必要があるため、メモリ消費が大きくなるという問題がある。
【0007】
一方、特許文献2のように一定時間(フレーム)毎に最適な音素を求める場合には、特許文献1に開示される技術のような、ループするネットワークを探索する必要がないため、メモリ消費は抑えられる。しかし、一定フレーム毎に音素を特定すると、同じ単語でもゆっくり発話した場合と早く発話した場合とでは音素列長が変わってしまう。特許文献2に開示される技術では、この対策として同一音素の連続を一つに省略しているが、一音素区間の中で毎フレーム同一の音素が求まる保証はないため、ロバストとはいえない。
【0008】
これに対処するためには、フレーム毎に求まる特徴量から音声区間を分割(セグメンテーション)し、求まったセグメント毎に最適な音素や音節等の音声単位を選ぶことが好適である。非特許文献1では、複数の話者の音声区間の分割手法として、BIC(ベイズ情報量基準)を用いた分割手法が開示されている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2009−90979号公報
【特許文献2】特開平11−242493号公報
【非特許文献】
【0010】
【非特許文献1】IEEE TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING, VOL. 16, NO. 5, JULY 2008 , p920-933, "Computationally Efficient and Robust BIC-Based Speaker Segmentation"
【発明の概要】
【発明が解決しようとする課題】
【0011】
非特許文献1のように音声区間の分割を行った上で、それぞれの音声区間毎に音素又は音節等の音声単位を認識し、最適な音声単位を求めることにより、メモリ消費を抑えながら適切な音声区間に対して音声単位を求めることができる。しかしながら、この場合、正しい音声単位の境界で音声区間を分割できることが前提となる。ところが、設定するパラメータによって音声区間の分割のしやすさが変化するため、様々な環境や話者にロバストに音声単位の境界で分割することは難しい。
【0012】
そこで、本発明の目的は、様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録することにある。
【課題を解決するための手段】
【0013】
本発明の音声認識装置は、音声データを入力する入力手段と、分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割手段と、前記変数毎に前記各区間の音声単位を認識する認識手段と、前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続手段と、前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算手段と、前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録手段とを有することを特徴とする。
【発明の効果】
【0014】
本発明によれば、様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態に係る音声認識装置のハードウェア構成を示す図である。
【図2】本発明の実施形態に係る音声認識装置の機能的な構成を示す図である。
【図3】本発明の第1の実施形態に係る音声認識装置による認識用の語彙の登録処理を示すフローチャートである。
【図4】音声データを音声区間に分割する方法を説明するための図である。
【図5】変数の値や変数の候補の数を設定する方法を説明するための図である。
【図6】認識部が音素認識に使用する音素モデルを示す図である。
【図7】ビタビアルゴリズムについて説明するための図である。
【図8】3種類の音素モデルを示す図である。
【図9】音声データから取得された複数の音素列を示す図である。
【図10】尤度計算部が上記音素列に対する尤度計算を行うためのモデルを取得する状態を示す図である。
【図11】複数の変数に対応して得られた音素列の尤度を示す図である。
【図12】本発明の第1の実施形態に係る音声認識装置による音声認識処理を示すフローチャートである。
【図13】本発明の第2の実施形態における変数の設定方法について具体的に説明するための図である。
【図14】本発明の第3の実施形態を説明するための図である。
【発明を実施するための形態】
【0016】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0017】
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る音声認識装置のハードウェア構成を示す図である。図1において、101はCPU(中央処理装置)であり、音声認識装置の制御プログラムを実行する。102はROMであり、制御プログラム等を格納する。103はRAMであり、CPU101のワークエリアを提供するために用いられる。104はハードディスク等の記憶装置であり、データを格納する。105は音声データを入力するマイクである。
【0018】
図2は、本発明の第1の実施形態に係る音声認識装置の機能的な構成を示す図である。図2において、201は、マイク105から音声データを入力する音声入力部である。202は、音声入力部201から入力された音声データの特徴量を一定時間(フレーム)毎に抽出する特徴量抽出部である。203は、特徴量抽出部202により抽出された特徴量に基づいて音声データを音声区間に分割する分割部である。204は、音声データの特徴量とモデルとのマッチングを行うことにより、音素や音節である音声単位を認識する認識部である。205は、認識部204によって認識された音声単位を、分割部203によって分割された音声区間の出現順に接続して音素列を取得する接続部である。206は、接続部205によって接続された音素列に対する、音声入力部201から入力された音声データの尤度を計算する尤度計算部である。207は、音素列を認識用の語彙として登録する登録部である。208は、認識部204による認識結果を出力する出力部である。
【0019】
図3は、本発明の第1の実施形態に係る音声認識装置による認識用の語彙の登録処理を示すフローチャートである。以下、図3を参照しながら、第1の実施形態に係る音声認識装置の処理について説明する。
【0020】
ステップS301において、音声入力部201はマイク105から音声データを入力する。ステップS302において、特徴量抽出部202は一定時間(フレーム)毎に音声データの特徴量を抽出する。特徴量は、MFCC(メル周波数ケプストラム係数)やLPC(線形予測分析)係数、各特徴量の時間変動等、一般的に使用されるどのようなものでもよい。ステップS303において、分割部203は、分割の粒度を変化させる変数を所定の値に設定し、音声データの特徴量に基づいて音声データを音声区間に分割する。なお、音声データの分割方法の詳細については後述する。ステップS304において、認識部204は、分割部203によって分割された各音声区間について音素認識を行うことにより、音声区間毎に音声単位を認識する。本実施形態では、音声単位として音素を使用するが、本発明はこれに限るものではなく、音声単位として音節を使用してもよい。
【0021】
ステップS305において、接続部205は、音声区間毎に認識された音素を接続して音素列を取得する。ステップS306において、音声認識装置は、分割部203によって設定された変数の候補全てについてステップS303〜S305までの処理を実行したか否かを判定する。変数の候補全てについて処理していなければ、処理はステップS307に移行する。一方、変数の候補全てについて処理していれば、処理はステップS308に移行する。
【0022】
ステップS307において、分割部203は変数を変更する。そして、処理はステップS303に戻る。ステップS308において、尤度計算部206は、変数毎に得られた音素列それぞれについて尤度を計算する。ステップS309において、登録部207は、最も尤度が高い音素列を認識用の語彙として登録する。
【0023】
ここで、ステップS303における分割部203による音声データの分割方法について詳細に説明する。音声データの分割方法としてはどのような方法をとっても構わないが、ここではBIC(ベイズ情報量基準)による音声データの分割を用いるものとする。図4は、音声データを音声区間に分割する方法を説明するための図である。分割部203は、入力された音声データに対して、各フレームで音声データを分割すべきか否かを判定する。図4において、時刻t0は音声区間の開始時刻であり、分割部203は、所定フレーム後の時刻t2までの音声区間0の音声データを時刻t1にて音声区間1と音声区間2とに分割すべきか否かの判断基準であるΔBICを、下記の式で計算する。
【0024】
【数1】
【0025】
分割部203は、ΔBICが0以上であれば、時刻t1において音声データを分割し、ΔBICが0未満であれば、時刻t1では音声データを分割しない。t1はt0〜t2の間で順次走査して逐一計算される。もし、時刻t1で音声データが分割されれば、分割部203は、時刻t1を新たな音声区間の開始t0と設定して、新たなt0の位置からt2を設定しなおし、その間で次の分割点を同様に探す。もし時刻t1を時刻t2まで走査しても分割点が見つからなければ、分割部203は、時刻t2を所定のフレーム分延長し、時刻t1の走査を続けて分割点を探す。以上の操作を音声データの開始から終了まで実行することにより、それぞれ音の異なる時刻で音声データを分割することができる。
【0026】
ここで、変数Pは調整のためのパラメータであり、Pが大きければ音声データは分割されやすくなり、Pが小さければ音声データは分割され難くなる。そこで、ステップS303、S307において、分割部203は、変数Pを複数設定することによって音声データの分割の細かさを変えている。変数Pの候補となる値は固定でも構わないし、音声データの長さや音声データの信号対雑音比に応じて変化するように設定してもよい。変数Pの候補の値を大きめに設定することで分割しやすくしたり、変数Pの候補の数を増やすことで最適な音素列を見つけやすくしている。
【0027】
図5(a)は、音声データの長さに応じて変数Pの中央値を決定するためのグラフを示している。図5(a)の例では、音声データの長さ(音声長(フレーム数))Nが長いほど、変数Pの中央値P(N)を大きな値で設定している。変数Pの候補は中央値及びその周囲に設定される(例えば、中央値P(N)、P(N)±1、P(N)±2の5つ)。このように音声データが長いほど、変数Pの中央値P(N)を大きな値とすることにより、音声データを分割しやすくしている。
【0028】
図5(b)は、音声データの長さに応じて変数Pの候補の数を決定するためのグラフを示している。図5(b)の例では、音声データの長さ(音声長(フレーム数))Nが長いほど、変数Pの候補数X(N)が増えるように設定している。例えばX(N)=3の場合、所定の値Pc及び所定の値Pcから所定の間隔1ずつ離れた値であるPc、Pc±1が変数Pの候補となる。同様にX(N)=7の場合、Pc、Pc±1、Pc±2、Pc±3が候補となる。このように長い音声データの場合に候補の数を増やすことで、最適な音素列を見つけやすくしている。
【0029】
図5(c)は、信号対雑音比に応じて変数Pの中央値を決定するためのグラフを示している。図5(c)の例では、信号対雑音比が小さい(雑音が大きい)ほど、変数Pの中央値P(N)を大きな値で設定している。これにより、雑音で音声データの特徴が区別しにくくなる場合でも音声データを分割しやすくしている。図5(d)は、信号対雑音比に応じて変数Pの候補の数を決定するためのグラフを示している。図5(d)の例では、信号対雑音比が小さい(雑音が大きい)ほど、変数Pの中央値P(N)を大きな値で設定している。これにより、雑音で音声データの特徴が区別しにくくなる場合でも音素列の候補を増やし、最適な音素列を見つけやすくしている。
【0030】
次に、図6を参照しながら、ステップS304における認識部204による音素認識方法について詳細に説明する。図6は、認識部204が音素認識に使用する音素モデルを示す図である。図6において、601は音素モデルを表現するHMM(隠れマルコフモデル)である。602はHMMの状態を表している。603はHMMの状態遷移を表している。即ち、音素モデルは複数のHMMの状態602とHMMの状態遷移603とで構成される。認識部204は、分割部203によって分割された音声区間の音声データの特徴量系列と601の各音素モデルのHMMとをビタビアルゴリズムと呼ばれる探索方法でマッチングをとり、音素モデル毎に尤度を出力する。そして、認識部204は、尤度が最大となる音素モデルの音素を当該音声区間の音素とする。
【0031】
ビタビアルゴリズムは、音声データの特徴量系列に対して、HMMとの距離計算の尤度が最大となるような経路を探索する方法である。図7(a)は、音素を表す3つの状態のHMMであり、S0は開始状態、S4は終了状態、S1、S2、S3が音素の特徴量を有するモデルの状態を示している。図7(b)はHMMの探索を示しており、横軸が音声区間の各時刻、縦軸がHMMの状態番号を示している。図7(b)では、時刻t0からt5までの間の音声区間の特徴量とHMMとのマッチングをとっている。このとき、時刻t0からt5までの音声区間で通り得るHMMのパスは、図7(b)の矢印で書かれており、直接は分からない。そこで、認識部204は、ビタビアルゴリズムにより尤度が最大となるパスを逐次計算して探索する。
【0032】
尤度計算は、(前の状態での尤度)+(前の状態から現状態へ遷移する確率である状態遷移確率の対数)+(特徴量と現状態のモデルとの距離から得られる出力確率の対数)で行われる。例として、(時刻t2、状態S2)への遷移は、太線で記載の通り、(時刻t1、状態S1)又は(時刻t1、状態S2)からの遷移のいずれかである。ここで図7に示す通りに、時刻t1での各状態の尤度と(時刻t2、状態S2)の出力確率の対数、各状態から状態S2への状態遷移確率の対数が得られるとする。この際、(時刻t2、状態S2)の尤度は、(時刻t1、状態S1)からの遷移の場合、(−10)+(−5)+(−3)=−18、(時刻t1、状態S2)からの遷移の場合、(−20)+(−2)+(−3)=−25となる。ビタビアルゴリズムでは最大となる遷移を選択することから、(時刻t1、状態S1)からの遷移が選択され、(時刻t2、状態S2)の尤度は−18となる。認識部204は、以上の逐次計算を実行し、最終状態S4での最大パスの尤度を累積計算することによって、音声区間に対するHMMの尤度を得る。そして認識部204は、この計算をHMM毎に実行し、尤度が最大となる音素モデルの音素を当該音声区間の音素とする。
【0033】
ここで音素モデル601は、図6に示すように、一般的には開始から終了まで連接する状態への遷移及び同じ状態への遷移(自己ループ)で構成される。しかし、分割部203が正しく音素境界で分割できない場合も考えられる。音素の開始/終了が途切れたり、又は、音素の前後に他の音が繋がったりしても対応可能なように設計した音素モデルを使用することも考えられる。
【0034】
図8は、3種類の音素モデルを示す図である。図8(a)は、音素の開始/終了が途切れることに対応した音素モデルを示している。即ち、図8(a)における801は、開始状態から音素の最初の状態である第1の状態をスキップして第2の状態へ遷移する状態遷移を示している。また、図8(a)における802は、音素の第2の状態から最後の状態である第3の状態をスキップして終了状態へ遷移する状態遷移を示している。このような状態遷移を有することにより、音素の開始/終了が途切れた区間の音についても尤度を大きく下げずに認識することができる。図8(b)は、音素の前後に他の音が繋がる区間に対応した音素モデルを示している。図8(b)における803は、様々な音素や音を第1、第3の状態のモデルに学習させたガーベッジモデルを示している。音素の前後にガーベッジモデル803を接続することによって、音素の前後に他の音が繋がる場合でも、ガーベッジモデル803がその区間を吸収して尤度が保たれるため、尤度を大きく下げずに認識することができる。図8(c)は、図8(a)と図8(b)とを組み合わせた音素モデルを示しており、音素の開始/終了が途切れたり、又は、音素の前後に他の音が繋がったりしても、尤度を大きく下げずに認識することができる。
【0035】
次に、ステップS308における尤度計算部206による音素列の尤度計算について詳細に説明する。図9は、音声データから取得された複数の音素列を示す図である。図9において、901は音声データの入力音声波形である。902は、ステップS303又はS307によって設定された変数毎に、分割部203によって分割された音声区間と、認識部204によって認識された音声区間毎の音素とを示している。このように変数毎に音素が得られ、例えば変数P2の場合には、接続部205は、これらの音素を接続して音素列(a、k、a、m、e、k、a、X、w、a)を得る。
【0036】
図10は、尤度計算部206が上記音素列に対する尤度計算を行うためのモデルを取得する状態を示す図である。図10において、1001は接続部205によって取得された音素列である。1002は音素列をトライフォンに展開したトライフォン列である。1003はトライフォン列1002のHMMである。尤度計算部206は、音素列1001からトライフォン列1002に展開する。トライフォンとは、音素をさらに前後環境に依存した音に分割した音の単位である。例えば、Sil−a+kは、前の音がSil(サイレンス)、後ろの音がkであるaの音を表す。トライフォンのモデルは音素と同様に例えば3つ状態のHMMで構成されており、尤度計算部206はそれぞれのトライフォンのHMMを、トライフォン列1002に基づいて接続する。1003は、トライフォン列1002に基づいて各トライフォンのHMMを接続したHMMを示している。尤度計算部206は、HMM1003に対して、音声データの特徴量系列を入力としてビタビアルゴリズムで探索し、音素列1001に対応する尤度を得る。
【0037】
ここで、トライフォンのHMMは、トライフォン毎に生成してもよいが、トライフォンは音素数の3乗の数存在するため、データ量が膨大になったり、HMMの学習データが存在しなかったり、不十分になることがある。例えば日本語の場合、音素列“p−k+k”のような子音の連続するトライフォンは通常の音声データには現れない。これを解決する方法としては、各トライフォンの状態を決定木と呼ばれる手法でクラスタリングしてモデル間で共有し、共有する状態のモデルを学習する。決定木とは音響的質問、言語的質問等、様々な質問で各トライフォンの各状態を分類分けする方法である。質問は予め用意し、木構造の各ノードでどの質問を適用するかは学習データの分離度によって決定することが一般的である。木構造の各ノードの質問によって分類され、木構造の葉にあたるモデルで各状態が共有される。
【0038】
図11は、複数の変数P1〜P3に対応して得られた音素列の尤度を示す図である。このように、入力された音声データに対して音素列の尤度に差が出る。そこで登録部207は、尤度の最も高い音素列を登録する。図11の例では、変数P2で得られた音素列(a、k、a、m、e、k、a、X、w、a)が最も尤度が高いので、登録部207はこの音素列を認識用の語彙として登録する。
【0039】
次に、図12を参照しながら、以上のようにして登録された認識用の語彙を用いた音声認識処理の流れについて説明する。図12は、本発明の第1の実施形態に係る音声認識装置による音声認識処理を示すフローチャートである。
【0040】
ステップS1201において、音声入力部201はマイク105から音声データを入力する。ステップS1202において、特徴量抽出部202は、登録時のステップS302と同様に音声データの特徴量を抽出する。ステップS1203において、認識部204は、音声データの特徴量系列に基づいて音声認識する。この際に使用される認識用の語彙は、登録部207によって登録された音素列である。認識部204は、認識用の語彙の登録時に尤度計算部206によって計算されるHMM803と同様に、認識用の語彙(音素列)をトライフォン列に展開し、入力された音声データの特徴量系列に対してトライフォン列のHMMをビタビアルゴリズムで探索する。これにより、認識部204は尤度を計算し、尤度が最大の認識用の語彙を認識結果とする。そして、ステップS1204において、出力部208は認識部204の認識結果を出力する。
【0041】
以上のように、本実施形態によれば、様々な分割の粒度に対応した音素列を取得し、そのうちから音声データに対応する音素列を登録することが可能となる。また、本実施形態においては、認識用の語彙の登録時に音声データを分割し、分割した音声区間毎に音素を認識することにより音素列を得るので、連続音素認識のようにネットワークや音素履歴を保持するためのメモリを削減できる。その上で、音声データの分割しやすさを変える変数を複数設定してそれぞれ音素列を得て、その音素列を入力された音声データで再計算するので、様々な話者や環境に対して音声データの分割がロバストではない場合にも頑健に適した音素列を登録できる。
【0042】
次に、本発明の第2の実施形態について説明する。第1の実施形態は、音声データの分割のための変数Pを複数設定するために、固定値又は音声長に依存した値として複数の値をとる。これに対し、第2の実施形態は、過去に登録した音素列を得た変数の値によって、その近傍で変数の値を設定する。なお、第2の実施形態に係る音声認識装置の構成は、図2に示す構成と同様であるため、以下の説明では図2の符号を用いるものとする。
【0043】
以下、図13を参照しながら、第2の実施形態における変数の設定方法について具体的に説明する。分割部203は、例えば図13に示すように、変数を2.0刻みで3つの値に設定する。このとき、接続部205は3種類の音素列を得る。尤度計算部206はこれらの3種類の音素列に対して尤度計算を行う。図13の例では、変数P3=1.0で得られた音素列(s、u、t、a、p、o)が最も尤度が高い。このとき、登録部207はこの音素列を認識用の語彙として登録するとともに、分割部203は次回の登録時の変数の値をP3=1.0の近傍から設定する。前提として、変数は2.0刻みで3つの値に設定するため、分割部203は、P3=1.0及びその±2.0である、3.0、1.0、−1.0の3つを変数の候補として次回のステップS303、S307において設定する。このように、過去の値に基づいて変数の候補を設定することにより、より効率的に適切な音素列を取得できる。
【0044】
次に、本発明の第3の実施形態について説明する。なお、第3の実施形態に係る音声認識装置の構成は、図2に示す構成と同様であるため、以下の説明では図2の符号を用いるものとする。
【0045】
上述した実施形態では、尤度計算部206は、複数の変数の値に対応して得られた複数の音素列に対して、音声データに対する尤度を計算し、尤度が最大となる音素列を認識用の語彙として登録している。これに対し、第3の実施形態においては、尤度計算部206はさらに音声認識装置が保有する単語の音素列に対して尤度計算を行う。その結果、もし単語の音素列の方が尤度が高ければ、登録部207は変数毎の音素列を全て廃棄し、単語の音素列を認識用の語彙として登録する。
【0046】
以下、図14を参照しながら、第3の実施形態について具体的に説明する。図14において、1401は、認識部204が音素を認識し、接続部205が音素を接続することにより得られる複数の変数毎の音素列である。1402は、音声認識装置において予め保持される辞書に含まれる単語の音素列である。尤度計算部206は予め所定の単語を複数保持しており、その音素列に対しても音声データの尤度計算を実行する。その上で、登録部207は全ての尤度を比較し、尤度が最大の音素列を認識用の語彙として登録する。図14の例では、複数の変数毎の音素列の中では、変数P3に対応する音素列(i、X、t、a、ts、u、p、a、i、sh、i)が最も尤度が高い。しかしながら、辞書に含まれる単語の一つである「印刷開始」の音素列(i、X、s、a、ts、u、k、a、i、sh、i)の方が尤度が高いため、音素列(i、X、s、a、ts、u、k、a、i、sh、i)が認識用の語彙として登録される。
【0047】
第3の実施形態によれば、予め辞書に保有される単語の音素列も用いることで、より適切な音素列を認識用の語彙として登録することができる。
【0048】
なお、上述した実施形態においては、BICを用いた手法によって音声データの分割を行ったが、本発明はこれに限るものではなく、設定する変数によって音声データの分割の粒度が変わるものであればどのような手法でもかまわない。
【0049】
また、上述した実施形態においては、尤度計算部206によって計算した尤度が最大となる音素列のみを認識用の語彙として登録したが、尤度が高い順に複数の音素列を認識用の語彙として登録しても構わない。この場合、入力された音声データに対して複数の音素列が認識用の語彙として登録される。従って、登録された音素列を音声認識の際に呼び出す場合には、いずれの音素列を認識した場合にも同じ機能が動作するよう、それぞれの音素列に同一のID等を付加しておくことが望ましい。
【0050】
また、上述した実施形態においては、音声単位として音素を使用したが、本発明はこれに限るものではなく、音節を使用してもよい。音節は、“a”のような母音音素、又は“ka”のような子音音素と母音音素の接続で構成される。音声単位として音節を使用する場合、ステップS304では、音素認識の代わりに音節認識が行われ、ステップS305では、音節を接続して音節列が生成される(例えば、“a、ka、me、ka、X、wa”)。そして、認識部204が音素又は音節である音声単位を音声区間毎に認識し、尤度計算部206は、これを接続した音声単位列に対する音声データの尤度を計算し、登録部207は、尤度が最も大きい音声単位列を認識用の語彙として登録する。
【0051】
また、音素の代わりに音節を使用することで、日本語等の言語では子音の連続のような言語上発生し得ない音素の並びを抑制することができる。更にこの場合、ステップS308の尤度計算においては、802のトライフォン列に代えて左右環境依存の音節列(“a−ka+me”等)を使用してもよいし、左右環境は考慮せずそのまま音節のモデルを接続して尤度を計算してもよい。
【0052】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0053】
201:音声入力部、202:特徴量抽出部、203:分割部、204:認識部、205:接続部、206:尤度計算部、207:登録部、208:出力部
【技術分野】
【0001】
本発明は、音声データを認識する技術に関するものである。
【背景技術】
【0002】
音声認識技術の一つとして、ユーザ登録型音声認識が古くから使用されている。ユーザ登録型音声認識とは、予めユーザが発声した音声を登録し、認識時には登録時と同じ内容を発声して登録された音声と同じか否かを認識する技術である。
【0003】
音声を登録する方法としては、ユーザが発声した登録用音声を標準パターンとして登録する方法と、音声の細かい認識単位である音素のモデルを予め保持しておき、登録用音声と音素モデルとが最もマッチする音素の系列を計算して登録する方法とがある。前者は、登録用音声に特化したモデルができるため、同じユーザの発話に対して認識率が高いという利点がある一方、異なるユーザや異なる雑音環境での認識率が低下するという課題がある。後者は、予め様々な話者や環境を含む大量の音声データベースから音素モデルを生成しておくことができるため、異なるユーザや異なる雑音環境においても認識率の低下が前者と比較して少ない。
【0004】
後者の方法として、特許文献1には次のような技術が開示されている。即ち、特許文献1に開示される技術は、音声登録時には、音節又は音素等の認識単位からなる音声モデルに基づいて語彙による制約なしで音情報を認識し、当該音情報を認識単位列に変換して記述する。そして音声認識時には、音声登録時に記述された認識単位列を語彙に含ませ、当該語彙及び音声モデルに基づいて音情報を認識する。
【0005】
特許文献2には、登録用音声の一定時間毎の音響的特徴量を計算し、その度に音響的特徴量とサブワードの集合とのマッチングを行い、当該サブワードの集合から登録用音声に最も近いサブワードの連接を求め、サブワード列として出力する技術が開示されている。このとき、サブワードは一定時間毎に一つ求まるが、同一のサブワードの連続は一つに省略している。
【0006】
特許文献1に開示される技術のように登録用音声から音素列を求める場合、音素の集合を繰り返しループするようなネットワークを生成して、そのネットワークを探索して尤度計算し、認識している。このような場合、音素は前後の音素に依存した音素であるトライフォンに展開してネットワークを生成したり、また、探索中に音素の履歴を保持したりする必要があるため、メモリ消費が大きくなるという問題がある。
【0007】
一方、特許文献2のように一定時間(フレーム)毎に最適な音素を求める場合には、特許文献1に開示される技術のような、ループするネットワークを探索する必要がないため、メモリ消費は抑えられる。しかし、一定フレーム毎に音素を特定すると、同じ単語でもゆっくり発話した場合と早く発話した場合とでは音素列長が変わってしまう。特許文献2に開示される技術では、この対策として同一音素の連続を一つに省略しているが、一音素区間の中で毎フレーム同一の音素が求まる保証はないため、ロバストとはいえない。
【0008】
これに対処するためには、フレーム毎に求まる特徴量から音声区間を分割(セグメンテーション)し、求まったセグメント毎に最適な音素や音節等の音声単位を選ぶことが好適である。非特許文献1では、複数の話者の音声区間の分割手法として、BIC(ベイズ情報量基準)を用いた分割手法が開示されている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2009−90979号公報
【特許文献2】特開平11−242493号公報
【非特許文献】
【0010】
【非特許文献1】IEEE TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING, VOL. 16, NO. 5, JULY 2008 , p920-933, "Computationally Efficient and Robust BIC-Based Speaker Segmentation"
【発明の概要】
【発明が解決しようとする課題】
【0011】
非特許文献1のように音声区間の分割を行った上で、それぞれの音声区間毎に音素又は音節等の音声単位を認識し、最適な音声単位を求めることにより、メモリ消費を抑えながら適切な音声区間に対して音声単位を求めることができる。しかしながら、この場合、正しい音声単位の境界で音声区間を分割できることが前提となる。ところが、設定するパラメータによって音声区間の分割のしやすさが変化するため、様々な環境や話者にロバストに音声単位の境界で分割することは難しい。
【0012】
そこで、本発明の目的は、様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録することにある。
【課題を解決するための手段】
【0013】
本発明の音声認識装置は、音声データを入力する入力手段と、分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割手段と、前記変数毎に前記各区間の音声単位を認識する認識手段と、前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続手段と、前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算手段と、前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録手段とを有することを特徴とする。
【発明の効果】
【0014】
本発明によれば、様々な分割の粒度に対応した音声単位列を取得し、そのうちから音声データに対応する音声単位列を登録することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態に係る音声認識装置のハードウェア構成を示す図である。
【図2】本発明の実施形態に係る音声認識装置の機能的な構成を示す図である。
【図3】本発明の第1の実施形態に係る音声認識装置による認識用の語彙の登録処理を示すフローチャートである。
【図4】音声データを音声区間に分割する方法を説明するための図である。
【図5】変数の値や変数の候補の数を設定する方法を説明するための図である。
【図6】認識部が音素認識に使用する音素モデルを示す図である。
【図7】ビタビアルゴリズムについて説明するための図である。
【図8】3種類の音素モデルを示す図である。
【図9】音声データから取得された複数の音素列を示す図である。
【図10】尤度計算部が上記音素列に対する尤度計算を行うためのモデルを取得する状態を示す図である。
【図11】複数の変数に対応して得られた音素列の尤度を示す図である。
【図12】本発明の第1の実施形態に係る音声認識装置による音声認識処理を示すフローチャートである。
【図13】本発明の第2の実施形態における変数の設定方法について具体的に説明するための図である。
【図14】本発明の第3の実施形態を説明するための図である。
【発明を実施するための形態】
【0016】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0017】
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る音声認識装置のハードウェア構成を示す図である。図1において、101はCPU(中央処理装置)であり、音声認識装置の制御プログラムを実行する。102はROMであり、制御プログラム等を格納する。103はRAMであり、CPU101のワークエリアを提供するために用いられる。104はハードディスク等の記憶装置であり、データを格納する。105は音声データを入力するマイクである。
【0018】
図2は、本発明の第1の実施形態に係る音声認識装置の機能的な構成を示す図である。図2において、201は、マイク105から音声データを入力する音声入力部である。202は、音声入力部201から入力された音声データの特徴量を一定時間(フレーム)毎に抽出する特徴量抽出部である。203は、特徴量抽出部202により抽出された特徴量に基づいて音声データを音声区間に分割する分割部である。204は、音声データの特徴量とモデルとのマッチングを行うことにより、音素や音節である音声単位を認識する認識部である。205は、認識部204によって認識された音声単位を、分割部203によって分割された音声区間の出現順に接続して音素列を取得する接続部である。206は、接続部205によって接続された音素列に対する、音声入力部201から入力された音声データの尤度を計算する尤度計算部である。207は、音素列を認識用の語彙として登録する登録部である。208は、認識部204による認識結果を出力する出力部である。
【0019】
図3は、本発明の第1の実施形態に係る音声認識装置による認識用の語彙の登録処理を示すフローチャートである。以下、図3を参照しながら、第1の実施形態に係る音声認識装置の処理について説明する。
【0020】
ステップS301において、音声入力部201はマイク105から音声データを入力する。ステップS302において、特徴量抽出部202は一定時間(フレーム)毎に音声データの特徴量を抽出する。特徴量は、MFCC(メル周波数ケプストラム係数)やLPC(線形予測分析)係数、各特徴量の時間変動等、一般的に使用されるどのようなものでもよい。ステップS303において、分割部203は、分割の粒度を変化させる変数を所定の値に設定し、音声データの特徴量に基づいて音声データを音声区間に分割する。なお、音声データの分割方法の詳細については後述する。ステップS304において、認識部204は、分割部203によって分割された各音声区間について音素認識を行うことにより、音声区間毎に音声単位を認識する。本実施形態では、音声単位として音素を使用するが、本発明はこれに限るものではなく、音声単位として音節を使用してもよい。
【0021】
ステップS305において、接続部205は、音声区間毎に認識された音素を接続して音素列を取得する。ステップS306において、音声認識装置は、分割部203によって設定された変数の候補全てについてステップS303〜S305までの処理を実行したか否かを判定する。変数の候補全てについて処理していなければ、処理はステップS307に移行する。一方、変数の候補全てについて処理していれば、処理はステップS308に移行する。
【0022】
ステップS307において、分割部203は変数を変更する。そして、処理はステップS303に戻る。ステップS308において、尤度計算部206は、変数毎に得られた音素列それぞれについて尤度を計算する。ステップS309において、登録部207は、最も尤度が高い音素列を認識用の語彙として登録する。
【0023】
ここで、ステップS303における分割部203による音声データの分割方法について詳細に説明する。音声データの分割方法としてはどのような方法をとっても構わないが、ここではBIC(ベイズ情報量基準)による音声データの分割を用いるものとする。図4は、音声データを音声区間に分割する方法を説明するための図である。分割部203は、入力された音声データに対して、各フレームで音声データを分割すべきか否かを判定する。図4において、時刻t0は音声区間の開始時刻であり、分割部203は、所定フレーム後の時刻t2までの音声区間0の音声データを時刻t1にて音声区間1と音声区間2とに分割すべきか否かの判断基準であるΔBICを、下記の式で計算する。
【0024】
【数1】
【0025】
分割部203は、ΔBICが0以上であれば、時刻t1において音声データを分割し、ΔBICが0未満であれば、時刻t1では音声データを分割しない。t1はt0〜t2の間で順次走査して逐一計算される。もし、時刻t1で音声データが分割されれば、分割部203は、時刻t1を新たな音声区間の開始t0と設定して、新たなt0の位置からt2を設定しなおし、その間で次の分割点を同様に探す。もし時刻t1を時刻t2まで走査しても分割点が見つからなければ、分割部203は、時刻t2を所定のフレーム分延長し、時刻t1の走査を続けて分割点を探す。以上の操作を音声データの開始から終了まで実行することにより、それぞれ音の異なる時刻で音声データを分割することができる。
【0026】
ここで、変数Pは調整のためのパラメータであり、Pが大きければ音声データは分割されやすくなり、Pが小さければ音声データは分割され難くなる。そこで、ステップS303、S307において、分割部203は、変数Pを複数設定することによって音声データの分割の細かさを変えている。変数Pの候補となる値は固定でも構わないし、音声データの長さや音声データの信号対雑音比に応じて変化するように設定してもよい。変数Pの候補の値を大きめに設定することで分割しやすくしたり、変数Pの候補の数を増やすことで最適な音素列を見つけやすくしている。
【0027】
図5(a)は、音声データの長さに応じて変数Pの中央値を決定するためのグラフを示している。図5(a)の例では、音声データの長さ(音声長(フレーム数))Nが長いほど、変数Pの中央値P(N)を大きな値で設定している。変数Pの候補は中央値及びその周囲に設定される(例えば、中央値P(N)、P(N)±1、P(N)±2の5つ)。このように音声データが長いほど、変数Pの中央値P(N)を大きな値とすることにより、音声データを分割しやすくしている。
【0028】
図5(b)は、音声データの長さに応じて変数Pの候補の数を決定するためのグラフを示している。図5(b)の例では、音声データの長さ(音声長(フレーム数))Nが長いほど、変数Pの候補数X(N)が増えるように設定している。例えばX(N)=3の場合、所定の値Pc及び所定の値Pcから所定の間隔1ずつ離れた値であるPc、Pc±1が変数Pの候補となる。同様にX(N)=7の場合、Pc、Pc±1、Pc±2、Pc±3が候補となる。このように長い音声データの場合に候補の数を増やすことで、最適な音素列を見つけやすくしている。
【0029】
図5(c)は、信号対雑音比に応じて変数Pの中央値を決定するためのグラフを示している。図5(c)の例では、信号対雑音比が小さい(雑音が大きい)ほど、変数Pの中央値P(N)を大きな値で設定している。これにより、雑音で音声データの特徴が区別しにくくなる場合でも音声データを分割しやすくしている。図5(d)は、信号対雑音比に応じて変数Pの候補の数を決定するためのグラフを示している。図5(d)の例では、信号対雑音比が小さい(雑音が大きい)ほど、変数Pの中央値P(N)を大きな値で設定している。これにより、雑音で音声データの特徴が区別しにくくなる場合でも音素列の候補を増やし、最適な音素列を見つけやすくしている。
【0030】
次に、図6を参照しながら、ステップS304における認識部204による音素認識方法について詳細に説明する。図6は、認識部204が音素認識に使用する音素モデルを示す図である。図6において、601は音素モデルを表現するHMM(隠れマルコフモデル)である。602はHMMの状態を表している。603はHMMの状態遷移を表している。即ち、音素モデルは複数のHMMの状態602とHMMの状態遷移603とで構成される。認識部204は、分割部203によって分割された音声区間の音声データの特徴量系列と601の各音素モデルのHMMとをビタビアルゴリズムと呼ばれる探索方法でマッチングをとり、音素モデル毎に尤度を出力する。そして、認識部204は、尤度が最大となる音素モデルの音素を当該音声区間の音素とする。
【0031】
ビタビアルゴリズムは、音声データの特徴量系列に対して、HMMとの距離計算の尤度が最大となるような経路を探索する方法である。図7(a)は、音素を表す3つの状態のHMMであり、S0は開始状態、S4は終了状態、S1、S2、S3が音素の特徴量を有するモデルの状態を示している。図7(b)はHMMの探索を示しており、横軸が音声区間の各時刻、縦軸がHMMの状態番号を示している。図7(b)では、時刻t0からt5までの間の音声区間の特徴量とHMMとのマッチングをとっている。このとき、時刻t0からt5までの音声区間で通り得るHMMのパスは、図7(b)の矢印で書かれており、直接は分からない。そこで、認識部204は、ビタビアルゴリズムにより尤度が最大となるパスを逐次計算して探索する。
【0032】
尤度計算は、(前の状態での尤度)+(前の状態から現状態へ遷移する確率である状態遷移確率の対数)+(特徴量と現状態のモデルとの距離から得られる出力確率の対数)で行われる。例として、(時刻t2、状態S2)への遷移は、太線で記載の通り、(時刻t1、状態S1)又は(時刻t1、状態S2)からの遷移のいずれかである。ここで図7に示す通りに、時刻t1での各状態の尤度と(時刻t2、状態S2)の出力確率の対数、各状態から状態S2への状態遷移確率の対数が得られるとする。この際、(時刻t2、状態S2)の尤度は、(時刻t1、状態S1)からの遷移の場合、(−10)+(−5)+(−3)=−18、(時刻t1、状態S2)からの遷移の場合、(−20)+(−2)+(−3)=−25となる。ビタビアルゴリズムでは最大となる遷移を選択することから、(時刻t1、状態S1)からの遷移が選択され、(時刻t2、状態S2)の尤度は−18となる。認識部204は、以上の逐次計算を実行し、最終状態S4での最大パスの尤度を累積計算することによって、音声区間に対するHMMの尤度を得る。そして認識部204は、この計算をHMM毎に実行し、尤度が最大となる音素モデルの音素を当該音声区間の音素とする。
【0033】
ここで音素モデル601は、図6に示すように、一般的には開始から終了まで連接する状態への遷移及び同じ状態への遷移(自己ループ)で構成される。しかし、分割部203が正しく音素境界で分割できない場合も考えられる。音素の開始/終了が途切れたり、又は、音素の前後に他の音が繋がったりしても対応可能なように設計した音素モデルを使用することも考えられる。
【0034】
図8は、3種類の音素モデルを示す図である。図8(a)は、音素の開始/終了が途切れることに対応した音素モデルを示している。即ち、図8(a)における801は、開始状態から音素の最初の状態である第1の状態をスキップして第2の状態へ遷移する状態遷移を示している。また、図8(a)における802は、音素の第2の状態から最後の状態である第3の状態をスキップして終了状態へ遷移する状態遷移を示している。このような状態遷移を有することにより、音素の開始/終了が途切れた区間の音についても尤度を大きく下げずに認識することができる。図8(b)は、音素の前後に他の音が繋がる区間に対応した音素モデルを示している。図8(b)における803は、様々な音素や音を第1、第3の状態のモデルに学習させたガーベッジモデルを示している。音素の前後にガーベッジモデル803を接続することによって、音素の前後に他の音が繋がる場合でも、ガーベッジモデル803がその区間を吸収して尤度が保たれるため、尤度を大きく下げずに認識することができる。図8(c)は、図8(a)と図8(b)とを組み合わせた音素モデルを示しており、音素の開始/終了が途切れたり、又は、音素の前後に他の音が繋がったりしても、尤度を大きく下げずに認識することができる。
【0035】
次に、ステップS308における尤度計算部206による音素列の尤度計算について詳細に説明する。図9は、音声データから取得された複数の音素列を示す図である。図9において、901は音声データの入力音声波形である。902は、ステップS303又はS307によって設定された変数毎に、分割部203によって分割された音声区間と、認識部204によって認識された音声区間毎の音素とを示している。このように変数毎に音素が得られ、例えば変数P2の場合には、接続部205は、これらの音素を接続して音素列(a、k、a、m、e、k、a、X、w、a)を得る。
【0036】
図10は、尤度計算部206が上記音素列に対する尤度計算を行うためのモデルを取得する状態を示す図である。図10において、1001は接続部205によって取得された音素列である。1002は音素列をトライフォンに展開したトライフォン列である。1003はトライフォン列1002のHMMである。尤度計算部206は、音素列1001からトライフォン列1002に展開する。トライフォンとは、音素をさらに前後環境に依存した音に分割した音の単位である。例えば、Sil−a+kは、前の音がSil(サイレンス)、後ろの音がkであるaの音を表す。トライフォンのモデルは音素と同様に例えば3つ状態のHMMで構成されており、尤度計算部206はそれぞれのトライフォンのHMMを、トライフォン列1002に基づいて接続する。1003は、トライフォン列1002に基づいて各トライフォンのHMMを接続したHMMを示している。尤度計算部206は、HMM1003に対して、音声データの特徴量系列を入力としてビタビアルゴリズムで探索し、音素列1001に対応する尤度を得る。
【0037】
ここで、トライフォンのHMMは、トライフォン毎に生成してもよいが、トライフォンは音素数の3乗の数存在するため、データ量が膨大になったり、HMMの学習データが存在しなかったり、不十分になることがある。例えば日本語の場合、音素列“p−k+k”のような子音の連続するトライフォンは通常の音声データには現れない。これを解決する方法としては、各トライフォンの状態を決定木と呼ばれる手法でクラスタリングしてモデル間で共有し、共有する状態のモデルを学習する。決定木とは音響的質問、言語的質問等、様々な質問で各トライフォンの各状態を分類分けする方法である。質問は予め用意し、木構造の各ノードでどの質問を適用するかは学習データの分離度によって決定することが一般的である。木構造の各ノードの質問によって分類され、木構造の葉にあたるモデルで各状態が共有される。
【0038】
図11は、複数の変数P1〜P3に対応して得られた音素列の尤度を示す図である。このように、入力された音声データに対して音素列の尤度に差が出る。そこで登録部207は、尤度の最も高い音素列を登録する。図11の例では、変数P2で得られた音素列(a、k、a、m、e、k、a、X、w、a)が最も尤度が高いので、登録部207はこの音素列を認識用の語彙として登録する。
【0039】
次に、図12を参照しながら、以上のようにして登録された認識用の語彙を用いた音声認識処理の流れについて説明する。図12は、本発明の第1の実施形態に係る音声認識装置による音声認識処理を示すフローチャートである。
【0040】
ステップS1201において、音声入力部201はマイク105から音声データを入力する。ステップS1202において、特徴量抽出部202は、登録時のステップS302と同様に音声データの特徴量を抽出する。ステップS1203において、認識部204は、音声データの特徴量系列に基づいて音声認識する。この際に使用される認識用の語彙は、登録部207によって登録された音素列である。認識部204は、認識用の語彙の登録時に尤度計算部206によって計算されるHMM803と同様に、認識用の語彙(音素列)をトライフォン列に展開し、入力された音声データの特徴量系列に対してトライフォン列のHMMをビタビアルゴリズムで探索する。これにより、認識部204は尤度を計算し、尤度が最大の認識用の語彙を認識結果とする。そして、ステップS1204において、出力部208は認識部204の認識結果を出力する。
【0041】
以上のように、本実施形態によれば、様々な分割の粒度に対応した音素列を取得し、そのうちから音声データに対応する音素列を登録することが可能となる。また、本実施形態においては、認識用の語彙の登録時に音声データを分割し、分割した音声区間毎に音素を認識することにより音素列を得るので、連続音素認識のようにネットワークや音素履歴を保持するためのメモリを削減できる。その上で、音声データの分割しやすさを変える変数を複数設定してそれぞれ音素列を得て、その音素列を入力された音声データで再計算するので、様々な話者や環境に対して音声データの分割がロバストではない場合にも頑健に適した音素列を登録できる。
【0042】
次に、本発明の第2の実施形態について説明する。第1の実施形態は、音声データの分割のための変数Pを複数設定するために、固定値又は音声長に依存した値として複数の値をとる。これに対し、第2の実施形態は、過去に登録した音素列を得た変数の値によって、その近傍で変数の値を設定する。なお、第2の実施形態に係る音声認識装置の構成は、図2に示す構成と同様であるため、以下の説明では図2の符号を用いるものとする。
【0043】
以下、図13を参照しながら、第2の実施形態における変数の設定方法について具体的に説明する。分割部203は、例えば図13に示すように、変数を2.0刻みで3つの値に設定する。このとき、接続部205は3種類の音素列を得る。尤度計算部206はこれらの3種類の音素列に対して尤度計算を行う。図13の例では、変数P3=1.0で得られた音素列(s、u、t、a、p、o)が最も尤度が高い。このとき、登録部207はこの音素列を認識用の語彙として登録するとともに、分割部203は次回の登録時の変数の値をP3=1.0の近傍から設定する。前提として、変数は2.0刻みで3つの値に設定するため、分割部203は、P3=1.0及びその±2.0である、3.0、1.0、−1.0の3つを変数の候補として次回のステップS303、S307において設定する。このように、過去の値に基づいて変数の候補を設定することにより、より効率的に適切な音素列を取得できる。
【0044】
次に、本発明の第3の実施形態について説明する。なお、第3の実施形態に係る音声認識装置の構成は、図2に示す構成と同様であるため、以下の説明では図2の符号を用いるものとする。
【0045】
上述した実施形態では、尤度計算部206は、複数の変数の値に対応して得られた複数の音素列に対して、音声データに対する尤度を計算し、尤度が最大となる音素列を認識用の語彙として登録している。これに対し、第3の実施形態においては、尤度計算部206はさらに音声認識装置が保有する単語の音素列に対して尤度計算を行う。その結果、もし単語の音素列の方が尤度が高ければ、登録部207は変数毎の音素列を全て廃棄し、単語の音素列を認識用の語彙として登録する。
【0046】
以下、図14を参照しながら、第3の実施形態について具体的に説明する。図14において、1401は、認識部204が音素を認識し、接続部205が音素を接続することにより得られる複数の変数毎の音素列である。1402は、音声認識装置において予め保持される辞書に含まれる単語の音素列である。尤度計算部206は予め所定の単語を複数保持しており、その音素列に対しても音声データの尤度計算を実行する。その上で、登録部207は全ての尤度を比較し、尤度が最大の音素列を認識用の語彙として登録する。図14の例では、複数の変数毎の音素列の中では、変数P3に対応する音素列(i、X、t、a、ts、u、p、a、i、sh、i)が最も尤度が高い。しかしながら、辞書に含まれる単語の一つである「印刷開始」の音素列(i、X、s、a、ts、u、k、a、i、sh、i)の方が尤度が高いため、音素列(i、X、s、a、ts、u、k、a、i、sh、i)が認識用の語彙として登録される。
【0047】
第3の実施形態によれば、予め辞書に保有される単語の音素列も用いることで、より適切な音素列を認識用の語彙として登録することができる。
【0048】
なお、上述した実施形態においては、BICを用いた手法によって音声データの分割を行ったが、本発明はこれに限るものではなく、設定する変数によって音声データの分割の粒度が変わるものであればどのような手法でもかまわない。
【0049】
また、上述した実施形態においては、尤度計算部206によって計算した尤度が最大となる音素列のみを認識用の語彙として登録したが、尤度が高い順に複数の音素列を認識用の語彙として登録しても構わない。この場合、入力された音声データに対して複数の音素列が認識用の語彙として登録される。従って、登録された音素列を音声認識の際に呼び出す場合には、いずれの音素列を認識した場合にも同じ機能が動作するよう、それぞれの音素列に同一のID等を付加しておくことが望ましい。
【0050】
また、上述した実施形態においては、音声単位として音素を使用したが、本発明はこれに限るものではなく、音節を使用してもよい。音節は、“a”のような母音音素、又は“ka”のような子音音素と母音音素の接続で構成される。音声単位として音節を使用する場合、ステップS304では、音素認識の代わりに音節認識が行われ、ステップS305では、音節を接続して音節列が生成される(例えば、“a、ka、me、ka、X、wa”)。そして、認識部204が音素又は音節である音声単位を音声区間毎に認識し、尤度計算部206は、これを接続した音声単位列に対する音声データの尤度を計算し、登録部207は、尤度が最も大きい音声単位列を認識用の語彙として登録する。
【0051】
また、音素の代わりに音節を使用することで、日本語等の言語では子音の連続のような言語上発生し得ない音素の並びを抑制することができる。更にこの場合、ステップS308の尤度計算においては、802のトライフォン列に代えて左右環境依存の音節列(“a−ka+me”等)を使用してもよいし、左右環境は考慮せずそのまま音節のモデルを接続して尤度を計算してもよい。
【0052】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0053】
201:音声入力部、202:特徴量抽出部、203:分割部、204:認識部、205:接続部、206:尤度計算部、207:登録部、208:出力部
【特許請求の範囲】
【請求項1】
音声データを入力する入力手段と、
分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割手段と、
前記変数毎に前記各区間の音声単位を認識する認識手段と、
前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続手段と、
前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算手段と、
前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録手段とを有することを特徴とする音声認識装置。
【請求項2】
前記分割手段は、前記音声データの長さに応じて、前記複数の変数を設定することを特徴とする請求項1に記載の音声認識装置。
【請求項3】
前記分割手段は、前記音声データの信号対雑音比に応じて、前記複数の変数を設定することを特徴とする請求項1に記載の音声認識装置。
【請求項4】
前記分割手段は、前記登録手段によって過去に登録された音声単位列に対応する変数に基づいて、前記複数の変数を設定することを特徴とする請求項1に記載の音声認識装置。
【請求項5】
単語の音声単位列を保持する保持手段を更に有し、
前記計算手段は、前記保持手段に保持される前記単語の音声単位列についても前記音声データに対する尤度を計算し、前記登録手段は、前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列及び前記単語の音声単位列から前記音声データに対応する音声単位列を登録することを特徴とする請求項1に記載の音声認識装置。
【請求項6】
前記認識手段は、前記音声単位を表すモデルを用いて前記各区間の音声単位を認識し、前記モデルは、開始状態から前記音声単位の最初の状態である第1の状態をスキップして第2の状態へ遷移する状態遷移、及び、前記第2の状態から前記音声単位の最後の状態である第3の状態をスキップして終了状態へ遷移する状態遷移のうちの少なくとも何れか一方を有することを特徴とする請求項1乃至5の何れか1項に記載の音声認識装置。
【請求項7】
前記認識手段は、前記音声単位を表すモデルを用いて前記各区間の音声単位を認識し、前記モデルは、前記音声単位の前又は後に、所定の音を学習させたガーベッジモデルが接続されることを特徴とする請求項1乃至5の何れか1項に記載の音声認識装置。
【請求項8】
前記登録手段は、前記計算手段により計算された尤度のうち、最も大きい尤度に対応する音声単位列を登録することを特徴とする請求項1乃至7の何れか1項に記載の音声認識装置。
【請求項9】
音声認識装置によって実行される音声認識方法であって、
音声データを入力する入力ステップと、
分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割ステップと、
前記変数毎に前記各区間の音声単位を認識する認識ステップと、
前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続ステップと、
前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算ステップと、
前記計算ステップにより計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録ステップとを有することを特徴とする音声認識方法。
【請求項10】
音声データを入力する入力ステップと、
分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割ステップと、
前記変数毎に前記各区間の音声単位を認識する認識ステップと、
前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続ステップと、
前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算ステップと、
前記計算ステップにより計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録ステップとをコンピュータに実行させるためのプログラム。
【請求項1】
音声データを入力する入力手段と、
分割の粒度に係る複数の変数を設定し、前記変数毎に前記音声データを複数の区間に分割する分割手段と、
前記変数毎に前記各区間の音声単位を認識する認識手段と、
前記変数毎に前記各区間の音声単位を接続することにより、前記変数毎の音声単位列を取得する接続手段と、
前記変数毎の音声単位列の夫々について前記音声データに対する尤度を計算する計算手段と、
前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列から前記音声データに対応する音声単位列を登録する登録手段とを有することを特徴とする音声認識装置。
【請求項2】
前記分割手段は、前記音声データの長さに応じて、前記複数の変数を設定することを特徴とする請求項1に記載の音声認識装置。
【請求項3】
前記分割手段は、前記音声データの信号対雑音比に応じて、前記複数の変数を設定することを特徴とする請求項1に記載の音声認識装置。
【請求項4】
前記分割手段は、前記登録手段によって過去に登録された音声単位列に対応する変数に基づいて、前記複数の変数を設定することを特徴とする請求項1に記載の音声認識装置。
【請求項5】
単語の音声単位列を保持する保持手段を更に有し、
前記計算手段は、前記保持手段に保持される前記単語の音声単位列についても前記音声データに対する尤度を計算し、前記登録手段は、前記計算手段により計算された尤度に基づいて、前記変数毎の音声単位列及び前記単語の音声単位列から前記音声データに対応する音声単位列を登録することを特徴とする請求項1に記載の音声認識装置。
【請求項6】
前記認識手段は、前記音声単位を表すモデルを用いて前記各区間の音声単位を認識し、前記モデルは、開始状態から前記音声単位の最初の状態である第1の状態をスキップして第2の状態へ遷移する状態遷移、及び、前記第2の状態から前記音声単位の最後の状態である第3の状態をスキップして終了状態へ遷移する状態遷移のうちの少なくとも何れか一方を有することを特徴とする請求項1乃至5の何れか1項に記載の音声認識装置。
【請求項7】
前記認識手段は、前記音声単位を表すモデルを用いて前記各区間の音声単位を認識し、前記モデルは、前記音声単位の前又は後に、所定の音を学習させたガーベッジモデルが接続されることを特徴とする請求項1乃至5の何れか1項に記載の音声認識装置。
【請求項8】
前記登録手段は、前記計算手段により計算された尤度のうち、最も大きい尤度に対応する音声単位列を登録することを特徴とする請求項1乃至7の何れか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】
【公開番号】特開2012−194364(P2012−194364A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−58137(P2011−58137)
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]