以上是我們過往分享過關於 https://github.com/RVC-Boss/GPT-SoVITS 的分享文章, 這次我們要來試試finetune模型的章節, 為什麼需要finetune? 因為我們希望機器講出來的話不是生硬的, 而是像人類那麼自然的發音, 因此會需要一些些模型上的微調, 那我們就實際來操演一下。
我們會需要事先下載模型並掛載, 這會讓我們後續的訓練流程更加順利, 分別有以下步驟:
# 建立iic目錄(funasr固定從iic目錄找模型)
mkdir iic
# 下載ASR模型
git clone <https://www.modelscope.cn/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch.git>
# 下載VAD模型
git clone <https://www.modelscope.cn/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch.git>
# 下載Punc模型
git clone <https://www.modelscope.cn/iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch.git>
# 下載pretrained_models 模型
git clone <https://huggingface.co/lj1995/GPT-SoVITS> pretrained_models
模型資源參考: Damo ASR Model, Damo VAD Model, and Damo Punc Model
services:
gpt-sovits-webui:
...
volumes:
- ./output:/workspace/output
- ./logs:/workspace/logs
- ./SoVITS_weights:/workspace/SoVITS_weights
- ./GPT_weights:/workspace/GPT_weights
- ./reference:/workspace/reference
- ./iic:/workspace/iic
- ./iic/pretrained_models:/workspace/GPT_SoVITS/pretrained_models
docker compose down -v && docker compose up -d
首先我們透過 http://localhost:9874/ 進入到入口網站, 並勾選 Open UVR5-WebUI
如果沒有自動彈跳, 請另外開啟 http://localhost:9873/, 開啟之後我們可以上傳一段1分鐘左右的音檔來進行finetune, 模型的部份我們可以選擇HP3, 官方有提到, HP3保留人聲的效果稍比HP2好。
好了, 配置完成後我們按下Convert的轉換按鈕, 轉換完畢之後我們可以在相對應目錄找到純人聲的檔案。
分離完人聲之後, 我們回到 http://localhost:9874/ 來進行音檔切割動作。
切割完畢之後我們可以看到設定的輸出目錄會有以下許多段落檔案:
打開 Open labelling WebUI 頁面。
進到 http://localhost:9871/ 可以看到標註結果, 這邊可以邊聽邊校驗。
回到 http://localhost:9874/ 並切換到 1-GPT-SOVITS-TTS 並填入相關參數, 最後按下 Start one-click formatting。
💡 這個步驟等待有點久的原因是我們的模型都是動態下載, 建議您可以先行下載模型並掛載, 步驟如同「以ASR進行文字標注」的步驟, 請自行設定, 如果遇到任何問題歡迎留言給我, 在認知範圍內必進行回覆。
切到 fune-tune頁面並直接訓練看看效果。
這邊UI的部份不會自動停止, 因此建議可以搭配後端進行查看。
docker compose logs -f
如果沒有自動彈跳請自行開啟: http://localhost:9872
恭喜您! 調整出接近人類講話的TTS了, 不妨自行動手玩玩看, 相信會非常有成就感!
https://github.com/RVC-Boss/GPT-SoVITS 真的是一個非常好用的TTS程式, 透過簡易的UI就能夠自行調出客製化的聲音, 讓我們在打造智能語音機器人時能夠更容易進行整合。