見出し画像

AIリアルタイムボイスチェンジャーMMVC_v1.5_導入講座_確認編

注意(2023年10月21日):話者IDが2023年10月20日を境に変更されました。
特にv1.3については話者ID
(自分の声やずんだもんの声に対する番号、107とか100とか)
が変更されています。
記事の話者IDは一部古いため、
変更内容と対応方法はこちらをご確認願います。

講座記事一覧 最初と編まとめ
前回:学習編 次回:リアルタイム編A_MMVC_Clientで実行
こんにちは。ピポッです。
AIリアルタイムボイスチェンジャーである
I'mずんだもん王への道_MMVCの導入講座動画を作っている者です。

当記事では『確認編』として(※)
『非』リアルタイムのボイスチェンジを試みます。
『学習編』で作ったデータをさらに変換し、
非リアルタイムへの音声変換で品質を確認します。
品質を確認して大丈夫そうだったら『リアルタイム編』に行きます。

やることは
『学習結果をONNXファイルに変換する』
(『確認編』を飛ばして『リアルタイム編』に行く場合も必須)

『非リアルタイムボイスチェンジする』
です。
リアルタイム編で必要になるONNXファイルの作成手順説明のため、
『確認編』として記述します。

(※)v1.5、v1.3ともにColab上で
非リアルタイム音声変換するファイルは存在します。
が、Colabが頻繁に仕様変更するため動かなくなっています
(2023年05月21日時点)。

よって、『リアルタイム用ソフト』に存在する
『非リアルタイム変換機能』で
非リアルタイム変換する手段を取ります。
『確認編』としていますが、
『リアルタイムの準備編(MMVC_Clientで実行)』
の範囲まで進む事
をご了承ください。

MMVC_Client(ボイチェンソフト)の仕様がv1.5, v1.3で異なるため、
バージョンを分けて説明します。


学習結果をONNXファイルに変換する(v1.5)

ONNXファイル変換は06_Export_ONNX.ipynbから行います。
(2023/07/10変更)
06_Export_ONNX.ipynbを開いてください。
※06_Export_ONNX.ipynbが存在しない場合(2023/07/10以前)
以下のURLから06_Export_ONNX.ipynbをダウンロードし、
Googleドライブのmmvcフォルダ内、notebookフォルダ
(他の.ipynbファイルがある箇所)にアップロードして開いてください。
https://github.com/isletennos/MMVC_Trainer/blob/v1.5.0.0_SiFiGAN/notebook/06_Export_ONNX.ipynb

06_Export_ONNX.ipynb 
右にある↓ボタン(Download raw file)からダウンロードする

06_Export_ONNX.ipynb:0~3の実行

0~3を学習編と同様に、上から順に実行していきます。
『0 ノートブックの準備』
『1 Notebookの準備』
『2 リポジトリの準備』
『3 実行の準備』
を順に実行してください。

06_Export_ONNX.ipynb:4 学習結果をONNXファイルに変換

『3 実行の準備』まで実行したら
次に『4 学習結果をONNXファイルに変換』へ移ります。
ここは実行前に変更が必要です。

model_save_dic:
を変更する必要があります。
20220306_24000 を tutorial
に変えてください。

学習結果をONNXファイルに変換 実行前の変更。
model_save_dicが過去バージョンのフォルダ名になっている。
tutorial に変更すると現在のバージョンのフォルダ
(学習結果が保存してあるフォルダ名)と一致する。

変更したら●▶ボタンを押して実行してください。

学習結果をONNXファイルに変換 実行中。
出力まで時間がかかるため、しばらく待機する。

1分ほどすると、出力の上側に
『Model data loading succeeded.』
とあり、後半に
『Done』
と記述され、その後に色々なパラメータが書かれていたら
ONNXファイル化は成功です。

学習結果をONNXファイルに変換 実行結果。
指定したファイル(logs/tutorial/G_latest_99999999.pth)を 読み込み、変換した。


必要ファイルのダウンロード

ダウンロードする必要があるファイルは4つあります。
実行結果を確認したら、
マイドライブ/MMVC_Trainer-v1.5.0.0_SiFiGAN/logs/tutorial
フォルダに移動してください。
出力が成功していれば、
『G_latest_99999999.onnx』
ファイルが存在します。

ONNX変換実行後の
マイドライブ/MMVC_Trainer-v1.5.0.0_SiFiGAN/logs/tutorial フォルダ内。 『G_latest_99999999.onnx』 が新たに作られている。

このファイル『G_latest_99999999.onnx』をボイチェンで使います
(非リアルタイム・リアルタイム両方)。

