This commit is contained in:
litagin02
2024-02-25 22:28:02 +09:00
parent d3a5cb8569
commit f749950be2
4 changed files with 45 additions and 5 deletions

View File

@@ -30,7 +30,8 @@ LICENSE
/bert/deberta-v3-large/ /bert/deberta-v3-large/
Data/ Data/
dict/ dict_data/user_dic.json
dict_data/user_dic.dic
docs/ docs/
inputs/ inputs/
mos_results/ mos_results/

View File

@@ -1,5 +1,27 @@
# Changelog # Changelog
## v2.3 (2024-02-25)
### 大きな変更
#### ユーザー辞書機能
あらかじめ辞書に固有名詞を追加することができ、それが学習時・音声合成時の読み取得部分に適応されます。辞書の追加・編集は次のエディタ経由で行ってください。
辞書部分の[実装](/text/user_dict/) は、中のREADMEにある通り、[VOICEVOX Editor](https://github.com/VOICEVOX/voicevox) のものを使っており、この部分のコードライセンスはLGPL-3.
#### 音声合成専用エディタ
音声合成専用エディタを追加。今までのWebUIでできた機能のほか、次のような機能が使えますつまり既存の日本語音声合成ソフトウェアのエディタを真似ました
- セリフ単位でキャラや設定を変更しながら原稿を作り、それを一括で生成したり、原稿を保存等したり読み込んだり
- GUIよる分かりやすいアクセント調整
- ユーザー辞書への単語追加や編集
`Editor.bat`をダブルクリックか`python server_editor.py --inbrowser`で起動します。エディター部分は[こちらの別リポジトリ](https://github.com/litagin02/Style-Bert-VITS2-Editor)になります。フロントエンド初心者なのでプルリクや改善案等をお待ちしています。
### 改善
- 学習時にデコーダー部分を凍結するオプションの追加。品質がもしかしたら上がるかもしれません。
-
## v2.2 (2024-02-09) ## v2.2 (2024-02-09)
### 変更・機能追加 ### 変更・機能追加

View File

@@ -16,6 +16,7 @@ import zipfile
from datetime import datetime from datetime import datetime
from io import BytesIO from io import BytesIO
from pathlib import Path from pathlib import Path
import yaml
import numpy as np import numpy as np
import pyopenjtalk import pyopenjtalk
@@ -151,6 +152,12 @@ origins = [
"http://127.0.0.1:8000", "http://127.0.0.1:8000",
] ]
# Get path settings
with open(Path("configs/paths.yml"), "r", encoding="utf-8") as f:
path_config: dict[str, str] = yaml.safe_load(f.read())
# dataset_root = path_config["dataset_root"]
assets_root = path_config["assets_root"]
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("--model_dir", type=str, default="model_assets/") parser.add_argument("--model_dir", type=str, default="model_assets/")
parser.add_argument("--device", type=str, default="cuda") parser.add_argument("--device", type=str, default="cuda")
@@ -158,6 +165,9 @@ parser.add_argument("--port", type=int, default=8000)
parser.add_argument("--inbrowser", action="store_true") parser.add_argument("--inbrowser", action="store_true")
parser.add_argument("--line_length", type=int, default=None) parser.add_argument("--line_length", type=int, default=None)
parser.add_argument("--line_count", type=int, default=None) parser.add_argument("--line_count", type=int, default=None)
parser.add_argument(
"--dir", "-d", type=str, help="Model directory", default=assets_root
)
args = parser.parse_args() args = parser.parse_args()
device = args.device device = args.device
@@ -296,7 +306,11 @@ def multi_synthesis(request: MultiSynthesisRequest):
) )
audios = [] audios = []
for i, req in enumerate(lines): for i, req in enumerate(lines):
# Loade model if args.line_length is not None and len(req.text) > args.line_length:
raise HTTPException(
status_code=400,
detail=f"1行の文字数は{args.line_length}文字以下にしてください。",
)
try: try:
model = model_holder.load_model( model = model_holder.load_model(
model_name=req.model, model_path_str=req.modelFile model_name=req.model, model_path_str=req.modelFile

View File

@@ -1,15 +1,18 @@
このモジュールは、[voicevox_engine](https://github.com/VOICEVOX/voicevox_engine)を使わせていただいています。 このフォルダのコードは、[voicevox_engine](https://github.com/VOICEVOX/voicevox_engine)のものを使わせていただいています。
引用元: 引用元:
https://github.com/VOICEVOX/voicevox_engine/tree/709527be089c0410c08e989df95a4a1d78439423/voicevox_engine/user_dict https://github.com/VOICEVOX/voicevox_engine/tree/f181411ec69812296989d9cc583826c22eec87ae/voicevox_engine/user_dict
https://github.com/VOICEVOX/voicevox_engine/blob/f181411ec69812296989d9cc583826c22eec87ae/voicevox_engine/model.py#L207
改変部分は以下のとおりです。 改変部分は以下のとおりです。
- ファイル名の書き換え、それに伴うimport文の書き換え - ファイル名の書き換え、それに伴うimport文の書き換え
- VOICEVOX固有の他のモジュールへの依存のコメントアウト - VOICEVOX固有の部分のコメントアウト
- mutexを使用している部分のコメントアウト - mutexを使用している部分のコメントアウト
- 参照しているpyopenjtalkの違いによるメソッド名書き換え - 参照しているpyopenjtalkの違いによるメソッド名書き換え
- UserDictWordのmora_countのデフォルト値をNoneに指定 - UserDictWordのmora_countのデフォルト値をNoneに指定
- Pydanticのモデルは必要な箇所のみを抽出
ライセンス: LGPL ライセンス: LGPL