Style-Bert-VITS2 / README.md
samiabat's picture
Upload folder using huggingface_hub
d00dc99 verified

A newer version of the Gradio SDK is available: 5.30.0

Upgrade
metadata
title: Style-Bert-VITS2
app_file: app.py
sdk: gradio
sdk_version: 5.16.0

Style-Bert-VITS2

利甚の際は必ずお願いずデフォルトモデルの利甚芏玄をお読みください。

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.

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

  • Open In Colab

  • よくある質問 (FAQ)

  • 🀗 オンラむンデモはこちらから

  • Zennの解説蚘事

  • リリヌスペヌゞ、曎新履歎

    • 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ず*.safetensorsずstyle_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.ymlのserver.limitで倉曎できたす。
  • デフォルトではCORS蚭定を党おのドメむンで蚱可しおいたす。できる限り、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ずの関係

基本的には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项目

MassTTS的挔瀺demo䞺ai版峰哥锐评峰哥本人,并扟回了圚金䞉角倱萜的腰子

成熟的旅行者/匀拓者/舰长/博士/sensei/猎魔人/喵喵露/V应圓参阅代码自己孊习劂䜕训练。

䞥犁将歀项目甚于䞀切违反《䞭华人民共和囜宪法》《䞭华人民共和囜刑法》《䞭华人民共和囜治安管理倄眚法》和《䞭华人民共和囜民法兞》之甚途。

䞥犁甚于任䜕政治盞关甚途。

Video:https://www.bilibili.com/video/BV1hp4y1K78E

Demo:https://www.bilibili.com/video/BV1TF411k78w

QQ Group815818430

References

感谢所有莡献者䜜出的努力