ファイルをダウンロードしてください。
ダウンロードはファイルを右クリック→ダウンロード から行います。

ファイルのダウンロード

ファイル容量が大きいため、
『ファイルのウィルス スキャンを実行できません』
と出ます。
『エラーを無視してダウンロード』
を選んでください。

『ファイルのウィルス スキャンを実行できません』
約200MBと大きいため表示される。 エラーを無視してダウンロードする。

保存場所は、
半角英数と記号のみのパスになるフォルダに保存してください。
ボイスチェンジャーを起動する際の条件になります。

名前を付けて保存。
ファイル名、およびファイルを保存するフォルダパスは 半角英数で表記する事。

次に、同じtutorialフォルダにある
『config.json』もダウンロードしてください。
保存場所は『G_latest_99999999.onnx』
と同じ箇所にダウンロードしてください。

tutorialフォルダにあるconfig.json。
このファイルも使うためダウンロードする。

3つ目として、
マイドライブ/MMVC_Trainer-v1.5.0.0_SiFiGAN/configs
フォルダに存在する
『myprofile.conf』をダウンロードしてください。
こちらもボイチェンに必要なファイルになります。
保存先はonnxファイル等と同じ箇所にしてください。

マイドライブ/MMVC_Trainer-v1.5.0.0_SiFiGAN/configs
フォルダにあるmyprofile.conf
これをダウンロードする。


最後に、マイドライブ/MMVC_Trainer-v1.5.0.0_SiFiGAN/filelists
フォルダに存在する
『train_config_Correspondence.txt』
をダウンロードしてください。
こちらもボイチェンに必要なファイルになります。
保存先はonnxファイル等と同じ箇所にしてください。

filelistsフォルダにあるtrain_config_Correspondence.txt
Create_Configfile.ipynbの時に作られている。 こちらもダウンロードする。

これで必要なファイルのダウンロードは完了です。お疲れ様でした。

非リアルタイムボイスチェンジする(v1.5)

MMVC_Client(MMVC用のボイスチェンジャー)を使って
非リアルタイムボイチェンを行います。

MMVC_Client_v0.5.0.0の入手と展開

以下のURLからMMVC_Client_v0.5
(MMVC_Trainer_v1.5向けソフト)

をダウンロードします。

URLに移動したら、『mmvc_client_installer_15.exe』
をクリックしてダウンロードしてください。
ダウンロード箇所は先程の.onnxファイル等と
同じ箇所にしてください。
2GB近くあるため、パソコンの残り容量に注意してください。

mmvc_client_installer_15.exe のダウンロード。

ブラウザによっては『安全でない』として
ダウンロードできない事があります。
その際は各ブラウザの機能に沿って、
DL停止状態を解除して保存してください。

保存したらエクスプローラーで
『mmvc_client_installer_15.exe』
を保存した場所に移動します。
『mmvc_client_installer_15.exe』
をダブルクリックして実行してください。

mmvc_client_installer_15.exeの実行。

実行すると、MMVC_Clientフォルダの展開先設定画面が出ます。
そのまま『Extract』を押してください。

mmvc_client_installer_15.exe実行中。
フォルダを展開する先を聞かれる。
デフォルトだとmmvc_client_installer_15.exeの 保存先に展開するため、
そのまま『Extract』を押す。

完了すると『mmvc_client_installer_15』フォルダが作られます。

実行後のエクスプローラー画面。
『mmvc_client_installer_15』フォルダが増えている。

中身はこのようになってます。

『mmvc_client_installer_15』フォルダ内。
いくつかファイルがあるが、実際のボイチェンソフトは binフォルダ内にある。


変換元音声の用意

非リアルタイムボイチェンに使用する音声ファイルを用意します。
特に問題がなければ『録音編』で録音した音声ファイルの
いずれかを使用します。
音声ファイルをコピーし、.onnxファイル等と同じフォルダに
配置してください。

音声ファイルの配置。
今回はemotion005.wavをコピー・使用することにした。

なお、指定するファイルは24000Hz, 16bit, 1ch(モノラル)
である必要があります。
自身の音声ファイルがこのパラメータでない場合は、
Googleドライブにある音声ファイルが
このパラメータに変換されている
ため
そちらをダウンロード、指定してください。
パラメータ変換された音声ファイルは
マイドライブ/MMVC_Trainer-v1.5.0.0_SiFiGAN/dataset/00_myvoice/wav
フォルダに存在します。

Googleドライブ上でパラメータ変換された音声ファイル。
元の音声ファイルはback_upフォルダに残っている。
今回必要なのは
マイドライブ/MMVC_Trainer-v1.5.0.0_SiFiGAN/dataset/00_myvoice/wav
フォルダにあるいずれかの音声ファイルになる。
どれか1つを.onnxファイル等があるフォルダにダウンロードする。


