Skip to content
This repository has been archived by the owner on Jan 5, 2024. It is now read-only.

日本語TTS(VITS)の学習と音声合成のGradio WebUI

License

Notifications You must be signed in to change notification settings

litagin02/vits-japros-webui

Repository files navigation

Style-Bert-VITS2の開発に集中するのでこちらはもう更新しません:https://github.com/litagin02/Style-Bert-VITS2

Bert-VITS2の参考記事:https://zenn.dev/litagin/articles/b1ddc1da5ea2b3

VITS-JaPros-WebUI

日本語VITSモデルを学習でき、アクセント指定込みで音声合成できる、Windows用WebUIです。音声合成のみならグラボがなくても使えます。

🤗 音声合成のデモ

Open In Colab

音声合成 学習
demo demo

JaPros?

  • 機械学習での音声処理タスクをいろいろ統一的に扱えるESPnetという枠組みがある。
  • ESPnetでのTTS学習の方法としてVITSが使える。
  • ESPnetではTTS学習の際、学習テキスト(日本語文)から音素列へ変換する方法(g2p)を指定でき、その中の一つにアクセント記号を付加したpyopenjtalk_prosodyがある。

という状況で、日本語でg2pをpyopenjtalk_prosodyにして訓練したモデルのことを、JApanese ..._PROSodyから取ってJaProsと便宜上読んでいます(Bingちゃんからの提案)。

pyopenjtalk_prosodyではアクセント等の記号も扱われているので、それを使ってアクセント(ハ➚シ v.s. ハ➘シ等)が制御できます。

アクセント記号詳細
記号 役割
[ ここからアクセントが上昇(➚のイメージ) こんにちは → コ[ンニチワ
] ここからアクセントが下降(➘のイメージ) 京都 → キョ]オト
(半角スペース) アクセント句(何となくひとまとまりの箇所)の切れ目 ソ[レワ ム[ズカシ]イ
ポーズ(息継ぎ)。短いポーズを入れたいときに使います。 ハ]イ、ソ[オ オ[モイマ]ス
? 疑問文の終わりにつけます。 キ[ミワ ダ]レ?

これは何?

これは、Windowsローカル環境でVITS JaProsモデルを学習したり、読み込んで音声合成できるやつです。

学習について

  • faster-whisperによる、音声ファイルからの自動書き起こし機能つき
  • 学習自体はESPnetをWindowsで動くように改造して、VITS JaProsを最低限の操作で学習できるようにしたもの

音声合成について

  • カタカナと記号による(たぶん)ある程度直感的なアクセント制御
  • 簡易的な話速・ピッチ・抑揚調整機能(pyworld由来)
  • CPUでも動く(学習の最中に別で立ち上げてチェック可能)
  • これを使って作られたモデルでなくても、ESPnetでVITSでpyopenjtalk_prosodyなモデルなら、config.yamlと一緒に入れれば動くはず

使い方

インストール

Python 3.10でWindows 11でRTX 4070で動作確認しました。

  1. まずこのリポジトリをクローンしてください。
git clone https://github.com/litagin02/vits-japros-webui.git
  1. 中にあるsetup.bat をダブルクリックして、しばらく待ってください。Setup complete.と表示されたら完了です。

使い方

  • 学習:webui_train.batをダブルクリック
  • 音声合成:下を参照してpthファイルを配置してからwebui_infer.batをダブルクリック
  • アップデート: update.batをダブルクリック

詳しい情報・WebUIがいらない方はこちらをご覧ください。

音声合成のためにモデルを置く

モデルはweightsディレクトリにサブディレクトリを作って、その中に{数字}epoch.pthファイルを入れてください。 外部モデル(ESPnetでVITSでpyopenjtalk_prosodyで作ったモデルのみ対応)を使う場合は、学習時のconfig.yamlも入れてください。

weights
├── model1
│    └── 100epoch.pth
|── model2
│    ├── 50epoch.pth
│    └── config.yaml
...

クレジット

  • ESPnet: このリポジトリでは、オリジナルのESPnetのPythonモジュールをWindowsで動くように改造して使っています(改造箇所はos.unameの使用箇所とシンボリックリンク作成箇所のみです)。

About

日本語TTS(VITS)の学習と音声合成のGradio WebUI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages