Skip to content

AIを使ったリアルタイムボイスチェンジャー(Trainer)

Notifications You must be signed in to change notification settings

iTahobi/MMVC_Trainer

 
 

Repository files navigation

MMVC_Trainer

AIを使ったリアルタイムボイスチェンジャーのモデル学習用ツール

Description

AIを使ったリアルタイムボイスチェンジャー「MMVC(RealTime-Many to Many Voice Conversion)」
で使用するモデルを学習するためのリポジトリです。
google colaboratoryを用いることで、個人の環境に依存せず、かつ簡単に機械学習の学習フェーズを実行可能です。

MMVC_Client

MMVCを実際に動かすClient software
https://github.com/isletennos/MMVC_Client

concept

「簡単」「だれでも」「好きな声に」「リアルタイムで」

Demo

作成中

Requirement

・Google アカウント

Install

このリポジトリをダウンロードして、展開、展開したディレクトリをgoogle drive上にアップロードしてください。

Usage

学習用のデータセットの作成および配置

  1. 自分の声の音声データとその音声データに対応するテキスト、変換したい声の音声データとその音声データに対応するテキストを用意します。
    この時、用意する音声(自分の声の音声データ/変換したい声の音声データ共に)は24000Hz 16bit 1chを強く推奨しております。

  2. 下記のようなディレクトリ構成になるように音声データとテキストデータを配置します。
    textfulの直下には2ディレクトリになります。

dataset
├── textful
│   ├── 000_myvoice
│   │   ├── text
│   │   │   ├── s_voice_001.txt
│   │   │   ├── s_voice_002.txt
│   │   │   ├── ...
│   │   └── wav
│   │        ├── s_voice_001.wav
│   │        ├── s_voice_002.wav
│   │        ├── ...
│   └── 001_target
│       ├── text
│       │   ├── t_voice_001.txt
│       │   ├── t_voice_002.txt
│       │   ├── ...
│       └── wav
│            ├── t_voice_001.wav
│            ├── t_voice_002.wav
│            ├── ...      
│        
└── textless

モデルの学習方法

  1. 下記リンクより、「G_232000.pth」「D_232000.pth」をダウンロード。 https://drive.google.com/drive/u/8/folders/1ZZ1tTPuXtwWZugJiMCAjvlz-xPdLQV6M

  2. 「G_232000.pth」「D_232000.pth」をfine_modelに移動。

  3. notebookディレクトリにある「Create_Configfile.ipynb」をgoogle colab 上で実行、学習に必要なconfigファイルを作成

  4. 学習したコンフィグファイル(json)の

    • "eval_interval"
      modelを保存する間隔です。
    • "batch_size"
      colabで割り当てたGPUに合わせて調整してください。

    上記2項目を環境に応じて設定ください。

  5. notebookディレクトリにある「Train_MMVC.ipynb」をgoogle colab 上で実行してください。
    logs/にモデルが生成されます。

学習したモデルの性能検証

  1. notebookディレクトリにある「MMVC_Interface.ipynb」をgoogle colab 上で実行

Q&A

Q1. 下記のようなエラーが発生しました。どうしたらよいですか?

Traceback (most recent call last):
  File "train_ms.py", line 302, in <module>
    main()
  File "train_ms.py", line 50, in main
    mp.spawn(run, nprocs=n_gpus, args=(n_gpus, hps,))
  File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 200, in spawn
    return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
  File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 158, in start_processes
    while not context.join():
  File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 119, in join
    raise Exception(msg)
Exception: 

-- Process 0 terminated with the following error:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/torch/multiprocessing/spawn.py", line 20, in _wrap
    fn(i, *args)
  File "/content/drive/MyDrive/MMVC_Trainer/train_ms.py", line 126, in run
    train_and_evaluate(rank, epoch, hps, [net_g, net_d], [optim_g, optim_d], [scheduler_g, scheduler_d], scaler, [train_loader, eval_loader], logger, [writer, writer_eval])
  File "/content/drive/MyDrive/MMVC_Trainer/train_ms.py", line 172, in train_and_evaluate
    hps.data.mel_fmax
  File "/content/drive/MyDrive/MMVC_Trainer/mel_processing.py", line 105, in mel_spectrogram_torch
    center=center, pad_mode='reflect', normalized=False, onesided=True)
  File "/usr/local/lib/python3.7/dist-packages/torch/functional.py", line 465, in stft
    return _VF.stft(input, n_fft, hop_length, win_length, window, normalized, onesided)
RuntimeError: cuFFT doesn't support signals of half type with compute capability less than SM_53, but the device containing input half tensor only has SM_37

A1. お手数ですがコンフィグファイル(json)の
"fp16_run": true,

"fp16_run": false,
に変更ください。

順次更新

Note

なにか不明点があればお気軽にご連絡ください。

MMVCコミュニティサーバ(discord)

開発の最新情報や、不明点のお問合せ、MMVCの活用法などMMVCに関するコミュニティサーバです。
https://discord.gg/PgspuDSTEc

Special thanks

Reference

https://arxiv.org/abs/2106.06103
https://github.com/jaywalnut310/vits

Author

Isle Tennos
Twitter : https://twitter.com/IsleTennos

About

AIを使ったリアルタイムボイスチェンジャー(Trainer)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 82.1%
  • Jupyter Notebook 17.1%
  • Cython 0.8%