音声デバイスの取得

MMVC_Clientによる音声変換を行う際は、
リアルタイム・非リアルタイムともに
使用する入力・出力のデバイスを設定する必要があります。
パソコンに入出力デバイスとして何が登録されているかは
『mmvc_client_installer_15』フォルダにある
『output_audio_device_list.exe』で確認できます。
『output_audio_device_list.exe』を
ダブルクリックで実行してください。

『mmvc_client_installer_15』フォルダの 『output_audio_device_list.exe』

実行すると、数秒黒い画面が出て、すぐ消えます。
黒い画面が消えると、『mmvc_client_installer_15』フォルダに
『audio_device_list.txt』が作成されています。
『audio_device_list.txt』を開いてください。

『output_audio_device_list.exe』実行後。
『audio_device_list.txt』が増えている。
audio_device_list.txtの中身。
この画像は記事執筆者の場合であり、 内容はパソコンによって変化する。
音声入力デバイスは行頭に『入力:』、
音声出力デバイスは行頭に『出力:』、
入出力デバイスは行頭に『入出力:』と書かれる。

『audio_device_list.txt』に書かれているデバイスから、
ボイチェンで使用するマイク『入力』と
変換結果出力先のスピーカー/ヘッドホン『出力』を選びます。

同じ名前のデバイスが複数出ることがあります。
その場合は『番号が低い方』を選んでください。

使用するデバイスの確認。
ここでは『入力』を "ライン (Steinberg UR22mkII ), MME" に、
『出力』を "line_out_sync (Yamaha SYNCROOM , MME"にする。
下にデバイス名までは同名の
"ライン (Steinberg UR22mkII ), Windows DirectSound"
が存在するが、こちらは使わないようにする。

ここで確認した入力・出力デバイスは後述の
『myprofile.conf』の編集で記入します。


非リアルタイム用にmyprofile.conf編集(Client_v0.5)

MMVC_Client(ボイチェンソフト)は、
先程ダウンロードした『myprofile.conf』の設定を読み込んで動作します。
myprofile.confを編集することで、
リアルタイムボイチェンではなく
非リアルタイムボイチェンとして使う事ができます。

『myprofile.conf』を右クリックし、
『プログラムから開く』から
メモ帳などのテキストエディタを選び、開いてください。

『myprofile.conf』を開く。
内容はテキストのため、テキストエディタで開ける。
記事執筆者はサクラエディタを使用している。

中身はこのようになってます。

myprofile.confの中身

この内、"input_device1"を『音声デバイスの取得』の
audio_device_list.txtで選んだ入力デバイス名に、
"output_device"を出力デバイス名に変更します。
記事執筆者の場合は
"input_device1": "ライン (Steinberg UR22mkII ), MME",
"input_device2": false,
"output_device": "line_out_sync (Yamaha SYNCROOM , MME",
となります。

変更後のmyprofile.confの"device"部分。
audio_device_list.txtから入力・出力デバイス名を コピーして
input_device1, output_deviceの名前を 上書きする形で貼り付けた。

次に、 "path": { 以降は、以下のように書き換えます。
ただし下記のpathは、.onnxファイル等を
D:\mmvcrt\note\v15\07kakunin
フォルダに保存した場合の記述内容になります。
pathの各項目, input_filename, output_filenameの
フォルダパス箇所部分
D:\\mmvcrt\\note\\v15\\07kakunin
は、各自の保存フォルダパス書き換えてください。

  "path": {
    "json": "D:\\mmvcrt\\note\\v15\\07kakunin\\config.json",
    "model": "D:\\mmvcrt\\note\\v15\\07kakunin\\G_latest_99999999.onnx",
    "correspondence":"D:\\mmvcrt\\note\\v15\\07kakunin\\train_config_Correspondence.txt",
    "noise": "D:\\mmvcrt\\note\\v15\\07kakunin\\noise.wav"
  },
  "others": {
    "use_nr": false,
    "voice_selector": false,
    "voice_list": [101, 108, 6, 30],
    "voice_label": ["ずんだもん", "目標話者", "女性の声", "男性の低い声"],
    "voice_f0": [1.0, 1.0, 1.0, 1.0],
    "input_filename": "D:\\mmvcrt\\note\\v15\\07kakunin\\emotion005.wav",
    "output_filename": "D:\\mmvcrt\\note\\v15\\07kakunin\\emotion005_output.wav"
  }
}

"input_filename"と"output_filename"の
emotion005.wavの箇所は、
変換元として用意したファイル名に変えてください。

