Skip to content

hiroki-abe-58/Style-BERT-VITS2-GeneLab-Blackwell

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,326 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Style-Bert-VITS2 GeneLab-Blackwell Edition

RTX 5090 (Blackwell / sm_120) 完全対応版

License: AGPL v3 Python 3.10 PyTorch Nightly


このフォーク版について

本リポジトリは、litagin02/Style-Bert-VITS2 をベースに、NVIDIA RTX 5090 (Blackwell世代 / CUDA Compute Capability sm_120) でのWindowsネイティブ環境におけるGPU動作を実現したフォーク版です。

技術的な特徴

機能 オリジナル版 GeneLab-Blackwell Edition
RTX 5090 (sm_120) 非対応 完全対応
PyTorch 安定版 (cu118/cu124) nightly cu128
triton Linux専用 triton-windows統合
GPU自動検出 手動設定 自動フォールバック機構

なぜ環境構築が大変なのか(オリジナル版の問題)

RTX 5090をお持ちの方がオリジナル版をそのままインストールしようとすると、以下のエラーに遭遇します:

1. CUDA Compute Capability エラー

NVIDIA GeForce RTX 5090 with CUDA capability sm_120 is not compatible 
with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_50 sm_60 sm_61 sm_70 sm_75 sm_80 sm_86 sm_90.

原因: PyTorch安定版(2.6.0等)はsm_120をサポートしていない

2. Triton衝突エラー

triton.runtime.errors.OutOfResources: ...

原因: 公式TritonはLinux専用。PyTorchが依存関係で自動インストールするが、Windowsでは動作しない

3. パッケージインストール順序の罠

PyTorchを後からインストールすると、requirements.txtの依存解決でPyTorch安定版に上書きされてしまう

4. FlashAttention非対応

WindowsではFlashAttention 2が使えないため、手動でSDPAへの切り替えが必要


このバージョンを使うメリット

  • 上記の問題をすべて解決済み
  • ドキュメント化されたインストール手順
  • 動作確認済み環境の情報提供
  • triton-windowsが正しい順序でインストールされる
  • 自動CPU/GPUフォールバック機構搭載

動作確認済み環境

PyTorch: 2.11.0.dev20260119+cu128
CUDA available: True
CUDA version: 12.8
GPU: NVIDIA GeForce RTX 5090
GPU computation test: SUCCESS
項目
OS Windows 11
GPU NVIDIA GeForce RTX 5090 (32GB VRAM)
Driver 581.63
CUDA (nvidia-smi) 13.0
Python 3.10.x
PyTorch 2.11.0.dev+cu128 (nightly)

インストール手順(RTX 5090向け)

前提条件

  • Windows 11
  • NVIDIA RTX 5090 + Driver 580.x以降
  • Python 3.10.x
  • Git

手順

# 1. リポジトリをクローン
git clone https://github.com/hiroki-abe-58/Style-BERT-VITS2-GeneLab-Blackwel.git
cd Style-BERT-VITS2-GeneLab-Blackwel

# 2. 仮想環境を作成
python -m venv venv
.\venv\Scripts\Activate.ps1

# 3. pipをアップグレード
pip install --upgrade pip

# 4. 【重要】triton-windowsを先にインストール
pip install triton-windows

# 5. 【重要】PyTorch nightly cu128をインストール
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

# 6. その他の依存関係をインストール
pip install -r requirements.txt

# 7. 初期化(必要なモデルをダウンロード)
python initialize.py

動作確認

python -c "import torch; print('CUDA:', torch.cuda.is_available()); print('GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'N/A')"

期待される出力:

CUDA: True
GPU: NVIDIA GeForce RTX 5090

音声合成エディターの起動

python server_editor.py --inbrowser

ミドルウェア依存関係

┌─────────────────────────────────────────────────────────────┐
│                    Style-Bert-VITS2                         │
├─────────────────────────────────────────────────────────────┤
│  Gradio UI  │  TTS Engine  │  BERT Models  │  Audio I/O    │
├─────────────────────────────────────────────────────────────┤
│                      PyTorch Layer                          │
│  torch 2.11.0.dev+cu128  │  torchaudio  │  torchvision     │
├─────────────────────────────────────────────────────────────┤
│                    GPU Acceleration                         │
│  triton-windows 3.5.x  │  CUDA 12.8 (bundled)              │
├─────────────────────────────────────────────────────────────┤
│                    NVIDIA Driver                            │
│  Driver 580.x+  │  CUDA Capability sm_120 (Blackwell)      │
└─────────────────────────────────────────────────────────────┘

