JP7112075B2 - 音声合成のためのフロントエンドの学習方法、コンピュータプログラム、音声合成システム、及び音声合成のためのフロントエンド処理方法 - Google Patents

音声合成のためのフロントエンドの学習方法、コンピュータプログラム、音声合成システム、及び音声合成のためのフロントエンド処理方法 Download PDF

Info

Publication number
JP7112075B2
JP7112075B2 JP2018147162A JP2018147162A JP7112075B2 JP 7112075 B2 JP7112075 B2 JP 7112075B2 JP 2018147162 A JP2018147162 A JP 2018147162A JP 2018147162 A JP2018147162 A JP 2018147162A JP 7112075 B2 JP7112075 B2 JP 7112075B2
Authority
JP
Japan
Prior art keywords
character
dbrnn
vector
string
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018147162A
Other languages
English (en)
Other versions
JP2019032529A (ja
Inventor
晋富 倪
芳則 志賀
恒 河井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Information and Communications Technology
Original Assignee
National Institute of Information and Communications Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Information and Communications Technology filed Critical National Institute of Information and Communications Technology
Publication of JP2019032529A publication Critical patent/JP2019032529A/ja
Application granted granted Critical
Publication of JP7112075B2 publication Critical patent/JP7112075B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Description

この発明は音声合成に関し、特に、テキストを解析して音声合成のための言語学的特徴を表すパラメータを生成するフロントエンドの改良技術に関する。
複数言語の間のtext-to-speech(TTS)合成では、合成すべき発話の言語学的な特徴を生成するためのTTSフロントエンドが用いられる。言語学的な特徴としては、音素、シラブル、及び品詞(part of speech:POS)ラベル付け、フェージング、及び長い文を短い発話に分割するポーズブレーク分割等がある。
こうした言語学的な特徴を定める方法として、後掲の非特許文献1に記載された統計的な方法及び、非特許文献2に記載された、ベクトル空間モデルにおける特異値分解(singular value decomposition:SVD)を用いたものがある。
一方、近時、音声認識、機械翻訳等の分野でいわゆる深層学習によるディープニューラルネットワーク(Deep Neural Network:DNN)が広く用いられるようになり、種々の応用において従来のシステムの精度を凌駕する性能を示している。そこで、深層学習をTTSフロントエンドにうまく適用することにより、合成される音声がより自然なものになることが期待できる。
図1に、従来技術において音声合成のTTSフロントエンドにDNNを用いた場合の音声合成システムの概略構成を示す。図1を参照して、この音声合成システム50は、プレーンテキスト60を受けて形態素解析を行い、品詞情報及び発音情報等、音声合成に必要な言語学的特徴を示すラベル列64を出力するTTSフロントエンド62と、このラベル列64を受けて音声合成して発話信号68を出力する音声合成装置66とを含む。
TTSフロントエンド62は、プレーンテキスト60に対して形態素解析を行ってラベル列64を出力する形態素解析エンジン80と、形態素解析エンジン80が形態素解析の際に参照する言語モデル及び辞書を記憶した言語モデル記憶部82とを含む。
言語モデル記憶部82に記憶された言語モデルは、品詞、発音等の情報が各単語にアノテーションとして予め付されたテキストを記憶したアノテート済テキストコーパス72を学習データとして、教師あり学習70により生成する。
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/.
深層学習をTTSフロントエンドに適用しようとする場合、困難な点がいくつかある。第1に、フロントエンドの言語モデル及び辞書を教師あり学習により訓練しようとする場合、アノテート済のテキストコーパスが限られているという問題がある。特にリソースが少ない言語ではこの問題が顕著である。第2に、従来技術では、DNNへの入力として、いわゆるワンホットベクトルが使用されてきた。ワンホットベクトルとは、例えば単語(形態素)を表す場合には、単語数と同じ数の要素を持つベクトルを用意し、ある単語について、その単語に対応する要素の値を1に、その他の要素の値を0にすることによってその単語を表すようなベクトル表現をいう。ワンホットベクトルを用いる場合、その次元が非常に大きくなること、またその要素の大部分が0となること等、言語学的特徴を表す上では大きな制限があり、TTSフロントエンドに用いるには適していないという問題がある。
したがって本発明の1つの目的は、リソースが限られている言語であっても効率よく学習が行える、深層学習を用いる音声合成のためのフロントエンドの学習方法、そのためのコンピュータプログラム、及び音声合成システム並びに音声合成のフロントエンド処理方法を提供することである。
本発明の他の目的は、複数種類の言語のテキストから効率よく学習が行える、深層学習を用いる音声合成のためのフロントエンドの学習方法、そのためのコンピュータプログラム、及び音声合成システム並びに音声合成のフロントエンド処理方法を提供することである。
本発明のさらに他の目的は、1つの文字に複数通りの読み方を持つ言語を含む言語のテキストからも効率よく学習が行える、深層学習を用いる音声合成のためのフロントエンドの学習方法、そのためのコンピュータプログラム、及び音声合成システム並びに音声合成のフロントエンド処理方法を提供することである。
本発明の第1の局面に係る音声合成のためのフロントエンドの学習方法は、コンピュータが、ディープ双方向リカレントニューラルネットワーク(DBRNN:Deep bidirectional Recurrent Neural Network)を生成する基本となる、予め設計されたリカレントニューラルネットワーク(RNN)からなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータの初期値を記憶するステップと、コンピュータが、DBRNNの学習のため、各々が、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかによりアノテートされた複数のアノテート済文字列を記憶したデータベースに接続するステップと、コンピュータが、複数のアノテート済文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、コンピュータが、複数のアノテート済文字列から生成された文字ベクトル列と、当該文字ベクトル列に対応するラベル列との組合わせを用いて、入力される文字列に対して、複数種類のラベルの内で正しい確率が高いラベルをDBRNNが出力可能となるように、基本ユニットのパラメータを教師あり学習により学習するステップとを含む。
好ましくは、音声合成のためのフロントエンドの学習方法は、コンピュータが、大量の文字列からなる大規模文字列コーパスに接続するステップと、コンピュータが、大規模文字列コーパスから文字列を読出し、文字間の共起関係を表す共起マトリクスを生成するステップと、コンピュータが、共起マトリクスに対するバイリニア回帰変換を行うことにより、各文字から文字ベクトルへの変換テーブルを生成するステップとを含む。文字ベクトル列を生成するステップは、コンピュータが、複数のアノテート済文字列に含まれる各文字を、変換テーブルを用いて文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップをさらに含む。
より好ましくは、基本ユニットのパラメータを学習するステップは、コンピュータが、複数のアノテート済文字列の1つを読出すステップと、コンピュータが、読出すステップで読出された文字列に含まれる各文字を文字ベクトルに変換するステップと、コンピュータが、読出すステップで読出された文字列に含まれる文字の数を調べるステップと、コンピュータが、調べるステップで調べられた文字の数だけ基本ユニットの複製と相互接続とを行ってDBRNNを生成するステップと、コンピュータが、DBRNNを生成するステップにおいて生成されたDBRNNを構成する基本ユニットの入力に、変換するステップにおいて変換された文字ベクトル列を入力したときのDBRNNの出力を計算するステップと、コンピュータが、計算するステップで得られたDBRNNの出力と、変換するステップにおいて変換された文字列に付されたラベル列との誤差に基づいて、基本ユニットのパラメータを誤差逆伝播法により更新するステップと、コンピュータが、読出すステップ、変換するステップ、調べるステップ、DBRNNを生成するステップ、計算するステップ、及び更新するステップを、所定の終了条件が成立するまで繰返し実行するステップとを含む。
本発明の第2の局面に係るコンピュータプログラムは、コンピュータを、上記したいずれかの音声合成のためのフロントエンドの学習方法を実行するよう機能させる。
本発明の第3の局面に係るコンピュータは、上記した何れかの音声合成のためのフロントエンドの学習方法を実行するようにプログラムされている。
本発明の第4の局面に係る音声合成システムは、上記した何れかの音声合成のためのフロントエンドの学習方法により学習が行われたDBRNNと、入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成しDBRNNに入力する文字ベクトル変換部とを含む。DBRNNは、文字ベクトル変換部により生成された文字ベクトル列の入力に応答して、各文字に対応する言語学的特徴を表すラベルからなるラベル列を出力する。この音声合成システムはさらに、DBRNNにより出力されたラベル列を用いて、当該ラベル列により表される言語学的特徴を反映した発話信号を合成する音声合成装置を含む。
本発明の第5の局面に係る音声合成のためのフロントエンド処理方法は、コンピュータが、DBRNNを生成する基本となる、予め設計されたRNNからなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータを記憶するステップを含む。基本ユニットのパラメータは、当該基本ユニットで構成されるDBRNNに文字列が入力されたときに、当該DBRNNの出力に、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかを出力するように予め学習済である。この方法はさらに、コンピュータが、入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、コンピュータが、文字ベクトル列を生成するステップで変換された文字の数を調べるステップと、コンピュータが、入力される文字列に含まれる文字の数だけ基本ユニットの複製と相互接続とを行ってDBRNNを生成するステップと、コンピュータが、DBRNNを生成するステップにおいて生成されたDBRNNを構成する基本ユニットの入力に、文字ベクトルに変換するステップにおいて変換された文字ベクトル列を入力したときのDBRNNの出力を計算するステップとを含む。
本発明の本質及びその効果は、図面とともに以下に記載する実施の形態を参照することによって明らかになるであろう。
従来のTTSフロントエンドを用いた音声合成システムの概略構成を示すブロック図である。 本発明の第1の実施の形態に係るTTSフロントエンドを用いた音声合成システムの概略構成を示すブロック図である。 後述のGloVeベクトルにより単語ベクトルを表す際の学習機構の概略構成を示す図である。 図2に示すTTSフロントエンドで使用する、シラブルを文字ベクトルの1例であるGloVeベクトル(シラブルベクトル)によって表すGloVeベクトル算出部の概略構成を示すブロック図である。 入力テキストの各シラブルをシラブルベクトルに変換するためのシラブル/ベクトル変換部の概略構成を示す図である。 図2に示すDBRNNの概念的構造を示す図である。 DBRNNの基本ユニットの入力層の概略構成を示す図である。 DBRNNの基本ユニットの隠れ層の概略構成を示す図である。 DBRNNの基本ユニットの出力層の概略構成を示す図である 本発明の実施の形態に係るTTSフロントエンドにより中国語の各シラブルにPOSラベルを付すようDBRNNを訓練する方法の概略構成を示す図である。 本発明の実施の形態において、シラブル/ベクトル変換部を用いてDBRNNの訓練を行うためのコンピュータプログラムの制御構造を示すフローチャートである。 本発明の実施の形態において、シラブル/ベクトル変換部及びDBRNNを用いてPOSラベルを推定するためのコンピュータプログラムの制御構造を示すフローチャートである。 本発明の第1の実施の形態の第1の変形例により、中国語の単語セグメンテーションを行うようDBRNNを訓練する方法の概略構成を示す図である。 本発明の第1の実施の形態の第2の変形例により、中国語のシラブル列からピンイン列を生成するようDBRNNを訓練する方法の概略構成を示す図である。 本発明の第1の実施の形態の第3の変形例により、中国語のポーズブレークを示すラベル列を出力するようDBRNNを訓練する方法の概略構成を示す図である。 本発明の第1の実施の形態及びその変形例の性能について中国語に関する評価実験を行った際の設定をタスク別に表形式で示す図である。 本発明の第1の実施の形態及びその変形例の性能について中国語に関する評価実験を行った際の、各パラメータ及び精度をタスク別に表形式で示す図である。 本発明の第1の実施の形態に係るTTSフロントエンドについて、ベクトルサイズ及びニューロン数とPOSラベル付けタスクの精度との関係を示すグラフである。 本発明の第1の実施の形態に係るTTSフロントエンドについて、ベクトルサイズ及びニューロン数とポーズブレーク推定の精度との関係を示すグラフである。 本発明に係る各実施の形態に係るTTSフロントエンドを実現するコンピュータシステムの外観を示す図である。 図20に示すコンピュータのハードウェア構成を示すブロック図である。 日本語とその読みとの対応の一例を模式的に示す図である。 日本語の文の各文字とその読みとのアライメントの一例を示す図である。 本発明の第2の実施の形態における、複数言語の文字と読みとの対応関係を示す図である。 本発明の第2の実施の形態に係る、多言語に対応したTTSフロントエンドを用いた音声合成システムの概略構成を示すブロック図である。 図25に示すGCVベクトル算出部の構成を示すブロック図である。 図26に示す共起マトリクス算出部により算出される共起マトリクスの内容を模式的に示す図である。 図26に示すバイリニア回帰変換部により生成されるGCVベクトル変換テーブルの内容を示す図である。 図25に示す文字/GCVベクトル変換部730の構成を示すブロック図である。 図25に示すDBRNNの概略構成を示すブロック図である。 第2の実施の形態において、DBRNN732の学習を実現するプログラムの制御構造を示すフローチャートである。 第2の実施の形態において、入力されたプレーンテキストから音素列を出力する処理を実現するプログラムの制御構造を示すフローチャートである。 第2の実施の形態のテストに使用した学習データセットの構成を表形式で示す図である。 第2の実施の形態に係るTTSフロントエンドによるG2Pの処理結果を表形式で示す図である。 第2の実施の形態に係るTTSフロントエンドによるG2Pの処理結果を従来技術と比較して表形式で示す図である。 第2の実施の形態に係るTTSフロントエンドの学習に関し、学習データの量とシラブル精度との関係を従来技術と比較するグラフを示す図である。 第2の実施の形態に係るTTSフロントエンドにおいて、非正規化語の単語誤り率を表形式で示す図である。 第2の実施の形態の変形例に係るTTSフロントエンドのための学習データの構成を示す図である。
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。なお、以下の実施の形態は中国語におけるTTSフロントエンドに関するものであるが、同様の考え方を用いると、シラブル表現が可能な他のどのような言語に対しても同じ考え方でTTSフロントエンドにDNNを採用できる。
〔第1の実施の形態〕
図2に、本発明の第1の実施の形態に係る、中国語のためのTTSフロントエンド110を含む音声合成システム100の概略構成を示す。図2を参照して、音声合成システム100は、プレーンテキスト60を受けてラベル列64と同様の、音声合成のための言語学的特徴を示すラベル列112を出力するTTSフロントエンド110と、ラベル列112に基づいて音声合成を行い、発話信号116を出力するための音声合成装置114とを含む。音声合成装置114は図1に示す音声合成装置66と同様のものでよい。
TTSフロントエンド110は、プレーンテキスト60をシラブルに分割し、各シラブルを後述するGloVeベクトルに変換してGloVeベクトルからなるシラブルベクトル列134を出力するためのシラブル/ベクトル変換部130と、シラブルベクトル列134を受けて、図1に示すラベル列64と同様のラベル列112を出力するためのDBRNN132とを含む。DBRNN132は、後述するように、所定の基本ユニットを処理すべきシラブル数に応じて複製・展開し、相互に必要な接続を行うことにより得られる。TTSフロントエンド110はさらに、シラブル/ベクトル変換部130の出力からシラブル数を算出し、DBRNNの基本ユニットをそのシラブル数に基づいて複製・展開し、相互接続してDBRNN132を形成するための基本ユニット展開部136を含む。
中国語の場合、1文字が1シラブルを表す。したがってここでいうシラブルベクトルは文字ベクトルの一種と言うことができる。
シラブル/ベクトル変換部130及びDBRNN132の双方ともデータによる学習が必要である。シラブル/ベクトル変換部130は、プレーンテキスト60の各シラブルをGloVeベクトルに変換する際に変換テーブルを参照する。この変換テーブルが学習の対象になる。DBRNN132はディープニューラルネットワークの一種であり、そのパラメータを学習する必要がある。
本実施の形態では、音声合成システム100はさらに、シラブル/ベクトル変換部130の変換テーブルの学習を行うための変換テーブル学習部118と、DBRNN132の学習を行うためのDBRNN学習部120とを含む。
変換テーブル学習部118は、大規模中国語テキストコーパス142と、この大規模中国語テキストコーパス142を学習データとして、教師なし学習により中国語の各シラブルに対するGloVeベクトルを算出してシラブル/ベクトル変換テーブル(図2には図示せず)を生成するGloVeベクトル算出部140とを含む。
一方、DBRNN132の学習を行うDBRNN学習部120は、アノテート済の、それほど大量でないテキストを記憶したアノテート済中国語テキストコーパス146と、アノテート済中国語テキストコーパス146を用い、シラブル/ベクトル変換部130によるシラブル/ベクトル変換を利用してDBRNN132のパラメータの学習を教師あり学習により実行する学習実行部144とを含む。学習実行部144は、後述するように、DBRNN132の学習時に、プレーンテキスト122をシラブル/ベクトル変換部130に、テキストに付されたPOSラベル列124をDBRNN132に与えることにより、DBRNN132の教師あり学習を行う。
シラブルベクトルとして、本実施の形態ではワンホットベクトルではなく、GloVeベクトルを用いる。前掲の非特許文献3は単語をGloVeベクトルからなる単語ベクトルに変換する方法を提案している。その概略について図3を参照して説明する。図3を参照して、コーパスに出現する各単語のGloVeベクトルを算出するGloVeベクトル算出処理170は、予め単語に分割されたテキストを記憶した単語分割済テキストコーパス190から単語列を読出し、指定されたウィンドウサイズ196の範囲内での各単語対の共起頻度Xijからなる共起マトリクスを算出する共起マトリクス算出部192と、この共起マトリクスに対してバイリニア回帰を適用して以下に示すコスト関数を最小化することにより、各単語の単語ベクトルを算出するためのバイリニア回帰変換部194とを含む。
Figure 0007112075000001
以上が非特許文献3に記載された、単語に対するGloVeベクトルの算出方法の概略である。GloVeベクトルの算出式の導出方法等の詳細については非特許文献3の記載を参照されたい。
非特許文献3に記載されたGloVeベクトルの算出方法において、単語をシラブルに置換えると、シラブルに対してもGloVeベクトルが算出できることが分かる。本実施の形態では、このGloVeベクトルをシラブルベクトルとして使用する。特に中国語では、漢字1文字が1シラブルを表すので、形態素解析等を行うことなくシラブルに変換することができ、シラブルベクトルの算出が容易に行える。なお、本願発明で使用するシラブルベクトルはこのGloVeベクトルに限定されるわけではない。GloVeベクトルの算出と同様、シラブルの共起関係に基づいて生成された意味的ベクトル空間内で定義されるベクトルであればどのようなものでもよい。ただし、DBRNNを使用する関係上、このベクトルは固定長であることが望ましい。
図4に、中国語のシラブルベクトルを算出し、シラブル/ベクトル変換テーブルを生成する変換テーブル学習部118の概略構成を示す。図4を参照して、変換テーブル学習部118は、中国語のテキストを大量に記憶した大規模中国語テキストコーパス142から文字列(シラブル列)を読出し、指定されたウィンドウサイズ236の範囲内でのシラブル対の共起頻度Xijを算出することにより共起マトリクスを算出し、共起マトリクス記憶部233に保存するための共起マトリクス算出部232と、共起マトリクス記憶部233に記憶された共起マトリクスに対して、前記した式(1)のコスト関数を最小化するようバイリニア回帰変換を行い、最終的なシラブルベクトル(上記した最終的な単語ベクトルと同様にシラブルiに対する2つのシラブルベクトルを合計したベクトル)を各シラブルに対して算出しシラブル/ベクトル変換テーブルを生成しシラブル/ベクトル変換テーブル記憶部126に保存するためのバイリニア回帰変換部234とを含む。なお、中国語では1文字が1シラブルを表すのでこのような処理が可能になる。
図5を参照して、シラブル/ベクトル変換部130は、変換テーブル学習部118により生成されたシラブル/ベクトル変換テーブル274を記憶するための、前述したシラブル/ベクトル変換テーブル記憶部126と、プレーンテキスト60及びプレーンテキスト122をそれぞれ受ける2つの入力を持ち、学習処理と音声合成パラメータの推定を行う推定処理とを切替える制御信号336にしたがって、学習処理時にはプレーンテキスト122を、推定処理時にはプレーンテキスト60を、それぞれ選択して出力するための選択部332とを含む。
シラブル/ベクトル変換部130はさらに、選択部332から変換対象のプレーンテキストを受信すると、当該テキストを各文字に分割し、各文字に対応するシラブルからなるシラブル列をシラブル/ベクトル変換テーブル274を参照してシラブルベクトル列134に変換し、図2に示すDBRNN132に出力するためのシラブル/ベクトルマッピング部330を含む。
図6を参照して、図2に示すDBRNN132は、学習時にはシラブル/ベクトル変換部130(図2及び図5を参照)からシラブルベクトル列134を、DBRNN学習部120(図2を参照)から当該シラブル列の言語学的特徴を表すPOSラベル列124をそれぞれ受け、POSラベル列124を教師信号として、POSラベル列124とDBRNN132の出力するラベル列112との誤差を用いた誤差逆伝播法によって係数パラメータを学習する。なお、POSラベルはワンホットベクトルで表現されており、誤差計算にもこのワンホットベクトルが用いられる。DBRNN132は言語学的特徴を推定する際には、シラブル/ベクトル変換部130からシラブルベクトル列を受けて言語学的特徴を表すラベル列112を音声合成装置114に出力する。
DBRNN132は、基本ユニット380と、基本ユニット380の複製である複数の基本ユニット382、…、384を含む。DBRNN132は実際にはプログラムにより実現されるが、シラブルベクトル列134に含まれるシラブル数に応じて基本ユニット380を必要数だけ複製して展開した上で相互接続したもので、各基本ユニットが1シラブルについての推定処理を担当する。したがって、シラブルベクトル列134の全体についての学習が同時に行われる。各基本ユニットの係数行列は、基本ユニット及び最終的なDBRNNの関数を規定するパラメータであるが、その値は全ての基本ユニットで同じである。この係数行列がDBRNNの学習の対象になる。学習時には、各基本ユニットの係数行列が同じであるという制約の下に係数行列を更新する。
なお、本実施の形態では、基本ユニット380は、入力層と、2つの隠れ層と、1つの出力層を含む。この構成は設計に応じて変更可能である。図6において基本ユニット380を例にとると、最も左側が入力層、その右が第1の隠れ層、その右が第2の隠れ層、最も右が出力層である。基本ユニット382、384等も同様である。図6においてノードを○で示しているが、この表示は図を簡略にするためのもので、実際にはこのノード内には以下に述べるように複数のニューロンが存在している。本実施の形態では、シラブルベクトルのサイズ(ベクトルの要素数、すなわち入力層の1ノード当たりのニューロン数)をv、隠れ層の1ノード当たりのニューロン数をn、出力層の1ノード当たりのニューロン数(ラベルの種類数、すなわち、ラベルを表すワンホットベクトルの要素数)をo、隠れ層の数をLとする。この図以後でも同様の図示を用いる。
以下、第1の隠れ層、一般的なi番目の隠れ層(i>1)、及び出力層の構成について図7、図8及び図9をそれぞれ参照して説明する。なお、入力層は図6の基本ユニット380等から明らかなように、入力されたベクトルxを第1の隠れ層の2つのノードの双方に入力する機能を持っている。図6では各基本ユニットは2つの隠れ層を持っているが、これには限定されない。各基本ユニットは3つ以上の隠れ層を持っていても良い。以下の説明では、t番目のシラブルを処理する基本ユニットの第1の隠れ層と、i番目(i>1)の隠れ層とについてその構成と入出力関係について説明する。
図7を参照して、t番目のシラブルを処理する基本ユニットの第1の隠れ層400は、第1のノード410及び第2のノード412を含む。
第1のノード410には、入力層からシラブルベクトルxが入力される。このシラブルベクトルxに対しては、係数行列(1)が乗じられる。この記法の内、記号「」は図及び各式において、その直後の文字の直上に記載されているものであって、シラブルベクトル列の先頭から末尾に向かって(順方向に)伝播する情報に関するものであることを示す。またこれ以後に使用する記号「」もまた図及び各式において、その直後の文字の直上に記載されているものであって、シラブルベクトル列の末尾から先頭に向かって(逆方向に)伝播する情報に関するものであることを示す。上記係数行列の記法の内、右肩の「(1)」はこの隠れ層が第1の隠れ層であることを示す。同様に、i>1の場合、右肩に「(i)」を付すものとする。
また、説明の便宜のため、基本ユニットの数(入力されるシラブルベクトルの数)をm、各基本ユニット内の隠れ層の数をLとする。
第1の隠れ層400の第1のノード410にはさらに、t-1番目の基本ユニットの第1の隠れ層400の第1のノード410からベクトルt-1 (1)が入力される。ベクトルt-1 (1)には係数ベクトル(1)が乗じられる。第1のノード410はこれら入力に所定の係数行列を乗じた結果の和を所定の活性化関数f()に入力し、その結果をベクトル (1)として出力する。
Figure 0007112075000002
第2のノード412には、第1のノード410と同様、入力層からシラブルベクトルxが入力される。このシラブルベクトルxに対しては、係数行列(1)が乗じられる。第2のノード410にはさらに、t+1番目の基本ユニットの第1の隠れ層400の第2のノード412からベクトルt+1 (1)が入力される。ベクトルt+1 (1)には係数ベクトル(1)が乗じられる。第2のノード412はこれら入力に各係数行列を乗じたものの和を第1のノード410と同じ活性化関数f()に入力し、その結果をベクトル (1)として出力する。
Figure 0007112075000003
なお、先頭の基本ユニット(t=1)の場合にはその前のユニットが存在せず、末尾の基本ユニット(t=m)の場合にはその次のユニットが存在しない。このような場合には、それら入力ベクトルの要素が全て0であるとして計算すればよい。
図8を参照して、i番目の隠れ層430は第1のノード440と第2のノード442とを含む。
第1のノード440は、t番目の基本ユニットのi-1番目の隠れ層のノード410の出力するベクトル (i-1)と、t-1番目の基本ユニットの第1のノード410の出力するベクトルt-1 (i)と、t番目の基本ユニットのi-1番目の隠れ層の第2のノード412の出力するベクトル (i-1)とを受け、これらにそれぞれ係数行列(i) →→(右下の「→→」は図面上の右向きの二重矢印を表し、この係数行列が隠れ層内を順方向に伝播する情報であることを示す。左向きの二重矢印も同じく係数行列が隠れ層内を逆方向に伝播するものであることを示す。)、(i)、及び(i) ←←をそれぞれ乗じたものの和を活性化関数f()に入力し、その結果をベクトル (i)として出力する。
Figure 0007112075000004
第2のノード442は、t番目の基本ユニットのi-1番目の隠れ層のノード410の出力するベクトル (i-1)と、t+1番目の基本ユニットの第2のノード412の出力するベクトルt+1 (i)と、t番目の基本ユニットのi-1番目の隠れ層の第2のノード412の出力するベクトル (i-1)との入力を受け、これらにそれぞれ係数行列(i) →→(i)、及び(i) ←←を乗じたものの和を活性化関数f()に入力し、その結果をベクトル (i)として出力する。
Figure 0007112075000005
図9を参照して、t番目の基本ユニットの出力層450はノード460を含む。
ノード460は、最後(L番目)の隠れ層の第1のノード440からベクトル (L)、ノード442からベクトル (L)をそれぞれ受け、これらにそれぞれ係数行列U及びUを乗じたものの和を活性化関数g()に適用してベクトルyを出力する。このベクトルyがt番目のシラブルのラベルを表す。
Figure 0007112075000006
活性化関数f()及びg()としては例えばハイパボリックタンジェント(tanh)、シグモイド関数、ステップ関数、ReLU等を用いることができる。
DBRNNを実現するためには、予め基本ユニットが保持する変数、及びそうした変数の間での演算、即ち相互接続等を規定した基本的オブジェクトをプログラムとして用意する。上記した各変数の内、シラブルベクトルのサイズv、出力層のサイズo、隠れ層の数L、及び各ノード内のニューロン数nはこの基本的オブジェクトの仕様として予め指定できる。以下に掲げる係数行列の要素及び各バイアスの値が学習対象である。
Figure 0007112075000007
隠れ層の数Lを定めれば、この係数行列及びバイアスの数は定まり、他の変数の値を代えても変化しない。
なお、これら係数行列のサイズは以下のとおりである。
(1):n×v、V(1):n×n
(i):n×n、V(i):n×n
U:o×n
<学習時のTTSフロントエンドの動作>
図4及び図5を参照して、シラブル/ベクトル変換テーブル274の学習時には、共起マトリクス算出部232が大規模中国語テキストコーパス142からテキストを読出して共起マトリクスを算出し、バイリニア回帰変換部234がバイリニア回帰変換により各文字(シラブル)に対応するシラブルベクトルを計算して、シラブルとシラブルベクトルとを対応付けてシラブル/ベクトル変換テーブル274に格納する。すなわち、シラブル/ベクトル変換テーブル274の学習は教師なし学習により行われる。このシラブル/ベクトル変換テーブル274は図4に示すシラブル/ベクトル変換テーブル記憶部126に記憶される。
図10を参照して、本実施の形態に係るTTSフロントエンド110のDBRNN132の学習時の動作について説明する。
図10を参照して、DBRNN132の学習時には、コンピュータ読取り可能なデータ形式で記憶装置(図示せず)にアノテート済中国語テキストコーパス146を準備する。アノテート済中国語テキストコーパス146は多数のPOSラベル付きテキスト470を含む。各POSラベル付きテキスト470は、中国語文字列であるプレーンテキスト480と、プレーンテキスト480の各文字(シラブル)に対応するPOSラベル列482との対である。DBRNN132の学習はアノテート済中国語テキストコーパス146を用いた教師あり学習で行われる。
DBRNN132の学習時には、図2に示す学習実行部144は、最初に基本的オブジェクトに関する情報を記憶装置から読出し、指定された変数の値にしたがってコンピュータの記憶領域に基本的オブジェクトを展開する。さらに、それら基本的オブジェクトのノードの間の接続関係、すなわちそれらの間の演算を上記した各式にしたがって定義する。各係数行列の各要素は所定の方法で初期化する。
学習実行部144はまず、図5に示す選択部332に対し、学習実行部144(図2参照)から与えられるプレーンテキスト122を選択するように選択部332に対して学習/推定の制御信号336を与える。
以下、学習実行部144は、POSラベル付きテキスト470の各々について以下の処理を実行する。すなわち、学習実行部144は、POSラベル付きテキスト470のプレーンテキスト480をシラブル/ベクトルマッピング部330に対してプレーンテキスト122として与える。シラブル/ベクトル変換部130はこのとき、プレーンテキスト480の文字数、即ちシラブル数を算出し、シラブル数にしたがってDBRNN132の基本ユニットをシラブル数と同じ数だけ複製する。この複製により、図7~図9に示したような基本ユニット同士の接続及び演算等も適宜定義される。
図5に示すシラブル/ベクトル変換部130の選択部332は、制御信号336にしたがってプレーンテキスト122を選択し、シラブル/ベクトルマッピング部330に与える。シラブル/ベクトルマッピング部330は、シラブル/ベクトル変換テーブル274を参照し、与えられたプレーンテキスト122の各文字(シラブル)をシラブルベクトルに変換し、シラブルベクトル列134をDBRNN132の入力に一度に与える。
シラブル/ベクトル変換部130はさらに、変換により得られたベクトル列をDBRNN132の入力に一度に与える。ベクトル列とDBRNN132の基本ユニットの数とは一致しているので、各ベクトルは対応する基本ユニットの入力層のノードに同時に与えられる。
一方、図2及び図6を参照して、学習実行部144は、POSラベル列482(図10参照)をDBRNN132の出力にPOSラベル列124として与える。このPOSラベル列124は教師データとしてDBRNN132の出力側に与えられる。POSラベル列124に含まれるPOSラベルの数は基本ユニットの数と一致している。DBRNN132は、現在の係数行列の値を用いて入力に対する演算を行い、結果のラベル列112を出力層から出力する。このラベル列112と、対応するPOSラベルの値との誤差を用い、通常の誤差逆伝播法を用いて誤差が少なくなる方向にDBRNN132の係数行列の各要素の値を更新する。
こうした動作を全てのPOSラベル付きテキスト470に対して行うことを所定の終了条件が成立するまで繰返す。この際、シラブル/ベクトルマッピング部330に入力されるシラブル数に応じて、DBRNN132を構成する基本ユニットの数を増減させる。こうした処理を行って、終了条件が成立したときの係数行列の各要素の値により基本ユニットが表す関数が定まる。すなわち、DBRNN132の学習が終わったことになる。
以上のように、まず大規模中国語テキストコーパス142を用いて教師なし学習によりシラブル/ベクトル変換テーブル274の学習を行い、さらにアノテート済中国語テキストコーパス146とシラブル/ベクトルマッピング部330とを用いた教師あり学習によりDBRNN132の学習を行う。
図11を参照して、学習実行部144を実現するコンピュータプログラムの制御構造について説明する。このプログラムは、まずDBRNN132の初期設定を行うステップ500と、アノテート済中国語テキストコーパス146を構成するDBに接続するステップ502と、アノテート済中国語テキストコーパス146に記憶されたPOSラベル付きテキスト470を対象に以下の処理506を所定回数繰返すステップ504と、ステップ504の処理が終了したときのDBRNN132の係数行列の各要素(パラメータ)を図示しない記憶装置に保存し処理を終了するステップ508とを含む。DBの各レコードは、図10に示すプレーンテキスト480とPOSラベル列482との対を記憶している。
処理506は、DBの各レコードに対して以下の処理522を実行するステップ520を含む。
処理522は、DBのレコードを読むステップ530と、レコード内のプレーンテキストをシラブル/ベクトル変換テーブル274を用いてシラブルベクトル列に変換するステップ531と、このレコードに対するラベル列をワンホットベクトルに変換するステップ532と、入力されたプレーンテキスト480の文字数を調べるステップ533と、ステップ533で判明した文字数だけ基本ユニットを複写・展開し、相互接続(ノード間の演算)を定義することでDBRNN132を生成するステップ534と、ステップ531で得られた各シラブルベクトルをDBRNN132の対応する基本ユニットの入力層に同時に入力するステップ536と、この入力に対するDBRNN132の出力するラベル列112と、POSラベル列482との誤差を用いた誤差逆伝播法により、DBRNN132の係数行列の更新を行うステップ538とを含む。この際、どの基本ユニットにおいても、対応する係数行列は同じ値をとる、という制約の下に誤差逆伝播法を適用する。なお、この実施の形態では各レコードについて誤差逆伝播によるパラメータの更新を多なっているが、いわゆるミニバッチ法を用いてもよいことはいうまでもない。
<推定時のTTSフロントエンド110の動作>
入力されるプレーンテキストからその言語学的特徴を推定する際には、図5に示す選択部332は、プレーンテキスト60を選択するように制御信号336により切換えられる。入力されるプレーンテキスト60はシラブル/ベクトルマッピング部330に与えられる。シラブル/ベクトルマッピング部330はこのプレーンテキスト60に含まれる各文字(シラブル)をシラブル/ベクトル変換テーブル274を参照してシラブルベクトルに変換し、シラブルベクトル列134を出力する。
図2を参照して、基本ユニット展開部136は、シラブル/ベクトル変換部130の出力に基づいて、その出力に含まれるシラブル数を算出し、基本ユニットをそのシラブル数だけ複製することによりDBRNN132を生成する。基本ユニットの構成は学習時と同一である。さらに、DBRNN132を形成する各基本ユニットの係数行列は、全基本ユニットを通じて共通である。
展開されたDBRNN132は、シラブルベクトル列134が入力されたことに応答して、その構成と係数行列とにより定まる演算を行って、各シラブルに対応する言語学的特徴を表すラベルからなるラベル列112を出力する。このラベル列112は音声合成装置114に与えられ、音声合成装置114によりラベル列により表される言語学的特徴を反映した発話信号116が生成される。
図12に、上記したTTSフロントエンド110をコンピュータとの協働により実現するためのコンピュータプログラムの制御構造をフローチャート形式で示す。このプログラムは、起動とともに、記憶装置上に基本ユニットのための記憶領域を確保し、係数行列を含めてそのパラメータを学習済の値に設定することで基本ユニットを初期化するステップ540と、入力文であるプレーンテキストを受けるステップ542と、このプレーンテキストに含まれる各文字(シラブル)をシラブル/ベクトル変換テーブル274を参照してシラブルベクトル列に変換するステップ544と、シラブルベクトル列に基づいてシラブル数を調べるステップ546とを含む。
このプログラムはさらに、ステップ546で調べたシラブル数に応じて、基本ユニットを複製・展開することでDBRNN132を生成するステップ548と、ステップ544で得られたシラブルベクトル列をDBRNN132の入力層に与えるステップ550とを含む。DBRNN132の入力層のノード数は、シラブル数と一致し、各シラブルベクトルは対応する基本ユニットの入力層のノードに与えられる。
このプログラムはさらに、ステップ550で与えられた入力に応じてDBRNN132が出力するラベル列を読出すステップ552と、読み出されたラベル列を出力するステップ554とを含む。
<本実施の形態の効果>
以上のように本実施の形態によれば、大量のテキストを含む大規模中国語テキストコーパス142を用いてシラブル/ベクトル変換テーブル274の学習を教師なし学習で行い、プレーンテキストをシラブルベクトルに変換する。さらに、アノテート済中国語テキストコーパス146を学習データとし、アノテート済のテキストをシラブル/ベクトル変換テーブル274を用いてシラブルベクトルに変換した後、DBRNN132の学習を教師あり学習により行う。このように教師なし学習と教師あり学習とを組合わせることにより、DBRNN学習部120によるDBRNN132の学習に用いるデータが比較的少量でも、DBRNN132の学習を最適化できる。また、シラブルベクトルとしてワンホットベクトルではなく、GloVeベクトルを用いるため、DBRNN132への入力により多くの情報が表現でき、DBRNN132によるラベル列の推定の精度を高めることができる。
[変形例]
第1の実施の形態は、POSラベル付けに関するものであった。しかし本発明はPOSラベル付けのみに適用可能なわけではない。
図13に、本発明を単語セグメンテーションに適用したときの、DBRNN132の学習方法を示す。図13を参照して、この場合にも、第1の実施の形態のシラブル/ベクトルマッピング部330をそのまま利用できる。異なるのは学習データである。第1の実施の形態のアノテート済中国語テキストコーパス146に代えて、単語セグメンテーションのためのアノテーションが付されたアノテート済中国語テキストコーパス560を用いる。アノテート済中国語テキストコーパス560は、複数の単語セグメンテーションラベル付きテキスト562を含む。各単語セグメンテーションラベル付きテキスト562は、中国語文字列であるプレーンテキスト570と、プレーンテキスト570の各文字(シラブル)に対応する単語セグメンテーションラベル列572との対である。図13に示す例では、ラベルとしてB、I、E、及びSが用いられている。それらの意味は以下のとおりである。
・B:単語の先頭
・I:単語内部
・E:単語の末尾
・S:単シラブルの単語
DBRNN132の学習は第1の実施の形態の場合と同様である。したがってここでは繰返さない。以下の変形例でも同様である。
図14に、テキスト/ピンイン変換の場合のDBRNN132の学習方法を示す。図14を参照して、この場合もシラブル/ベクトルマッピング部330をそのまま利用できる。異なるのは学習データである。この例では、ピンインラベルに関するアノテーションがされたアノテート済中国語テキストコーパス590を用いる。アノテート済中国語テキストコーパス590は、複数のピンインラベル列付きテキスト592を含む。各ピンインラベル列付きテキスト592は、中国語文字列であるプレーンテキスト600と、プレーンテキスト600の各文字(シラブル)に対応するピンインラベル列602との対である。
図15に、本発明をポーズブレーク位置の推定に適用したときの、DBRNN132の学習方法を示す。図15を参照して、この場合にも、第1の実施の形態のシラブル/ベクトルマッピング部330をそのまま利用できる。異なるのは学習データである。第1の実施の形態のアノテート済中国語テキストコーパス146に代えて、ポーズブレーク位置の推定のためのアノテーションが付されたアノテート済中国語テキストコーパス610を用いる。アノテート済中国語テキストコーパス610は、複数の、ポーズラベル付きテキスト612を含む。各ポーズラベル付きテキスト612は、中国語文字列であるプレーンテキスト620と、プレーンテキスト620の各文字(シラブル)に対応するポーズラベル列622との対である。図15に示す例では、ポーズラベル「0」はポーズなし、「Pau」がポーズ位置を示すラベルである。
[評価]
上記実施の形態を5つのタスクに適用することで、本願発明の効果について検証した。対象となるタスクは、Grapheme(書記素) to Phoneme(音素)(G2P)、単語セグメンテーション、POSラベル付け、Phraseチャンク推定、及びポーズブレーク推定である。これらの内G2Pは各シラブルからピンインを推定するタスクである。各タスクと、それらタスクに用いた訓練セット、開発セット及び評価セットの規模、及び出力のサイズを図16に表形式で示す。なお、活性化関数はG2P、POSラベル付け、及びPhraseチャンク推定ではtanhを用い、単語セグメンテーション及びポーズブレーク推定ではReLUを用いた。
評価のため、上記実施の形態に係るDBRNNモデルと、従来技術で用いられていたCRFモデルとによる各タスクでの出力の精度を、CRFモデルをベースラインとして実験を行った。各タスクにおけるDBRNNモデルで用いたベクトルサイズ、隠れ層数、1基本ユニットあたりのニューロン数、及び精度を、ベースラインの精度と比較して図17に表形式で示す。なお、この評価では、LDC Treebank及び出願人が準備した中国語の発話コーパスを用いた。テキストはシラブルに分割した。中国語では1文字が1シラブルを表す。
図17から分かるように、DBRNNモデルはコンパクトに実装できる。この例では、シラブルベクトルは50次元、隠れ層は2層、順方向及び逆方向のいずれでも各隠れ層の各ノードのニューロン数が100という構成のDBRNNを用いている。
特にこの例では、G2Pにおいては上記実施の形態に係るDBRNNモデルは極めて高い精度を示した。シラブルベクトルが50次元であること、及びピンインサイズが1390であることを考えると、精度99.05はほぼ完全な結果と言える。Phraseチャンク推定及びポーズブレーク推定でもベースラインと比較して高い結果が得られている。
[パラメータに関する考察]
図18及び図19に、ベクトルサイズとニューロン数とがDBRNNモデルによるPOSラベル付けとポーズブレーク推定の精度にどのような影響を与えるかについて行った実験結果をグラフ形式で示す。これらから分かるように、一般的には、ベクトルサイズが大きくなると精度は上がるが、その影響は比較的小さい。計算に要する時間とのトレードオフに応じて適切なベクトルサイズを選択すればよい。一般的には50~100次元でも十分な性能が得られる。
GloVeベクトルを用いることで、文脈中におけるシラブルの意味を効率的に表すことができる。これは、図17のG2Pタスクの結果により明らかである。50次元のGloVeを用いたDBRNNモデルにより、ピンインが1390種類あるという状況で、各シラブルに対して99%以上の精度で正しいピンインを選択できた。したがって、音声合成の言語学的特徴の推定において、GloVeベクトルをDBRNNモデルと組合わせて用いることにより、精度の高い音声合成を行うことが可能になる。
[コンピュータによる実現]
本発明の実施の形態に係るTTSフロントエンド110、変換テーブル学習部118、DBRNN学習部120、音声合成システム100、及びDBRNN132の学習方法は、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。図20はこのコンピュータシステム630の外観を示し、図21はコンピュータシステム630の内部構成を示す。
図20を参照して、このコンピュータシステム630は、メモリポート652及びDVD(Digital Versatile Disk)ドライブ650を有するコンピュータ640と、キーボード646と、マウス648と、モニタ642とを含む。
図21を参照して、コンピュータ640は、メモリポート652及びDVDドライブ650に加えて、CPU(中央処理装置)656及びGPGPU(汎用画像処理装置)657と、CPU656、GPGPU657、メモリポート652及びDVDドライブ650に接続されたバス666と、ブートプログラム等を記憶する読出専用メモリ(ROM)658と、バス666に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するランダムアクセスメモリ(RAM)660と、ハードディスク654を含む。コンピュータシステム630はさらに、他端末との通信を可能とするネットワーク668への接続を提供するネットワークインターフェイス(I/F)644と、発話信号を音声信号として出力する機能を持つ音声I/F670とを含む。
コンピュータシステム630を上記した実施の形態に係る音声合成システム100、TTSフロントエンド110、変換テーブル学習部118及びDBRNN学習部120の各機能部として機能させるためのコンピュータプログラムは、DVDドライブ650又はメモリポート652に装着されるDVD662又はリムーバブルメモリ664に記憶され、さらにハードディスク654に転送される。又は、プログラムはネットワーク668を通じてコンピュータ640に送信されハードディスク654に記憶されてもよい。プログラムは実行の際にRAM660にロードされる。DVD662から、リムーバブルメモリ664から又はネットワーク668を介して、直接にRAM660にプログラムをロードしてもよい。
このプログラムは、コンピュータ640を、上記実施の形態に係る音声合成システム100、TTSフロントエンド110、変換テーブル学習部118及びDBRNN学習部120として機能させるための複数の命令からなる命令列を含む。DBRNN132及びシラブル/ベクトル変換テーブル274の学習における数値演算処理は、CPU656及びGPGPU657を用いて行う(CPU656のみを用いてもよいがGPGPU657を用いる方が高速である。)。コンピュータ640にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ640上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ640にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
〔第2の実施の形態〕
[構成]
上記第1の実施の形態では、中国語のように、1文字が1シラブルの言語を対象にしている。しかし、本発明はそのような実施の形態には限定されず、機能を追加することにより、1文字で複数の音素からなる読みに対応する言語であって、かつそのような読みが複数個あるような言語にも適用できる。そうした言語の一例は日本語である。
図22を参照して、日本語では、「1月17日の午前」という文字列の内、例えば「月」という文字について、「ツキ」、「ゲツ」、「ガツ」等の複数通りの読みが存在している。そのほかの文字についても同様である。そのような言語においては、学習データを以下のように作成することで第1の実施の形態のTTSフロントエンドと同様の処理を行うことができる。
図23を参照して、上記した「1月17日の午前」という文字列の内、先頭の「1」はこの例では「イチ」と読むが、その他に前後の文字により、「ジュウ」、「イッ」、「ヒャク」、「セン」、「ジュ」、「ジュッ」、「ワン」、「ツイ」、「イッセン」、「ト」、「イチマン」、「テン」、「イチオク」、「ヒャッ」等、様々な読みを持つ。他の各文字についても図23に示すうようにほとんどが複数通りの読みを持つ。
本実施の形態では、各文字について、読みをリスト化したものを音素タグとして各文字に付与したものを予め作成しておく。例えば日本語の場合には、学習データとして文字列とその文字列の読みを表す表記としてのカタカナ列とが与えられると、この音素タグを参照し、半自動処理で各文字にその読みを表すラベルを割当てる。この処理を本実施の形態では文字と読みとのアライメントと呼ぶ。ラベルとしては、その言語において通常用いられる表現(日本語におけるカタカナ、中国語におけるピンイン等)を用いることができる。
図22に示す文字列のアライメントの例を図23に示す。図23に示す各文字の音素タグの内、下線を引いたものがその文字の読みとなる。このアライメントにより、各文字がどのような読みになっているかが分かる。なお、図23において各読みの後ろにカッコ付きで示した数は、後述するようにTTSフロントエンドを実施する際に使用した学習データ中でその読みが出現した回数を示す。図23において、各音素タグは読みと学習データ中の出現頻度とを含む。学習データ中の出現頻度を持つことにより、後述するようにDBRNNの学習段階において、例えば読みの列の候補として読みの出現頻度の合計が最も大きな経路を探すことにより、適切なアライメントを特定できる。
学習データに対するアライメントが完成すると、それを用いて第1の実施の形態におけると同様に、入力された文字列中の各文字に対し、その読みを推定するようにDBRNNの学習を行うことができる。なお、第1の実施の形態でも述べたとおり、中国語等の場合には、各文字とその読みとが1対1に対応しているため、このようなアライメント処理は単純な処理で実現できる。韓国語も同様である。
さらに本実施の形態では、学習データとして複数の言語からなる学習データを用いることで複数言語に共通して使用できるTTSフロントエンドを提供できる。この第2の実施の形態はそのようなTTSフロントエンドに関する。
図24に、複数言語における文字と読みのアライメントの例を示す。図24に示すように、本実施の形態では、中国語、韓国語のように1文字が1シラブルに対応するような言語だけではなく、1文字が複数のシラブルからなる読みを持つことがあり、さらに1つの文字が複数通りの読み方を持つような日本語、文字と読みとの順序が逆転することがあるタイ語等からなる複数種類の言語について単一で音声合成のための読みラベル列に変換処理できるTTSフロントエンドを実現する。
本実施の形態でも、第1の実施の形態と同様にGloVeベクトルを用いる。しかし、第1の実施の形態ではシラブルに着目していたのに対し、本実施の形態では発音のシラブルではなく、発音に対応する文字に着目してベクトル化する。したがって、第1の実施の形態で使用していたベクトルをGlobal Syllable Vector(GSV)と呼び、この第2の実施の形態ではGlobal Character Vector(GCV)と読んで区別する。ただし両者は全く同様に算出されるものであり、その実体は同じである。もちろん、第1の実施の形態と第2の実施の形態とでは学習データが異なるので、仮に要素数を同じに設定しても同じ文字に対するベクトルの値は互いに異なるものとなる。
図25にこの第2の実施の形態に係る音声合成システム700の概略構成を示す。図25を参照してこの音声合成システム700は、プレーンテキスト702を受けて読みを表すラベル列712を出力するTTSフロントエンド710と、TTSフロントエンド710から出力されるラベル列712に基づく音声合成を行い、発話信号716を出力するための音声合成装置714と、TTSフロントエンド710がテキストの各文字をGCVベクトルに変換する際に参照するGCVベクトル変換テーブルを図24に示すようにアライメントされた多言語の学習データから生成するための変換テーブル学習部718と、変換テーブル学習部718が変換テーブルの学習に用いた多言語の学習データ(アライメントがされたもの)を使用してTTSフロントエンド710が持つDBRNNの学習を行うためのDBRNN学習部720と、変換テーブル学習部718がGCVベクトル変換テーブルに使用した多言語の学習データの各々について、文字と読みとのアライメントを行うためのアライメント処理部750と、アライメント処理部750が学習データのアライメントを行う際に参照する、文字に音素タグが付された文字・音素タグリストを記憶するための文字・音素タグリスト記憶部752とを含む。
中国語と韓国語ではアライメント処理部750が行うアライメントは単純である。日本語及びタイ語では制約付きアライメントを用いて、以下に述べるような半自動的アライメントを行なう。
・各文字に対する読みの集合を作成し、コーパス内における文字-読みの生成数を計数する。
・ノードが文字-読みとなるようなツリーを以下のように形成し、文字と読みとをアライメントする
-文字―読みの集合を用いてツリーを生成する。
-単語の読みを用いてこのツリーの刈り込みを行う
-もしもツリーが形成できないときは新たな文字-読みを作成し、読みの集合に加える。
・単語の読みの出現頻度の合計が最大となるような経路をアライメントとして選択する。文字・音素タグリストに読みの出現頻度を記録しておくのはこのためである。
TTSフロントエンド710は、GCVベクトル変換テーブルを用いてプレーンテキスト702の各文字をGCVベクトルに変換してGCVベクトル列734を出力するための文字/GCVベクトル変換部730と、GCVベクトル列734からラベル列712を出力するよう学習を行ったDBRNN732と、GCVベクトル列734に含まれる文字列を検出し、DBRNN732の基礎となる基本ユニットを文字の数だけ複写し展開し、ノード間の接続を行うための基本ユニット展開部736とを含む。学習では基本ユニットのパラメータを学習する。推定処理では同じ基本ユニットを文字数だけ複写することで、同じ基本ユニットを文字数だけ結合したDBRNN732を生成する。なお、文字/GCVベクトル変換部730は、使用する変換テーブルが異なるだけで、その他の機能は第1の実施の形態に係るシラブル/ベクトル変換部130と実質的に同じである。DBRNN732は、隠れ層の数を除き第1の実施の形態のDBRNN132と同じ構成である。また基本ユニット展開部736は、展開する対象となる基本ユニットが第1の実施の形態における基本ユニットの構成と異なる点を除き、第1の実施の形態の基本ユニット展開部736と実質的に同じである。
変換テーブル学習部718は、前述した4言語からなる大規模多言語テキストプールを記憶する大規模多言語テキストプール記憶部742と、大規模多言語テキストプール記憶部742に記憶された大規模多言語テキストプールの各文に含まれる文字列から文字/GCVベクトル変換テーブルを生成するためのGCVベクトル算出部740とを含む。なお、多言語テキストプールは後述するように各言語のコーパスを混合して得られるものである。各言語のコーパスは多数の文を含む。各文には、その文の読みが付されているが文字との間のアライメントは行われていない。またこの場合の読みは、それぞれの言語に応じた読みを表すタグ(日本語ならカタカナタグ、タイ語なら国際音声記号(IPA)タグ、中国語ならピンインタグ、韓国語には子音+母音+コーダの形のタグ)で表されている。
変換テーブル学習部718は、使用するテキストコーパスが単一言語ではなく多言語のコーパスである点を除き、第1の実施の形態の変換テーブル学習部718と同じ機能を持つ。すなわち変換テーブル学習部718内のGCVベクトル算出部740の機能は第1の実施の形態に係るGloVeベクトル算出部140の機能と実質的に同一である。
DBRNN学習部720は、大規模多言語テキストプール記憶部742に記憶された多言語テキストプール内の各文がアライメントされたものからなるアライメント済多言語テキストコーパスを記憶するためのアライメント済多言語テキストコーパス記憶部746と、アライメント済多言語テキストコーパス記憶部746に記憶されたアライメント済みテキストコーパスを学習データとしてDBRNN732の学習を行うための学習実行部744とを含む。学習実行部744の機能は、第1の実施の形態に係る学習実行部144の機能と実質的に同一である。ただし、学習データが異なるので、この学習により得られるDBRNN732の機能は第1の実施の形態に係るDBRNN732の機能とは異なる。
アライメント済多言語テキストコーパス記憶部746に記憶されるアライメント済多言語テキストコーパスは、テキストに含まれる各文字に、その文字の読みを表すラベルが付されたものと理解できる。
文字・音素タグリスト記憶部752は、図23に示したように、1文字で複数通りの読みを持つ文字について、その文字と読みを表すラベルとの組合わせを記憶している。この記憶は、文字の音素タグを構成する複数の読みを学習データにおけるその頻度とともにリスト形式で格納するようにして行われる。アライメント処理部750は、文字・音素タグリスト記憶部752に記憶された文字・音素タグリストを用い、大規模多言語テキストプール記憶部742に記憶された各文について、その文の各文字とその読みとをアライメントし各文字にその読みを表すラベルを付す。各文字と読みとがアライメントされた文はアライメント済多言語テキストコーパス記憶部746に記憶される。
図26を参照して、GCVベクトル算出部740は、前述したように第1の実施の形態のGCVベクトル算出部740と実質的に同じ構成である。図26に示すように、大規模多言語テキストプール記憶部742は、大規模日本語テキストコーパス770、大規模タイ語テキストコーパス772、大規模中国語テキストコーパス774、及び大規模韓国語テキストコーパスを統合した大規模多言語テキストプールを記憶する。
GCVベクトル算出部740は、単語の共起を検査する範囲を指定するウィンドウサイズ768を受けてこの大規模テキストコーパス内で、指定されたウィンドウサイズ内で共起する単語の組合わせの頻度を算出し共起マトリクスを算出するための共起マトリクス算出部762と、共起マトリクス算出部762により算出された共起マトリクスを記憶するための共起マトリクス記憶部764と、共起マトリクス記憶部764に記憶された共起マトリクスに対してバイリニア回帰変換を行ってGCVベクトル変換テーブルを算出するためのバイリニア回帰変換部766とを含む。バイリニア回帰変換部766により算出されたGCVベクトル変換テーブルはGCVベクトル変換テーブル記憶部810に記憶され、図25に示す文字/GCVベクトル変換部730により使用される。図27に共起マトリクスの例を示し、図28にGCVベクトル変換テーブルの例を示す。
図29を参照して、文字/GCVベクトル変換部730は、ランタイム時(推定処理時)の入力であるプレーンテキスト702を受ける第1の入力と、学習時の入力である、DBRNN学習部720からの学習データのプレーンテキストを受ける第2の入力とを持ち、学習時と推定処理とを指定する制御信号800に応答して、学習時にはDBRNN学習部720からのプレーンテキスト722を、推定処理時には入力されたプレーンテキスト702を選択して出力するための選択部802と、選択部802が出力するプレーンテキストに含まれる各文字を、GCVベクトル変換テーブル記憶部810に記憶された文字/GCVベクトル変換テーブル812を用いてGCVベクトルに変換してGCVベクトル列734を出力するための文字/GCVベクトルマッピング部804とを含む。
図30に、この第2の実施の形態で使用するDBRNN732の学習の概略構成を示す。このDBRNN732は、隠れ層の数が2であることを除き、第1の実施の形態に係るDBRNN132と同じ構成である。すなわち、学習時には、展開された後のこのDBRNN732は、入力されるプレーンテキストに含まれる各文字がエンコーダ(図29に示す文字/GCVベクトルマッピング部804)により変換されたGCVベクトルを受ける入力層と、2つの隠れ層と、隠れ層の次に設けられた出力層とを含む。学習時には、出力層の各出力となるベクトルと、文字に対する読みを表すワンホットベクトル(ここでは読みの数だけの要素を持ち、該当する読みの要素の値が1、それ以外の要素の値が0となるベクトル)とを用いて誤差逆伝播法によりDBRNN732のパラメータを調整する。
図31に、この第2の実施の形態に係る音声合成システム700の学習を行うためのプログラムの制御構造をフローチャート形式で示す。図31を参照して、このプログラムは、DBRNN732の基本ユニットの初期値によりDBRNN732を初期化するステップ830と、アライメント済多言語テキストコーパスを構成するDB(図25のアライメント済多言語テキストコーパス記憶部746)に接続するステップ832と、アライメント済多言語テキストコーパスに記憶されたアライメント済多言語テキストを対象に以下の処理836を所定回数繰返すステップ834と、ステップ834の処理が終了したときのDBRNN732の係数行列の各要素(パラメータ)を図示しない記憶装置に保存し処理を終了するステップ838とを含む。DBの各レコードは、図23に示すようなプレーンテキストと対応する読みとの対を記憶している。
処理836は、DBの各レコードに対して以下の処理852を実行するステップ850を含む
処理852は、DBのレコードを読むステップ860と、レコード内のプレーンテキストを文字/GCVベクトル変換テーブル812を用いてGCVベクトル列に変換するステップ861と、このレコードに対する読みのラベル列をワンホットベクトルに変換するステップ862と、プレーンテキストの文字数を調べるステップ863と、ステップ863で判明した文字数だけ基本ユニットを複写・展開し、相互接続(ノード間の演算)を定義することでDBRNN732を生成するステップ864と、ステップ861で得られた各GCVベクトルをDBRNN732の対応する基本ユニットの入力層にそれぞれ入力するステップ866と、この入力に対するDBRNN732の出力するラベルを示すベクトル列と、入力された読みを示すラベル列との誤差を用いた誤差逆伝播法により、DBRNN732の係数行列の更新を行うステップ868とを含む。この際、DBRNN732を構成する各基本ユニットは同じものであることを前提に誤差逆伝播法を適用する。この実施の形態でも、この処理にミニバッチ法を用いてもよいことはいうまでもない。
この図31を第1の実施の形態における学習のためのプログラムのフローチャート(図11)と比較すると、全体の流れは全く同じであることがわかる。両者は、使用する情報が異なるという点だけで異なり、実質的に同一である。
図32に、この第2の実施の形態に係るTTSフロントエンド710の推定時の動作をコンピュータとの協働により実現するためのプログラムの制御構造をフローチャート形式で示す。図32を参照して、このプログラムは、起動とともに、記憶装置上に基本ユニットのための記憶領域を確保し、係数行列を含めてそのパラメータを学習済の値に設定することで基本ユニットを初期化するステップ870と、入力文であるプレーンテキストを受けるステップ872と、このプレーンテキストに含まれる各文字を文字/GCVベクトル変換テーブル812を参照してGCVベクトル列734に変換するステップ874と、入力されたプレーンテキストに含まれる文字数を調べるステップ876とを含む。
このプログラムはさらに、ステップ876で調べた文字数に応じて、基本ユニットを複製・展開することでDBRNN732を生成するステップ878と、ステップ874で得られたGCVベクトル列734をDBRNN732の入力層に与えるステップ880とを含む。DBRNN732の入力層のノード数は文字数と一致し、各GCVベクトルは対応する基本ユニットの入力層のノードに与えられる。
このプログラムはさらに、ステップ880で与えられた入力に応じてDBRNN732が出力するワンホットベクトル列を読出すステップ882と、読み出されたワンホットベクトルをデコードし対応する読み(音素)列に変換するステップ884と、ステップ884で得られた読み列を出力して処理を終了するステップ886とを含む。
図32を図12と比較すると分かるように、本実施の形態における推定のためのプログラム構造は、図12に示す第1の実施の形態のものと実質的に同様である。使用するベクトルがGCVベクトルである点で両者は異なるが、第1の実施の形態で使用したGSVベクトルと第2の実施の形態で使用したGCVベクトルとは、実質的に同一と考えて良い。またDBRNN732を用いて推定処理も、出力が読みを表すワンホットベクトルである点を除き、第1のものと同様である。もちろん、学習データが異なるので両者の具体的な動きは異なるが、基本的にはTTSフロントエンド710は第1の実施の形態に係るTTSフロントエンド110と同様に動作する。
なお、上記した実施の形態では、4言語を対象としているが、原理的には単言語も含めて様々な数の言語に対して適用できることは明らかである。
[動作]
この第2の実施の形態に係る音声合成システム700のTTSフロントエンド710は、学習時、及び推定時のいずれにおいても実質的に第1の実施の形態に係るTTSフロントエンド110と同様に動作する。ただし、学習時には大規模多言語テキストプール記憶部742に記憶された多言語テキストプールの各文と読みとの対に対し、アライメント処理部750が文字・音素タグリスト記憶部752に記憶された文字・音素タグリストを用いてアライメントを行う点が第1の実施の形態と異なる。このアライメントは、各文の各文字に対し、読みの一部を対応付けしてそのラベルを付すという処理である。前述したとおり、中国語と韓国語ではこのアライメントは単純であり、日本語及びタイ語では制約付きアライメントを用いて半自動的アライメントを行なう。なお、この実施の形態では半自動的アライメントを行っているが、原理的にはアライメントを人手で行っても良いことはいうまでもない。
[評価]
―設定―
上記第2の実施の形態に係るTTSフロントエンド710及び音声合成システム700の効果について実験により検証した。対象となるタスクはG2Pである。G2Pとは各文字からその文字の読みを推定するタスクである。このタスクに用いた訓練セット、開発セット及び評価(テスト)セットの規模を図33に表形式で示す。図33を参照して、例えばタイ語の学習セットは文が7500文及び38000単語を含み、開発セットは1000文及び1000単語を含み、テストセットは1000文及び1000単語を含む。日本語、韓国語及び中国語についても同様の形で表現してある。これらとは別に、非正規化語に対するテキストについてのG2Pを評価するために、日本語の5000文からなるテストセットも準備した。各文は1以上の非正規化語(数字又はアルファベット列)を含んでいる。なお、ここでの単語の正規化とは、例えば数字を単に数字として読むのではなく、日本語として通常採用される読み方に読み替えることをいう。例えば「1000」を「イチレイレイレイ」ではなく「イッセン」に読み替えるような処理である。音声合成装置では、入力に対して予め正規化ができていないと正しい処理ができない。そのため、TTSフロントエンドで正規化が正確に行えるかどうかは大きな問題である。
訓練データのコーパスは、4言語の、UTF-8によりエンコードされた5億文字からなる大規模テキストコーパスである。このコーパスを用い、20文字というウィンドウを用いて、言語独立なGCV(2言語以上の単語を用いてGCVベクトル変換を学習)、及び言語依存のGCV(単言語を用いてGCVベクトル変換を学習)を実現した。以下では、言語独立なものをLICと呼び、言語依存なものをLDCと呼ぶ。
実験では、GCVベクトルとして要素数50、100、200、300及び512としたものを用いた。コーパス中の文字数(文字種類)は合計で13,700であった。
―文字と読みのアライメント─
図33に示す学習データセットについては、ネイティブスピーカによる発音チェックを単語レベルで行っておいた。DBRNNの訓練には、文字と読みとの間のアライメントを前述の方法により行った。前述したとおり、中国語と韓国語ではこのアライメントは単純である。日本語及びタイ語では制約付きアライメントを用いて半自動的アライメントを行った。
このアライメントの結果、我々は、タイ語では623の別個の読みを取得し、日本語では2197、韓国語では1916、中国語では1452の読みを取得した。タイ語において、G2P変換を行った後に音素を復元し音素列からシラブルを決定するために、各子音及び図24に示すようにクロスしたリンクを持つ母音にシラブル内におけるその位置(先頭、次、及び末尾)を示すラベルを付した。トーン記号に対しては特定のラベルを付した。
-ハイパーパラメータ-
DBRNNを以下のようなハイパーパラメータを用いて訓練した。
・入力層のノード数:GCVサイズ
・出力層のノード数:読みを表すラベルの数
・隠れ層の数:2
・隠れ層のノード数:50、100、150及び200
・固定したモメンタム(0.9)による確率的勾配効果法で学習率の低いもの(0.00001)を使用
・ミニバッチのサイズ:20サンプル(文又は単語)
・最大エポック数:2000
これらハイパーパラメータを用いて開発セットにより性能を測定し、最もよい性能を示したものを評価すべき最終的なモデルとした。
-比較例-
比較例として、従来のTTSフロントエンドにおける形態素解析に広く用いられる、辞書を用いた技術であるMeCabによるものをベースラインとした。MeCabについても第2の実施の形態で使用した図33に示す学習データセットを用いて訓練した。
-G2Pモデルの略称-
実験結果を示す図では以下のような略称を用いる。
・MoG2P:LDC及びLICによる単言語G2P
・MuG2P-b:日本語及び中国語に関するバイリンガルG2P
・MuG2P-t:中国語、韓国語、及びタイ語による3言語G2P
・Mec-x:x×データセットサイズのサンプルにより訓練したMeCabによるG2Pモデル
・LIC-x:Mec―xの訓練に用いたものと同じサンプルにより訓練したLIC-MoGPモデル。
ここで、「x」は、全学習データセットに対する学習データセットの割合である。xの値として、全言語に対して1を採用し、さらにタイ語、日本語及び韓国語については1/2、1/4及び1/8も採用した。
-結果-
上記実験の結果を図34~図37に示す。以下の説明では、特に注記がない限り、DBRNNの隠れ層は100個の隠れノードを持ち、GCVサイズは300である。
・図34から、MoG2Pが非常に高い性能を示したことが分かる。タイ語では文字から読みへの変換精度は99.18%であった。同様に、日本語では98.77%、韓国語では97.74%、中国語では99.32%であった。
・図35を参照して、MeCabによる手法と比較すると本実施の形態ではシラブル誤り率では言語によって27%~90%、単語誤り率では17.7%~90%という性能向上が見られた。
・MuG2Pもまた高い性能を示した。4言語全ての文字-読みタグ精度で97.5%以上という高性能を示した(図34)。しかしこの結果は、図34から分かるとおりMoG2Pと比較するとやや低い。
・図34からは、未知の読み(OOT)がMuG2Pでいくらか存在することが分かる。しかしMuG2P-t(日本語、韓国語及びタイ語)では言語にもよるが0.03%未満である。日本語及び中国語のMuG2Pでは、OOTは0.008%未満であった。
・図35及び図36を参照して、GCVを用いたG2PはMeCabによるG2Pと比較して、より頑健であること、特に学習データが制限されているときにも高い精度を保つことがわかる。MeCabを用いた手法では発音辞書を用いるため、学習データ内で使用可能な単語の影響を受けやすいと考えられる。
・図37を参照して、日本語の正規化されていない単語についてもMoG2Pでは80%程度の変換精度を得ることができた。正規化されていない表現について少し調べて見たところ、日付を表す数値についての変換は基本的に正確であった。それほど出現しない省略語(「SPAM」等)については比較的誤りが多く、また3文字を超える長さの数字ではG2P変換により中間の「セン(千)」、「ヒャク(百)」等が省略されてしまうことがあることが判明した。
<本実施の形態の効果>
以上のように本実施の形態によれば、大量のテキストを含む大規模多言語テキストコーパスを用いて文字/GCVベクトル変換テーブルの学習を教師なし学習で行い、この変換テーブルを用いてプレーンテキストの各文字をGCVベクトルに変換できる。さらに、テキストに読みが付された文からなるコーパスを学習データとし、テキストの各文字に対してその読みをアライメントする。アライメント済のテキストを学習データとして、文字とその読みとの対応付に関するDBRNNの学習を教師あり学習により行う。このように教師なし学習と教師あり学習とを組合わせることにより、DBRNN132の学習に用いるデータが比較的少量でも、DBRNNの学習を最適化し、頑健な文字/読みの変換を行える。また、GCVベクトルはワンホットベクトルよりはるかに少ない次元数であり、DBRNNへの入力がより効率的になり、DBRNNによるラベル列の推定の精度を高めることができる。
また複数言語を用いて学習をした場合、それら言語のテキストが混在した入力に対しても、高い精度で正しい読みへの変換を行うことが可能になる。これから、複数言語の文を含むテキストは増加すると考えられ、そうしたテキストについて高い精度で分かりやすい音声合成を行えるようになる。
[第2の実施の形態の変形例]
上記した第2の実施の形態では、大規模多言語テキストコーパスには、複数言語のテキストが混在している。しかし、DBRNNの出力には、テキストコーパスで各言語の読みに依存した読みのラベル列が得られるという問題がある。例えば日本語ではカタカナ列が得られ、タイ語ではIPA列が得られ、中国語ではピンイン列が得られ、韓国語では子音+母音+コーダという形で読みが得られる。そのため、音声合成ではそれら各言語の読みの表現に対応した音声合成機能を準備しなければならないという問題がある。
そこで、図38に示すように、例えば学習に用いる多言語コーパスの各文の読みとして、IPAタグを共通に用いることが考えられる。
このようにIPAタグを共通に用いたとしても、文字/GCVベクトル変換テーブルの学習方法も、DBRNNの学習方法も第2の実施の形態をそのまま利用できる。しかも、推定時のDBRNNの出力には、言語にかかわらずIPA列が得られる。その結果、音声合成装置としては、IPA列から音声合成を行う機能を備えたもののみを用いることができる。すなわち、音声合成装置が必要とするリソースを最小限にし、効率的な音声合成を行えるという効果がある。また第2の実施の形態と比してIPA列の種類の方が少ないため、DBRNNの学習が安定化するという効果も得られる。
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
50、100、700 音声合成システム
60、122、480、570、600、620、702、722 プレーンテキスト
62、110、710 TTSフロントエンド
64、112、712 ラベル列
66、114、714 音声合成装置
68、116、716 発話信号
70 教師あり学習
72 アノテート済テキストコーパス
80 形態素解析エンジン
82 言語モデル記憶部
118、718 変換テーブル学習部
120、720 DBRNN学習部
124、482 POSラベル列
130 シラブル/ベクトル変換部
132、732 DBRNN
134 シラブルベクトル列
136、736 基本ユニット展開部
140 GloVeベクトル算出部
142 大規模中国語テキストコーパス
144、744 学習実行部
146、560、590、610 アノテート済中国語テキストコーパス
170 GloVeベクトル算出処理
190 単語分割済テキストコーパス
192、232、762 共起マトリクス算出部
194、234、766 バイリニア回帰変換部
196、236、768 ウィンドウサイズ
274 シラブル/ベクトル変換テーブル
330 シラブル/ベクトルマッピング部
332、802 選択部
336、800 制御信号
380、382、384 基本ユニット
400 第1の隠れ層
410、440 第1のノード
412、442 第2のノード
430 i番目の隠れ層
460 ノード
470 POSラベル付きテキスト
562 単語セグメンテーションラベル付きテキスト
572 単語セグメンテーションラベル列
592 ピンインラベル列付きテキスト
602 ピンインラベル列
612 ポーズラベル付きテキスト
622 ポーズラベル列
730 文字/GCVベクトル変換部
734 GCVベクトル列
740 GCVベクトル算出部
742 大規模多言語テキストプール記憶部
746 アライメント済多言語テキストコーパス記憶部
750 アライメント処理部
752 文字・音素タグリスト記憶部
770 大規模日本語テキストコーパス
772 大規模タイ語テキストコーパス
774 大規模中国語テキストコーパス
776 大規模韓国語テキストコーパス
804 文字/GCVベクトルマッピング部
810 GCVベクトル変換テーブル記憶部
812 文字/GCVベクトル変換テーブル

Claims (6)

  1. コンピュータが、ディープ双方向リカレントニューラルネットワーク(DBRNN)を生成する基本となる、予め設計されたリカレントニューラルネットワーク(RNN)からなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータの初期値を記憶するステップと、
    コンピュータが、前記DBRNNの学習のため、各々が、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかによりアノテートされた複数のアノテート済文字列を記憶したデータベースに接続するステップと、
    コンピュータが、前記複数のアノテート済文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、
    コンピュータが、前記複数のアノテート済文字列から生成された前記文字ベクトル列と、当該文字ベクトル列に対応するラベル列との組み合わせを用いて、入力される文字列に対して、前記複数種類のラベルのうちで正しい確率が高いラベルを前記DBRNNが出力可能となるように、前記基本ユニットのパラメータを教師あり学習により学習するステップとを含む、音声合成のためのフロントエンドの学習方法。
  2. コンピュータが、大量の文字列からなる大規模文字列コーパスに接続するステップと、
    コンピュータが、前記大規模文字列コーパスから文字列を読出し、文字間の共起関係を表す共起マトリクスを生成するステップと、
    コンピュータが、前記共起マトリクスに対するバイリニア回帰変換を行うことにより、各文字から文字ベクトルへの変換テーブルを生成するステップとをさらに含み、
    前記文字ベクトル列を生成するステップは、
    コンピュータが、前記複数のアノテート済文字列に含まれる各文字を、前記変換テーブルを用いて文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップを含む、請求項1に記載の音声合成のためのフロントエンドの学習方法。
  3. 前記基本ユニットのパラメータを学習する前記ステップは、
    コンピュータが、前記複数のアノテート済文字列の1つを読出すステップと、
    コンピュータが、前記読出すステップで読出された文字列に含まれる各文字を前記文字ベクトルに変換するステップと、
    コンピュータが、前記読出すステップで読出された文字列に含まれる文字の数を調べるステップと、
    コンピュータが、前記調べるステップで調べられた文字の数だけ前記基本ユニットの複製と相互接続とを行ってDBRNNを生成するステップと、
    コンピュータが、前記DBRNNを生成するステップにおいて生成されたDBRNNを構成する基本ユニットの入力に、前記変換するステップにおいて変換された文字ベクトル列を入力したときの前記DBRNNの出力を計算するステップと、
    コンピュータが、前記計算するステップで得られた前記DBRNNの出力と、前記変換するステップにおいて変換された前記文字列に付されたラベル列との誤差に基づいて、前記基本ユニットのパラメータを誤差逆伝播法により更新するステップと、
    コンピュータが、前記読出すステップ、前記変換するステップ、前記調べるステップ、前記DBRNNを生成するステップ、前記計算するステップ、及び前記更新するステップを、所定の終了条件が成立するまで繰返し実行するステップとを含む、請求項1又は請求項2のいずれかに記載の音声合成のためのフロントエンドの学習方法。
  4. コンピュータを、請求項1~請求項3の何れかに記載の音声合成のためのフロントエンドの学習方法を実行するように機能させる、コンピュータプログラム。
  5. 請求項1~請求項3の何れかに記載の音声合成のためのフロントエンドの学習方法により学習が行われたDBRNNと、
    入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成し前記DBRNNに入力する文字ベクトル変換部とを含む音声合成システムであって、
    前記DBRNNは、前記文字ベクトル変換部により生成された前記文字ベクトル列の入力に応答して、各文字に対応する言語学的特徴を表すラベルからなるラベル列を出力し、
    前記音声合成システムはさらに、前記DBRNNが出力した前記ラベル列を用いて、当該ラベル列により表される言語学的特徴を反映した発話信号を合成する音声合成装置とを含む、音声合成システム。
  6. コンピュータが、DBRNNを生成する基本となる、予め設計されたRNNからなる基本ユニットを定義する情報及び当該基本ユニットにより表される関数を定義するパラメータを記憶するステップを含み、
    前記基本ユニットの前記パラメータは、当該基本ユニットで構成されるDBRNNに文字列が入力されたときに、当該DBRNNの出力に、音声合成に必要な言語学的特徴を表す複数種類のラベルのいずれかを出力するように予め学習済であり、
    さらに、コンピュータが、入力される文字列に含まれる各文字を、文字の共起関係に基づいて生成された意味的ベクトル空間内の固定長の文字ベクトルにマッピングすることにより文字ベクトル列を生成するステップと、
    コンピュータが、前記入力される文字列に含まれる文字の数を調べるステップと、
    コンピュータが、前記調べるステップで調べられた文字の数だけ前記基本ユニットの複製と相互接続とを行ってDBRNNを生成するステップと、
    コンピュータが、前記DBRNNを生成するステップにおいて生成されたDBRNNを構成する基本ユニットの入力に、前記文字ベクトルに変換するステップにおいて変換された文字ベクトル列を入力したときの前記DBRNNの出力を計算するステップとを含む、音声合成のためのフロントエンド処理方法。
JP2018147162A 2017-08-07 2018-08-03 音声合成のためのフロントエンドの学習方法、コンピュータプログラム、音声合成システム、及び音声合成のためのフロントエンド処理方法 Active JP7112075B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017152230 2017-08-07
JP2017152230 2017-08-07

Publications (2)

Publication Number Publication Date
JP2019032529A JP2019032529A (ja) 2019-02-28
JP7112075B2 true JP7112075B2 (ja) 2022-08-03

Family

ID=65524305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018147162A Active JP7112075B2 (ja) 2017-08-07 2018-08-03 音声合成のためのフロントエンドの学習方法、コンピュータプログラム、音声合成システム、及び音声合成のためのフロントエンド処理方法

Country Status (1)

Country Link
JP (1) JP7112075B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112151003A (zh) * 2019-06-27 2020-12-29 百度在线网络技术(北京)有限公司 并行语音合成方法、装置、设备以及计算机可读存储介质
CN110782871B (zh) 2019-10-30 2020-10-30 百度在线网络技术(北京)有限公司 一种韵律停顿预测方法、装置以及电子设备
CN111008283B (zh) * 2019-10-31 2023-06-20 中电药明数据科技(成都)有限公司 一种基于复合边界信息的序列标注方法及系统
WO2021107449A1 (ko) * 2019-11-25 2021-06-03 주식회사 데이터마케팅코리아 음역 전환 신조어를 이용한 지식 그래프 기반 마케팅 정보 분석 서비스 제공 방법 및 그 장치
CN111247581B (zh) * 2019-12-23 2023-10-10 深圳市优必选科技股份有限公司 一种多语言文本合成语音方法、装置、设备及存储介质
CN112541957B (zh) * 2020-12-09 2024-05-21 北京百度网讯科技有限公司 动画生成方法、装置、电子设备以及计算机可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5135093B2 (ja) 2008-07-10 2013-01-30 川崎重工業株式会社 動弁装置
US20170053646A1 (en) 2015-08-17 2017-02-23 Mitsubishi Electric Research Laboratories, Inc. Method for using a Multi-Scale Recurrent Neural Network with Pretraining for Spoken Language Understanding Tasks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3004753B2 (ja) * 1991-03-20 2000-01-31 富士通株式会社 つづり−発音記号変換装置
JP2996926B2 (ja) * 1997-03-11 2000-01-11 株式会社エイ・ティ・アール音声翻訳通信研究所 音素シンボルの事後確率演算装置及び音声認識装置
US10606846B2 (en) * 2015-10-16 2020-03-31 Baidu Usa Llc Systems and methods for human inspired simple question answering (HISQA)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5135093B2 (ja) 2008-07-10 2013-01-30 川崎重工業株式会社 動弁装置
US20170053646A1 (en) 2015-08-17 2017-02-23 Mitsubishi Electric Research Laboratories, Inc. Method for using a Multi-Scale Recurrent Neural Network with Pretraining for Spoken Language Understanding Tasks

Also Published As

Publication number Publication date
JP2019032529A (ja) 2019-02-28

Similar Documents

Publication Publication Date Title
JP7112075B2 (ja) 音声合成のためのフロントエンドの学習方法、コンピュータプログラム、音声合成システム、及び音声合成のためのフロントエンド処理方法
KR102246943B1 (ko) 다중 언어 텍스트-음성 합성 방법
KR102616214B1 (ko) E2E(End-to-end) 음성 합성 시스템에서 표현력 제어
Gorman et al. The SIGMORPHON 2020 shared task on multilingual grapheme-to-phoneme conversion
CN112352275A (zh) 具有多级别文本信息的神经文本到语音合成
Kaur et al. Review of machine transliteration techniques
WO2019167296A1 (ja) 自然言語処理のための装置、方法及びプログラム
Lu et al. A syllable-structured, contextually-based conditionally generation of chinese lyrics
Hadj Ali et al. DNN-based grapheme-to-phoneme conversion for Arabic text-to-speech synthesis
Liang et al. A hybrid CTC+ Attention model based on end-to-end framework for multilingual speech recognition
Naderi et al. Persian speech synthesis using enhanced tacotron based on multi-resolution convolution layers and a convex optimization method
WO2019163752A1 (ja) 形態素解析学習装置、形態素解析装置、方法、及びプログラム
CN113129862B (zh) 一种基于world-tacotron的语音合成方法、系统及服务器
Lőrincz et al. RoLEX: The development of an extended Romanian lexical dataset and its evaluation at predicting concurrent lexical information
CN113823259A (zh) 将文本数据转换为音素序列的方法及设备
CN115374784A (zh) 一种多模态信息选择性融合的中文命名实体识别方法
Dureja et al. Speech-to-Speech Translation: A Review
Wasala et al. Sinhala grapheme-to-phoneme conversion and rules for schwa epenthesis
Zia et al. PronouncUR: An urdu pronunciation lexicon generator
Chowdhury et al. Bangla grapheme to phoneme conversion using conditional random fields
Wiemerslage et al. Phonological features for morphological inflection
KR102622609B1 (ko) 문자소-음소 변환 장치 및 방법
Hlaing et al. Sequence-to-Sequence Models for Grapheme to Phoneme Conversion on Large Myanmar Pronunciation Dictionary
Monesh Kumar et al. A New Robust Deep Learning‐Based Automatic Speech Recognition and Machine Transition Model for Tamil and Gujarati
Patkar et al. A Neural Network Based Machine Translation model For English To Ahirani Language

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220714

R150 Certificate of patent or registration of utility model

Ref document number: 7112075

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150