書き換え時の注意点を2点挙げます。この点を守ってください。

  • フォルダ、ファイル名に半角英数_(アンダーバー半角)
    以外の文字を含めない
     ひらがな、かたかな、漢字、Δなどの全角の記号はエラーになります

  • エクスプローラーで「\」(半角の¥マーク)と書かれている場所は
    『myprofile.conf』では「\\」と二連続に書き換える
     プログラムの関係で、二連続の\\にしないとファイルが認識できません

  • others欄のinput_filename, output_filename行を追加する時、
    上の行にあたる"voice_f0"の行末に
    ,
    (カンマ)を加える

    ,(カンマ)を加えないと正常にファイルが読み込めません。

編集後は以下のようなmyprofile.confになります。
繰り返しますが、input,outputデバイスやpathは
パソコンによって変わるため、各自書き換えをお願いします。

編集後のmyprofile.conf。赤枠の箇所が変更・追加された点になる。
ipnut_filename, output_filename追加にあたって
others欄のvoice_f0の行末に,(カンマ)が増えているなど、微妙な差異があるため注意。

参考として、上記のmyprofile.confを下記URLにアップロードします。
比較用としてご利用ください。

https://ux.getuploader.com/lll_opip/download/14

非リアルタイムボイチェン実行(v1.5)

ここまで設定できたら、あとはソフトを起動するだけです。
mmvc_client_installer_15/bin
フォルダ内に存在する
『mmvc_client.exe』をダブルクリックして実行してください。

ボイチェンソフトとなるmmvc_client.exe。
天才少女のアイコンが目印。

実行すると黒い画面が表示されます。
数秒すると、『myprofile.conf を選択してください』と表示され
ファイル選択画面が出ます。
ファイル選択画面では、先程編集した
『myprofile.conf』を選び、『開く』を押してください。

mmvc_client.exe実行中。
少しすると『myprofile.conf を選択してください』と表示される。
myprofile.confの選択画面。
先程編集したmyprofile.confを選んで『開く』。

選択後、最初に
『path内で指定したconfig.jsonのパス』
が表示されます。
myprofile.confの表示でない点に注意してください。
この表示が正常です。

myprofile.conf選択直後の画面。
myprofile.confではなく、その中で記述した
config.jsonのパスが表示される。
まぎらわしいが、これが正常な動作になる。

次に『モデルを読み込んでいます。少々お待ちください。』
と出ますので、数秒ほど読み込みを待ちます。

mmvc_client.exe実行中。 モデル(.onnxファイル)読み込み中の表示。

次に、
『モデルの読み込みが完了しました。
音声の入出力の準備を行います。
少々お待ちください。
準備が完了しました。VC開始します。』
と表示されます。
リアルタイムボイチェンの場合であれば
この表示からボイチェンが起動状態になります
が、
非リアルタイムの場合はこの表示からさらに待ちます。

mmvc_client.exe実行中。ボイチェン開始の表示。
リアルタイムボイチェンであれば、この表示からボイチェン開始になる。
今回は非リアルタイムボイチェンであり、 内部で音声変換中のため更に待つ。

最後に一瞬だけ『vc_finish』と表示されて、
すぐに画面が消えます。
画面が消えたら非リアルタイムボイチェンが完了しています。

mmvc_client.exe実行中。ボイチェン終了の表示。
『vc_finish』と出たら音声変換が完了になる。
この表示から1秒もせず画面が消える。
失敗時はエラー表示とともに黒画面が出たままになるため、
画面が消えたら変換成功と見てよい。

非リアルタイムの変換結果は、
.onnxファイルや変換前音声ファイルと同じフォルダに存在します。

非リアルタイムボイチェン実行後のエクスプローラー。
新しく『emotion005_output.wav』が作られている。 これが変換後音声になる。

変換後音声は実際に再生したり、
Audacityにドラッグアンドドロップで内容を確認できます。
変換後音声は開始と終了に0.4~0.5秒の無音時間がありますが、
これはリアルタイム変化時にも生じる
『変換処理によるタイムラグ』です。
概ねこのくらいの変換遅延はある、という事になります。

Audacityでの変換音声の波形表示。
音声開始までに0.46秒ほどの無音がある。
これが概ねの「リアルタイム変換時の遅延時間」になる。

遅延時間の削減や、反対に遅延時間を増やして品質を上げる方法
『リアルタイム編』で解説します。

音声を聞いてみて、特に問題が無ければ
非リアルタイムボイスチェンジ、および
『確認編』は終了です。お疲れ様でした。
変換に違和感がある場合は、『学習編』で学習を再開、
もう少し学習を進めてから改めて
『確認編』をONNX化から順に実行してみてください。


