ついにユーザーが自作可能なAI(諸説あるらしい)歌声合成が出てきました
その名もNNSVS!(過去にも取り扱ったことはあるので、詳細はこちらからどうぞ)
※ちなみにNNSVSは「Neural Network-based Singing Voice Synthesis/ニューラルネットワーク基盤の歌声合成」の略です
デモ動画↓
夏目悠李の詳細はこちらから↓
というわけで、今回はNNSVSを用いて夏目悠李を歌わせる方法をさっくり解説していきたいと思います。
必要なもの
Googleのアカウント(Gdriveが必要なため)
Twitter・Facebook・GitHubのアカウント(歌声DBのダウンロードに必要)
Gdriveの空き容量(少なくとも6~7GBは欲しい)
手順
①まず、Tarou ShiraniさんのGitHubから必要なデータをダウンロードします。
nnsvs_test_natsume_singing_official_recipe · GitHub
この右上の「Download ZIP」をクリックして解答した後、中身の「nnsvs_test_natsume_singing_official_recipe.ipynb」のGoogle Driveにアップロードします。

②こちらの記事を確認し、利用規約に同意したのであれば夏目悠李歌声DBをBowlRollからダウンロードします。
ダウンロードが完了したら、zipファイルを解凍しないでGDriveにアップロードします。
③GdriveでGoogle Colaboratoryが使用できるように設定します
「マイドライブ→その他→アプリを追加」をクリックします

出てきたウィンドウの検索欄に「Colaboratory」と入力して、赤丸のボタンをクリックして導入します。

④Google DriveからColaboratotyを起動します
導入が完了したのであれば、恐らく先程アップロードした「nnsvs_test_natsume_singing_2.ipynb」にこのようなアイコンになっていることが分かると思いますので、こちらをダブルクリックします。

⑤Colaboratotyの設定を変更します
なんか物凄く怖そうな画面が出ましたが落ち着いて下さい。
私もこういうの無理でしたが手順は至って簡単です。
まず「編集→ノートブックの設定」をクリックします。

ノートブックの設定から「ハードウェア アクセラレータ」をGPUに変更し、「保存」をクリックします

⑥レシピを実行します。
こういうボタンみたいなやつを上から順番にポチポチ押していきます。

とりあえず、「ステージ 5-6 (歌声合成) の実行」までポチポチしていきましょう。
もしめんどくさいなら
左の目次から「ステージ 5-6 (歌声合成) の実行」をクリック
↓
上部上部ツールバーの「ランタイム→より前のセルを実行」をクリック
↓
「ステージ 5-6 (歌声合成) の実行」のセルのボタンをクリックするのでもいいです。
(むしろこっちの方が押し忘れがないので安全です)
※「注意 この処理は非常に重くColaboratoryの接続が切れる場合があるようです. 画面左端の[ファイル]からファイルをダウンロードしてローカルで視聴することをお勧めします。」
と書かれているやつは実行しないで下さい
⑦Gdriveの接続
左の目次から「Google Driveのマウント」をクリックします。
(左が目次じゃない場合は左端の4つ並んだアイコンの内、虫めがねの上のアイコン「:≡」みたいなのを選んで下さい)
しばらくするとセルの中にこんな感じでURLと入力欄が表示されるので、リンクをクリックします。

こういう画面が表示されますので、現在自分が使用しているGDriveのアカウントを選択します。各種権限の許可もします。

そうするとコードが表示されるので、右のコピーボタンをクリックしてコピーしておきます。

その後、「Enter your authorization code:」と書かれた欄にCtrl+Vで先程のコードを入力し、エンターキーで確定をします。

⑧ひたすら待ちます
他の作業、スマホゲーの周回、動画視聴、TwitterのTL巡回にうってつけです。
ただ、放置しすぎるとColaboratoryの有効期限が切れるので定期的に見てください。
(※1. なんかエラーっぽいのが出たら「再接続」を押すことを推奨します)
(※2. zipの方の歌声DBはもう削除して大丈夫です)
⑨好きな楽譜で歌声合成
Gdriveに適当なフォルダを新規で作成します。
(とりあえず、ここでは分かりやすく「sample」にしておきます)
フォルダの中にmusicxmlあるいはxmlファイルと「song_list.txt」を入れます。

song_list.txtの中身は「musicxmlの拡張子を除いた名前」を1行ずつ入力したものです。適当にテキストエディタやメモ帳から作成しておkです。
例:「sakura.xml」「test.xml」を合成する場合のsong_list.txtの中身
sakura
test
そうしたら、「学習したモデルから任意の歌声を合成する」の中身を若干書き換えます。
「sample_dir=○○」の「gdrive/……」以降の文字を先程のフォルダの名前に変更します。

できたら一番最後のセル以外のボタンを押していきます。
⑩ちょっと待ちます
そこまでは時間かかりません。
⑪歌声wavをダウンロードします
レシピのやつを実行してしまうと物凄く重くなって失敗することもあるので、直接ダウンロードします。
1番左の4つに並んだアイコンの内、一番下のフォルダの形をしたボタンをクリックし
「nnsvs→egs→nnsvs_natsume_singing→00-svs-world→exp→natsumeyuuri→synthesis→(先程のフォルダ名)」から、好みのwavファイルを選択し、項目右端の「:」みたいなボタンを押してダウンロードをクリックします。

⑫ピッチ補正及びMix
なお、夏目悠李の声は結構ピッチがガタガタしているのでピッチ補正が必須です。
頑張って下さい!
※ピッチ補正にはVocalShifterをおすすめします。
注意
警告: GPU ランタイムに接続していますが、GPU は使用されていません。
こう表示されることがありますが、「標準ランタイムに切り替え」は押してはいけません。
レシピを制作したTarou Shirani様
使い方や各種サポートをしてくださったくれいじー様