Skip to content

Commit

Permalink
Merge pull request #15 from isletennos/v1.2.0
Browse files Browse the repository at this point in the history
V1.2.0 正式リリース
  • Loading branch information
isletennos committed Apr 28, 2022
2 parents c008f62 + 510f44a commit 5f21f05
Show file tree
Hide file tree
Showing 661 changed files with 1,025 additions and 365 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,4 @@ dmypy.json

#
.history
logs/
133 changes: 111 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,48 @@ https://github.com/isletennos/MMVC_Client
「簡単」「だれでも」「好きな声に」「リアルタイムで」
## Demo
https://www.nicovideo.jp/watch/sm40292061

## 利用規約(2022/04/20)
本ソフトウェアの利用規約は基本的にMITライセンスに準拠します。
VRCでの利用などライセンス記載が不可の場合、記載は不要です。
ライセンスの記載が可能なプラットフォームでの利用の場合、下記クレジットどちらかををご利用ください。
(可能であればパターン2を使ってくれると製作者はうれしいです)

ライセンスパターン 1 
```
Copyright (c) 2021 Isle.Tennos 
Released under the MIT license 
https://opensource.org/licenses/mit-license.php
```

ライセンスパターン 2 
```
MMVCv1.x.x(使用バージョン) 
Copyright (c) 2021 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/PgspuDSTEc
```
## Requirement
・Google アカウント
## Install
このリポジトリをダウンロードして、展開、展開したディレクトリをgoogle drive上にアップロードしてください。
## Usage
### 学習用のデータセットの作成および配置
1. 自分の声の音声データとその音声データに対応するテキスト、変換したい声の音声データとその音声データに対応するテキストを用意します。
この時、用意する音声(自分の声の音声データ/変換したい声の音声データ共に)は**24000Hz 16bit 1ch**を強く推奨しております。
### チュートリアル : ずんだもんになる
#### Ph1. 自分の音声の録音と音声データの配置
1. 自分の声の音声データを録音します。
JVSコーパスやITAコーパス等を台本にし、100文程度読み上げます。
音声の録音ツールは
Audacity
https://forest.watch.impress.co.jp/library/software/audacity/
OREMO
http://nwp8861.web.fc2.com/soft/oremo/
等があります。
また、録音した音声は**24000Hz 16bit 1ch**である必要があります。

