自分が自分の推しの声になれるボイスチェンジャーを作った話
これはなに?
私は、推しである出口貞夫さんの声が大好きなので、私専用の推しになれるボイスチェンジャーを作ってみました。
出口貞夫はかわいいぞ
この動画だけでも見て欲しい。かわいいので。
こやつ、これが地声の男なんだ…… 最高にかわいくないかい?
どうやって作ったの?
私の推し・出口貞夫さんに趣旨を説明し、お願いして文章を読んでもらいました。それと私の声をMMVC_Trainerで機械学習し、MMVC_Clientで出力したものです。
非常に細かく導入が書かれています。読んでいけば動作させることができます。
さらに、インストールボタンから半自動でGoogle Colab(Googleが提供してる機械学習環境のようなもの)上で無料で実行させることができます。かなり簡単なので、ぜひどうぞ。
【10/17追記】推しからの反応は?
そう言えば出口さんからの反応を書いてなかったので追記。
なにを考えてるんだ出口貞夫……
ちなみに出口さんのCoeFontもあります。
細かく苦労した点
MMVCのバージョン
いま保守されている1.3.1.3はColabでライブラリのインストールがどうにも上手くいきませんでした(私のやり方が悪い可能性もあります)。
そのため、1.3.2.0で作成を行いました。1.4.0も作成中のようなのですが、クライアント側が未対応とのことだったので今はしませんでした。
学習するWAVファイル
しっかり録音や変換を行ったつもりだったのですが、どうにも上手くいきませんでした。
専用ツールがあることを知り、それを通した結果うまくいきました。
↓がそれです。
バグを踏んだ
既に修正されているかもしれませんが、私がインストールしたものには以下のようなバグがあったようです(オリジナルのコードままだったらしいですが、そのまmエラーになるようにできていたようです…?)。
Discordで質問したところ、開発者の方からすぐに回答いただきました。ありがとうございました。
train_ms.pyの59行目を
os.environ['MASTER_PORT'] = '80000'
を
os.environ['MASTER_PORT'] = '8888'
に
高音域に変なノイズが出た
学習したファイルが悪いのか高音域にノイズがあり、それもあってなんかヒンヒン言ってる、ぐらいのノイズがありました。
ちなみに上のtweetの音声はそれをなるべく抑えています。OBSで録画するときに、RX 8 Voice De-noise(有料プラグイン)のフィルタを掛けて10kHzより上の周波数の音を削ったりしています。
遅延が激しい
私が声を出してから音が出るまで、0.8秒程度掛かります。使っているオーディオインターフェイスのせいなのかもしれませんが、結構致命的でした。
上のtweetの動画では、モーションキャプチャしているVMagicMirrorの出力に、OBSのフィルタでレンダリング遅延をMAXの500ms(0.5秒)掛けています。
もっと早いはずなので、環境の確認が必要そうです。
出口貞夫はいいぞ
動画も作れる、3Dも作れる、イラストも描ける、作曲もできる。そんな出口貞夫を、ちょっと覗いてみてくださいませ。
twitter : https://twitter.com/DeguchiSadao/
書いたひと:やつはし