アライさんになりきってみたかった(後編)

前編に引き続き、音声変換でアライさんになりきってみます。 音声変換はyukarinおよびbecome-yukarinを使用しました。

結果はこちらです。

  • 第一段階(粗変換)
  • 第二段階(高品質化)

どちらも「あらゆる現実を 全てアライさんの方へねじ曲げたのだ」と言ったつもりですが、全くダメですね。はい。

目次

環境・データセット

環境

データセット

  • 劇中のアライさん63文の音声(BGMを弱くした後手動で切り出し、"えーーーー"など文でないものも含む)
  • 対応する筆者の音声
  • それぞれ約3分
  • テスト用筆者の音声

参考(にした)文献

yukarinbecome-yukarinの概要や音声変換の仕組みはこちらをご覧ください。

qiita.com

qiita.com

具体的な手順はこちらをご覧ください。

qiita.com

音声変換の仕組みや手順の詳細は他の良記事に譲るとして、本投稿では筆者がハマった箇所を書きます。

実行記録とハマったところ

第一段階

https://github.com/Hiroshiba/yukarin からクローンして、README.mdの手順に従い第一段階の学習を行います。

学習開始時、PicklingErrorが発生したので、issueコメントに従ってdillをインストールしました。 ところが、dillの2019年10月10日当時の最新バージョンは0.3.1.1なのですが、これはmultiprocessingに依存する(未確認)ので、(おそらく)依存関係が巡回するためうまくいきませんでした。 よくわからなかったので、別のissueコメントの当時のバージョン0.2.8をインストールして回避しました。

学習スクリプトを実行後、ひたすら待ちました。

第二段階

https://github.com/Hiroshiba/become-yukarin からクローンして、README.mdの"第2段階の学習"セクションを実行します。

やはりメモリ容量的に厳しいところがあるので、config_sr.jsonにてtrain.gpu = -1(GPU禁止)、train.batch_size = 1としました。 さらに、train.log_iteration = 1000000としました参考

スクリプト実行後、ひたすら待ちました。

結果

冒頭にあります。

どうしてこうなった

  1. データが圧倒的に少ない(yukarin推奨の約1/10)
  2. 前編で行った処理の結果が悪く、それに引きずられて音質が悪い
    • 前編でも言及していますが、BGM減衰のためのマスクについて間違った(実験で品質が良いと報告された方でない方の)マスクを使っていたことが分かりました。

が考えられます。要は高品質なデータをもっと集める必要がありそうだと予想しています。

おわりに

前後編にわたって、音声変換によってアライさんになりきることを試みました。 前編ではアニメ音声の音楽の要素を弱める変換を行うことにより、声のデータを集める方法を提案しました。 後編ではyukarinと前編で集めたデータを使って音声変換を行いました。(しかし、その品質はまだまだで、改善の余地が大きいです) 以上になります。ありがとうございました。