做網(wǎng)站的成本網(wǎng)站項目開發(fā)流程
GPT-SoVITS 本地搭建踩坑
- 前言
- 搭建
- 下載
- 解壓
- VSCode打開
- 安裝依賴包
- 修改內(nèi)容
- 1.重新安裝版本
- 2.修改文件內(nèi)容
- 運行
- 總結(jié)
前言
傳言GPT-SoVITS作為當前與BertVits2.3并列的TTS大模型,于是本地搭了一個,簡單說一下坑。
搭建
下載
到GitHub點擊此處下載
https://github.com/RVC-Boss/GPT-SoVITS
解壓
解壓到全英文目錄
VSCode打開
使用VSCode打開,切到conda并clone一個之前BertVits的環(huán)境(沒環(huán)境的自己先做一個Python3.10的配好PyTorch的)
安裝依賴包
使用下面語句安裝依賴
pip install -r requirements.txt
修改內(nèi)容
根據(jù)issues內(nèi)大家討論的結(jié)果,這樣操作是實測可行的,但是之后作者應(yīng)該會優(yōu)化,截止發(fā)文這么改是沒問題的,以后可能不用改了
https://github.com/RVC-Boss/GPT-SoVITS/issues/26
1.重新安裝版本
輸入下面的指令重新安裝一下對應(yīng)版本的
pip install funasr==0.8.7
pip install modelscope==1.10.0
2.修改文件內(nèi)容
將 tools\damo_asr\cmd-asr.py 文件中的
inference_pipeline = pipeline(task=Tasks.auto_speech_recognition,model='tools/damo_asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',vad_model='tools/damo_asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch',punc_model='tools/damo_asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
)
改成
inference_pipeline = pipeline(task=Tasks.auto_speech_recognition,model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',vad_model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',punc_model='damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
)
根據(jù)我的研究,原因是 git clone 的那幾個模型的配置文件和它自動下載的內(nèi)容不一樣
修改后源碼如下
# -*- coding:utf-8 -*-from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import sys,os,traceback
dir=sys.argv[1]
# opt_name=dir.split("\\")[-1].split("/")[-1]
opt_name=os.path.basename(dir)path_asr='tools/damo_asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch'
path_vad='tools/damo_asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch'
path_punc='tools/damo_asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch'
path_asr=path_asr if os.path.exists(path_asr)else "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"
path_vad=path_vad if os.path.exists(path_vad)else "damo/speech_fsmn_vad_zh-cn-16k-common-pytorch"
path_punc=path_punc if os.path.exists(path_punc)else "damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch"
# inference_pipeline = pipeline(
# task=Tasks.auto_speech_recognition,
# model=path_asr,
# vad_model=path_vad,
# punc_model=path_punc,
# )
inference_pipeline = pipeline(task=Tasks.auto_speech_recognition,model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',vad_model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',punc_model='damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
)opt=[]
for name in os.listdir(dir):try:text = inference_pipeline(audio_in="%s/%s"%(dir,name))["text"]opt.append("%s/%s|%s|ZH|%s"%(dir,name,opt_name,text))except:print(traceback.format_exc())opt_dir="output/asr_opt"
os.makedirs(opt_dir,exist_ok=True)
with open("%s/%s.list"%(opt_dir,opt_name),"w",encoding="utf-8")as f:f.write("\n".join(opt))
運行
在環(huán)境中輸入,即可正常啟動
python webui.py
總結(jié)
能夠有感情的朗讀了,不錯