2023-12-27 05:37:46 +09:00
2024-01-04 11:30:14 +09:00
2023-12-27 05:37:46 +09:00
2024-01-04 20:25:45 +09:00
2023-12-27 16:16:22 +09:00
2023-12-30 19:52:01 +09:00
2024-01-06 09:27:25 +09:00
2023-12-31 14:55:04 +09:00
2023-12-27 09:44:57 +09:00
2024-01-04 20:25:45 +09:00
2023-12-27 16:16:22 +09:00
2023-12-31 14:55:04 +09:00
2024-01-06 13:59:10 +09:00
2024-01-03 17:40:45 +09:00
2024-01-05 16:16:07 +09:00
2023-12-27 05:37:46 +09:00
2024-01-06 13:59:10 +09:00
2024-01-06 13:59:10 +09:00
2023-12-27 16:16:22 +09:00
2023-12-31 14:55:04 +09:00
2023-12-31 14:55:04 +09:00
2023-09-02 00:14:02 +08:00
2023-12-20 02:50:58 +08:00
2023-12-31 14:55:04 +09:00
2023-12-27 19:29:34 +09:00
2023-12-27 19:29:34 +09:00
2024-01-06 13:59:10 +09:00
2023-12-19 19:12:26 +08:00
2024-01-05 22:48:42 +09:00
2023-12-30 19:52:01 +09:00
2024-01-06 13:59:10 +09:00
2023-12-27 16:16:22 +09:00
2023-12-31 14:55:04 +09:00
2024-01-05 16:16:07 +09:00
2023-11-25 13:08:51 +08:00
2024-01-06 10:38:00 +09:00
2024-01-06 13:59:10 +09:00
2023-12-27 16:16:22 +09:00
2023-12-27 16:16:22 +09:00
2024-01-05 16:16:07 +09:00
2023-09-06 13:42:05 +00:00
2023-10-28 10:36:21 +08:00
2023-12-31 14:55:04 +09:00
2024-01-05 16:16:07 +09:00
2023-12-31 14:55:04 +09:00

2024-01-05に、日本語の処理部分にあった大きいバグを修正しました。アップデートして使うのを強くおすすめします。学習もし直すといいかもしれません。

Style-Bert-VITS2

Bert-VITS2 with more controllable voice styles.

English README

https://github.com/litagin02/Style-Bert-VITS2/assets/139731664/b907c1b8-43aa-46e6-b03f-f6362f5a5a1e

注意: 上記動画のライセンス表記は誤っていました、正しくはCC BY-SA 4.0で商用利用に制限はありません。近日訂正版動画に差し替えます。

Open In Colab

Online demo: https://huggingface.co/spaces/litagin/Style-Bert-VITS2-JVNV

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

概要

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

使い方

動作環境

各UIとAPI Serverにおいて、Windows コマンドプロンプト・WSL2・Linux(Ubuntu Desktop)での動作を確認しています(WSLでのパス指定は相対パスなど工夫ください)。

インストール

GitやPythonに馴染みが無い方

Windowsを前提としています。

  1. このzipファイルをダウンロードして展開します。
  • グラボがある方は、Install-Style-Bert-VITS2.batをダブルクリックします。
  • グラボがない方は、Install-Style-Bert-VITS2-CPU.batをダブルクリックします。
  1. 待つと自動で必要な環境がインストールされます。
  2. その後、自動的に音声合成するためのWebUIが起動したらインストール成功です。デフォルトのモデルがダウンロードされるているので、そのまま遊ぶことができます。

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

GitやPython使える人

git clone https://github.com/litagin02/Style-Bert-VITS2.git
cd Style-Bert-VITS2
python -m venv venv
venv\Scripts\activate
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
python initialize.py  # 必要なモデルとデフォルトTTSモデルをダウンロード

最後を忘れずに。

音声合成

App.batをダブルクリックか、python app.pyするとWebUIが起動します。インストール時にデフォルトのモデルがダウンロードされているので、学習していなくてもそれを使うことができます。

音声合成に必要なモデルファイルたちの構造は以下の通りです(手動で配置する必要はありません)。

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」が生成されます。 複数スタイルを使ってより詳しくスタイルを制御したい方は、下の「スタイルの生成」を参照してください(平均スタイルのみでも、学習データが感情豊かならば十分感情豊かな音声が生成されます)。

学習

Train.batをダブルクリックかpython webui_train.pyするとWebUIが起動します。

スタイルの生成

  • デフォルトスタイル「Neutral」以外のスタイルを使いたい人向けです。
  • Style.batをダブルクリックかpython webui_style_vectors.pyするとWebUIが起動します。
  • 学習とは独立しているので、学習中でもできるし、学習が終わっても何度もやりなおせます(前処理は終わらせている必要があります)。
  • スタイルについての仕様の詳細はclustering.ipynbを参照してください。

データセット作り

  • Dataset.batをダブルクリックかpython webui_dataset.pyすると、音声ファイルからデータセットを作るためのWebUIが起動します。音声ファイルのみからでもこれを使って学習できます。

注意: データセットの手動修正やノイズ除去等、細かい修正を行いたい場合はAivisや、そのデータセット部分のWindows対応版 Aivis Dataset を使うといいかもしれません。ですがファイル数が多い場合などは、このツールで簡易的に切り出してデータセットを作るだけでも十分という気もしています。

データセットがどのようなものがいいかは各自試行錯誤中してください。

API Server

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

デフォルトではCORS設定を全てのドメインで許可しています。 できる限り、config.ymlserver.originsの値を変更し、信頼できるドメインに制限ください(キーを消せばCORS設定を無効にできます)。

マージ

2つのモデルを、「声音」「感情表現」「テンポ」の3点で混ぜ合わせて、新しいモデルを作ることが出来ます。 Merge.batをダブルクリックかpython webui_merge.pyするとWebUIが起動します。

Bert-VITS2 v2.1との関係

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

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

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

TODO

  • LinuxやWSL等、Windowsの通常環境以外でのサポート ← おそらく問題ないとの報告あり
  • 複数話者学習での音声合成対応(学習は現在でも可能)
  • 本家のver 2.1, 2.2, 2.3モデルの推論対応ver 2.1以外は明らかにめんどいのでたぶんやらない)
  • server_fastapi.pyの対応、とくにAPIで使えるようになると嬉しい人が増えるのかもしれない
  • モデルのマージで声音と感情表現を混ぜる機能の実装
  • 英語等多言語対応?
  • ONNX対応

実験したいこと

  • 複数話者での学習の実験(原理的にはできるはず、スタイルがどう効くかが未知)
  • むしろ複数話者で単一話者扱いで学習しても、スタイル埋め込みが話者埋め込みでそこに話者の情報が含まれているので、スタイルベクトルを作ることで複数話者の音声を生成できるのではないか?
  • もしそうなら、大量の人数の音声を学習させれば、ある意味「話者空間から適当に選んだ話者(連続的に変えられる)の音声合成」ができるのでは?リファレンス音声も使えばゼロショットでの音声合成もできるのでは?

References

In addition to the original reference (written below), I used the following repositories:

The pretrained model is essentially taken from the original base model of Bert-VITS2 v2.1, so all the credits go to the original author (Fish Audio):

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 Group815818430

References

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

Description
No description provided
Readme AGPL-3.0 15 MiB
Languages
Python 95.5%
Jupyter Notebook 2.5%
Batchfile 2%