Deep_VoiceChangerで唯ちゃんになるメモ
話題のディープラーニングでボイスチェンジする夢のツールを使ってみた忘備録。
●概要
こちらのDeep_VoiceChangerを使わせていただきました。製作者様に感謝!
書いてある通りだけど、ディープラーニングを使ったボイスチェンジャー。
旧来のいわゆるボイスチェンジヤーは「ピッチ」「フォルマント」の2つでボイチェンするけど、その仕組み上変換後の声質は元の声に依存する。
ディープラーニングによるボイスチェンジャーは元の声にかかわらず"あの人の声"に変換できるところがオタク歓喜ポイント。
なお同種の商用ソフトだと「リアチェンVoice」「Voidol」といったものがあるが、
これらは変換モデルの自作はできず、発注して作ってもらうシステム。
●用意するもの
(無いと面倒&遅いと思われ。オレはGeForce GTX 1060を用意)
- 変換対象の人の音声ファイル2人分
-16kHzにすることが必須。Audacityとかでリサンプリングする。
-想像だけど、BGMのような余計な音が入ってないwavファイルを30分ぶんくらい用意するとよさそう。
●セットアップして動かしてみる
githubのページおよびこちらを大いに参考にしました(これまた他力本願)
ここでは上記ページに補足する形で、実行しながらエラーをつぶした記録をメモ。
・CUDAが"error: Microsoft Visual C++ 14.0 is required."を吐く
Build Tools For VIsual Studio 2019の一部のコンポーネントが必要。
→こちらのサイトを参考。
PythonでCUDAやMeCabを使う為にBuild Tools for Visual Studio 2019をセットアップする - HYT MachineWorks
※Visual C++ 14はVC++2015のことだが、VS2019でも問題なし。
・updater.pyが"AttributeError: can't set attribute"で落ちる
Traceback (most recent call last):
File "trainer.py", line 190, in <module>
main()
File "trainer.py", line 168, in main
updater = Updater(train_iter_a, train_iter_b, opt_g_a, opt_g_b, opt_d_a, opt_d_b, device=args.gpu)
File "C:\Users\key_m\Desktop\COPY_Deep\updater.py", line 34, in __init__
self.device = device
AttributeError: can't set attribute
→Issueページによると、chainer ver.6.xを入れるとOKらしい。
オレはupdater.py:Line 34を書き換えた。
#変更前
#self.device = device#変更後
self._device = device
おそらくupdater.deviceがchainerの7.xから@proertyになったんだと思う。しらんけど。
・chainerがOutOfMemoryを吐く
原因はこういうことらしい。
ChainerでGPUのOut of Memoryを回避 Unified Memory for Cuda | MIKI-IE.COM(みきいえMIKIIE)
Deep_VoiceChangerでは引数でBATCH_SIZEを渡せる。デフォルトは32。
→引数にオプション"-b 16"を追加して解決。
幸いなのが落ちるなら最初のメモリ確保タイミングであること。数日学習を進めた後に落ちられたら泣いてた。
●その他のハマりポイント🤔"
・本当にGPU動いてんの?
学習にGPUをバチバチに使ってるはずなのに、タスクマネージャを見るとGPU使用率が3%とか。
あれ?もしかしてCPUしか使ってない?設定間違えた?と不安に。
→下図のとおりタスクマネージャのGPUペインのグラフのプルダウンメニューからCUDAを選択すると、ちゃんとCUDAでの使用率が出る。
・正しいGPU IDは?
上記に関連して、GPU IDの設定をミスったか?と思ったときのこと。
タスクマネージャではGeForceは"GPU1"とあるから、もしかしてGPU ID=1が正しいのでは…と不安になった。
→"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"を実行して表示されるIDが本物。
●やってみて
まだ1日強しか回してないけど、すげえぞコレは!
すごさの片鱗をビシバシ感じる。
学習すればするだけ変換精度が上がるだろうから、もっと回してみよう。