Update (maybe ver 2.1)

This commit is contained in:
litagin02
2024-02-07 16:11:13 +09:00
parent 6762c654ac
commit 50833cda5f
9 changed files with 35 additions and 26 deletions

5
app.py
View File

@@ -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)です。
"""

View File

@@ -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]"
]
},
{

View File

@@ -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",

View File

@@ -1,5 +1,6 @@
import enum
LATEST_VERSION: str = "2.1"
DEFAULT_STYLE: str = "Neutral"
DEFAULT_STYLE_WEIGHT: float = 5.0

View File

@@ -67,5 +67,5 @@
"use_spectral_norm": false,
"gin_channels": 256
},
"version": "2.0.1"
"version": "2.1"
}

View File

@@ -74,5 +74,5 @@
"initial_channel": 64
}
},
"version": "2.0.1-JP-Extra"
"version": "2.1-JP-Extra"
}

View File

@@ -1,5 +1,16 @@
# Changelog
## v2.1 (2024-02-07)
### 変更
- 学習の際、デフォルトではbfloat16オプションを使わないよう変更学習が発散したり質が下がることがある模様
- 学習の際のメモリ使用量を削減しようと頑張った
### バグ修正や改善
- 音声合成やそのAPIにおいて、同時に別の話者が選択され音声合成がリクエストされた場合に発生するエラーを修正
- モデルマージ時に、そのレシピを`recipe.json`ファイルへ保存するように変更
- 「改行で分けて生成」がより感情が乗る旨の明記等、軽微な説明文の改善
## v2.0.1 (2024-02-05)
軽微なバグ修正や改善

View File

@@ -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

View File

@@ -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
## 使い方