diff --git a/README.md b/README.md index 875651d..efedcbf 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ python initialize.py # 必要なモデルとデフォルトTTSモデルをダ ### 音声合成 -`App.bat`をダブルクリックか、`python app.py`するとWebUIが起動します。インストール時にデフォルトのモデルがダウンロードされているので、学習していなくてもそれを使うことができます。 +`App.bat`をダブルクリックか、`python app.py`するとWebUIが起動します(`python app.py --cpu`でCPUモードで起動、学習中チェックに便利です)。インストール時にデフォルトのモデルがダウンロードされているので、学習していなくてもそれを使うことができます。 音声合成に必要なモデルファイルたちの構造は以下の通りです(手動で配置する必要はありません)。 ``` diff --git a/app.py b/app.py index 7dca8fa..baab228 100644 --- a/app.py +++ b/app.py @@ -288,7 +288,7 @@ if __name__ == "__main__": label="分けた場合に挟む無音の長さ(秒)", ) tone = gr.Textbox( - label="アクセント調整(数値は0か1のみ)", + label="アクセント調整(数値は 0=低 か1=高 のみ)", info="改行で分けない場合のみ使えます", ) use_tone = gr.Checkbox(label="アクセント調整を使う", value=False) diff --git a/data_utils.py b/data_utils.py index 82b3a4d..e20aca5 100644 --- a/data_utils.py +++ b/data_utils.py @@ -346,10 +346,6 @@ class DistributedBucketSampler(torch.utils.data.distributed.DistributedSampler): # When one bucket is not traversed except Exception as e: logger.info("Bucket warning ", e) - logger.info( - "Empty buckets at indices: ", - [i for i, bucket in enumerate(buckets) if len(bucket) == 0], - ) for i in range(len(buckets) - 1, -1, -1): if len(buckets[i]) == 0: buckets.pop(i) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 9327546..d39ad7d 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,28 +3,41 @@ ## v1.3 ### 大きい変更 -- 元々のBert-VITS2に存在した、日本語の発音・アクセント処理部分のバグを修正 +- 元々のBert-VITS2に存在した、日本語の発音・アクセント処理部分のバグを修正・リファクタリング - `車両`が`シャリヨオ`、`思う`が`オモオ`、`見つける`が`ミッケル`等に発音・学習されており、その単語以降のアクセント情報が全て死んでいた - `私はそれを見る`のアクセントが`ワ➚タシ➘ワ ソ➚レ➘オ ミ➘ル`だったのを`ワ➚タシワ ソ➚レオ ミ➘ル`に修正 -- アクセントの誤りを修正して音声合成できるように(完全に制御できるわけではないが改善される場合がある)。 + - 学習・音声合成で無視されていたアルファベット・ギリシャ文字を無視しないように変更(基本はアルファベット読みだけど簡単な単語は読めるらしい、学習の際は念のためカタカナ等にしたほうがよいです) + - 修正の影響で、前処理時に(今まで無視されていた)読めない漢字等で引っかかるようになりました。その場合は書き起こしを確認して修正するようにしてください。 +- アクセントを調整して音声合成できるように(完全に制御できるわけではないが改善される場合がある)。 -これまでのモデルもこれまで通り使え、アクセントや発音等が改善される可能性があります。新しいバージョンで学習し直すとより良くなる可能性もあります。 +これまでのモデルもこれまで通り使え、アクセントや発音等が改善される可能性があります。新しいバージョンで学習し直すとより良くなる可能性もあります。が劇的に良くなるかは分かりません。 ### 改善 -- `Dataset.bat`の音声スライスと書き起こしをよりカスタマイズできるように(秒数指定や書き起こしのWhisperモデル指定や言語指定等) -- `Style.bat`のスタイル作成で、新しい可視化方法(UMAP)と新しいスタイル分けの方法(DBSCAN)を追加 +- `Dataset.bat`の音声スライスと書き起こしをよりカスタマイズできるように(スライスの秒数設定や書き起こしのWhisperモデル指定や言語指定等) +- `Style.bat`のスタイル作成で、新しい次元削減方法(UMAP)と新しいスタイル分けの方法(DBSCAN)を追加 - クラウド実行等の際にパスの指定をこちらでできるように、パスの設定を`configs/paths.yml`にまとめた(colabの[ノートブック](http://colab.research.google.com/github/litagin02/Style-Bert-VITS2/blob/master/colab.ipynb)もそれに伴って更新)。デフォルトは`dataset_root: Data`と`assets_root: model_assets`なので、クラウド等でやる方はここを変更してください。 - どのステップ数の出力がよいかの「一つの」指標として [SpeechMOS](https://github.com/tarepan/SpeechMOS) を使うスクリプトを追加: ```bash python speech_mos.py -m ``` -ステップごとの自然性評価が表示され、`mos_{model_name}.csv`と`mos_{model_name}.png`に結果が保存される。読み上げさせたい文章を変えたかったら中のファイルを弄って各自調整してください。またあくまで目安のひとつなので、実際に読み上げさせて選別するのが一番だと思います。 +ステップごとの自然性評価が表示され、`mos_results`フォルダの`mos_{model_name}.csv`と`mos_{model_name}.png`に結果が保存される。読み上げさせたい文章を変えたかったら中のファイルを弄って各自調整してください。またあくまで目安のひとつなので、実際に読み上げさせて選別するのが一番だと思います。 +- 学習時のウォームアップオプションを機能するように( [@kale4eat](https://github.com/kale4eat) 様によるPRです、ありがとうございます!)。学習時に生成される`config.json`の`train`の`warmup_epochs`を変更することで、ウォームアップのエポック数を変更できます。デフォルトは`0`で今までと同じ学習率の挙動です。 + +### その他 +- `Dataset.bat`の音声スライスでノーマライズ機能を削除(学習前処理で行えるため) +- `Train.bat`の音量ノーマライズと無音切り詰めをデフォルトでオフに変更 +- 学習時の進捗を全体エポック数で表示し、学習全体の進捗を見やすいように( @RedRayz 様によるPRです、ありがとうございます!) +- その他バグ修正等( [@tinjyuu](https://github.com/@tinjyuu) 様、 [@darai0512](https://github.com/darai0512) 様ありがとうございます! ) +- `config.json`にスタイル埋め込み部分を学習しない`freeze_style`オプションを追加(デフォルトは`false`) + +### TIPS +- 日本語学習の場合、`config.json`の`freeze_bert`と`freeze_en_bert`を`true`にしておくと、英語と中国語の発話能力が学習の過程で落ちないかもしれませんが、あまり比較していなので分かりません。 ## v1.2 (2023-12-31) - グラボがないユーザーでの音声合成をサポート、`Install-Style-Bert-VITS2-CPU.bat`でインストール。 - Google Colabでの学習をサポート、[ノートブック](http://colab.research.google.com/github/litagin02/Style-Bert-VITS2/blob/master/colab.ipynb)を追加 -- 音声合成のAPIサーバーを追加、`python server_fastapi.py`で起動します。API仕様は起動後に`/docs`にて確認ください。( @darai0512 様によるPRです、ありがとうございます!) +- 音声合成のAPIサーバーを追加、`python server_fastapi.py`で起動します。API仕様は起動後に`/docs`にて確認ください。( [@darai0512](https://github.com/darai0512) 様によるPRです、ありがとうございます!) - 学習時に自動的にデフォルトスタイル Neutral を生成するように。特にスタイル指定が必要のない方は、学習したらそのまま音声合成を試せます。これまで通りスタイルを自分で作ることもできます。 - マージ機能の新規追加: `Merge.bat`, `webui_merge.py` - 前処理のリサンプリング時に音声ファイルの開始・終了部分の無音を削除するオプションを追加(デフォルトでオン) diff --git a/webui_train.py b/webui_train.py index 8a2c7c4..f2a582f 100644 --- a/webui_train.py +++ b/webui_train.py @@ -403,11 +403,11 @@ if __name__ == "__main__": ) normalize_resample = gr.Checkbox( label="音声の音量を正規化する", - value=True, + value=False, ) trim_resample = gr.Checkbox( label="音声の最初と最後の無音を取り除く", - value=True, + value=False, ) with gr.Column(): resample_btn = gr.Button(value="実行", variant="primary")