本実施形態に係る音声合成装置は、目標の発話音声から得られる目標音声データ(第1情報)と、任意の発話音声から得られる変換元音声データ(第2情報)を目標の声質または韻律に近づけるように変換した変換音声データ(第3情報)とを含む音声データセット(情報セット)に基づいて、音声合成データ(第4情報)を生成する。そして、得られた音声合成データを用いて、入力したテキストから合成音声を生成する。
図1は、本実施形態に係る音声合成装置の構成を示すブロック図である。この音声合成装置は、図1に示すように、変換元音声データ記憶部(第2記憶部)11と、目標音声データ記憶部(第1記憶部)12と、音声データ変換部(第1生成部)13と、音声データセット生成部(第2生成部)14と、音声合成データ生成部(第3生成部)15と、音声合成データ記憶部20と、音声合成部(第4生成部)16と、を備える。
変換元音声データ記憶部11は、任意の発話音声から得られる音声データ(変換元音声データ)をその属性情報とともに記憶する。
目標音声データ記憶部12は、目標の発話音声から得られる音声データ(目標音声データ)をその属性情報とともに記憶する。
ここで、音声データとは、発話音声から得られる各種のデータを意味する。例えば、発話音声の音声波形を合成単位に区切ることにより生成される音声素片、発話音声の各アクセント句の基本周波数列、発話音声に含まれる音韻の継続長、発話音声から得られるスペクトルパラメータなどの特徴パラメータといった、発話音声から抽出される各種のデータが音声データに含まれる。
変換元音声データ記憶部11および目標音声データ記憶部12が記憶する音声データの種類は、音声データセットに基づいて生成される音声合成データの種類に応じて異なる。例えば、音声合成データとして波形生成に用いる音声素片データベースを生成する場合は、変換元音声データ記憶部11および目標音声データ記憶部12は、発話音声から得られる音声素片を音声データとして記憶する。また、音声合成データとして韻律生成に用いる基本周波数列生成データを生成する場合は、変換元音声データ記憶部11および目標音声データ記憶部12は、発話音声の各アクセント句の基本周波数列を音声データとして記憶する。また、音声合成データとして韻律生成に用いる継続長生成データを生成する場合は、変換元音声データ記憶部11および目標音声データ記憶部12は、発話音声に含まれる音韻の継続長を音声データとして記憶する。また、音声合成データとしてHMMデータを生成する場合は、変換元音声データ記憶部11および目標音声データ記憶部12は、発話音声から得られるスペクトルパラメータなどの特徴パラメータを音声データとして記憶する。ただし、変換元音声データ記憶部11が記憶する変換元音声データと、目標音声データ記憶部12が記憶する目標音声データは、同じ種類の音声データである。
音声素片は、音声波形を音素・音節・半音素、またはそのいくつかの組み合わせなど、所定の音声単位(合成単位)に区切ったそれぞれの音声波形を示す。スペクトルパラメータは、LPC係数、メルLSP係数、メルケプストラム係数など、音声波形を分析してフレームごとに得られたパラメータを示す。これらを音声データとして扱う場合、その属性情報としては、例えば、音韻種別や、前後の音韻環境(音韻環境情報)、韻律情報、文内の音素位置などの言語的な属性情報を用いることができる。
基本周波数は、抑揚やイントネーションなどの音の高さを表す情報である。アクセント句単位の基本周波数列を音声データとして扱う場合、その属性情報としては、アクセント句のモーラ数、アクセント型、アクセント句種別(文内のアクセント句位置)などの情報を用いることができる。
音韻の継続長は音の長さを表す情報であり、音声素片の長さやスペクトルパラメータのフレーム数などに相当する。音韻の継続長を音声データとして扱う場合、その属性情報としては、音韻の種別や、前後の音韻環境など、前述した情報を用いることができる。
なお、音声データとその属性情報は、前述した組み合わせに限定されるものではない。例えば、日本語以外の言語の場合は、単語区切り、ストレスアクセントやピッチアクセントの情報など、言語に応じて定めた属性情報を用いればよい。
目標音声は、本実施形態に係る音声合成装置において、その音声の声質や韻律の特徴を再現するように音声合成を行う目標とする音声である。目標音声は、変換元音声に対して、話者性や、感情、発話スタイルなどが異なる音声である。本実施形態では、変換元音声データとして大量の音声データが用意され、目標音声データとして少量の音声データが用意される場合を想定する。例えば、標準的なナレータが音韻・韻律の網羅性の高い文章を読み上げたときの音声を収録し、この収録音声から抽出された音声データを変換元音声データとして用い、目標音声データとしては、ユーザや特定の声優・著名人など、変換元音声データとは異なる話者の発話音声から得られる音声データや、怒り・喜び・悲しみ・丁寧調など、変換元音声データとは異なる感情や発話スタイルの音声データを用いることができる。
音声データ変換部13は、目標音声データ記憶部12が記憶する目標音声データおよびその属性情報と、変換元音声データ記憶部11が記憶する変換元音声データの属性情報とに基づいて、変換元音声データ記憶部11が記憶する変換元音声データを、目標の声質または韻律に近づけるように変換し、変換音声データを生成する。
図2は、音声データ変換部13の構成例を示すブロック図である。音声データ変換部13は、図2に示すように、変換規則生成部21と、データ変換部22と、を備える。変換規則生成部21は、変換元音声データ記憶部11に記憶されている変換元音声データと、目標音声データ記憶部12に記憶されている目標音声データとから、変換規則を生成する。データ変換部22は、変換規則生成部21が生成した変換規則を変換元音声データに適用することにより、変換音声データを生成する。
音声データ変換部13による具体的な音声データの変換方法は、音声データの種類によって異なる。音声素片や特徴パラメータを音声データとして扱う場合には、GMMおよび回帰分析を利用した声質変換方法、周波数ワーピングや振幅スペクトルのスケーリングに基づく声質変換方法など、任意の声質変換手法を用いることができる。また、アクセント句の基本周波数や音韻の継続長を音声データとして扱う場合には、平均と標準偏差を目標に合せて変換する方法や、ヒストグラムの変換による方法など、任意の韻律変換手法を用いることができる。
音声データセット生成部14は、音声データ変換部13により生成された変換音声データと、目標音声データ記憶部12が記憶する目標音声データとを併せることにより、目標音声データと変換音声データとを含む音声データセットを生成する。
音声データセット生成部14は、音声データ変換部13により生成されたすべての変換音声データと目標音声データとを併せて音声データセットを生成してもよいが、変換音声データの一部を目標音声データに追加することで音声データセットを生成してもよい。変換音声データの一部を目標音声データに追加して音声データセットを生成する場合は、目標音声データの不足を変換音声データによって補うように音声データセットを生成することができ、より目標の発話音声の特徴を再現する音声データセットを生成することができる。その際、追加する変換音声データを、属性ごとの網羅性を向上させるように、音声データの属性情報に基づいて決定することができる。具体的には、属性情報に基づいて分類されたカテゴリごとの目標音声データの頻度に基づいて、追加する変換音声データを決定することができる。
図3は、変換音声データの一部を目標音声データに追加して音声データセットを生成する音声データセット生成部14の構成例を示すブロック図である。この音声データセット生成部14は、図3に示すように、頻度算出部(算出部)31と、変換データカテゴリ決定部(決定部)32と、変換音声データ追加部(追加部)33と、を備える。頻度算出部31は、目標音声データをその属性情報に基づいて複数のカテゴリに分類し、各カテゴリごとの目標音声データの個数であるカテゴリ頻度を算出する。変換データカテゴリ決定部32は、算出されたカテゴリ頻度に基づいて、目標音声データに追加する変換音声データのカテゴリ(以下、変換データカテゴリという。)を決定する。変換音声データ追加部33は、決定された変換データカテゴリに対応する変換音声データを目標音声データに追加して音声データセットを生成する。
カテゴリ頻度は、属性情報に基づいて分類されたカテゴリごとの目標音声データの頻度もしくは個数である。例えば、カテゴリを分類する属性情報として音韻環境を用いる場合、各音韻の音韻環境ごとの目標音声データの頻度もしくは個数がカテゴリ頻度となる。また、カテゴリを分類する属性情報としてアクセント句のモーラ数、アクセント型、アクセント句種別を用いる場合、各モーラ数・アクセント型・アクセント句種別ごとの目標音声データの頻度もしくは個数(目標音声データとして扱われる基本周波数列に対応するアクセント句の頻度もしくは個数)がカテゴリ頻度となる。なお、アクセント句種別は、文頭・文中・文末のアクセント句かどうかなど、文中のアクセント句の位置を表す属性情報である。アクセント句末の基本周波数が上昇しているどうかを表す情報や、主語、述語等の文法情報をさらにアクセント句種別として利用してもよい。
変換データカテゴリ決定部32は、例えば、頻度算出部31が算出したカテゴリ頻度が予め定めた所定値よりも小さいカテゴリを、変換データカテゴリとして決定することができる。なお、変換データカテゴリ決定部32は、上記の方法に限らず、他の方法で変換データカテゴリを決定するようにしてもよい。例えば、変換元音声データのカテゴリごとの個数のバランス(頻度分布)に対して、音声データセットに含まれる音声データのカテゴリごとの個数のバランス(頻度分布)を近づけるように、変換データカテゴリを決定するようにしてもよい。
音声合成データ生成部15は、音声データセット生成部14により生成された音声データセットに基づいて、音声合成データを生成する。ここで、音声合成データとは、実際に合成音声の生成に用いるデータである。音声合成データ生成部15は、音声合成部16による音声合成の方式に応じた音声合成データを生成する。例えば、音声合成部16が素片選択に基づく音声合成により合成音声を生成する場合は、合成音声の韻律生成に用いるデータ(基本周波数列生成データ、継続長生成データ)や、合成音声の波形生成に用いる音声素片の集合である音声素片データベースが音声合成データとなる。また、音声合成部16が統計モデル(HMM)に基づく音声合成により合成音声を生成する場合は、合成音声の生成に用いるHMMデータが音声合成データとなる。
本実施形態に係る音声合成装置では、音声合成データ生成部15が音声データセット生成部14により生成された音声データセットに基づいて音声合成データを生成することにより、目標の発話音声の特徴を高精度に再現した音声合成データを生成することができる。なお、音声合成データ生成部15は、音声データセットに基づいて音声合成データを生成する際に、目標音声データの重みが変換音声データの重みより高くなるように重みを決定し、重みづけ学習を行ってもよい。これにより、さらに目標の発話音声の特徴を反映した音声合成データを生成することができる。音声合成データ生成部15により生成された音声合成データは、音声合成データ記憶部20に格納される。
音声合成部16は、音声合成データ生成部15により生成された音声合成データを用いて、入力されたテキストから、合成音声を生成する。
図4は、音声合成部16の構成例を示すブロック図である。音声合成部16は、図4に示すように、テキスト解析部43と、韻律生成部44と、波形生成部45と、を備える。テキスト解析部43は、入力されたテキストからその読み情報、アクセント句区切り、アクセント型など、合成音声の韻律や波形の生成に用いる属性情報を求める。韻律生成部44は、入力されたテキストに対応する合成音声の韻律、具体的には合成音声の基本周波数列および音韻の継続長を生成する。波形生成部45は、入力されたテキストの読み情報から求めた音韻系列と、韻律生成部44において生成された基本周波数列、音韻の継続長などの韻律情報を入力し、入力されたテキストに対応する合成音声の音声波形を生成する。
素片選択に基づく音声合成を用いる場合、韻律生成部44は、積和数量化モデルによる継続長生成や、基本周波数パターンコードブックとオフセット制御を用いた基本周波数パターン生成方法を用いることができる。このとき、音声合成データ生成部15が音声データセットに基づいて生成した音声合成データが、基本周波数列生成データ(基本周波数パターン選択用データやオフセット推定用データを含む)や継続長生成データ(継続長推定用データを含む)である場合、韻律生成部44は、これらの音声合成データを用いて、入力されたテキストに対応する合成音声の韻律を生成する。韻律生成部44は、生成した韻律情報を波形生成部45へ入力する。
素片選択に基づく音声合成を用いる場合、波形生成部45は、例えば、音声素片の歪みをコスト関数として表し、コストを最小化するように音声素片を選択する方法を用いることができる。このとき、音声合成データ生成部15が音声データセットに基づいて生成した音声合成データが音声素片データベースである場合、波形生成部45は、生成された音声素片データベースの中から、音声合成に用いる音声素片を選択する。コスト関数としては、波形生成部45に入力された韻律情報と各音声素片の韻律情報との差や、入力されたテキストから得られた音韻環境および言語属性と各音声素片の音韻環境・言語属性の違いなどを表す目標コストと、隣接する音声素片の接続の歪みを表す接続コストが用いられ、動的計画法によりコストが最も小さくなる最適な音声素片系列が求められる。
波形生成部45は、以上のように選択した音声素片を接続することにより、合成音声の波形を生成することができる。複数素片選択融合方式を用いる場合は、波形生成部45は、音声単位ごとに複数の音声素片を選択し、ピッチ波形の平均化処理などにより複数の音声素片から生成した音声素片を接続して合成音声を生成する。
なお、音声合成部16は、音声合成データを用いて音声合成を行う際に、変換音声データよりも目標音声データを優先的に利用して合成音声を生成するようにしてもよい。例えば、音声合成データとして音声素片データベースが生成された場合、音声素片データベースに含まれる各音声素片の属性情報として、当該音声素片が目標音声データであるか変換音声データであるかを識別する情報を保持しておき、素片選択の際に、目標コストの一つとして変換音声データが用いられる場合にコストが高くなるようなサブコスト関数を用いることにより、目標音声データを優先的に利用する方法を実現できる。このように、変換音声データよりも目標音声データを優先的に利用して合成音声を生成することにより、目標の発話音声に対する合成音声の類似性をさらに高めることができる。
HMMに基づく音声合成を用いる場合は、韻律生成部44および波形生成部45は、例えば基本周波数列およびスペクトルパラメータ列を特徴パラメータとして学習したHMMデータに基づいて、合成音声の韻律生成および波形生成を行う。この場合、HMMデータは、音声合成データ生成部15が音声データセットに基づいて生成した音声合成データである。なお、韻律生成部44および波形生成部45は、帯域雑音強度列も特徴パラメータとして用いて学習したHMMデータに基づいて、合成音声の韻律生成および波形生成を行ってもよい。
HMMデータは、決定木および特徴パラメータの静的・動的特徴量をモデル化したガウス分布からなり、決定木を辿ることにより入力テキストに対応した分布列を生成して、動的特徴を考慮したパラメータ生成アルゴリズムによってパラメータ列を生成する。韻律生成部44は、このHMMデータに基づいて、継続長および基本周波数列を生成する。また、波形生成部45は、HMMデータに基づいて、スペクトル列および帯域雑音強度列を生成する。基本周波数列・帯域雑音強度列から励振源を生成して、スペクトル列に基づくフィルタを適用することにより音声波形が生成される。
図5は、本実施形態に係る音声合成装置の処理の流れを示すフローチャートである。
まず、ステップS101において、音声データ変換部13が、変換元音声データ記憶部11に記憶されている変換元音声データを目標の声質または韻律に近づけるように変換して、変換音声データを生成する。
次に、ステップS102において、音声データセット生成部14が、ステップS101で生成された変換音声データと、目標音声データ記憶部12が記憶する目標音声データとを併せることにより、音声データセットを生成する。
次に、ステップS103において、音声合成データ生成部15が、ステップS102で生成された音声データセットに基づいて、合成音声の生成に用いる音声合成データを生成する。
次に、ステップS104において、音声合成部16が、ステップS103で生成された音声合成データを用いて、入力されたテキストに対応する合成音声を生成する。
次に、ステップS105において、ステップS104で生成された合成音声の音声波形が出力される。
なお、以上の説明では、ステップS101からステップS105までのすべての処理を音声合成装置の内部で行うようにしているが、ステップS101からステップS103までの処理を事前に外部装置で行い、音声合成装置が、ステップS104とステップS105の処理のみを行う構成とすることもできる。すなわち、音声合成装置は、ステップS101からステップS103までの処理により生成された音声合成データを記憶し、この記憶した音声合成データを用いて、入力されたテキストに対応した合成音声を生成してその音声波形を出力するようにしてもよい。この場合、音声合成装置は、目標音声データと変換音声データとを含む音声データセットに基づいて生成された音声合成データを記憶する音声合成データ記憶部20と、音声合成部16と、を備える構成となる。
以上のように、本実施形態に係る音声合成装置は、目標音声データと変換音声データとを含む音声データセットに基づいて音声合成データを生成し、生成した音声合成データを用いて、入力されたテキストに対応する合成音声を生成するので、目標の発話音声に対する合成音声の類似性を高めることができる。
また、本実施形態に係る音声合成装置は、変換音声データの一部を目標音声データに追加して音声データセットを生成することにより、音声合成データに反映される目標音声データの割合、つまり合成音声の生成に反映される目標音声データの割合を高めて、目標の発話音声に対する合成音声の類似性をさらに高めることができる。この際、目標音声データに追加する変換音声データを、目標音声データのカテゴリ頻度に基づいて決定することにより、属性ごとの網羅性の高い音声データセットを生成して、合成音声を生成するために適切な音声合成データを生成することができる。
なお、本実施形態に係る音声合成装置では、すべての変換音声データと目標音声データとを併せて音声データセットを生成する場合であっても、音声合成データ生成部15が、目標音声データの重みが変換音声データの重みより高くなるような重みづけ学習を行って音声合成データを生成する、あるいは、音声合成部16が、変換音声データよりも目標音声データを優先的に利用して合成音声を生成することにより、合成音声の生成に反映される目標音声データの割合を高めて、目標の発話音声に対する合成音声の類似性をさらに高めることができる。
また、上述した音声合成装置においては、音声データセット生成部14の変換音声データ追加部33が、音声データ変換部13によって生成された変換音声データのうち、変換データカテゴリ決定部32により決定された変換データカテゴリに対応する変換音声データを目標音声データに追加して音声データセットを生成するようにしている。しかし、まず、変換データカテゴリ決定部32により変換データカテゴリを決定した後に、音声データ変換部13が、この変換データカテゴリに対応する変換元音声データを変換して変換音声データを生成し、この変換音声データを変換音声データ追加部33が目標音声データに追加して音声データセットを生成するようにしてもよい。
図6は、以上のような変形例における音声データ変換部13および音声データセット生成部14の構成例を示すブロック図である。この変形例の場合、音声データ変換部13は、音声データセット生成部14の内部に組み込まれて実現される。音声データ変換部13は、頻度算出部31により算出されたカテゴリ頻度に基づいて変換データカテゴリ決定部32により決定された変換データカテゴリの情報を入力する。そして、音声データ変換部13は、目標音声データおよびその属性情報と変換元音声データおよびその属性情報とから変換規則を生成した後、変換元音声データ記憶部11が記憶する変換元音声データのうち、変換データカテゴリ決定部32により決定された変換データカテゴリに対応する変換元音声データのみを変換して変換音声データを生成し、変換音声データ追加部33に渡す。変換音声データ追加部33は、音声データ変換部13により生成された変換音声データを目標音声データに追加することにより、音声データセットを生成する。これにより、変換処理を行う音声データを減少させることができ、高速に処理を行うことができる。
また、本実施形態に係る音声合成装置は、変換データカテゴリ決定部32により決定された変換データカテゴリをユーザに提示するカテゴリ提示部(図示せず)を備える構成としてもよい。この場合、カテゴリ提示部は、例えば、文字情報の表示や音声ガイドなどにより、変換データカテゴリ決定部32により決定された変換データカテゴリをユーザに提示して、目標音声データが不足しているカテゴリをユーザに認識させる。これにより、ユーザは、目標音声データが不足しているカテゴリの音声データを追加収録して、目標の発話音声に対する類似性をより高めた音声合成装置にカスタマイズすることができる。つまり、まずは少量の目標音声データの収録のみで試用の音声合成装置を提供し、その後、追加収録されたデータも含めた目標音声データと変換音声データとを併せて音声合成データを再度生成することで、目標の発話音声に対する類似性をさらに高めた音声合成装置を実現することができる。
これにより、音声合成装置のアプリケーション開発者に対しては試用の音声合成装置を迅速に提供しつつ、最終版としては、より目標音声データとの類似性を高めた音声合成装置を市場に提供することが可能になる。
上述したように、本実施形態に係る音声合成装置は、目標音声データと変換音声データとを含む音声データセットを生成し、生成した音声データセットに基づいて、合成音声の生成に用いる音声合成データを生成する。この技術思想は、合成音声の音声波形の生成と韻律(基本周波数列、音韻の継続長)の生成のいずれにも適用することができ、また、様々な声質変換方式や音声合成方式に対しても広く適用することができる。
以下では、素片選択に基づく音声合成を行う音声合成装置において、合成音声の音声波形の生成に本実施形態の技術思想を適用した例を、第1実施例として説明する。また、素片選択に基づく音声合成を行う音声合成装置において、基本周波数パターンコードブックとオフセット制御を用いた基本周波数列の生成に本実施形態の技術思想を適用した例を、第2実施例として説明する。また、素片選択に基づく音声合成を行う音声合成装置において、積和数量化モデルによる継続長の生成に本実施形態の技術思想を適用した例を、第3実施例として説明する。また、HMMに基づく音声合成を行う音声合成装置において、合成音声の音声波形および韻律の生成に本実施形態の技術思想を適用した例を、第4実施例として説明する。
<第1実施例>
図7は、第1実施例の音声合成装置のブロック図である。第1実施例の音声合成装置は、図7に示すように、変換元音声素片記憶部(第2記憶部)101と、目標音声素片記憶部(第1記憶部)102と、音声素片変換部(第1生成部)103と、音声素片セット生成部(第2生成部)104と、音声素片データベース生成部(第3生成部)105と、音声素片データベース記憶部110と、音声合成部(第4生成部)106と、を備える。
変換元音声素片記憶部101は、任意の発話音声から得られる音声素片(変換元音声素片)を、音韻種別や音韻環境情報などの属性情報とともに記憶する。
目標音声素片記憶部102は、目標の発話音声から得られる音声素片(目標音声素片)を、音韻種別や音韻環境情報などの属性情報とともに記憶する。
図8は、目標音声素片記憶部102および変換元音声素片記憶部101に記憶されている音声素片および属性情報の具体例を示している。ここでは、合成単位として半音素を用いており、発話音声の音声波形を半音素単位に切り出した波形を音声素片として用いる。目標音声素片記憶部102および変換元音声素片記憶部101には、この音声素片の波形とともに、音韻種別を表す音素名や、音韻環境情報である隣接音素名のほか、基本周波数、継続時間長、境界スペクトルパラメータ、およびピッチマークの情報などが、音声素片の属性情報として記憶されている。
目標音声素片記憶部102および変換元音声素片記憶部101に記憶される音声素片と属性情報は、以下のように生成される。まず、発話音声の音声波形データとその読み情報から、音素境界を求めてラベリングを行い、基本周波数抽出を行う。次に、ラベリングした音素に基づいて、半音素を単位として波形の切り出しを行って音声素片を生成する。さらに、基本周波数からピッチマークを算出し、また素片の境界におけるスペクトルパラメータを求める。スペクトルパラメータとしては、メルケプストラムやメルLSPなどのパラメータを用いることができる。音素名は、音素の名前と左側半音素か右側半音素かどうかの情報を表している。また、隣接音素名は、左側半音素の場合はその左の音素名、右側半音素の場合はその右側の音素名を隣接音素名として記憶させている。図8に示す/SIL/は、ポーズや文頭など、隣接音素が無音であることを示している。基本周波数としては、音声素片内の平均基本周波数を、継続時間長は、音声素片の長さを表しており、接続境界におけるスペクトルパラメータを記憶している。
音声素片変換部103は、変換元音声素片記憶部101が記憶する変換元音声素片を、目標の声質に近づけるように変換し、変換音声素片を生成する。
図9は、音声素片変換部103の構成例を示すブロック図である。音声素片変換部103は、図9に示すように、声質変換規則学習データ生成部111と、声質変換規則学習部112と、声質変換規則記憶部113と、声質変換部114と、を備える。
声質変換規則学習データ生成部111は、目標音声素片記憶部102に記憶されている目標音声素片と変換元音声素片記憶部101に記憶されている変換元音声素片とを対応付けて、声質変換規則の学習データとなる音声素片の対を生成する。例えば、目標音声素片記憶部102と変換元音声素片記憶部101とを同じ文章を収録した音声から生成しておき、同一文内の音声素片を対応付けすることや、目標音声素片の各音声素片と変換元音声素片の距離を求めて最も近い音声素片を対応付けすることにより、音声素片のペアを生成することができる。
図10は、声質変換規則学習データ生成部111が、属性の距離を用いて音声素片間のコストを求め、コストを最小化するように各目標音声素片に対して、変換元音声素片から素片選択する場合の処理を示すフローチャートである。この場合、声質変換規則学習データ生成部111は、目標音声素片記憶部102が記憶する各目標音声素片に対して、変換元音声素片記憶部101が記憶している同じ音韻のすべての音声素片に対するループをステップS201からステップS203で行い、ステップS202においてコストを計算する。コストは、目標音声素片の属性情報と変換元音声素片の属性情報との歪みをコスト関数として表したものであり、属性情報ごとにサブコスト関数Cn(ut,uc)(n:1,…,N、Nはサブコスト関数の数)として表す。ここで、utは目標の音声素片、ucは変換元の音声素片を表す。サブコスト関数は、目標の音声素片と変換元の音声素片の基本周波数の違い(差)を表す基本周波数コストC1(ut,uc)、音韻継続時間長の違い(差)を表す音韻継続時間長コストC2(ut,uc)、素片境界におけるスペクトルの違い(差)を表すスペクトルコストC3(ut,uc),C4(ut,uc)、および音韻環境の違い(差)を表す音韻環境コストC5(ut,uc),C6(ut,uc)を用いる。
具体的には、基本周波数コストC1(ut,uc)は、下記式(1)に示すように、対数基本周波数の差として算出する。
ここで、f(u)は、音声素片uに対応する属性情報から平均基本周波数を取り出す関数を表す。
また、音韻継続時間長コストC2(ut,uc)は、下記式(2)から算出する。
ここで、g(u)は、音声素片uに対応する属性情報から音韻継続時間長を取り出す関数を表す。
また、スペクトルコストC3(ut,uc),C4(ut,uc)は、下記式(3)に示すように、音声素片の境界におけるケプストラム距離から算出する。
ここで、hl(u)は、音声素片uの左素片境界を表し、hr(u)は、右素片境界のケプストラム係数をベクトルとして取り出す関数を表す。
また、音韻環境コストC5(ut,uc),C6(ut,uc)は、下記式(4)に示すように、隣の素片が等しいかどうかを表す距離から算出する。
目標音声素片と変換元音声素片の属性情報の歪みを表すコスト関数Cn(ut,uc)は、下記式(5)に示すように、上述の各サブコスト関数の重み付き和として定義する。
ここで、wnはサブコスト関数の重みを表す。wnはすべて「1」とすることもでき、適切な素片選択がなされるように任意の値を設定することができる。
上記式(5)は、ある目標音声素片に、変換元音声素片の一つを当てはめた場合の歪みを表す当該音声素片のコスト関数である。声質変換規則学習データ生成部111は、図10のステップS202でこのようなコスト計算を行った後、ステップS204において、コストが最小となる変換元音声素片を選択する。これにより、学習データとなる音声素片の対が生成される。なお、ここでの同じ音韻とは、音声単位に対応した音韻の種類が等しいものであり、半音素単位であれば「aの左素片」、「iの右素片」などの種類が等しいことを示す。
声質変換規則学習部112は、声質変換規則学習データ生成部111により声質変換規則の学習データとなる音声素片の対が生成されると、この学習データを用いた学習により、声質変換規則を生成する。声質変換規則とは、変換元音声素片を目標音声素片に近づけるための規則であり、例えば、音声素片のスペクトルパラメータの変換規則として生成することができる。
声質変換規則学習部112は、例えば、GMMに基づくメルケプストラムの回帰分析によって声質変換を行うための声質変換規則を学習により生成する。GMMに基づく声質変換規則では、GMMにより変換元スペクトルパラメータをモデル化し、入力した変換元スペクトルパラメータがGMMの各混合成分において観測される事後確率により重み付けして声質変換を行う。GMMλは、ガウス分布の混合として、下記式(6)で表される。pは尤度を表し、cは混合、wcは混合重み、p(x|λc)=N(x|μc,Σc)は混合cにおける平均μc、分散Σcのガウス分布の尤度を表す。
このとき、GMMに基づく声質変換の変換規則は、各混合の回帰行列をAcの重み付け和として下記式(7)で示される。
ただし、p(mc|x)は、xが混合mcにおいて観測される確率であり、下記式(8)により求める。
GMMに基づく声質変換では、各混合の間で連続に変化する回帰行列が得られるという特徴がある。各混合の回帰行列をAcとしたとき、xは、上記式(7)の事後確率に基づいて、各混合の回帰行列を重み付けするように適応される。
図11は、声質変換規則学習部112の処理を示すフローチャートである。声質変換規則学習部112は、図11に示すように、まずステップS301において、学習データの音声素片対をスペクトル分析して特徴量を求める。スペクトル特徴としてピッチ同期分析によってメルケプストラムを抽出する場合、音声素片の各ピッチマークを中心としてピッチの2倍の長さのハニング窓による窓掛け処理を行ってピッチ波形を抽出し、抽出したピッチ波形にメルケプストラム分析を適用することで求めることができる。無声音の場合やピッチ同期分析を用いない場合は、所定のフレーム長、フレームレートによって短時間スペクトル分析を行って求めることもできるし、メルLSPなどほかのパラメータも利用できる。
次に、声質変換規則学習部112は、ステップS302において、GMMを最尤推定する。GMMは、まずLBGアルゴリズムで初期クラスタを生成し、EMアルゴリズムによって更新することによりGMMの各パラメータを最尤推定してモデルの学習を行うことができる。
次に、声質変換規則学習部112は、すべての学習データに対するループをステップS303からステップS305で行い、ステップS304において、回帰行列を求めるための方程式の係数を求める。具体的には、上記式(7)により求めた重みを利用して、回帰分析を行うため方程式の係数が求まる。回帰分析を行う方程式は、下記式(9)で表される。
ここで、kをスペクトルパラメータの次元としたとき、Ykは目標のk次のスペクトルパラメータを並べたベクトルであり、Xおよびakは下記式(10)で表されるように、Xは各行が、目標のスペクトルパラメータと対をなしている変化元のスペクトルパラメータにオフセット項lを加えてGMMの各混合重みをかけて並べたベクトルからなる行列、akは、各混合の回帰行列のk次成分に対応するベクトルを並べたベクトルである。
ただし、XTは行列Xの転置を表す。
声質変換規則学習部112は、ステップS303からS305においては、(XTX)およびXTYkを求め、ステップS306において、ガウスの消去法やコレスキー分解法などにより方程式の解を求めて、各混合の回帰行列Acを求める。
このように、GMMに基づく声質変換規則では、GMMのモデルパラメータλおよび、各混合における回帰行列Acが声質変換規則になり、得られた規則を声質変換規則記憶部113に記憶させる。
声質変換部114は、声質変換規則記憶部113が記憶する声質変換規則を変換元音声素片に適用して変換音声素片を求める。
図12は、声質変換部114の処理を示すフローチャートである。声質変換部114は、図12に示すように、まずステップS401において、変換元音声素片のスペクトル分析を行い、ステップS402において、ステップS401で求めたスペクトルパラメータに対して、声質変換規則記憶部113に記憶されている声質変換規則を用いてスペクトルパラメータの変換を行う。すなわち、声質変換部114は、ステップS402で上記式(7)による変換処理を適用する。
その後、声質変換部114は、ステップS403において、変換パラメータからピッチ波形を生成し、ステップS404において、ステップS403で得られたピッチ波形を重畳することにより、変換音声素片を生成する。
図13は、実際に変換元音声素片を変換音声素片に変換した例を示している。声質変換部114は、変換元音声素片から抽出したピッチ波形にスペクトル分析を適用して(ステップS401)対数スペクトルを求め、スペクトルパラメータを求める。このスペクトルパラメータに声質変換規則を適用して(ステップS402)変換パラメータを得た後、逆FFTなどにより変換パラメータからピッチ波形を生成し(ステップS403)、生成されたピッチ波形を重畳して、変換音声素片を生成する(ステップS404)。
以上のように、音声素片変換部103では、変換元音声素片に対して、目標音声素片と変換元音声素片から生成した声質変換を適用して、変換音声素片を生成する。なお、音声素片変換部103の構成は上述したものに限定されるものではなく、回帰分析のみによる方法や、動的特徴の分布を考慮した方法、サブバンド基底パラメータに周波数ワーピングと振幅のシフトによって変換する方法など、他の声質変換手法を利用することができる。
音声素片セット生成部104は、音声素片変換部103により生成された変換音声素片と、目標音声素片記憶部102が記憶する目標音声素片とを併せることにより、目標音声素片と変換音声素片とを含む音声素片セットを生成する。
音声素片セット生成部104は、音声素片変換部103により生成されたすべての変換音声素片と目標音声素片とを併せて音声素片セットを生成してもよいが、変換音声素片の一部を目標音声素片に追加することで音声素片セットを生成することができる。大量の変換元音声素片と少量の目標音声素片とを用いる利用形態において、目標音声素片と変換音声素片すべてを併せて音声素片セットを生成すると、合成音声の生成時に変換音声素片の利用される割合が高くなり、適切な目標音声素片が存在する区間においても目標音声素片が利用されなくなる場合があるという問題がある。このため、目標音声素片に存在する音素は目標音声素片をそのまま用い、不足分の音声素片を変換音声素片から加えることにより、目標音声素片を反映しつつ網羅率の高い音声素片セットを生成することができる。
図14は、変換音声素片の一部を目標音声素片に追加して音声素片セットを生成する音声素片セット生成部104の構成例を示すブロック図である。この音声素片セット生成部104は、音声素片の属性情報として音韻種別を表す音素名を用いる場合の構成例であり、図14に示すように、音素頻度算出部(算出部)121と、変換音素カテゴリ決定部(決定部)122と、変換音声素片追加部(追加部)123と、を備える。
音素頻度算出部121は、目標音声素片記憶部102が記憶する目標音声素片の音素カテゴリごとの個数を算出して、音素カテゴリごとのカテゴリ頻度を算出する。音素カテゴリごとのカテゴリ頻度の算出には、例えば図8に示した属性情報のうち、音韻種別を表す音素名が用いられる。
変換音素カテゴリ決定部122は、算出された音素カテゴリごとのカテゴリ頻度に基づいて、目標音声素片に追加する変換音声素片のカテゴリ(以下、変換音素カテゴリという。)を決定する。変換音素カテゴリの決定には、例えば、算出されたカテゴリ頻度が予め定めた所定値よりも小さい音素カテゴリを、変換音素カテゴリとして決定するといった方法を利用することができる。
変換音声素片追加部123は、決定された変換音素カテゴリに対応する変換音声素片を目標音声素片に追加して音声素片セットを生成する。
図15は、音素頻度算出部121により算出された音素カテゴリごとのカテゴリ頻度を表す音素頻度テーブルの一例を示す図である。図15では、目標の1文章、10文章、50文章および、変換元の600文章に含まれる、音素/a/、/i/、・・・の音声素片数を示している。なお、目標の1文章、10文章、50文章とは、目標音声素片の抽出に用いる目標の発話音声を収録したときに読み上げられた文章がそれぞれ1文章、10文章、50文章であることを示し、変換元600文章とは、変換元音声素片の抽出に用いる任意の発話音声を収録したときに読み上げられた文章が600文章であることを示している。
図15の例では、例えば、目標10文章の場合、音素/a/のカテゴリ頻度は53、音素/g/のカテゴリ頻度は7であり、変換元600文章の4410、708と比べて、非常に少ない。ここで、変換音素カテゴリを決定するための閾値となる上記の所定値を15と定めた場合、変換音素カテゴリ決定部122は、目標1文章の場合はすべての音素カテゴリを、また目標10文章の場合は、/g/、/z/、/ch/、/ki/を、また、50文章の場合には/z/および/ki/を、それぞれ変換音素カテゴリとして決定する。なお、/ki/は、無声化母音の/き/を表す。変換音声素片追加部123は、変換音素カテゴリとして決定された変換音素カテゴリに対応する変換音声素片を目標音声素片に追加して、音声素片セットを生成する。
図14に示す構成の音声素片セット生成部104では、以上のように、目標音声素片の個数の少ない音素カテゴリに対応する変換音声素片が目標音声素片に追加されて、音声素片セットが生成される。ここで、変換元音声素片のすべてを目標音声素片と併せて音声素片セットを生成した場合を考えると、例えば、目標50文章の/a/の場合には、253個の目標音声素片があり、入力文に対して適切な環境の音声素片が含まれている可能性がある。しかし、対応する音素カテゴリである/a/について、変換元音声素片の4410個すべてが追加された場合、/a/の音声素片の5.4%のみが目標音声素片となり、それらが利用される可能性が低くなるため、目標の発話音声に対する合成音声の類似性が低下する虞がある。これに対して、音素カテゴリごとのカテゴリ頻度に応じて変換音素カテゴリを決定し、カテゴリ頻度が小さい音素カテゴリに対応する変換音声素片を目標音声素片に追加して音声素片セットを生成するようにすれば、必要以上に変換音声素片を追加することによる合成音声の目標との類似度の低下を抑えることができ、目標の発話音声の特徴をより再現した合成音声が得られる。
なお、ここでは、音韻種別を表す音素名を属性情報として用いて音素カテゴリごとのカテゴリ頻度を求めたが、音素名および音韻環境を属性情報として用いて、各音素カテゴリのカテゴリ頻度を算出してもよい。目標音声素片記憶部102および変換元音声素片記憶部101には、図8に示したように、音韻環境情報である隣接音素名も音声素片の属性情報として記憶されているため、各音素内の隣接音素ごとにカテゴリ頻度を算出することができる。このように、音素名および隣接音素名を属性情報として用いてカテゴリ頻度を算出することで、より詳細に変換音素カテゴリを決定することができ、より適切に変換音声素片の追加を行うことができる。
また、カテゴリ頻度の算出に用いる属性情報としては、基本周波数や継続長など、他の属性情報をさらに利用してもよい。
また、変換音声素片を目標音声素片に追加して音声素片セットを生成する際に、変換素片カテゴリに対応する変換音声素片に隣接する音声素片、もしくはその近傍の複数の変換音声素片、もしくはその変換音声素片を含む文内の変換音声素片など、複数の変換音声素片を併せて追加してもよい。これにより、接続コストの低い近傍の変換音声素片を併せて音声素片セットに含ませることができる。
また、変換音声素片を目標音声素片に追加して音声素片セットを生成する際に、変換音素カテゴリに含まれるすべての変換音声素片を追加してもよいし、部分的に追加してもよい。部分的に追加する場合、追加する変換音声素片の個数の上限を定めて出現順もしくはランダムに選択してもよいし、変換音声素片をクラスタリングし、各クラスタの代表となる変換音声素片を追加してもよい。クラスタの代表を追加することで、網羅性を維持したまま適切に変換音声素片の追加を行うことができる。
音声素片データベース生成部105は、音声素片セット生成部104により生成された音声素片セットに基づいて、合成音声の波形生成に用いる音声素片の集合である音声素片データベースを生成する。ここでは、音声素片セットの音声素片および属性情報をまとめて音声素片データベースを生成し、必要に応じて波形圧縮処理等を適用して、音声合成部106に入力可能な形式の音声素片データを生成する。
音声素片データベース生成部105により生成される音声素片データベースは、音声合成部106において素片選択に基づく音声合成を行う際に用いる音声素片とその属性情報を含む。音声素片データベースは、音声合成部106での音声合成に用いるデータである音声合成データの一態様として、音声素片データベース記憶部110に格納される。音声素片データベースとしては、例えば、図8に示した目標音声素片記憶部102および変換元音声素片記憶部101の例と同様に、ピッチマークの付与された音声素片の波形が当該音声素片を識別するための番号とともに格納されており、さらに、音韻種別を表す音素名、音韻環境情報である隣接音素名、基本周波数、継続時間長(音韻の継続長)、接続境界ケプストラムパラメータなど、素片選択の際に用いる属性情報がともに格納されている。属性情報は、目標音声素片記憶部102および変換元音声素片記憶部101に記憶されている属性情報がそのまま用いられる。
音声合成部106は、音声素片データベース生成部105により生成された音声素片データベースを用いて、入力テキストに対応する合成音声を生成する。具体的には、音声合成部106は、入力されたテキストに対して、図4に示したテキスト解析部43および韻律生成部44の処理を行った後、波形生成部45において、音声素片データベース生成部105により生成された音声素片データベースを用いて素片選択処理を行い、合成音声を生成する。
図16は、音声合成部106における波形生成部45の詳細を示すブロック図である。音声合成部106における波形生成部45は、図16に示すように、素片選択部131および変形・接続部132を備える。素片選択部131は、入力される音韻系列・韻律情報に基づいて、音声素片データベース133に格納されている音声素片の中から合成音声に用いる音声素片を選択する。変形・接続部132は、素片選択部131により選択された音声素片に対して、入力される韻律情報に従った韻律変形および接続処理を行って、合成音声の音声波形を生成する。なお、変形・接続部132は、韻律変形を行わず、素片選択部131により選択された素片をそのまま接続して合成音声の音声波形を生成してもよい。
素片選択部131の素片選択処理に用いる音声素片データベース133は、上述したように、目標音声素片と変換音声素片とを併せた音声素片セットから生成されたデータベースである。素片選択部131は、入力される音韻系列の各音声単位に対し、入力される韻律情報と、音声素片データベース133が保持する属性情報とに基づいて合成音声の歪みの度合いを推定し、推定した合成音声の歪みの度合いに基づいて音声素片データベース133に格納されている音声素片の中から、合成音声に用いる音声素片を選択する。
ここで、合成音声の歪みの度合いは、音声素片データベース133に保持されている属性情報と、図4に示したテキスト解析部43および韻律生成部44で生成される音韻系列や韻律情報などの属性情報との違いに基づく歪みである目標コストと、接続する音声素片間の音素環境の違いに基づく歪みである接続コストの重み付け和として求められる。
ここで、音声素片を変形・接続して合成音声を生成する際に生ずる歪みの要因ごとにサブコスト関数Cn(ui,ui−1,ti)(n:1,…,N,Nはサブコスト関数の数)を定める。上記式(5)のコスト関数は、二つの音声素片の間の歪みを測るためのコスト関数であり、ここで定義するコスト関数は、波形生成部45に入力される韻律・音韻系列と音声素片との間の歪みを測るためのコスト関数である点が異なる。
tiは、入力された音韻系列および韻律情報に対応する目標とする音声(目標音声)をt=(t1,…,tI)としたときのi番目のセグメントに対応する部分の音声素片の目標とする属性情報を表し、uiは、音声素片データベース133に格納されている音声素片のうち、tiと同じ音韻の音声素片を表す。上記のサブコスト関数は、音声素片データベース133に格納されている音声素片を用いて合成音声を生成したときに生ずる当該合成音声の目標音声に対する歪みの度合いを推定するためのコストを算出するためのものである。
目標コストとしては、音声素片データベース133に記憶されている音声素片の基本周波数と目標の基本周波数との違い(差)を表す基本周波数コスト、音声素片の音韻継続時間長と目標の音韻継続時間長との違い(差)を表す音韻継続時間長コスト、および、音声素片の音韻環境と目標の音韻環境との違い(差)を表す音韻環境コストを用いる。接続コストとしては、接続境界でのスペクトルの違い(差)を表すスペクトル接続コストを用いる。
具体的には、基本周波数コストは、下記式(11)から算出する。
ここで、viは音声素片データベース133に格納されている音声素片uiの属性情報を表し、f(vi)は属性情報viから平均基本周波数を取り出す関数を表す。
また、音韻継続時間長コストは、下記式(12)から算出する。
ここで、g(vi)は、音素環境viから音韻継続時間長を取り出す関数を表す。
また、音韻環境コストは、下記式(13)から算出し、隣接する音韻が一致しているかどうかを表す。
また、スペクトル接続コストは、下記式(14)に示すように、2つの音声素片間のケプストラム距離から算出する。
ここで、h(ui)は、音声素片uiの接続境界のケプストラム係数をベクトルとして取り出す関数を表す。
これらのサブコスト関数の重み付き和を音声単位コスト関数と定義する。音声単位コスト関数は、下記式(15)のように表される。
ここで、wnはサブコスト関数の重みを表す。wnはすべて「1」としてもよいし、適宣調節して用いてもよい。
上記式(15)は、ある音声単位に、ある音声素片を当てはめた場合の当該音声素片の音声単位コストである。入力される音韻系列を音声単位で区切ることにより得られる複数のセグメントのそれぞれに対し、上記式(15)から音声単位コストを算出した結果を、全セグメントについて足し合わせたものをコストと呼び、当該コストを算出するためのコスト関数を下記式(16)に示すように定義する。
素片選択部131は、上記式(11)〜(16)に示したコスト関数を用いて、音声素片データベース133に格納されている音声素片の中から合成音声に用いる音声素片を選択する。ここでは、音声素片データベース133に格納されている音声素片の中から、上記式(16)で算出されるコスト関数の値が最小となる音声素片の系列を求める。このコストが最小となる音声素片の組み合わせを最適素片系列と呼ぶこととする。すなわち、最適音声素片系列中の各音声素片は、入力される音韻系列を合成単位で区切ることにより得られる複数のセグメントのそれぞれに対応し、最適音声素片系列中の各音声素片から算出された上記音声単位コストと上記式(16)より算出されたコストの値は、他のどの音声素片系列よりも小さい値である。なお、最適素片系列の探索は、動的計画法(DP:dynamic programming)を用いることでより効率的に行うことができる。
変形・接続部132は、素片選択部131により選択された音声素片を、入力される韻律情報に従って変形し、接続することで合成音声の音声波形を生成する。変形・接続部132は、選択された音声素片からピッチ波形を抽出し、当該音声素片の基本周波数、音韻継続時間長のそれぞれが、入力される韻律情報に示されている目標の基本周波数、目標の音韻継続時間長になるようにピッチ波形を重畳することで、音声波形を生成することができる。
図17は、変形・接続部132の処理を説明するための図である。図17では、「あいさつ」という合成音声の音素「a」の音声波形を生成する例を示しており、図の上から順に、選択された音声素片、ピッチ波形抽出のためのハニング窓、ピッチ波形、合成音声をそれぞれ示している。合成音声の縦棒はピッチマークを表しており、入力される韻律情報に示されている目標の基本周波数、目標の音韻継続時間長に応じて生成される。変形・接続部132は、このピッチマークに従って所定の音声単位ごとに、選択された音声素片から抽出したピッチ波形を重畳合成することにより、素片の編集を行って基本周波数および音韻継続時間長を変更する。その後、音声単位(合成単位)間で、隣り合うピッチ波形を接続して合成音声を生成する。
以上詳細に説明したように、第1実施例の音声合成装置は、変換音声素片と目標音声素片とを併せて生成した音声素片セットに基づいて音声素片データベースを生成し、この音声素片データベースを用いて、素片選択型の音声合成により任意の入力文章に対応する合成音声を生成する。したがって、第1実施例の音声合成装置によれば、目標音声素片の特徴を再現しつつ、変換音声素片により網羅性を高めた音声素片データベースを生成して、合成音声を生成することができ、少量の目標音声素片から目標の発話音声に対する類似性の高い高品質な合成音声を得ることができる。
なお、上述した第1実施例の説明では、目標音声素片が音声合成時に利用される割合を高めるために、頻度に基づいて変換音素カテゴリを決定し、変換音素カテゴリに対応する変換音声素片のみを目標音声素片に追加して音声素片セットを生成したが、これに限定するものではない。例えば、目標音声素片と変換音声素片のすべてを含む音声素片セットを生成し、この音声素片セットに基づいて音声素片データベース133を作成しておき、素片選択部131において、音声素片データベース133から目標音声素片が選択される割合が高くなる、つまり、目標音声素片が優先的に合成音声に利用されるように素片選択を行ってもよい。
この場合、音声素片データベース133に、各音声素片が目標音声素片か変換音声素片かを示す情報を保持しておき、目標コストのサブコストの一つとして、目標音声素片を選択した場合にコストが小さくなるような目標音声素片コストを追加すればよい。下記式(17)は、目標音声素片コストを表しており、当該音声素片が変換音声素片の場合1、目標音声素片の場合0を返す関数である。
この場合、素片選択部131は、上記式(11)〜式(14)に上記式(17)を加えて、上記式(18)で示す音声単位コスト関数を求め、上記式(16)で示すコスト関数を求める。適切にサブコスト重みw6を定めることにより、音声素片の目標との歪みの度合いと変換音声素片を用いることによる目標との類似性の低下とを考慮した素片選択を行うことができる。これにより、目標の発話音声の特徴をより反映した合成音声を生成することができる。
なお、上述した第1実施例の説明では、音声合成部106における波形生成部45が素片選択型音声合成により合成音声を生成しているが、波形生成部45は、複数素片選択融合型音声合成により合成音声を生成する構成であってもよい。
図18は、複数素片選択融合型音声合成により合成音声を生成する構成の波形生成部45の詳細を示すブロック図である。この場合の波形生成部45は、図18に示すように、複数素片選択部141、複数素片融合部142、および変形・接続部132を備える。複数素片選択部141は、入力される音韻系列・韻律情報に基づいて、音声素片データベース133に格納されている音声素片の中から合成音声に用いる音声素片を音声単位(合成単位)ごとに複数選択する。複数素片融合部142は、選択された複数の音声素片を融合して融合音声素片を生成する。変形・接続部132は、複数素片融合部142により生成された融合音声素片に対して、入力される韻律情報に従った韻律変形および接続処理を行って、合成音声の音声波形を生成する。
複数素片選択部141は、まず上記式(16)のコスト関数の値を最小化するように、DPアルゴリズムを用いて最適音声素片系列を選択する。その後、複数素片選択部141は、各音声単位に対応する区間において、前後の隣の音声単位区間の最適音声素片との接続コストおよび該当する区間の入力された属性との目標コストとの和をコスト関数として、音声素片データベース133に含まれる同じ音韻の音声素片の中からコスト関数の値の小さい順に、複数の音声素片を選択する。
複数素片選択部141により選択された複数の音声素片は、複数素片融合部142により融合され、選択された複数の音声素片を代表する音声素片である融合音声素片が得られる。複数素片融合部142による音声素片の融合は、選択された各音声素片からピッチ波形を抽出し、抽出したピッチ波形の波形数をピッチ波形の複製や削除を行うことにより目標とする韻律から生成したピッチマークに揃え、各ピッチマークに対応する複数のピッチ波形を時間領域で平均化することにより行うことができる。得られた融合音声素片は、変形・接続部132において、韻律の変更および他の融合音声素片との接続が行われる。これにより、合成音声の音声波形が生成される。
複数素片選択融合型の音声合成は、素片選択型の音声合成よりも安定感の高い合成音声が得られることが確認されている。このため、本構成によれば、目標の発話音声に対する類似性が極めて高く、また安定感・肉声感の高い音声合成を行うことができる。
<第2実施例>
図19は、第2実施例の音声合成装置のブロック図である。第2実施例の音声合成装置は、図19に示すように、変換元基本周波数列記憶部(第2記憶部)201と、目標基本周波数列記憶部(第1記憶部)202と、基本周波数列変換部(第1生成部)203と、基本周波数列セット生成部(第2生成部)204と、基本周波数列生成データ生成部(第3生成部)205と、基本周波数列生成データ記憶部210と、音声合成部(第4生成部)206と、を備える。
変換元基本周波数列記憶部201は、任意の発話音声から得られるアクセント句単位の基本周波数列(変換元基本周波数列)を、アクセント句のモーラ数、アクセント型、アクセント句種別(文内のアクセント句位置)などの属性情報とともに記憶する。
目標基本周波数列記憶部202は、目標の発話音声から得られるアクセント句単位の基本周波数列(目標基本周波数列)を、アクセント句のモーラ数、アクセント型、アクセント句種別(文内のアクセント句位置)などの属性情報とともに記憶する。
図20は、目標基本周波数列記憶部202および変換元基本周波数列記憶部201に記憶されている基本周波数列および属性情報の具体例を示している。目標基本周波数列記憶部202および変換元基本周波数列記憶部201には、アクセント句単位の基本周波数列とその属性情報が記憶されている。図20の例では、基本周波数列の属性情報として、アクセント句のモーラ境界情報、モーラ列、モーラ数、アクセント型、アクセント句種別、品詞などの情報が記憶されている。例えば、図20の1番目(基本周波数列番号が1)には、「目の前の」という音声から抽出した基本周波数列に対して、各モーラ列の境界情報、モーラ列として/me/no/ma/e/no/、モーラ数およびアクセント型として5モーラ3型(モーラ数が5でアクセント型は3型)、アクセント句種別(文や呼気段落内の当該アクセント句位置)として/文頭/、品詞として/名詞−格助/の各属性情報が保持されている。
基本周波数列変換部203は、変換元基本周波数列記憶部201が記憶する変換元基本周波数列を、目標の発話音声の韻律に近づけるように変換し、変換基本周波数列を生成する。
図21は、基本周波数列変換部203の構成例を示すブロック図である。基本周波数列変換部203は、図21に示すように、基本周波数列変換規則学習部211と、基本周波数列変換規則記憶部212と、変換部213と、を備える。基本周波数列変換規則学習部211は、変換元基本周波数列記憶部201に記憶されている変換元基本周波数列と、目標基本周波数列記憶部202に記憶されている目標基本周波数列とから、基本周波数列の変換を行うための変換規則を学習により生成し、基本周波数列変換規則記憶部212に記憶させる。変換部213は、基本周波数列変換規則記憶部212が記憶する変換規則を変換元基本周波数列に適用して変換基本周波数列を求める。
図22は、基本周波数列変換部203の処理の一例を示すフローチャートであり、変換元基本周波数列のヒストグラムを目標基本周波数列のヒストグラムに揃えるように変換するヒストグラム変換による変換方法を適用した場合のフローチャートである。
基本周波数列変換部203は、ヒストグラム変換により基本周波数列の変換を行う場合、図22に示すように、まずステップS501において、目標基本周波数列のヒストグラムを求める。次に、基本周波数列変換部203は、ステップS502において、変換元基本周波数列のヒストグラムを計算する。次に、基本周波数列変換部203は、ステップS503において、ステップS501およびステップS502で求めたヒストグラムに基づいて、ヒストグラム変換テーブルを生成する。次に、基本周波数列変換部203は、ステップS504において、ステップS503で生成したヒストグラム変換テーブルに基づいて変換元基本周波数列を変換し、変換基本周波数列を生成する。
図23は、基本周波数列変換部203によるヒストグラム変換を説明する図であり、ヒストグラムおよび変換関数の具体例を示している。図23(a)は、変換元基本周波数列のヒストグラム(変換元ヒストグラム)および累積分布を示す。図23(b)は、目標基本周波数列のヒストグラム(目標ヒストグラム)および累積分布を示す。図23(c)は、これらのヒストグラムから生成した基本周波数変換関数を示す。
図23の例では、目標基本周波数列は、変換元基本周波数列と比較すると基本周波数が高く、またレンジも狭くなっている様子が分かる。図23(c)に示す基本周波数変換関数により、変換元基本周波数列の累積分布が目標基本周波数列の累積分布に揃うように変換される。図23(a)から、変換元基本周波数列の累積分布の中央値は5.47となっており、図23(b)から、目標基本周波数列の累積分布の中央値は5.76となっており、図23(c)に示す基本周波数変換関数では、これらが対応づけられて変換されることが分かる。
図23(c)の基本周波数変換関数の入力および出力を所定の間隔で抽出し、テーブル化したものがヒストグラム変換テーブルである。このヒストグラム変換テーブルは、図22のフローチャートのステップS503において、基本周波数列変換規則学習部211によって変換規則として生成され、基本周波数列変換規則記憶部212に記憶される。
変換元基本周波数列の変換時には、基本周波数列変換部213が、入力xに対して、xt k≦x<xt k+1を満たすkを変換テーブルから選び、下記式(18)に示す線形補間により出力yを求める。
ただし、xt、ytは、変換テーブルの入力エントリおよび出力エントリを示す。
図22のフローチャートのステップS504では、以上のように生成した変換規則により変換元基本周波数列を変換し、変換基本周波数列を得る。
図24は、実際に変換元基本周波数列を変換して得た変換基本周波数列の例を示す図である。図24(a)は、「目の前の浜辺を」という句に対する変換元基本周波数列の概形を示し、図24(b)は、図24(a)の変換元基本周波数列を変換することで得られる変換基本周波数列の概形を示している。図24に示す例では、ヒストグラム変換によって、基本周波数が上昇し、また値のレンジが変換されていることが分かる。なお、本例では継続長も同様の変換を行っているため、時間方向にも変形されている。
なお、以上はヒストグラム変換による変換方法を適用した変換規則の例であるが、変換元基本周波数列を変換するための変換規則はこれに限らず、例えば、平均値および標準偏差を目標基本周波数列に揃える変換方法を適用してもよい。
図25は、基本周波数列変換部203の処理の他の例を示すフローチャートであり、変換元基本周波数列の平均値および標準偏差を目標基本周波数列に揃えるように変換する変換方法を適用した場合のフローチャートである。
基本周波数列変換部203は、平均値および標準偏差を用いて基本周波数列の変換を行う場合は、図25に示すように、まずステップS601において、目標基本周波数列の平均および標準偏差を計算する。次に、基本周波数列変換部203は、ステップS602において、変換元基本周波数列の平均および標準偏差を計算する。次に、基本周波数列変換部203は、ステップS603において、ステップS601およびステップS602で計算した値から、下記式(19)に従って変換元基本周波数列を変換する。
ただし、μx、μyは変換元基本周波数列および目標基本周波数列の平均、σx、σyは標準偏差である。
また、基本周波数列の変換方法は、アクセント句種別ごとに分類して分類ごとにヒストグラム変換や平均・標準偏差に基づく変換を行う方法や、VQ、GMM、決定木などを用いて基本周波数列の分類を行って分類ごとに変更するなどを用いることができる。
基本周波数列セット生成部204は、基本周波数列変換部203により生成された変換基本周波数列と、目標基本周波数列記憶部202が記憶する目標基本周波数列とを併せることにより、目標基本周波数列と変換基本周波数列とを含む基本周波数列セットを生成する。
基本周波数列セット生成部204は、基本周波数列変換部203により生成されたすべての変換基本周波数列と目標基本周波数列とを併せて基本周波数列セットを生成してもよいが、変換基本周波数列の一部を目標基本周波数列に追加することで基本周波数列セットを生成することができる。
図26は、変換基本周波数列の一部を目標基本周波数列に追加して基本周波数列セットを生成する基本周波数列セット生成部204の構成例を示すブロック図である。この基本周波数列セット生成部204は、アクセント句の分類ごとの基本周波数列の頻度に基づいて基本周波数列セットを生成する例であり、図26に示すように、基本周波数列頻度算出部(算出部)221と、変換アクセント句カテゴリ決定部(決定部)222と、変換基本周波数列追加部(追加部)223と、を備える。
基本周波数列頻度算出部221は、目標基本周波数列記憶部202が記憶する目標基本周波数列について、アクセント句の分類(アクセント句カテゴリ)ごとの個数を算出して、アクセント句カテゴリごとのカテゴリ頻度を算出する。アクセント句の分類には、例えば図20に示した属性情報のうち、アクセント句種別、モーラ数およびアクセント型が用いられる。
変換アクセント句カテゴリ決定部222は、算出されたアクセント句カテゴリごとのカテゴリ頻度に基づいて、目標基本周波数列に追加する変換基本周波数列のアクセント句カテゴリ(変換アクセント句カテゴリ)を決定する。変換アクセント句カテゴリの決定には、例えば、算出されたカテゴリ頻度が予め定めた所定値よりも小さいアクセント句カテゴリを、変換アクセント句カテゴリとして決定するといった方法を利用することができる。
変換基本周波数列追加部223は、決定された変換アクセント句カテゴリに対応する変換基本周波数列を目標基本周波数列に追加して基本周波数列セットを生成する。
図27は、基本周波数列頻度算出部221により算出されたアクセント句カテゴリごとのカテゴリ頻度を表すアクセント句頻度テーブルの一例を示す図である。図27では、目標の1文章、10文章、50文章および、変換元の600文章に含まれるアクセント句の個数を示している。アクセント句は、アクセント句種別、モーラ数およびアクセント型により複数のアクセント句カテゴリに分類され、各アクセント句カテゴリに該当する基本周波数列の個数が、アクセント句の個数として示されている。例えば、/文頭−2−1/は、アクセント句種別が文頭で、2モーラ1型のアクセント句であることを示している。
変換アクセント句カテゴリ決定部222は、例えば、図27に示すアクセント句個数が予め定めた所定値よりも小さいアクセント句カテゴリを変換アクセント句カテゴリとして決定する。例えば、所定値を5と定めた場合、変換アクセント句カテゴリ決定部222は、目標1文章、目標10文章の場合はすべてのアクセント句カテゴリが変換アクセント句カテゴリとなり、目標50文章の場合には、/文頭−2−1/、/文頭−7−0/、/文頭−3−1/、/文頭−5−4/が変換アクセント句カテゴリとして決定される。
変換基本周波数列追加部223は、以上のように決定された変換アクセント句カテゴリに対応する変換基本周波数列を目標基本周波数列に追加して基本周波数列セットを生成する。変換基本周波数列を目標基本周波数列に追加する際には、変換アクセント句カテゴリに対応するすべての変換基本周波数列を目標基本周波数列に追加してもよいし、変換アクセント句カテゴリに対応する変換基本周波数列の中から代表するいくつかの変換基本周波数列を目標基本周波数列に追加してもよい。また、変換アクセント句カテゴリを含む文全体、もしくは呼気段落全体から抽出されたすべての変換元基本周波数列を変換して生成したすべての変換基本周波数列を目標基本周波数列に追加してもよい。
なお、ここでは、アクセント句種別、モーラ数およびアクセント型を属性情報として用いてアクセント句カテゴリを定め、アクセント句カテゴリごとのカテゴリ頻度を算出したが、変換元基本周波数列をクラスタリングすることによってカテゴリの分類を決定する方法や、品詞などより詳細な属性情報を利用してカテゴリの分類を決定する方法を用いてもよい。また、いくつかのモーラ数、アクセント型をまとめて同一のアクセント句カテゴリとして扱ってもよい。
基本周波数列生成データ生成部205は、基本周波数列セット生成部204により生成された基本周波数列セットに基づいて、合成音声の韻律生成に用いる基本周波数列生成データを生成する。基本周波数列生成データは、基本周波数パターン選択用データとオフセット推定用データとを含む。基本周波数列生成データ生成部205は、基本周波数列セット生成部204により生成された基本周波数列セットから、基本周波数パターンコードブックとその選択規則(基本周波数パターン選択用データ)とオフセット推定規則(オフセット推定用データ)とを学習し、基本周波数列生成データとする。基本周波数列生成データは、音声合成部206での音声合成に用いるデータである音声合成データの一態様として、基本周波数列生成データ記憶部210に格納される。
図28は、基本周波数列生成データ生成部205の処理を示すフローチャートである。基本周波数列生成データ生成部205は、図28に示すように、まずステップS701において、基本周波数列セットに含まれる基本周波数列(目標基本周波数列および変換基本周波数列)のクラスタリングを行う。次に、基本周波数列生成データ生成部205は、ステップS702において、ステップS701でクラスタリングした各クラスタの基本周波数パターンを学習によって求める。これにより、基本周波数パターンコードブックが生成される。次に、基本周波数列生成データ生成部205は、ステップS703において、クラスタの選択規則を学習する。次に、基本周波数列生成データ生成部205は、ステップS704において、オフセット推定規則を学習する。以上の処理により、基本周波数列生成データが生成される。なお、基本周波数列生成データの具体例については、基本周波数列生成データを用いて合成音声の基本周波数列を生成する処理の具体例とともに、詳細を後述する。
音声合成部206は、基本周波数列生成データ生成部205により生成された基本周波数列生成データを用いて、入力テキストに対応する合成音声を生成する。具体的には、音声合成部206は、入力されたテキストに対して、図4に示したテキスト解析部43の処理および韻律生成部44での継続長生成の処理を行った後、韻律生成部44において、基本周波数列生成データ生成部205により生成された基本周波数列生成データを用いて基本周波数列の生成を行い、生成した基本周波数列を用いて波形生成部45で波形生成を行って、合成音声を生成する。
図29は、音声合成部206における韻律生成部44の詳細を示すブロック図である。音声合成部206における韻律生成部44は、図29に示すように、継続長生成部231と、基本周波数パターン選択部232と、オフセット推定部233と、基本周波数列変形・接続部234と、を備える。
継続長生成部231は、テキスト解析部43での処理によって得られた入力テキストの読み情報および属性情報に基づき、予め用意された継続長生成データ235を用いて、合成音声の音韻ごとの継続長を推定する。
基本周波数パターン選択部232は、テキスト解析部43での処理によって得られた入力テキストの読み情報および属性情報に基づき、基本周波数列生成データ236に含まれる基本周波数パターン選択用データ237を用いて、合成音声の各アクセント句に対応する基本周波数パターンを選択する。
オフセット推定部233は、テキスト解析部43での処理によって得られた入力テキストの読み情報および属性情報に基づき、基本周波数列生成データ236に含まれるオフセット推定用データ238を用いてオフセット推定を行う。
基本周波数列変形・接続部234は、継続長生成部231が推定した音韻の継続長およびオフセット推定部233が推定したオフセットに従って、基本周波数パターン選択部232が選択した基本周波数パターンを変形させ、接続することにより、入力テキストに対応する合成音声の基本周波数列を生成する。
ここで、選択された基本周波数パターンをp、オフセットをb、継続長の時間伸縮を表す行列をDとすると、生成されるアクセント句の基本周波数パターンpは、下記式(20)のように求められる。
pの次数をN,cの次数をLとすると、DはL×Nの行列であり、bは定数、iはL次の要素を1とするベクトルである。NおよびLは、それぞれモーラ数とモーラ毎の基本周波数の点数から算出される。このとき、学習データrと生成される基本周波数パターンpとの誤差eは、下記式(21)で表される。
基本周波数列生成データを生成する処理を示す図28のフローチャートのステップS701では、下記式(22)で表される近似誤差が最小化されるように、基本周波数列セットに含まれる各アクセント句の基本周波数列をクラスタリングし、ステップS702では、クラスタ内の誤差の総和を最小化するように、下記式(22)で表される方程式を解くことによって、基本周波数パターンを求めている。
基本周波数パターンの選択およびオフセットの推定は、数量化I類によって行うことができる。数量化I類では、下記式(23)のように各属性のカテゴリから数値を推定する。
akmは予測係数であり、入力属性が対応する場合の係数akの和によって予測値が求められる。
基本周波数パターンの選択は、誤差の予測に基づいて行うことができる。上記式(21)により、学習データrと各クラスタの基本周波数パターンとの誤差を求めておき、図28のステップS703では、学習データrの属性から誤差を予測する予測係数を算出する。実際の誤差と、予測誤差との誤差を最小化するように係数akmを求める。これにより、各クラスタの基本周波数パターンの誤差の予測係数が求まり、基本周波数パターン選択用データ237に含まれるクラスタの選択規則となる。
オフセットは、アクセント句単位の基本周波数パターン全体を平行移動させる値であり、固定の値になる。オフセットの推定も、上記式(23)の数量化I類によって行うことができる。学習データrのオフセット値として、各アクセント句の最大値や平均値を用い、それらの値を上記式(23)によって推定する。この場合、上記式(23)の予測係数akmがオフセット推定規則(オフセット推定用データ238)となり、図28のステップS704では、学習データrのオフセットと予測値との誤差を最小化するように係数を求める。
音声合成部206の韻律生成部44では、基本周波数パターン選択部232が、入力された属性に対して基本周波数パターンそれぞれに対応するクラスタの誤差を、基本周波数パターン選択用データ237の数量化I類によって予測し、予測誤差が最小となるクラスタの基本周波数パターンを選択する。そして、オフセット推定部233が、オフセット推定用データ238である予測係数を用いて、数量化I類によりオフセット推定を行う。その後、基本周波数列変形・接続部234が、得られた基本周波数パターンcおよびオフセットbと、継続長から算出される変形行列Dを用いて、上記式(20)によりアクセント句の基本周波数を生成し、隣接するアクセント句のスムージングや、疑問文等の語尾上げ処理を適用する。これにより、入力テキストに対応する合成音声の基本周波数列が生成される。
なお、以上の説明は、誤差予測に基づいて基本周波数パターンの選択を行う例であるが、決定木に基づくパターンの選択を適用することもできる。その場合、基本周波数列のクラスタリングを行う図28のステップS701では、決定木を構築する。決定木構築時は、まず予め各属性を2分する質問を用意しておき、基本周波数列セットに含まれるアクセント句の基本周波数列すべてをルートノードの学習データとする。その後、各リーフノードに対して、各質問を適用して基本周波数列を2分した際の誤差(上記式(21)で表される誤差)の総和が最小になるような質問を選択し、該質問を適用して、2文した子ノードを生成する。すべてのリーフノードの中から、分割したときに最も誤差の総和が小さくなるリーフノードおよび質問の選択を繰り返し、2文木を生成していく。所定の停止条件によって2文木の分割を停止させることによって、基本周波数列のクラスタリングが行われる。
その後、ステップS702において、各リーフノードに対応する基本周波数パターンを上記式(22)によって求める。決定木の各ノードの質問がクラスタ選択規則となるため、ステップS703では、この質問を基本周波数パターン選択用データ237として記憶しておく。また、ステップS704では、上述したようにオフセット推定規則を求めて、オフセット推定用データとして記憶する。このように生成した決定木、基本周波数パターンおよびオフセット推定規則が基本周波数列生成データ236となる。
この場合、音声合成部206の韻律生成部44では、基本周波数パターン選択部232が、基本周波数列生成データ236の基本周波数パターン選択用データとして生成された決定木を辿ることによってリーフノードを選択し、該リーフノードに対応する基本周波数パターンを選択する。その後、オフセット推定部233がオフセット推定を行い、基本周波数列変形・接続部234が、選択された基本周波数パターン、オフセット、および継続長に対応する基本周波数列を生成する。
以上詳細に説明したように、第2実施例の音声合成装置は、変換基本周波数列と目標基本周波数列とを併せて生成した基本周波数列セットに基づいて基本周波数列生成データを生成し、この基本周波数列生成データを用いて生成した基本周波数列を波形生成部に入力することで、任意の入力文章に対応する合成音声を生成する。したがって、第2実施例の音声合成装置によれば、目標基本周波数列の特徴を再現しつつ、変換基本周波数列により網羅性を高めた基本周波数列生成データを生成して、合成音声を生成することができ、少量の目標基本周波数列から目標の発話音声に対する類似性の高い高品質な合成音声を得ることができる。
なお、上述した第2実施例の説明では、目標基本周波数列が音声合成時に利用される割合を高めるために、頻度に基づいて変換アクセント句カテゴリを決定し、変換アクセント句カテゴリに対応する変換基本周波数列のみを目標基本周波数列に追加して基本周波数列セットを生成したが、これに限定するものではない。例えば、目標基本周波数列と変換基本周波数列のすべてを含む基本周波数列セットを生成し、この基本周波数列セットに基づいて基本周波数列生成データを生成する際に、変換基本周波数列に対する重みが目標基本周波数列に対する重みよりも小さくなるように設定した重み付け誤差を用いて、基本周波数列生成データを生成するようにしてもよい。つまり、基本周波数列生成データを生成する際の誤差尺度として、目標基本周波数列に対して重みが高くなる誤差尺度を用いることにより、目標基本周波数列の特徴を再現しつつ、変換基本周波数列によって網羅性を高めて生成した基本周波数列生成データを生成することができる。
また、上述した第2実施例の説明では、基本周波数列セット生成部204の変換基本周波数列追加部223が、基本周波数列変換部203によって生成された変換基本周波数列のうち、変換アクセント句カテゴリ決定部222により決定された変換アクセント句カテゴリに対応する変換基本周波数列を目標基本周波数列に追加して基本周波数列セットを生成するようにしている。しかし、まず、変換アクセント句カテゴリ決定部222により変換アクセント句カテゴリを決定した後に、基本周波数列変換部203が、この変換アクセント句カテゴリに対応する変換元基本周波数列を変換して変換基本周波数列を生成し、この変換基本周波数列を変換基本周波数列追加部223が目標基本周波数列に追加して基本周波数列セットを生成するようにしてもよい。これにより、事前にすべての変換元基本周波数列を変換しておく場合よりも高速に処理することができる。
<第3実施例>
図30は、第3実施例の音声合成装置のブロック図である。第3実施例の音声合成装置は、図30に示すように、変換元継続長記憶部(第2記憶部)301と、目標継続長記憶部(第1記憶部)302と、継続長変換部(第1生成部)303と、継続長セット生成部(第2生成部)304と、継続長生成データ生成部(第3生成部)305と、継続長生成データ記憶部310と、音声合成部(第4生成部)306と、を備える。
変換元継続長記憶部301は、任意の発話音声から得られる音韻の継続長(変換元継続長)を、音韻種別や音韻環境情報などの属性情報とともに記憶する。変換元継続長は、音素単位で継続長を制御する場合は音素区間の長さであり、音韻種別である音素名、音韻環境情報である隣接音素名、文内の位置などの属性情報とともに記憶される。
目標継続長記憶部302は、目標の発話音声から得られる音韻の継続長(目標継続長)を、音韻種別や音韻環境情報などの属性情報とともに記憶する。目標継続長は、音素単位で継続長を制御する場合は音素区間の長さであり、音韻種別である音素名、音韻環境情報である隣接音素名、文内の位置などの属性情報とともに記憶される。
図31は、目標継続長記憶部302および変換元継続長記憶部301に記憶されている継続長および属性情報の具体例を示している。図31の例では、音韻継続長番号1の音素は、文の先頭の/a/の素片であり、左側音素は無音/SIL/、右側音素は/n/であり、その継続長は112.2msecであることを示している。
継続長変換部303は、変換元継続長記憶部301が記憶する変換元継続長を、目標の発話音声の韻律に近づけるように変換し、変換継続長を生成する。継続長変換部303は、第2実施例の基本周波数列変換部203と同様に、ヒストグラムの変換(上記式(18))、もしくは平均・標準偏差の変換(上記式(19))により、変換元継続長を変換して変換継続長を生成することができる。
図32は、継続長変換部303の処理の一例を示すフローチャートであり、変換元継続長のヒストグラムを目標継続長のヒストグラムに揃えるように変換するヒストグラム変換による変換方法を適用した場合のフローチャートである。
継続長変換部303は、ヒストグラム変換により継続長の変換を行う場合、図32に示すように、まずステップS801において、目標継続長のヒストグラムを算出する。次に、継続長変換部303は、ステップS802において、変換元継続長のヒストグラムを算出する。次に、継続長変換部303は、ステップS803において、ステップS801およびステップS802で求めたヒストグラムに基づいて、ヒストグラム変換テーブルを生成する。次に、継続長変換部303は、ステップS804において、ステップS803で生成したヒストグラム変換テーブルに基づいて変換元継続長を変換し、変換継続長を生成する。
また、継続長変換部303は、平均値および標準偏差を用いて継続長の変換を行う場合は、目標継続長と変換元継続長のそれぞれについて平均および標準偏差を算出し、算出した値から上記式(19)に従って変換元継続長を変換する。
継続長セット生成部304は、継続長変換部303により生成された変換継続長と、目標継続長記憶部302が記憶する目標継続長とを併せることにより、目標継続長と変換継続長とを含む継続長セットを生成する。
継続長セット生成部304は、継続長変換部303により生成されたすべての変換継続長と目標継続長とを併せて継続長セットを生成してもよいが、変換継続長の一部を目標継続長に追加することで継続長セットを生成することができる。
図33は、変換継続長の一部を目標継続長に追加して継続長セットを生成する継続長セット生成部304の構成例を示すブロック図である。この継続長セット生成部304は、継続長の属性情報として音韻種別を表す音素名を用いる場合の構成例であり、図33に示すように、音素頻度算出部(算出部)321と、変換音素カテゴリ決定部(決定部)322と、変換継続長追加部(追加部)323と、を備える。
音素頻度算出部321は、目標継続長記憶部302が記憶する目標継続長の音素カテゴリごとの個数を算出して、音素カテゴリごとのカテゴリ頻度を算出する。音素カテゴリごとのカテゴリ頻度の算出には、例えば図31に示した属性情報のうち、音韻種別を表す音素名が用いられる。
変換音素カテゴリ決定部322は、算出された音素カテゴリごとのカテゴリ頻度に基づいて、目標継続長に追加する変換継続長のカテゴリである変換音素カテゴリを決定する。変換音素カテゴリの決定には、例えば、算出されたカテゴリ頻度が予め定めた所定値よりも小さい音素カテゴリを、変換音素カテゴリとして決定するといった方法を利用することができる。
変換継続長追加部323は、決定された変換音素カテゴリに対応する変換継続長を目標継続長に追加して継続長セットを生成する。
なお、ここでは、音韻種別を表す音素名を属性情報として用いて音素カテゴリごとのカテゴリ頻度を求めたが、音素名および音韻環境を属性情報として用いて、各音素カテゴリのカテゴリ頻度を算出してもよい。目標継続長記憶部302および変換元継続長記憶部301には、図31に示したように、音韻環境情報である隣接音素名や文内位置も継続長の属性情報として記憶されているため、各音素内の隣接音素や文内位置ごとにカテゴリ頻度を算出することができる。このように、音韻種別だけでなく隣接音素名や文内位置などの音韻環境を属性情報として用いてカテゴリ頻度を算出することで、より詳細に変換音素カテゴリを決定することができ、より適切に変換継続長の追加を行うことができる。
継続長生成データ生成部305は、継続長セット生成部304により生成された継続長セットに基づいて、音声合成部306における韻律生成部44の継続長生成部231(図29参照)が継続長を生成する際に用いる継続長生成データ235を生成する。音声合成部306の継続長生成部231は、積和数量化モデルに基づく継続長推定を利用することができ、この場合、積和数量化モデルの係数が継続長生成データ235となる。継続長生成データ235は、音声合成部306での音声合成に用いるデータである音声合成データの一態様として、継続長生成データ記憶部310に格納される。
積和数量化モデルでは、下記式(24)のように、属性予測モデルの積和としてデータをモデル化する。そして、入力された属性の各カテゴリに対応するakmを係数として、その積の総和によって予測を行う。
継続長生成データ生成部305では、時間長の学習データと、積和モデルによる推定結果の誤差を最小化させるように係数akmを算出して継続長生成データ235とする。
音声合成部306は、継続長生成データ生成部305により生成された継続長生成データ235を用いて、入力テキストに対応する合成音声を生成する。具体的には、音声合成部306は、入力されたテキストに対して、図4に示したテキスト解析部43の処理を行った後、韻律生成部44の継続長生成部231(図29参照)において、継続長生成データ生成部305により生成された継続長生成データ235を用いて継続長の生成を行う。そして、生成した継続長を基本周波数パターン選択部232(図29参照)に渡して基本周波数列を生成し、この基本周波数列を用いて波形生成部45で波形生成を行って、合成音声を生成する。韻律生成部44の継続長生成部231では、上記式(24)によって継続長の推定を行うことができる。
以上詳細に説明したように、第3実施例の音声合成装置は、変換継続長と目標継続長とを併せて生成した継続長セットに基づいて継続長生成データを生成し、この継続長生成データを用いて生成した継続長に基づき基本周波数列を生成して波形生成部に入力することで、任意の入力文章に対応する合成音声を生成する。したがって、第3実施例の音声合成装置によれば、目標継続長の特徴を再現しつつ、変換継続長により網羅性を高めた継続長生成データを生成して、合成音声を生成することができ、少量の目標継続長から目標の発話音声に対する類似性の高い高品質な合成音声を得ることができる。
なお、上述した第3実施例の説明では、目標継続長が音声合成時に利用される割合を高めるために、頻度に基づいて変換音素カテゴリを決定し、変換音素カテゴリに対応する変換継続長のみを目標継続長に追加して継続長セットを生成したが、これに限定するものではない。例えば、目標継続長と変換継続長のすべてを含む継続長セットを生成し、この継続長セットに基づいて継続長生成データを生成する際に、積和数量化モデル学習の誤差計算において、目標継続長の重みが変換継続長の重みよりも高くなるように重みを設定し、重み付け学習を行って、継続長生成データを生成するようにしてもよい。
また、上述した第3実施例の説明では、継続長セット生成部304の変換継続長追加部323が、継続長変換部303によって生成された変換継続長のうち、変換音素カテゴリ決定部322により決定された変換音素カテゴリに対応する変換継続長を目標継続長に追加して継続長セットを生成するようにしている。しかし、まず、変換音素カテゴリ決定部322により変換音素カテゴリを決定した後に、継続長変換部303が、この変換音素カテゴリに対応する変換元継続長を変換して変換継続長を生成し、この変換継続長を変換継続長追加部323が目標継続長に追加して継続長セットを生成するようにしてもよい。これにより、事前にすべての変換元継続長を変換しておく場合よりも高速に処理することができる。
なお、音声合成装置が素片選択に基づく音声合成を行う場合、第1実施例による音声波形の生成と、第2実施例による基本周波数列の生成と、第3実施例による継続長の生成とをすべて組み合わせることで、合成音声の韻律および音声波形の双方で目標の発話音声の特徴を精度よく再現し、目標の発話音声に対する類似性が極めて高い高品質な合成音声を得ることができる。なお、第2実施例および第3実施例は、基本周波数パターンコードブックとオフセット制御を用いて基本周波数列を生成し、積和数量化モデルにより継続長を生成する例であるが、本実施形態の技術思想は、基本周波数列セットや継続長セットを用いた学習に基づいて合成音声の韻律生成に用いるデータ(基本周波数列生成データ、継続長生成データ)を生成する任意の方式に適用可能である。
<第4実施例>
第4実施例の音声合成装置では、統計モデルであるHMM(隠れマルコフモデル)に基づく音声合成により合成音声を生成する。HMMに基づく音声合成では、発話音声を分析することで得られる特徴パラメータを用いてHMMを学習し、得られたHMMを利用することにより、入力された任意のテキストに対応する音声パラメータを生成し、生成した音声パラメータから音源情報およびフィルタ係数を求めてフィルタ処理を行うことにより、合成音声の音声波形を生成する。
図34は、第4実施例の音声合成装置のブロック図である。第4実施例の音声合成装置は、図34に示すように、変換元特徴パラメータ記憶部(第2記憶部)401と、目標特徴パラメータ記憶部(第1記憶部)402と、特徴パラメータ変換部(第1生成部)403と、特徴パラメータセット生成部(第2生成部)404と、HMMデータ生成部(第3生成部)405と、HMMデータ記憶部410と、音声合成部(第4生成部)406と、を備える。
変換元特徴パラメータ記憶部401は、任意の発話音声から得られる特徴パラメータ(変換元特徴パラメータ)および音声単位ごとの境界や言語属性情報などを表すコンテキストラベルを、各音声単位に含まれるアクセント句のモーラ数、アクセント型、アクセント句種別、および各音声単位に含まれる音素の音韻名などの属性情報とともに記憶する。
目標特徴パラメータ記憶部402は、目標の発話音声から得られる特徴パラメータ(目標特徴パラメータ)および音声単位ごとの境界や言語属性情報などを表すコンテキストラベルを、各音声単位に含まれるアクセント句のモーラ数、アクセント型、アクセント句種別、および各音声単位に含まれる音素の音韻名などの属性情報とともに記憶する。
特徴パラメータは、HMM音声合成において音声波形を生成するために用いるパラメータであり、スペクトル情報を生成するための声道パラメータと、励振源情報を生成するための音源パラメータとを含む。声道パラメータは、声道情報を表すスペクトルパラメータ系列であり、メルLSP、メルケプストラムなどのパラメータを利用できる。音源パラメータは、励振源情報を生成するためのパラメータであり、基本周波数系列および帯域雑音強度系列を用いることができる。帯域雑音強度系列は、音声スペクトルの所定の帯域毎に含まれる雑音成分の割合を求めたものであり、発話音声を周期成分・非周期成分に分割してスペクトル分析を行い、非周期成分の比率から求めることができる。特徴パラメータには、これらのパラメータとともにその動的特徴量も併せて同時にパラメータとして用い、HMMの学習に利用する。
図35は、特徴パラメータの具体例を示す図である。図35(a)は、発話音声の音声波形を示し、図35(b)は、図35(a)の発話音声から得られるメルLSPパラメータ列を示し、図35(c)は、図35(a)の発話音声から得られる基本周波数系列を示し、図35(d)は、図35(a)の発話音声から得られる帯域雑音強度系列を示している。
図35(b)のメルLSPパラメータ列は、ピッチ同期分析により求めたスペクトルを固定フレームレートに補間したスペクトルから、39次元のパラメータとゲインとを求めている。図35(c)の基本周波数列は、発話音声の各時刻の基本周波数を表している。図35(d)の帯域雑音強度系列は、5帯域に分割した各帯域の雑音成分の比率を抽出し、固定のフレームレートのパラメータとして求めている。このように、発話音声の各フレームに対して、メルLSPパラメータct、帯域強度パラメータbt、基本周波数ftを求め、これらを並べて特徴パラメータOとして、目標特徴パラメータ記憶部402および変換元特徴パラメータ記憶部401に記憶する。つまり、目標特徴パラメータ記憶部402および変換元特徴パラメータ記憶部401が記憶する特徴パラメータOは、下記式(25)のように表すことができる。
図36は、目標特徴パラメータ記憶部402および変換元特徴パラメータ記憶部401に記憶されている特徴パラメータおよび属性情報の具体例を示している。目標特徴パラメータ記憶部402および変換元特徴パラメータ記憶部401には、特徴パラメータOとともに、コンテキストラベルL、音素列phone、モーラ数列nmorae、アクセント型列accType、アクセント句種別列accPhraseTypeが記憶されている。
コンテキストラベルLは、発話音声に含まれる各音素に対する{先行,当該,後続}音素、当該音素の単語内での音節位置、{先行,当該,後続}の品詞、{先行,当該,後続}単語の音節数、アクセント音節からの音節数・文内の単語の位置、前後のポーズの有無、{先行,当該,後続}呼気段落の音節数、当該呼気段落の位置、文の音節数、もしくはその一部の情報から構成される音素コンテキスト情報を、並べたものであり、HMMの学習に用いる。コンテキストラベルLに音素境界の時間情報も含めるようにしてもよい。音素列phoneは音素を並べた情報であり、モーラ数列nmoraeは各アクセント句のモーラ数を並べた情報であり、アクセント型列accTypeはアクセント型を並べた情報であり、アクセント句種別列accPhraseTypeはアクセント句種別を並べた情報である。例えば、「今日はよい天気です。」の発話音声に対しては、音素列L={ky,o,o,w,a,pau,y,o,i,t,e,N,k,i,d,e,su}、モーラ数列nmorae={3,2,5}、アクセント型列accType={1,1,1}、アクセント句種別accPhraseType={HEAD,MID,TAIL}となり、コンテキストラベルLは、この文に対する音素コンテキスト情報を並べたものになる。
特徴パラメータ変換部403は、変換元特徴パラメータを変換して変換特徴パラメータを生成する。特徴パラメータの変換は、スペクトルパラメータおよび帯域雑音強度に対しては、上記式(7)に示されるGMMに基づく変換を適用することができ、基本周波数列や音素継続長に対しては、上記式(18)に示されるヒストグラム変換、もしくは上記式(19)に示される平均・標準偏差による変換を適用することができる。
図37は、特徴パラメータ変換部403の処理を示すフローチャートである。特徴パラメータ変換部403は、図37に示すように、まず、ステップS901において、変換元特徴パラメータに含まれるそれぞれの特徴量を変換するための変換規則を作成する。そして、特徴パラメータ変換部403は、ステップS902からS910の文単位のループを行う。
文単位のループ処理では、特徴パラメータ変換部403は、まずステップS903において、継続長の変換を行う。この変換継続長に合せて特徴パラメータを生成するため、さらにステップS904からステップS908までのフレーム単位のループを行う。
フレーム単位のループ処理では、特徴パラメータ変換部403は、ステップS905において、変換継続長に合せるために変換元のフレームを変換先のフレームに対応付ける。例えば、フレーム位置を線形にマッピングすることで対応付けができる。その後、特徴パラメータ変換部403は、ステップS906において、対応付けられた変換元フレームのスペクトルパラメータおよび帯域雑音強度を上記式(7)によって変換する。次に、特徴パラメータ変換部403は、ステップS907において、基本周波数の変換を行う。ここで対応づけられた変換元フレームの基本周波数を、上記式(18)もしくは上記式(19)によって変換する。
特徴パラメータ変換部403は、以上の処理を行った後、ステップS909において、コンテキストラベルに時間情報を含む場合は、その時間情報を変換継続長に合せて修正し、変換特徴パラメータおよびコンテキストラベルを生成する。
特徴パラメータセット生成部404は、特徴パラメータ変換部403により生成された変換特徴パラメータと、目標特徴パラメータ記憶部402が記憶する目標特徴パラメータとを併せることにより、目標特徴パラメータと変換特徴パラメータとを含む特徴パラメータセットを生成する。
特徴パラメータセット生成部404は、特徴パラメータ変換部403により生成されたすべての変換特徴パラメータと目標特徴パラメータとを併せて特徴パラメータセットを生成してもよいが、変換特徴パラメータの一部を目標特徴パラメータに追加することで特徴パラメータセットを生成することができる。
図38は、変換特徴パラメータの一部を目標特徴パラメータに追加して特徴パラメータセットを生成する特徴パラメータセット生成部404の構成例を示すブロック図である。この特徴パラメータセット生成部404は、図38に示すように、頻度算出部(算出部)421と、変換カテゴリ決定部(決定部)422と、変換特徴パラメータ追加部(追加部)423と、を備える。
頻度算出部421は、目標特徴パラメータ記憶部402が記憶する目標特徴パラメータについて、属性情報である音素およびアクセント句種別・アクセント型・モーラ数を用いて分類した複数のカテゴリに分類し、各カテゴリごとの目標特徴パラメータの個数を算出して、カテゴリ頻度を算出する。カテゴリの分類は、音素を単位とした分類に限らず、例えば、音素と隣接音素の組み合わせたトライフォン単位で分類し、カテゴリ頻度を求めるようにしてもよい。
変換カテゴリ決定部422は、頻度算出部421により算出されたカテゴリ頻度に基づいて、目標特徴パラメータに追加する変換特徴パラメータのカテゴリである変換カテゴリを決定する。変換カテゴリの決定には、例えば、算出されたカテゴリ頻度が予め定めた所定値よりも小さいカテゴリを、変換カテゴリとして決定するといった方法を利用することができる。
変換特徴パラメータ追加部423は、変換カテゴリ決定部422により決定された変換カテゴリに対応する変換特徴パラメータを目標特徴パラメータに追加して特徴パラメータセットを生成する。つまり、カテゴリ頻度によって決定された音素、もしくはアクセント句種別・アクセント型・モーラ数を含む文章に対応する変換特徴パラメータを目標特徴パラメータに追加することによって、特徴パラメータセットが作成される。
なお、変換特徴パラメータ追加部423は、文全体の変換特徴パラメータを目標特徴パラメータに追加するのではなく、決定された変換カテゴリに対応する区間の変換特徴パラメータのみを切り出して追加してもよい。この場合、カテゴリ頻度に基づいて選択された変換特徴パラメータ内の特定の属性に対応する区間の特徴パラメータを抽出し、該当する範囲のコンテキストラベルのみを抽出し、その時間情報を切り出した区間に対応するように修正することによって、追加する区間の変換特徴パラメータおよびコンテキストラベルが作成される。該当する区間の前後複数の変換特徴パラメータを同時に追加してもよいし、追加する区間は音素・音節・単語・アクセント句・呼気段落・文章など、任意の単位を用いることができる。これらの処理により変換特徴パラメータ追加部423により特徴パラメータセットが作成される。
HMMデータ生成部405は、特徴パラメータセット生成部404により生成された特徴パラメータセットに基づいて、音声合成部406で合成音声を生成する際に用いるHMMデータを生成する。HMMデータ作成部405では、特徴パラメータセットに含まれる特徴パラメータおよびその動的特徴量、決定木構築に用いる属性情報を付与したコンテキストラベルから、HMMの学習を行う。音素ごとHMMの学習、コンテキスト依存HMMの学習、ストリーム別のMDL基準を用いた決定木に基づく状態クラスタリング、およびそれぞれのモデルの最尤推定の処理により学習される。HMMデータ生成部405は、このようにして得られた決定木とガウス分布をHMMデータ記憶部410に記憶させる。また、HMMデータ生成部405は、状態毎の継続時間長を表す分布も同時に学習し、決定木クラスタリングを行い、HMMデータ記憶部410に記憶させる。これらの処理により、音声合成部406での音声合成に用いる音声合成データであるHMMデータが生成され、HMMデータ記憶部410に格納される。
音声合成部406は、HMMデータ生成部405により生成されたHMMデータを用いて、入力テキストに対応する合成音声を生成する。
図39は、音声合成部406の構成例を示すブロック図である。音声合成部406は、図39に示すように、テキスト解析部431と、音声パラメータ生成部432と、音声波形生成部433と、を備える。テキスト解析部431は、上述した音声合成部16のテキスト解析部43と同じ構成であり、入力テキストから形態素解析処理などを行い、読みやアクセントなど音声合成に用いる言語情報を得る。
音声パラメータ生成部432は、HMMデータ記憶部410が記憶するHMMデータ434からのパラメータ生成処理を行う。HMMデータ434は、あらかじめHMMデータ生成部405において生成されたモデルであり、音声パラメータ生成部432は、このモデルを用いて音声パラメータ生成を行う。
具体的には、音声パラメータ生成部432は、言語解析の結果得られた音素系列やアクセント情報の系列に従って文単位のHMMを構築する。文単位のHMMは、音素単位のHMMを接続して並べることにより構築する。HMMとしては状態ごと、ストリームごとの決定木クラスタリングを行ったモデルを利用でき、入力された属性情報に従って決定木をたどり、リーフノードの分布をHMMの各状態の分布として用いて音素モデルを生成し、音素モデルを並べて文HMMを生成する。そして、音声パラメータ生成部432は、このように生成した文HMMの出力確率のパラメータから、音声パラメータの生成を行う。すなわち、音声パラメータ生成部432は、HMMの各状態の継続長分布のモデルから、各状態に対応したフレーム数を決定し、各フレームの音声パラメータを生成する。音声パラメータ生成の際に動的特徴量を考慮した生成アルゴリズムを利用することで、滑らかに接続された音声パラメータが生成される。
音声波形生成部433は、音声パラメータ生成部432により生成された音声パラメータから合成音声の音声波形を生成する。ここで、音声波形生成部433は、帯域雑音強度系列、基本周波数系列および声道パラメータ系列から、混合音源を生成し、スペクトルパラメータに対応するフィルタを適用することにより波形生成を行う。
HMMデータ記憶部410には、上述したように、HMMデータ生成部405において学習されたHMMデータ434が記憶されている。HMMデータ434は、上述したように、目標特徴パラメータと変換特徴パラメータとを合わせて生成した特徴パラメータセットに基づいて生成されている。
HMMはここでは音素単位として記述するが、音素だけでなく音素を分割した半音素や、音節などいくつかの音素を含む単位を用いてもよい。HMMはいくつかの状態を持つ統計モデルであり、状態ごとの出力分布と、状態遷移の確率をあらわす状態遷移確率とから構成される。
left−right型HMMは、図40に示すように、左側の状態から右側の状態への遷移と、自己遷移のみ可能なHMMの形であり、音声など時系列情報のモデル化に用いられる。図40は、5状態のモデルで、状態iから状態jへの状態遷移確率をaij、ガウス分布による出力分布をN(o|μs、Σs)として表している。HMMデータ記憶部410には、これらHMMがHMMデータ434として記憶されている。ただし、状態ごとのガウス分布は、決定木によって共有された形で記憶されている。
HMMの決定木の一例を図41に示す。図41に示すように、HMMの各状態の決定木がHMMデータ434として記憶されており、リーフノードにはガウス分布を保持している。決定木の各ノードには、音素や言語属性に基づいて子ノードを選択する質問が保持されている。質問としては、例えば、中心音素が「有声音かどうか」や、「文章の先頭からの音素数が1かどうか」、「アクセント核からの距離が1である」、「音素が母音である」、「左音素が“a”である」といった質問が記憶されており、言語解析部で得られた音素系列や言語情報に基づいて決定木を辿ることにより分布を選択することができる。
これら決定木は、特徴パラメータのストリームごとに生成しておくことができる。特徴パラメータとして、下記式(26)に示すような学習データOを用いる。
ただし、Oの時刻tのフレームotは、スペクトルパラメータct、帯域雑音強度パラータbt、基本周波数パラメータftであり、それらの動的特徴を表すデルタパラメータにΔ、2次のΔパラメータにΔ2を付して示している。基本周波数は、無声音のフレームでは、無声音であることを表す値として表されており、多空間上の確率分布に基づくHMMによって、有声音と無声音の混在した学習データからHMMを学習することができる。
ストリームとは、(c’t,Δc’t,Δ2c’t)、(b’t,Δb’t,Δ2b’t)、(f’t,Δf’t,Δ2f’t)のように、それぞれの特徴パラメータなど特徴パラメータの一部分を取り出したものを指しており、ストリーム毎の決定木とは、スペクトルパラメータを表す決定木、帯域雑音強度パラメータb、基本周波数パラメータfそれぞれに対して、決定木を持つことを意味する。この場合、音声合成時には、入力した音素系列・言語属性に基づいて、HMMの各状態に対して、それぞれの決定木を辿ってそれぞれのガウス分布を決定し、それらを併せて出力分布を生成し、HMMを生成することになる。
図42は、HMMから音声パラメータを生成する処理の概要を説明する図である。例えば”right(r・ai・t)”という合成音声を生成する場合、図42に示すように、音素ごとのHMMを接続して全体のHMMを生成し、各状態の出力分布から音声パラメータを生成する。HMMの各状態の出力分布は、HMMデータ434として記憶されている決定木から選択されたものである。これらの平均ベクトルおよび共分散行列から、音声パラメータを生成する。音声パラメータは、例えば、動的特徴量に基づくパラメータ生成アルゴリズムによって生成できる。ただし、平均ベクトルの線形補間やスプライン補間など、その他のHMMの出力分布からパラメータを生成するアルゴリズムを用いてもよい。これらの処理により、合成した文章に対する声道フィルタの系列(メルLSP系列)、帯域雑音強度系列、基本周波数(f0)系列による音声パラメータの系列が生成される。
音声波形生成部433では、以上のように生成された音声パラメータに混合励振源生成処理およびフィルタ処理を適用して波形生成することにより、合成音声の音声波形が得られる。
図43は、音声合成部406の処理を示すフローチャートである。図43のフローチャートでは、テキスト解析部431による処理は省略し、音声パラメータ生成部432および音声波形生成部433による処理のみを示している。
音声パラメータ生成部432は、まず、ステップS1001において、テキスト解析部431による言語解析の結果得られたコンテキストラベル列を入力する。そして、音声パラメータ生成部432は、ステップS1002において、HMMデータ434としてHMMデータ記憶部410に記憶されている決定木を探索し、状態継続長のモデルおよびHMMモデルを生成する。次に、音声パラメータ生成部432は、ステップS1003において、状態毎の継続長を決定し、ステップS1004において、継続長に従って文全体の声道パラメータ、帯域雑音強度、および基本周波数の分布列を生成する。そして、音声パラメータ生成部432は、ステップS1005において、ステップS1004で生成した各分布列からパラメータ生成を行い、所望の文に対応するパラメータ列を得る。次に、音声波形生成部433が、ステップS1006において、ステップS1005で得られたパラメータから、波形生成を行い、合成音声を生成する。
以上詳細に説明したように、第4実施例の音声合成装置は、変換特徴パラメータと目標特徴パラメータとを併せて生成した特徴パラメータセットに基づいてHMMデータを生成し、このHMMデータを用いて音声合成部406において音声パラメータを生成することで、任意の入力文章に対応する合成音声を生成する。したがって、第4実施例の音声合成装置によれば、目標特徴パラメータの特徴を再現しつつ、変換特徴パラメータにより網羅性を高めたHMMデータを生成して、合成音声を生成することができ、少量の目標特徴パラメータから目標の発話音声に対する類似性の高い高品質な合成音声を得ることができる。
なお、上述した第4実施例の説明では、変換元特徴パラメータを変換する変換規則として、GMMに基づく声質変換およびヒストグラムもしくは平均・標準偏差に基づく基本周波数および継続長の変換を適用したが、これに限定されるものではない。例えば、HMMを利用し、CMLLR(制約付き最尤線形回帰)法を用いて変換規則を生成することができる。この場合、目標特徴パラメータから目標HMMモデルを生成し、変換元特徴パラメータと目標HMMモデルとからCMLLRのための回帰行列を求める。CMLLRでは、特徴データを目標モデルに近づけるための線形変換行列を尤度最大化基準に基づいて求めることができる。この線形変換行列を、変換元特徴パラメータに適用することで、特徴パラメータ変換部403において変換元特徴パラメータの変換を行うことができる。なお、CMLLRに限らず、データを目標モデルに近づける任意の変換が適用可能であり、また、変換元特徴パラメータを目標特徴パラメータに近づける任意の変換方式を用いることができる。
また、上述した第4実施例の説明では、目標特徴パラメータが音声合成時に利用される割合を高めるために、頻度に基づいて変換カテゴリを決定し、変換カテゴリに対応する変換特徴パラメータのみを目標特徴パラメータに追加して特徴パラメータセットを生成したが、これに限定するものではない。例えば、目標特徴パラメータと変換特徴パラメータのすべてを含む特徴パラメータセットを生成し、HMMデータ生成部405におけるHMMの学習時に、この特徴パラメータセットに基づいてHMMデータを生成する際に、目標特徴パラメータの重みが変換特徴パラメータの重みより高くなるように重みを設定し、重みづけ学習を行って、HMMデータを生成するようにしてもよい。
また、上述した第4実施例の説明では、特徴パラメータセット生成部404の変換特徴パラメータ追加部423が、特徴パラメータ変換部403によって生成された変換特徴パラメータのうち、変換カテゴリ決定部422により決定された変換カテゴリに対応する変換特徴パラメータを目標特徴パラメータに追加して特徴パラメータセットを生成するようにしている。しかし、まず、変換カテゴリ決定部422により変換カテゴリを決定した後に、特徴パラメータ変換部403が、この変換カテゴリに対応する変換元特徴パラメータを変換して変換特徴パラメータを生成し、この変換特徴パラメータを変換特徴パラメータ追加部423が目標特徴パラメータに追加して特徴パラメータセットを生成するようにしてもよい。これにより、事前にすべての変換元特徴パラメータを変換しておく場合よりも高速に処理することができる。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係る音声合成装置によれば、目標の発話音声に対して類似性が高い合成音声を生成することができる。
なお、本実施形態に係る音声合成装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いて実現することが可能である。すなわち、本実施形態に係る音声合成装置は、汎用のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、音声合成装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、上記のプログラムをサーバーコンピュータ装置上で実行させ、ネットワークを介してその結果をクライアントコンピュータ装置で受け取ることにより実現してもよい。
また、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。例えば、本実施形態に係る音声合成装置が備える変換元音声データ記憶部11や目標音声データ記憶部12は、これら記録媒体を適宜利用して実現することができる。
本実施形態に係る音声合成装置で実行されるプログラムは、音声合成装置の各処理部(音声データ変換部13、音声データセット生成部14、音声合成データ生成部15および音声合成部16など)を含むモジュール構成となっており、実際のハードウェアとしては、例えば、プロセッサが上記記憶媒体からプログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。