以下に、本発明にかかる音声合成装置、音声合成方法および音声合成プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
(実施の形態1)
図1は、本発明の第1の実施形態に係るテキスト音声合成装置の全体構成を示すブロック図である。テキスト音声合成装置10は、テキスト取得部11と、言語処理部12と、韻律処理部13と、音声合成部14と、音声波形出力部15とを備えている。
テキスト取得部11は、外部から音声合成の対象となるテキストデータを取得する。言語処理部12は、テキスト取得部11が取得したテキストデータの形態素解析・構文解析を行う。そして、その結果を韻律処理部13へ送る。
韻律処理部13は、言語解析結果に基づいて、テキストデータのアクセントやイントネーションなどを特定する。すなわち、韻律に関する特性を特定する。韻律処理部13は、特定した韻律に関する特性に基づいて、音声合成の目標となる目標音声の音韻系列(音韻記号列)及び韻律情報を生成する。そして、韻律系列および韻律情報を音声合成部14へ送る。ここで、韻律情報とは、基本周波数、音韻継続時間長、およびパワーなどを示す情報である。
音声合成部14は、音韻系列及び韻律情報から音声波形を生成する。こうして生成された音声波形は音声波形出力部15で出力される。
図2は、図1の音声合成部14の詳細な構成を示すブロック図である。音声合成部14は、音韻系列・韻律情報取得部110と、歪み推定部130と、融合音声素片選択部140と、融合音声素片編集・接続部150と、融合音声素片作成部180と、融合音声素片記憶部160と、融合音声素片音素環境記憶部170とを有している。
音韻系列・韻律情報取得部110は、韻律処理部13から目標音声の音韻系列及び韻律情報を取得する。以下、音韻系列・韻律情報取得部110が取得する音韻系列および韻律情報を、それぞれ入力音韻系列および入力韻律情報と称する。入力音韻系列は、例えば音韻記号の系列である。
一方、融合音声素片記憶部160は、既に作成されている複数の融合音素片を格納している。ここで、融合音声素片とは、同一の音声単位に対する複数の音声素片を融合することにより得られた音声素片である。なお、本実施の形態における音声単位は音素である。なお、音声単位は音素に限定されるものではない。また、融合音声素片記憶部160は、同一の音素に対する複数の音声素片であって、かつ当該音素の韻律が互いに異なる複数の音声素片を格納している。
融合音声素片記憶部160は、合成音声を生成する際に用いる音声の単位(合成単位)で融合音声素片を格納している。
ここで、合成単位とは、音素または音素を分割したものの組み合わせである。例えば、半音素、音素(C、V)、ダイフォン(CV、VC、VV)、トライフォン(CVC、VCV)、音節(CV、V)、などである(Vは母音、Cは子音を表す)。または、これらが混在していてもよい。この場合は、可変長であってもよい。
融合音声素片音素環境記憶部170は、融合音声素片記憶部160に格納されている融合音声素片に対する融合音声素片音素環境を格納している。
ここで、融合音声素片音素環境とは、当該融合音声素片にとっての環境となる要因の組み合わせに対応する情報である。要因としては、例えば、当該融合音声素片の音素名、先行音素、後続音素、後々続音素、基本周波数、音韻継続時間長、パワー、ストレスの有無、アクセント核からの位置、息継ぎからの時間、発声速度、および感情などがある。このように、融合音声素片音素環境は、融合音声素片の韻律を示す融合音声素片韻律情報を含む情報である。
なお、融合音声素片記憶部160に格納される融合音声素片と、融合音声素片音素環境記憶部170に格納される当該融合音声素片に対する融合音声素片音素環境とは対応付けられている。具体的には、例えば、融合音声素片音素環境記憶部170に格納されている前記融合音声素片音素環境は、対応する融合音声素片を識別する融合音声素片番号を対応付けて格納されていてもよい。
ここで、本実施の形態における融合音声素片記憶部160および融合音声素片音素環境記憶部170は、特許請求の範囲に記載の融合音声素片保持手段を構成する。
融合音声素片作成部180は、融合音声素片記憶部160に格納すべき融合音声素片および融合音声素片音素環境記憶部170に格納すべき融合音声素片音素環境を作成する。本実施の形態においては、融合音声素片作成部180は予め融合音声素片および融合音声素片音素環境を作成し、融合音声素片記憶部160および融合音声素片音素環境記憶部170に格納している。
歪み推定部130は、融合音声素片音素環境記憶部170に格納されている融合音声素片音素環境と、歪み推定部130から取得した、所定のセグメントに対する入力韻律情報とに基づいて、当該セグメントと融合音声素片音素環境記憶部170に格納されている融合音声素片音素環境との歪みの度合いを推定する。
ここで、本実施の形態にかかる歪み推定部130は、本発明の保持音声歪み推定手段と、作成音声歪み推定手段を構成する。
融合音声素片選択部140は、歪み推定部130によって推定された歪みの度合いに基づいて、融合音声素片記憶部160から融合音声素片を選択する。
具体的には、まず、歪み推定部130は、所定のセグメントに対する入力韻律情報と融合音声素片音素環境記憶部170に格納されている複数の融合音声素片音素環境それぞれとの歪みの度合いを推定する。そして、融合音声素片選択部140は、各融合音声素片環境に対して得られた歪みの度合いの最小値を特定する。そして、最小値を示す融合音声素片環境に対応する融合音声素片を融合音声素片記憶部160から選択する。これにより、入力音韻系列の音韻記号の系列に対応する融合音声素片の系列を得ることができる。なお、歪みの度合いを推定する方法については後述する。
融合音声素片編集・接続部150は、各セグメントに対して得られた融合音声素片の系列を適宜編集し、接続する。これにより合成音声の音声波形が生成される。こうして生成された音声波形は音声波形出力部15を介して外部に出力される。
図3は、図2において説明した融合音声素片作成部180の詳細な機能構成を示すブロック図である。融合音声素片作成部180は、音声素片記憶部181と、融合音声素片音素環境記憶部182と、音声素片組み合わせ作成部183と、融合音声素片作成部184と、融合音声素片音素環境作成部185とを有している。
音声素片記憶部181は、大量の音声素片を格納している。また、融合音声素片音素環境記憶部182は、音声素片記憶部181に格納されている音声素片にそれぞれに対する音声素片音素環境を格納している。音声素片記憶部181に格納されている音声素片の合成単位は、融合音声素片記憶部160に格納がされている融合音声素片の合成単位と同一である。
音声素片記憶部181に格納される音声素片と、融合音声素片音素環境記憶部182に格納される音声素片音素環境とは対応付けられている。具体的には、例えば、融合音声素片音素環境記憶部182に格納されている音声素片音素環境は、対応する音声素片を識別する音声素片番号を対応付けて格納されていてもよい。
本実施の形態における音声素片記憶部181および融合音声素片音素環境記憶部182は、特許請求の範囲に記載の音声素片保持手段を構成する。
音声素片組み合わせ作成部183は、融合音声素片音素環境記憶部182に格納されている音声素片音素環境に基づいて、音声素片記憶部181に格納されている複数の音声素片の中から、融合すべき複数の音声素片の組み合わせを決定する。
融合音声素片作成部184は、音声素片組み合わせ作成部183によって決定された組み合わせに含まれる音声素片を音声素片記憶部181から抽出する。さらに、抽出した音声素片を融合することにより、融合音声素片を作成する。融合音声素片作成部184は、作成した融合音声素片を融合音声素片記憶部160に格納する。
融合音声素片音素環境作成部185は、音声素片組み合わせ作成部183によって決定された組み合わせに含まれる音声素片の音声素片音素環境を融合音声素片音素環境記憶部182から抽出する。さらに、抽出した音声素片音素環境に基づいて、融合音声素片音素環境を作成する。融合音声素片音素環境作成部185は、作成した融合音声素片音素環境を融合音声素片音素環境記憶部170に格納する。
具体的には、融合音声素片音素環境作成部185は、各音声素片の音声素片音素環境のセントロイドを用いて融合音声素片音素環境を作成する。
他の例としては、音声素片組み合わせ作成部183によって決定された組み合わせに含まれる複数の音声素片それぞれの音声素片音素環境を、融合音声素片音素環境として作成してもよい。
ここで、本実施の形態にかかる融合音声素片作成部184は、特許請求の範囲に記載の音声素片選択手段と、融合音声素片作成手段とを構成する。また、本実施の形態にかかる融合音声素片音素環境作成部185は、特許請求の範囲に記載の音声素片選択手段と融合音声素片韻律情報作成手段とを構成する。
図4は、図3に示した音声素片組み合わせ作成部183の詳細な機能構成を示すブロック図である。音声素片組み合わせ作成部183は、音声素片組み合わせ頻度情報記憶部1835と、音韻系列・韻律情報取得部1831と、音声素片選択部1832と、音声素片組み合わせ頻度情報作成部1833と、音声素片組合せ決定部1834とを有している。
音韻系列・韻律情報取得部1831は、文章データを解析して得られる音韻系列を合成単位で区切ることにより得られる複数のセグメントのそれぞれに対する音韻および入力韻律情報を取得する。なお、入力韻律情報等は、図1において説明した韻律処理部13から取得する。
複数音声素片選択部1832は、入力韻律情報と、融合音声素片音素環境記憶部182に格納されている融合音声素片音素環境との間の歪みの度合いを推定する。そして、歪みの度合いに基づいて、音声素片記憶部181に格納されている音声素片の中から複数の音声素片を選択する。選択方法は、融合音声素片選択部140における選択方法と同じ方法であってもよい。
音声素片組み合わせ頻度情報作成部1833は、複数音声素片選択部1832において選択された複数の音声素片の組み合わせの使用頻度をカウントする。そして、カウントした使用頻度を音声素片組み合わせ頻度情報記憶部1835に格納する。
音声素片組合せ決定部1834は、前記音声素片組み合わせ頻度情報記憶部1835に格納された頻度情報に基づいて、複数の音声素片の組み合わせを決定する。音声素片組合せ決定部1834は、例えば、選択した複数の音声素片の使用頻度が、予め定めた閾値以上となるように、複数の音声素片を選択してもよい。
また、他の例としては、複数の組み合わせのうち、使用頻度の高い融合音声素片に対応する組み合わせを選択してもよい。例えば、融合音声素片記憶部160に格納すべき融合音声素片の数を制限している場合等に有効である。
このように、融合音声素片を作成するために選択する音声素片の組み合わせの選択方法は、本実施の形態に限定されるものではなく、予め定められた条件に基づいて選択すればよい。
以下、音声合成部14の各処理について詳しく説明する。ここでは、合成単位の音声素片は音素であるとする。
図5は、融合音声素片記憶部160のデータ構成を模式的に示している。また、図6は、融合音声素片音素環境記憶部170のデータ構成を模式的に示している。
融合音声素片記憶部160は、図5に示すように、各音素の音声信号をピッチ波形として格納している。さらに各音声信号を当該音素を識別するための融合音声素片番号に対応付けて格納している。
ここで、ピッチ波形とは、その長さが音声の基本周期の数倍程度までで、それ自身は基本周期を持たない比較的短い波形であって、そのスペクトルが音声信号のスペクトル包絡を表すものを意味する。
また、融合音声素片音素環境記憶部170は、図6に示すように、融合音声素片記憶部160に記憶されている各融合音声素片の音素環境情報を、当該音素の素片番号に対応付けて格納している。本実施の形態にかかる融合音声素片音素環境記憶部170は、音素環境として、音素記号(音素名)、基本周波数、音韻継続長、接続境界ケプストラムを格納している。
なお、本実施の形態においては、融合音声素片は音素単位であるが、他の例としては、半音素、ダイフォン、トライフォン、音節であってもよい。また、これらの組み合わせであってもよい。
次に、図2において説明した歪み推定部130の処理について詳述する。歪み推定部130は、コスト関数により算出されたコストに基づいて歪みの度合いを推定する。そして、融合音声素片選択部140は歪み推定部130によって推定されたコストに基づいて融合音声素片を選択する。
ここで、コスト関数とは、テキストデータに含まれる全セグメントに対する歪みの度合いによって定まる関数である。
以下、コスト関数について詳述する。融合音声素片を変形・接続して合成音声を生成する際に生ずる歪の要因ごとにサブコスト関数を定める。ここで、サブコスト関数とは、融合音声素片記憶部160に記憶されている融合音声素片を用いて合成音声を生成したときに生ずる当該合成音声の目標音声に対する歪みの度合いを推定するためのコストを算出するための関数である。
サブコスト関数をCn(ui、ui−1、ti)(n:1、…、N、Nはサブコスト関数の数)と定める。ここで、tiは、入力音韻系列および入力韻律情報に対応する目標とする音声(目標音声)をt=(t1、…、tI)としたときのi番目のセグメントに対応する部分の音声素片の目標とする音素環境情報を表し、uiは融合音声素片記憶部160に記憶されている融合音声素片のうち、tiと同じ音韻の融合音声素片を表す。
具体的には、当該コストを算出する際に、目標コストと接続コストの2種類のサブコストを用いる。ここで、目標コストとは、融合音声素片を使用することによって生じる合成音声の目標音声に対する歪みの度合いを推定するためのコストである。また、接続コストとは、融合音声素片を他の音声素片と接続したときに生じる当該合成音声の目標音声に対する歪みの度合いを推定するためのコストである。
さらに、目標コストとして、基本周波数コストおよび音韻継続時間長コストを用いる。ここで、基本周波数コストとは、融合音声素片記憶部160に記憶されている融合音声素片の基本周波数と目標の基本周波数との違い(差)を表すコストである。また、音韻継続時間長コストとは、融合音声素片の音韻継続時間長と目標の音韻継続時間長との違い(差)を表すコストである。接続コストとしては、接続境界でのスペクトルの違い(差)を表すスペクトル接続コストを用いる。
具体的には、基本周波数コストは、次式によって定義される。
ここで、viは融合音声素片記憶部160に記憶されている音声素片uiの音素環境を、fは音素環境viから基本周波数を取り出す関数を表す。また、音韻継続時間長コストは、次式によって定義される。
ここで、gは音素環境viから音韻継続時間長を取り出す関数を表す。スペクトル接続コストは、2つの音声素片間のケプストラム距離によって算出される。
なお、2つの音声素片間のケプストラム距離は次式によって定義される。
ここで、hは融合音声素片uiの接続境界のケプストラム係数をベクトルとして取り出す関数を表す。
これらのサブコスト関数の重み付き和を合成単位コスト関数と定義する。合成単位コスト関数は次式によって定義される。
ここで、wnはサブコスト関数の重みを表す。本実施形態では、簡単のため、wnはすべて「1」とする。上記式(4)は、ある合成単位に、ある融合音声素片を当てはめた場合の当該融合音声素片の合成単位コストである。
入力音韻系列を合成単位で区切ることにより得られる複数のセグメントのそれぞれに対し、上記式(4)から合成単位コストを算出した結果を、全セグメントについて足し合わせたものをコストと呼び、当該コストを算出するためのコスト関数を次式(5)に示すように定義する。
融合音声素片選択部140は、(5)に示したコスト関数を使って1セグメントあたり(すなわち、1合成単位あたり)の融合音声素片を選択する。選択の際は、融合音声素片記憶部160に記憶されている融合音声素片群の中から、上記式(5)で算出されるコストの値が最小の融合音声素片の系列を求める。このコストが最小となる融合音声素片の組合せを最適素片系列と呼ぶこととする。すなわち、最適素片系列中の各融合音声素片は、入力音韻系列を合成単位で区切ることにより得られる複数のセグメントのそれぞれに対応し、最適素片系列中の各融合音声素片から算出された上記合成単位コストと式(5)より算出されたコストの値は、他のどの融合音声素片系列よりも小さい値である。
なお、最適素片系列の探索には、動的計画法(DP:dynamic programming)を用いてもよい。これにより、探索処理の更なる効率化を図ることができる。
次に、図7を参照しつつ、図2において説明した融合音声素片編集・接続部150の処理について詳述する。融合音声素片編集・接続部150は、融合音声素片選択部140で選択された最適素片系列の融合音声素片を、入力韻律情報に従って変形する。そして、変形後の融合音声素片を接続して合成音声の音声波形を生成する。
融合音声素片記憶部160は、融合音声素片はピッチ波形の形で格納されている。そこで、当該融合音声素片の基本周波数、音韻継続時間長のそれぞれが、入力韻律情報に示されている目標音声の基本周波数、目標音声の音韻継続時間長になるようにピッチ波形を重畳して音声波形を生成する。
図7を参照しつつ、音素「m」、「a」、「d」、「o」の各合成単位について選択された融合音声素片を変形・接続して、「まど」という音声波形を生成する場合の処理について具体的に説明する。
図7に示すように、入力韻律情報に示されている目標の基本周波数、目標の音韻継続時間長に応じて、セグメント(合成単位)毎に、融合された音声素片中の各ピッチ波形の基本周波数の変更(音の高さの変更)、ピッチ波形の数の増減(時間長の伸縮)を行う。その後に、セグメント内、セグメント間で、隣り合うピッチ波形を接続して合成音声を生成する。
なお、本実施の形態にかかる歪み推定部130は、コスト関数による演算結果を歪みの度合いとして利用したが、歪みの度合いを評価する値はこれに限定されるものではない。
次に、融合音声素片作成部180の処理について説明する。音声素片記憶部181および、融合音声素片音素環境記憶部182には、音声データベースを分析して得られる音声素片および、その音素環境情報が保存されている。音声素片記憶部181には、大量の音声素片が蓄積されており、それらの音声素片の音素環境の情報(音素環境情報)が融合音声素片音素環境記憶部182に蓄積されている。音声素片記憶部181には、合成音声を生成する際に用いる音声の単位(合成単位)の音声素片が記憶されている。音声素片の合成単位は融合音声素片と同じ単位であり、音素環境情報の種類も融合音声素片と同じものであるとする。
図8は音声素片記憶部181のデータ構成を模式的に示している。音声素片記憶部181は、各音素の音声信号の波形と当該音素を識別するための素片番号とを対応付けて格納している。また、図9は融合音声素片音素環境記憶部182のデータ構成を模式的に示している。融合音声素片音素環境記憶部182には、融合音声素片音素環境記憶部170と同様に、音声素片記憶部181に記憶されている各音声素片の音素環境情報と当該音素の素片番号とを対応付けて格納している。
音声素片記憶部181に記憶されている各音声素片は、別途収集された多数の音声データに対して音素毎にラベリングを行い、音素毎に音声波形を切り出したものを、音声素片として蓄積したものである。
例えば、図10には、音声データ101に対し、音素毎にラベリングを行った結果を示している。図10には、ラベリングの境界102により区切られた各音素の音声データ(音声波形)について、音素記号を示している。なお、この音声データから、各音素についての音素環境の情報(例えば、音韻(この場合、音素名(音素記号))、基本周波数、音韻継続時間長など)を併せて抽出する。
以上の処理により音声データ101から求めた各音声波形と、当該音声波形に対応する音素環境の情報に、同じ素片番号が付与される。そして、図8および図9に示すように、音声素片記憶部181と融合音声素片音素環境記憶部182にそれぞれ格納される。ここでは、音素環境情報には、音声素片の音韻とその基本周波数及び音韻継続時間長を含むものとする。
なお、ここでは、音声素片が音素単位に抽出する場合をしめしているが、音声素片が半音素、ダイフォン、トライフォン、音節、あるいはこれらの組み合わせや可変長であっても上記同様である。
融合音声素片作成部184は、後述する音声素片組み合わせ作成部183によって作成された組み合わせに含まれる複数の音声素片を音声素片記憶部181から取得する。そして、取得した複数の音声素片を融合して融合音声素片を作成する。なお、融合音声素片作成部184は、対象となる音声素片が有声音である場合と無声音である場合とで別の処理を行う。
まず、有声音の場合について説明する。有声音の場合には、音声素片からピッチ波形を取り出し、ピッチ波形のレベルで融合し、新たなピッチ波形を作りだす。ピッチ波形の抽出方法としては、単に基本周期同期窓で切り出す方法、ケプストラム分析やPSE分析によって得られたパワースペクトル包絡を逆離散フーリエ変換する方法、線形予測分析によって得られたフィルタのインパルス応答によってピッチ波形を求める方法、閉ループ学習法によって合成音声のレベルで自然音声に対する歪が小さくなるようなピッチ波形を求める方法など様々なものがある。
本実施の形態においては、基本周期同期窓で切り出す方法を用いてピッチ波形を抽出する。図11を参照しつつ、音声素片組み合わせ作成部183で決められたM個の音声素片を融合して1つの新たな音声素片を生成する場合の処理手順を説明する。
ステップS111において、M個の音声素片のそれぞれの音声波形に、その周期間隔毎にマーク(ピッチマーク)を付与する。図12−1には、M個の音声素片のうちの1つの音声素片の音声波形121に対し、その周期間隔毎にピッチマーク122が付けられている場合を示している。
ステップS112では、図12−2に示すように、ピッチマークを基準として窓掛けを行ってピッチ波形を切り出す。窓にはハニング窓123を用い、その窓長は基本周期の2倍とする。そして、図12−3に示すように、窓掛けされた波形124をピッチ波形として切り出す。
M個の音声素片のそれぞれについて、図12−1から図12−3に示す処理(ステップS112の処理)を施す。その結果、M個の音声素片のそれぞれについて、複数個のピッチ波形からなるピッチ波形の系列が求まる。
次にステップS113に進み、当該セグメントのM個の音声素片のそれぞれのピッチ波形の系列のなかで、最もピッチ波形の数が多いものに合わせて、M個全てのピッチ波形の系列中のピッチ波形の数が同じになるように、(ピッチ波形の数が少ないピッチ波形の系列については)ピッチ波形を複製して、ピッチ波形の数を合わせる。
図13は、当該セグメントのM個(例えば、ここでは、3個)の音声素片d1〜d3のそれぞれから、ステップS112で切り出されたピッチ波形の系列e1〜e3を示している。ピッチ波形の系列e1中のピッチ波形の数は7個、ピッチ波形の系列e2中のピッチ波形の数は5個、ピッチ波形の系列e3中のピッチ波形の数は6個である。すなわち、ピッチ波形の系列e1〜e3のうち最もピッチ波形の数が多いものは、系列e1である。
従って、この系列e1中のピッチ波形の数(例えば、ここでは、ピッチ波形の数は、7個)に合わせる。他の系列e2、e3については、それぞれ、当該系列中のピッチ波形のいずれかをコピーして、ピッチ波形の数を7個にする。その結果得られた、系列e2、e3のそれぞれに対応する新たなピッチ波形の系列がe2´、e3´である。
次に、ステップS114に進む。このステップでは、ピッチ波形ごとに処理を行う。ステップS114では、当該セグメントのM個のそれぞれの音声素片に対応するピッチ波形をその位置ごとに平均化し、新たなピッチ波形の系列を生成する。この生成された新たなピッチ波形の系列を融合された音声素片とする。
図14は、当該セグメントのM個(例えば、ここでは、3個)の音声素片d1〜d3のそれぞれからステップS113で求めたピッチ波形の系列e1、e2´、e3´を示している。各系列中には、7個のピッチ波形があるので、ステップS114では、1番目から7番目のピッチ波形をそれぞれ3つの音声素片で平均化し、7個の新たなピッチ波形からなる新たなピッチ波形の系列f1を生成している。すなわち、例えば、系列e1の1番目とピッチ波形と、系列e2´の1番目のピッチ波形と、系列e3´の1番目のピッチ波形のセントロイドを求めて、それを新たなピッチ波形の系列f1の1番目のピッチ波形とする。新たなピッチ波形の系列f1の2番目〜7番目のピッチ波形についても同様である。ピッチ波形の系列f1が、上記「融合音声素片」である。
一方、融合音声素片作成部184の処理において、無声音のセグメントの場合には、素片選択ステップS111で当該セグメントのM個の音声素片のうち、当該M個の音声素片から音声素片を一つ選択し、選択した音声素片の音声波形をそのまま使用する。すなわち、選択した音声素片の音声波形を融合音声素片記憶部160に蓄積する。なお、便宜的にこれも融合音声素片と呼ぶ。組み合わせに順位がつけられている場合は、1位の素片を選択することにより音声素片を決める。
融合音声素片音素環境作成部185は、上記組み合わせの音素環境に基づいて、融合音声素片の音素環境を作成する。融合音声素片の音素環境は、各音素環境のセントロイドとして求める。この場合、融合音声素片の基本周波数fは、各音声素片の基本周波数をfm(1≦m≦M)とすると、次式によって定義される。
融合音声素片の継続時間長Tは、各音声素片の継続時間長をTm(1≦m≦M)とすると、次式によって定義される。
融合音声素片の接続境界のケプストラムcは、各音声素片の接続境界のケプストラムをcm(1≦m≦M)とすると、次式によって定義される。
これらの処理により、融合音声素片およびその音素環境を作成する。そして、融合音声素片記憶部160および融合音声素片音素環境記憶部170に格納する。
次に、音声素片組み合わせ作成部183の処理について詳述する。音声素片組み合わせ作成部183は、融合音声素片作成部184において融合すべき音声素片の組み合わせを作成する。本実施形態では、融合音声素片選択部140の処理において前述したコスト関数に基づいて複数の音声素片を選択する。さらには、使用頻度に基づいて、融合する複数の音声素片の組み合わせを決定する。
前述したコスト関数は融合音声素片の音素環境情報に基づいてコストを計算しているが、ここでは音声素片に対応する音素環境情報に基づいて計算する。まず、各音声素片の組み合わせの使用頻度を求めるための文章データを用意する。それぞれの文章データを図1のテキスト取得部11、言語処理部12、韻律処理部13により処理し、音韻系列と、韻律情報とを求める。音韻系列を合成単位で区切ることにより得られる各セグメントのそれぞれに対し、前記韻律情報と、融合音声素片音素環境記憶部182に含まれる音素環境情報との間のコストに基づいて1セグメントあたり(すなわち、1合成単位あたり)複数の音声素片を選択する。
図15は、このときの処理を説明するためのフローチャートである。まず、ステップS151において最適な音声素片のパスを、融合音声素片の最適パス計算と同様に、コスト関数および、動的計画法を利用して求める。
次に、ステップS152に進み、最適素片系列を用いて、1セグメントあたり複数の音声素片を選ぶ。ここでは、セグメントの数をJ個とし、セグメントあたりM個の音声素片を選ぶこととして説明する。ステップS152の詳細を説明する。
ステップS153およびS154では、J個のセグメントのうちの1つを注目セグメントとする。ステップS153およびS154はJ回繰り返され、J個のセグメントが1回ずつ注目セグメントとなるように処理を行う。まず、ステップS153では、注目セグメント以外のセグメントには、それぞれ最適素片系列の音声素片を固定する。この状態で、注目セグメントに対して音声素片記憶部181に記憶されている音声素片を式(5)のコストの値に応じて順位付けし、上位M個を選択する。
例えば、図16に示すように、入力音韻系列が「ts・i・i・s・a・…」であるとする。この場合、合成単位は、音素「ts」、「i」、「i」、「s」、「a」、…のそれぞれに対応し、これら音素のそれぞれが1つのセグメントに対応する。図16では、入力された音韻系列中の3番目の音素「i」に対応するセグメントを注目セグメントとし、この注目セグメントについて、複数の音声素片を求める場合を示している。この3番目の音素「i」に対応するセグメント以外のセグメントに対しては、最適素片系列中の音声素片161a、161b、161d、161e…を固定する。
この状態で、音声素片記憶部181に記憶されている音声素片のうち、注目セグメントの音素「i」と同じ音素名(音素記号)をもつ音声素片のそれぞれについて、式(5)を用いてコストを算出する。ただし、それぞれの音声素片に対してコストを求める際に、値が変わるのは、注目セグメントの目標コスト、注目セグメントとその一つ前のセグメントとの接続コスト、注目セグメントとその一つ後のセグメントとの接続コストであるので、これらのコストのみを考慮すればよい。
(手順1) 音声素片記憶部181に記憶されている音声素片のうち、注目セグメントの音素「i」と同じ音素名(音素記号)をもつ音声素片のうちの1つを音声素片u3とする。音声素片u3の基本周波数f(v3)と、目標の基本周波数f(t3)とから、式(1)を用いて、基本周波数コストを算出する。
(手順2) 音声素片u3の音韻継続時間長g(v3)と、目標の音韻継続時間長g(t3)とから、式(2)を用いて、音韻継続時間長コストを算出する。
(手順3) 音声素片u3のケプストラム係数h(u3)と、音声素片161b(u2)のケプストラム係数h(u2)とから、式(3)を用いて、第1のスペクトル接続コストを算出する。また、音声素片u3のケプストラム係数h(u3)と、音声素片161d(u4)のケプストラム係数h(u4)とから、式(3)を用いて、第2のスペクトル接続コストを算出する。
(手順4) 上記(手順1)〜(手順3)で各サブコスト関数を用いて算出された基本周波数コストと音韻継続時間長コストと第1及び第2のスペクトル接続コストの重み付け和を算出して、音声素片u3のコストを算出する。
(手順5) 音声素片記憶部181に記憶されている音声素片のうち、注目セグメントの音素「i」と同じ音素名(音素記号)をもつ各音声素片について、上記(手順1)〜(手順4)に従って、コストを算出したら、その値の最も小さい音声素片ほど高い順位となるように順位付けを行う(図15のステップS153)。そして、上位M個の音声素片を選択する(図15のステップS154)。例えば、図16では、音声素片162aが最も順位が高く、音声素片162dが最も順位が低い。
以上の(手順1)〜(手順5)をそれぞれのセグメントに対して行う。その結果、それぞれのセグメントについて、M個ずつの音声素片が得られる。
すべての入力文章の各セグメントに対して、上記手順により、M個の音声素片を選択し、選択されたM個の音声素片の素片番号を、音声素片組み合わせ頻度情報作成部1833に渡す。音声素片組み合わせ頻度情報作成部1833では、素片番号の組み合わせの頻度情報を、複数音声素片組み合わせ頻度情報記憶部1835に蓄積する。
図17は、複数音声素片組み合わせ頻度情報記憶部1835に格納されている複数音声素片組み合わせ頻度情報の例を示す。複数音声素片組み合わせ情報は、組み合わせの番号、音韻(音素名)、1位からM位までの音声素片の素片番号とともに、その出現度数が保持されている。入力されたM個の音声素片の素片番号が、複数音声素片組み合わせ頻度情報に存在する場合はその組み合わせに対応する出現度数に1を加え、存在しない場合はその組み合わせを追加して、出現度数を1とする。これをすべてのセグメントの組み合わせに対して行うことにより、入力文章に対する出現頻度情報が作成される。
次に、音声素片組合せ決定部1834において、実際に融合する音声素片の組み合わせを決定する。組み合わせの決め方は、いくつか考えられるが、予め出現度数の閾値を決めて、複数の音声素片の組み合わせの出現度数がその閾値より大きい素片を利用する方法、音素毎の素片数の上限を定め、出現頻度順に素片を選択する方法、全体の融合音声素片群のサイズを決め、そのサイズを超えない範囲で出現頻度順に選ぶ方法などが挙げられる。
図17の頻度情報において、出現頻度の閾値を30とした場合は、0番の/a/と、2番の/i/は融合音声素片を作成するが、1番の/a/は作成しないことになる。
ここで、第1の実施形態に係る音声合成手法と、従来の音声合成手法との違いについて説明する。COCに基づく方法、HMMに基づく方法では、融合された音韻パラメータを保持し、合成時は融合された音韻パラメータに基づいて合成しているものの、選択する際に決定木を用いている。このため韻律情報の歪みの度合いに基づいて選択を行う本実施形態とは異なる選択手法となっている。
本実施形態の手法は決定木の形でクラスタリングする手法と比べ、合成時の自由度が高く、大量の融合音声素片から容易に融合音声素片を選択することができるため、スケーラブルな合成器にしやすい点、すなわち融合音声素片記憶部160のサイズを大きくするにしたがって、高音質な合成音声が得られる点などの利点を持つ。
従来の素片選択型音声合成では、合成単位あたり、一つの音声素片を選択して、接続することで合成を行うが、本実施形態では選択される音声素片が音声波形そのものではなく、融合された音声素片となっている。融合された音声素片を用いることで、安定で高品質な音声素片となり、より自然で高品質な合成音声を生成することができる。また、合成単位あたりの融合音声素片は、事前に作成されているため、合成時の処理量は、素片選択型の音声合成方式に近く、高速に音声合成ができる。
図18は、実施例1に係るテキスト音声合成装置10のハードウェア構成を示す図である。テキスト音声合成装置10は、ハードウェア構成として、テキスト音声合成装置10における音声合成処理を実行する音声合成プログラムなどが格納されているROM52と、ROM52内のプログラムに従ってテキスト音声合成装置10の各部を制御し、バッファリング時間変更処理等を実行するCPU51と、ワークエリアが形成され、テキスト音声合成装置10の制御に必要な種々のデータを記憶するRAM53と、ネットワークに接続して通信を行う通信I/F57と、各部を接続するバス62とを備えている。
先に述べたテキスト音声合成装置10における音声合成プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フロッピー(R)ディスク(FD)、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。
この場合には、音声合成プログラムは、テキスト音声合成装置10において上記記録媒体から読み出して実行することにより主記憶装置上にロードされ、上記ソフトウェア構成で説明した各部が主記憶装置上に生成されるようになっている。
また、本実施例の音声合成プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
(実施の形態2)
次に、実施の形態2にかかるテキスト音声合成装置10について説明する。図19は、実施の形態2にかかるテキスト音声合成装置10の音声合成部14の詳細な機能構成を示すブロック図である。
実施の形態2にかかる音声合成部14は、融合音声素片音素環境記憶部170を有さない。また、実施の形態2にかかる音声合成部14は、融合音声素片組み合わせ記憶部200を有する。
融合音声素片組み合わせ記憶部200は、融合音声素片記憶部160に格納されている融合音声素片に含まれる音声素片の組み合わせを各融合音声素片に対応付けて格納している。
図20は、融合音声素片組み合わせ記憶部200のデータ構成を模式的に示している。融合音声素片組み合わせ記憶部200は、音韻名、音声素片の組み合わせそれぞれの順位および番号、および融合音声素片番号を対応付けて格納している。
実施の形態2においては、音韻系列・韻律情報取得部110は、韻律処理部13から取得した入力韻律系列および入力韻律情報を融合音声素片作成部180に送る。融合音声素片作成部180は、取得した入力韻律系列および入力韻律情報に基づいて複数の音声素片の組み合わせを選択する。そして、歪み推定部130は、融合音声素片作成部180によって選択された音声素片の組み合わせと、音韻系列・韻律情報取得部110から取得した入力韻律情報との間の歪みの度合いを推定する。
融合音声素片選択部140は、歪み推定部130が推定した歪みの度合いが最少となる組み合わせを選択する。そして、選択した組み合わせが融合音声素片組み合わせ記憶部200に格納されているか否かを判断する。融合音声素片組み合わせ記憶部200に格納されている場合には、融合音声素片記憶部160から当該組み合わせに対応する融合音声素片を抽出する。一方、選択した組み合わせが融合音声素片組み合わせ記憶部200に格納されていない場合には、融合音声素片作成部180に対して、当該組み合わせに対する融合音声素片を作成するよう指示する。
図21は、実施の形態2にかかる融合音声素片作成部180の詳細な機能構成を示すブロック図である。実施の形態2に係る融合音声素片作成部180は、融合音声素片音素環境作成部185を有さない。そして、融合音声素片作成部180は、融合音声素片音素環境を作成しない。
また、音声素片組み合わせ作成部183は、音韻系列・韻律情報取得部110から取得した入力韻律情報等に基づいて、音声素片の組み合わせを作成する。音声素片組み合わせ作成部183は、実施の形態1において図15を参照しつつ説明した処理によって複数の音声素片を選択する。音声素片組み合わせ作成部183は、作成した音声素片の組み合わせを示す組み合わせ情報を融合音声素片組み合わせ記憶部200に格納する。融合音声素片作成部184は、融合音声素片選択部140からの指示により、指示された複数の音声素片から融合音声素片を作成する。
図22は、実施の形態2にかかる融合音声素片選択部140が融合音声素片を選択する処理を示すフローチャートである。
まず、ステップS212において、歪み推定部130が推定した歪みの度合いに基づいて、融合音声素片とすべき音声素片の組み合わせを決定する。次に、ステップS212で決定した組み合わせが融合音声素片組み合わせ記憶部200に格納されているか否かを判定する。
本実施の形態においては、ステップS212で決定した音声素片の組み合わせの1位からM位までの音声素片番号が、融合音声素片と一致する場合に、融合音声素片が融合音声素片記憶部160に保持されていると判定する。一方、一致しない場合には融合音声素片記憶部160に保持されていないと判定する。ステップS212で決定した組み合わせの融合音声素片が融合音声素片記憶部160に保持されていると判定した場合、ステップS213に進む。
ステップS213では、融合音声素片組み合わせ記憶部200を参照し、組み合わせに対応する融合音声素片番号を取得する。そして、取得した融合音声素片番号に基づいて、融合音声素片記憶部160から対応する融合音声素片を取得する。
ステップS212において、融合音声素片が融合音声素片記憶部160に存在しないと判定された場合は、ステップS214において、融合音声素片作成部180に対して、ステップS211において決定した複数の音声素片の組み合わせから融合音声素片を作成する旨の指示を送る。ステップ215では、ステップS214において融合音声素片作成部180に送った指示に対する応答として、融合音声素片作成部180から対応する融合音声素片を取得する。
このように、本実施の形態にかかるテキスト音声合成装置10は、融合音声記憶部160に適切な融合音声素片が保持されていない場合には、新たに融合音声素片を作成し、当該融合音声素片を利用して音声合成を行うので、より高音質な合成音声を効率的に生成することができる。
図23は、融合音声素片系列の例を示している。図23は「ts、i、i、s、a」の各音素に対して、融合音声素片記憶部160から抽出された融合音声素片と融合音声素片作成部180によって新たに作成された融合音声素片とのいずれを用いるかを示している。
ts、i、i、s、a、それぞれに対応する融合音声素片を221a、221b、221c、221d、221eとしている。ここでは、221bおよび221dは融合音声素片記憶部160に存在せず、221a、221c、221eは融合音声素片記憶部160に存在するとする。
この場合、3つの素片は、予め作成されている。一方、残りの2つの素片は素片の融合処理を合成時に必要とする。したがって、すべての素片を合成時に融合する場合に比べ融合処理の回数を2/5に削減することができる。
素片の融合処理は演算量の多い処理であるため、合成時の処理が高速化される。また、音声素片がハードディスクドライブに蓄積されている場合は、それぞれの音声素片のシーク時間を削減することができる。
すなわち、合成時に融合する場合は、それぞれ融合音声素片数であるM回のシーク時間がかかるのに対し、あらかじめ融合してある場合は1回のシーク時間でM個の素片を融合した融合音声素片を取得することができる。
このように、第2の実施形態では、合成に用いる融合音声素片の一部をあらかじめ融合しておくことにより、すべて合成時に融合する場合と同等の合成音声が得られ、かつ高速に音声を合成することができる。
なお、実施の形態2にかかるテキスト音声合成装置10のこれ以外の構成および処理は、実施の形態1にかかるテキスト音声合成装置10の構成および処理と同様である。
第2の実施形態の判定ステップS212においては、S211において入力された各セグメントに対応するM個の音声素片の組み合わせすべてが融合音声素片組み合わせ記憶部181に蓄積されている組み合わせと一致した場合に、前記組み合わせに対応する融合音声素片を融合音声素片記憶部160から取得することにより融合音声素片とし、そうでない場合に選択されたM個の音声素片を音声素片記憶部181から取得して融合することにより融合音声素片を作成するとしたが、これに限定するものではない。
例えば、予め一致させる組み合わせ個数の下限値Nを定めてもよい。各セグメントに対応するM個の音声素片のうち、N個以上の音声素片が融合音声素片組み合わせ記憶部181中の組み合わせと一致した場合に、前記組み合わせに対応する融合音声素片を融合音声素片記憶部160から取得する。一方、一致した組み合わせがN個よりも少ない場合にはM個の音声素片を融合することにより新たに融合音声素片を作成する。
これにより、合成時に融合音声素片系列中の融合音声素片記憶部160から取得された融合音声素片を用いる割合が増加し、音声合成処理がさらに高速化される。
また、他の例としては、図15に示す処理により決定されたM個の音声素片の組み合わせの上位N個の音声素片が、融合音声素片組み合わせ記憶部181に記憶されている組み合わせの上位N個と一致するか否かを基準としてもよい。
M個の組み合わせの上位N個の音声素片が、融合音声素片組み合わせ記憶部181に記憶されている組み合わせの上位N個と一致した場合に、前記組み合わせに対応する融合音声素片を融合音声素片記憶部160から取得する。一方、一致しない場合に、前記M個の音声素片を融合することにより新たに融合音声素片を作成する。
上位の音声素片が一致しているので、融合音声素片記憶部160から取得された融合音声素片のコスト関数の値は、選択された複数の音声素片の組み合わせのコスト関数の値に近づき、高音質な合成音声を得ることができる。
(第3の実施形態)
次に、第3の実施形態にかかるテキスト音声合成装置10について説明する。図24は、実施の形態3にかかるテキスト音声合成装置10の音声合成部14の詳細な機能構成を示すブロック図である。実施の形態3にかかる音声合成部14においては、融合音声素片選択部140は、歪み推定部130が推定した歪みの度合いに基づいて、融合音声素片記憶部160に格納されている融合音声素片を選択するか否かを判断する。
より具体的には、歪み推定部130から取得した歪みの度合いが予め定められている歪み基準値よりも小さい場合に、対応する融合音声素片を融合音声素片記憶部160から抽出する。一方、歪み推定部130から取得した歪みの度合いが歪み基準値以上である場合には、融合音声素片記憶部160から抽出する代わりに、融合音声素片作成部180に対して融合音声素片の作成を指示する。実施の形態3にかかるテキスト音声合成装置10は、この点で他の実施の形態にかかるテキスト音声合成装置10と異なる。
図25は、融合音声素片選択部140による処理を示すフローチャートである。まず、ステップS242において、歪み推定部130から各セグメントの韻律情報に対する歪みの度合いを取得する。なお、歪み推定部130からは複数の融合音声素片に対する歪みの度合いのうち最少の値を取得する。
次に、各セグメントに対して、ステップS243以下の処理を行う。ステップS243では、歪み推定部130から取得した歪みの度合いが予め定められている歪み基準値よりも小さいか否かを判断する。歪み基準値以上である場合、すなわち、歪みが大きく許容できない場合には、ステップS245において、融合音声素片作成部180に対して新たに融合音声素片を作成する旨を指示する。
そして、ステップ246において、当該指示に対する応答として、新たな融合音声素片を取得する。なお、この場合融合音声素片作成部180は、分割部120を介して対応する入力韻律情報等を取得する。取得した入力韻律情報等に基づいて、複数の音声素片を選択する。選択した音声素片を融合して融合音声素片を得る。
一方、歪み基準値よりも小さい場合、すなわち、歪みが小さい場合には、ステップS244において対応する融合音声素片を融合音声素片記憶部160から選択する。以上で、融合音声素片選択部140による処理が完了する。
なお、実施の形態3にかかるテキスト音声合成装置10のこれ以外の構成および処理は、実施の形態1にかかるテキスト音声合成装置10の構成および処理と同様である。
本実施の形態においては、予め歪み基準値、すなわち閾値を設定している。そして、閾値に基づいて、新たに融合音声素片を作成するか否かを判断している。新たな融合音声素片を作成するか否かの判断にあたっては、韻律情報の歪みの度合いを考慮すればよく、閾値に基づく判断に限定されない。
図26は、新たな融合音声素片を作成するか否かの判断方法の他の例を説明するための図である。まず、ステップS251において各セグメントに対する入力融合音声素片の歪みの度合いE1を取得する。ステップS252では、音声素片記憶部181から図15に示した処理により複数の音声素片を選択する。ステップS253では、ステップ252において選択された韻律情報の歪みの度合いの平均値E2を計算する。ステップS254では、E1とE2との差が予め定めた閾値より大きいか否かを判定する。そして、この判定結果に基づいて新たに融合音声素片を作成するか否かを決定する。
具体的には、E1とE2との差が予め定めて閾値よりも小さい場合には、融合音声素片記憶部160から融合音声素片を選択する。一方、E1とE2との差が閾値以上である場合には、新たに融合音声素片を作成する指示を出す。
第3の実施形態においては、第2の実施形態と同様に、歪みの度合いが小さい場合には、予め作成されて融合音声素片記憶部160に保持されている融合音声素片を利用することができる。したがって、高速に音声合成を行うことができる。
また、新たに作成した融合音声素片を適宜融合音声素片記憶部160に追加してもよい。これにより、複数素片の組み合わせをあらかじめ限定している第1の実施形態にかかるテキスト音声合成装置10に比べて、より融合する組み合わせのバリエーションが多くなる。したがって、高音質な合成音声を得ることができる。
(実施の形態4)
次に、実施の形態4にかかるテキスト音声合成装置10について説明する。実施の形態4にかかるテキスト音声合成装置10は、融合音声素片記憶部160および融合音声素片音素環境記憶部170の内容を更新する。
図27は、実施の形態4にかかる音声合成部14の機能構成を示すブロック図である。実施の形態4にかかる音声合成部14は、実施の形態2にかかる音声合成部14の構成に加え更新部210をさらに備えている。更新部210は、融合音声素片編集・接続部150から各セグメントの組み合わせを取得する。そして、当該組み合わせを融合音声素片記憶部160に追加するか否かを判断する。
図28は、更新部210における更新処理を示すフローチャートである。まず、ステップS271において、合成時に用いられた複数音声素片組み合わせ系列を融合音声素片編集・接続部150から取得する。ステップS272においては、入力された各セグメントの組み合わせを融合音声素片記憶部160に加えるかどうかを判定する。例えば、融合音声素片編集・接続部150から取得した組み合わせが融合音声素片記憶部160に既に格納されているか否かに基づいて判断する。
そして、追加すると判断した場合には、ステップS273において融合音声素片とその組み合わせ情報を融合音声素片記憶部160に追加する。一方、追加しないと判断した場合には、融合音声素片編集・接続部150から取得した組み合わせを破棄する。以上で、更新処理が完了する。
なお、実施の形態4にかかるテキスト音声合成装置10のこれ以外の構成および処理は、実施の形態2にかかるテキスト音声合成装置10の構成および処理と同様である。
実施の形態4にかかる第1の変更例としては、更新部210は、融合音声素片記憶部160に組み合わせを追加する処理に加えて、さらに融合音声素片記憶部160に格納されている融合音声素片を削除する処理を行ってもよい。例えば、更新部210は、融合音声素片記憶部160に格納されている各融合音声素片の使用頻度を監視する。そして、使用頻度が予め定められた値以下である場合に削除してもよい。
実施の形態4にかかる第2の変更例としては、更新部210は、組み合わせの使用頻度により融合音声素片記憶部160に追加するか否かを決定してもよい。このように、ステップS272における判断基準は、本実施の形態に限定されるものではない。
更新部210は、融合音声素片編集・接続部150から取得した組み合わせごとに、取得した回数を保持しておく。そして、同一の組み合わせを予め定められた回数以上取得した場合に、当該組み合わせを融合音声素片記憶部160に格納してもよい。一方、予め定められた回数以上取得しない場合には破棄する。
より具体的には、更新部210は、例えばキャッシュメモリ等で構成された組み合わせ一時保持部(図示せず)を有する。一時保持部は、予め定められた期間だけ、組み合わせを保持する。そして、一時保持部に保持されている組み合わせについての回数をカウントし、保持する。なお、本例にかかる更新部210は、本発明にかかる更新手段および使用頻度カウント手段を構成する。
これにより、使用頻度の高い組み合わせに対する融合音声素片のみを融合音声素片記憶部160に追加することができる。従って、メモリを有効に利用することができ、かつ音声合成処理の効率化を図ることができる。
第3の変更例としては、第2の変更例においては、音声素片間の類似度を定義したが、同様に融合音声素片間の類似度を定義してもよい。すなわち、本実施の形態においては、融合音声素片作成部180は、組み合わせ頻度および類似度に基づいて融合音声素片を作成することができる。
本例においては、二つの融合音声素片間の類似度を、二つの融合音声素片のコストの逆数とする。二つの融合音声素片のコストは、式(16)から式(19)と同様に定義することができる。
図29は、第3の変更例にかかる融合音声素片作成処理を示すフローチャートである。まず、ステップS291で、利用頻度順に複数音声素片の組み合わせを入力する。これは音声素片組み合わせ作成部183で作成されたものである。
次に、組み合わせごとに以下の処理を行う。すなわち、ステップS292では、融合音声素片記憶部160中の各融合音声素片と、取得した組み合わせから作成した融合音声素片との類似度を求める。ここで、融合音声素片記憶部160に該当する音素の融合音声素片が一つもない場合、類似度を0とする。この類似度が予め設定された閾値より大きい場合は、ステップS293に進み、小さい場合はステップS294に進む。
ステップS293は、似ている融合音声素片が存在すると判断された場合に対応する。この場合は、取得したされた組み合わせとともに、類似度が最大となる融合音声素片の素片番号を、融合音声素片組み合わせ記憶部200に追加する。
ステップS294は、似ている融合音声素片が融合音声素片記憶部160に存在しないと判断された場合に対応する。この場合は、入力された組み合わせに対応する融合音声素片を追加する。そして、ステップS295において、融合音声素片組み合わせ記憶部200に、該当する組み合わせを追加する。これにより、融合音声素片記憶部160中の融合音声素片はあらかじめ定めた閾値より類似度の小さい融合音声素片を蓄積することになり、メモリの利用量を減少させることができる。
第4の変更例としては、本実施の形態においては、予め定められた条件に基づいて、融合音声素片記憶部160に予め保持されている融合音声素片を利用するか、複数の音声素片から新たな融合音声素片を作成するかを判断したが、さらに、利用可能な演算量や音声合成に対する要求スペック等を考慮して条件を定めてもよい。
すなわち、融合音声素片記憶部160に予め格納されている融合音声素片を利用することにより処理の効率化を図ることができる一方、音質が低下する可能性がある。
具体的には、例えば、融合音声素片に対する音声素片の組み合わせのうちの一部が一致する融合音声素片を融合音声素片記憶部160から選択した場合には、予め作成された融合音声素片を利用するため、高速処理が可能である。一方、一致しない音声素片を含んでいるため、作成される融合音声素片は最適なものとは異なってしまう。
そこで、本例においては、融合音声素片記憶部160に格納されている融合音声素片を利用する頻度を、演算量の観点から制御することとする。これにより、演算量の観点と合成音声の品質の観点の両面から制御することができる。
なお、音声合成部14における初期設定値として、演算量等の観点から定めた条件を設定してもよく、また他の例としては、初期設定後も適宜演算量等の観点から条件を変更してもよい。
また、融合音声素片作成部180においては、音声素片群のクラスタリングにより融合音声素片記憶部160に格納すべき融合音声素片を制限してもよい。
具体的には、まず音声素片記憶部181に保持されている各音声素片間の類似度を算出する。そして、類似度に基づいて音声素片のクラスタリングを行う。より具体的には、類似度が大きい音声素片同士を同一の音声素片群とする。そして、クラスタリングにより得られた各音声素片群に対する融合音声素片を作成する。さらに融合音声素片に対する融合音声素片音声環境を作成する。そして、更新部210は、新たに作成された融合音声素片および融合音声素片音声環境を対応付けて融合音声素片記憶部160に格納する。
例えば、二つの音声素片間の類似度に基づいて、音声素片群のクラスタリングを行う。そして、クラスタリングにより、類似度の最も高い融合音声素片のみを融合音声素片記憶部160に保持してもよい。
具体的には、まず、コスト関数に基づいて、二つの素片間の類似度を定義する。ここでは類似度は、二つの素片間のコストの逆数とし、コストを最小にするようにクラスタリングを行う。
二つの素片間のコストは、上述したコスト関数に基づいて、式(16)で示される基本周波数コスト、式(17)で示される継続時間長コスト、および式(18)で示される平均スペクトルコストの線形結合とする(式(19))。
ここで、viは音声素片記憶部181に記憶されている音声素片uiの音素環境を、fは音素環境viから平均基本周波数を取り出す関数、gは音素環境viから音韻継続時間長を取り出す関数hは音声素片uiの平均的なケプストラム係数をベクトルとして取り出す関数を表す。
このようにして、二つの素辺間のコストを求めた後、全体でのコストが最小になるようなM個の素片を選択する。選択されたM個の素片と、全体のコスト(トータルコスト)は、式(20)のように表される。
これは、すべての素片ui(1<i<I)に対してM個の素片の中でコスト最小の候補um(1<m<I)を求め、そのコストを加算したものである。このトータルコストを最小化するようにM個の素片を求め、すべての素片をM個の素片中コスト最小の素片に対応付けることによりクラスタリングを行う。
以上の演算により求めた各クラスタの素片を融合することにより融合音声素片を作成する。また、各素片の韻律情報のセントロイドを求めることにより融合音声素片の韻律情報を求める。そして、融合音声素片音素環境情報とする。
他の例としては、式(18)に替えて、ケプストラムパラメータのDTW(dynamic time warping)距離を用いてもよい。この場合は、各ピッチ波形に対応するケプストラムを求め、ケプストラム距離が最小になるように動的計画法に基づいて時間軸伸縮を行い、最小ケプストラム距離を求める。
また、本例においては、類似度をコストに基づいて定義しているが、これに限定するものではなく例えば単純に時間伸縮したケプストラム距離、韻律変形した際の波形の自乗誤差などに基づいて定義してもよい。各クラスタにおいてHMMを学習し、その尤度を類似度として定義してもよい。
これによりあらかじめ融合音声素片記憶部に記憶する融合音声素片をコスト最小という基準で作成することができ、効率よく融合音声素片群を作成することができ、メモリの使用量を減少させることができる。
また他の例としては、融合音声素片の類似度について閾値を設定し、当該閾値を基準として融合音声素片記憶部160に格納するか否かを決定してもよい。具体的には、融合音声素片同士の類似度を判定する。そして、類似度が予め定められた閾値以上である場合に融合音声素片記憶部160に格納する。一方、類似度が閾値よりも小さい場合には融合音声素片記憶部160に格納せずに破棄する。
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
そうした変更例としては、本実施の形態においては、図11等を参照しつつ説明したように、融合音声素片作成部184は、有声音の融合音声素片をピッチ波形の平均化により作成したが、融合音声素片の作成方法は、これに限定されるものではない。例えば、閉ループ学習を用いてもよい。閉ループ学習を使うことで、それぞれの音声素片のピッチ波形を取り出すことなく、合成音のレベルで最適なピッチ波形系列を作り出すことができる。
ここで、閉ループ学習とは、実際に基本周波数や韻律継続時間長を変更して合成された合成音声のレベルで、自然音声に対する歪みが小さくなるような代表音声素片を生成する方法である。すなわち、閉ループ学習においては、合成音声のレベルで歪みが小さくなるような素片を生成する(特許第3281281号参照)。
閉ループ学習を用いて、有声音の音声素片を融合する場合について説明する。融合によって求められる音声素片は、第1の実施形態と同様にピッチ波形の系列として求められる。これらのピッチ波形を連結して構成されるベクトルuで音声素片を表すこととする。
まず、音声素片の初期値を用意する。初期値としては、第1の実施形態で述べた手法によって求められるピッチ波形の系列を用いてもよい。また、ランダムなデータを用いても良い。また、音声素片組み合わせ作成部183で作成された組み合わせの音声素片の波形を表すベクトルをrj(j=1、2、…、M)とする。次に、uを用いて、rjを目標としてそれぞれ音声を合成する。生成された合成音声セグメントをsjと表す。sjは、次式(9)のように、ピッチ波形の重畳を表す行列Ajとuの積で表される。
rjのピッチマークとuのピッチ波形とのマッピング、およびrjのピッチマーク位置より行列Ajは決定される。行列Ajの例を図30に示す。次に、合成音声セグメントsjとrjの誤差を評価する。sjとrjの誤差ejを次式(10)で定義する。
ただし、次式(11)、(12)に示すように、giは、2つの波形の平均的なパワーの差を補正して、波形の歪みのみを評価するためのゲインであり、ejが最小となるような最適なゲインを用いている。
ベクトルri全てに対する誤差の総和を表す評価関数Eを次式(13)で定義する。
Eを最小にする最適なベクトルuは、Eをuで偏微分して「0」とおくことで得られる次式(14)、(15)を解くことによって求められる。
式(15)はuについての連立方程式であり、これを解くことによって新たな音声素片uを一意に求めることができる。ベクトルuが更新されることによって、最適ゲインgjが変化するため、上述したプロセスをEの値が収束するまで繰り返し、収束した時点のベクトルuを、融合によって生成された音声素片として用いる。
また、行列Ajを求める際のrjのピッチマーク位置を、rjとuの波形の相関に基づいて修正するようにしても良い。
また、ベクトルrjを帯域分割し、各帯域毎に上述した閉ループ学習を行ってuを求め、全帯域のuを加算することによって融合された音声素片を生成するようにしても良い。
このように、閉ループ学習を素片の融合に用いることによって、ピッチ周期変更による合成音声の劣化が小さい音声素片を生成することが可能である。
また、融合音声素片記憶部160に新たに作成された融合音声素片を格納するに際して、既に格納されている融合音声素片との類似度を算出してもよい。具体的には、音声素片作成部180が融合音声素片を作成した場合に、作成された融合音声素片と、既に融合音声素片記憶部180に記憶されている融合音声素片との類似度を算出する。そして、類似度が予め定められた値よりも小さい場合には、音声素片作成部180によって融合音声素片を融合音声素片記憶部180に新たに格納する。これにより、比較的類似した融合音声素片が格納されるのを避けることができるので、メモリを有効に利用することができる。