From 50833cda5fc195eabed27e403b84a1a1a16f2153 Mon Sep 17 00:00:00 2001 From: litagin02 Date: Wed, 7 Feb 2024 16:11:13 +0900 Subject: [PATCH] Update (maybe ver 2.1) --- app.py | 5 +++-- clustering.ipynb | 29 ++++++++++++----------------- colab.ipynb | 2 +- common/constants.py | 1 + configs/config.json | 2 +- configs/configs_jp_extra.json | 2 +- docs/CHANGELOG.md | 11 +++++++++++ train_ms.py | 4 ++-- webui_train.py | 5 +++-- 9 files changed, 35 insertions(+), 26 deletions(-) diff --git a/app.py b/app.py index 5665cf2..92c2e13 100644 --- a/app.py +++ b/app.py @@ -19,6 +19,7 @@ from common.constants import ( DEFAULT_SPLIT_INTERVAL, DEFAULT_STYLE, DEFAULT_STYLE_WEIGHT, + LATEST_VERSION, Languages, ) from common.log import logger @@ -192,8 +193,8 @@ examples = [ ], ] -initial_md = """ -# Style-Bert-VITS2 ver 2.0 音声合成 +initial_md = f""" +# Style-Bert-VITS2 ver {LATEST_VERSION} 音声合成 注意: 初期からある[jvnvのモデル](https://huggingface.co/litagin/style_bert_vits2_jvnv)は、[JVNVコーパス(言語音声と非言語音声を持つ日本語感情音声コーパス)](https://sites.google.com/site/shinnosuketakamichi/research-topics/jvnv_corpus)で学習されたモデルです。ライセンスは[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.ja)です。 """ diff --git a/clustering.ipynb b/clustering.ipynb index 955f44a..12e728e 100644 --- a/clustering.ipynb +++ b/clustering.ipynb @@ -10,6 +10,8 @@ "もっといろいろ足したりいろんなスタイルベクトルを作って遊べると思います。\n", "ある程度慣れている人向けです。\n", "\n", + "JVNVコーパスのように**スタイルが既にファイル名等で分かれている場合は、最後の方のセルを使えばそれを利用してスタイルを作ることができます。**\n", + "\n", "例では[JVNVコーパス](https://sites.google.com/site/shinnosuketakamichi/research-topics/jvnv_corpus)のjvnv-M1を使います。\n", "\n", "## そもそもスタイルベクトルとは\n", @@ -204,6 +206,14 @@ "np.save(\"model_assets/jvnv-M1/style_vectors.npy\", save_vectors)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 正解ラベルがファイル名から分かる場合の作り方\n", + "JVNVコーパス等でファイル名によってスタイルラベルが分かる場合、以下のようにしてスタイルベクトルを作ることができます(デフォルトのJVNVモデルのスタイルはこれで作成しています)。" + ] + }, { "cell_type": "code", "execution_count": 8, @@ -211,24 +221,9 @@ "outputs": [], "source": [ "# JVNVコーパスの場合は正解はファイル名の最初の方から分かる。それを使って正解ラベルを作成\n", - "y_true = [name[3:6] for name in names]\n", + "label_dict = {\"ang\": 0, \"dis\": 1, \"fea\": 2, \"hap\": 3, \"sad\": 4, \"sur\": 5}\n", "\n", - "for i, y in enumerate(y_true):\n", - " if y == \"ang\":\n", - " y_true[i] = 0\n", - " elif y == \"dis\":\n", - " y_true[i] = 1\n", - " elif y == \"fea\":\n", - " y_true[i] = 2\n", - " elif y == \"hap\":\n", - " y_true[i] = 3\n", - " elif y == \"sad\":\n", - " y_true[i] = 4\n", - " elif y == \"sur\":\n", - " y_true[i] = 5\n", - " else:\n", - " print(y)\n", - " raise ValueError" + "y_true = [label_dict[name[3:6]] for name in names]" ] }, { diff --git a/colab.ipynb b/colab.ipynb index 30cf3cd..fb1a401 100644 --- a/colab.ipynb +++ b/colab.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Style-Bert-VITS2 (ver 2.0) のGoogle Colabでの学習\n", + "# Style-Bert-VITS2 (ver 2.1) のGoogle Colabでの学習\n", "\n", "Google Colab上でStyle-Bert-VITS2の学習を行うことができます。\n", "\n", diff --git a/common/constants.py b/common/constants.py index f000095..3571f51 100644 --- a/common/constants.py +++ b/common/constants.py @@ -1,5 +1,6 @@ import enum +LATEST_VERSION: str = "2.1" DEFAULT_STYLE: str = "Neutral" DEFAULT_STYLE_WEIGHT: float = 5.0 diff --git a/configs/config.json b/configs/config.json index 1b00c64..c125074 100644 --- a/configs/config.json +++ b/configs/config.json @@ -67,5 +67,5 @@ "use_spectral_norm": false, "gin_channels": 256 }, - "version": "2.0.1" + "version": "2.1" } diff --git a/configs/configs_jp_extra.json b/configs/configs_jp_extra.json index f60b39e..efd4634 100644 --- a/configs/configs_jp_extra.json +++ b/configs/configs_jp_extra.json @@ -74,5 +74,5 @@ "initial_channel": 64 } }, - "version": "2.0.1-JP-Extra" + "version": "2.1-JP-Extra" } diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b010a33..00a890c 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## v2.1 (2024-02-07) + +### 変更 +- 学習の際、デフォルトではbfloat16オプションを使わないよう変更(学習が発散したり質が下がることがある模様) +- 学習の際のメモリ使用量を削減しようと頑張った + +### バグ修正や改善 +- 音声合成(やそのAPI)において、同時に別の話者が選択され音声合成がリクエストされた場合に発生するエラーを修正 +- モデルマージ時に、そのレシピを`recipe.json`ファイルへ保存するように変更 +- 「改行で分けて生成」がより感情が乗る旨の明記等、軽微な説明文の改善 + ## v2.0.1 (2024-02-05) 軽微なバグ修正や改善 diff --git a/train_ms.py b/train_ms.py index a65a89f..57eb5f6 100644 --- a/train_ms.py +++ b/train_ms.py @@ -194,8 +194,8 @@ def run(): pin_memory=True, collate_fn=collate_fn, batch_sampler=train_sampler, - # これもメモリ消費量を減らそうとしてコメントアウト(事前ロード量?) - # persistent_workers=True, + persistent_workers=True, + # これもメモリ消費量を減らそうとしてコメントアウト # prefetch_factor=4, ) # DataLoader config could be adjusted. eval_dataset = None diff --git a/webui_train.py b/webui_train.py index b278cde..77301ba 100644 --- a/webui_train.py +++ b/webui_train.py @@ -8,6 +8,7 @@ from multiprocessing import cpu_count import gradio as gr import yaml +from common.constants import LATEST_VERSION from common.log import logger from common.subprocess_utils import run_script_with_log, second_elem_of @@ -315,8 +316,8 @@ def train(model_name, skip_style=False, use_jp_extra=True, speedup=False): return True, "Success: 学習が完了しました" -initial_md = """ -# Style-Bert-VITS2 ver 2.0 学習用WebUI +initial_md = f""" +# Style-Bert-VITS2 ver {LATEST_VERSION} 学習用WebUI ## 使い方