つくよみちゃんトークソフトの作り方
00
はじめに

先日公開した「シロワニさんのつくよみちゃんトークソフト」の作り方を記述します。

「シロワニさんのつくよみちゃんトークソフト」に関してはこちら。

こちらの作り方は、初回公開時(version.1.0.0)のものとなります。今後、違う作り方になっていく可能性は大いにありますので、ご注意ください。

使用したソースコード

つくよみちゃんトークソフトは以下の二つをオープンソースを使用しています。

音響モデルとボコーダ
こちらの記事でも記述したように、近年のTTS(Text to Speech。テキストから音声に変換すること)は「テキストからメルスペクトログラム(音声の設計図のようなもの)への変換」のあとに「メルスペクトログラムから音声への変換」を行います。「テキストからメルスペクトログラムへの変換」を行う機械学習モデルを音響モデル。「メルスペクトログラムから音声への変換」を行う機械学習モデルをボコーダと言います。
使用した音響モデル

上述したオープンソース、espnetではTTS用の音響モデルを作ることができます。音響モデルにもいくつか種類があり、espnetでは以下が作成可能です。

  • Tacotron2 (2017)
  • Transformer-TTS (2018)
  • FastSpeech (2019)
  • FastSpeech2 (2020)

一番新しいFastSpeech2が良いのではとも思いますが、つくよみちゃんトークソフトではTacotron2を使用しています。理由は以下です。

  • FastSpeech、FastSpeech2は品質改善ではなく速度改善がメインだと言うこと(品質も上がっている可能性もありますが、これに関してはまだちゃんと論文を読めていないです)。
  • FastSpeech、FastSpeech2の学習は少し手間がかかるということ(espnetでは、Tacotron2かTransformer-TTSモデルを作った後に作る必要がある)。
  • Transformer-TTSがなぜか自分のデータセット・環境では上手く学習できなかった(Tacotron2よりTransformer-TTSの品質が良いと論文では書いてあったりしますが)。

そんなこんなでTacotron2を使いました。2017年のTacotron2さんに自分はいつまでお世話になるのだろうか......

使用したボコーダ

上述したオープンソース、ParallelWaveGANではTTS用のボコーダを作ることができます。ボコーダにもいくつか種類があり、ParallelWaveGANでは以下が作成可能です。

  • ParallelWaveGAN (2019)
  • MelGAN (2019)
  • Multi-band MelGAN (2020)

つくよみちゃんトークソフトではParallelWaveGANを使用しています。Multi-band MelGANも試したんですが、ParallelWaveGANと比較して音声を聞いた結果、ParallelWaveGAN方がノイズが入りにくいように感じたので採用しました。

使用したデータセット

つくよみちゃんトークソフトは音響モデルもボコーダも使用したデータセットは同じです。

パプリックドメイン(著作権なし)の約6800文の男性音声で学習させ、そのモデルを100文のつくよみちゃん音声で転移学習させて作っています。各音声は以下で公開されています。

デモ音声

この仕組みで作成した合成音声のデモはこちらで公開しています。

今後の品質の改善案

転移学習前の音声データが6800文なので少ないかなと思っています。また、つくよみちゃんの100文も少ないですね。データに関しては以下のような改善点があると思います。

  • 転移学習前の音声データを増やす
  • 転移学習前の音声データにはっきりとした読み上げのものを使う
  • つくよみちゃんの音声データを増やす

あと、イントネーションの改善もできると思います。こちらは、音響モデルの入力が今はテキスト情報のみなので、イントネーション情報を付与してやることで改善できるのではないかと思っています。

参考文献
TOP
プロフィール
icon
シロワニさん
twitter
@shirowanisan
ソフトウェア