Home

Awesome

MMVC_Trainer

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

Description

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

Concept

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

Demo

制作中 (v1.3.0.0)
https://www.nicovideo.jp/watch/sm40386035 (v1.2.0.0)

MMVCの利用規約 及び MMVC用音源の配布先(2022/08/10)

MMVCの利用規約

MMVC(以下本ソフトウェア)の利用規約は、基本的にMITライセンスに準拠します。

  1. 本ソフトウェアは、コピー利用、配布、変更の追加、変更を加えたものの再配布、商用利用、有料販売など、どなたでも自由にお使いいただくことができます。
  2. ライセンスの記載が可能なプラットフォームで使用される場合、下記に示すライセンスパターンのどちらかの記載をお願いいたします。
    VRChatでの使用など、ライセンス記載が困難な場合、記載は不要です。
  3. 本ソフトウェアについて、開発者はいかなる保証もいたしません。
    また、本ソフトウェアを利用したことによって生じる問題について、開発者は一切の責任を負いかねます。
  4. 学習元として用いる音声データについては、必ず使用前にデータの権利者より許諾を得てください。
    また、音声データの配布元の利用規約内で利用してください。

MMVC公式配布の音声データの利用規約とダウンロード先について

本ソフトウェアの利用規約とは別に、下記音声データを利用する場合、それぞれの音声ライブラリ提供者様の利用規約に同意する必要があります。
※本ソフトウェアでは下記企業様・団体様に特別に許可を頂き、音声データを本ソフトウェア用に改変、再配布を行っております。

SSS LLC.

[利用規約][ずんだもん 音声データ] ※本ソフトウェアに同梱しているものと同様の音声データになります
[利用規約][九州そら 音声データ]
[利用規約][四国めたん 音声データ]
[利用規約][東北きりたん 音声データ]

春日部つむぎプロジェクト様

[利用規約][春日部つむぎ 音声データ]

ライセンス表記について

ずんだもん/四国めたん/九州そら/春日部つむぎ/東北きりたん のキャラクターを利用する場合に限り、下記ライセンスパターンに加えて、どのツールで作られた音声かわかるように

MMVC:ずんだもん
MMVC:ずんだもん/四国めたん

等の記載を下記ライセンスパターンと一緒にご記載ください。
こちらにつきましても、VRChatでの使用など、ライセンス記載が困難な場合、記載は不要です。

ライセンスパターン 1

Copyright (c) 2022 Isle.Tennos 
Released under the MIT license 
https://opensource.org/licenses/mit-license.php

ライセンスパターン 2 (開発者推奨)

MMVCv1.x.x.x(使用バージョン) 
Copyright (c) 2022 Isle.Tennos 
Released under the MIT license 
https://opensource.org/licenses/mit-license.php
git:https://github.com/isletennos/MMVC_Trainer
community(discord):https://discord.gg/2MGysH3QpD

Requirement

・Google アカウント

Install

下記ボタンからColab上で自分のGoogle Drive上にインストールしてください。

Open In Colab

その後、Google Driveを開いて「マイドライブ > MMVC_Trainer > notebook」の中の各ノートを開いて実行してください。

Usage

チュートリアル : ずんだもんになる

本チュートリアルではずんだもん(SSS LLC.)の音声データを利用します。
そのため、MMVCの利用規約とは別に[ずんだもん 利用規約]を遵守する必要があります。

Ph1. 自分の音声の録音と音声データの配置

  1. 自分の声の音声データを録音します。

    • notebookディレクトリにある「00_Rec_Voice.ipynb」から自分の音声を録音してください。
    • もしくは、自分のPCで録音してGoogle Drive上に配置してください。
      JVSコーパスやITAコーパス等を台本にし、100文程度読み上げます。
      また、録音した音声は24000Hz 16bit 1chである必要があります。
      ※MMVC用にテキストを分割したITAコーパスです。ご利用ください。
      https://drive.google.com/file/d/14oXoQqLxRkP8NJK8qMYGee1_q2uEED1z/view?usp=sharing
  2. dataset/textful/00_myvoice に音声データとテキストデータを配置します。

    • 00_Rec_Voice.ipynbを利用して録音した場合はこのように配置されていますのでそのままで大丈夫です。
    • 最終的に下記のようなディレクトリ構成になるようにファイルを配置してください。
dataset
├── textful
│   ├── 00_myvoice
│   │   ├── text
│   │   │   ├── emoNormal_001.txt
│   │   │   ├── emoNormal_002.txt
│   │   │   ├── ...
│   │   └── wav
│   │        ├── emoNormal_001.wav
│   │        ├── emoNormal_002.wav
│   │        ├── ...
│   │── 01_target
│   │   ├── text
│   │   └── wav
│   │
│   └── 1205_zundamon
│       ├── text
│       │   ├── emoNormal_001.txt
│       │   ├── emoNormal_002.txt
│       │   ├── ...
│       └── wav
│            ├── emoNormal_001.wav
│            ├── emoNormal_002.wav
│            ├── ... 
│        
└── textless