よくあるエラーと解決策

エラー 原因 解決策
sm_120 is not compatible PyTorch安定版を使用 PyTorch nightly cu128をインストール
triton.runtime.errors triton衝突 pip uninstall tritonpip install triton-windows
DLL load failed CUDA不整合 venvを再作成
CUDA out of memory VRAM不足 --device cpuオプションで起動

オリジナルへの敬意・謝辞

本フォーク版は、以下のプロジェクトの素晴らしい成果の上に成り立っています:

RTX 5090対応は、オリジナルのコードベースを尊重しつつ、最新GPUでの動作を可能にするための最小限の変更に留めています。


免責事項

  • 本フォーク版は無保証で提供されます
  • 動作の保証、サポートの提供は行いません
  • 本ソフトウェアの使用によって生じたいかなる損害についても、開発者は責任を負いません
  • RTX 5090以外の環境での動作は確認していません
  • PyTorch nightly版を使用するため、将来的に互換性の問題が発生する可能性があります

ライセンス

本リポジトリは、オリジナルのStyle-Bert-VITS2と同じく GNU Affero General Public License v3.0 (AGPL-3.0) でライセンスされています。

詳細は LICENSE を参照してください。

また、text/user_dict/ モジュールは VOICEVOX engine から継承した GNU Lesser General Public License v3.0 (LGPL-3.0) でライセンスされています。詳細は LGPL_LICENSE を参照してください。


連絡先


以下、オリジナルのREADME


Style-Bert-VITS2

利用の際は必ずお願いとデフォルトモデルの利用規約をお読みください。

Bert-VITS2 with more controllable voice styles.

style-bert-vits2-demo-JP-Extra.mp4

You can install via pip install style-bert-vits2 (inference only), see library.ipynb for example usage.

  • 解説チュートリアル動画 YouTube ニコニコ動画

  • Open In Colab

  • よくある質問 (FAQ)

  • 🤗 オンラインデモはこちらから

  • Zennの解説記事

  • リリースページ更新履歴

    • 2025-08-24: Ver 2.7.0: 外部ライブラリ Aivis Project 等との連携のため、ONNX変換のGUI追加、また音声認識モデルとして litagin/anime-whisper の追加等
    • 2024-09-09: Ver 2.6.1: Google colabでうまく学習できない等のバグ修正のみ
    • 2024-06-16: Ver 2.6.0 (モデルの差分マージ・加重マージ・ヌルモデルマージの追加、使い道についてはこの記事参照)
    • 2024-06-14: Ver 2.5.1 (利用規約をお願いへ変更したのみ)
    • 2024-06-02: Ver 2.5.0 (利用規約の追加、フォルダ分けからのスタイル生成、小春音アミ・あみたろモデルの追加、インストールの高速化等)
    • 2024-03-16: ver 2.4.1 (batファイルによるインストール方法の変更)
    • 2024-03-15: ver 2.4.0 (大規模リファクタリングや種々の改良、ライブラリ化)
    • 2024-02-26: ver 2.3 (辞書機能とエディター機能)
    • 2024-02-09: ver 2.2
    • 2024-02-07: ver 2.1
    • 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
    • 2023-12-27: ver 1.0

This repository is based on Bert-VITS2 v2.1 and Japanese-Extra, so many thanks to the original author!

概要

  • 入力されたテキストの内容をもとに感情豊かな音声を生成するBert-VITS2のv2.1とJapanese-Extraを元に、感情や発話スタイルを強弱込みで自由に制御できるようにしたものです。
  • GitやPythonがない人でも(Windowsユーザーなら)簡単にインストールでき、学習もできます (多くをEasyBertVits2からお借りしました)。またGoogle Colabでの学習もサポートしています: Open In Colab
  • 音声合成のみに使う場合は、グラボがなくてもCPUで動作します。
  • 音声合成のみに使う場合、Pythonライブラリとしてpip install style-bert-vits2でインストールできます。例はlibrary.ipynbを参照してください。
  • 他との連携に使えるAPIサーバーも同梱しています (@darai0512 様によるPRです、ありがとうございます)。
  • 元々「楽しそうな文章は楽しそうに、悲しそうな文章は悲しそうに」読むのがBert-VITS2の強みですので、スタイル指定がデフォルトでも感情豊かな音声を生成することができます。

