初めての「誰でも好きなキャラの声になれる」ディープラーニング声質変換環境構築【Ubuntu 18.04LTS】

#はじめに

私はさとうささら*1になりたいので、結月ゆかり*2になったヒホさん*3のコード[「ディープラーニングの力で結月ゆかりの声になる」*4レポジトリbecome-yukarin](https://github.com/Hiroshiba/become-yukarin)をattiticatticさん(以下attiさんとする。)*5さんの解説コード
[「become-yukarin解説用」レポジトリ　become-yukarin](https://github.com/YoshikazuOota/become-yukarin)をもとに動かしてみました。私は超初心者なので時間がかかりましたのでご報告です。

*1 さとうささらとはエンジンを名工大の徳田研究室などの研究から生まれたテクノスピーチが開発した音声・歌声合成ソフトCeVIOのキャラクターである。元データ提供声優は水瀬いのり。
*2 結月ゆかりとはAHSが開発した音声合成ソフトTalkroidのキャラクターである。
*3 ヒホさんとは本業システムエンジニア(ディープラーニングが専門)で、趣味で声質変換等を開発している開発者である。
*4 become-yukarinは、名前が「誰でも好きなキャラの声になれる」レポジトリに最近変更になりました。
*5 attiさんとはQiitaにおいてヒホさんの声質変換コードを解説している解説者である。

#最初に準備するもの

GPUが付いたWindowsパソコン*1
WindowsとUbuntu間でデータをやり取りするのに使うUSBメモリ*2
Ubuntuデュアルブートに必要なSSDかHDD*3

*1 GPUはGTX1060(6GB)が推奨ですが、私は都合でGTX1060(3GB)で動かしました。(動かし方は後述)
*2 16GBを用意しました。
*3 attiさんによれば1TBのHDDが推奨とのことですが私は都合により128GBのSSDで動かしました。

##環境構築にあたって参考にしたもの
attiさん[「ディープラーニングの力で結月ゆかりの声になる」ためのLinux環境構築(RTX対応)【Ubuntu 19.04】](https://qiita.com/atticatticattic/items/8826a81badeea21a7175)
[「ディープラーニングの力で結月ゆかりの声になる」環境構築【Ubuntu Server v18.10】](https://qiita.com/sakamotothogo/items/322012f1a462f27188bf#_reference-9115c2dd255ed5887906)
[【Quick Start】ディープラーニングで結月ゆかりの声になる on Ubuntu18.04](https://nullpo24.hatenablog.com/entry/2019/02/22/225311)
[「ディープラーニングの力で結月ゆかりの声になる」ためのLinux環境構築【Ubuntu 17.10】](https://qiita.com/atticatticattic/items/575d71dab4ee716e4969)

#声質変換に必要な自分の声を収録する
ヒホさんの声質変換コードはパラレルデータといって、自分の声と変換した声の一対一のデータが必要です。

ヒホさんの声質変換コードを解説用に改良したattrさんのコードでは自分の収録した声30文でお試しが可能です。*1

声の収録にはWindows上のaudacityを利用しました。
attrさんのコードに必要な音声データは22050Khz　16bit　1channelですので、設定他からそう設定します。他WASAPIに設定しました。

それで、ひたすらattrさんのtxtを表示して、audacityで録音して、確認していきます。
v_801からv_830までの30文を収録します。
収録には約4時間かかりました。

マイクはLogicoolのヘッドセットに、マイクアンプ　オーディオテクニカAT-MA2をつないでゲイン調整してしました。
理想を言えば、attiさんが利用しているノイズキャンセリングヘッドセットがよさそうです。またグラフィックイコライザーで100kHz以下を
カットすると効果的とのことです。sunnyoneさん(ニコニコ生放送ではHelloWorldさん)の利用しているコンデンサマイクは環境音を拾ってしまいますので、防音壁を自作されています。これはリフレクションフィルターとして市販品もあります。

*1 現在は結月ゆかりデータ他が削除されていますので、その収録も現在は必要です。

#Ubuntuを入れる

WindowsパソコンにSSDあるいはHDDを増設します。これはUbuntuをデュアルブートするのに必要なので増設します。WindowsとUbuntuを同じドライブに入れるとややこしいので、別ドライブにします。UFEI*1で切り替えるようにします。

Windows上でUbuntu18.04LTSを落としてきてDVDに焼きます。日本語リミックスのisoイメージを公式ページで落としてきて、ライティングソフトimgburnで焼きました。DVDは100均セリアで2枚組のDVDRを買ってきました。

焼いたDVDR*2をUFEIでDVDドライブからブートするようにして、Ubuntuを入れます。詰まったのが2点ありまして、その時にWindowsが入っているシステムSSDのATAケーブルを抜いておかないと、ブートローダーの問題でインストールできません。

無事できたら起動します。ログイン画面でパスワード要求されますが、何も入れずエンターキーでデスクトップ画面まで行きますので、インストールをクリックして設定していきます。

これでUbuntu18.04LTS環境が整いました。

#声質変換のための環境設定していく

[「ディープラーニングの力で結月ゆかりの声になる」ためのLinux環境構築(RTX対応)【Ubuntu 19.04】](https://qiita.com/atticatticattic/items/8826a81badeea21a7175)
に従って設定していきます。

##基本設定

IP固定はほかのパソコンからUbuntu環境にアクセスしたいときに使うようです。私は同じパソコンでUSBメモリ経由でデータのやり取りをしたのでしませんでした。

##PYENVでPython3.6.3を入れる。

なかなか入らなくて苦労しました。現在の最新バージョンは3.7.3ですがヒホさんの声質変換コードbecome-yukarinの推奨がそうなっていますので、3.6.3を素直に入れます。

##ディープラーニングに必要なCUDA10.1とCuDNN7.6.0を入れる

ヒホさんの声質変換コードbecome-yukarinに必要なのは、CUDA9.1なのですが、将来的にRTX対応を見据えてCUDA10.1を入れました。
なかなか入らなくて苦労しましたが、参考にしたのは、[Ubuntu 18.04へのCUDAインストール方法](https://qiita.com/yukoba/items/4733e8602fa4acabcc35)です。
CuDNN7.6.0はブラウザでホームページから該当ファイルをダブルクリックで落として、ホームディレクトリに配置、ダブルクリックで入りました。

become-yukarin設定

cupyはcupy10.1に置き換えなくてはならないので、cupyのインストールは時間がかかるので、requiremets.txt から削除しました。

音声ライブラリラッパーのworld4pyがなかなか入らなくて苦労しました。今はpipで入るようですが、エラーで入りませんでした。Windowsでworld4pyをzipで落としてUSBメモリでUbuntuに持ってきて入れました。

#終わりに
以上で環境構築が終わりました。[「ディープラーニングの力で結月ゆかりの声になる」ための基礎知識とコマンド操作」](https://qiita.com/atticatticattic/items/f1e4c671d73d815bbad2)
に従って実行していきますが、ここでも四苦八苦でした。

それでは楽しい声質変換を。