Closed TianduoWang closed 4 days ago
试试最新提交呢,另外请贴出具体代码。
我是昨天下载的代码,最新的版本我稍后试一下。这里我先贴一下可以复现这个 bug 的代码:
import torch
import ChatTTS
torch.manual_seed(2333)
from dotenv import load_dotenv
load_dotenv('sha256.env')
chat = ChatTTS.Chat()
chat.load_models(compile=False)
rand_spk = chat.sample_random_speaker()
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_3]',
}
texts = ['李卫是一位中国磁学与磁性材料专家。', '李卫是一位中国磁学与磁性材料专家。']
wavs = chat.infer(texts, params_refine_text=params_refine_text, refine_text_only=True)
print(wavs)
输出是
'紧 [uv_break] 卫 呢 是 一 位 中 国 磁 学 与 磁 性 材 料 专 家 。'
'[Stts] [spk_emb] 你 比 如 说 李 卫 是 一 位 中 国 磁 学 与 磁 性 材 料 专 家 。 [uv_break]'
两个其实都不太对,感觉是模型参数的问题
只有一次print啊,为何输出两个😂
哦,看到了。
我试验的结果是有概率刷出[Stts] [empty_spk]
/[Stts] [spk_emb]
在最开头且最开头的文字有问题。目前考虑先把它们强制移除。
感谢!我目前的处理方法就是去掉 [Stts] 和 [spk_emb]
new_text = []
for t in text:
t = t.replace('[spk_emb]', '')
t = t.replace('[Stts]', '')
new_text.append(t.strip())
text = new_text
加到 infer_code() function 开头
refine_text function 输入:[Sbreak]李卫是一位中国磁学与磁性材料专家。[Pbreak][oral_2][laugh_0][break_3] 输出:[Stts] [spk_emb] [pure] 李 卫 呢 是 一 位 中 国 磁 学 与 磁 性 材 料 专 家 [uv_break] 。
此处加入的 [spk_emb] 会引发之后 infer_code() 中
报错,因为形状不符