使い方

動作環境

各UIとAPI Serverにおいて、Windows コマンドプロンプト・WSL2・Linux(Ubuntu Desktop)での動作を確認しています(WSLでのパス指定は相対パスなど工夫ください)。NVidiaのGPUが無い場合は学習はできませんが音声合成とマージは可能です。

インストール

Pythonライブラリとしてのpipでのインストールや使用例はlibrary.ipynbを参照してください。

GitやPythonに馴染みが無い方

Windowsを前提としています。

  1. このzipファイルパスに日本語や空白が含まれない場所にダウンロードして展開します。
  • グラボがある方は、Install-Style-Bert-VITS2.batをダブルクリックします。
  • グラボがない方は、Install-Style-Bert-VITS2-CPU.batをダブルクリックします。CPU版では学習はできませんが、音声合成とマージは可能です。
  1. 待つと自動で必要な環境がインストールされます。
  2. その後、自動的に音声合成するためのエディターが起動したらインストール成功です。デフォルトのモデルがダウンロードされるているので、そのまま遊ぶことができます。

またアップデートをしたい場合は、Update-Style-Bert-VITS2.batをダブルクリックしてください。

ただし2024-03-16の2.4.1バージョン未満からのアップデートの場合は、全てを削除してから再びインストールする必要があります。申し訳ありません。移行方法はCHANGELOG.mdを参照してください。

GitやPython使える人

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
venv\Scripts\activate
uv pip install "torch<2.4" "torchaudio<2.4" --index-url https://download.pytorch.org/whl/cu118
uv pip install -r requirements.txt
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*.safetensorsstyle_vectors.npyが必要です。モデルを共有する場合は、この3つのファイルを共有してください。

このうちstyle_vectors.npyはスタイルを制御するために必要なファイルで、学習の時にデフォルトで平均スタイル「Neutral」が生成されます。 複数スタイルを使ってより詳しくスタイルを制御したい方は、下の「スタイルの生成」を参照してください(平均スタイルのみでも、学習データが感情豊かならば十分感情豊かな音声が生成されます)。

学習

  • CLIでの学習の詳細はこちらを参照してください。
  • paperspace上での学習の詳細はこちら、colabでの学習はこちらを参照してください。

学習には2-14秒程度の音声ファイルが複数と、それらの書き起こしデータが必要です。

  • 既存コーパスなどですでに分割された音声ファイルと書き起こしデータがある場合はそのまま(必要に応じて書き起こしファイルを修正して)使えます。下の「学習WebUI」を参照してください。
  • そうでない場合、(長さは問わない)音声ファイルのみがあれば、そこから学習にすぐに使えるようにデータセットを作るためのツールを同梱しています。

データセット作り

  • App.batをダブルクリックかpython app.pyしたところの「データセット作成」タブから、音声ファイルを適切な長さにスライスし、その後に文字の書き起こしを自動で行えます。またはDataset.batをダブルクリックでもその単独タブが開きます。
  • 指示に従った後、下の「学習」タブでそのまま学習を行うことができます。

学習WebUI

  • App.batをダブルクリックかpython app.pyして開くWebUIの「学習」タブから指示に従ってください。またはTrain.batをダブルクリックでもその単独タブが開きます。

スタイルの生成

  • デフォルトでは、デフォルトスタイル「Neutral」の他、学習フォルダのフォルダ分けに応じたスタイルが生成されます。
  • それ以外の方法で手動でスタイルを作成したい人向けです。
  • App.batをダブルクリックかpython app.pyして開くWebUIの「スタイル作成」タブから、音声ファイルを使ってスタイルを生成できます。またはStyleVectors.batをダブルクリックでもその単独タブが開きます。
  • 学習とは独立しているので、学習中でもできるし、学習が終わっても何度もやりなおせます(前処理は終わらせている必要があります)。

API Server