2. 下記のようなディレクトリ構成になるように音声データとテキストデータを配置します。
textfulの直下には2ディレクトリになります
2. dataset/textful/000_myvoice に音声データとテキストデータを配置します。
最終的に下記のようなディレクトリ構成になります
```
dataset
├── textful
Expand All @@ -37,49 +68,107 @@ dataset
│   │   ├── s_voice_001.wav
│   │   ├── s_voice_002.wav
│   │      ├── ...
│   └── 001_target
│   │── 001_target
│   │   ├── text
│   │   └── wav
│   │
│   └── 1205_zundamon
│      ├── 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)の

#### Ph2. モデルの学習方法
1. 下記リンクより、「G_180000.pth」「D_180000.pth」をダウンロード。
https://drive.google.com/drive/folders/1XGpW0loNr1KjMtXVVG3WRd47R_ne6_X2?usp=sharing
2. 「G_180000.pth」「D_180000.pth」をfine_modelに配置します。(良く忘れるポイントなので要注意!)
3. notebookディレクトリにある「Create_Configfile_zundamon.ipynb」をgoogle colab 上で実行、学習に必要なconfigファイルを作成します
4. configsに作成されたtrain_config_zundamon.jsonの

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

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

3. notebookディレクトリにある「Train_MMVC.ipynb」をgoogle colab 上で実行してください。
5. notebookディレクトリにある「Train_MMVC.ipynb」をgoogle colab 上で実行してください。
logs/にモデルが生成されます。
### 学習したモデルの性能検証
1. notebookディレクトリにある「MMVC_Interface.ipynb」をgoogle colab 上で実行
## Q&A
下記のリンクをご参考ください。
それでも解決しない場合はお気軽にコミュニティ or 製作者にお問い合わせください。

https://mmvc.readthedocs.io/ja/latest/index.html
#### Ph3. 学習したモデルの性能検証
1. notebookディレクトリにある「MMVC_Interface.ipynb」をgoogle colab 上で実行してください。
### 好きなキャラクターの声になる
#### Ph1. 自分の音声の録音と音声データの配置 及びターゲット音声データの配置
1. 自分の声の音声データとその音声データに対応するテキスト、変換したい声の音声データとその音声データに対応するテキストを用意します。
この時、用意する音声(自分の声の音声データ/変換したい声の音声データ共に)は**24000Hz 16bit 1ch**を強く推奨しております。

2. 下記のようなディレクトリ構成になるように音声データとテキストデータを配置します。
textfulの直下には2ディレクトリになります。
(1205_zundamonディレクトリは無くても問題ありません)

順次更新
```
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
│   │      ├── ...
│   └── 1205_zundamon
│      ├── text
│      │   ├── t_voice_001.txt
│      │   ├── t_voice_002.txt
│      │   ├── ...
│      └── wav
│      ├── t_voice_001.wav
│      ├── t_voice_002.wav
│         ├── ...
│     
└── textless
```
#### Ph2. モデルの学習方法
以降、「チュートリアル : ずんだもんになる Ph2.」と同様のため割愛
#### Ph3. 学習したモデルの性能検証
以降、「チュートリアル : ずんだもんになる Ph3.」と同様のため割愛
## Q&A
下記サイトをご参考ください。
https://mmvc.readthedocs.io/ja/latest/index.html
## Note
なにか不明点があればお気軽にご連絡ください。
## MMVCコミュニティサーバ(discord)
開発の最新情報や、不明点のお問合せ、MMVCの活用法などMMVCに関するコミュニティサーバです。
https://discord.gg/PgspuDSTEc

## ITAコーパス マルチモーダルデータベースについて
本ソフトウェアで再配布されている
・ずんだもん(伊藤ゆいな)
・四国めたん(田中小雪)
・九州そら(西田望見)
の音声データの著作物の権利はSSS合同会社様にあります。
本ソフトウェアではSSS合同会社様に許可を頂き、音声データを本ソフトウェア用に改変、再配布を行っております。
上記キャラクターの音声を利用する際にはSSS合同会社様の利用規約に同意する必要があります。
https://zunko.jp/multimodal_dev/login.php

## Special thanks
- JVS (Japanese versatile speech) corpus
contributors : 高道 慎之介様/三井 健太郎様/齋藤 佑樹様/郡山 知樹様/丹治 尚子様/猿渡 洋様
Expand Down
77 changes: 56 additions & 21 deletions configs/baseconfig.json
Original file line number Diff line number Diff line change
@@ -1,37 +1,42 @@
{
"train": {
"log_interval": 1000,
"eval_interval": 4000,
"eval_interval": 2000,
"seed": 1234,
"epochs": 10000,
"learning_rate": 2e-4,
"betas": [0.8, 0.99],
"eps": 1e-9,
"batch_size": 24,
"fp16_run": true,
"learning_rate": 0.0002,
"betas": [
0.8,
0.99
],
"eps": 1e-09,
"batch_size": 10,
"fp16_run": false,
"lr_decay": 0.999875,
"segment_size": 4096,
"segment_size": 8192,
"init_lr_ratio": 1,
"warmup_epochs": 0,
"c_mel": 45,
"c_kl": 1.0
},
"data": {
"training_files": "filelists/20220304_jtalk_test_textful.txt",
"validation_files": "filelists/20220304_jtalk_test_textful_val.txt",
"training_files_notext": "filelists/20220304_jtalk_test_textless.txt",
"validation_files_notext": "filelists/20220304_jtalk_test_val_textless.txt",
"text_cleaners":["japanese_cleaners"],
"training_files": "filelists/dec_not_propagation_label_and_change_melspec_textful.txt",
"validation_files": "filelists/dec_not_propagation_label_and_change_melspec_textful_val.txt",
"training_files_notext": "filelists/dec_not_propagation_label_and_change_melspec_textless.txt",
"validation_files_notext": "filelists/dec_not_propagation_label_and_change_melspec_val_textless.txt",
"text_cleaners": [
"japanese_cleaners"
],
"max_wav_value": 32768.0,
"sampling_rate": 24000,
"filter_length": 1024,
"hop_length": 256,
"win_length": 1024,
"filter_length": 512,
"hop_length": 128,
"win_length": 512,
"n_mel_channels": 80,
"mel_fmin": 0.0,
"mel_fmax": null,
"add_blank": true,
"n_speakers": 107,
"n_speakers": 109,
"cleaned_text": false
},
"model": {
Expand All @@ -43,13 +48,43 @@
"kernel_size": 3,
"p_dropout": 0.1,
"resblock": "1",
"resblock_kernel_sizes": [3,7,11],
"resblock_dilation_sizes": [[1,3,5], [1,3,5], [1,3,5]],
"upsample_rates": [8,8,2,2],
"resblock_kernel_sizes": [
3,
7,
11
],
"resblock_dilation_sizes": [
[
1,
3,
5
],
[
1,
3,
5
],
[
1,
3,
5
]
],
"upsample_rates": [
8,
4,
2,
2
],
"upsample_initial_channel": 512,
"upsample_kernel_sizes": [16,8,4,4],
"upsample_kernel_sizes": [
16,
16,
8,
8
],
"n_layers_q": 3,
"use_spectral_norm": false,
"gin_channels": 256
}
}
}
Loading

0 comments on commit 5f21f05

Please sign in to comment.