以下、図面を参照しながら本発明の実施形態を詳細に説明する。
本実施形態の音声合成装置は、音声合成に非特許文献1の技術を適用し、音声合成モデルとして、シーケンス・ツー・シーケンス方式の音響特徴量生成モデルを用いる。この音響特徴量生成モデルは、発話内容を読み仮名と韻律記号とを用いて記述した可読性の良い言語データを入力として、品質の良い音響特徴量を推定する。本実施形態の音声合成装置は、音響特徴量生成モデルに入力する言語データを、一般的に広く利用されている既存の音声ラベルファイルであるフルコンテキストラベルから変換することにより生成する。フルコンテキストラベルは、音素や音素の位置等を詳しく規定したものであり、既存の技術により日本語の平文から自動で生成することが可能である。本実施形態の音声合成装置が、フルコンテキストラベルから、読み仮名と韻律記号とを用いて記述した言語データを生成することにより、音声合成やモデル学習のために用いられる言語データの作成に要する人的コスト及び時間的コストを低減する。
図1は、本実施形態による音声合成装置1の構成例を示す機能ブロック図であり、本実施形態と関係する機能ブロックのみを抽出したものである。本実施形態の音声合成装置1は、テキスト入力部2と、第一フルコンテキストラベル生成部3と、第一変換部4と、修正部5と、音響特徴量生成部6と、ボコーダ部7と、学習データ入力部8と、第二フルコンテキストラベル生成部9と、第二変換部10とを備える。
テキスト入力部2は、音声合成を行う発話内容を表す漢字仮名交じりの文章のテキストデータを入力し、第一フルコンテキストラベル生成部3に出力する。第一フルコンテキストラベル生成部3は、テキスト入力部2からテキストデータを入力し、入力したテキストデータに記述された漢字仮名交じりの文章を既存の技術によりフルコンテキストラベルデータに変換する。フルコンテキストラベルについては、例えば、参考文献1「“HMM/DNN-based Speech Synthesis System (HTS)”,2015年12月25日、[online],[2019年10月25日検索],インターネット<http://hts.sp.nitech.ac.jp/>」に記載されている。また、テキストデータからフルコンテキストラベルへの変換については、例えば、参考文献2「“Open JTalk”,[online],[2019年10月25日検索],インターネット<http://open-jtalk.sourceforge.net/>」に記載の技術を用いることができる。この技術の手法は、形態素解析の機能とアクセント辞典の機能やその他の言語処理の機能を持ち、フルコンテキストラベルの形でそれらの情報を反映できる。漢字仮名交じり文をフルコンテキストラベルに変換するこの手法では、漢字を仮名に変換する時に変換誤りが混入する可能性がある。この誤りは、学習に支障のない量であることが多いため、全てのデータを正しく修正せずに自動化を優先して学習できることが今回の実験より判明している。なお、実験の結果については後述する。
第一変換部4は、第一フルコンテキストラベル生成部3から、発話内容のフルコンテキストラベルデータを入力する。あるいは、第一変換部4は、人手により生成された、又は、音声合成装置1の外部の装置により生成されたフルコンテキストラベルデータを入力する。この場合、音声合成装置1は、第一フルコンテキストラベル生成部3を備えなくてもよい。第一変換部4は、入力したフルコンテキストラベルデータを、読み方を表す文字と韻律記号とを用いて記述されたテキストデータであるPLP(Symbols of phoneme and linguistic phonological features)データに変換する。以下では、第一変換部4が生成したPLPデータを生成用PLPデータとも記載する。発話の言語が日本語である場合、読み方を表す文字として読み仮名が用いられる。韻律記号は、韻律を表す文字又は文字列である。韻律記号には、読み方を表す文字とは別の文字を用いる。
修正部5は、第一変換部4により変換された生成用PLPデータを、図示しない入力部によりユーザが入力した指示に従って修正する。入力部は、ユーザの指示を入力する際にユーザによって操作されるインターフェースである。修正により、生成用PLPデータに、読み仮名や韻律記号の削除、変更、追加等が行われる。PLPデータは、読み仮名と韻律記号を表す文字により記述されているため可読性がよく、ユーザによる修正が容易である。
音響特徴量生成部6は、PLPデータを入力データに用いて発話内容の音声の推定の音響特徴量を生成する。このPLPデータは、第一変換部4又は修正部5が出力した生成用PLPデータ、若しくは、第二変換部10が出力した学習用PLPデータである。音響特徴量生成部6として、例えば、非特許文献1に記載のDNNなど、アテンション機構を有するSequence-to-sequence + attention方式の音響特徴量生成モデルが用いられる。アテンション機構を有するSequence-to-sequence + attention方式の音響特徴量生成モデルは、エンコーダと、デコーダと、アテンションとを有する。エンコーダは、再帰型ニューラルネットワークにより、PLPデータが示す発話内容に、文章内における当該発話内容の前後の文字列を考慮した文字列の特徴量を生成する。デコーダは、再帰型ニューラルネットワークにより、エンコーダが生成した特徴量と過去に生成した音響特徴量とに基づいて、PLPデータが示す発話内容に対応する音声の音響特徴量を生成する。アテンションは、デコーダに入力されるエンコーダからの出力に対して、デコーダの隠れ層の値等に基づいて注目すべき箇所に重みを付与する。音響特徴量には、例えば、メルスペクトログラムが用いられる。
ボコーダ部7は、音響特徴量生成部6が生成した音響特徴量のデータを入力データに用いて音声波形生成モデルを実行し、音声波形データを生成する。音声波形生成モデルとして、例えば、WaveNetなどのDNN等を用いることができる。WaveNetは、例えば、参考文献3「A. van den Oord,S. Dieleman,H. Zen,K. Simonyan,O. Vinyals,A. Graves,N. Kalchbrenner,A. Senior and K. Kavukcuoglu,“WaveNet: A Generative Model for Raw Audio”,arXiv:1609.03499v2,2016」に記載されている。ボコーダ部7は、生成した音声波形データを出力する。
学習データ入力部8は、学習データを入力する。学習データは、発話の音声波形を表す学習用音声データと、その発話の内容を漢字仮名交じりで記述した学習用テキストデータとの組からなる。学習データ入力部8は、学習用音声データを音響特徴量生成部6に出力し、学習用テキストデータを第二フルコンテキストラベル生成部9に出力する。
第二フルコンテキストラベル生成部9は、学習データ入力部8から学習用テキストデータを入力する。第二フルコンテキストラベル生成部9は、第一フルコンテキストラベル生成部3と同様の機能を有しており、学習用テキストデータに記述された漢字仮名交じりの文章を、フルコンテキストラベルデータに変換し、第二変換部10に出力する。
第二変換部10は、学習用音声データの発話内容を表すフルコンテキストラベルデータを入力する。第二変換部10は、このフルコンテキストラベルデータを第二フルコンテキストラベル生成部9から入力する。あるいは、第一変換部4は、人手により生成された、又は、音声合成装置1の外部の装置により生成されたフルコンテキストラベルデータを入力してもよい。第二変換部10は、第一変換部4と同様の機能を有しており、フルコンテキストラベルデータをPLPデータに変換する。第二変換部10が生成したPLPデータを学習用PLPデータとも記載する。第二変換部10は、学習用PLPデータを音響特徴量生成部6に出力する。音響特徴量生成部6は、学習用PLPデータを入力として生成した推定の音響特徴量と、学習用音声データから算出した音響特徴量との差分に基づいて、音響特徴量生成モデルを更新する。
なお、第一フルコンテキストラベル生成部3と第二フルコンテキストラベル生成部9が同一の機能部でもよく、第一変換部4と第二変換部10とが同一の機能部でもよい。
音声合成装置1は、パーソナルコンピュータやサーバコンピュータ、スマートフォンなどのコンピュータ装置により実現することができる。音声合成装置1を、複数台のコンピュータ装置により実現してもよい。この場合、いずれの機能部をいずれのコンピュータ装置により実現するかは任意とすることができる。例えば、第一フルコンテキストラベル生成部3と第一変換部4及び音響特徴量生成部6とを異なるコンピュータ装置で実現してもよく、第一変換部4と音響特徴量生成部6とを異なるコンピュータ装置で実現してもよい。また、例えば、第二フルコンテキストラベル生成部9と第二変換部10及び音響特徴量生成部6とを異なるコンピュータ装置で実現してもよく、第二変換部10と音響特徴量生成部6とを異なるコンピュータ装置で実現してもよい。また、例えば、第一変換部4と第二変換部10とを異なるコンピュータ装置で実現してもよい。また、音声合成装置1の同一の機能部を、複数台のコンピュータ装置により実現してもよい。
図2は、本実施形態のPLPデータに用いられる韻律記号の例を示す図である。本実施形態で用いられる韻律には、アクセント位置の指定、句・フレーズの区切り指定、文末イントネーションの指定、ポーズの指定などの種類がある。アクセント位置の指定には、アクセント上昇を表す韻律記号「”」や、アクセント下降を表す韻律記号「&」が用いられる。句・フレーズの区切り指定には、アクセント句の区切りを表す韻律記号「#」が用いられる。文末イントネーションの指定には、通常の文末を表す韻律記号「(」や、疑問の文末を表す韻律記号「?」、名詞又は名詞句の文末を表す韻律記号「.」が用いられる。ポーズの指定には、ポーズを表す韻律記号「_」が用いられる。なお、これらの韻律記号は例であり、他の記号を用いても同じ機能を再現できる。また、これらの例では、韻律記号を1字で表しているが、2字以上で表してもよい。また、図2に示す韻律に加えて他の韻律の韻律記号を用いることもできる。
図3は、PLPデータの例を示す図である。図3に示すPLPデータは、読み仮名と韻律記号とにより記述されたテキストデータである。図3では、読み仮名にカタカナを用いているが、平仮名を用いてもよい。また、読み方を表す文字として、読み仮名に代えて、音素を表す文字である音素記号や、発音を表す文字である発音記号、ローマ字などを用いてもよい。
図4及び図5は、フルコンテキストラベルデータに含まれる特徴の情報を示す図である。図4及び図5では、指標と、その指標が示す特徴の情報とを対応付けて示している。nは、先頭の音素を1番目としたときの音素の順番を表す。pn、an~knは、n番目の音素を現在位置としたときの特徴を示す。pnは現在(n番目)の音素を中心とした音素の並びを表す。pn,1は2つ前の音素(先先行音素)、pn,2は1つ前の音素(先行音素)、pn,3は現在(n番目)の音素、pn,4は1つ後の音素(後続音素)、pn,5は2つ後の音素(後後続音素)を表す。anは、アクセント型と位置に関する情報を示す。bnは、先行単語の品詞、活用形及び活用型に関する情報を示す。cnは、現在の単語の品詞、活用形及び活用型に関する情報を示す。dnは、後続単語の品詞、活用形及び活用型に関する情報を示す。enは、先行アクセント句の情報を示す。fnは、現在のアクセント句の情報を示す。gnは、後続アクセント句の情報を示す。hnは、先行呼気段落の情報を示す。inは、現在の呼気段落の情報を示す。jnは、後続呼気段落の情報を示す。knは、発話における呼気段落、アクセント句及びモーラの数を示す。このように、コンテキストラベルデータは、発話における音素の情報、当該音素の前後の音素の情報、当該音素のアクセント句情報などを含む。アクセント句情報は、発話において現在の音素が含まれるアクセント句に関する特徴、及び、当該アクセント句に隣接するアクセント句に関する特徴などを示す。なお、位置は、現在の音素の位置を0として、現在の音素よりも前の位置は負の値により、現在の音素のよりも後の位置は正の値により表される。
図6は、フルコンテキストラベルデータの例を示す図である。図6に示すフルコンテキストラベルデータD1は、N個のラベルデータL(1)、L(2)、…、L(N)を並べたデータである。Nは発話中の音素の数である。ラベルデータL(n)は、n番目の音素の位置についてのラベルデータである(nは1以上N以下の整数、Nは発話中の音素の数)。ラベルデータL(n)には、n番目の音素の位置のpn、an~knの値が記述される。第一変換部4は、ラベルデータL(1)、L(2)、…、L(N)のそれぞれに記述されている現在の音素p1,3、p2,3、…、pN,3を順に並べたデータに、フルコンテキストラベルデータに含まれる情報に基づいて得られる韻律を表す記号を付加してPLPデータD2を生成する。音素p1,3、p2,3、…、pN,3は読み方を表す文字に相当する。第一変換部4は、PLPデータD2に含まれる音素p1,3、p2,3、…、pN,3をカタカナや平仮名などの読み仮名や、ローマ字、発音記号など読み方を表す他の文字に変換したPLPデータを出力する。第一変換部4は、この変換を、予め記憶しておいた音素と読み方を表す文字との変換規則に基づいて行う。なお、第一変換部4は、音素p1,3、p2,3、…、pN,3をそのまま読み方を表す文字として用いたPLPデータD2を出力してもよい。第二変換部10も、第一変換部4と同様の処理を行う。
続いて、音声合成装置1の処理を説明する。まず、音声合成装置1は、音声合成処理に用いる音響特徴量生成モデルを、学習データを用いて学習する学習処理を行う。
図7は、音声合成装置1の学習処理を示すフロー図である。ステップS5において、音声合成装置1の学習データ入力部8は、学習データを入力する。学習データ入力部8は、学習データに含まれる学習用音声データを音響特徴量生成部6に出力し、学習データに含まれる学習用テキストデータを第二フルコンテキストラベル生成部9に出力する。ステップS10において、音響特徴量生成部6は、学習用音声データが示す音声波形から音響特徴量を算出する。
一方、ステップS15において、第二フルコンテキストラベル生成部9は、入力された学習用テキストデータからフルコンテキストラベルデータを生成し、第二変換部10に出力する。ステップS20において、第二変換部10は、後述する図9~図11に示す第一変換部4の処理と同様の処理により、フルコンテキストラベルデータを、読み仮名と韻律記号とを用いた文字列の学習用PLPデータに変換する。第二変換部10は、音響特徴量生成部6に学習用PLPデータを出力する。ステップS25において、音響特徴量生成部6は、音響特徴量生成モデルに学習用PLPデータを入力して推定の音響特徴量を生成する。ステップS30において、音響特徴量生成部6は、ステップS10において算出した音響特徴量と、ステップS25において生成した推定の音響特徴量との差分に基づいて、音響特徴量生成モデルを更新する。
なお、音声合成装置1は、ステップS10の処理の後にステップS15~ステップS25の処理を行ってもよく、ステップS15~ステップS25の処理の後にステップS10の処理を行ってもよい。また、音声合成装置1は、フルコンテキストラベルデータを外部から入力する場合、ステップS15の処理を行わない。また、学習用PLPデータを、入力部(図示せず)によりユーザが入力した指示に従って修正してから音響特徴量生成部6に入力してもよい。
音声合成装置1は、学習処理によって学習した音響特徴量生成モデルを用いて音声合成処理を行う。図8は、音声合成装置1の音声を生成する際の音声合成処理を示すフロー図である。ステップS105において、音声合成装置1のテキスト入力部2は、発話内容を表す漢字仮名交じりの文章のテキストデータを入力し、第一フルコンテキストラベル生成部3に出力する。ステップS110において、第一フルコンテキストラベル生成部3は、入力されたテキストデータからフルコンテキストラベルデータを生成し、第一変換部4に出力する。
ステップS115において、第一変換部4は、フルコンテキストラベルデータを、読み仮名と韻律記号とを用いた文字列の生成用PLPデータに変換する。すなわち、第一変換部4は、フルコンテキストラベルデータから、発話内容における出現順の音素の情報を抽出する。第一変換部4は、出現順の音素が表す読み方に対応した文字列に、フルコンテキストラベルデータが示す音素やアクセント句情報に基づいて得られる韻律を表す韻律記号を付加して生成用PLPデータを生成する。
ステップS120において、第一変換部4は、生成用PLPデータの修正が必要か否かを判定する。修正が必要か否かは予め音声合成装置1に設定されてもよく、ユーザが入力部(図示せず)により入力してもよい。第一変換部4は、修正が必要と判定した場合(ステップS120:YES)、修正部5に生成用PLPデータを出力する。ステップS125において、修正部5は、第一変換部4から入力した生成用PLPデータを、入力部によりユーザが入力した指示に従って修正し、音響特徴量生成部6に出力する。音響特徴量生成部6は、ステップS130の処理を行う。
一方、第一変換部4は、修正が不要と判定した場合(ステップS120:NO)、音響特徴量生成部6に生成用PLPデータを出力する。音響特徴量生成部6は、ステップS130の処理を行う。
ステップS130において、音響特徴量生成部6は、音響特徴量生成モデルに生成用PLPデータを入力して推定の音響特徴量を生成する。ステップS135において、ボコーダ部7は、音響特徴量生成部6が生成した音響特徴量を音声波形生成モデルに入力し、音声波形を推定する。ボコーダ部7は、推定した音声波形を音声データにより、あるいは、スピーカーなどの音声出力部(図示せず)により出力する。
なお、音声合成装置1は、フルコンテキストラベルデータを外部の装置から入力する場合、ステップS105及びステップS110の処理を行わず、ステップS115からの処理を実行する。
続いて、図9~図11を用いて、図8のステップS115における第一変換部4の処理を詳細に説明する。なお、図7のステップS20における第二変換部10の処理も第一変換部4の処理と同様である。図9は、第一変換部4における変換アルゴリズムを示す図である。変換アルゴリズムは、発話内容のフルコンテキストラベルデータと、その発話内容に含まれる音素の数Nとを入力とし、PLPデータを出力とする。図10及び図11は、第一変換部4の変換処理を示すフロー図である。図10及び図11のフロー図は、図9に示す変換アルゴリズムを用いた変換処理を示している。図9には、図10及び図11において対応する処理の符号を記述している。
図10のステップS205において、第一変換部4は、第一フルコンテキストラベル生成部3又は音声合成装置1の外部の装置からフルコンテキストラベルデータを入力する。ステップS210において、第一変換部4は、入力したフルコンテキストラベルデータを参照して、音素数Nを得る。ステップS215において、第一変換部4は、変数nに初期値1を設定する。変数nは、発話内における音素の順番を表す。
ステップS220において、第一変換部4は、(n-1)回目の繰り返し処理において作成されたPLPn-1に、フルコンテキストラベルデータのn番目のラベルデータL(n)に記述されている現在の音素pn,3を付加して、PLPnを生成する。音素pn,3は、発話におけるn番目の音素である。なお、n=1の場合、PLPn-1がないため、ラベルデータL(1)に音素p1,3を設定する。
ステップS225において、第一変換部4は、条件1を満たすか否かを判断する。条件1は、ラベルデータL(n)のan,3=1、かつ、ラベルデータL(n+1)のan+1,2=1という条件である。an,3は、現在のアクセント句における現在のモーラの後ろからの位置を表す。つまり、an,3=1とは、現在のモーラ位置が現在のアクセント句内において最も後ろであることを意味する。an,2は、現在のアクセント句における現在のモーラの先頭からの位置を表す。つまり、an+1,2=1とは、後続音素の位置を現在位置としたときに、現在のモーラ位置が現在のアクセント句内において先頭であることを示す。
第一変換部4は、ステップS225において条件1を満たすと判断した場合(ステップS225:YES)、ステップS230の処理を行う。ステップS230において、第一変換部4は、PLPnにフレーズの区切りを表す韻律記号「#」を付加する。第一変換部4は、ステップS290の処理に進む。
第一変換部4は、ステップS225において条件1を満たさないと判断した場合(ステップS225:NO)、ステップS235の処理を行う。ステップS235において、第一変換部4は、条件2を満たすか否かを判断する。条件2は、ラベルデータL(n)のan,1=0、かつ、an,2≠fn,1という条件である。an,1=0は、現在のアクセント句においてアクセント型と現在のモーラ位置とが一致することを示す。an,2≠fn,1は、現在のアクセント句のモーラ数と、現在のアクセント句における現在のモーラの先頭からの位置が不一致であることを示す。つまり、現在のアクセント句における最後のモーラではないことを示す。
第一変換部4は、ステップS235において条件2を満たすと判断した場合(ステップS235:YES)、ステップS240の処理を行う。ステップS240において、第一変換部4は、PLPnにアクセントの下降を表す韻律記号「&」を付加する。第一変換部4は、ステップS290の処理に進む。
第一変換部4は、ステップS235において条件2を満たさないと判断した場合(ステップS235:NO)、図11のステップS245の処理を行う。ステップS245において、第一変換部4は、条件3を満たすか否かを判断する。条件3は、ラベルデータL(n)のan,2=1、かつ、ラベルデータL(n+1)のan+1,2=2という条件である。an,2は、現在のアクセント句における現在のモーラの先頭からの位置を表す。an,2=1とは、現在のモーラ位置が現在のアクセント句内において先頭であることを意味する。また、an+1,2=2とは、後続音素の位置を現在位置としたときに、現在のモーラ位置が現在のアクセント句内において2番目であることを示す。
第一変換部4は、ステップS245において条件3を満たすと判断した場合(ステップS245:YES)、ステップS250の処理を行う。ステップS250において、第一変換部4は、PLPnにアクセント上昇を表す韻律記号「”」を付加する。第一変換部4は、図10のステップS290の処理に進む。
第一変換部4は、ステップS245において条件3を満たさないと判断した場合(ステップS245:NO)、ステップS255の処理を行う。ステップS255において、第一変換部4は、条件4を満たすか否かを判断する。条件4は、ラベルデータL(n)の現在の音素pn,3がポーズを表す「pau」であるという条件である。
第一変換部4は、ステップS255において条件4を満たすと判断した場合(ステップS255:YES)、ステップS260の処理を行う。ステップS260において、第一変換部4は、PLPnの最後に記述されている音素「pau」を削除し、ポーズを表す韻律記号「_」を最後に付加する。第一変換部4は、図10のステップS290の処理に進む。
第一変換部4は、ステップS255において条件4を満たさないと判断した場合(ステップS255:NO)、ステップS265の処理を行う。ステップS265において、第一変換部4は、条件5を満たすか否かを判断する。条件5は、ラベルデータL(n)の現在の音素pn,3が無音を表す「sil」であり、かつ、n=Nであるという条件である。n=Nとは、現在の音素が発話における最後の音素であることを示す。第一変換部4は、ステップS265において条件5を満たさないと判断した場合(ステップS265:NO)、図10のステップS290の処理に進む。
第一変換部4は、ステップS265において条件5を満たすと判断した場合(ステップS265:YES)、ステップS270の処理を行う。ステップS270において、第一変換部4は、条件6を満たすか否かを判断する。条件6は、ラベルデータL(n)のen,3が0であるという条件である。en,3が0とは、文末イントネーションが「通常」であることを示す。
第一変換部4は、ステップS270において条件6を満たすと判断した場合(ステップS270:YES)、ステップS275の処理を行う。ステップS275において、第一変換部4は、PLPnの最後に記述されている音素「sil」を削除し、PLPnの最後に文末(通常)を表す韻律記号「(」を付加する。第一変換部4は、図10のステップS290の処理に進む。
第一変換部4は、ステップS270において条件6を満たさないと判断した場合(ステップS270:NO)、ステップS280の処理を行う。ステップS280において、第一変換部4は、条件7を満たすか否かを判断する。条件7は、ラベルデータL(n)のen,3が1であるという条件である。en,3が1とは、文末イントネーションが疑問文であることを示す。
第一変換部4は、ステップS280において条件7を満たすと判断した場合(ステップS280:YES)、ステップS285の処理を行う。ステップS285において、第一変換部4は、PLPnの最後に記述されている音素「sil」を削除し、PLPnの最後に文末(疑問)を表す韻律記号「?」を付加する。第一変換部4は、図10のステップS290の処理に進む。また、第一変換部4は、ステップS280において条件7を満たさないと判断した場合(ステップS280:NO)、図10のステップS290の処理に進む。
図10のステップS290において、第一変換部4は、変数nが音素数Nに達したか否かを判定する。第一変換部4は、変数nが音素数Nに満たないと判定した場合(ステップS290:YES)、ステップS295の処理を行う。ステップS295において、第一変換部4は、変数nに1を加算する(ステップS295)。第一変換部4は、ステップS220からの処理を繰り返す。そして、第一変換部4は、変数nが音素数Nに達したと判定した場合(ステップS290:YES)、ステップS300の処理を行う。ステップS300において、第一変換部4は、PLPNを記述したPLPデータ(生成用PLPデータ)を出力する。
続いて、音響特徴量生成部6における音声合成処理及び学習処理を説明する。
図12は、音響特徴量生成モデル60を用いた音声合成アルゴリズムの例を示す図である。図12に示す音響特徴量生成モデル60は、音響特徴量生成部6の一例である。まず、音響特徴量生成モデル60の例について説明する。図12に示す音響特徴量生成モデル60は、参考文献4「Shen et al.,[online],2018年2月,"Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions",arXiv:1712.05884v2,[2018年7月11日検索],インターネット<URL: https://arxiv.org/pdf/1712.05884.pdf>」に示す技術を適用したDNNである。音響特徴量生成モデル60は、エンコーダ61及びデコーダ65を有する。図13は、エンコーダ61の例を示す図であり、図14は、デコーダ65の例を示す図である。なお、デコーダ65が有するアテンションネットワーク651ついては、図13に記載されている。図12~図14を用いて、エンコーダ61及びデコーダ65について説明する。
エンコーダ61は、CNN(Convolutional Neural Network;畳み込みニューラルネットワーク)及びRNN(Recurrent Neural Network;再帰型ニューラルネットワーク)により、入力されたPLPデータが示す文章内の発話内容に、そのPLPデータが示す文章内における当該発話内容の前後の文脈を考慮した文字列の特徴量を生成する。デコーダ65は、RNNにより、エンコーダ61が生成した特徴量と、過去に生成した音響特徴量とに基づいて、入力されたPLPデータが示す発話内容に対応する音声の予測の音響特徴量を1フレームずつ生成する。
エンコーダ61は、文字列変換処理611と、畳み込みネットワーク612と、双方向LSTMネットワーク613とにより構成される。文字列変換処理611では、PLPデータの記述に用いられている各文字を数値に変換し、PLPデータをベクトル表現に変換する。
畳み込みネットワーク612は、複数層(例えば、3層)の畳み込みレイヤが接続されたニューラルネットワークである。各畳み込みレイヤでは、PLPデータのベクトル表現に対して、所定の文字数に相当する大きさの複数のフィルタにより畳み込み処理を行い、さらに、バッチ正規化及びReLU(Rectified Linear Units)活性化を行う。これにより、発話内容の文脈がモデル化される。例えば、3層の畳み込みレイヤのフィルタサイズは[5,0,0]、フィルタの数は512である。デコーダ65に入力する文字列の特徴量を生成するために、畳み込みネットワーク612の出力が双方向LSTMネットワーク613に入力される。双方向LSTMネットワーク613は、512ユニット(各方向に256ユニット)の単一の双方向LSTMである。双方向LSTMネットワーク613により、入力されたテキストデータに記述された文章内における前後の文脈を考慮した文字列の特徴量を生成することが可能となる。LSTMは、RNN(Recurrent Neural Network)の一つである。
デコーダ65は、自己回帰RNNである。デコーダ65は、アテンションネットワーク651と、前処理ネットワーク652と、LSTMネットワーク653と、第一線形変換処理654と、後処理ネットワーク655と、加算処理656と、第二線形変換処理657とにより構成される。
アテンションネットワーク651は、自己回帰RNNにアテンション機能を追加したネットワークであり、エンコーダ61からの出力全体を1フレームごとに要約した固定長のコンテキストベクトルを出力する。アテンションネットワーク651は、双方向LSTMネットワーク613からの出力(エンコーダ出力)を入力する。フレームごとに、要約を生成するためにエンコーダ出力からデータを抽出するときの重みは、エンコーダ出力におけるデータ位置に応じて異なっている。アテンションネットワーク651は、エンコーダ出力から抽出したデータに、前のデコードのタイミングで生成したコンテキストベクトルを用いて特徴を追加したデータを用いて、今回のフレームの出力となるコンテキストベクトル(アテンションネットワーク出力)を生成する。
前処理ネットワーク652は、前回の時間ステップにおいて第一線形変換処理654が出力したデータを入力する。前処理ネットワーク652は、それぞれ256個の隠れReLUユニットからなる完全結合された複数(例えば2つ)のレイヤを含んだニューラルネットワークである。ReLUユニットからなるレイヤは、各ユニットの値がゼロよりも小さい場合はゼロを出力し、ゼロよりも大きい場合はそのままの値を出力する。LSTMネットワーク653は、1024ユニットを有する複数(例えば、2層)の一方向LSTMが結合されたニューラルネットワークであり、前処理ネットワーク652からの出力と、アテンションネットワーク651からの出力を結合したデータを入力する。フレームの音響特徴量は、前のフレームの音響特徴量の影響を受けるため、アテンションネットワーク651から出力された現在のフレームの特徴量に、前処理ネットワーク652からの出力を結合することにより、前のフレームの音響特徴量に基づく特徴を付加している。(詳細は参考文献4を参照されたい。)
第一線形変換処理654は、LSTMネットワーク653から出力されたデータを線形変換し、1フレーム分のメルスペクトログラムのデータであるコンテキストベクトルを生成する。第一線形変換処理654は、生成したコンテキストベクトルを、前処理ネットワーク652、後処理ネットワーク655及び加算処理656に出力する。
後処理ネットワーク655は、複数層(例えば、5層)の畳み込みネットワークを結合したニューラルネットワークである。例えば、5層の畳み込みネットワークは、フィルタサイズが[5,0,0]、フィルタの数は1024である。各畳み込みネットワークでは、畳み込み処理及びバッチ正規化と、最後の層を除いてtanh活性化とを行う。後処理ネットワーク655からの出力は、波長変換後の全体的な品質を改善するために用いられる。加算処理656では、第一線形変換処理654が生成したコンテキストベクトルと、後処理ネットワーク655からの出力とを加算する。
上記のスペクトログラムフレーム予測と並行して、第二線形変換処理657では、LSTMネットワーク653の出力とアテンションコンテキストとの連結をスカラに投影したのちシグモイド活性化を行って、出力シーケンスが完了したかの判定に用いるストップトークン(Stop Token)を出力する。
図8のステップS130において、音響特徴量生成部6は、生成用PLPデータA1を音響特徴量生成モデル60に入力し、フレーム毎の音響特徴量であるメルスペクトログラムA2を生成し、ボコーダ部7に出力する。ステップS135において、ボコーダ部7は、音声波形生成モデルにフレーム毎のメルスペクトログラムA2を入力し、時間領域波形に逆変換して音声波形データA3を生成する。
図15は、音響特徴量生成モデル60の学習アルゴリズムを示す図である。まず、学習データ入力部8は、学習データを入力する。学習データは、発話の音声波形を表す学習用音声データB1と、その発話の内容を漢字仮名交じりで記述した学習用テキストデータC1との組である。音響特徴量生成部6は、学習用音声データB1が示す音声波形にFFT(Fast Fourier Transform:高速フーリエ変換)を行った結果にABS(絶対値算出処理)を行い、さらに、メルフィルタバンク処理を行ってMFCC(Mel-Frequency Cepstrum Coefficients:メル周波数ケプストラム係数)を取得する。音響特徴量生成部6は、MFCCからメルスペクトログラムB2を音響特徴量として算出する。
一方で、学習データ入力部8は、学習用テキストデータC1を第二フルコンテキストラベル生成部9に出力する。第二フルコンテキストラベル生成部9は、学習用テキストデータをフルコンテキストラベルデータC2に変換し、第二変換部10は、このフルコンテキストラベルデータC2を学習用PLPデータC3に変換する。音響特徴量生成モデル60は、学習用PLPデータC3を入力し、メルスペクトログラムC4を推定結果として得る。
音響特徴量生成部6は、メルスペクトログラムB2と、推定したメルスペクトログラムC4との差分を誤差として算出し、算出した誤差に基づいて、音響特徴量生成モデル60を更新する。音響特徴量生成部6は、複数の学習データを用いて、学習用音声データB1から算出したメルスペクトログラムB2と、学習用テキストデータC1に基づき生成された学習用PLPデータC3から音響特徴量生成モデル60が推定したメルスペクトログラムC4との差分が小さくなるように、音響特徴量生成モデル60を更新する。具体的には、音響特徴量生成部6は、この誤差をMSE(最小二乗法)により算出し、算出した差分が小さくなるように、確率的勾配降下法のADAMを用いて、音響特徴量生成モデル60における各ユニット(ノード)への入力の重み等を更新する。MSEは、例えば、参考文献5「GitHub, Inc,[online],"Spectrogram Feature prediction network",[2018年8月24日検索],インターネット<URL:https://github.com/Rayhane-mamah/Tacotron-2/wiki/Spectrogram-Feature-prediction-network#training>」に記載されている。また、ADAMは、例えば、参考文献6「Diederik P. Kingma,Jimmy Lei Ba,[online],2017年,"ADAM: A Method for Stochastic Optimization",arXiv:1412.6980v9,[2018年8月24日検索],インターネット<URL: https://arxiv.org/pdf/1412.6980.pdf>」に記載されている。
なお、音響特徴量生成モデル60には、参考文献4に記載のTacotron 2のほか、Deep Voice 3、Transformer-based TTSなどのSequence-to-sequence + attention方式を用いることができる。Deep Voice 3は、例えば、参考文献7「Wei Ping et al.,[online],2018年2月,"Deep Voice 3: Scaling Text-to-Speech with Convolutional Sequence Learning",arXiv:1710.07654v3,インターネット<URL: https://arxiv.org/pdf/1710.07654.pdf>」に記載されている。Transformer-based TTSは、例えば、参考文献8「Naihan Li et al.,[online],2019年1月," Neural Speech Synthesis with Transformer Network",arXiv:1809.08895v3,[2019年11月20日検索],インターネット<URL: https://arxiv.org/pdf/1809.08895.pdf>」に記載されている。
本実施形態の音声合成装置1により生成された音声に関する評価実験の結果について示す。図16は、評価実験に使用した3種類のSequence-to-sequenceの音響特徴量推定手法と、3種類の入力データとの組み合わせを示す図である。3種類の音響特徴量推定手法は、Tacotron 2、Deep Voice 3、Transformer-based TTSである。また、3種類の入力データは、PLPデータ、KTデータ、KHデータである。KTデータは、カタカナのみのテキストデータであり、KHデータは、漢字仮名交じりのテキストデータである。種別は、これらの組み合わせ別の名称を表す。本実施形態の音声合成装置1は、PLPデータを入力に用いたT2PLP、DV3PLP、TRPLPである。
各音響特徴量推定手法の音響特徴量生成モデルの学習には、女性ナレーター1名の音声コーパスを使用した。音声データは、サンプリング周波数22050[Hz]、16[ビット]量子化のPCM(pulse code modulation)である。また、音声コーパスの漢字仮名交じり文を参考文献2の技術により変換したフルコンテキストラベルデータから学習用PLPデータを生成して、音響特徴量生成モデルの学習に用いた。
実験には、学習用の音声コーパスに含まれていない30文の入力データを音響特徴量生成モデルに入力して推定されたメルスペクトログラムを、音声波形生成モデルに入力することによって、合計30個の合成音を作成した。これらの合成音の音量を平均ラウドネス値に基づいて調整したものを音声刺激として使用した。
被験者は、のべ200人である。被験者は、原音、本実施形態、従来技術により原音声を分析合成した音声(分析合成)の3種類の方式について、それぞれ2文、合計6文でトレーニングをしたのち、残りの10文、合計30文の音声刺激を評価に用いた。被験者は、ランダムに提示された音声刺激に対して自然性に関する5段階評価を行った。被験者全員の評価結果から平均オピニオン評点(MOS)を求めた。
まず、客観評価実験について述べる。
図17は、音声合成を実施した場合のエンコーダ-デコーダ間のアラインメントを示す図である。図17(a)、図17(b)、図17(c)はそれぞれ、T2PLP(本実施形態)、T2KT、T2KHにより音声合成を実施した場合のエンコーダ-デコーダ間のアラインメントを可視化したものである。この実験では、音響特徴量生成モデルの音響特徴量推定手法にTacotron 2を用い、読み仮名及び韻律記号のPLPデータ(T2PLP)、カタカナのみのKTデータ(T2KT)、漢字仮名交じり文のKHデータ(T2KH)を入力として比較実験を行った。図17(a)に示すように、T2PLP(本実施形態)では、エンコーダ61とデコーダ65との間のアラインメントが途中で非連続になることなく単調増加しているため、正しく学習されていることを確認できる。一方、図17(c)は不鮮明なアラインメントを示しており、正しい学習ができていない可能性がある。
図18は、図17の実験と同じ条件で音声合成された音声のメルスペクトログラムを表示したものである。図18(a)、図18(b)、図18(c)、図18(d)はそれぞれ、原音(Original)、T2PLP(本実施形態)、T2KT、T2KHのメルスペクトログラムを示している。同図に示すように、本実施形態のT2PLPは、他の手法より精度よくメルスペクトログラムを再現できていることが確認できる。
続いて、主観評価実験の結果を示す。図19は、主観評価実験の結果得られたMOS値と95%信頼区間とを示す図である。図19(a)は、原音(Original)、分析合成(ReGL)、T2KH、T2KT、T2PLP(本実施形態)の結果を、図19(b)は、原音、ReGL、DV3KH、DV3KT、DV3PLP(本実施形態)の結果を、図19(c)は、原音、ReGL、TRKH、TRKT、TRPLP(本実施形態)の結果を示す。これらの実験結果について考察すると、読み仮名及び韻律記号を入力とする本実施形態が、他の手法より有意性があることが確認できる。このように、本実施形態により生成されたPLPデータは、各Sequence-to-sequence音声合成手法に共通して効果を発揮している。このことから、Sequence-to-sequence音声合成に汎用的に使用可能と考えられる。
また、従来法との比較のための主観評価実験を行った。図20は、実験を行った音響特徴量推定手法と、音響特徴量と、音声波形合成方法との組み合わせを示す図である。種別は、これらの組み合わせ別の名称を表す。実施形態の音響特徴量推定手法にはTacotron2を用いた。また、従来法の音響特徴量推定手法には、Merlinを用いた。Merlinは、例えば、参考文献9「Zhizheng Wu et al.,[online],2016年9月," Merlin: An Open Source Neural Network Speech Synthesis System",[2019年11月22日検索],インターネット<URL: https://pdfs.semanticscholar.org/8339/47531a8cd6b79d17003adab58abb00edc0f2.pdf>」に記載されている。
図21は、図20に示す各種別について主観評価実験を行った結果得られたMOS値と95%信頼区間とを示す図である。図21の結果を考察すると、本実施形態のT2PLPは、従来法のMWN及びMWNよりもスコアが高いことが分かる。この結果から、本実施形態による自動ラベリングを使用する手法が従来法より評価値が高いことが分かる。
また、本実施形態により生成されたPLPデータと手動修正したPLPデータとのそれぞれを学習に用いた場合の比較実験を行った。この実験では、本実施形態の音声合成装置1により生成された学習用PLPデータを用いて学習した音響特徴量生成モデルと、手動で修正された学習用PLPデータを用いて学習した音響特徴量生成モデルとのそれぞれにより合成音を合成し、主観評価実験を実施した。音響特徴量生成モデルの学習には、7,935文を用いた。ボコーダには、WaveNetを用いた。WaveNetの学習には、7,935文の音声データと、それらから算出したメルスペクトログラムを用いた。
図22は、本実施形態の音声合成装置1により生成した学習用PLPデータと手動修正された学習用PLPデータとの文字列の一致度をpython difflib関数で比較した結果を示す図である。また、図23は、主観評価実験を行った結果得られたMOS値と95%信頼区間とを示す図である。図23に示すように、手動修正した学習用PLPデータを用いたときの合成音は、分析合成と同等の評価結果を得ることができた。しかし、音声合成装置1により生成した学習用PLPデータを用いたときの合成音の自然性は低い結果になった。これは、音声合成装置1が生成した学習用PLPデータは、漢字仮名交じり文の読み間違いやアクセントなど韻律記号の変換誤りを含んでいるため、学習用PLPデータとメルスペクトログラムが一致しないものが含まれるためと考えられる。図22に示す結果によれば、カタカナの推定精度(文字列の類似度)は、全体としては比較的類似しているが、完全に一致した文は半数以下である。このことから、1文章あたりの変換ミスは少ないものの、本実施形態により生成された学習用PLPデータには、何かしらの誤りが含まれていることが多いことがうかがえる。読み仮名と韻律記号においては、カタカナのみのときよりも文字列の類似度が低いことから、韻律記号の推定誤りが発生していることがうかがえる。これらの誤りが自然性に影響を与えた可能性がある。しかしながら、変換時に漢字・仮名変換とアクセント・ポーズ推定に誤りが混入する可能性があるものの、上記の実験結果から、カタカナのみのテキストデータや、漢字仮名交じりのテキストデータを用いるよりも、高い品質の音声合成の実現が確認された。
上述した評価実験の結果によって、本実施形態によりフルコンテキストラベルデータから変換したPLPデータを用いて、品質よい音声合成を行うための音声合成モデルを生成できることが示された。
本実施形態の音声合成装置1では、従来から一般的に使用されているフルコンテキストラベルを用いて、音響特徴量生成モデルへの入力データを作成することが可能となる。よって、既存の音声データを学習データとして活用しやすくなる。従来は、高品質な合成音を得るには、人手で音素区切り境界を付与するなど煩雑な作業を行う必要があった。本実施形態の音声合成装置は、音響特徴量生成モデルにより精度よく音響特徴量を推定するために用いられる読み仮名と韻律記号により記述された入力データを、漢字仮名交じりのテキストから自動で生成する。従って、学習や音声合成のために用意する言語データの準備にかかるユーザの負担を軽減し、コストを低減することができる。また、本実施形態の音声合成装置は、Tacotron 2、Deep Voice 3、Transformer-based TTSの3種類のSequence-to-sequence音声合成それぞれについて自然性が高い音声を合成することが可能である。このことから、他のSequence-to-sequenceの音声合成モデルへの適用が期待できる。
本実施形態は、日本語だけではなく、フルコンテキストラベルデータにより記述することができる他の言語にも適用することができる。この場合、PLPデータには、日本語の仮名に代えて、その言語の読み方を表す文字又は文字列を用いる。
なお、上述の音声合成装置1は、内部にコンピュータシステムを有している。そして、音声合成装置1の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
上述した実施形態によれば、音声合成装置は、変換部と、音響特徴量生成部と、ボコーダ部とを備える。変換部は、例えば、第一変換部4及び第二変換部10である。変換部は、発話における音素の情報と、発話において当該音素が含まれるアクセント句及び当該アクセント句に隣接するアクセント句に関する特徴を示すアクセント句情報とを少なくとも含むラベルデータを発話における音素の出現順に並べたコンテキストラベルデータから、発話における出現順の音素の情報を抽出する。変換部は、出現順の音素が表す読み方に対応した文字列に、音素とアクセント句情報との少なくとも一方に基づいて得られる韻律を表す文字又は文字列である韻律記号を付加したテキストデータを生成する。音響特徴量生成部は、シーケンス・ツー・シーケンス方式(アテンション機構を有するSequence-to-sequence + attention方式)の音響特徴量生成モデルに変換部により生成されたテキストデータを入力し、発話の推定の音響特徴量を生成する。ボコーダ部は、音響特徴量生成部が生成した音響特徴量を用いて音声波形を推定する。
音声合成装置は、音響特徴量生成部に入力するテキストデータに、ユーザの操作に基づいて修正を行う修正部をさらに備えてもよい。
発話が日本語の場合、読み方に対応した文字列を構成する文字は、音素を表す文字、カタカナ、発音記号、平仮名又はアルファベットである。
韻律記号は、アクセント位置を指定する記号と、句又はフレーズの区切りを指定する記号と、文末のイントネーションを指定する記号と、ポーズ調を指定する記号とのうちのいずれかを含む。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこれら実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。