学習結果をONNXファイルに変換する(v1.3)

基本的にv1.5と同じですが、一部差異があります。

  • 使用するのは
    『マイドライブ/MMVC_Trainer-main/notebook/04_Export_ONNX.ipynb』
    ファイルになる。
    ファイルがない場合は、以下のURLからダウンロードし、
    Googleドライブの
    マイドライブ/MMVC_Trainer-main/notebook/
    にアップロードする。
    https://github.com/isletennos/MMVC_Trainer/blob/main/notebook/04_Export_ONNX.ipynb

  • 『0 ノートブックの準備』から『4 ライブラリのインストール』
    まで実行した後に
    『5 学習結果をONNXファイルに変換』へ飛ぶ。

  • 『5 学習結果をONNXファイルに変換』において
    『model_save_dic』は『20220306_24000』のままでよい。
    そのまま●▶ボタンを押して実行する。

04_Export_ONNX.ipynb 
右にある↓ボタン(Download raw file)からダウンロードする

以上で
『マイドライブ/MMVC_Trainer-main/notebook/logs/20220306_24000』
フォルダに
『G_latest_99999999.onnx』
ファイルが作成されます。


必要ファイルのダウンロード

ダウンロードする必要があるファイルは2つあります。

  • 『マイドライブ/MMVC_Trainer-main/notebook/logs/20220306_24000』
    フォルダに作成された『G_latest_99999999.onnx』ファイル

  • 『マイドライブ/MMVC_Trainer-main/notebook/logs/20220306_24000』
    フォルダに存在する『config.json』ファイル
    の2つです。

保存場所は、
半角英数と記号のみのパスになるフォルダに保存してください。


非リアルタイムボイスチェンジする(v1.3)

基本的にv1.5と同じですが、差異が複数あります。

MMVC_Client_v0.3.1.0の入手と展開

MMVC_Trainer_v1.3に対応するソフトは
MMVC_Client_v0.3.1.0です。
MMVC_Client_v0.5.0.0では動かない
ため注意してください。

MMVC_Client_v0.3.1.0は以下のURLからダウンロードできます。

URLに移動したら、『mmvc_client.exe』
をクリックしてダウンロードしてください。
ダウンロード箇所は先程の.onnxファイル等と同じ箇所にしてください。
2GB近くあるため、パソコンの残り容量に注意してください。

mmvc_client.exeのダウンロード。

ブラウザによっては『安全でない』として
ダウンロードできない事があります。
その際は各ブラウザの機能に沿って、
DL停止状態を解除して保存してください。

保存したらエクスプローラーで『mmvc_client.exe』
を保存した場所に移動します。
『mmvc_client.exe』をダブルクリックして実行してください。
セキュリティで実行を止められる場合は、
各セキュリティの手順に沿って実行まで進めてください。

Windowsセキュリティで止められた場合。
『詳細情報』を押してから『実行』で動く。

実行すると、MMVC_Clientフォルダの展開先設定画面が出ます。
そのまま『Extract』を押してください。

mmvc_client.exe実行中。
フォルダを展開する先を聞かれる。
デフォルトだとmmvc_client.exeの保存先に展開するため、
そのまま『Extract』を押す。

完了すると『mmvc_client』フォルダが作られます。

実行後のエクスプローラー画面。
『mmvc_client』フォルダが増えている。

中身はこのようになってます。

『mmvc_client』フォルダ内。
いくつかファイルがあるが、実際のボイチェンソフトは binフォルダ内にある。


変換元音声の用意(Client_v0.5とほぼ同じ)

非リアルタイムボイチェンに使用する音声ファイルを用意します。
特に問題がなければ『録音編』で録音した音声ファイルの
いずれかを使用します。
音声ファイルをコピーし、.onnxファイル等と同じフォルダに
配置してください。
v1.3の場合は
『Colabで録音』したなら、音声をGoogleドライブの
マイドライブ/MMVC_Trainer-main/dataset/textful/00_myvoice/wav
フォルダから、いずれか1つの音声ファイルをダウンロードします。
『Audacityで録音』したなら、『ecodeco』フォルダにある
いずれか1つの音声ファイルを
.onnxファイル等と同じフォルダにコピーします。

マイドライブ/MMVC_Trainer-main/dataset/textful/00_myvoice/wav の音声ファイル。
いずれか1つを エクスプローラーの.onnxファイルと同じ場所にダウンロードする。
今回はemotion005.wavを使用する。


音声デバイスの取得(Client_v0.5と同じ)