構築した環境下でpython server_fastapi.pyするとAPIサーバーが起動します。 API仕様は起動後に/docsにて確認ください。

  • 入力文字数はデフォルトで100文字が上限となっています。これはconfig.ymlserver.limitで変更できます。
  • デフォルトではCORS設定を全てのドメインで許可しています。できる限り、config.ymlserver.originsの値を変更し、信頼できるドメインに制限ください(キーを消せばCORS設定を無効にできます)。

また音声合成エディターのAPIサーバーはpython server_editor.pyで起動します。があまりまだ整備をしていません。エディターのリポジトリから必要な最低限のAPIしか現在は実装していません。

音声合成エディターのウェブデプロイについてはこのDockerfileを参考にしてください。

マージ

2つのモデルを、「声質」「声の高さ」「感情表現」「テンポ」の4点で混ぜ合わせて、新しいモデルを作ったり、また「あるモデルに、別の2つのモデルの差分を足す」等の操作ができます。 App.batをダブルクリックかpython app.pyして開くWebUIの「マージ」タブから、2つのモデルを選択してマージすることができます。またはMerge.batをダブルクリックでもその単独タブが開きます。

ONNX変換

タブの「ONNX変換」または ConvertONNX.bat から、学習済みsafetensorsファイルをONNX形式に変換することができます。これは外部ライブラリ等でONNX形式ファイルが必要な場合に使えます。例えば Aivis Project では AIVM Generator を使って、safetensorsファイルとONNXファイルからAivis Speech用のモデルを作成できます。

自然性評価

学習結果のうちどのステップ数がいいかの「一つの」指標として、SpeechMOS を使うスクリプトを用意しています:

python speech_mos.py -m <model_name>

ステップごとの自然性評価が表示され、mos_resultsフォルダのmos_{model_name}.csvmos_{model_name}.pngに結果が保存される。読み上げさせたい文章を変えたかったら中のファイルを弄って各自調整してください。またあくまでアクセントや感情表現や抑揚を全く考えない基準での評価で、目安のひとつなので、実際に読み上げさせて選別するのが一番だと思います。

Bert-VITS2との関係

基本的にはBert-VITS2のモデル構造を少し改造しただけです。旧事前学習モデルJP-Extraの事前学習モデルも、実質Bert-VITS2 v2.1 or JP-Extraと同じものを使用しています(不要な重みを削ってsafetensorsに変換したもの)。

具体的には以下の点が異なります。

  • EasyBertVits2のように、PythonやGitを知らない人でも簡単に使える。
  • 感情埋め込みのモデルを変更(256次元のwespeaker-voxceleb-resnet34-LMへ、感情埋め込みというよりは話者識別のための埋め込み)
  • 感情埋め込みもベクトル量子化を取り払い、単なる全結合層に。
  • スタイルベクトルファイルstyle_vectors.npyを作ることで、そのスタイルを使って効果の強さも連続的に指定しつつ音声を生成することができる。
  • 各種WebUIを作成
  • bf16での学習のサポート
  • safetensors形式のサポート、デフォルトでsafetensorsを使用するように
  • その他軽微なbugfixやリファクタリング

References

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:

LICENSE

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.

Below is the original README.md.

LOGO

Bert-VITS2

VITS2 Backbone with multilingual bert

For quick guide, please refer to webui_preprocess.py.

简易教程请参见 webui_preprocess.py

请注意,本项目核心思路来源于anyvoiceai/MassTTS 一个非常好的tts项目

成熟的旅行者/开拓者/舰长/博士/sensei/猎魔人/喵喵露/V应当参阅代码自己学习如何训练。

严禁将此项目用于一切违反《中华人民共和国宪法》,《中华人民共和国刑法》,《中华人民共和国治安管理处罚法》和《中华人民共和国民法典》之用途。

严禁用于任何政治相关用途。

QQ Group:815818430

References

感谢所有贡献者作出的努力

About

Style-Bert-VITS2のRTX 5090 (Blackwell) 対応版。Windowsネイティブ環境でのGPU動作を実現。PyTorch nightly cu128、triton-windows統合、自動CPU/GPUフォールバック機構を搭載。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 95.5%
  • Jupyter Notebook 2.4%
  • Batchfile 2.1%