(57)【要約】【課題】リソースが限られている言語であっても効率よく学習が行える、深層学習を用いる音声合成のためのフロントエンドの学習方法を提供する。【解決手段】フロントエンドの学習方法は、ＤＢＲＮＮの基本ユニットを定義する情報等を記憶するステップ５００と、ＤＢＲＮＮの学習のため、アノテート済文字列を記憶したデータベースに接続するステップ５０２と、アノテート済文字列に含まれる各文字を、固定長のＧｌｏＶｅベクトルにマッピングして文字ベクトル列を生成するステップ５３１と、アノテーションにしたがいラベルをワンホットベクトルに変換するステップ５３２と、複数のアノテート済文字列から生成された文字ベクトル列と、対応するラベル列との組み合わせを用いてＤＢＲＮＮの基本ユニットのパラメータを教師あり学習により学習するステップ５３３〜５３８とを含む。言語は単独でも多言語でもよい。【選択図】図１１
2019032529.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、ディープ双方向リカレントニューラルネットワーク（ＤＢＲＮＮ）を生成する基本となる、予め設計されたリカレントニューラルネットワーク（ＲＮＮ）からなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータの初期値を記憶するステップと、
コンピュータが、前記ＤＢＲＮＮの学習のため、各々が、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかによりアノテートされた複数のアノテート済文字列を記憶したデータベースに接続するステップと、
コンピュータが、前記複数のアノテート済文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、
コンピュータが、前記複数のアノテート済文字列から生成された前記文字ベクトル列と、当該文字ベクトル列に対応するラベル列との組み合わせを用いて、入力される文字列に対して、前記複数種類のラベルのうちで正しい確率が高いラベルを前記ＤＢＲＮＮが出力可能となるように、前記基本ユニットのパラメータを教師あり学習により学習するステップとを含む、音声合成のためのフロントエンドの学習方法。
【請求項２】
コンピュータが、大量の文字列からなる大規模文字列コーパスに接続するステップと、
コンピュータが、前記大規模文字列コーパスから文字列を読出し、文字間の共起関係を表す共起マトリクスを生成するステップと、
コンピュータが、前記共起マトリクスに対するバイリニア回帰変換を行うことにより、各文字から文字ベクトルへの変換テーブルを生成するステップとをさらに含み、
前記文字ベクトル列を生成するステップは、
コンピュータが、前記複数のアノテート済文字列に含まれる各文字を、前記変換テーブルを用いて文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップを含む、請求項１に記載の音声合成のためのフロントエンドの学習方法。
【請求項３】
前記基本ユニットのパラメータを学習する前記ステップは、
コンピュータが、前記複数のアノテート済文字列の１つを読出すステップと、
コンピュータが、前記読出すステップで読出された文字列に含まれる各文字を前記文字ベクトルに変換するステップと、
コンピュータが、前記読出すステップで読出された文字列に含まれる文字の数を調べるステップと、
コンピュータが、前記調べるステップで調べられた文字の数だけ前記基本ユニットの複製と相互接続とを行ってＤＢＲＮＮを生成するステップと、
コンピュータが、前記ＤＢＲＮＮを生成するステップにおいて生成されたＤＢＲＮＮを構成する基本ユニットの入力に、前記変換するステップにおいて変換された文字ベクトル列を入力したときの前記ＤＢＲＮＮの出力を計算するステップと、
コンピュータが、前記計算するステップで得られた前記ＤＢＲＮＮの出力と、前記変換するステップにおいて変換された前記文字列に付されたラベル列との誤差に基づいて、前記基本ユニットのパラメータを誤差逆伝播法により更新するステップと、
コンピュータが、前記読出すステップ、前記変換するステップ、前記調べるステップ、前記ＤＢＲＮＮを生成するステップ、前記計算するステップ、及び前記更新するステップを、所定の終了条件が成立するまで繰返し実行するステップとを含む、請求項１又は請求項２のいずれかに記載の音声合成のためのフロントエンドの学習方法。
【請求項４】
コンピュータを、請求項１〜請求項３の何れかに記載の音声合成のためのフロントエンドの学習方法を実行するように機能させる、コンピュータプログラム。
【請求項５】
請求項１〜請求項３の何れかに記載の音声合成のためのフロントエンドの学習方法により学習が行われたＤＢＲＮＮと、
入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成し前記ＤＢＲＮＮに入力する文字ベクトル変換部とを含む音声合成システムであって、
前記ＤＢＲＮＮは、前記文字ベクトル変換部により生成された前記文字ベクトル列の入力に応答して、各文字に対応する言語学的特徴を表すラベルからなるラベル列を出力し、
前記音声合成システムはさらに、前記ＤＢＲＮＮが出力した前記ラベル列を用いて、当該ラベル列により表される言語学的特徴を反映した発話信号を合成する音声合成装置とを含む、音声合成システム。
【請求項６】
コンピュータが、ＤＢＲＮＮを生成する基本となる、予め設計されたＲＮＮからなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータを記憶するステップを含み、
前記基本ユニットの前記パラメータは、当該基本ユニットで構成されるＤＢＲＮＮに文字列が入力されたときに、当該ＤＢＲＮＮの出力に、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかを出力するように予め学習済であり、
さらに、コンピュータが、入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、
コンピュータが、前記入力される文字列に含まれる文字の数を調べるステップと、
コンピュータが、前記調べるステップで調べられた文字の数だけ前記基本ユニットの複製と相互接続とを行ってＤＢＲＮＮを生成するステップと、
コンピュータが、前記ＤＢＲＮＮを生成するステップにおいて生成されたＤＢＲＮＮを構成する基本ユニットの入力に、前記文字ベクトルに変換するステップにおいて変換された文字ベクトル列を入力したときの前記ＤＢＲＮＮの出力を計算するステップとを含む、音声合成のためのフロントエンド処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は音声合成に関し、特に、テキストを解析して音声合成のための言語学的特徴を表すパラメータを生成するフロントエンドの改良技術に関する。
【背景技術】
【０００２】
複数言語の間のｔｅｘｔ−ｔｏ−ｓｐｅｅｃｈ（ＴＴＳ）合成では、合成すべき発話の言語学的な特徴を生成するためのＴＴＳフロントエンドが用いられる。言語学的な特徴としては、音素、シラブル、及び品詞（part of speech：ＰＯＳ）ラベル付け、フェージング、及び長い文を短い発話に分割するポーズブレーク分割等がある。
【０００３】
こうした言語学的な特徴を定める方法として、後掲の非特許文献１に記載された統計的な方法及び、非特許文献２に記載された、ベクトル空間モデルにおける特異値分解（singular value decomposition：ＳＶＤ）を用いたものがある。
【０００４】
一方、近時、音声認識、機械翻訳等の分野でいわゆる深層学習によるディープニューラルネットワーク（Deep Neural Network：ＤＮＮ）が広く用いられるようになり、種々の応用において従来のシステムの精度を凌駕する性能を示している。そこで、深層学習をＴＴＳフロントエンドにうまく適用することにより、合成される音声がより自然なものになることが期待できる。
【０００５】
図１に、従来技術において音声合成のＴＴＳフロントエンドにＤＮＮを用いた場合の音声合成システムの概略構成を示す。図１を参照して、この音声合成システム５０は、プレーンテキスト６０を受けて形態素解析を行い、品詞情報及び発音情報等、音声合成に必要な言語学的特徴を示すラベル列６４を出力するＴＴＳフロントエンド６２と、このラベル列６４を受けて音声合成して発話信号６８を出力する音声合成装置６６とを含む。
【０００６】
ＴＴＳフロントエンド６２は、プレーンテキスト６０に対して形態素解析を行ってラベル列６４を出力する形態素解析エンジン８０と、形態素解析エンジン８０が形態素解析の際に参照する言語モデル及び辞書を記憶した言語モデル記憶部８２とを含む。
【０００７】
言語モデル記憶部８２に記憶された言語モデルは、品詞、発音等の情報が各単語にアノテーションとして予め付されたテキストを記憶したアノテート済テキストコーパス７２を学習データとして、教師あり学習７０により生成する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】H. Kawai, T. Toda, J. Ni, M.Tsuzaki, and K. Tokuda, "XIMERA: A NEW TTS FROM ATR BASED ON CORPUS-BASEDTECHNOLOGIES," in the 5th ISCA Speech Synthesis Workshop Pittsburgh, PA,USA June 14-16, 2004.
【非特許文献２】H. Lu, S. King and O. Watts,"Combining a Vector Space Representation of Linguistic Context with a DeepNeural Network for Text-To-Speech Synthesis," in the 8th ISCA SpeechSynthesis Workshop, August 31 - September 2, 2013, Barcelona, Spain.
【非特許文献３】J. Pennington, R. Socher,and C. D. Manning, 2014, “GloVe:Global Vectors for Word Representation,” http://nlp.stanford.edu/projects/glove/.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
深層学習をＴＴＳフロントエンドに適用しようとする場合、困難な点がいくつかある。第１に、フロントエンドの言語モデル及び辞書を教師あり学習により訓練しようとする場合、アノテート済のテキストコーパスが限られているという問題がある。特にリソースが少ない言語ではこの問題が顕著である。第２に、従来技術では、ＤＮＮへの入力として、いわゆるワンホットベクトルが使用されてきた。ワンホットベクトルとは、例えば単語（形態素）を表す場合には、単語数と同じ数の要素を持つベクトルを用意し、ある単語について、その単語に対応する要素の値を１に、その他の要素の値を０にすることによってその単語を表すようなベクトル表現をいう。ワンホットベクトルを用いる場合、その次元が非常に大きくなること、またその要素の大部分が０となること等、言語学的特徴を表す上では大きな制限があり、ＴＴＳフロントエンドに用いるには適していないという問題がある。
【００１０】
したがって本発明の１つの目的は、リソースが限られている言語であっても効率よく学習が行える、深層学習を用いる音声合成のためのフロントエンドの学習方法、そのためのコンピュータプログラム、及び音声合成システム並びに音声合成のフロントエンド処理方法を提供することである。
【００１１】
本発明の他の目的は、複数種類の言語のテキストから効率よく学習が行える、深層学習を用いる音声合成のためのフロントエンドの学習方法、そのためのコンピュータプログラム、及び音声合成システム並びに音声合成のフロントエンド処理方法を提供することである。
【００１２】
本発明のさらに他の目的は、１つの文字に複数通りの読み方を持つ言語を含む言語のテキストからも効率よく学習が行える、深層学習を用いる音声合成のためのフロントエンドの学習方法、そのためのコンピュータプログラム、及び音声合成システム並びに音声合成のフロントエンド処理方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明の第１の局面に係る音声合成のためのフロントエンドの学習方法は、コンピュータが、ディープ双方向リカレントニューラルネットワーク（ＤＢＲＮＮ：Deep bidirectional Recurrent Neural Network）を生成する基本となる、予め設計されたリカレントニューラルネットワーク（ＲＮＮ）からなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータの初期値を記憶するステップと、コンピュータが、ＤＢＲＮＮの学習のため、各々が、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかによりアノテートされた複数のアノテート済文字列を記憶したデータベースに接続するステップと、コンピュータが、複数のアノテート済文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、コンピュータが、複数のアノテート済文字列から生成された文字ベクトル列と、当該文字ベクトル列に対応するラベル列との組合わせを用いて、入力される文字列に対して、複数種類のラベルの内で正しい確率が高いラベルをＤＢＲＮＮが出力可能となるように、基本ユニットのパラメータを教師あり学習により学習するステップとを含む。
【００１４】
好ましくは、音声合成のためのフロントエンドの学習方法は、コンピュータが、大量の文字列からなる大規模文字列コーパスに接続するステップと、コンピュータが、大規模文字列コーパスから文字列を読出し、文字間の共起関係を表す共起マトリクスを生成するステップと、コンピュータが、共起マトリクスに対するバイリニア回帰変換を行うことにより、各文字から文字ベクトルへの変換テーブルを生成するステップとを含む。文字ベクトル列を生成するステップは、コンピュータが、複数のアノテート済文字列に含まれる各文字を、変換テーブルを用いて文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップをさらに含む。
【００１５】
より好ましくは、基本ユニットのパラメータを学習するステップは、コンピュータが、複数のアノテート済文字列の１つを読出すステップと、コンピュータが、読出すステップで読出された文字列に含まれる各文字を文字ベクトルに変換するステップと、コンピュータが、読出すステップで読出された文字列に含まれる文字の数を調べるステップと、コンピュータが、調べるステップで調べられた文字の数だけ基本ユニットの複製と相互接続とを行ってＤＢＲＮＮを生成するステップと、コンピュータが、ＤＢＲＮＮを生成するステップにおいて生成されたＤＢＲＮＮを構成する基本ユニットの入力に、変換するステップにおいて変換された文字ベクトル列を入力したときのＤＢＲＮＮの出力を計算するステップと、コンピュータが、計算するステップで得られたＤＢＲＮＮの出力と、変換するステップにおいて変換された文字列に付されたラベル列との誤差に基づいて、基本ユニットのパラメータを誤差逆伝播法により更新するステップと、コンピュータが、読出すステップ、変換するステップ、調べるステップ、ＤＢＲＮＮを生成するステップ、計算するステップ、及び更新するステップを、所定の終了条件が成立するまで繰返し実行するステップとを含む。
【００１６】
本発明の第２の局面に係るコンピュータプログラムは、コンピュータを、上記したいずれかの音声合成のためのフロントエンドの学習方法を実行するよう機能させる。
【００１７】
本発明の第３の局面に係るコンピュータは、上記した何れかの音声合成のためのフロントエンドの学習方法を実行するようにプログラムされている。
【００１８】
本発明の第４の局面に係る音声合成システムは、上記した何れかの音声合成のためのフロントエンドの学習方法により学習が行われたＤＢＲＮＮと、入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成しＤＢＲＮＮに入力する文字ベクトル変換部とを含む。ＤＢＲＮＮは、文字ベクトル変換部により生成された文字ベクトル列の入力に応答して、各文字に対応する言語学的特徴を表すラベルからなるラベル列を出力する。この音声合成システムはさらに、ＤＢＲＮＮにより出力されたラベル列を用いて、当該ラベル列により表される言語学的特徴を反映した発話信号を合成する音声合成装置を含む。
【００１９】
本発明の第５の局面に係る音声合成のためのフロントエンド処理方法は、コンピュータが、ＤＢＲＮＮを生成する基本となる、予め設計されたＲＮＮからなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータを記憶するステップを含む。基本ユニットのパラメータは、当該基本ユニットで構成されるＤＢＲＮＮに文字列が入力されたときに、当該ＤＢＲＮＮの出力に、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかを出力するように予め学習済である。この方法はさらに、コンピュータが、入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、コンピュータが、文字ベクトル列を生成するステップで変換された文字の数を調べるステップと、コンピュータが、入力される文字列に含まれる文字の数だけ基本ユニットの複製と相互接続とを行ってＤＢＲＮＮを生成するステップと、コンピュータが、ＤＢＲＮＮを生成するステップにおいて生成されたＤＢＲＮＮを構成する基本ユニットの入力に、文字ベクトルに変換するステップにおいて変換された文字ベクトル列を入力したときのＤＢＲＮＮの出力を計算するステップとを含む。
【００２０】
本発明の本質及びその効果は、図面とともに以下に記載する実施の形態を参照することによって明らかになるであろう。
【図面の簡単な説明】
【００２１】
【図１】従来のＴＴＳフロントエンドを用いた音声合成システムの概略構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係るＴＴＳフロントエンドを用いた音声合成システムの概略構成を示すブロック図である。
【図３】後述のＧｌｏＶｅベクトルにより単語ベクトルを表す際の学習機構の概略構成を示す図である。
【図４】図２に示すＴＴＳフロントエンドで使用する、シラブルを文字ベクトルの１例であるＧｌｏＶｅベクトル（シラブルベクトル）によって表すＧｌｏＶｅベクトル算出部の概略構成を示すブロック図である。
【図５】入力テキストの各シラブルをシラブルベクトルに変換するためのシラブル／ベクトル変換部の概略構成を示す図である。
【図６】図２に示すＤＢＲＮＮの概念的構造を示す図である。
【図７】ＤＢＲＮＮの基本ユニットの入力層の概略構成を示す図である。
【図８】ＤＢＲＮＮの基本ユニットの隠れ層の概略構成を示す図である。
【図９】ＤＢＲＮＮの基本ユニットの出力層の概略構成を示す図である
【図１０】本発明の実施の形態に係るＴＴＳフロントエンドにより中国語の各シラブルにＰＯＳラベルを付すようＤＢＲＮＮを訓練する方法の概略構成を示す図である。
【図１１】本発明の実施の形態において、シラブル／ベクトル変換部を用いてＤＢＲＮＮの訓練を行うためのコンピュータプログラムの制御構造を示すフローチャートである。
【図１２】本発明の実施の形態において、シラブル／ベクトル変換部及びＤＢＲＮＮを用いてＰＯＳラベルを推定するためのコンピュータプログラムの制御構造を示すフローチャートである。
【図１３】本発明の第１の実施の形態の第１の変形例により、中国語の単語セグメンテーションを行うようＤＢＲＮＮを訓練する方法の概略構成を示す図である。
【図１４】本発明の第１の実施の形態の第２の変形例により、中国語のシラブル列からピンイン列を生成するようＤＢＲＮＮを訓練する方法の概略構成を示す図である。
【図１５】本発明の第１の実施の形態の第３の変形例により、中国語のポーズブレークを示すラベル列を出力するようＤＢＲＮＮを訓練する方法の概略構成を示す図である。
【図１６】本発明の第１の実施の形態及びその変形例の性能について中国語に関する評価実験を行った際の設定をタスク別に表形式で示す図である。
【図１７】本発明の第１の実施の形態及びその変形例の性能について中国語に関する評価実験を行った際の、各パラメータ及び精度をタスク別に表形式で示す図である。
【図１８】本発明の第１の実施の形態に係るＴＴＳフロントエンドについて、ベクトルサイズ及びニューロン数とＰＯＳラベル付けタスクの精度との関係を示すグラフである。
【図１９】本発明の第１の実施の形態に係るＴＴＳフロントエンドについて、ベクトルサイズ及びニューロン数とポーズブレーク推定の精度との関係を示すグラフである。
【図２０】本発明に係る各実施の形態に係るＴＴＳフロントエンドを実現するコンピュータシステムの外観を示す図である。
【図２１】図２０に示すコンピュータのハードウェア構成を示すブロック図である。
【図２２】日本語とその読みとの対応の一例を模式的に示す図である。
【図２３】日本語の文の各文字とその読みとのアライメントの一例を示す図である。
【図２４】本発明の第２の実施の形態における、複数言語の文字と読みとの対応関係を示す図である。
【図２５】本発明の第２の実施の形態に係る、多言語に対応したＴＴＳフロントエンドを用いた音声合成システムの概略構成を示すブロック図である。
【図２６】図２５に示すＧＣＶベクトル算出部の構成を示すブロック図である。
【図２７】図２６に示す共起マトリクス算出部により算出される共起マトリクスの内容を模式的に示す図である。
【図２８】図２６に示すバイリニア回帰変換部により生成されるＧＣＶベクトル変換テーブルの内容を示す図である。
【図２９】図２５に示す文字／ＧＣＶベクトル変換部７３０の構成を示すブロック図である。
【図３０】図２５に示すＤＢＲＮＮの概略構成を示すブロック図である。
【図３１】第２の実施の形態において、ＤＢＲＮＮ７３２の学習を実現するプログラムの制御構造を示すフローチャートである。
【図３２】第２の実施の形態において、入力されたプレーンテキストから音素列を出力する処理を実現するプログラムの制御構造を示すフローチャートである。
【図３３】第２の実施の形態のテストに使用した学習データセットの構成を表形式で示す図である。
【図３４】第２の実施の形態に係るＴＴＳフロントエンドによるＧ２Ｐの処理結果を表形式で示す図である。
【図３５】第２の実施の形態に係るＴＴＳフロントエンドによるＧ２Ｐの処理結果を従来技術と比較して表形式で示す図である。
【図３６】第２の実施の形態に係るＴＴＳフロントエンドの学習に関し、学習データの量とシラブル精度との関係を従来技術と比較するグラフを示す図である。
【図３７】第２の実施の形態に係るＴＴＳフロントエンドにおいて、非正規化語の単語誤り率を表形式で示す図である。
【図３８】第２の実施の形態の変形例に係るＴＴＳフロントエンドのための学習データの構成を示す図である。
【発明を実施するための形態】
【００２２】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。なお、以下の実施の形態は中国語におけるＴＴＳフロントエンドに関するものであるが、同様の考え方を用いると、シラブル表現が可能な他のどのような言語に対しても同じ考え方でＴＴＳフロントエンドにＤＮＮを採用できる。
【００２３】
〔第１の実施の形態〕
図２に、本発明の第１の実施の形態に係る、中国語のためのＴＴＳフロントエンド１１０を含む音声合成システム１００の概略構成を示す。図２を参照して、音声合成システム１００は、プレーンテキスト６０を受けてラベル列６４と同様の、音声合成のための言語学的特徴を示すラベル列１１２を出力するＴＴＳフロントエンド１１０と、ラベル列１１２に基づいて音声合成を行い、発話信号１１６を出力するための音声合成装置１１４とを含む。音声合成装置１１４は図１に示す音声合成装置６６と同様のものでよい。
【００２４】
ＴＴＳフロントエンド１１０は、プレーンテキスト６０をシラブルに分割し、各シラブルを後述するＧｌｏＶｅベクトルに変換してＧｌｏＶｅベクトルからなるシラブルベクトル列１３４を出力するためのシラブル／ベクトル変換部１３０と、シラブルベクトル列１３４を受けて、図１に示すラベル列６４と同様のラベル列１１２を出力するためのＤＢＲＮＮ１３２とを含む。ＤＢＲＮＮ１３２は、後述するように、所定の基本ユニットを処理すべきシラブル数に応じて複製・展開し、相互に必要な接続を行うことにより得られる。ＴＴＳフロントエンド１１０はさらに、シラブル／ベクトル変換部１３０の出力からシラブル数を算出し、ＤＢＲＮＮの基本ユニットをそのシラブル数に基づいて複製・展開し、相互接続してＤＢＲＮＮ１３２を形成するための基本ユニット展開部１３６を含む。
【００２５】
中国語の場合、１文字が１シラブルを表す。したがってここでいうシラブルベクトルは文字ベクトルの一種と言うことができる。
【００２６】
シラブル／ベクトル変換部１３０及びＤＢＲＮＮ１３２の双方ともデータによる学習が必要である。シラブル／ベクトル変換部１３０は、プレーンテキスト６０の各シラブルをＧｌｏＶｅベクトルに変換する際に変換テーブルを参照する。この変換テーブルが学習の対象になる。ＤＢＲＮＮ１３２はディープニューラルネットワークの一種であり、そのパラメータを学習する必要がある。
【００２７】
本実施の形態では、音声合成システム１００はさらに、シラブル／ベクトル変換部１３０の変換テーブルの学習を行うための変換テーブル学習部１１８と、ＤＢＲＮＮ１３２の学習を行うためのＤＢＲＮＮ学習部１２０とを含む。
【００２８】
変換テーブル学習部１１８は、大規模中国語テキストコーパス１４２と、この大規模中国語テキストコーパス１４２を学習データとして、教師なし学習により中国語の各シラブルに対するＧｌｏＶｅベクトルを算出してシラブル／ベクトル変換テーブル（図２には図示せず）を生成するＧｌｏＶｅベクトル算出部１４０とを含む。
【００２９】
一方、ＤＢＲＮＮ１３２の学習を行うＤＢＲＮＮ学習部１２０は、アノテート済の、それほど大量でないテキストを記憶したアノテート済中国語テキストコーパス１４６と、アノテート済中国語テキストコーパス１４６を用い、シラブル／ベクトル変換部１３０によるシラブル／ベクトル変換を利用してＤＢＲＮＮ１３２のパラメータの学習を教師あり学習により実行する学習実行部１４４とを含む。学習実行部１４４は、後述するように、ＤＢＲＮＮ１３２の学習時に、プレーンテキスト１２２をシラブル／ベクトル変換部１３０に、テキストに付されたＰＯＳラベル列１２４をＤＢＲＮＮ１３２に与えることにより、ＤＢＲＮＮ１３２の教師あり学習を行う。
【００３０】
シラブルベクトルとして、本実施の形態ではワンホットベクトルではなく、ＧｌｏＶｅベクトルを用いる。前掲の非特許文献３は単語をＧｌｏＶｅベクトルからなる単語ベクトルに変換する方法を提案している。その概略について図３を参照して説明する。図３を参照して、コーパスに出現する各単語のＧｌｏＶｅベクトルを算出するＧｌｏＶｅベクトル算出処理１７０は、予め単語に分割されたテキストを記憶した単語分割済テキストコーパス１９０から単語列を読出し、指定されたウィンドウサイズ１９６の範囲内での各単語対の共起頻度Ｘijからなる共起マトリクスを算出する共起マトリクス算出部１９２と、この共起マトリクスに対してバイリニア回帰を適用して以下に示すコスト関数を最小化することにより、各単語の単語ベクトルを算出するためのバイリニア回帰変換部１９４とを含む。
【００３１】
【数１】
2019032529.tif 000003
以上が非特許文献３に記載された、単語に対するＧｌｏＶｅベクトルの算出方法の概略である。ＧｌｏＶｅベクトルの算出式の導出方法等の詳細については非特許文献３の記載を参照されたい。
【００３２】
非特許文献３に記載されたＧｌｏＶｅベクトルの算出方法において、単語をシラブルに置換えると、シラブルに対してもＧｌｏＶｅベクトルが算出できることが分かる。本実施の形態では、このＧｌｏＶｅベクトルをシラブルベクトルとして使用する。特に中国語では、漢字１文字が１シラブルを表すので、形態素解析等を行うことなくシラブルに変換することができ、シラブルベクトルの算出が容易に行える。なお、本願発明で使用するシラブルベクトルはこのＧｌｏＶｅベクトルに限定されるわけではない。ＧｌｏＶｅベクトルの算出と同様、シラブルの共起関係に基づいて生成された意味的ベクトル空間内で定義されるベクトルであればどのようなものでもよい。ただし、ＤＢＲＮＮを使用する関係上、このベクトルは固定長であることが望ましい。
【００３３】
図４に、中国語のシラブルベクトルを算出し、シラブル／ベクトル変換テーブルを生成する変換テーブル学習部１１８の概略構成を示す。図４を参照して、変換テーブル学習部１１８は、中国語のテキストを大量に記憶した大規模中国語テキストコーパス１４２から文字列（シラブル列）を読出し、指定されたウィンドウサイズ２３６の範囲内でのシラブル対の共起頻度Ｘijを算出することにより共起マトリクスを算出し、共起マトリクス記憶部２３３に保存するための共起マトリクス算出部２３２と、共起マトリクス記憶部２３３に記憶された共起マトリクスに対して、前記した式（１）のコスト関数を最小化するようバイリニア回帰変換を行い、最終的なシラブルベクトル（上記した最終的な単語ベクトルと同様にシラブルｉに対する２つのシラブルベクトルを合計したベクトル）を各シラブルに対して算出しシラブル／ベクトル変換テーブルを生成しシラブル／ベクトル変換テーブル記憶部１２６に保存するためのバイリニア回帰変換部２３４とを含む。なお、中国語では１文字が１シラブルを表すのでこのような処理が可能になる。
【００３４】
図５を参照して、シラブル／ベクトル変換部１３０は、変換テーブル学習部１１８により生成されたシラブル／ベクトル変換テーブル２７４を記憶するための、前述したシラブル／ベクトル変換テーブル記憶部１２６と、プレーンテキスト６０及びプレーンテキスト１２２をそれぞれ受ける２つの入力を持ち、学習処理と音声合成パラメータの推定を行う推定処理とを切替える制御信号３３６にしたがって、学習処理時にはプレーンテキスト１２２を、推定処理時にはプレーンテキスト６０を、それぞれ選択して出力するための選択部３３２とを含む。
【００３５】
シラブル／ベクトル変換部１３０はさらに、選択部３３２から変換対象のプレーンテキストを受信すると、当該テキストを各文字に分割し、各文字に対応するシラブルからなるシラブル列をシラブル／ベクトル変換テーブル２７４を参照してシラブルベクトル列１３４に変換し、図２に示すＤＢＲＮＮ１３２に出力するためのシラブル／ベクトルマッピング部３３０を含む。
【００３６】
図６を参照して、図２に示すＤＢＲＮＮ１３２は、学習時にはシラブル／ベクトル変換部１３０（図２及び図５を参照）からシラブルベクトル列１３４を、ＤＢＲＮＮ学習部１２０（図２を参照）から当該シラブル列の言語学的特徴を表すＰＯＳラベル列１２４をそれぞれ受け、ＰＯＳラベル列１２４を教師信号として、ＰＯＳラベル列１２４とＤＢＲＮＮ１３２の出力するラベル列１１２との誤差を用いた誤差逆伝播法によって係数パラメータを学習する。なお、ＰＯＳラベルはワンホットベクトルで表現されており、誤差計算にもこのワンホットベクトルが用いられる。ＤＢＲＮＮ１３２は言語学的特徴を推定する際には、シラブル／ベクトル変換部１３０からシラブルベクトル列を受けて言語学的特徴を表すラベル列１１２を音声合成装置１１４に出力する。
【００３７】
ＤＢＲＮＮ１３２は、基本ユニット３８０と、基本ユニット３８０の複製である複数の基本ユニット３８２、…、３８４を含む。ＤＢＲＮＮ１３２は実際にはプログラムにより実現されるが、シラブルベクトル列１３４に含まれるシラブル数に応じて基本ユニット３８０を必要数だけ複製して展開した上で相互接続したもので、各基本ユニットが１シラブルについての推定処理を担当する。したがって、シラブルベクトル列１３４の全体についての学習が同時に行われる。各基本ユニットの係数行列は、基本ユニット及び最終的なＤＢＲＮＮの関数を規定するパラメータであるが、その値は全ての基本ユニットで同じである。この係数行列がＤＢＲＮＮの学習の対象になる。学習時には、各基本ユニットの係数行列が同じであるという制約の下に係数行列を更新する。
【００３８】
なお、本実施の形態では、基本ユニット３８０は、入力層と、２つの隠れ層と、１つの出力層を含む。この構成は設計に応じて変更可能である。図６において基本ユニット３８０を例にとると、最も左側が入力層、その右が第１の隠れ層、その右が第２の隠れ層、最も右が出力層である。基本ユニット３８２、３８４等も同様である。図６においてノードを○で示しているが、この表示は図を簡略にするためのもので、実際にはこのノード内には以下に述べるように複数のニューロンが存在している。本実施の形態では、シラブルベクトルのサイズ（ベクトルの要素数、すなわち入力層の１ノード当たりのニューロン数）をｖ、隠れ層の１ノード当たりのニューロン数をｎ、出力層の１ノード当たりのニューロン数（ラベルの種類数、すなわち、ラベルを表すワンホットベクトルの要素数）をｏ、隠れ層の数をＬとする。この図以後でも同様の図示を用いる。
【００３９】
以下、第１の隠れ層、一般的なｉ番目の隠れ層（ｉ＞１）、及び出力層の構成について図７、図８及び図９をそれぞれ参照して説明する。なお、入力層は図６の基本ユニット３８０等から明らかなように、入力されたベクトルｘｔを第１の隠れ層の２つのノードの双方に入力する機能を持っている。図６では各基本ユニットは２つの隠れ層を持っているが、これには限定されない。各基本ユニットは３つ以上の隠れ層を持っていても良い。以下の説明では、ｔ番目のシラブルを処理する基本ユニットの第１の隠れ層と、ｉ番目（ｉ＞１）の隠れ層とについてその構成と入出力関係について説明する。
【００４０】
図７を参照して、ｔ番目のシラブルを処理する基本ユニットの第１の隠れ層４００は、第１のノード４１０及び第２のノード４１２を含む。
【００４１】
第１のノード４１０には、入力層からシラブルベクトルｘｔが入力される。このシラブルベクトルｘｔに対しては、係数行列→Ｗ（１）が乗じられる。この記法の内、記号「→」は図及び各式において、その直後の文字の直上に記載されているものであって、シラブルベクトル列の先頭から末尾に向かって（順方向に）伝播する情報に関するものであることを示す。またこれ以後に使用する記号「←」もまた図及び各式において、その直後の文字の直上に記載されているものであって、シラブルベクトル列の末尾から先頭に向かって（逆方向に）伝播する情報に関するものであることを示す。上記係数行列の記法の内、右肩の「（１）」はこの隠れ層が第１の隠れ層であることを示す。同様に、ｉ＞１の場合、右肩に「（ｉ）」を付すものとする。
【００４２】
また、説明の便宜のため、基本ユニットの数（入力されるシラブルベクトルの数）をｍ、各基本ユニット内の隠れ層の数をＬとする。
【００４３】
第１の隠れ層４００の第１のノード４１０にはさらに、ｔ−１番目の基本ユニットの第１の隠れ層４００の第１のノード４１０からベクトル→ｈｔ−１（１）が入力される。ベクトル→ｈｔ−１（１）には係数ベクトル→Ｖ（１）が乗じられる。第１のノード４１０はこれら入力に所定の係数行列を乗じた結果の和を所定の活性化関数ｆ（）に入力し、その結果をベクトル→ｈｔ（１）として出力する。
【００４４】
【数２】
2019032529.tif 000004
第２のノード４１２には、第１のノード４１０と同様、入力層からシラブルベクトルｘｔが入力される。このシラブルベクトルｘｔに対しては、係数行列←Ｗ（１）が乗じられる。第２のノード４１０にはさらに、ｔ＋１番目の基本ユニットの第１の隠れ層４００の第２のノード４１２からベクトル←ｈｔ＋１（１）が入力される。ベクトル←ｈｔ＋１（１）には係数ベクトル←Ｖ（１）が乗じられる。第２のノード４１２はこれら入力に各係数行列を乗じたものの和を第１のノード４１０と同じ活性化関数ｆ（）に入力し、その結果をベクトル←ｈｔ（１）として出力する。
【００４５】
【数３】
2019032529.tif 000005
なお、先頭の基本ユニット（ｔ＝１）の場合にはその前のユニットが存在せず、末尾の基本ユニット（ｔ＝ｍ）の場合にはその次のユニットが存在しない。このような場合には、それら入力ベクトルの要素が全て０であるとして計算すればよい。
【００４６】
図８を参照して、ｉ番目の隠れ層４３０は第１のノード４４０と第２のノード４４２とを含む。
【００４７】
第１のノード４４０は、ｔ番目の基本ユニットのｉ−１番目の隠れ層のノード４１０の出力するベクトル→ｈｔ（i-１）と、ｔ−１番目の基本ユニットの第１のノード４１０の出力するベクトル→ｈｔ-1（ｉ）と、ｔ番目の基本ユニットのｉ−１番目の隠れ層の第２のノード４１２の出力するベクトル←ｈｔ（i-１）とを受け、これらにそれぞれ係数行列→Ｗ（ｉ）→→（右下の「→→」は図面上の右向きの二重矢印を表し、この係数行列が隠れ層内を順方向に伝播する情報であることを示す。左向きの二重矢印も同じく係数行列が隠れ層内を逆方向に伝播するものであることを示す。）、→Ｖ（ｉ）、及び←Ｗ（ｉ）←←をそれぞれ乗じたものの和を活性化関数ｆ（）に入力し、その結果をベクトル→ｈｔ（ｉ）として出力する。
【００４８】
【数４】
2019032529.tif 000006
第２のノード４４２は、ｔ番目の基本ユニットのｉ−１番目の隠れ層のノード４１０の出力するベクトル→ｈｔ（i-１）と、ｔ＋１番目の基本ユニットの第２のノード４１２の出力するベクトル←ｈｔ＋１（ｉ）と、ｔ番目の基本ユニットのｉ−１番目の隠れ層の第２のノード４１２の出力するベクトル←ｈｔ（i-１）との入力を受け、これらにそれぞれ係数行列←Ｗ（ｉ）→→、←Ｖ（ｉ）、及び←Ｗ（ｉ）←←を乗じたものの和を活性化関数ｆ（）に入力し、その結果をベクトル←ｈｔ（ｉ）として出力する。
【００４９】
【数５】
2019032529.tif 000007
図９を参照して、ｔ番目の基本ユニットの出力層４５０はノード４６０を含む。
【００５０】
ノード４６０は、最後（Ｌ番目）の隠れ層の第１のノード４４０からベクトル→ｈｔ（Ｌ）、ノード４４２からベクトル←ｈｔ（Ｌ）をそれぞれ受け、これらにそれぞれ係数行列Ｕ→及びＵ←を乗じたものの和を活性化関数ｇ（）に適用してベクトルｙｔを出力する。このベクトルｙｔがｔ番目のシラブルのラベルを表す。
【００５１】
【数６】
2019032529.tif 000008
活性化関数ｆ（）及びｇ（）としては例えばハイパボリックタンジェント（ｔａｎｈ）、シグモイド関数、ステップ関数、ＲｅＬＵ等を用いることができる。
【００５２】
ＤＢＲＮＮを実現するためには、予め基本ユニットが保持する変数、及びそうした変数の間での演算、即ち相互接続等を規定した基本的オブジェクトをプログラムとして用意する。上記した各変数の内、シラブルベクトルのサイズｖ、出力層のサイズｏ、隠れ層の数Ｌ、及び各ノード内のニューロン数ｎはこの基本的オブジェクトの仕様として予め指定できる。以下に掲げる係数行列の要素及び各バイアスの値が学習対象である。
【００５３】
【数７】
2019032529.tif 000009
隠れ層の数Ｌを定めれば、この係数行列及びバイアスの数は定まり、他の変数の値を代えても変化しない。
【００５４】
なお、これら係数行列のサイズは以下のとおりである。
【００５５】
Ｗ（１）：ｎ×ｖ、Ｖ（１）：ｎ×ｎ
Ｗ（ｉ）：ｎ×ｎ、Ｖ（ｉ）：ｎ×ｎ
Ｕ：ｏ×ｎ
＜学習時のＴＴＳフロントエンドの動作＞
図４及び図５を参照して、シラブル／ベクトル変換テーブル２７４の学習時には、共起マトリクス算出部２３２が大規模中国語テキストコーパス１４２からテキストを読出して共起マトリクスを算出し、バイリニア回帰変換部２３４がバイリニア回帰変換により各文字（シラブル）に対応するシラブルベクトルを計算して、シラブルとシラブルベクトルとを対応付けてシラブル／ベクトル変換テーブル２７４に格納する。すなわち、シラブル／ベクトル変換テーブル２７４の学習は教師なし学習により行われる。このシラブル／ベクトル変換テーブル２７４は図４に示すシラブル／ベクトル変換テーブル記憶部１２６に記憶される。
【００５６】
図１０を参照して、本実施の形態に係るＴＴＳフロントエンド１１０のＤＢＲＮＮ１３２の学習時の動作について説明する。
【００５７】
図１０を参照して、ＤＢＲＮＮ１３２の学習時には、コンピュータ読取り可能なデータ形式で記憶装置（図示せず）にアノテート済中国語テキストコーパス１４６を準備する。アノテート済中国語テキストコーパス１４６は多数のＰＯＳラベル付きテキスト４７０を含む。各ＰＯＳラベル付きテキスト４７０は、中国語文字列であるプレーンテキスト４８０と、プレーンテキスト４８０の各文字（シラブル）に対応するＰＯＳラベル列４８２との対である。ＤＢＲＮＮ１３２の学習はアノテート済中国語テキストコーパス１４６を用いた教師あり学習で行われる。
【００５８】
ＤＢＲＮＮ１３２の学習時には、図２に示す学習実行部１４４は、最初に基本的オブジェクトに関する情報を記憶装置から読出し、指定された変数の値にしたがってコンピュータの記憶領域に基本的オブジェクトを展開する。さらに、それら基本的オブジェクトのノードの間の接続関係、すなわちそれらの間の演算を上記した各式にしたがって定義する。各係数行列の各要素は所定の方法で初期化する。
【００５９】
学習実行部１４４はまず、図５に示す選択部３３２に対し、学習実行部１４４（図２参照）から与えられるプレーンテキスト１２２を選択するように選択部３３２に対して学習／推定の制御信号３３６を与える。
【００６０】
以下、学習実行部１４４は、ＰＯＳラベル付きテキスト４７０の各々について以下の処理を実行する。すなわち、学習実行部１４４は、ＰＯＳラベル付きテキスト４７０のプレーンテキスト４８０をシラブル／ベクトルマッピング部３３０に対してプレーンテキスト１２２として与える。シラブル／ベクトル変換部１３０はこのとき、プレーンテキスト４８０の文字数、即ちシラブル数を算出し、シラブル数にしたがってＤＢＲＮＮ１３２の基本ユニットをシラブル数と同じ数だけ複製する。この複製により、図７〜図９に示したような基本ユニット同士の接続及び演算等も適宜定義される。
【００６１】
図５に示すシラブル／ベクトル変換部１３０の選択部３３２は、制御信号３３６にしたがってプレーンテキスト１２２を選択し、シラブル／ベクトルマッピング部３３０に与える。シラブル／ベクトルマッピング部３３０は、シラブル／ベクトル変換テーブル２７４を参照し、与えられたプレーンテキスト１２２の各文字（シラブル）をシラブルベクトルに変換し、シラブルベクトル列１３４をＤＢＲＮＮ１３２の入力に一度に与える。
【００６２】
シラブル／ベクトル変換部１３０はさらに、変換により得られたベクトル列をＤＢＲＮＮ１３２の入力に一度に与える。ベクトル列とＤＢＲＮＮ１３２の基本ユニットの数とは一致しているので、各ベクトルは対応する基本ユニットの入力層のノードに同時に与えられる。
【００６３】
一方、図２及び図６を参照して、学習実行部１４４は、ＰＯＳラベル列４８２（図１０参照）をＤＢＲＮＮ１３２の出力にＰＯＳラベル列１２４として与える。このＰＯＳラベル列１２４は教師データとしてＤＢＲＮＮ１３２の出力側に与えられる。ＰＯＳラベル列１２４に含まれるＰＯＳラベルの数は基本ユニットの数と一致している。ＤＢＲＮＮ１３２は、現在の係数行列の値を用いて入力に対する演算を行い、結果のラベル列１１２を出力層から出力する。このラベル列１１２と、対応するＰＯＳラベルの値との誤差を用い、通常の誤差逆伝播法を用いて誤差が少なくなる方向にＤＢＲＮＮ１３２の係数行列の各要素の値を更新する。
【００６４】
こうした動作を全てのＰＯＳラベル付きテキスト４７０に対して行うことを所定の終了条件が成立するまで繰返す。この際、シラブル／ベクトルマッピング部３３０に入力されるシラブル数に応じて、ＤＢＲＮＮ１３２を構成する基本ユニットの数を増減させる。こうした処理を行って、終了条件が成立したときの係数行列の各要素の値により基本ユニットが表す関数が定まる。すなわち、ＤＢＲＮＮ１３２の学習が終わったことになる。
【００６５】
以上のように、まず大規模中国語テキストコーパス１４２を用いて教師なし学習によりシラブル／ベクトル変換テーブル２７４の学習を行い、さらにアノテート済中国語テキストコーパス１４６とシラブル／ベクトルマッピング部３３０とを用いた教師あり学習によりＤＢＲＮＮ１３２の学習を行う。
【００６６】
図１１を参照して、学習実行部１４４を実現するコンピュータプログラムの制御構造について説明する。このプログラムは、まずＤＢＲＮＮ１３２の初期設定を行うステップ５００と、アノテート済中国語テキストコーパス１４６を構成するＤＢに接続するステップ５０２と、アノテート済中国語テキストコーパス１４６に記憶されたＰＯＳラベル付きテキスト４７０を対象に以下の処理５０６を所定回数繰返すステップ５０４と、ステップ５０４の処理が終了したときのＤＢＲＮＮ１３２の係数行列の各要素（パラメータ）を図示しない記憶装置に保存し処理を終了するステップ５０８とを含む。ＤＢの各レコードは、図１０に示すプレーンテキスト４８０とＰＯＳラベル列４８２との対を記憶している。
【００６７】
処理５０６は、ＤＢの各レコードに対して以下の処理５２２を実行するステップ５２０を含む。
【００６８】
処理５２２は、ＤＢのレコードを読むステップ５３０と、レコード内のプレーンテキストをシラブル／ベクトル変換テーブル２７４を用いてシラブルベクトル列に変換するステップ５３１と、このレコードに対するラベル列をワンホットベクトルに変換するステップ５３２と、入力されたプレーンテキスト４８０の文字数を調べるステップ５３３と、ステップ５３３で判明した文字数だけ基本ユニットを複写・展開し、相互接続（ノード間の演算）を定義することでＤＢＲＮＮ１３２を生成するステップ５３４と、ステップ５３１で得られた各シラブルベクトルをＤＢＲＮＮ１３２の対応する基本ユニットの入力層に同時に入力するステップ５３６と、この入力に対するＤＢＲＮＮ１３２の出力するラベル列１１２と、ＰＯＳラベル列４８２との誤差を用いた誤差逆伝播法により、ＤＢＲＮＮ１３２の係数行列の更新を行うステップ５３８とを含む。この際、どの基本ユニットにおいても、対応する係数行列は同じ値をとる、という制約の下に誤差逆伝播法を適用する。なお、この実施の形態では各レコードについて誤差逆伝播によるパラメータの更新を多なっているが、いわゆるミニバッチ法を用いてもよいことはいうまでもない。
【００６９】
＜推定時のＴＴＳフロントエンド１１０の動作＞
入力されるプレーンテキストからその言語学的特徴を推定する際には、図５に示す選択部３３２は、プレーンテキスト６０を選択するように制御信号３３６により切換えられる。入力されるプレーンテキスト６０はシラブル／ベクトルマッピング部３３０に与えられる。シラブル／ベクトルマッピング部３３０はこのプレーンテキスト６０に含まれる各文字（シラブル）をシラブル／ベクトル変換テーブル２７４を参照してシラブルベクトルに変換し、シラブルベクトル列１３４を出力する。
【００７０】
図２を参照して、基本ユニット展開部１３６は、シラブル／ベクトル変換部１３０の出力に基づいて、その出力に含まれるシラブル数を算出し、基本ユニットをそのシラブル数だけ複製することによりＤＢＲＮＮ１３２を生成する。基本ユニットの構成は学習時と同一である。さらに、ＤＢＲＮＮ１３２を形成する各基本ユニットの係数行列は、全基本ユニットを通じて共通である。
【００７１】
展開されたＤＢＲＮＮ１３２は、シラブルベクトル列１３４が入力されたことに応答して、その構成と係数行列とにより定まる演算を行って、各シラブルに対応する言語学的特徴を表すラベルからなるラベル列１１２を出力する。このラベル列１１２は音声合成装置１１４に与えられ、音声合成装置１１４によりラベル列により表される言語学的特徴を反映した発話信号１１６が生成される。
【００７２】
図１２に、上記したＴＴＳフロントエンド１１０をコンピュータとの協働により実現するためのコンピュータプログラムの制御構造をフローチャート形式で示す。このプログラムは、起動とともに、記憶装置上に基本ユニットのための記憶領域を確保し、係数行列を含めてそのパラメータを学習済の値に設定することで基本ユニットを初期化するステップ５４０と、入力文であるプレーンテキストを受けるステップ５４２と、このプレーンテキストに含まれる各文字（シラブル）をシラブル／ベクトル変換テーブル２７４を参照してシラブルベクトル列に変換するステップ５４４と、シラブルベクトル列に基づいてシラブル数を調べるステップ５４６とを含む。
【００７３】
このプログラムはさらに、ステップ５４６で調べたシラブル数に応じて、基本ユニットを複製・展開することでＤＢＲＮＮ１３２を生成するステップ５４８と、ステップ５４４で得られたシラブルベクトル列をＤＢＲＮＮ１３２の入力層に与えるステップ５５０とを含む。ＤＢＲＮＮ１３２の入力層のノード数は、シラブル数と一致し、各シラブルベクトルは対応する基本ユニットの入力層のノードに与えられる。
【００７４】
このプログラムはさらに、ステップ５５０で与えられた入力に応じてＤＢＲＮＮ１３２が出力するラベル列を読出すステップ５５２と、読み出されたラベル列を出力するステップ５５４とを含む。
【００７５】
＜本実施の形態の効果＞
以上のように本実施の形態によれば、大量のテキストを含む大規模中国語テキストコーパス１４２を用いてシラブル／ベクトル変換テーブル２７４の学習を教師なし学習で行い、プレーンテキストをシラブルベクトルに変換する。さらに、アノテート済中国語テキストコーパス１４６を学習データとし、アノテート済のテキストをシラブル／ベクトル変換テーブル２７４を用いてシラブルベクトルに変換した後、ＤＢＲＮＮ１３２の学習を教師あり学習により行う。このように教師なし学習と教師あり学習とを組合わせることにより、ＤＢＲＮＮ学習部１２０によるＤＢＲＮＮ１３２の学習に用いるデータが比較的少量でも、ＤＢＲＮＮ１３２の学習を最適化できる。また、シラブルベクトルとしてワンホットベクトルではなく、ＧｌｏＶｅベクトルを用いるため、ＤＢＲＮＮ１３２への入力により多くの情報が表現でき、ＤＢＲＮＮ１３２によるラベル列の推定の精度を高めることができる。
【００７６】
［変形例］
第１の実施の形態は、ＰＯＳラベル付けに関するものであった。しかし本発明はＰＯＳラベル付けのみに適用可能なわけではない。
【００７７】
図１３に、本発明を単語セグメンテーションに適用したときの、ＤＢＲＮＮ１３２の学習方法を示す。図１３を参照して、この場合にも、第１の実施の形態のシラブル／ベクトルマッピング部３３０をそのまま利用できる。異なるのは学習データである。第１の実施の形態のアノテート済中国語テキストコーパス１４６に代えて、単語セグメンテーションのためのアノテーションが付されたアノテート済中国語テキストコーパス５６０を用いる。アノテート済中国語テキストコーパス５６０は、複数の単語セグメンテーションラベル付きテキスト５６２を含む。各単語セグメンテーションラベル付きテキスト５６２は、中国語文字列であるプレーンテキスト５７０と、プレーンテキスト５７０の各文字（シラブル）に対応する単語セグメンテーションラベル列５７２との対である。図１３に示す例では、ラベルとしてＢ、Ｉ、Ｅ、及びＳが用いられている。それらの意味は以下のとおりである。
【００７８】
・Ｂ：単語の先頭
・Ｉ：単語内部
・Ｅ：単語の末尾
・Ｓ：単シラブルの単語
ＤＢＲＮＮ１３２の学習は第１の実施の形態の場合と同様である。したがってここでは繰返さない。以下の変形例でも同様である。
【００７９】
図１４に、テキスト／ピンイン変換の場合のＤＢＲＮＮ１３２の学習方法を示す。図１４を参照して、この場合もシラブル／ベクトルマッピング部３３０をそのまま利用できる。異なるのは学習データである。この例では、ピンインラベルに関するアノテーションがされたアノテート済中国語テキストコーパス５９０を用いる。アノテート済中国語テキストコーパス５９０は、複数のピンインラベル列付きテキスト５９２を含む。各ピンインラベル列付きテキスト５９２は、中国語文字列であるプレーンテキスト６００と、プレーンテキスト６００の各文字（シラブル）に対応するピンインラベル列６０２との対である。
【００８０】
図１５に、本発明をポーズブレーク位置の推定に適用したときの、ＤＢＲＮＮ１３２の学習方法を示す。図１５を参照して、この場合にも、第１の実施の形態のシラブル／ベクトルマッピング部３３０をそのまま利用できる。異なるのは学習データである。第１の実施の形態のアノテート済中国語テキストコーパス１４６に代えて、ポーズブレーク位置の推定のためのアノテーションが付されたアノテート済中国語テキストコーパス６１０を用いる。アノテート済中国語テキストコーパス６１０は、複数の、ポーズラベル付きテキスト６１２を含む。各ポーズラベル付きテキスト６１２は、中国語文字列であるプレーンテキスト６２０と、プレーンテキスト６２０の各文字（シラブル）に対応するポーズラベル列６２２との対である。図１５に示す例では、ポーズラベル「０」はポーズなし、「Ｐａｕ」がポーズ位置を示すラベルである。
【００８１】
［評価］
上記実施の形態を５つのタスクに適用することで、本願発明の効果について検証した。対象となるタスクは、Grapheme（書記素）  to  Phoneme（音素）（Ｇ２Ｐ）、単語セグメンテーション、ＰＯＳラベル付け、Ｐｈｒａｓｅチャンク推定、及びポーズブレーク推定である。これらの内Ｇ２Ｐは各シラブルからピンインを推定するタスクである。各タスクと、それらタスクに用いた訓練セット、開発セット及び評価セットの規模、及び出力のサイズを図１６に表形式で示す。なお、活性化関数はＧ２Ｐ、ＰＯＳラベル付け、及びＰｈｒａｓｅチャンク推定ではｔａｎｈを用い、単語セグメンテーション及びポーズブレーク推定ではＲｅＬＵを用いた。
【００８２】
評価のため、上記実施の形態に係るＤＢＲＮＮモデルと、従来技術で用いられていたＣＲＦモデルとによる各タスクでの出力の精度を、ＣＲＦモデルをベースラインとして実験を行った。各タスクにおけるＤＢＲＮＮモデルで用いたベクトルサイズ、隠れ層数、１基本ユニットあたりのニューロン数、及び精度を、ベースラインの精度と比較して図１７に表形式で示す。なお、この評価では、LDC  Treebank及び出願人が準備した中国語の発話コーパスを用いた。テキストはシラブルに分割した。中国語では１文字が１シラブルを表す。
【００８３】
図１７から分かるように、ＤＢＲＮＮモデルはコンパクトに実装できる。この例では、シラブルベクトルは５０次元、隠れ層は２層、順方向及び逆方向のいずれでも各隠れ層の各ノードのニューロン数が１００という構成のＤＢＲＮＮを用いている。
【００８４】
特にこの例では、Ｇ２Ｐにおいては上記実施の形態に係るＤＢＲＮＮモデルは極めて高い精度を示した。シラブルベクトルが５０次元であること、及びピンインサイズが１３９０であることを考えると、精度９９．０５はほぼ完全な結果と言える。Ｐｈｒａｓｅチャンク推定及びポーズブレーク推定でもベースラインと比較して高い結果が得られている。
【００８５】
［パラメータに関する考察］
図１８及び図１９に、ベクトルサイズとニューロン数とがＤＢＲＮＮモデルによるＰＯＳラベル付けとポーズブレーク推定の精度にどのような影響を与えるかについて行った実験結果をグラフ形式で示す。これらから分かるように、一般的には、ベクトルサイズが大きくなると精度は上がるが、その影響は比較的小さい。計算に要する時間とのトレードオフに応じて適切なベクトルサイズを選択すればよい。一般的には５０〜１００次元でも十分な性能が得られる。
【００８６】
ＧｌｏＶｅベクトルを用いることで、文脈中におけるシラブルの意味を効率的に表すことができる。これは、図１７のＧ２Ｐタスクの結果により明らかである。５０次元のＧｌｏＶｅを用いたＤＢＲＮＮモデルにより、ピンインが１３９０種類あるという状況で、各シラブルに対して９９％以上の精度で正しいピンインを選択できた。したがって、音声合成の言語学的特徴の推定において、ＧｌｏＶｅベクトルをＤＢＲＮＮモデルと組合わせて用いることにより、精度の高い音声合成を行うことが可能になる。
【００８７】
［コンピュータによる実現］
本発明の実施の形態に係るＴＴＳフロントエンド１１０、変換テーブル学習部１１８、ＤＢＲＮＮ学習部１２０、音声合成システム１００、及びＤＢＲＮＮ１３２の学習方法は、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。図２０はこのコンピュータシステム６３０の外観を示し、図２１はコンピュータシステム６３０の内部構成を示す。
【００８８】
図２０を参照して、このコンピュータシステム６３０は、メモリポート６５２及びＤＶＤ（Digital  Versatile  Disk）ドライブ６５０を有するコンピュータ６４０と、キーボード６４６と、マウス６４８と、モニタ６４２とを含む。
【００８９】
図２１を参照して、コンピュータ６４０は、メモリポート６５２及びＤＶＤドライブ６５０に加えて、ＣＰＵ（中央処理装置）６５６及びＧＰＧＰＵ（汎用画像処理装置）６５７と、ＣＰＵ６５６、ＧＰＧＰＵ６５７、メモリポート６５２及びＤＶＤドライブ６５０に接続されたバス６６６と、ブートプログラム等を記憶する読出専用メモリ（ＲＯＭ）６５８と、バス６６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）６６０と、ハードディスク６５４を含む。コンピュータシステム６３０はさらに、他端末との通信を可能とするネットワーク６６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）６４４と、発話信号を音声信号として出力する機能を持つ音声Ｉ／Ｆ６７０とを含む。
【００９０】
コンピュータシステム６３０を上記した実施の形態に係る音声合成システム１００、ＴＴＳフロントエンド１１０、変換テーブル学習部１１８及びＤＢＲＮＮ学習部１２０の各機能部として機能させるためのコンピュータプログラムは、ＤＶＤドライブ６５０又はメモリポート６５２に装着されるＤＶＤ６６２又はリムーバブルメモリ６６４に記憶され、さらにハードディスク６５４に転送される。又は、プログラムはネットワーク６６８を通じてコンピュータ６４０に送信されハードディスク６５４に記憶されてもよい。プログラムは実行の際にＲＡＭ６６０にロードされる。ＤＶＤ６６２から、リムーバブルメモリ６６４から又はネットワーク６６８を介して、直接にＲＡＭ６６０にプログラムをロードしてもよい。
【００９１】
このプログラムは、コンピュータ６４０を、上記実施の形態に係る音声合成システム１００、ＴＴＳフロントエンド１１０、変換テーブル学習部１１８及びＤＢＲＮＮ学習部１２０として機能させるための複数の命令からなる命令列を含む。ＤＢＲＮＮ１３２及びシラブル／ベクトル変換テーブル２７４の学習における数値演算処理は、ＣＰＵ６５６及びＧＰＧＰＵ６５７を用いて行う（ＣＰＵ６５６のみを用いてもよいがＧＰＧＰＵ６５７を用いる方が高速である。）。コンピュータ６４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ６４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ６４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【００９２】
〔第２の実施の形態〕
［構成］
上記第１の実施の形態では、中国語のように、１文字が１シラブルの言語を対象にしている。しかし、本発明はそのような実施の形態には限定されず、機能を追加することにより、１文字で複数の音素からなる読みに対応する言語であって、かつそのような読みが複数個あるような言語にも適用できる。そうした言語の一例は日本語である。
【００９３】
図２２を参照して、日本語では、「１月１７日の午前」という文字列の内、例えば「月」という文字について、「ツキ」、「ゲツ」、「ガツ」等の複数通りの読みが存在している。そのほかの文字についても同様である。そのような言語においては、学習データを以下のように作成することで第１の実施の形態のＴＴＳフロントエンドと同様の処理を行うことができる。
【００９４】
図２３を参照して、上記した「１月１７日の午前」という文字列の内、先頭の「１」はこの例では「イチ」と読むが、その他に前後の文字により、「ジュウ」、「イッ」、「ヒャク」、「セン」、「ジュ」、「ジュッ」、「ワン」、「ツイ」、「イッセン」、「ト」、「イチマン」、「テン」、「イチオク」、「ヒャッ」等、様々な読みを持つ。他の各文字についても図２３に示すうようにほとんどが複数通りの読みを持つ。
【００９５】
本実施の形態では、各文字について、読みをリスト化したものを音素タグとして各文字に付与したものを予め作成しておく。例えば日本語の場合には、学習データとして文字列とその文字列の読みを表す表記としてのカタカナ列とが与えられると、この音素タグを参照し、半自動処理で各文字にその読みを表すラベルを割当てる。この処理を本実施の形態では文字と読みとのアライメントと呼ぶ。ラベルとしては、その言語において通常用いられる表現（日本語におけるカタカナ、中国語におけるピンイン等）を用いることができる。
【００９６】
図２２に示す文字列のアライメントの例を図２３に示す。図２３に示す各文字の音素タグの内、下線を引いたものがその文字の読みとなる。このアライメントにより、各文字がどのような読みになっているかが分かる。なお、図２３において各読みの後ろにカッコ付きで示した数は、後述するようにＴＴＳフロントエンドを実施する際に使用した学習データ中でその読みが出現した回数を示す。図２３において、各音素タグは読みと学習データ中の出現頻度とを含む。学習データ中の出現頻度を持つことにより、後述するようにＤＢＲＮＮの学習段階において、例えば読みの列の候補として読みの出現頻度の合計が最も大きな経路を探すことにより、適切なアライメントを特定できる。
【００９７】
学習データに対するアライメントが完成すると、それを用いて第１の実施の形態におけると同様に、入力された文字列中の各文字に対し、その読みを推定するようにＤＢＲＮＮの学習を行うことができる。なお、第１の実施の形態でも述べたとおり、中国語等の場合には、各文字とその読みとが１対１に対応しているため、このようなアライメント処理は単純な処理で実現できる。韓国語も同様である。
【００９８】
さらに本実施の形態では、学習データとして複数の言語からなる学習データを用いることで複数言語に共通して使用できるＴＴＳフロントエンドを提供できる。この第２の実施の形態はそのようなＴＴＳフロントエンドに関する。
【００９９】
図２４に、複数言語における文字と読みのアライメントの例を示す。図２４に示すように、本実施の形態では、中国語、韓国語のように１文字が１シラブルに対応するような言語だけではなく、１文字が複数のシラブルからなる読みを持つことがあり、さらに１つの文字が複数通りの読み方を持つような日本語、文字と読みとの順序が逆転することがあるタイ語等からなる複数種類の言語について単一で音声合成のための読みラベル列に変換処理できるＴＴＳフロントエンドを実現する。
【０１００】
本実施の形態でも、第１の実施の形態と同様にＧｌｏＶｅベクトルを用いる。しかし、第１の実施の形態ではシラブルに着目していたのに対し、本実施の形態では発音のシラブルではなく、発音に対応する文字に着目してベクトル化する。したがって、第１の実施の形態で使用していたベクトルをＧｌｏｂａｌ  Ｓｙｌｌａｂｌｅ  Ｖｅｃｔｏｒ（ＧＳＶ）と呼び、この第２の実施の形態ではＧｌｏｂａｌ  Ｃｈａｒａｃｔｅｒ  Ｖｅｃｔｏｒ（ＧＣＶ）と読んで区別する。ただし両者は全く同様に算出されるものであり、その実体は同じである。もちろん、第１の実施の形態と第２の実施の形態とでは学習データが異なるので、仮に要素数を同じに設定しても同じ文字に対するベクトルの値は互いに異なるものとなる。
【０１０１】
図２５にこの第２の実施の形態に係る音声合成システム７００の概略構成を示す。図２５を参照してこの音声合成システム７００は、プレーンテキスト７０２を受けて読みを表すラベル列７１２を出力するＴＴＳフロントエンド７１０と、ＴＴＳフロントエンド７１０から出力されるラベル列７１２に基づく音声合成を行い、発話信号７１６を出力するための音声合成装置７１４と、ＴＴＳフロントエンド７１０がテキストの各文字をＧＣＶベクトルに変換する際に参照するＧＣＶベクトル変換テーブルを図２４に示すようにアライメントされた多言語の学習データから生成するための変換テーブル学習部７１８と、変換テーブル学習部７１８が変換テーブルの学習に用いた多言語の学習データ（アライメントがされたもの）を使用してＴＴＳフロントエンド７１０が持つＤＢＲＮＮの学習を行うためのＤＢＲＮＮ学習部７２０と、変換テーブル学習部７１８がＧＣＶベクトル変換テーブルに使用した多言語の学習データの各々について、文字と読みとのアライメントを行うためのアライメント処理部７５０と、アライメント処理部７５０が学習データのアライメントを行う際に参照する、文字に音素タグが付された文字・音素タグリストを記憶するための文字・音素タグリスト記憶部７５２とを含む。
【０１０２】
中国語と韓国語ではアライメント処理部７５０が行うアライメントは単純である。日本語及びタイ語では制約付きアライメントを用いて、以下に述べるような半自動的アライメントを行なう。
【０１０３】
・各文字に対する読みの集合を作成し、コーパス内における文字−読みの生成数を計数する。
【０１０４】
・ノードが文字−読みとなるようなツリーを以下のように形成し、文字と読みとをアライメントする
−文字―読みの集合を用いてツリーを生成する。
【０１０５】
−単語の読みを用いてこのツリーの刈り込みを行う
−もしもツリーが形成できないときは新たな文字−読みを作成し、読みの集合に加える。
【０１０６】
・単語の読みの出現頻度の合計が最大となるような経路をアライメントとして選択する。文字・音素タグリストに読みの出現頻度を記録しておくのはこのためである。
【０１０７】
ＴＴＳフロントエンド７１０は、ＧＣＶベクトル変換テーブルを用いてプレーンテキスト７０２の各文字をＧＣＶベクトルに変換してＧＣＶベクトル列７３４を出力するための文字／ＧＣＶベクトル変換部７３０と、ＧＣＶベクトル列７３４からラベル列７１２を出力するよう学習を行ったＤＢＲＮＮ７３２と、ＧＣＶベクトル列７３４に含まれる文字列を検出し、ＤＢＲＮＮ７３２の基礎となる基本ユニットを文字の数だけ複写し展開し、ノード間の接続を行うための基本ユニット展開部７３６とを含む。学習では基本ユニットのパラメータを学習する。推定処理では同じ基本ユニットを文字数だけ複写することで、同じ基本ユニットを文字数だけ結合したＤＢＲＮＮ７３２を生成する。なお、文字／ＧＣＶベクトル変換部７３０は、使用する変換テーブルが異なるだけで、その他の機能は第１の実施の形態に係るシラブル／ベクトル変換部１３０と実質的に同じである。ＤＢＲＮＮ７３２は、隠れ層の数を除き第１の実施の形態のＤＢＲＮＮ１３２と同じ構成である。また基本ユニット展開部７３６は、展開する対象となる基本ユニットが第１の実施の形態における基本ユニットの構成と異なる点を除き、第１の実施の形態の基本ユニット展開部７３６と実質的に同じである。
【０１０８】
変換テーブル学習部７１８は、前述した４言語からなる大規模多言語テキストプールを記憶する大規模多言語テキストプール記憶部７４２と、大規模多言語テキストプール記憶部７４２に記憶された大規模多言語テキストプールの各文に含まれる文字列から文字／ＧＣＶベクトル変換テーブルを生成するためのＧＣＶベクトル算出部７４０とを含む。なお、多言語テキストプールは後述するように各言語のコーパスを混合して得られるものである。各言語のコーパスは多数の文を含む。各文には、その文の読みが付されているが文字との間のアライメントは行われていない。またこの場合の読みは、それぞれの言語に応じた読みを表すタグ（日本語ならカタカナタグ、タイ語なら国際音声記号（ＩＰＡ）タグ、中国語ならピンインタグ、韓国語には子音＋母音＋コーダの形のタグ）で表されている。
【０１０９】
変換テーブル学習部７１８は、使用するテキストコーパスが単一言語ではなく多言語のコーパスである点を除き、第１の実施の形態の変換テーブル学習部７１８と同じ機能を持つ。すなわち変換テーブル学習部７１８内のＧＣＶベクトル算出部７４０の機能は第１の実施の形態に係るＧｌｏＶｅベクトル算出部１４０の機能と実質的に同一である。
【０１１０】
ＤＢＲＮＮ学習部７２０は、大規模多言語テキストプール記憶部７４２に記憶された多言語テキストプール内の各文がアライメントされたものからなるアライメント済多言語テキストコーパスを記憶するためのアライメント済多言語テキストコーパス記憶部７４６と、アライメント済多言語テキストコーパス記憶部７４６に記憶されたアライメント済みテキストコーパスを学習データとしてＤＢＲＮＮ７３２の学習を行うための学習実行部７４４とを含む。学習実行部７４４の機能は、第１の実施の形態に係る学習実行部１４４の機能と実質的に同一である。ただし、学習データが異なるので、この学習により得られるＤＢＲＮＮ７３２の機能は第１の実施の形態に係るＤＢＲＮＮ７３２の機能とは異なる。
【０１１１】
アライメント済多言語テキストコーパス記憶部７４６に記憶されるアライメント済多言語テキストコーパスは、テキストに含まれる各文字に、その文字の読みを表すラベルが付されたものと理解できる。
【０１１２】
文字・音素タグリスト記憶部７５２は、図２３に示したように、１文字で複数通りの読みを持つ文字について、その文字と読みを表すラベルとの組合わせを記憶している。この記憶は、文字の音素タグを構成する複数の読みを学習データにおけるその頻度とともにリスト形式で格納するようにして行われる。アライメント処理部７５０は、文字・音素タグリスト記憶部７５２に記憶された文字・音素タグリストを用い、大規模多言語テキストプール記憶部７４２に記憶された各文について、その文の各文字とその読みとをアライメントし各文字にその読みを表すラベルを付す。各文字と読みとがアライメントされた文はアライメント済多言語テキストコーパス記憶部７４６に記憶される。
【０１１３】
図２６を参照して、ＧＣＶベクトル算出部７４０は、前述したように第１の実施の形態のＧＣＶベクトル算出部７４０と実質的に同じ構成である。図２６に示すように、大規模多言語テキストプール記憶部７４２は、大規模日本語テキストコーパス７７０、大規模タイ語テキストコーパス７７２、大規模中国語テキストコーパス７７４、及び大規模韓国語テキストコーパスを統合した大規模多言語テキストプールを記憶する。
【０１１４】
ＧＣＶベクトル算出部７４０は、単語の共起を検査する範囲を指定するウィンドウサイズ７６８を受けてこの大規模テキストコーパス内で、指定されたウィンドウサイズ内で共起する単語の組合わせの頻度を算出し共起マトリクスを算出するための共起マトリクス算出部７６２と、共起マトリクス算出部７６２により算出された共起マトリクスを記憶するための共起マトリクス記憶部７６４と、共起マトリクス記憶部７６４に記憶された共起マトリクスに対してバイリニア回帰変換を行ってＧＣＶベクトル変換テーブルを算出するためのバイリニア回帰変換部７６６とを含む。バイリニア回帰変換部７６６により算出されたＧＣＶベクトル変換テーブルはＧＣＶベクトル変換テーブル記憶部８１０に記憶され、図２５に示す文字／ＧＣＶベクトル変換部７３０により使用される。図２７に共起マトリクスの例を示し、図２８にＧＣＶベクトル変換テーブルの例を示す。
【０１１５】
図２９を参照して、文字／ＧＣＶベクトル変換部７３０は、ランタイム時（推定処理時）の入力であるプレーンテキスト７０２を受ける第１の入力と、学習時の入力である、ＤＢＲＮＮ学習部７２０からの学習データのプレーンテキストを受ける第２の入力とを持ち、学習時と推定処理とを指定する制御信号８００に応答して、学習時にはＤＢＲＮＮ学習部７２０からのプレーンテキスト７２２を、推定処理時には入力されたプレーンテキスト７０２を選択して出力するための選択部８０２と、選択部８０２が出力するプレーンテキストに含まれる各文字を、ＧＣＶベクトル変換テーブル記憶部８１０に記憶された文字／ＧＣＶベクトル変換テーブル８１２を用いてＧＣＶベクトルに変換してＧＣＶベクトル列７３４を出力するための文字／ＧＣＶベクトルマッピング部８０４とを含む。
【０１１６】
図３０に、この第２の実施の形態で使用するＤＢＲＮＮ７３２の学習の概略構成を示す。このＤＢＲＮＮ７３２は、隠れ層の数が２であることを除き、第１の実施の形態に係るＤＢＲＮＮ１３２と同じ構成である。すなわち、学習時には、展開された後のこのＤＢＲＮＮ７３２は、入力されるプレーンテキストに含まれる各文字がエンコーダ（図２９に示す文字／ＧＣＶベクトルマッピング部８０４）により変換されたＧＣＶベクトルを受ける入力層と、２つの隠れ層と、隠れ層の次に設けられた出力層とを含む。学習時には、出力層の各出力となるベクトルと、文字に対する読みを表すワンホットベクトル（ここでは読みの数だけの要素を持ち、該当する読みの要素の値が１、それ以外の要素の値が０となるベクトル）とを用いて誤差逆伝播法によりＤＢＲＮＮ７３２のパラメータを調整する。
【０１１７】
図３１に、この第２の実施の形態に係る音声合成システム７００の学習を行うためのプログラムの制御構造をフローチャート形式で示す。図３１を参照して、このプログラムは、ＤＢＲＮＮ７３２の基本ユニットの初期値によりＤＢＲＮＮ７３２を初期化するステップ８３０と、アライメント済多言語テキストコーパスを構成するＤＢ（図２５のアライメント済多言語テキストコーパス記憶部７４６）に接続するステップ８３２と、アライメント済多言語テキストコーパスに記憶されたアライメント済多言語テキストを対象に以下の処理８３６を所定回数繰返すステップ８３４と、ステップ８３４の処理が終了したときのＤＢＲＮＮ７３２の係数行列の各要素（パラメータ）を図示しない記憶装置に保存し処理を終了するステップ８３８とを含む。ＤＢの各レコードは、図２３に示すようなプレーンテキストと対応する読みとの対を記憶している。
【０１１８】
処理８３６は、ＤＢの各レコードに対して以下の処理８５２を実行するステップ８５０を含む
処理８５２は、ＤＢのレコードを読むステップ８６０と、レコード内のプレーンテキストを文字／ＧＣＶベクトル変換テーブル８１２を用いてＧＣＶベクトル列に変換するステップ８６１と、このレコードに対する読みのラベル列をワンホットベクトルに変換するステップ８６２と、プレーンテキストの文字数を調べるステップ８６３と、ステップ８６３で判明した文字数だけ基本ユニットを複写・展開し、相互接続（ノード間の演算）を定義することでＤＢＲＮＮ７３２を生成するステップ８６４と、ステップ８６１で得られた各ＧＣＶベクトルをＤＢＲＮＮ７３２の対応する基本ユニットの入力層にそれぞれ入力するステップ８６６と、この入力に対するＤＢＲＮＮ７３２の出力するラベルを示すベクトル列と、入力された読みを示すラベル列との誤差を用いた誤差逆伝播法により、ＤＢＲＮＮ７３２の係数行列の更新を行うステップ８６８とを含む。この際、ＤＢＲＮＮ７３２を構成する各基本ユニットは同じものであることを前提に誤差逆伝播法を適用する。この実施の形態でも、この処理にミニバッチ法を用いてもよいことはいうまでもない。
【０１１９】
この図３１を第１の実施の形態における学習のためのプログラムのフローチャート（図１１）と比較すると、全体の流れは全く同じであることがわかる。両者は、使用する情報が異なるという点だけで異なり、実質的に同一である。
【０１２０】
図３２に、この第２の実施の形態に係るＴＴＳフロントエンド７１０の推定時の動作をコンピュータとの協働により実現するためのプログラムの制御構造をフローチャート形式で示す。図３２を参照して、このプログラムは、起動とともに、記憶装置上に基本ユニットのための記憶領域を確保し、係数行列を含めてそのパラメータを学習済の値に設定することで基本ユニットを初期化するステップ８７０と、入力文であるプレーンテキストを受けるステップ８７２と、このプレーンテキストに含まれる各文字を文字／ＧＣＶベクトル変換テーブル８１２を参照してＧＣＶベクトル列７３４に変換するステップ８７４と、入力されたプレーンテキストに含まれる文字数を調べるステップ８７６とを含む。
【０１２１】
このプログラムはさらに、ステップ８７６で調べた文字数に応じて、基本ユニットを複製・展開することでＤＢＲＮＮ７３２を生成するステップ８７８と、ステップ８７４で得られたＧＣＶベクトル列７３４をＤＢＲＮＮ７３２の入力層に与えるステップ８８０とを含む。ＤＢＲＮＮ７３２の入力層のノード数は文字数と一致し、各ＧＣＶベクトルは対応する基本ユニットの入力層のノードに与えられる。
【０１２２】
このプログラムはさらに、ステップ８８０で与えられた入力に応じてＤＢＲＮＮ７３２が出力するワンホットベクトル列を読出すステップ８８２と、読み出されたワンホットベクトルをデコードし対応する読み（音素）列に変換するステップ８８４と、ステップ８８４で得られた読み列を出力して処理を終了するステップ８８６とを含む。
【０１２３】
図３２を図１２と比較すると分かるように、本実施の形態における推定のためのプログラム構造は、図１２に示す第１の実施の形態のものと実質的に同様である。使用するベクトルがＧＣＶベクトルである点で両者は異なるが、第１の実施の形態で使用したＧＳＶベクトルと第２の実施の形態で使用したＧＣＶベクトルとは、実質的に同一と考えて良い。またＤＢＲＮＮ７３２を用いて推定処理も、出力が読みを表すワンホットベクトルである点を除き、第１のものと同様である。もちろん、学習データが異なるので両者の具体的な動きは異なるが、基本的にはＴＴＳフロントエンド７１０は第１の実施の形態に係るＴＴＳフロントエンド１１０と同様に動作する。
【０１２４】
なお、上記した実施の形態では、４言語を対象としているが、原理的には単言語も含めて様々な数の言語に対して適用できることは明らかである。
【０１２５】
［動作］
この第２の実施の形態に係る音声合成システム７００のＴＴＳフロントエンド７１０は、学習時、及び推定時のいずれにおいても実質的に第１の実施の形態に係るＴＴＳフロントエンド１１０と同様に動作する。ただし、学習時には大規模多言語テキストプール記憶部７４２に記憶された多言語テキストプールの各文と読みとの対に対し、アライメント処理部７５０が文字・音素タグリスト記憶部７５２に記憶された文字・音素タグリストを用いてアライメントを行う点が第１の実施の形態と異なる。このアライメントは、各文の各文字に対し、読みの一部を対応付けしてそのラベルを付すという処理である。前述したとおり、中国語と韓国語ではこのアライメントは単純であり、日本語及びタイ語では制約付きアライメントを用いて半自動的アライメントを行なう。なお、この実施の形態では半自動的アライメントを行っているが、原理的にはアライメントを人手で行っても良いことはいうまでもない。
【０１２６】
［評価］
―設定―
上記第２の実施の形態に係るＴＴＳフロントエンド７１０及び音声合成システム７００の効果について実験により検証した。対象となるタスクはＧ２Ｐである。Ｇ２Ｐとは各文字からその文字の読みを推定するタスクである。このタスクに用いた訓練セット、開発セット及び評価（テスト）セットの規模を図３３に表形式で示す。図３３を参照して、例えばタイ語の学習セットは文が７５００文及び３８０００単語を含み、開発セットは１０００文及び１０００単語を含み、テストセットは１０００文及び１０００単語を含む。日本語、韓国語及び中国語についても同様の形で表現してある。これらとは別に、非正規化語に対するテキストについてのＧ２Ｐを評価するために、日本語の５０００文からなるテストセットも準備した。各文は１以上の非正規化語（数字又はアルファベット列）を含んでいる。なお、ここでの単語の正規化とは、例えば数字を単に数字として読むのではなく、日本語として通常採用される読み方に読み替えることをいう。例えば「１０００」を「イチレイレイレイ」ではなく「イッセン」に読み替えるような処理である。音声合成装置では、入力に対して予め正規化ができていないと正しい処理ができない。そのため、ＴＴＳフロントエンドで正規化が正確に行えるかどうかは大きな問題である。
【０１２７】
訓練データのコーパスは、４言語の、ＵＴＦ−８によりエンコードされた５億文字からなる大規模テキストコーパスである。このコーパスを用い、２０文字というウィンドウを用いて、言語独立なＧＣＶ（２言語以上の単語を用いてＧＣＶベクトル変換を学習）、及び言語依存のＧＣＶ（単言語を用いてＧＣＶベクトル変換を学習）を実現した。以下では、言語独立なものをＬＩＣと呼び、言語依存なものをＬＤＣと呼ぶ。
【０１２８】
実験では、ＧＣＶベクトルとして要素数５０、１００、２００、３００及び５１２としたものを用いた。コーパス中の文字数（文字種類）は合計で１３，７００であった。
【０１２９】
―文字と読みのアライメント─
図３３に示す学習データセットについては、ネイティブスピーカによる発音チェックを単語レベルで行っておいた。ＤＢＲＮＮの訓練には、文字と読みとの間のアライメントを前述の方法により行った。前述したとおり、中国語と韓国語ではこのアライメントは単純である。日本語及びタイ語では制約付きアライメントを用いて半自動的アライメントを行った。
【０１３０】
このアライメントの結果、我々は、タイ語では６２３の別個の読みを取得し、日本語では２１９７、韓国語では１９１６、中国語では１４５２の読みを取得した。タイ語において、Ｇ２Ｐ変換を行った後に音素を復元し音素列からシラブルを決定するために、各子音及び図２４に示すようにクロスしたリンクを持つ母音にシラブル内におけるその位置（先頭、次、及び末尾）を示すラベルを付した。トーン記号に対しては特定のラベルを付した。
【０１３１】
−ハイパーパラメータ−
ＤＢＲＮＮを以下のようなハイパーパラメータを用いて訓練した。
【０１３２】
・入力層のノード数：ＧＣＶサイズ
・出力層のノード数：読みを表すラベルの数
・隠れ層の数：２
・隠れ層のノード数：５０、１００、１５０及び２００
・固定したモメンタム（０．９）による確率的勾配効果法で学習率の低いもの（０．００００１）を使用
・ミニバッチのサイズ：２０サンプル（文又は単語）
・最大エポック数：２０００
これらハイパーパラメータを用いて開発セットにより性能を測定し、最もよい性能を示したものを評価すべき最終的なモデルとした。
【０１３３】
−比較例−
比較例として、従来のＴＴＳフロントエンドにおける形態素解析に広く用いられる、辞書を用いた技術であるＭｅＣａｂによるものをベースラインとした。ＭｅＣａｂについても第２の実施の形態で使用した図３３に示す学習データセットを用いて訓練した。
【０１３４】
−Ｇ２Ｐモデルの略称−
実験結果を示す図では以下のような略称を用いる。
【０１３５】
・ＭｏＧ２Ｐ：ＬＤＣ及びＬＩＣによる単言語Ｇ２Ｐ
・ＭｕＧ２Ｐ−ｂ：日本語及び中国語に関するバイリンガルＧ２Ｐ
・ＭｕＧ２Ｐ−ｔ：中国語、韓国語、及びタイ語による３言語Ｇ２Ｐ
・Ｍｅｃ−ｘ：ｘ×データセットサイズのサンプルにより訓練したＭｅＣａｂによるＧ２Ｐモデル
・ＬＩＣ−ｘ：Ｍｅｃ―ｘの訓練に用いたものと同じサンプルにより訓練したＬＩＣ−ＭｏＧＰモデル。
【０１３６】
ここで、「ｘ」は、全学習データセットに対する学習データセットの割合である。ｘの値として、全言語に対して１を採用し、さらにタイ語、日本語及び韓国語については１／２、１／４及び１／８も採用した。
【０１３７】
−結果−
上記実験の結果を図３４〜図３７に示す。以下の説明では、特に注記がない限り、ＤＢＲＮＮの隠れ層は１００個の隠れノードを持ち、ＧＣＶサイズは３００である。
【０１３８】
・図３４から、ＭｏＧ２Ｐが非常に高い性能を示したことが分かる。タイ語では文字から読みへの変換精度は９９．１８％であった。同様に、日本語では９８．７７％、韓国語では９７．７４％、中国語では９９．３２％であった。
【０１３９】
・図３５を参照して、ＭｅＣａｂによる手法と比較すると本実施の形態ではシラブル誤り率では言語によって２７％〜９０％、単語誤り率では１７．７％〜９０％という性能向上が見られた。
【０１４０】
・ＭｕＧ２Ｐもまた高い性能を示した。４言語全ての文字−読みタグ精度で９７．５％以上という高性能を示した（図３４）。しかしこの結果は、図３４から分かるとおりＭｏＧ２Ｐと比較するとやや低い。
【０１４１】
・図３４からは、未知の読み（ＯＯＴ）がＭｕＧ２Ｐでいくらか存在することが分かる。しかしＭｕＧ２Ｐ−ｔ（日本語、韓国語及びタイ語）では言語にもよるが０．０３％未満である。日本語及び中国語のＭｕＧ２Ｐでは、ＯＯＴは０．００８％未満であった。
【０１４２】
・図３５及び図３６を参照して、ＧＣＶを用いたＧ２ＰはＭｅＣａｂによるＧ２Ｐと比較して、より頑健であること、特に学習データが制限されているときにも高い精度を保つことがわかる。ＭｅＣａｂを用いた手法では発音辞書を用いるため、学習データ内で使用可能な単語の影響を受けやすいと考えられる。
【０１４３】
・図３７を参照して、日本語の正規化されていない単語についてもＭｏＧ２Ｐでは８０％程度の変換精度を得ることができた。正規化されていない表現について少し調べて見たところ、日付を表す数値についての変換は基本的に正確であった。それほど出現しない省略語（「ＳＰＡＭ」等）については比較的誤りが多く、また３文字を超える長さの数字ではＧ２Ｐ変換により中間の「セン（千）」、「ヒャク（百）」等が省略されてしまうことがあることが判明した。
【０１４４】
＜本実施の形態の効果＞
以上のように本実施の形態によれば、大量のテキストを含む大規模多言語テキストコーパスを用いて文字／ＧＣＶベクトル変換テーブルの学習を教師なし学習で行い、この変換テーブルを用いてプレーンテキストの各文字をＧＣＶベクトルに変換できる。さらに、テキストに読みが付された文からなるコーパスを学習データとし、テキストの各文字に対してその読みをアライメントする。アライメント済のテキストを学習データとして、文字とその読みとの対応付に関するＤＢＲＮＮの学習を教師あり学習により行う。このように教師なし学習と教師あり学習とを組合わせることにより、ＤＢＲＮＮ１３２の学習に用いるデータが比較的少量でも、ＤＢＲＮＮの学習を最適化し、頑健な文字／読みの変換を行える。また、ＧＣＶベクトルはワンホットベクトルよりはるかに少ない次元数であり、ＤＢＲＮＮへの入力がより効率的になり、ＤＢＲＮＮによるラベル列の推定の精度を高めることができる。
【０１４５】
また複数言語を用いて学習をした場合、それら言語のテキストが混在した入力に対しても、高い精度で正しい読みへの変換を行うことが可能になる。これから、複数言語の文を含むテキストは増加すると考えられ、そうしたテキストについて高い精度で分かりやすい音声合成を行えるようになる。
【０１４６】
［第２の実施の形態の変形例］
上記した第２の実施の形態では、大規模多言語テキストコーパスには、複数言語のテキストが混在している。しかし、ＤＢＲＮＮの出力には、テキストコーパスで各言語の読みに依存した読みのラベル列が得られるという問題がある。例えば日本語ではカタカナ列が得られ、タイ語ではＩＰＡ列が得られ、中国語ではピンイン列が得られ、韓国語では子音＋母音＋コーダという形で読みが得られる。そのため、音声合成ではそれら各言語の読みの表現に対応した音声合成機能を準備しなければならないという問題がある。
【０１４７】
そこで、図３８に示すように、例えば学習に用いる多言語コーパスの各文の読みとして、ＩＰＡタグを共通に用いることが考えられる。
【０１４８】
このようにＩＰＡタグを共通に用いたとしても、文字／ＧＣＶベクトル変換テーブルの学習方法も、ＤＢＲＮＮの学習方法も第２の実施の形態をそのまま利用できる。しかも、推定時のＤＢＲＮＮの出力には、言語にかかわらずＩＰＡ列が得られる。その結果、音声合成装置としては、ＩＰＡ列から音声合成を行う機能を備えたもののみを用いることができる。すなわち、音声合成装置が必要とするリソースを最小限にし、効率的な音声合成を行えるという効果がある。また第２の実施の形態と比してＩＰＡ列の種類の方が少ないため、ＤＢＲＮＮの学習が安定化するという効果も得られる。
【０１４９】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【０１５０】
５０、１００、７００  音声合成システム
６０、１２２、４８０、５７０、６００、６２０、７０２、７２２  プレーンテキスト
６２、１１０、７１０  ＴＴＳフロントエンド
６４、１１２、７１２  ラベル列
６６、１１４、７１４  音声合成装置
６８、１１６、７１６  発話信号
７０  教師あり学習
７２  アノテート済テキストコーパス
８０  形態素解析エンジン
８２  言語モデル記憶部
１１８、７１８  変換テーブル学習部
１２０、７２０  ＤＢＲＮＮ学習部
１２４、４８２  ＰＯＳラベル列
１３０  シラブル／ベクトル変換部
１３２、７３２  ＤＢＲＮＮ
１３４  シラブルベクトル列
１３６、７３６  基本ユニット展開部
１４０  ＧｌｏＶｅベクトル算出部
１４２  大規模中国語テキストコーパス
１４４、７４４  学習実行部
１４６、５６０、５９０、６１０  アノテート済中国語テキストコーパス
１７０  ＧｌｏＶｅベクトル算出処理
１９０  単語分割済テキストコーパス
１９２、２３２、７６２  共起マトリクス算出部
１９４、２３４、７６６  バイリニア回帰変換部
１９６、２３６、７６８  ウィンドウサイズ
２７４  シラブル／ベクトル変換テーブル
３３０  シラブル／ベクトルマッピング部
３３２、８０２  選択部
３３６、８００  制御信号
３８０、３８２、３８４  基本ユニット
４００  第１の隠れ層
４１０、４４０  第１のノード
４１２、４４２  第２のノード
４３０  ｉ番目の隠れ層
４６０  ノード
４７０  ＰＯＳラベル付きテキスト
５６２  単語セグメンテーションラベル付きテキスト
５７２  単語セグメンテーションラベル列
５９２  ピンインラベル列付きテキスト
６０２  ピンインラベル列
６１２  ポーズラベル付きテキスト
６２２  ポーズラベル列
７３０  文字／ＧＣＶベクトル変換部
７３４  ＧＣＶベクトル列
７４０  ＧＣＶベクトル算出部
７４２  大規模多言語テキストプール記憶部
７４６  アライメント済多言語テキストコーパス記憶部
７５０  アライメント処理部
７５２  文字・音素タグリスト記憶部
７７０  大規模日本語テキストコーパス
７７２  大規模タイ語テキストコーパス
７７４  大規模中国語テキストコーパス
７７６  大規模韓国語テキストコーパス
８０４  文字／ＧＣＶベクトルマッピング部
８１０  ＧＣＶベクトル変換テーブル記憶部
８１２  文字／ＧＣＶベクトル変換テーブル
【図１】
2019032529.tif 000010
【図２】
2019032529.tif 000011
【図３】
2019032529.tif 000012
【図４】
2019032529.tif 000013
【図５】
2019032529.tif 000014
【図６】
2019032529.tif 000015
【図７】
2019032529.tif 000016
【図８】
2019032529.tif 000017
【図９】
2019032529.tif 000018
【図１０】
2019032529.tif 000019
【図１１】
2019032529.tif 000020
【図１２】
2019032529.tif 000021
【図１３】
2019032529.tif 000022
【図１４】
2019032529.tif 000023
【図１５】
2019032529.tif 000024
【図１６】
2019032529.tif 000025
【図１７】
2019032529.tif 000026
【図１８】
2019032529.tif 000027
【図１９】
2019032529.tif 000028
【図２０】
2019032529.tif 000029
【図２１】
2019032529.tif 000030
【図２２】
2019032529.tif 000031
【図２３】
2019032529.tif 000032
【図２４】
2019032529.tif 000033
【図２５】
2019032529.tif 000034
【図２６】
2019032529.tif 000035
【図２７】
2019032529.tif 000036
【図２８】
2019032529.tif 000037
【図２９】
2019032529.tif 000038
【図３０】
2019032529.tif 000039
【図３１】
2019032529.tif 000040
【図３２】
2019032529.tif 000041
【図３３】
2019032529.tif 000042
【図３４】
2019032529.tif 000043
【図３５】
2019032529.tif 000044
【図３６】
2019032529.tif 000045
【図３７】
2019032529.tif 000046
【図３８】
2019032529.tif 000047