利用の際は必ずお願いとデフォルトモデルの利用規約をお読みください。
Bert-VITS2 with more controllable voice styles.
https://github.com/litagin02/Style-Bert-VITS2/assets/139731664/e853f9a2-db4a-4202-a1dd-56ded3c562a0
You can install via pip install style-bert-vits2
(inference only), see library.ipynb for example usage.
This repository is based on Bert-VITS2 v2.1 and Japanese-Extra, so many thanks to the original author!
概要
pip install style-bert-vits2
でインストールできます。例はlibrary.ipynbを参照してください。各UIとAPI Serverにおいて、Windows コマンドプロンプト・WSL2・Linux(Ubuntu Desktop)での動作を確認しています(WSLでのパス指定は相対パスなど工夫ください)。NVidiaのGPUが無い場合は学習はできませんが音声合成とマージは可能です。
Pythonライブラリとしてのpipでのインストールや使用例はlibrary.ipynbを参照してください。
Windowsを前提としています。
Install-Style-Bert-VITS2.bat
をダブルクリックします。Install-Style-Bert-VITS2-CPU.bat
をダブルクリックします。CPU版では学習はできませんが、音声合成とマージは可能です。またアップデートをしたい場合は、Update-Style-Bert-VITS2.bat
をダブルクリックしてください。
ただし2024-03-16の2.4.1バージョン未満からのアップデートの場合は、全てを削除してから再びインストールする必要があります。申し訳ありません。移行方法はCHANGELOG.mdを参照してください。
Pythonの仮想環境・パッケージ管理ツールであるuvがpipより高速なので、それを使ってインストールすることをお勧めします。 (使いたくない場合は通常のpipでも大丈夫です。)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
git clone https://github.com/litagin02/Style-Bert-VITS2.git
cd Style-Bert-VITS2
uv venv venv
uv pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
uv pip install -r requirements.txt
venv\Scripts\activate
python initialize.py # 必要なモデルとデフォルトTTSモデルをダウンロード
最後を忘れずに。
音声合成エディターはEditor.bat
をダブルクリックか、python server_editor.py --inbrowser
すると起動します(--device cpu
でCPUモードで起動)。画面内で各セリフごとに設定を変えて原稿を作ったり、保存や読み込みや辞書の編集等ができます。
インストール時にデフォルトのモデルがダウンロードされているので、学習していなくてもそれを使うことができます。
エディター部分は別リポジトリに分かれています。
バージョン2.2以前での音声合成WebUIは、App.bat
をダブルクリックか、python app.py
するとWebUIが起動します。またはInference.bat
でも音声合成単独タブが開きます。
音声合成に必要なモデルファイルたちの構造は以下の通りです(手動で配置する必要はありません)。
model_assets
├── your_model
│ ├── config.json
│ ├── your_model_file1.safetensors
│ ├── your_model_file2.safetensors
│ ├── ...
│ └── style_vectors.npy
└── another_model
├── ...
このように、推論にはconfig.json
と*.safetensors
とstyle_vectors.npy
が必要です。モデルを共有する場合は、この3つのファイルを共有してください。
このうちstyle_vectors.npy
はスタイルを制御するために必要なファイルで、学習の時にデフォルトで平均スタイル「Neutral」が生成されます。
複数スタイルを使ってより詳しくスタイルを制御したい方は、下の「スタイルの生成」を参照してください(平均スタイルのみでも、学習データが感情豊かならば十分感情豊かな音声が生成されます)。
学習には2-14秒程度の音声ファイルが複数と、それらの書き起こしデータが必要です。
App.bat
をダブルクリックかpython app.py
したところの「データセット作成」タブから、音声ファイルを適切な長さにスライスし、その後に文字の書き起こしを自動で行えます。またはDataset.bat
をダブルクリックでもその単独タブが開きます。App.bat
をダブルクリックかpython app.py
して開くWebUIの「学習」タブから指示に従ってください。またはTrain.bat
をダブルクリックでもその単独タブが開きます。App.bat
をダブルクリックかpython app.py
して開くWebUIの「スタイル作成」タブから、音声ファイルを使ってスタイルを生成できます。またはStyleVectors.bat
をダブルクリックでもその単独タブが開きます。構築した環境下でpython server_fastapi.py
するとAPIサーバーが起動します。
API仕様は起動後に/docs
にて確認ください。
config.yml
のserver.limit
で変更できます。config.yml
のserver.origins
の値を変更し、信頼できるドメインに制限ください(キーを消せばCORS設定を無効にできます)。また音声合成エディターのAPIサーバーはpython server_editor.py
で起動します。があまりまだ整備をしていません。エディターのリポジトリから必要な最低限のAPIしか現在は実装していません。
音声合成エディターのウェブデプロイについてはこのDockerfileを参考にしてください。
2つのモデルを、「声質」「声の高さ」「感情表現」「テンポ」の4点で混ぜ合わせて、新しいモデルを作ったり、また「あるモデルに、別の2つのモデルの差分を足す」等の操作ができます。
App.bat
をダブルクリックかpython app.py
して開くWebUIの「マージ」タブから、2つのモデルを選択してマージすることができます。またはMerge.bat
をダブルクリックでもその単独タブが開きます。
学習結果のうちどのステップ数がいいかの「一つの」指標として、SpeechMOS を使うスクリプトを用意しています:
python speech_mos.py -m <model_name>
ステップごとの自然性評価が表示され、mos_results
フォルダのmos_{model_name}.csv
とmos_{model_name}.png
に結果が保存される。読み上げさせたい文章を変えたかったら中のファイルを弄って各自調整してください。またあくまでアクセントや感情表現や抑揚を全く考えない基準での評価で、目安のひとつなので、実際に読み上げさせて選別するのが一番だと思います。
基本的にはBert-VITS2のモデル構造を少し改造しただけです。旧事前学習モデルもJP-Extraの事前学習モデルも、実質Bert-VITS2 v2.1 or JP-Extraと同じものを使用しています(不要な重みを削ってsafetensorsに変換したもの)。
具体的には以下の点が異なります。
style_vectors.npy
を作ることで、そのスタイルを使って効果の強さも連続的に指定しつつ音声を生成することができる。In addition to the original reference (written below), I used the following repositories:
The pretrained model and JP-Extra version is essentially taken from the original base model of Bert-VITS2 v2.1 and JP-Extra pretrained model of Bert-VITS2, so all the credits go to the original author (Fish Audio):
In addition, text/user_dict/ module is based on the following repositories:
This repository is licensed under the GNU Affero General Public License v3.0, the same as the original Bert-VITS2 repository. For more details, see LICENSE.
In addition, text/user_dict/ module is licensed under the GNU Lesser General Public License v3.0, inherited from the original VOICEVOX engine repository. For more details, see LGPL_LICENSE.