Skip to content

2.4.0

Compare
Choose a tag to compare
@litagin02 litagin02 released this 15 Mar 12:48
· 144 commits to master since this release
c8f4b82

v2.4.0 (2024-03-15)

大規模リファクタリング・日本語処理のワーカー化と機能追加等。データセット作り・学習・音声合成・マージ・スタイルWebUIは全てapp.py (App.bat) へ統一されましたのでご注意ください。

アップデート手順

  • アップデートにより多くのファイルが移動したり使えなくなったりしたので、それらを削除するClean.batUpdate-Style-Bert-VITS2.batと同じ場所に保存して実行することを推奨します。
  • 2.3未満(辞書・エディター追加前)からのアップデートの場合は、Update-to-Dict-Editor.batをダウンロードし、Style-Bert-VITS2フォルダがある場所(インストールbatファイルとかがあったところ)においてダブルクリックしてください。
  • それ以外の場合は、単純に今までのUpdate-Style-Bert-VITS2.batでアップデートできます。

内部改善

  • tsukumijimaさんによる大規模リファクタリングのプルリク によって、内部コードが非常に整理され可読性が高まりライブラリ化もされた。@tsukumijima さん大変な作業を本当にありがとうございます!
  • ライブラリとしてpip install style-bert-vits2によりすぐにインストールでき、音声合成部分の機能が使えます(使用例は/library.ipynbを参照してください)
  • その他このプルリクに動機づけられ、多くのコードのリファクタリング・型アノテーションの追加等を行った
  • 日本語処理のpyopenjtalkをソケット通信を用いて別プロセス化し、複数同時に学習や音声合成を立ち上げても辞書の競合エラーが起きないように。@kale4eat さんによるPR です、ありがとうございます!

バグ修正

  • 上記にもある通り、音声合成と学習前処理など、日本語処理を扱うものを2つ以上起動しようとするとエラーが発生する仕様の解決。ユーザー辞書は追加すれば常にどこからでも適応されます。
  • rawフォルダの直下でなくサブフォルダ内に音声ファイルがある場合に、wavsフォルダでもその構造が保たれてしまい、書き起こしファイルとの整合性が取れなくなる挙動を修正し、常にwavフォルダ直下へwavファイルを保存するように変更
  • スライス時に元ファイル名にピリオド . が含まれると、スライス後のファイル名がおかしくなるバグの修正

機能改善・追加

  • 各種WebUIを一つapp.py App.bat に統一
  • その他以下の変更や、軽微なUI・説明文の改善等

データセット作成

  • スライス処理の高速化(マルチスレッドにした、大量にスライス元ファイルファイルがある場合に高速になります)、またスライス元のファイルをwav以外のmp3oggなどの形式にも対応
  • スライス処理時に、ファイル名にスライスされた開始終了区間を含めるオプションを追加 (@aka7774 さんによるPRです、ありがとうございます!)
  • 書き起こしの高速化、またHugging FaceのWhisperモデルを使うオプションを追加。バッチサイズを上げることでVRAMを食う代わりに速度が大幅に向上します。

学習

  • 学習元の音声ファイル(Data/モデル名/rawにいれるやつ)を、wav以外のmp3oggなどの形式にも対応(前処理段階で自動的にwavファイルに変換されます)(ただし変わらず1ファイル2-12秒程度の範囲の長さが望ましい)

音声合成

  • 音声合成時に、生成音声の音の高さ(音高)と抑揚の幅を調整できるように(ただし音質が少し劣化する)。App.batEditor.batのどちらからでも使えます。
  • Editor.batの複数話者モデルでの話者指定を可能に
  • Editor.batで、改行を含む文字列をペーストすると自動的に欄が増えるように。また「↑↓」キーで欄を追加・行き来できるように(エディター側で以前に既にアプデしていました)
  • Editor.batでモデル一覧のリロードをメニューに追加

API

  • server_fastapi.pyの実行時に全てのモデルファイルを読み込もうとする挙動を修正。音声合成がリクエストされて初めてそのモデルを読み込むように変更(APIを使わない音声合成のときと同じ挙動)
  • server_fastapi.pyの音声合成エンドポイント/voiceについて、GETメソッドに加えてPOSTメソッドを追加。GETメソッドでは多くの制約があるようなのでPOSTを使うことが推奨されます。

CLI

  • preprocess_text.pyで、書き起こしファイルでの音声ファイル名を自動的に正しいData/モデル名/wavs/へ書き換える--correct_pathオプションの追加(WebUIでは今までもこの挙動でした)
  • その他上述のデータセット作成の機能追加に伴うCLIのオプションの追加(詳しくはCLI.mdを参照)