LoginSignup
12
13

More than 3 years have passed since last update.

かわいい日本語音声合成(Tacotron2 + WaveGlow + CycleGAN-VC2)

Last updated at Posted at 2021-05-07

ゴルシウィークの課題として音声合成に挑戦してみました。
ぶっちゃけ元論文もモデルの中身もわけわかめですが、ありものを組み合わせるだけである程度のものが作れました。
実装してくれてる神々、情報をまとめてくださってる神々には、頭が上がりませんね。
神は存在します。ネットで見た。

あと、皆さんご存知かと思いますが、

も神サービスでしたね。

なんにも知らなかったので普通にGCEで借りたGPUマシンぶん回して愚かにも8000円溶かしましたね。
流石にColab Proより1.5倍くらい早かったですが。

できたもの

どうやったか

入力データ

JSUTをmecab + tdmelodicでカタカナとピッチ情報にして、espeak-ngで下処理しました。

例)

便利屋は、一月と二月はわりあい暇だ。
↓ mecab + tdmelodic
ベ%]ンリヤワ イ%[チ%]ガ%]ツト ニ%]ガ%]ツワ ワ%[リアイヒ%[マダ.
↓ espeak-ng
bˈe̞↘nɽijˈäwä ˈi↗tɕˈi↘ɡˈä↘tsˈɯᵝto̞ nˈi↘ɡˈä↘tsˈɯᵝwä wˈä↗ɽˌiäʼˈiçi↗mˈädä.

CycleGAN-VC2には、委員長の雑談配信の声データをつっこみました。

ffmpegで無音期間で切り取り、

で音声のみ抽出しました。

ffmpegのコマンドは以下を参考にしました。

モデル

上記3つを組み合わせただけです。

くふうポイント

カスタマイズしたIPA(International Phonetic Alphabet)をTacotron2の入力にした

先駆者の神々は日本語のローマ字を入力にしてましたが、あえてIPAにしてみました。
英語で学習済のモデルから転移学習?できなくて泣いた。

IPAにピッチアクセントと母音同士がくっつかないことを表す記号を追加した

カスタマイズしたespeak-ngがこちら。
https://github.com/sujoyu/espeak-ng

加えて、dictsource/ja-extraに以下のテキストを保存します。

.group %
  %[   _b
  %]   _e

音声に文章情報を付加する作業はやりたくなかったので、CycleGAN-VC2を使った

神々、苦労を厭わなすぎて自分には無理だったので、変換機を噛ませました。

Tacotron2はMozilla TTS実装ではなくNVIDIA実装を使った

は自分のカスタマイズの仕方が悪かったのか、15000ステップあたりでLossが跳ねて、そのあとLossがNaNだよエラーを吐くようになってしまったので、諦めました。
10000ステップあたりではMozilla実装のほうがはっきり発音していたので、学習率の調整が必要だったのかもしれません。わかりませんが。

参考になる神記事

感想

さすがにこちらには敵いませんでしたね...

12
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13