From 8caa895a6ff4c71566f93b27895814c57db1c8cd Mon Sep 17 00:00:00 2001 From: litagin02 Date: Mon, 26 Feb 2024 15:10:00 +0900 Subject: [PATCH] Maybe v2.3 --- README.md | 29 +++++++++----- dict_data/default.csv | 4 +- docs/CHANGELOG.md | 28 ++++++++++++-- scripts/Update-Style-Bert-VITS2.bat | 5 ++- scripts/Update-to-Dict-Editor.bat | 19 +++++---- scripts/Update-to-JP-Extra.bat | 60 ----------------------------- server_editor.py | 4 +- 7 files changed, 65 insertions(+), 84 deletions(-) delete mode 100644 scripts/Update-to-JP-Extra.bat diff --git a/README.md b/README.md index b857e1d..db2043d 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,15 @@ https://github.com/litagin02/Style-Bert-VITS2/assets/139731664/e853f9a2-db4a-420 - **解説チュートリアル動画** [YouTube](https://youtu.be/aTUSzgDl1iY) [ニコニコ動画](https://www.nicovideo.jp/watch/sm43391524) - [English README](docs/README_en.md) - [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](http://colab.research.google.com/github/litagin02/Style-Bert-VITS2/blob/master/colab.ipynb) -- [🤗 オンラインデモはこちらから](https://huggingface.co/spaces/litagin/Style-Bert-VITS2-JVNV) +- [🤗 オンラインデモはこちらから](https://huggingface.co/spaces/litagin/Style-Bert-VITS2-Editor-Demo) - [Zennの解説記事](https://zenn.dev/litagin/articles/034819a5256ff4) -- [**リリースページ**](https://github.com/litagin02/Style-Bert-VITS2/releases/)、[更新履歴](docs/CHANGELOG.md) +- [**リリースページ**](https://github.com/litagin02/Style-Bert-VITS2/releases/)、[更新履歴](/docs/CHANGELOG.md) + - 2024-02-26: ver 2.3 (辞書機能とエディター機能) - 2024-02-09: ver 2.2 - 2024-02-07: ver 2.1 - - 2024-02-03: ver 2.0 + - 2024-02-03: ver 2.0 (JP-Extra) - 2024-01-09: ver 1.3 - 2023-12-31: ver 1.2 - 2023-12-29: ver 1.1 @@ -33,7 +34,7 @@ This repository is based on [Bert-VITS2](https://github.com/fishaudio/Bert-VITS2 ## 使い方 - +CLIでの使い方は[こちら](/docs/CLI.md)を参照してください。 ### 動作環境 @@ -45,13 +46,14 @@ This repository is based on [Bert-VITS2](https://github.com/fishaudio/Bert-VITS2 Windowsを前提としています。 -1. [このzipファイル](https://github.com/litagin02/Style-Bert-VITS2/releases/download/2.2/Style-Bert-VITS2.zip)を**パスに日本語や空白が含まれない場所に**ダウンロードして展開します。 +1. [このzipファイル](https://github.com/litagin02/Style-Bert-VITS2/releases/download/2.3/Style-Bert-VITS2.zip)を**パスに日本語や空白が含まれない場所に**ダウンロードして展開します。 - グラボがある方は、`Install-Style-Bert-VITS2.bat`をダブルクリックします。 - グラボがない方は、`Install-Style-Bert-VITS2-CPU.bat`をダブルクリックします。CPU版では学習はできませんが、音声合成とマージは可能です。 2. 待つと自動で必要な環境がインストールされます。 -3. その後、自動的に音声合成するためのWebUIが起動したらインストール成功です。デフォルトのモデルがダウンロードされるているので、そのまま遊ぶことができます。 +3. その後、自動的に音声合成するためのエディターが起動したらインストール成功です。デフォルトのモデルがダウンロードされるているので、そのまま遊ぶことができます。 -またアップデートをしたい場合は、`Update-Style-Bert-VITS2.bat`をダブルクリックしてください。ただし**1.x**から**2.x**へアップデートする場合は、[このbatファイル](https://github.com/litagin02/Style-Bert-VITS2/releases/download/2.2/Update-to-JP-Extra.bat)を`Style-Bert-VITS2`フォルダがあるフォルダ(`Update-Style-Bert-VITS2.bat`等があるフォルダ)へ保存してからダブルクリックしてください。 +またアップデートをしたい場合は、`Update-Style-Bert-VITS2.bat`をダブルクリックしてください。ただし以下の場合は、専用のアップデートbatファイルを`Style-Bert-VITS2`フォルダがあるフォルダ(`Update-Style-Bert-VITS2.bat`等があるフォルダ)へ保存してからダブルクリックしてください。 +- **2.3以前**から**2.3以上**(辞書・エディター付き)へアップデート: [Update-to-Dict-Editor.bat](https://github.com/litagin02/Style-Bert-VITS2/releases/download/2.3/Update-to-Dict-Editor.bat) #### GitやPython使える人 @@ -69,7 +71,12 @@ python initialize.py # 必要なモデルとデフォルトTTSモデルをダ ### 音声合成 -`App.bat`をダブルクリックか、`python app.py`するとWebUIが起動します(`python app.py --cpu`でCPUモードで起動、学習中チェックに便利です)。インストール時にデフォルトのモデルがダウンロードされているので、学習していなくてもそれを使うことができます。 +音声合成エディターは`Editor.bat`をダブルクリックか、`python server_editor.py --inbrowser`すると起動します(`--device cpu`でCPUモードで起動)。画面内で各セリフごとに設定を変えて原稿を作ったり、保存や読み込みや辞書の編集等ができます。 +インストール時にデフォルトのモデルがダウンロードされているので、学習していなくてもそれを使うことができます。 + +エディター部分は[別リポジトリ](https://github.com/litagin02/Style-Bert-VITS2-Editor)に分かれています。 + +バージョン2.2以前での音声合成WebUIは、`App.bat`をダブルクリックか、`python app.py`するとWebUIが起動します。 音声合成に必要なモデルファイルたちの構造は以下の通りです(手動で配置する必要はありません)。 ``` @@ -91,7 +98,7 @@ model_assets ### 学習 - CLIでの学習の詳細は[こちら](docs/CLI.md)を参照してください。 -- paperspace上での学習の詳細は[こちら](docs/paperspace.md)を参照してください。 +- paperspace上での学習の詳細は[こちら](docs/paperspace.md)、colabでの学習は[こちら](http://colab.research.google.com/github/litagin02/Style-Bert-VITS2/blob/master/colab.ipynb)を参照してください。 学習には2-14秒程度の音声ファイルが複数と、それらの書き起こしデータが必要です。 @@ -126,6 +133,10 @@ API仕様は起動後に`/docs`にて確認ください。 - 入力文字数はデフォルトで100文字が上限となっています。これは`config.yml`の`server.limit`で変更できます。 - デフォルトではCORS設定を全てのドメインで許可しています。できる限り、`config.yml`の`server.origins`の値を変更し、信頼できるドメインに制限ください(キーを消せばCORS設定を無効にできます)。 +また音声合成エディターのAPIサーバーは`python server_editor.py`で起動します。があまりまだ整備をしていません。[エディターのリポジトリ](https://github.com/litagin02/Style-Bert-VITS2-Editor)から必要な最低限のAPIしか現在は実装していません。 + +音声合成エディターのウェブデプロイについては[このDockerfile](Dockerfile.deploy)を参考にしてください。 + ### マージ 2つのモデルを、「声質」「声の高さ」「感情表現」「テンポ」の4点で混ぜ合わせて、新しいモデルを作ることが出来ます。 diff --git a/dict_data/default.csv b/dict_data/default.csv index 8869f97..84085cd 100644 --- a/dict_data/default.csv +++ b/dict_data/default.csv @@ -1,3 +1,5 @@ Bert,,,8609,名詞,固有名詞,一般,*,*,*,Bert,バアト,バアト,0/3,* VITS,,,8609,名詞,固有名詞,一般,*,*,*,VITS,ビッツ,ビッツ,0/3,* -VITS2,,,8609,名詞,固有名詞,一般,*,*,*,VITS2,ビッツツウ,ビッツツウ,4/5,* +VITS二,,,8609,名詞,固有名詞,一般,*,*,*,VITS二,ビッツツー,ビッツツー,4/5,* +BertVITS,,,8609,名詞,固有名詞,一般,*,*,*,BertVITS,バアトビッツ,バアトビッツ,4/6,* +担々麺,,,8609,名詞,固有名詞,一般,*,*,*,担々麺,タンタンメン,タンタンメン,3/6,* diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index bbf1159..15e0ef9 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -4,8 +4,10 @@ ### 大きな変更 +大きい変更をいくつかしたため、**アップデートはまた専用の手順**が必要です。下記の指示にしたがってください。 + #### ユーザー辞書機能 -あらかじめ辞書に固有名詞を追加することができ、それが学習時・音声合成時の読み取得部分に適応されます。辞書の追加・編集は次のエディタ経由で行ってください。または、手持ちのOpenJTalkのcsv形式の辞書がある場合は、`dict_data/default.csv`ファイルを直接上書きや追加しても可能です。 +あらかじめ辞書に固有名詞を追加することができ、それが**学習時**・**音声合成時**の読み取得部分に適応されます。辞書の追加・編集は次のエディタ経由で行ってください。または、手持ちのOpenJTalkのcsv形式の辞書がある場合は、`dict_data/default.csv`ファイルを直接上書きや追加しても可能です。 使えそうな辞書(ライセンス等は各自ご確認ください)(他に良いのがあったら教えて下さい): @@ -26,7 +28,7 @@ ### バグ修正 -- 「うっうあ」等の特定の状況で読みが正しく取得できないバグの修正 +- 特定の状況で読みが正しく取得できず `list index out of range` となるバグの修正 - 前処理時に、書き起こしファイルのある行の形式が不正だと、書き起こしファイルのそれ以降の内容が消えてしまうバグの修正 - faster-whisperが1.0.0にメジャーバージョンアップされ(今のところ)大幅に劣化したので、バージョンを0.10.1へ固定 @@ -37,14 +39,32 @@ - コマンドラインで前処理や学習が簡単にできるよう、前処理を行う`preprocess_all.py`を追加(詳しくは[CLI.md](/docs/CLI.md)を参照) - 学習の際に、自動的に自分のhugging faceリポジトリへ結果をアップロードするオプションを追加。コマンドライン引数で`--repo_id username/my_model`のように指定してください(詳しくは[CLI.md](/docs/CLI.md)を参照)。🤗の無制限ストレージが使えるのでクラウドでの学習に便利です。 - 学習時にデコーダー部分を凍結するオプションの追加。品質がもしかしたら上がるかもしれません。 -- `initialize.py`に引数`--dataset_root`と`--assets_root`を追加し、`configs/paths.yml`を変更できるようにした +- `initialize.py`に引数`--dataset_root`と`--assets_root`を追加し、`configs/paths.yml`をその時点で変更できるようにした ### その他 - [paperspaceでの学習の手引きを追加](/docs/paperspace.md)、paperspaceでのimageに使える[Dockerfile](/Dockerfile.train)を追加 -- [CLIでの学習の仕方を追加](/docs/CLI.md) +- [CLIでの各種処理の実行の仕方を追加](/docs/CLI.md) - [Hugging Face spacesで遊べる音声合成エディタ](https://huggingface.co/spaces/litagin/Style-Bert-VITS2-Editor-Demo)をデプロイするための[Dockerfile](Dockerfile.deploy)を追加 +### アップデート手順 + +- [Update-to-Dict-Editor.bat](https://github.com/litagin02/Style-Bert-VITS2/releases/download/2.3/Update-to-Dict-Editor.bat)をダウンロードし、`Style-Bert-VITS2`フォルダがある場所(インストールbatファイルとかがあったところ)においてダブルクリックしてください。 + +- 手動での場合は、以下の手順で実行してください: +```bash +git pull +venv\Scripts\activate +pip uninstall pyopenjtalk-prebuilt +pip install -r requirements.txt +# python initialize.py # これを1.x系からのアップデートの場合は実行してください +python server_editor.py --inbrowser +``` + +### 新規インストール手順 +[このzip](https://github.com/litagin02/Style-Bert-VITS2/releases/download/2.3/Style-Bert-VITS2.zip)をダウンロードし、解凍してください。 +を展開し、`Install-Style-Bert-VITS2.bat`をダブルクリックしてください。 + ## v2.2 (2024-02-09) diff --git a/scripts/Update-Style-Bert-VITS2.bat b/scripts/Update-Style-Bert-VITS2.bat index 782f2ef..b4f8b8d 100644 --- a/scripts/Update-Style-Bert-VITS2.bat +++ b/scripts/Update-Style-Bert-VITS2.bat @@ -37,7 +37,10 @@ if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) pip install -U -r Style-Bert-VITS2\requirements.txt if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) -echo Style-Bert-VITS2のアップデートが完了しました。 +echo Update completed. Running Style-Bert-VITS2 Editor... + +@REM Style-Bert-VITS2 Editorを起動 +python server_editor.py --inbrowser pause diff --git a/scripts/Update-to-Dict-Editor.bat b/scripts/Update-to-Dict-Editor.bat index 5fde8fc..1eff1bd 100644 --- a/scripts/Update-to-Dict-Editor.bat +++ b/scripts/Update-to-Dict-Editor.bat @@ -12,7 +12,7 @@ if not exist %CURL_CMD% ( @REM Style-Bert-VITS2.zip をGitHubのmasterの最新のものをダウンロード %CURL_CMD% -Lo Style-Bert-VITS2.zip^ - https://github.com/litagin02/Style-Bert-VITS2/archive/refs/heads/dev.zip + https://github.com/litagin02/Style-Bert-VITS2/archive/refs/heads/master.zip if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) @REM Style-Bert-VITS2.zip を解凍(フォルダ名前がBert-VITS2-masterになる) @@ -24,8 +24,8 @@ del Style-Bert-VITS2.zip if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) @REM Bert-VITS2-masterの中身をStyle-Bert-VITS2に上書き移動 -xcopy /QSY .\Style-Bert-VITS2-dev\ .\Style-Bert-VITS2\ -rmdir /s /q Style-Bert-VITS2-dev +xcopy /QSY .\Style-Bert-VITS2-master\ .\Style-Bert-VITS2\ +rmdir /s /q Style-Bert-VITS2-master if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) @REM 仮想環境を有効化 @@ -49,16 +49,19 @@ if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) pushd Style-Bert-VITS2 +@REM JP-Extra版以前からの場合のために一応initialize.pyを実行 + +echo python initialize.py +python initialize.py +if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) + +echo ---------------------------------------- echo Update completed. Running Style-Bert-VITS2 Editor... +echo ---------------------------------------- @REM Style-Bert-VITS2 Editorを起動 python server_editor.py --inbrowser -pause - -popd - - pause popd diff --git a/scripts/Update-to-JP-Extra.bat b/scripts/Update-to-JP-Extra.bat deleted file mode 100644 index 228cf10..0000000 --- a/scripts/Update-to-JP-Extra.bat +++ /dev/null @@ -1,60 +0,0 @@ -chcp 65001 > NUL -@echo off - -pushd %~dp0 -set PS_CMD=PowerShell -Version 5.1 -ExecutionPolicy Bypass - -set CURL_CMD=C:\Windows\System32\curl.exe -if not exist %CURL_CMD% ( - echo [ERROR] %CURL_CMD% が見つかりません。 - pause & popd & exit /b 1 -) - -@REM Style-Bert-VITS2.zip をGitHubのmasterの最新のものをダウンロード -%CURL_CMD% -Lo Style-Bert-VITS2.zip^ - https://github.com/litagin02/Style-Bert-VITS2/archive/refs/heads/master.zip -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -@REM Style-Bert-VITS2.zip を解凍(フォルダ名前がBert-VITS2-masterになる) -%PS_CMD% Expand-Archive -Path Style-Bert-VITS2.zip -DestinationPath . -Force -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -@REM 元のzipを削除 -del Style-Bert-VITS2.zip -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -@REM Bert-VITS2-masterの中身をStyle-Bert-VITS2に上書き移動 -xcopy /QSY .\Style-Bert-VITS2-master\ .\Style-Bert-VITS2\ -rmdir /s /q Style-Bert-VITS2-master -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -@REM 仮想環境のpip requirements.txtを更新 - -echo call .\Style-Bert-VITS2\scripts\activate.bat -call .\Style-Bert-VITS2\venv\Scripts\activate.bat -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -echo pip uninstall -y pyopenjtalk-prebuilt pyopenjtalk -pip uninstall -y pyopenjtalk-prebuilt pyopenjtalk -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -echo pip install -U pyopenjtalk-dict -pip install -U pyopenjtalk-dict -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -echo pip install -U -r Style-Bert-VITS2\requirements.txt -pip install -U -r Style-Bert-VITS2\requirements.txt -if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% ) - -pushd Style-Bert-VITS2 - -@REM 初期化(必要なモデルのダウンロード) -python initialize.py - -echo Style-Bert-VITS2の2.xへのアップデートが完了しました。 - -pause - -popd - -popd \ No newline at end of file diff --git a/server_editor.py b/server_editor.py index 7f5a6ef..93c7c58 100644 --- a/server_editor.py +++ b/server_editor.py @@ -212,7 +212,9 @@ class TextRequest(BaseModel): @router.post("/g2p") async def read_item(item: TextRequest): try: - kata_tone_list = g2kata_tone(item.text, ignore_unknown=True) + # 最初に正規化しないと整合性がとれない + text = text_normalize(item.text) + kata_tone_list = g2kata_tone(text, ignore_unknown=True) except Exception as e: raise HTTPException( status_code=400,