Flowtron でJVS+JSUTデータを学習

はじめに

前回 Flowtorn1というText To Speechアルゴリズムにより
日本語音声コーパスであるJVSコーパス2の学習を行った。
今回は同じく日本語の音声コーパスである、JSUTコーパス3を追加して
学習を行い性能変化を検証した。

前回の問題点

前回 ある程度Flowtronの学習はできていたが、文章の一部を繰り返してしまう推論結果が多かった。

f:id:nakamrnk:20200715100703p:plain

上段は横軸時間、縦軸メル周波数のログメルスペクトルグラム。
下段は横軸時間、縦軸は入力文章の単語位置によるアテンションマップ。

アテンションマップは入力文章の各位置と各時間の出力の対応を表しており、正しく学習できている場合は、アテンションマップは左下から右上に単調に推移していくが、繰り返しが生じると上図のように折り返した構造を示す。

JSUTコーパス

JVSコーパスは100人の話者がそれぞれ、百数十の文章を発話しているコーパスだが、JSUTコーパスは1人の話者が5000以上の文章を発話しているコーパスである。 そのため、網羅している会話の種類がJVSコーパスよりもはるかに多い。前回の繰り返し問題が会話文章の少なさに起因する場合はこのデータを追加することで性能の向上が期待される。

評価指標について

今回は文章生成時に生じるアテンションマップに繰り返し構造があるかを評価基準とする。

f:id:nakamrnk:20200715102323p:plain

左上:メルスペクトルグラム、右上:アテンション値が0.6以上のプロット 、左下:1層目のアテンション、右下:2層目のアテンション


右上の図は左下のアテンションマップから値が0.6以上の場所を
抜き出したものであり、 これを繰り返しの有無判定に利用する。
左右の赤線はメルスペクトルグラムから推定した発話領域であり、
この領域内で赤丸内のような折り返しがあった場合に折り返しあり
と評価する。 この図では赤丸の箇所で8文字分の折り返しがあるので
スコアは8とする。 繰り返しが全くない場合はスコア0となる。
複数の繰り返しがある場合はそれぞれを加算する。

データ

学習データ

  • JVSデータ
    • parallel100のうち95
  • JSUTデータ
    • basic5000のうち4950

評価データ

  • JSUTデータ
    • basic5000のうち50

前処理は前回と同様。

結果

スコア平均比較

f:id:nakamrnk:20200715173632j:plain

左図は文章ごとのスピーカー平均の繰り返しスコア、右図はスピーカーごとの文章平均の繰り返しスコア

スピーカー平均で見ても、文章平均で見てもJSUTデータを追加することで繰り返しが減っている。

男女間で話者平均を比較すると下表のようになる。

Male_or_Female jvs jvs_jsut
F 3.17176 1.23765
M 2.54122 0.833469

追加したJSUTデータは女性のみの音声データだが、男性側も繰り返しは減っている。
学習する文章数を増やすことで、男女に関係ない文章のエンコーダー部分の性能が向上したためと考えられる。

 繰り返しが大きく改善された文章

以下の文章ではJSUTデータを追加で学習することで繰り返しが大きく減少した。 (7.99 → 1.29)
赤ん坊が浴槽の中で、ぼちゃぼちゃやっていた。

jvs27
JVSのみで学習

f:id:nakamrnk:20200715183433p:plain

JVS+JSUTで学習

f:id:nakamrnk:20200715183752p:plain

jvs49
JVSのみで学習

f:id:nakamrnk:20200715184213p:plain

JVS+JSUTで学習

f:id:nakamrnk:20200715184137p:plain

JVSのみの学習では"ぼちゃぼちゃ"の部分を"ぼちゃぼちゃぼちゃ"と
3回繰り返しているものが見られた。
これ以外にも"ますます"を"ますますます"と発音しているものも
見られたので繰り返し文に対してやや弱い可能性がある。
JSUTを加えると繰り返しは改善されているが、やや声質が変化している
ように感じる。

 性能が低かった文章

文章単位で見た場合にJVSのみで性能が最も低かった文章は
僕等の中国旅行が楽しいものになるといいな。
であった。 (スピーカー平均13.55)。
これはJSUTを加えても比較的性能は低いままであった (スピーカー平均6.87)

jvs01

僕等の中国旅行が楽しいものになるといいな。

JVSのみで学習

f:id:nakamrnk:20200715174907p:plain

JVS+JSUTで学習

f:id:nakamrnk:20200715175441p:plain

読み方が"ぼくとう"になっているのは読み方がMecabの辞書依存であるためである。
JSUTを加えることで繰り返しが緩和されているが、声質が多少変わっているような気がする。
(女性よりになっている?)

jvs72
JVSのみで学習

f:id:nakamrnk:20200715181037p:plain

JVS+JSUTで学習

f:id:nakamrnk:20200715181005p:plain

こちらはあまり声質が変化せずに繰り返しがなくなっている。

まとめ

JVSにJSUTデータを加えて学習した。
前回問題になっていた繰り返しに関しては改善が見られたが、
特に男性話者の声質がJSUTに引っ張られているような感じがする。
今回はJVSとJSUTを1:1の比率で学習させたので、
女性話者のほうが男性話者の約2倍程度となっていることが原因で
あると考えられる。学習時のサンプリング比率を調整することで
ある程度改善できると思われる。

参考文献