フォルダが『mmvc_client_installer_15』ではなく
『mmvc_client』である以外は完全に同じ
のため、
『音声デバイスの取得』を参照して
使用する音声入力・出力デバイスを選んでください。


非リアルタイム用にmyprofile.conf編集(Client_v0.3)

MMVC_Client(ボイチェンソフト)は、
『myprofile.conf』の設定を読み込んで動作します。
myprofile.confを編集することで、リアルタイムボイチェンではなく
非リアルタイムボイチェンとして使う事ができます。

MMVC_Client_v0.3.1.0のmyprofile.confは、
先程展開したmmvc_clientフォルダのconfフォルダに存在します。
confフォルダのmyprofile.confを、
.onnxファイル等を保存しているフォルダにコピーしてください。

『mmvc_client/conf』フォルダにある myprofile.confファイル。
これを.onnxファイル等があるフォルダに コピーして使用する。

コピー後、『myprofile.conf』を右クリックし、『プログラムから開く』から
メモ帳などのテキストエディタを選び、開いてください。
中身は以下のようになってます。

myprofile.confの中身(MMVC_Client_v0.3.1.0の場合)

この内、"input_device1"を『音声デバイスの取得』の
audio_device_list.txtで選んだ入力デバイス名に、
"output_device"を出力デバイス名に変更します。
記事執筆者の場合は
"input_device1": "ライン (Steinberg UR22mkII ), MME",
"input_device2": false,
"output_device": "line_out_sync (Yamaha SYNCROOM , MME",
となります。

変更後のmyprofile.confの"device"部分。
audio_device_list.txtから入力・出力デバイス名を コピーして
input_device1, output_deviceの名前を 上書きする形で貼り付けた。

次に、 "path": { 以降は、以下のように書き換えます。
ただし下記のpathは、.onnxファイル等を
D:\mmvcrt\note\v15\07kakunin
フォルダに保存した場合の記述内容になります。
pathの各項目, input_filename, output_filenameの
フォルダパス箇所部分
D:\\mmvcrt\\note\\v15\\07kakunin
は、各自の保存フォルダパス書き換えてください。

  "path": {
    "json": "D:\\mmvcrt\\note\\v15\\07kakunin\\config.json",
    "model": "D:\\mmvcrt\\note\\v15\\07kakunin\\G_latest_99999999.onnx",
    "noise": "D:\\mmvcrt\\note\\v15\\07kakunin\\noise.wav"
  },
  "others": {
    "use_nr": false,
    "voice_selector": false,
    "voice_list": [100, 108, 107, 6, 30, 108],
    "voice_label": ["ずんだもん", "目標話者", "自分の声", "女性の声", "男性の低い声", "女性の高い声"],
    "input_filename": "D:\\mmvcrt\\note\\v15\\07kakunin\\emotion005.wav",
    "output_filename": "D:\\mmvcrt\\note\\v15\\07kakunin\\emotion005_output.wav"
  }
}

"input_filename"と"output_filename"のemotion005.wavの箇所は、
変換元として用意したファイル名に変えてください。

書き換え時の注意点を2点挙げます。この点を守ってください。

  • フォルダ、ファイル名に半角英数_(アンダーバー半角)
    以外の文字を含めない
     ひらがな、かたかな、漢字、Δなどの全角の記号はエラーになります

  • エクスプローラーで「\」(半角の¥マーク)と書かれている場所は
    『myprofile.conf』では「\\」と二連続に書き換える
     プログラムの関係で、二連続の\\にしないとファイルが認識できません

  • others欄のinput_filename, output_filename行を追加する時、
    上の行にあたる"voice_label"の行末に
    ,
    (カンマ)を加える

    ,(カンマ)を加えないと正常にファイルが読み込めません。

編集後は以下のようなmyprofile.confになります。
繰り返しますが、input,outputデバイスやpathは
パソコンによって変わるため、各自書き換えをお願いします。

編集後のmyprofile.conf(Client_v0.3.1)。
赤枠の箇所が変更・追加された点になる。
ipnut_filename, output_filename追加にあたって
others欄のvoice_labelの行末に,(カンマ)が増えている
など、 微妙な差異があるため注意。

参考として、上記のmyprofile.confを下記URLにアップロードします。
比較用としてご利用ください。

https://ux.getuploader.com/lll_opip/download/15


非リアルタイムボイチェン実行(v1.3)

フォルダが『mmvc_client_installer_15』ではなく
『mmvc_client』フォルダになる以外は
全て『非リアルタイムボイチェン実行(v1.5)』と同じです。
『非リアルタイムボイチェン実行(v1.5)』を参照してください。