Ph2. モデルの学習方法

  1. 事前学習済みデータを配置します。

    • 00_Clone_Repo.ipynbを使ってインストールした場合は既に事前学習済みデータも配置済みなのでそのままで大丈夫です。
    • 00_Clone_Repo.ipynbを利用しなかった場合や「fine_model」ディレクトリに下記ファイルが存在しなかった場合、以下の手順でファイルを配置してください。
      1. 下記リンクより、「G_v13_20231020.pth」「D_v13_20231020.pth」をダウンロード。
        https://huggingface.co/MMVC/prelearned-model/tree/main
      2. 「G_v13_20231020.pth」「D_v13_20231020.pth」を「fine_model」ディレクトリに配置します。(良く忘れるポイントなので要注意!)
  2. notebookディレクトリにある「01_Create_Configfile.ipynb」をGoogle Colab 上で実行、学習に必要なconfigファイルを作成します

  3. configsに作成されたtrain_config.jsonの

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

    上記2項目を環境に応じて最適化してください。わからない方はそのままで大丈夫です。

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

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

  1. notebookディレクトリにある「03_MMVC_Interface.ipynb」をgoogle colab 上で実行してください。

好きなキャラクターの声になる

Ph1. 自分の音声の録音と音声データの配置 及びターゲット音声データの配置

  1. 自分の声の音声データとその音声データに対応するテキスト、変換したい声の音声データとその音声データに対応するテキストを用意します。
    この時、用意する音声(自分の声の音声データ/変換したい声の音声データ共に)は24000Hz 16bit 1chを強く推奨しております。
  2. 下記のようなディレクトリ構成になるように音声データとテキストデータを配置します。
    textfulの直下には2ディレクトリになります。
    (1205_zundamonディレクトリは無くても問題ありません)
dataset
├── textful
│   ├── 00_myvoice
│   │   ├── text
│   │   │   ├── emoNormal_001.txt
│   │   │   ├── emoNormal_002.txt
│   │   │   ├── ...
│   │   └── wav
│   │        ├── emoNormal_001.wav
│   │        ├── emoNormal_002.wav
│   │        ├── ...
│   │── 01_target
│   │   ├── text
│   │   │   ├── emoNormal_001.txt
│   │   │   ├── emoNormal_002.txt
│   │   │   ├── ...
│   │   └── wav
│   │        ├── emoNormal_001.wav
│   │        ├── emoNormal_002.wav
│   │        ├── ... 
│   └── 1205_zundamon
│       ├── ... 
│        
└── textless

Ph2. モデルの学習方法

以降、「チュートリアル : ずんだもんになる Ph2.」と同様のため割愛

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

以降、「チュートリアル : ずんだもんになる Ph3.」と同様のため割愛

MMVC_Client

プロジェクトによるMMVC Client

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

有志によるMMVC Client

(1) Voice Changer Trainer and Player

様々な環境でMMVCを動かすように作成されたClient software。

#osmiddleトレーニングアプリボイスチェンジャー
1WindowsAnaconda
2Windows(WSL2)Dockerwsl2+ubuntuで確認wsl2+ubuntuで確認
3Windows(WSL2)Anacondaubuntuで確認
4Mac(Intel)Anaconda動作するが激重。(2019, corei5)
5Mac(M1)AnacondaM1 MBA, M1 MBPで確認
6LinuxDockerdebianで確認debianで確認
7LinuxAnaconda
8ColabNotebook確認済み確認済み

ある程度最近のものであればCPUでの稼働も可能です(i7-9700Kで実績あり。下記デモ参照)。

有志によるチュートリアル動画

v1.2.1.x

前準備編ニコニコ動画YouTube
要修正音声ニコニコ動画YouTube
前準備編2ニコニコ動画YouTube
学習編_前1ニコニコ動画YouTube
学習編_前2ニコニコ動画YouTube
学習編_後ニコニコ動画YouTube
リアルタイム編ニコニコ動画YouTube
質問編ニコニコ動画YouTube
応用編_九州そらニコニコ動画YouTube
応用編_音街ウナニコニコ動画YouTube

Q&A

下記サイトをご参考ください。
不明な点がございましたら、以下のdiscordまでお問い合わせください。
https://github.com/isletennos/MMVC_Trainer/wiki/FAQ

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

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

MMVC開発者問い合わせ(PIXIV FANBOX)

MMVCに関する疑問・質問等の 開発者への問い合わせは下記PIXIV FANBOXで受け付けています。 https://mmvc.fanbox.cc/posts/6858033

Special thanks

Reference

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

Author

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