見出し画像

自分が自分の推しの声になれるボイスチェンジャーを作った話

これはなに?

私は、推しである出口貞夫さんの声が大好きなので、私専用の推しになれるボイスチェンジャーを作ってみました。

出口貞夫はかわいいぞ

この動画だけでも見て欲しい。かわいいので。
こやつ、これが地声の男なんだ…… 最高にかわいくないかい?

どうやって作ったの?

私の推し・出口貞夫さんに趣旨を説明し、お願いして文章を読んでもらいました。それと私の声を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/

書いたひと:やつはし