音声を聞いてみて、特に問題が無ければ
非リアルタイムボイスチェンジ、および『確認編』は終了です。
お疲れ様でした。
変換に違和感がある場合は、『学習編』で学習を再開、
もう少し学習を進めてから改めて
『確認編』をONNX化から順に実行してみてください。


エラーの例・原因と対策(v1.5, v1.3共通)

MMVC_Trainer-v1.5.0.0(MMVC_Client_v0.5.0.0),
MMVC_Trainer-main(MMVC_Client_v0.3.1.0),
共通で、エラーが生じる事があります。
以下は一例になります。合わせて原因と対策も書いています。

No such file or directory(ONNX化、非リアルタイムVC)

『No such file or directory』といった文面の
エラーが出ることがあります。
意味は『そのようなファイルまたはディレクトリ(フォルダ)が
見つからない』
というものです。
このエラーが出る原因は、例としては以下のようになります。
ONNX化:
・Googleドライブをマウントしていない
・『学習結果をONNXファイルに変換』より前の手順を飛ばしている
・『学習結果をONNXファイルに変換』の『model_save_dict』が
 『学習』で指定した『modelの保存先ディレクトリ』の名前と違う
・本当にファイルが無い
 (まだG_latest_99999999.pthが出力されていない段階で
 ONNX化をしようとしている)

非リアルタイムVC(Client):
pathの書き方が間違っている
 (全角文字がある、\が1つだけの所がある、
    ファイル名やフォルダ名が違う)

よくよく見ると誤字脱字がある事は相当多いため、
『No such file or directory』が出たら
ファイル名やフォルダ名を意識してください。
myprofile.confの場合は書き方のルールもあるため
特にこのエラーが出ます。

ONNX化で出る場合はTrain_MMVC.ipynbの序盤
(0~3あたり)を実行した上で進めてください。


Invalid control character at: line 3 column 25 (char 40)(VC)

