以下、発音評定装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、最適状態系列から求めることができる音素区間ごとに評定点を算出するアルゴリズムにより発音評定を行う発音評定装置について説明する。このアルゴリズムは、音素区間ごとに動的事後確率を算出するということと、後に解説するアルゴリズムとの区別のために修飾子を付けて、PDAPS-PE(Phoneme Ergodic Phoneme unit Dynamic A posteriori Probability based pronunciation Scoring/音韻エルゴディック音韻単位動的事後確率に基づく発音評定)と呼ぶ。
PDAPS-PEアルゴリズムは、評定値の算出に用いる音声データを音素区間に限定し、その音素区間以外の情報を排除したアルゴリズムである。
図1は、本実施の形態における発音評定装置のブロック図である。本発音評定装置は、入力受付部101、教師データ格納部102、評定対象音素系列格納部103、音声受付部104、フレーム音声データ取得部105、特徴ベクトル系列取得部106、最適状態系列取得部107、最適音素部分系列取得部108、特徴ベクトル部分系列取得部109、評定値算出部110、出力部111を具備する。
入力受付部101は、発音評定装置の動作開始を指示する動作開始指示や、処理を終了する終了指示などの入力を受け付ける。かかる指示等の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。入力受付部101は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
教師データ格納部102は、1以上の音素毎の音響モデル(以下、適宜、音響モデルパラメータ、とも言う。)である教師データを1以上格納している。教師データは、隠れマルコフモデル(HMM)に基づくデータであることは好適である。さらに、本実施の形態における発音評定装置(PDAPS-PEアルゴリズムで利用する場合)では、教師データは、HMMであり、一の音素HMMの終端状態から、当該一の音素または他のすべての音素の始端状態へ連結された音響モデルであることは好適である。つまり、実施の形態2以降の発音評定装置(PDAPS、PAPPS、PAPPS-FNのアルゴリズムで利用する場合)では、教師データは、一の音素HMMの終端状態から、当該一の音素または他のすべての音素の始端状態へ連結された音響モデルではない。
なお、教師データは、必ずしも、音韻毎のHMMを連結したHMMに基づくデータである必要はない。教師データは、全音素のHMMの、単なる集合であっても良い。また、教師データは、必ずしもHMMに基づくデータである必要はない。教師データは、単一ガウス分布モデルや、確率モデル(GMM:ガウシャンミクスチャモデル)や、統計モデルなど、他のモデルに基づくデータでも良い。なお、音響モデルは、例えば、音響を識別するIDと音響を特徴付ける特徴ベクトルの組である。教師データ格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
評定対象音素系列格納部103は、評定対象の1以上音素の並びの情報である評定対象音素系列を格納している。評定対象音素系列は、ユーザが、本来、発音しなければならない単語や文章(正解の単語や文章)などの音素列を示す情報である。音素の情報は、例えば、音素のIDや音素を示す文字コードなどである。1以上音素の並びの情報とは、例えば、[a,o,i]などの音素の文字コード列や、[1,5,2]などの音素のID列などである。また、評定対象音素系列格納部103の評定対象音素系列は、入力受付部101が受け付けた情報でも良いし、予め格納されていても良い。評定対象音素系列格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
音声受付部104は、評定対象の音声の入力を受け付ける。ここで受け付けとは、通常、マイクからの受け付けであるが、記録媒体に格納された音声を読み込む処理、外部装置からの受信処理等でも良い。音声受付部104は、例えば、マイクのドライバーソフトで実現され得る。また、なお、音声受付部104は、マイクとそのドライバーから実現されると考えても良い。音声は、マイクから入力されても良いし、磁気テープやCD−ROMなどの記録媒体から読み出すことにより入力されても良い。
フレーム音声データ取得部105は、音声受付部104が受け付けた音声を、フレームに区分し、区分されたフレーム毎の音声データであるフレーム音声データを1以上得て、当該1以上のフレーム音声データをメモリ上に配置する。フレーム音声データ取得部105は、公知技術により実現され得る。フレーム音声データ取得部105は、通常、MPUやメモリ等から実現され得る。フレーム音声データ取得部105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
特徴ベクトル系列取得部106は、フレーム音声データ取得部105が取得した1以上のフレーム音声データから、フレーム毎の特徴ベクトルの集合である特徴ベクトル系列「O=o1,o2,・・・,oT」を取得する。特徴ベクトル系列取得部106は、フレーム音声データを、スペクトル分析することにより、特徴ベクトル(ot)を取得する。また、特徴ベクトルは、例えば、三角型フィルタを用いたチャネル数24のフィルタバンク出力を離散コサイン変換したMFCCであり、その静的パラメータ、デルタパラメータおよびデルタデルタパラメータをそれぞれ12次元、さらに正規化されたパワーとデルタパワーおよびデルタデルタパワー(39次元)を有する。また、スペクトル分析において、ケプストラム平均除去を施すことは好適である。ただし、音声分析条件が、他の条件でも良いことは言うまでもない。なお、特徴ベクトル系列取得部106は、公知技術により実現され得る。特徴ベクトル系列取得部106は、通常、MPUやメモリ等から実現され得る。特徴ベクトル系列取得部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
最適状態系列取得部107は、評定対象音素系列格納部103から評定対象音素系列を読み出し、当該読み出した評定対象音素系列に沿った音響モデルを、教師データ格納部102から読み出し、メモリ上に配置する。そして、最適状態系列取得部107は、当該読み出した音響モデルと、特徴ベクトル系列取得部106が取得した特徴ベクトル系列(O=o1,o2,・・ot・・,oT)であり、音響モデルに対応する特徴ベクトル系列とを比較し、フレーム毎の最適状態(特徴ベクトルotに対する最適状態)の集合である最適状態系列(q* 1,q* 2,・・q* t・・,q* T)を取得する。最適状態系列取得部107は、取得した特徴ベクトル系列を構成する各特徴ベクトルotに基づいて、所定のフレームの最適状態(特徴ベクトルotに対する最適状態)を決定する。最適状態系列取得部107が最適状態を決定するアルゴリズムは、例えば、Viterbiアルゴリズムによる。かかる場合、最適状態系列取得部107は、通常、上記で評定対象の音素系列に沿って連結した音響モデル(ここでは、HMM)を用いて最適状態を決定する。最適状態系列取得部107は、2以上のフレームの最適状態である最適状態系列を求めることとなる。最適状態系列取得部107は、通常、MPUやメモリ等から実現され得る。最適状態系列取得部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
最適音素部分系列取得部108は、最適状態系列取得部107が取得した最適状態系列(q* 1,q* 2,・・q* t・・,q* T)の中で、同一の音素が連続する1以上の最適音素系列を識別し、当該1以上の最適音素系列の集合である最適音素部分系列を1組以上取得する。つまり、最適状態(q* t)の属する音響モデルを(p* t)とすると、最適音素部分系列取得部108は、最適状態系列(q* 1,q* 2,・・q* t・・,q* T)中の各最適状態に対応する音響モデルを、教師データ格納部102から読み出し、最適音素系列(p* 1,p* 2,・・p* t・・,p* T)を取得する。そして、最適音素部分系列取得部108は、最適音素系列(p* 1,p* 2,・・p* t・・,p* T)の中で同じ音素が連続した部分を検出し、音素系列の部分系列({p* 1,p* 2,・・}(1)・・・・{・・・,p* t・・,p* T(n)}(n)・・・{・・・,p* T}(s)}を得る。なお、音素(p* t)は、例えば、音素を識別するIDや音素を示す文字のコードなどである。また、{・・・,p* t・・,p* T(n)}(n)が、最適音素部分系列の一つである。最適音素部分系列取得部108は、通常、MPUやメモリ等から実現され得る。最適音素部分系列取得部108の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
特徴ベクトル部分系列取得部109は、特徴ベクトル系列取得部106が取得した特徴ベクトル系列から、最適音素部分系列取得部108が取得した各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列({o* 1,o* 2,・・}(1)・・・・{・・・,o* t・・,o* T(n)}(n)・・・{・・・,o* T}(s)}を1組以上取得する。なお、この特徴ベクトル部分系列が評定対象の音素区間音声データであり、それに対応した最適音素部分系列の代表音素が評定対象の(正解の)音素となる。特徴ベクトル部分系列取得部109は、通常、MPUやメモリ等から実現され得る。特徴ベクトル部分系列取得部109の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
評定値算出部110は、音素の評定値を音素区間データから算出する。評定値算出部110は、音素の評定値を算出する場合に、入力された音声データをすべて用いるようなことはしない。つまり、評定値算出部110は、全ての音響モデルである教師データが与えられたという条件のもと、音素区間音声データの時刻ごとに、当該音素区間音声データが、評定対象の正解となる音素に対応した音響モデルの持つ状態である事後確率を算出し、当該事後確率から音素の評定値を算出する。なお、評定対象の状態は、正解となる音素に対応した音響モデルが有するものである。具体的には、評定値算出部110は、例えば、以下の数式1、数式2により、音声の評定値(PDAPS−PE(t))を算出する。つまり、評定値算出部110は、最適音素部分系列取得部108が取得した最適音素部分系列と、その部分系列に対応する特徴ベクトル部分系列取得部109が取得した特徴ベクトル部分系列「O
(n)」と、教師データ格納部102から読み出した全ての音響モデルを用いて、最適音素部分系列の時刻ごとの最適音素「P
t *」ごとに、特徴ベクトル部分系列の時刻(フレーム)「t」における状態が「j」である事後確率を最適音素「P
t *」に含まれる全ての状態において取得し、その事後確率の総和を取得することで、音声の評定値(PDAPS−PE(t))を算出する。さらに詳細には、評定値算出部110は、最適音素部分系列取得部108が取得した最適音素部分系列と、その部分系列に対応する特徴ベクトル部分系列取得部109が取得した特徴ベクトル部分系列「O
(n)」と、教師データ格納部102から読み出した全ての音響モデルを用いて、最適音素部分系列の時刻ごとの最適音素「P
t *」ごとに、全ての音響モデルの全状態において、全ての音響モデルパラメータ「λ
all」が与えられたという条件のもと、特徴ベクトル系列「O
(n)」が観測され、かつそのベクトル系列の時刻(フレーム)「t」における状態が「j」である確率を取得し、その取得した状態ごとの確率値から、全ての音響モデルパラメータ「λ
all」と特徴ベクトル系列「O
(n)」が与えられたときに、そのベクトル系列の時刻(フレーム)「t」における状態が「j」である事後確率を最適音素「P
t *」に含まれる全ての状態において取得し、その事後確率の総和を取得することで、音声の評定値(PDAPS−PE(t))を算出する。
なお、数式1において、「λall」は全ての音響モデル(教師データ)のパラメータであり、「N」は教師データ全体の総状態数である。また、数式2は、公知のアルゴリズムである、前向き後ろ向き(Forward-Backward)アルゴリズムにより、確率値が算出されることを示す。また、数式1、2等において、「Pr(qt=j、O(n)|λall)」は、全ての音響モデルパラメータ「λall」が与えられたという条件のもと、特徴ベクトル部分系列「O(n)」が観測され、かつそのベクトル系列の時刻(フレーム)「t」における状態が「j」である確率である。
つまり、数式2は、前向き後ろ向きアルゴリズムを用いて、全ての音響モデルパラメータ「λall」が与えられたという条件のもと、特徴ベクトル部分系列「O(n)」が観測され、かつそのベクトル系列の時刻(フレーム)「t」における状態が「j」である確率を算出する数式である。
以下、数式2における確率値を算出する方法について説明する。従来の発音評定や音声認識などに用いる音素単位の音響モデル(HMM)は、音素ごとに独立しており、1つの音響モデルのみで実行するように定義されている。前向き後ろ向きアルゴリズムは、数式2のように全ての音響モデルパラメータ「λall」を用いて実行することは出来ない。そこで独立した音素ごとの音響モデルをあたかも1つの大きな音響モデルとして振舞うように改造する。
具体的には、例えば、レフトtoライト型の1つの音素HMMは始端と終端の状態を持ち、その間が自己遷移を含めた状態遷移でつながれた形で独立している。その1つの音素HMMの終端状態から自分自身もあわせて全ての音素HMMの始端状態へと状態遷移を仮想的につなぎ合わせる。こうして終端から始端への仮想状態遷移を全ての音素HMMにおいて作成しつなぎ合わせることにより、複数の音素HMMを1つの大きな音響モデルとして実装する。したがって、教師データは、隠れマルコフモデル(HMM)であり、一の音素HMMの終端状態から、当該一の音素または他のすべての音素の始端状態へ連結された音響モデルであることは好適である。
以上のようにして改造された音響モデルを用いることで数式2の前向き後ろ向きアルゴリズムは実行される。なお、この改造された音響モデルならびにその音響モデルを用いて実行される前向き後ろ向きアルゴリズムのことを、音素エルゴディック音響モデルならびに音素エルゴディック前向き後ろ向きアルゴリズムと呼ぶこととする。
つまり、評定値算出部110は、取得した1以上の事後確率を基にした音素の確率値をパラメータとして音声の評定値を算出する。評定値算出部110は、例えば、時間ごとの音素の確率値の時間区間における平均値や中央値を算出し、当該算出した値を評定値とする。そして、時間区間を一文章や一単語や一音素などの区間にすれば、評定値算出部110は、文章ごとや単語ごとや音素ごとの評定値を算出できる。評定値算出部110は、通常、MPUやメモリ等から実現され得る。評定値算出部110の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部111は、評定値算出部110が算出した評定値を出力する。評定値の出力態様は問わない。評定値は数値で出力されても良いし、折れ線グラフや棒グラフ等で出力されても良い。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積等を含む概念である。出力部111は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部111は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、発音評定装置の動作について図2、図3のフローチャートを用いて説明する。
(ステップS201)入力受付部101は、発音評定装置の動作開始を指示する動作開始指示を受け付けたか否かを判断する。動作開始指示を受け付ければステップS202に行き、動作開始指示を受け付けなければステップS214に飛ぶ。
(ステップS202)音声受付部104は、音声の入力を受け付けたか否かを判断する。音声の入力を受け付ければステップS203に行き、音声の入力を受け付けなければステップS213に飛ぶ。
(ステップS203)フレーム音声データ取得部105は、ステップS202で受け付けた音声のデータを図示しないバッファに一時格納する。
(ステップS204)フレーム音声データ取得部105は、バッファに一時格納した音声データをフレームに区分し、当該区分されたフレーム毎の音声データであるフレーム音声データを取得し、1以上のフレーム音声データをメモリ上に配置する。
(ステップS205)特徴ベクトル系列取得部106は、フレーム音声データ取得部105が取得した1以上のフレーム音声データをそれぞれ音声分析し、1以上の特徴ベクトルを抽出し、特徴ベクトル系列(O=o1,o2,・・ot・・,oT)を得る。本特徴ベクトルは、例えば、三角型フィルタを用いたチャネル数24のフィルタバンク出力を離散コサイン変換したMFCCであり、その静的パラメータ、デルタパラメータおよびデルタデルタパラメータをそれぞれ12次元、さらに正規化されたパワーとデルタパワーおよびデルタデルタパワー(39次元)を有する。
(ステップS206)最適状態系列取得部107は、評定対象音素系列格納部103から評定対象音素系列を読み出す。
(ステップS207)最適状態系列取得部107は、ステップS206で読み出した評定対象音素系列に沿った音響モデルを、教師データ格納部102から読み出し、メモリ上に配置する。
(ステップS208)最適状態系列取得部107は、ステップS207で読み出した音響モデルと、ステップS205で取得した特徴ベクトル系列(O=o1,o2,・・ot・・,oT)とを比較し、フレーム毎の最適状態(特徴ベクトルotに対する最適状態)の集合である最適状態系列(q* 1,q* 2,・・q* t・・,q* T)を、Viterbiアルゴリズムにより取得する。
(ステップS209)最適音素部分系列取得部108は、ステップS208で取得した最適状態系列(q* 1,q* 2,・・q* t・・,q* T)の中で、同一の音素が連続する1以上の最適音素系列を識別し、当該1以上の最適音素系列の組である最適音素部分系列を1組以上取得し、メモリ上に1組以上の最適音素部分系列を配置する。各最適音素部分系列の区切りの情報は、何でも良い。つまり、各最適音素部分系列は、異なるバッファに格納されても良いし、区切りの情報(例えば「,」)が、最適音素部分系列の間に挿入されていても良い。
(ステップS210)特徴ベクトル部分系列取得部109は、ステップS205で取得した特徴ベクトル系列から、ステップS209で取得した各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列({o* 1,o* 2,・・}(1)・・・・{・・・,o* t・・,o* T(n)}(n)・・・{・・・,o* T}(s)}を1組以上取得する。特徴ベクトル部分系列取得部109は、最適音素部分系列と特徴ベクトル部分系列の対応を、フレームIDや時刻でとる。
(ステップS211)評定値算出部110は、評定値を算出する。評定値を算出するアルゴリズム例の詳細は、図3のフローチャートを用いて説明する。
(ステップS212)出力部111は、評定値算出部110が算出した評定値を出力する。
(ステップS213)音声受付部104は、タイムアウトか否かを判断する。つまり、音声受付部104は、所定の時間以上、音声の入力を受け付けなかったか否かを判断する。タイムアウトであればステップS201に戻り、タイムアウトでなければステップS202に戻る。
(ステップS214)入力受付部101は、終了指示を受け付けたか否かを判断する。終了指示を受け付ければ処理を終了し、終了指示を受け付なければステップS201に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS211の評定値を算出するアルゴリズム例の詳細について、図3のフローチャートを用いて説明する。
(ステップS301)評定値算出部110は、評定値を代入するバッファを初期化する。
(ステップS302)評定値算出部110は、カウンタiに1を代入する。なお、カウンタiは、評定値を代入するバッファ(例えば、配列)のアドレス(配列の添え字)を示すカウンタである。
(ステップS303)評定値算出部110は、教師データ格納部102から、すべての音響モデルを読み出し、メモリ上に配置する。
(ステップS304)評定値算出部110は、カウンタnに1を代入する。
(ステップS305)評定値算出部110は、n番目の最適音素部分系列が存在するか否かを判断する。n番目の最適音素部分系列が存在すればステップS306に行き、n番目の最適音素部分系列が存在しなければステップS318に行く。
(ステップS306)評定値算出部110は、n番目の最適音素部分系列を取得し、メモリ上に配置する。
(ステップS307)評定値算出部110は、n番目の特徴ベクトル部分系列を取得し、メモリ上に配置する。
(ステップS308)評定値算出部110は、特徴ベクトル部分系列の時刻ごと、全ての音響モデルの状態ごとの確率を、全ての音響モデルパラメータを用いて、前向き後ろ向きアルゴリズムにより算出し、バッファに格納する。
(ステップS309)評定値算出部110は、カウンタtに1を代入する。
(ステップS310)評定値算出部110は、「t<=T(n)」を満たすか否か、つまり、評定対象のt番目のフレームが存在するか否かを判断する。t番目のフレームが存在すればステップS311に行き、t番目のフレームが存在しなければステップS317に行く。
(ステップS311)評定値算出部110は、t番目のフレームの状態確率の総和を算出し、メモリ上に配置する。
(ステップS312)評定値算出部110は、最適音素「Pt *」に含まれる状態(j)を取得する。
(ステップS313)評定値算出部110は、状態(j)の事後確率を算出する。さらに具体的には、評定値算出部110は、「状態(j)の確率/状態確率の総和」により、状態(j)の事後確率を算出する。
(ステップS314)評定値算出部110は、ステップS313で算出した事後確率をi番目の評定値に加算し、i番目の評定値のバッファに代入する。
(ステップS315)評定値算出部110は、最適音素「Pt *」に、次の状態が存在するか否かを判断する。次の状態が存在すればステップS312に行き、次の状態が存在しなければステップS316に行く。
(ステップS316)評定値算出部110は、カウンタt、およびカウンタiを1、インクリメントし、ステップS310に戻る。
(ステップS317)評定値算出部110は、カウンタnを1、インクリメントし、ステップS305に戻る。
(ステップS318)評定値算出部110は、フレーム毎の評定値から、音素区間、単語区間、文章区間の評定値を算出し、算出値をメモリ上に配置する。かかる、音素区間、単語区間、文章区間の評定値の算出方法は、フレーム毎の評定値の各区間における平均値や中央値を算出する方法等がある。上位処理にリターンする。
以上、本実施の形態によれば、精度の高い発音評定ができる。具体的には、本実施の形態によれば、音素単位の評定を正確に行うことができる。
なお、本実施の形態における発音評定装置の評価実験の結果について、他の発音評定装置の評価実験の結果にまとめて後述する。
また、本実施の形態の具体例によれば、評定値算出部110は、数式1、2により、上記の事後確率値を算出した。しかし、評定値算出部110が評定値を算出するアルゴリズムは、数式1、2によるものとは限らない。例えば、数式1の事後確率の算出において、音響モデルの状態としての、起こりうる全ての事象が母音の音素を表すもののみになっても良い。かかる場合、数式2の確率を求めるために用いる音響モデルパラメータ「λall」も母音の音素を表すもののみとなり、評定対象の音素は、いずれかの母音を表すもののみが許されることは明らかである。つまり、本実施の形態における発音評定装置は、全ての音響モデルパラメータが与えられたという条件のもと、音素区間音声データの時刻ごとに、音素区間音声データが評定対象の状態である事後確率から音素の評定値を算出することができる。
また、本実施の形態において、評定対象の音声データが、予め音素区間に区切られた音声データである音素区間音声データの集合でも良い。かかる場合、発音評定装置において、最適状態系列取得部や最適音素部分系列取得部は不要である。かかる場合、発音評定装置は、同一の音素が連続する1以上の最適音素系列の集合である最適音素部分系列を1組以上格納している最適音素部分系列格納部を有する。
また、本実施の形態において、発音評定装置が、フレーム毎の評定値を基にして、文章や単語の評定値を算出することは好適である。具体的には、発音評定装置は、文章や単語に含まれるフレーム毎の複数の評定値の平均値や中央値から評定値を算出することは好適である。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における発音評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、音声の入力を受け付ける音声受付部と、前記音声受付部が受け付けた音声を、フレームに区分し、区分されたフレーム毎の音声データであるフレーム音声データを1以上得るフレーム音声データ取得部と、前記1以上のフレーム音声データから、フレーム毎の特徴ベクトルの集合である特徴ベクトル系列を取得する特徴ベクトル系列取得部と、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、格納されている各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得する特徴ベクトル部分系列取得部と、格納されている教師データを読み出し、当該教師データを用いて、前記特徴ベクトル部分系列取得部が取得した特徴ベクトル部分系列が評定対象の音素である事後確率を算出し、当該事後確率から音声の評定値を算出する評定値算出部と、前記評定値算出部が算出した評定値を出力する出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、コンピュータを格納されている評定対象音素系列に沿った音響モデルを読み出し、当該音響モデルと、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列であり、前記音響モデルに対応する特徴ベクトル系列とを比較し、フレーム毎の最適状態の集合である最適状態系列を取得する最適状態系列取得部と、前記最適状態系列取得部が取得した最適状態系列の中で、同一の音素が連続する1以上の最適音素系列を識別し、当該1以上の最適音素系列の集合である最適音素部分系列を1組以上取得する最適音素部分系列取得部として、さらに機能させ、前記特徴ベクトル部分系列取得部は、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、前記最適音素部分系列取得部が取得した各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得するように機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記評定値算出部が、全ての音響モデルである教師データが与えられたという条件のもと、音素区間音声データの時刻ごとに、当該音素区間音声データが、評定対象の正解となる音素に対応した音響モデルの持つ状態である事後確率を算出し、当該事後確率から音素の評定値を算出するように機能させるためのプログラム、であることは好適である。
また、上記の教師データは、隠れマルコフモデル(HMM)であり、一の音素HMMの終端状態から、当該一の音素または他のすべての音素の始端状態へ連結された音響モデルである、ことは好適である。
(実施の形態2)
本実施の形態において、実施の形態1で説明したPDAPS-PEアルゴリズムをさらに音素の評定という意味で改良したアルゴリズムにより発音評定を行う発音評定装置について説明する。このアルゴリズムは、PDAPS-PEアルゴリズムの改良であるということと、その名前の修飾子であり、そのアルゴリズムの特徴であった音素エルゴディックな要素を取り除きより純粋に対象の音素区間を評定するということで、PDAPS(Phoneme unit Dynamic A posteriori Probability based pronunciation Scoring/音韻単位動的事後確率に基づく発音評定)と呼ぶこととする。
実施の形態1で説明したPDAPS-PEアルゴリズムにおいて、評定対象の音声データに含まれる正解となる音素があきらかに限定されているにも関わらず、数式1の分子にある評定対象音素であるところの状態の確率を表す特徴ベクトル列「O(n)」が観測され、かつ、時刻「t」における状態が「j」であることの確率の算出に「λall」を用いることで、評定対象音素以外の音素の確率値が混入していた。このとき同じく数式1の分母にある各状態の確率を表す値にも同様に、求めたい音素以外の音素の確率が混入している。ここで、かかる混入要素を取り除いたものがPDAPSアルゴリズムである。
図4は、本実施の形態における発音評定装置のブロック図である。本発音評定装置は、入力受付部101、教師データ格納部102、評定対象音素系列格納部103、音声受付部104、フレーム音声データ取得部105、特徴ベクトル系列取得部106、最適状態系列取得部107、最適音素部分系列取得部108、特徴ベクトル部分系列取得部109、評定値算出部410、出力部111を具備する。
本発音評定装置は、実施の形態1で述べた発音評定装置と比較して、評定値算出部のみが異なる。
評定値算出部410は、音素の評定値を音素区間データから算出する。評定値算出部410は、音素区間音声データ(音素の区間に分離された音声データ)の時刻ごとに、音素区間音声データが評定対象の正解となる音素である事後確率を算出し、当該事後確率から音素の評定値を算出する。また、さらに具体的には、評定値算出部410は、例えば、以下の数式3、数式4により、最適音素部分系列取得部108が取得した最適音素部分系列と、その部分系列に対応する特徴ベクトル部分系列取得部109が取得した特徴ベクトル部分系列「O
(n)」と、教師データ格納部102から全ての音響モデルを読み出し、最適音素部分系列の時刻ごとの最適音素「P
t *」ごとに、全ての音響モデルの全状態において、その状態「j」が属する音響モデルパラメータ「λ
P(j)」が与えられたという条件のもと、特徴ベクトル系列「O
(n)」が観測され、かつそのベクトル系列の時刻(フレーム)「t」における状態が「j」である確率を取得し、その取得した状態ごとの確率値から、全ての音素(音響モデル)について音響モデルパラメータ「λ
P(j)」が与えられたという条件のもと、特徴ベクトル系列「O
(n)」が観測される確率を取得し、その取得した音素ごとの確率値から、特徴ベクトル系列「O
(n)」が与えられたときに、そのベクトル系列が最適音素「P
t *」である事後確率を取得することで、音声の評定値(PDAPS(t))を算出する。
なお、数式3において、「λ(Pt*)」は音素「Pt *」の音響モデルのパラメータであり、「λP(j)」は状態「j」を含む音響モデルのパラメータである。状態「j」が音素「Pt *」の音響モデルの持つ状態であるならば、「λP(j)」と「λ(Pt*)」は同じ音響モデルのパラメータを表す。また、「M」は全ての音響モデル数であり、「N」は音響モデル全体の総状態数である。また、数式3において「Pr(m)」は音素「m」の事前確率を表し、音響モデルパラメータ「λ(m)」の事前確率「Pr(λ(m))」を意味する(「Pr(Pt *)」についても同様)。また、数式3において音素の事前確率「Pr(m)」はすべての音素において一定と仮定し、式の途中で省略している。数式4は、状態「j」が属する音響モデルパラメータ「λP(j)」が与えられたという条件のもと、特徴ベクトル系列「O(n)」が観測され、かつそのベクトル系列の時刻(フレーム)「t」における状態が「j」である確率を、前向き後向き(Forward−Backward)アルゴリズムにより算出することを示す。
このとき、数式3の各項における分子は評定対象音素の音響モデルパラメータが与えられたという条件のもと、特徴ベクトル系列「O(n)」が観測される確率を表しており、評定対象音素以外の確率の混入が取り除かれている。さらに、その分母においても各状態を表すところの確率は、その状態が属する音素以外の確率の混入が取り除かれている。そして、数式3により算出される評定値は、入力の音素区間評定対象音声データが、評定対象の音素モデルに近い(似た)音声データであり、それ以外の音素とは遠い(似ていない)音声データであるならば、分子と分母の値が近づいてそれは大きくなり(1に近くなり)、評定対象以外の音素モデルに近ければ分子と分母の値は遠ざかって(分子<分母)それは小さくなる(0に近くなる)。また、いずれの音素モデルとも遠ければその分子と分母の各確率値は小さな値となり評定値は小さくなる。このようにしてPDAPSアルゴリズムは、評定対象音声データの音素区間を、より純粋に評定対象の音素として評定することで、高い評定精度を得ることができる。
評定値算出部410は、通常、MPUやメモリ等から実現され得る。評定値算出部410の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、発音評定装置の動作について説明する。本発音評定装置の動作において、実施の形態1の発音評定装置と比較して、評定値算出処理が異なる。したがって、図5のフローチャートを用いて、本発音評定装置の評定値算出処理について説明する。図5のフローチャートにおいて、図3のフローチャートと異なるステップについてのみ説明する。
(ステップS501)評定値算出部410は、特徴ベクトル部分系列の時刻ごと、全ての音響モデルの状態ごとの確率を、状態の属する音響モデルパラメータを用いて、前向き後ろ向きアルゴリズムにより算出し、バッファに格納する。なお、評定値算出部410は、上記の確率の算出前に、ステップS303で取得した音響モデルの中から、状態の属する音響モデルパラメータを取得する。
(ステップS502)評定値算出部410は、カウンタmに1を代入する。なお、mは、音素のカウンタである。
(ステップS503)評定値算出部410は、m番目の音素の音響モデルが存在するか否かを判断する。m番目の音素の音響モデルが存在すればステップS504に行き、m番目の音素の音響モデルが存在しなければステップS506に行く。
(ステップS504)評定値算出部410は、m番目の音素の音響モデルに含まれる全状態の時刻tにおける確率の総和から、m番目の音素の確率を算出する。
(ステップS505)評定値算出部410は、カウンタmを1、インクリメントし、ステップS503に戻る。
(ステップS506)評定値算出部410は、最適音素「Pt *」の事後確率を算出する。
(ステップS507)評定値算出部410は、算出した事後確率をi番目の評定値のバッファに格納する。
(ステップS508)評定値算出部410は、カウンタt、およびカウンタiを1、インクリメントし、ステップS310に戻る。
以上、本実施の形態によれば、精度の高い発音評定ができる。具体的には、本実施の形態によれば、音素単位の評定を精度高く行うことができる。
なお、本実施の形態における発音評定装置の評価実験の結果について、他の発音評定装置の評価実験の結果にまとめて後述する。
また、本実施の形態の具体例によれば、評定値算出部410は、数式3、4により、上記の事後確率値を算出した。しかし、評定値算出部410が評定値を算出するアルゴリズムは、数式3、4によるものとは限らない。例えば、数式3の事後確率の算出において、音素としての、起こりうる全ての事象が母音の音素を表すもののみになっても良い。かかる場合、評定対象の音素は、いずれかの母音を表すもののみが許されることは明らかである。つまり、評定値算出部410は、音素区間音声データの時刻ごとに、音素区間音声データが評定対象の正解となる音素である事後確率を算出し、当該事後確率から音素の評定値を算出すればよい。
また、本実施の形態において、発音評定装置が、フレーム毎の評定値を基にして、文章や単語の評定値を算出することは好適である。具体的には、発音評定装置は、文章や単語に含まれるフレーム毎の複数の評定値の平均値や中央値から評定値を算出することは好適である。
なお、本実施の形態における発音評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、音声の入力を受け付ける音声受付部と、前記音声受付部が受け付けた音声を、フレームに区分し、区分されたフレーム毎の音声データであるフレーム音声データを1以上得るフレーム音声データ取得部と、前記1以上のフレーム音声データから、フレーム毎の特徴ベクトルの集合である特徴ベクトル系列を取得する特徴ベクトル系列取得部と、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、格納されている各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得する特徴ベクトル部分系列取得部と、格納されている教師データを読み出し、当該教師データを用いて、前記特徴ベクトル部分系列取得部が取得した特徴ベクトル部分系列が評定対象の音素である事後確率を算出し、当該事後確率から音声の評定値を算出する評定値算出部と、前記評定値算出部が算出した評定値を出力する出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、コンピュータを格納されている評定対象音素系列に沿った音響モデルを読み出し、当該音響モデルと、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列であり、前記音響モデルに対応する特徴ベクトル系列とを比較し、フレーム毎の最適状態の集合である最適状態系列を取得する最適状態系列取得部と、前記最適状態系列取得部が取得した最適状態系列の中で、同一の音素が連続する1以上の最適音素系列を識別し、当該1以上の最適音素系列の組である最適音素部分系列を1組以上取得する最適音素部分系列取得部として、さらに機能させ、前記特徴ベクトル部分系列取得部は、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、前記最適音素部分系列取得部が取得した各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得するように機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記評定値算出部が、音素区間音声データの時刻ごとに、音素区間音声データが評定対象の正解となる音素である事後確率を算出し、当該事後確率から音素の評定値を算出するように機能させるためのプログラム、であることは好適である。
(実施の形態3)
本実施の形態において、実施の形態2で説明したPDAPSアルゴリズムをさらに改良したアルゴリズムにより発音評定を行う発音評定装置について説明する。PDAPSアルゴリズムは、入力される評定対象音声データの全体と、その最適状態系列から求めた音素区間ごとに評定点を算出し、音素エルゴディックな要素を取り除いて純粋に音素区間を評定するアルゴリズムである。PDAPSアルゴリズムの評定値算出式には、評定対象の音素区間内のどの時刻(フレーム)においても評定値が同じになるという処理効率の意味から重複した計算を含んでおり、その重複を取り除いて改良したアルゴリズムが、本実施の形態において説明するアルゴリズムである。
本アルゴリズムは、PDAPSアルゴリズムから重複処理を取り除いて改良したものであり、改良の過程で評定値の算出に動的要素を直接利用しなくなったことからPAPPS(Phonemic A Posteriori Probability based pronunciation Scoring/音韻の事後確率に基づく発音評定)と呼ぶこととする。
以下、さらに詳細に、実施の形態2で説明したPDAPSアルゴリズムと本実施の形態におけるPAPPSアルゴリズムとの違いについて述べる。PDAPSアルゴリズムは、その評定値算出過程の基礎となる数式4で示した前向き後ろ向きアルゴリズムが、前向きアルゴリズムの算出値としての前向き確率と、後ろ向きアルゴリズムの算出値としての後ろ向き確率を、掛け合わせた値としての特徴ベクトル系列と時刻「t」における状態が「j」であることの同時生起確率を、与えられたモデルパラメータの持つ全ての状態で足し合わせることで、特徴ベクトル系列の生起確率となって、時刻と状態の変数が無くなり、どの時刻でその生起確率を算出しても同じ値になるという特徴をもつために、数式3の分子と分母は評定対象音素区間の特徴ベクトル系列「O(n)」内のどの時刻においても同じ値となり、評定値も時刻の違いによる差がなくなる。さらに、前向き後ろ向きアルゴリズムを用いて特徴ベクトル系列の最終時刻「T(n)」での確率を求める場合、後ろ向きアルゴリズムは必要とせず、前向きアルゴリズムのみで求めることができる。これらの特徴を利用することでPDAPSアルゴリズムを簡略化して、高速に全く同じ評定値を算出するアルゴリズムがPAPPSである。ただし、PDASPアルゴリズムは評定対象の音素区間内では同じ値であるが時刻(フレーム)ごとに評定値を算出するが、PAPPSアルゴリズムでは評定対象の音素区間ごとに評定値を得る。
図6は、本実施の形態における発音評定装置のブロック図である。本発音評定装置は、入力受付部101、教師データ格納部102、評定対象音素系列格納部103、音声受付部104、フレーム音声データ取得部105、特徴ベクトル系列取得部106、最適状態系列取得部107、最適音素部分系列取得部108、特徴ベクトル部分系列取得部109、評定値算出部610、出力部111、最適音素代表系列取得部601を具備する。
最適音素代表系列取得部601は、最適音素部分系列取得部108が取得した1組以上の各最適音素部分系列に対して、音素を代表する一の代表音素を取得し、当該取得した1以上の代表音素を有する最適音素代表系列(P={P1,P2,・・・,Pn,・・・,Ps})を取得し、当該最適音素代表系列をメモリ上に配置する。最適音素代表系列取得部601は、例えば、3つの最適音素部分系列{{a,a,・・・,a}{o,o,・・・,o}{i,i,・・・,i}}の各最適音素部分系列に対して、{a,o,i}という3つの代表音素を有する最適音素代表系列を取得する。かかる処理は、音素のID列や音素を示す文字コード列が存在する場合の、公知の文字列処理である。最適音素代表系列取得部601は、通常、MPUやメモリ等から実現され得る。最適音素代表系列取得部601の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
評定値算出部610は、音素の評定値を音素区間データから算出する。評定値算出部610は、音素区間音声データが評定対象の正解となる音素である事後確率を算出し、当該事後確率から音素の評定値を算出する。評定値算出部610は、例えば、以下の数式5、数式6により、最適音素代表系列取得部が取得した代表音素「P
n」ごとに、その音素に対応する特徴ベクトル部分系列取得部が取得した特徴ベクトル部分系列「O
(n)」と、教師データ格納部から全ての音響モデルを読み出し、全ての音響モデルの全状態において、その状態「j」が属する音響モデルパラメータ「λ
P(j)」が与えられたという条件のもと、特徴ベクトル系列「O
(n)」が観測され、かつそのベクトル系列の最終時刻(フレーム)「T
(n)」における状態が「j」である確率を取得し、その取得した状態ごとの確率値から、全ての音素について音響モデルパラメータ「λ
P(j)」が与えられたという条件のもと、特徴ベクトル系列「O
(n)」が観測される確率を取得し、その取得した音素ごとの確率値から、特徴ベクトル系列「O
(n)」が与えられたときに、そのベクトル系列が代表音素「P
n」である事後確率を取得することで、音声の評定値(PAPPS(P
n))を算出する。評定値算出部610は、状態ごとの確率値を、バックワードアルゴリズムを用いずにフォワードアルゴリズムにより取得することは好適である。
数式5において、「Pn」は最適音素代表系列の「n」番目の音素である。また、数式5において、「λ(Pn)」は音素「Pn」の音響モデルパラメータであり、「λP(j)」は状態「j」を含む音響モデルのパラメータである。状態「j」が音素「Pn」の音響モデルの持つ状態であるならば、「λP(j)」と「λ(Pn)」は同じ音響モデルのパラメータを表す。また、「M」は全ての音響モデル数であり、「N」は音響モデル全体の総状態数である。また、数式5において、「Pr(m)」は音素「m」の事前確率を表し、音響モデルパラメータ「λ(m)」の事前確率「Pr(λ(m))」を意味する(「Pr(Pn)」についても同様)。また、数式5において、音素の事前確率「Pr(m)」は、すべての音素において一定と仮定し、式の途中で省略している。
また、数式6は、状態「j」が属する音響モデルパラメータ「λ(Pn)」が与えられたという条件のもと、特徴ベクトル系列「O(n)」が観測され、かつそのベクトル系列の最終時刻(フレーム)「T(n)」における状態が「j」である確率を、前向き(Forward)アルゴリズムにより算出することを示す。そして、数式5で示すPAPPS評定値算出式は、特徴ベクトル系列の最終時刻「T(n)」における数式3で示したPDAPS評定値算出式と一致する。
さらに、評定値算出部610は、数式5により、音素区間ごとに算出されるPAPPS評定値をメモリ上に一時記憶し、当該音素区間ごとの評定値をパラメータにして、文章や単語ごとの評定値を算出しても良い。文章や単語ごとの評定値を算出するために、評定値算出部610は、評定対象の文章や単語を構成する音素のPAPPS評定値から平均値や中央値などを用いた算出方法で求めることは好適である。かかる場合、評定値算出部610は、最適音素部分系列取得部108が取得した各音素の最適音素部分系列の長さ(フレーム数)をパラメータとして、各音素の値を重み付けして、文章や単語の評定値を算出しても良いし、単純に各音素の評定値の平均値や中央値などの値を文章や単語全体の評定値としても良い。
評定値算出部610は、通常、MPUやメモリ等から実現され得る。評定値算出部610の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、発音評定装置の動作について説明する。本発音評定装置の動作において、実施の形態2の発音評定装置と比較して、評定値算出処理およびその前処理が異なる。したがって、図7のフローチャートを用いて、本発音評定装置の評定値算出処理について説明する。図7のフローチャートにおいて、図3、図5のフローチャートと異なるステップについてのみ説明する。
(ステップS701)評定値算出部610は、n番目の代表音素、および最適音素部分系列が存在するか否かを判断する。n番目の代表音素等が存在すればステップS702に行き、n番目の代表音素等が存在しなければステップS709に行く。
(ステップS702)評定値算出部610は、最適音素代表系列のn番目の代表音素を取得し、メモリ上に配置する。
(ステップS703)評定値算出部610は、n番目の特徴ベクトル部分系列を取得し、メモリ上に配置する。
(ステップS704)評定値算出部610は、特徴ベクトル部分系列の最終時刻「T(n)」での、全ての音響モデルの状態ごとの確率を、状態の属する音響モデルパラメータを用いて、前向きアルゴリズムにより算出し、バッファに格納する。なお、評定値算出部610は、上記の確率の算出前に、ステップS303で取得した音響モデルの中から、状態の属する音響モデルパラメータを取得する。
(ステップS705)評定値算出部610は、m番目の音素の音響モデルに含まれる全状態の時刻「T(n)」における確率の総和から、m番目の音素の確率を算出する。
(ステップS706)評定値算出部610は、代表音素「Pn」の事後確率を算出する。
(ステップS707)評定値算出部610は、算出した事後確率をn番目の評定値のバッファに格納する。
(ステップS708)評定値算出部610は、カウンタnを1、インクリメントし、ステップS701に戻る。
(ステップS709)評定値算出部610は、音素毎の評定値から、単語区間、文章区間の評定値を算出し、算出値をメモリ上に配置する。かかる、単語区間、文章区間の評定値の算出方法は、音素毎の評定値の各区間における平均値や中央値を算出する方法等がある。上位処理にリターンする。
以上、本実施の形態によれば、精度の高い発音評定ができる。具体的には、本実施の形態によれば、音素単位の評定を高い精度で行うことができる。また、本実施の形態によれば、高速に音素単位の評定を高い精度で行うことができる。
なお、本実施の形態によれば、評定値算出部610は、数式5、6により、評定値を算出した。しかし、評定値算出部610が評定値を算出するアルゴリズムは、数式5、6によるものとは限らない。例えば、数式6は前向き(Forward)アルゴリズムにより算出された。評定値算出部610は、数式6に代えて、後向き(Backward)アルゴリズムにより算出しても良い。また、例えば、数式5の事後確率の算出において、音素としての、起こりうる全ての事象が母音の音素を表すもののみになっても良い。かかる場合、評定対象の音素は、いずれかの母音を表すもののみが許されることは明らかである。評定値算出部610は、音素区間音声データが評定対象の正解となる音素である事後確率を算出し、当該事後確率から音素の評定値を算出すれば良い。
また、本実施の形態において、発音評定装置が、音素毎の評定値を基にして、文章や単語の評定値を算出することは好適である。具体的には、発音評定装置は、文章や単語に含まれる音素毎の複数の評定値の平均値や中央値から評定値を算出することは好適である。
なお、本実施の形態における発音評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、音声の入力を受け付ける音声受付部と、前記音声受付部が受け付けた音声を、フレームに区分し、区分されたフレーム毎の音声データであるフレーム音声データを1以上得るフレーム音声データ取得部と、前記1以上のフレーム音声データから、フレーム毎の特徴ベクトルの集合である特徴ベクトル系列を取得する特徴ベクトル系列取得部と、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、格納されている各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得する特徴ベクトル部分系列取得部と、格納されている教師データを読み出し、当該教師データを用いて、前記特徴ベクトル部分系列取得部が取得した特徴ベクトル部分系列が評定対象の音素である事後確率を算出し、当該事後確率から音声の評定値を算出する評定値算出部と、前記評定値算出部が算出した評定値を出力する出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、コンピュータを格納されている評定対象音素系列に沿った音響モデルを読み出し、当該音響モデルと、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列であり、前記音響モデルに対応する特徴ベクトル系列とを比較し、フレーム毎の最適状態の集合である最適状態系列を取得する最適状態系列取得部と、前記最適状態系列取得部が取得した最適状態系列の中で、同一の音素が連続する1以上の最適音素系列を識別し、当該1以上の最適音素系列の組である最適音素部分系列を1組以上取得する最適音素部分系列取得部として、さらに機能させ、前記特徴ベクトル部分系列取得部は、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、前記最適音素部分系列取得部が取得した各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得するように機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記評定値算出部が、音素区間音声データが評定対象の正解となる音素である事後確率を算出し、当該事後確率から音素の評定値を算出するように機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、評定値算出部は、前記事後確率を、バックワードアルゴリズムを用いずにフォワードアルゴリズムにより取得するように機能させるためのプログラム、であることは好適である。
(実施の形態4)
本実施の形態において、音素ごとに求めたPAPPS評定値をその評定対象音素の時間長(フレーム数)で正規化するアルゴリズムにより、文章や単語の発音評定を行う発音評定装置について説明する。本アルゴリズムを、実施の形態3におけるPAPPSに修飾子をつけてPAPPS-FN(Frame Normalized Phonemic A Posteriori Probability based pronunciation Scoring/フレーム正規化した音韻の事後確率に基づく発音評定)と呼ぶこととする。
PAPPS-FNアルゴリズムにおいて音素の評定値を得ることは、実施の形態3のPAPPSアルゴリズムと全く同様である。
図8は、本実施の形態における発音評定装置のブロック図である。本発音評定装置は、入力受付部101、教師データ格納部102、評定対象音素系列格納部103、音声受付部104、フレーム音声データ取得部105、特徴ベクトル系列取得部106、最適状態系列取得部107、最適音素部分系列取得部108、特徴ベクトル部分系列取得部109、評定値算出部810、出力部111、最適音素代表系列取得部601、音素時間情報取得部801を具備する。
音素時間情報取得部801は、各最適音素部分系列の時間に関する情報である音素時間情報を取得する。音素時間情報は、例えば、単語や文章などを構成する音素のフレーム数や、時間(通常、フレーム数から算出される)である。音素時間情報は、具体的には、最適音素部分系列または特徴ベクトル部分系列の各部分系列を構成する要素数である。音素時間情報取得部801は、通常、MPUやメモリ等から実現され得る。音素時間情報取得部801の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
評定値算出部810は、例えば、先に示した数式5、数式6により、最適音素代表系列取得部が取得した代表音素「Pn」ごとに、その音素に対応する特徴ベクトル部分系列取得部が取得した特徴ベクトル部分系列「O(n)」と、教師データ格納部から全ての音響モデルを読み出し、全ての音響モデルの全状態において、その状態「j」が属する音響モデルパラメータ「λP(j)」が与えられたという条件のもと、特徴ベクトル系列「O(n)」が観測され、かつそのベクトル系列の最終時刻(フレーム)「T(n)」における状態が「j」である確率を取得し、その取得した状態ごとの確率値から、全ての音素について音響モデルパラメータ「λP(j)」が与えられたという条件のもと、特徴ベクトル系列「O(n)」が観測される確率を取得し、その取得した音素ごとの確率値から、特徴ベクトル系列「O(n)」が与えられたときに、そのベクトル系列が代表音素「Pn」である事後確率を取得し、当該1以上取得した事後確率と、各音素に対応する音素時間情報をパラメータとして、例えば、以下の数式7により、音声の評定値(PAPPS−FN(P))を算出する。
評定値算出部810は、上述した数式5、6により、音素の評定値を得る。次に、評定値算出部810は、文章や単語ごとの評定値を、以下の数式7により算出する。数式7は、「音素時間長を重みとした音素評定値の加重平均」を意味する。なお、数式7において、「p」は文章や単語を構成する音素系列である。また、「P
n」は音素である。数式7では、評定対象となる全音声データを1つの文章や、1つの単語であると仮定して、評定対象音素系列の全音素を用いて、評定値を算出する。音声データから複数の文章や複数の単語の評定値を算出する場合は、その文章や単語を構成する音素系列ごとに算出式を適用することにより、複数の文章や複数の単語の評定値を得ることができる。
数式7において、「s」は、最適音素部分系列の個数(音素の個数)である。また、「T(n)」は、「n」番目部分系列の系列長である。
評定値算出部810は、通常、MPUやメモリ等から実現され得る。評定値算出部810の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、発音評定装置の動作について図9のフローチャートを用いて説明する。図9のフローチャートの先頭のステップ(ステップS901)は、図7のフローチャートのステップS709に後続する。つまり、図9のフローチャートは、図7の全ステップを含む。
(ステップS901)評定値算出部810は、カウンタnに1を代入する。
(ステップS902)評定値算出部810は、n番目の代表音素、および最適音素部分系列が存在するか否かを判断する。n番目の代表音素等が存在すればステップS903に行き、n番目の代表音素等が存在しなければステップS908に行く。
(ステップS903)評定値算出部810は、n番目の最適音素部分系列長を取得し、メモリ上に配置する。なお、最適音素部分系列長に代えて、特徴ベクトルの部分系列長でも良い。
(ステップS904)評定値算出部810は、n番目の音素評定値を取得する。
(ステップS905)評定値算出部810は、ステップS904で取得したn番目の音素評定値に、ステップS903で取得したn番目の最適音素部分系列長を乗算し、その値を分子値に加算する。
(ステップS906)評定値算出部810は、n番目の最適音素部分系列長を分母値に加算する。
(ステップS907)評定値算出部810は、カウンタnを1、インクリメントし、ステップS902に戻る。
(ステップS908)評定値算出部810は、「分子値/分母値」により、評定値を算出する。上位処理にリターンする。
以上、本実施の形態によれば、単語や文章などの、ユーザが評定して欲しい評定対象の単位に好適な評価結果を精度高く得ることができる。
なお、本実施の形態によれば、評定値算出部810は、数式7により、評定値を算出した。しかし、評定値算出部810が評定値を算出するアルゴリズムは、数式7によるものとは限らない。評定値算出部810は、取得した1以上の各音素の評定値と、各音素に対応する音素時間情報をパラメータとして音声の評定値を算出すればよい。
さらに、本実施の形態における発音評定装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、音声の入力を受け付ける音声受付部と、前記音声受付部が受け付けた音声を、フレームに区分し、区分されたフレーム毎の音声データであるフレーム音声データを1以上得るフレーム音声データ取得部と、前記1以上のフレーム音声データから、フレーム毎の特徴ベクトルの集合である特徴ベクトル系列を取得する特徴ベクトル系列取得部と、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、格納されている各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得する特徴ベクトル部分系列取得部と、格納されている教師データを読み出し、当該教師データを用いて、前記特徴ベクトル部分系列取得部が取得した特徴ベクトル部分系列が評定対象の音素である事後確率を算出し、当該事後確率から音声の評定値を算出する評定値算出部と、前記評定値算出部が算出した評定値を出力する出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、コンピュータを、格納されている評定対象音素系列に沿った音響モデルを読み出し、当該音響モデルと、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列であり、前記音響モデルに対応する特徴ベクトル系列とを比較し、フレーム毎の最適状態の集合である最適状態系列を取得する最適状態系列取得部と、前記最適状態系列取得部が取得した最適状態系列の中で、同一の音素が連続する1以上の最適音素系列を識別し、当該1以上の最適音素系列の組である最適音素部分系列を1組以上取得する最適音素部分系列取得部として、さらに機能させ、前記特徴ベクトル部分系列取得部は、前記特徴ベクトル系列取得部が取得した特徴ベクトル系列から、前記最適音素部分系列取得部が取得した各最適音素部分系列に対応する1以上の特徴ベクトルの組である特徴ベクトル部分系列を1組以上取得するように機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、コンピュータを、前記評定値算出部を、フレーム毎または音素毎の前記評定値を基にして、文章や単語の評定値を算出するように機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、コンピュータを、各音素の時間に関する情報である音素時間情報を取得する音素時間情報取得部としてさらに機能させ、前記評定値算出部が、音素時間長を重みとした音素の評定値の加重平均を算出し、当該加重平均から文章または単語の評定値を算出するように機能させるためのプログラム、であることは好適である。
以下に、上記の実施の形態にかかる発音評定装置について、実験を行った結果について述べる。なお、下記の実験を行ったのは、PDAPS-PE、PDAPS、PAPPSの3つのアルゴリズムを実装する発音評定装置である。
(実験1)
まず、日本人女性6人、日本人男性5人、英語ネイティブ男性2人に英語の文章および単語を発音してもらい、その音声を音声受付部104が受け付け、各アルゴリズムを実装する発音評定装置が発音評定を行った。そのアルゴリズムは、t-p-DAP(全時間区間の平均値を用いたもの)、t-p-DAP-PM(音素時間区間での中央値を音素数で平均したもの)、PDAPS-PE(全時間区間の平均値を用いたもの)、PDAPS(全時間区間の平均値を用いたもの)、PAPPS(音素評定値の平均値)のアルゴリズムである。そして、発音評定装置は、各アルゴリズムで求めた文章の評定値および単語の評定値の平均値を算出し、出力する。図10は、各アルゴリズムの比較結果を示す表の集合である。なお、t-p-DAPは、特許文献1で説明されている公知のアルゴリズムである。t-p-DAP-PMは、t-p-DAPのアルゴリズムでフレームごとに出力される評定値の音素時間区間での中央値を音素数で平均したものである。なお、「PM」は「Phoneme Median」を意味する。なお、PAPPS-FNアルゴリズムに関しては出力する評定値がPDAPSアルゴリズムを用いた文章・単語の評定値と全く一致するので図10等の比較対照に含めなかった。
図10(a)は、全話者での平均値を示す。図10(b)は、Native話者での平均値を示す。図10(c)は、日本人話者での平均値を示す。図11(a)は、タスク1での平均値を示す。図11(b)は、タスク2での平均値を示す。図10から図13において、「%」で示される値は、比較されるアルゴリズムで算出した評定値の値の割合を示す。
図10、図11から、全てにおいて、t-p-DAP-PM < t-p-DAP < PDAPS-PE < PAPPS < PDAPSとなる結果を得た。なお、タスクとは話者が発音している文章や単語の種類を表す。つまり、タスク1とタスク2は、異なる文章や単語である。
そして、図10、図11の結果の中では特にNative話者での平均値に関する大小関係が重要となる。本来それを教師としているので、Native話者の発音に対して、発音評定装置は満点を出力することが望ましい。しかし現実的には発音評定装置が教師としているモデル話者と、評定対象の話者が異なる場合は、話者性の違いなどで常に満点を出力することは難しい。さらにそのモデル話者の発音を録音した環境(場所やマイク)と評定対象の発音の録音環境との違いによっても常に満点を出力することは難しくなる。ただし同じモデル話者を用いて同じ評定対象音声を評定する場合、その違いはアルゴリズムによるもののみとなり、この場合Native話者の発音に対してはより高得点を出力できるアルゴリズムの方が、より望ましいといえる。このような理由から、特許文献1で説明しているDAP、p-DAPアルゴリズムよりも、今回発明したPDAPS-PE、PDAPS、PAPPS、PAPPS-FNアルゴリズムの方がより良い発音評定アルゴリズムであるといえる。
(実験2)
実験1においては、Native話者に対する評定値の比較結果から、PDAPS-PE、PDAPS、PAPPS、PAPPS-FNアルゴリズムが良好な値を出力することが明らかとなった。しかしその実験では、Native話者の数が2人であることから、十分なデータ量であったとはいえない。そこで続く実験として、英語の文章および単語を発音した英語ネイティブ多数話者の音声データベースを用いて、t-p-DAP、PDAPS-PE、PDAPS、PAPPSアルゴリズムで求めた文章および単語評定値の平均値の比較を行った。なお、この音声データベースは、男女合わせて221人が総発音データ数193427の音声を入力し、音声受付部104がかかる音声データを受け付け、音声データベース(記憶媒体)に蓄積したものである。そして、発音評定装置は、音声データベースの音声データを読み出し、発音評定を行う。かかる実験結果を、図12に示す。
図12によれば、全ての発音の平均評定値で、t-p-DAP < PDAPS-PE < PAPPS < PDAPSとなる結果を得ることができ、PDAPS-PE、PDAPS、PAPPS、PAPPS-FNアルゴリズムが、従来のp-DAPアルゴリズムよりもNative話者に対する評定値では、良好な結果を出力することが確認できた。
また、実験2では、全ての発音データを評定するのに要する処理時間を計測し、t-p-DAP > PDAPS-PE > PDAPS > PAPPSとなる結果を得ることができた。
(実験3)
実験1ならびに実験2で確認してきたことは、正しい発音に対して、より高得点を出力できるかということであった。しかし、それだけでは良好な発音評定アルゴリズムとしての性質を完全に満たすことはできていない。間違った発音に対しても、例えば、全く言語として理解不能な内容の発音であろうとも、高得点を出力してしまう可能性があるからである。
そこで、実験3において、日本人多数話者が、完全に正しいとはいいきれない英語の文章および単語を発音し、発音評定装置が当該音声を受け付け、発音評定を行った。そして、t-p-DAP、PDAPS-PE、PDAPS、PAPPSアルゴリズムで求めた文章および単語評定値の平均値の比較を行ったものが図13(a)である。
また、図13(b)に、ヒューマンレーティングスコアと発音評定アルゴリズムにより算出するスコアとの相関係数を示す。相関係数を調べることで、人間の感覚との近さを計測し、相関が高いものほどより良好な評定値を出力するアルゴリズムであるということを確認できる。なお、ヒューマンレーティングスコアとは、人手により採点した発音評定値である。
実験3の結果、平均値の関係からは、実験1、2と同じく新たなアルゴリズム(PDAPS-PE、PDAPS、PAPPS)の方が高得点となった。ヒューマンレーティングスコアとの相関係数(図13(b))を見ると、いままで利用してきたp-DAPアルゴリズムよりも新たなアルゴリズムの方が高い相関を示す結果となり、より良い発音評定アルゴリズムであることが確認できた。さらに、相関係数の新たなアルゴリズム間での関係において、平均値の関係とは違う関係を見ることができた。平均値ではPDAPSアルゴリズムが最も高い値を出力していたが、相関係数ではPAPPSアルゴリズムが最も高い値を得ている。このことは、PAPPSアルゴリズムが、間違った(完全に正しくない)発音に対しても、より正確に評定値を算出していることを示し、人間の感覚にも近い評定値を算出できるアルゴリズムであるといえる。
以上の実験結果から、本明細書で説明した発音評定アルゴリズムPDAPS-PE、PDAPS、PAPPS、PAPPS-FNが、公知のp-DAPアルゴリズムよりも優れていることを示した。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、図14は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の発音評定装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図14は、このコンピュータシステム340の概観図であり、図15は、コンピュータシステム340のブロック図である。
図14において、コンピュータシステム340は、FD(Flexible Disk)ドライブ、CD−ROM(Compact Disk Read Only Memory)ドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344と、マイク345とを含む。
図15において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、CPU(Central Processing Unit)3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM(Read−Only Memory)3415と、CPU3413に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM(Random Access Memory)3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の発音評定装置の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の発音評定装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。