前言#
本文簡單記錄介紹一下 vits_chinese。
vits_chinese 使用了 BERT 和 VITS 進行 TTS,並加入了一些自然語言特性,從而實現高質量的文本轉音頻,同時支持實時輸出。
正文#
一、什麼是 VITS#
VITS 是一種採用變分推理和對抗性訓練過程的聲音合成模型,可生成比當前兩階段 TTS 系統更自然的音頻。該模型採用隨機時長預測器來從輸入文本中合成具有不同節奏的語音,並通過概率建模和隨機時長預測器表達自然的一對多關係,其中輸入文本可以以不同的音調和節奏發音。
如下是 vits 的訓練流程圖:
如下是 vits 的推理過程:
而 vits_chinese 使用 vits 作為模型框架,採用 BERT 作為內部基礎組件,可以獲取更自然的停頓、較少的聲音錯誤和高音頻質量。
二、vits_chinese 功能#
- 使用 BERT 獲取自然停頓,實現自然語音
- 根據自然語音推斷損失,減少聲音誤差
- 使用 VITS 的框架,提供高質量音頻
三、vits_chinese 使用與訓練#
可以在線體驗demo。
如果要自己訓練測試,需要先安裝項目:
pip install -r requirements.txt
cd monotonic_align
python setup.py build_ext --inplace
預訓練模型可以在 huggingface 項目上或在網盤下載,
推理請執行:python vits_infer.py --config ./configs/bert_vits.json --model vits_bert_model.pth
訓練可以下載 baker 數據,將波形的採樣率更改為 16kHz,並將波形放入./data/waves
中,將000001-010000.txt
放入./data
中,然後運行python vits_prepare.py -c ./configs/bert_vits.json
和python train.py -c configs/bert_vits.json -m bert_vits
進行訓練。
如果要自定義訓練數據,只需要將數據整理成項目要求的格式即可。
四、總結#
效果完全依賴語料數據集的覆蓋程度,該項目也不算是一個完整的 TTS 項目。
項目只有一種女聲,如果要更多可選項就需要自己收集語料訓練了,整體效果非常不錯。
最後#
參考文章:
聲明#
本文僅作為個人學習記錄。
本文與hblog保持同步。