3,25,40の数字の箇所は変わることがあります。
意味は『この数字の場所に、無効な文字がある』です。
言い換えると『myprofile.confの表記に異常がある』です。
パターンとして
・元々、小文字(false)とあった場所が大文字(False)になっている
カンマ(,)が行末に不足している、あるいは過剰である
ダブルクォーテーション(")が不足している、あるいは過剰である
バックスラッシュ(半角の¥)が2連続(\\)になっていない
などがあります。

上記の数字の場合は『line 3 column 25』
=『(myprofile.confの)3行目の25文字目』に異常がある、
という文面になります。
その位置ではなく前後の文字や行に異常がある時もあるため、
エラーの数字周辺の表記を確認してみてください。


Invalid sample rate(非リアルタイムVC)

意味は『(デバイスはその)サンプリング周波数が無効である』
というものです。
MMVCは24000Hzが仕様ですが、マイクやスピーカーは
24000Hzに対応していない事があります。
myprofile.confで指定したマイク・スピーカーが
24000Hz非対応の時に生じるエラー
です。

VB-CABLESYNCROOM
VoiceMeeterBananaなどの仮想オーディオを経由する事で回避できます。
詳しくはリアルタイム編で説明します。


Model requires 9 inputs. Input Feed contains 5(MMVC_Client)

意味は『モデル(.onnxファイル)の要求入力にズレがある』です。
原因は『MMVC_TrainerとMMVC_Clientのバージョンが合ってない』です。
MMVC_Trainer-v1.5.0.0のデータを
MMVC_Client_v0.3.1.0で使おうとすると発生します。

MMVC_Trainer-main(MMVC_Trainer_v1.3.2.5)は
MMVC_Client_v0.3.1.0を使ってください。

MMVC_Trainer-v1.5.0.0_SiFiGAN(MMVC_Trainer_v1.5.0.0)は
MMVC_Client_v0.5.0.0を使ってください。


確認編まとめ

  • 学習結果をONNXファイルに変換する(v1.5)
     04_Train_MMVC.ipynbの0,1,2,3,8を実行してONNX化
     4ファイルをDL

  • 非リアルタイムボイスチェンジする(v1.5)
     MMVC_Client_v0.5.0.0をDL・展開
     デバイスやファイルを設定、
     myprofile.confを編集してから実行

  • 学習結果をONNXファイルに変換する(v1.3)
     02_Train_MMVC.ipynbの0,1,2,7を実行してONNX化
     2ファイルをDL

  • 非リアルタイムボイスチェンジする(v1.3)
     MMVC_Client_v0.3.1.0をDL・展開
     デバイスやファイルを設定、
     myprofile.confを編集してから実行

  • エラーの例・原因と対策(v1.5, v1.3共通)
     No such file or directory:書き間違い
     Invalid control character:書き間違い
     Invalid sample rate:仮想オーディオデバイス使用
     Model requires 9 inputs. :TrainerとClientのバージョンを合わせる


最後に(開発者支援)

開発者である天王洲アイルさん(@IsleTennos)は
PIXIV FANBOXを開設しています。
有料プランもあるため、資金の支援が可能です。
MMVC開発を支援したい方は是非支援をお願いします。
無料プランでMMVC開発状況も書く(らしい)ため、
リンク先を登録しておくと便利だと思います。
FANBOXは下記URLになります。


公式サポート音声募集中

MMVC公式サポート音源は常時募集中です(FAQより)
ご自身の声をMMVC公式サポート音源にしたい場合は、
開発者である天王洲アイルさんのTwitter(https://twitter.com/IsleTennos)か
MMVC Discordサーバー(https://discord.com/invite/2MGysH3QpD)のIsleTennos#5740(天王洲アイルさん)に
DMにてお問合せください。


MMVCで分からない事があったら(FANBOXで質問)

不明点はMMVCのDiscordサーバーで質問可能ですが、
それとは別の質問用窓口が作成されました。
下記の、MMVC開発者天王洲アイルさんのpixivFAOBOXにて質問可能です。
MMVC関係で分からないことがあり、
Discordに入る事が難しい、質問しにくい、といった場合は
『MMVCに関する開発者に問い合わせ』にて質問してみてください。



次回予告(リアルタイム編A_MMVC_Clientで実行)

次回はようやく『リアルタイム編』として、
『MMVC_Client』というMMVC用ソフトを使用した
リアルタイムボイチェンを行います。

先に言うと今回書いたmyprofile.confのothers欄から
以下の部分を削除すればリアルタイムで動きます。
,
"input_filename": "D:\mmvcrt\note\v15\07kakunin\emotion005.wav",
"output_filename": "D:\mmvcrt\note\v15\07kakunin\emotion005_output.wav"
(最初のカンマ(,)は、input_filenameの上の行の末尾に付くカンマを表しています)。

リアルタイムでの動作準備は『確認編』でほぼ説明していますが、
例えば変換音声をDiscordに流したい時の話や
より速度を出す/品質を上げる方法のmyprofile.conf設定など、
リアルタイム関連の話をする必要があるため
リアルタイム編A_MMVC_Clientで実行』として記述予定です。

また、MMVC_Client以外にも
様々な音声変換ソフトに対応しているVC Clientでも
リアルタイム変換ができます。

こちらは『リアルタイム編B_VC_Clientで実行』として記述予定です。


関連リンク


Googleドライブ:https://drive.google.com/drive/
Google Colab(Google Colaboratory):https://colab.research.google.com/

MMVC_Client_v0.5.0.0(MMVC_Trainer-v1.5.0.0_SiFiGAN用):https://github.com/stealthinu/MMVC_Client/releases/tag/v0.5.0.0
MMVC_Client_v0.3.1.0(MMVC_Trainer-main, MMVC_Trainer v1.3.2.5用):https://github.com/isletennos/MMVC_Client/releases/tag/v0.3.1.0

myprofile.conf 非リアルタイムVC用サンプル(MMVC_Client_v0.5.0.0用)
https://ux.getuploader.com/lll_opip/download/14

myprofile.conf 非リアルタイムVC用サンプル(MMVC_Client_v0.3.1.0用)
https://ux.getuploader.com/lll_opip/download/15

VB-CABLE:https://vb-audio.com/Cable/
YAMAHA SYNCROOM:https://syncroom.yamaha.com/play/dl/
VoiceMeeterBanana:https://vb-audio.com/Voicemeeter/banana.htm

開発者Twitter:https://twitter.com/IsleTennos
開発者FANBOX:https://mmvc.fanbox.cc/
MMVC Discordサーバー:https://discord.com/invite/2MGysH3QpD

MMVCニコニコ大百科:https://dic.nicovideo.jp/a/mmvc
記事執筆者Twitter:https://twitter.com/pipo_lll
記事執筆者Youtube:http://youtube.com/@pipo_lll
記事執筆者ニコニコ:https://www.nicovideo.jp/user/653583/
Imずんだもん王への道(旧版のMMVC導入解説動画)
ニコニコ Youtube
記事執筆者Note:https://note.com/pipo_lll

記事執筆者_欲しい物リスト(何かいただけると嬉しいです)
https://amzn.to/37XNPOL

講座記事一覧 最初と編まとめ
前回:学習編 次回:リアルタイム編A_MMVC_Clientで実行


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?