(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、主流となっている音声合成方式として、HMM(Hidden Markov Model、隠れマルコフモデル)音声合成方式が提案されている(非特許文献1参照)。HMM音声合成方式における音声データベース(モデル)は、合成単位ごとに音声データのパラメータ(基本周波数(F0)やスペクトル)を平均化(平滑化)し、合成単位ごとに一つのモデルを保持している。HMM音声合成方式では、一般的に、モデル学習やパラメータ生成時に使用する情報(コンテキスト)として、音素種別やアクセント型、アクセント句境界等を使用している。
【0003】
コンテキストとして、アクセント型やアクセント句境界等を使用するのではなく、各音素の量子化したF0を使用する手法も提案されている(非特許文献2参照)。コンテキストとして、アクセント型やアクセント句境界等を用いた場合、合成音声の声の高さや抑揚を大きく変動させた場合(つまり、F0を変動させた場合)、合成対象のF0に対応しないスペクトルが生成されてしまい、合成音声の品質が低下してしまう。これに対し、コンテキストとして量子化したF0を用いることで、合成対象のF0の変動に応じたコンテキストを動的に生成し、F0に対応したスペクトルを生成することが可能になる。
【0004】
非特許文献2では、音声合成モデルの学習を行う際には、
図1、2に示すように、F0量子化部13が音声データと発話情報に基づいてF0の平均と分散を用いてF0を量子化し、モデル学習部16が量子化したF0を用いて音声合成モデルの学習を行う。また、合成音声を生成する際には、
図3に示すように、量子化F0取得部21が合成対象の音素、F0、および音素継続時間長等からF0の平均と分散を用いて量子化F0情報を取得し、スペクトル生成部22がその量子化F0情報から音声合成モデルを用いてスペクトルを生成し、音声波形生成部23がそのスペクトルから合成音声の音声波形を生成する。非特許文献2では、
図4に示すように、F0の平均と分散を用いた等分割によりF0の量子化を行う。
図4の例では、量子化クラス数を4として、F0の+2σから-2σを4個に等分割し、-1σ以下に「1」を、-1σから0σに「2」を、0σから+1σに「3」を、+1σ以上に「4」を割り当てることで、F0の量子化を行っている。
【発明を実施するための形態】
【0012】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[第一実施形態]
<音声合成モデルの学習>
第一実施形態の音声合成モデル学習装置は、音声データおよび発話情報を用いてF0の量子化を行い、音声データおよび発話情報から量子化F0を考慮した音声合成モデル(HMM)を学習する。
【0013】
第一実施形態の音声合成モデル学習装置は、
図5に示すように、音声データ記憶部11、発話情報記憶部12、F0量子化部13、量子化情報記憶部14、量子化F0記憶部15、モデル学習部16、および音声合成モデル記憶部17を例えば含む。F0量子化部13は、
図6に示すように、音声データ整列部131、クラスタリング部132、および量子化F0生成部139を例えば含む。
【0014】
音声合成モデル学習装置は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。音声合成モデル学習装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。音声合成モデル学習装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、音声合成モデル学習装置の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【0015】
音声合成モデル学習装置が備える各記憶部は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。音声合成モデル学習装置が備える各記憶部は、それぞれ論理的に分割されていればよく、一つの物理的な記憶装置に記憶されていてもよい。
【0016】
音声データ記憶部11には、音声合成モデルの学習に使用する音声データが記憶されている。音声データは、音声合成モデルを構築する対象となる一名の話者がN(≧1)個の文章を発話した音声をあらかじめ収録したものである。音声データは、具体的には、音声信号に対して信号処理を行った結果得られる音響特徴量(例えば、音高パラメータ、スペクトルパラメータ等。音高パラメータは、例えば、基本周波数(F0)等。スペクトルパラメータは、例えば、ケプストラム、メルケプストラム等。)である。音声データには、音声合成に必要な各音素が一つ以上含まれている必要がある。
【0017】
発話情報記憶部12には、音声データ記憶部11に記憶された音声データに対応する発話情報が記憶されている。発話情報は、音声データ中の各発話に対して付与された発音等の情報であり、音声データ中の各発話に一つの発話情報が付与されている。発話情報には、少なくとも各音素の開始時間、終了時間の情報(以下、音素セグメンテーション情報と呼ぶ。)が保存されている。本形態では、開始時間および終了時間は、各発話の始点を0秒とした時の経過時間として表現される。音素セグメンテーション情報は人手で付与してもよいし、音声データから自動で付与したものでもよい。音声データから音素セグメンテーション情報を自動的に付与する方法は、例えば、「特許第3866171号公報(参考文献1)」に記載されている。また、付与する発話情報として、音素セグメンテーション情報以外にもアクセント情報(アクセント型、アクセント句長等)や品詞情報等を含んでいてもよい。
【0018】
音素セグメンテーション情報の具体例を
図7に示す。
図7では、発話を構成する各音素の開始時間と終了時間がミリ秒単位で設定されている。
図7の例では、発話開始からの経過時間が0〜350ミリ秒の音素は“pause”であり、350〜600ミリ秒の音素は“o”であり、600〜680ミリ秒の音素は“s”であることがわかる。
【0019】
図8を参照して、第一実施形態の音声合成モデル学習方法の処理手続きを説明する。
【0020】
ステップS11〜S13において、F0量子化部13は、音声データ記憶部11に記憶された音声データ(F0、スペクトル)と、発話情報記憶部12に記憶された発話情報(音素セグメンテーション情報)とを用いて量子化時の閾値(以下、量子化閾値と呼ぶ。)を決定し、その量子化閾値を用いて各音素のF0を量子化した量子化F0情報を得る。以下、F0量子化部13の処理をより詳しく説明する。
【0021】
ステップS11において、音声データ整列部131は、音声データに含まれる無声区間(無音、無声子音等の声帯振動が生じない音声区間)を除いた全フレームのF0およびスペクトル(以下、フレームデータと呼ぶ。)を、F0値に基づいてソートを行う。
図9はソート前後のフレームデータを例示したものである。
図9の例では、スペクトルの値はメルケプストラムである。メルケプストラムは、左から右へケプストラムの次数の順(0次項、1次項、…)に示している。
図9の例は、F0値が最小のフレームから昇順にソートしたものである。なお、ソートの際に同一のF0値が存在する場合には当該フレームの出現時間に基づいてソートを行えばよい。
【0022】
ステップS12において、クラスタリング部132は、音声データ整列部131により得られたソート後の音声データを用いて、F0値を考慮したスペクトルのクラスタリングを行う。クラスタリングアルゴリズムとして、例えば、セグメンタルk-means法を用いることができる。セグメンタルk-means法についての詳細は「Juang, Biing-Hwang, and Lawrence Rabiner. “The segmental K-means algorithm for estimating parameters of hidden Markov models” Acoustics, Speech and Signal Processing, IEEE Transactions, vol. 38.9, pp. 1639-1641, 1990.(参考文献2)」を参照されたい。一般的に、セグメンタルk-means法におけるクラスタ境界の初期値は、全フレームをクラスタ数で等分割した境界を用いる。また、クラスタ数Kは固定としてクラスタリングを行う。クラスタ数Kはあらかじめ与えられた量子化クラス数を用いる。
【0023】
セグメンタルk-means法は時系列を考慮したクラスタリングを行うことができる手法であり、音声認識等で用いられるHMMのパラメータ推定等に用いられている。セグメンタルk-means法では、各フレームの時間情報が入れ替わらないような時系列の制約をかけた上でクラスタリングが行われる。本形態では、F0値が最小のフレームから昇順にソートを行った後のF0値を時間とみなすことで、ソート後のF0およびスペクトルを時系列データとして扱う。そのため、F0の順序が入れ替わらないように制約をかけた上で、クラスタ内のスペクトルの特徴が近くなるように各クラスタが構築される。これにより、F0値およびスペクトルが近いものが一つのクラスタに集まるため、F0の変動を考慮したスペクトルのクラスタリングを行うことができる。
【0024】
本形態では、クラスタリングの結果得られた各クラスタの境界となるフレームのF0の平均値を量子化閾値として使用する。
図10は量子化クラス数を3とした場合のクラスタリング後のフレームデータの例である。
図10の例では、クラスタ1とクラスタ2の閾値として、クラスタ1側の境界のF0値(200[Hz])とクラスタ2側の境界のF0値(210[Hz])を平均した値である205[Hz]を量子化閾値として設定している。同様に、クラスタ2とクラスタ3の量子化閾値は214[Hz]に設定する。これにより、学習データ全体におけるF0の平均と分散のみを用いて量子化境界を決定する従来の方法と異なり、スペクトルの変動を考慮した量子化境界の決定ができる。また、本形態ではF0値として[Hz]を用いているが、聴覚特性を考慮した対数F0や、mel尺度、bark尺度等を用いてもよい。また、隣り合うクラスタの境界のF0値が同一の場合には、境界のF0値を量子化閾値として使用すればよい。
【0025】
クラスタリング部132により得られた量子化閾値は、量子化クラス数とともに音声合成時にも利用されるため、量子化情報として量子化情報記憶部14へ記憶される。
【0026】
ステップS13において、量子化F0生成部139は、クラスタリング部132により得られた量子化閾値を用いて、各音素のF0を量子化した量子化F0情報を生成する。量子化F0生成部139は、
図11に示すように、F0平均部1391および量子化F0推定部1392を例えば含む。F0平均部1391は、F0値および音素セグメンテーション情報を用いて、各フレームデータに含まれる各音素のF0平均値を算出する。量子化F0推定部1392は、F0平均部1391により得られた各音素のF0平均値と、クラスタリング部13により得られた量子化閾値とを用いて、各音素がどのクラスタに属するかを推定し、各音素の量子化F0情報を推定する。この処理によって、量子化F0生成部139は、各音素の量子化F0情報をクラスタ値として得ることができる。
【0027】
無声音素や無声区間については、F0平均値を算出することができないため、どのクラスタにも属していないことがわかる識別子をクラスタ番号の代わりに付与する。また、当該音素のF0平均値と量子化閾値が同一である場合は、当該音素のF0平均値と両クラスタに属する全データのF0平均値との距離を計算し、距離が小さいクラスタのクラスタ番号を付与する。
【0028】
図12に、音素セグメンテーション情報に量子化F0情報を対応付けた例を示す。
図12の例では、“o”、“a”のような有声音素にはクラスタ番号を付与し、“sil”,“s”などで表される無声音素には、クラスタ番号の代わりに、どのクラスタにも属していないことを示す識別子“x”を付与している。
【0029】
ステップS14において、モデル学習部16は、音声データ記憶部11に記憶された音声データと、発話情報記憶部12に記憶された発話情報、量子化F0記憶部15に記憶された各音素の量子化F0情報から生成されるコンテキスト依存ラベルを用いて、量子化F0を考慮した音声合成モデルを学習する。コンテキスト依存ラベルの詳細と音声合成モデルの学習方法は、従来と同様であり、例えば、非特許文献2に記載された方法を用いることができる。
【0030】
<音声合成>
第一実施形態の音声合成装置は、音声合成モデル学習装置で得られた量子化F0を考慮した音声合成モデルを用いて、合成対象の音素、F0、および音素継続時間長等から合成音声を生成する。
【0031】
第一実施形態の音声合成装置は、
図13に示すように、量子化情報記憶部14、音声合成モデル記憶部17、量子化F0取得部21、スペクトル生成部22、および音声波形生成部23を例えば含む。
【0032】
音声合成装置は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。音声合成装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。音声合成装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、音声合成装置の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【0033】
音声合成装置が備える各記憶部は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。音声合成装置が備える各記憶部は、それぞれ論理的に分割されていればよく、一つの物理的な記憶装置に記憶されていてもよい。
【0034】
図14を参照して、第一実施形態の音声合成方法の処理手続きを説明する。
【0035】
ステップS21において、量子化F0取得部21は、入力された合成対象の読み(音素等)、韻律情報(F0、音素継続時間長等)から、量子化情報記憶部14に記憶された量子化情報を用いて、合成対象の各音素に対応する量子化F0情報を得る。入力として使用する合成対象の音素、F0、および音素継続時間長等は、例えば、テキスト音声合成を行う場合は、音声合成の過程でテキスト解析の結果得られる読み(音素)やアクセント情報等から韻律モデルを用いて生成されたものを使用する(非特許文献2参照)。なお、韻律モデルについては非特許文献1に記載されている。もしくは、公知の手法により自然音声(肉声)から抽出したF0、音素、および音素継続時間長等を用いてもよい。自然音声からF0、音素、および音素継続時間長等を抽出する手法は、例えば、「特許第3292218号公報(参考文献3)」に記載されている。
【0036】
ステップS22において、スペクトル生成部22は、量子化F0取得部21により得られた各音素の量子化F0情報と合成対象の音素とを用いて、音声合成に利用するためのコンテキスト依存ラベルを得、音声合成モデル記憶部17に記憶された音声合成モデル、コンテキスト依存ラベル、および入力された音素継続時間長を用いて音声パラメータ(スペクトル)を生成する。コンテキスト依存ラベルについての詳細は、例えば、非特許文献2を参照されたい。コンテキスト依存ラベルは、量子化F0情報と合成対象の音素、F0、および音素継続時間長等から生成することができる。音声パラメータ(スペクトル)の生成方法は、例えば、非特許文献1を参照されたい。
【0037】
ステップS23において、音声波形生成部23は、スペクトル生成部22により得られた音声パラメータ(スペクトル)および合成対象のF0から、音声合成フィルタを用いて音声波形を生成する。音声合成フィルタは、例えば、「今井他、“音声合成のためのメル対数スペクトル近似(MLSA)フィルタ”、電子情報通信学会論文誌、vol. J66-A、no. 2、pp. 122-129、1983年2月(参考文献4)」に記載されたものを用いることができる。
【0038】
第一実施形態の音声合成モデル学習装置および音声合成装置は、上記のように構成することで、F0量子化時の閾値の決定にF0だけでなくスペクトルも考慮しているため、F0の変動に応じた最適なスペクトルを生成することができる。これにより、合成音声の品質を向上することができる。
【0039】
[第二実施形態]
第一実施形態では、F0量子化部においてF0量子化時の閾値を決定する際に、全ての有声区間のフレームデータを用いて、セグメンタルk-means法等によるクラスタリングを行った。しかし、その場合、スペクトルのクラスタリング時に音素の違いによるスペクトルの変動を考慮することができないため、最適なクラスタリングができない場合がある。また、F0の変動によるスペクトルの変動は音素によっても異なる場合がある。そのため、第二実施形態では、F0量子化時の閾値を音素ごとに決定することで、より適切なF0量子化時の閾値を決定する。
【0040】
以下、
図15を参照しながら、第二実施形態の音声合成モデル学習方法を、第一実施形態との差分を中心に説明する。
【0041】
本形態のF0量子化部13は、第一実施形態のF0量子化部の構成に加えて、音声データ分割部134をさらに含み、音声データ整列部131とクラスタリング部132をM(≧2)個ずつ含む。ここで、Mは音声データに含まれる全音素数である。音声データ分割部134は、音素セグメンテーション情報を用いて音声データを音素ごとにM個に分割する。その後、得られた各音素のフレームデータに対し、第一実施形態と同様に、セグメンタルk-means法による量子化閾値の決定と、各音素に対する量子化F0情報の生成を行う。
【0042】
第一実施形態のF0量子化部では、有声区間の全てのフレームの音声データを用いて、クラスタリングを行っていた。一方、本形態では、音素ごとにクラスタリングを行い、量子化閾値を音素ごとに決定する点が相違する。
【0043】
第二実施形態の音声合成モデル学習装置は、量子化閾値の決定を音素ごとに行うことで、音素の違いによるスペクトルの変動を考慮することができる。これにより、より合成音声の品質を向上することができる。
【0044】
[第三実施形態]
上述の実施形態では、F0量子化部において量子化閾値を決定する際に、全ての有声区間の音声データを用いていた。しかし、全フレームの音声データを用いてクラスタリングを行う場合、F0抽出誤り等の外れ値の影響により、クラスタリング結果に悪影響を及ぼす危険性がある。そのため、第三実施形態では、クラスタリングに各音素のF0平均値と平均スペクトルを使用することで、外れ値の影響を軽減する。また、本形態の場合、クラスタリングに用いるデータ数が大幅に削減できるため、外れ値の影響を軽減するだけでなく、クラスタリングを高速に行える利点もある。
【0045】
以下、
図16を参照しながら、第三実施形態の音声合成モデル学習方法を、第一実施形態との差分を中心に説明する。
【0046】
本形態のF0量子化部は、第一実施形態のF0量子化部の構成に加えて、音声データ平均部135をさらに含む。音声データ平均部135は、音素セグメンテーション情報を用いて音声データから各音素のF0平均値と平均スペクトルを算出する。その後、得られた各音素のF0平均値と平均スペクトルに対し、第一実施形態と同様に、セグメンタルk-means法による量子化閾値の決定と、各音素に対する量子化F0情報の生成を行う。
【0047】
第一実施形態のF0量子化部では、有声区間の全てのフレームの音声データを用いて、クラスタリングを行っていた。一方、本形態では、クラスタリング前に各音素のF0平均値と平均スペクトルを算出し、それらを用いてクラスタリングを行い、量子化閾値を決定する点が相違する。
【0048】
本形態の構成は第二実施形態に対しても同様にして組み合わせて使用することが可能である。すなわち、音声データ分割部134により分割された各音素の音声データが音声データ平均部135へ入力されるように構成し、音声データ平均部135は、音素ごとの音声データそれぞれについてF0とスペクトルの平均を算出し、それらを用いてセグメンタルk-means法による量子化閾値の決定を行えばよい。
【0049】
第三実施形態の音声合成モデル学習装置は、量子化閾値を決定する際のクスタリングに、各フレームのF0とスペクトルを用いるのではなく、各音素のF0とスペクトルの平均値を用いることで、外れ値に頑健な量子化F0情報を生成することができる。これにより、さらに合成音声の品質を向上することができる。また、クスタリングに平均値を用いることで、クラスタリング対象のデータが減少するため、高速なクラスタリングを行うことができる。これにより、音声合成モデルを学習する時間を削減することができる。
【0050】
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0051】
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【0052】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0053】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0054】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0055】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。