PlayVoice / vits_chinese

Best practice TTS based on BERT and VITS with some Natural Speech Features Of Microsoft; Support ONNX streaming out!
https://huggingface.co/spaces/maxmax20160403/vits_chinese
MIT License
1.15k stars 168 forks source link

输入英文时报错 #125

Closed shenlaix closed 11 months ago

shenlaix commented 1 year ago

加一个英文去掉的前处理,哪里比较合适加上,把英文去掉,比如: s = s.lower() result = re.sub('[\W_]+', '', s)

MaxMax2016 commented 1 year ago

https://github.com/PlayVoice/vits_chinese/blob/master/vits_pinyin.py#L26

https://github.com/PlayVoice/vits_chinese/blob/master/vits_infer.py#L60

类似这样改吧 item = clean_chinese(item) phonemes, char_embeds = tts_front.chinese_to_phonemes(item)

shenlaix commented 1 year ago

谢谢大佬回复。我放在了vits_pinyin.py的 text = clean_chinese(text) tokens = self.prosody.char_model.tokenizer.tokenize(text) 英文问题可以解决,但好像最后一个字读不出来了。

MaxMax2016 commented 1 year ago

最后一个字后面加个句号 或者 https://github.com/PlayVoice/vits_chinese/blob/master/vits_pinyin.py#L35 text_clean = ''.join(text_clean).strip(',') --->text_clean = ''.join(text_clean)

shenlaix commented 1 year ago

可以的,谢谢了; 总结一下就是: 1)在了vits_pinyin.py的L54处增加: text = clean_chinese(text) tokens = self.prosody.char_model.tokenizer.tokenize(text) 2)在vits_pinyin.p#L35 text_clean = ''.join(text_clean).strip(',') --->text_clean = ''.join(text_clean)

xiaoyin199 commented 12 months ago

不能有英文、数字,音频不能少于2秒