[2noise/ChatTTS]incomplete result. hit

2024-08-19 391 views
2

感谢开源,我在原demo中修改的地方有:增加from transformers import Cache 以及 torch.set_float32_matmul_precision('high') 我输入的文本texts = ["中文", "我是语音助手"] 目前完整报错信息如下

use default LlamaModel for importing TELlamaModel error: No module named 'transformer_engine'
text:   0%|                                                                                                                                                                                                                                                                      | 0/384(max) [00:00, ?it/s]We detected that you are passing `past_key_values` as a tuple and this is deprecated and will be removed in v4.43. Please use an appropriate `Cache` class (https://huggingface.co/docs/transformers/v4.41.3/en/internal/generation_utils#transformers.Cache)
text: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 384/384(max) [00:03, 104.66it/s]
incomplete result. hit max_new_token: 384
code:  85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                    | 1750/2048(max) [00:15, 110.45it/s]

我想请问一下这个texts也超过token了吗,会不会这个限制有点小了,然后我还发现如果text中有数字出现也会报错invalid character 想请教一下该怎么解决

回答

4

这应该是不正常的情况,请贴出完整推理代码,我看看能否复现。

9

源码是这样子的

import ChatTTS
import torch
import torchaudio
from transformers import Cache
# import torch._dynamo
# torch._dynamo.config.suppress_errors = True
# 启用 TensorFloat32 tensor cores 的高精度设置
torch.set_float32_matmul_precision('high')

# 初始化 ChatTTS
chat = ChatTTS.Chat()
chat.load(compile=False)  # Set to True for better performance

# 使用 Cache 类
# 假设 ChatTTS 内部使用了 transformers 模型,你可以在 ChatTTS 中找到需要替换 past_key_values 的地方

texts = ["中文", "我是语音助手"]

# 假设 ChatTTS 内部调用 transformers 模型的 infer 方法,我们需要确保 infer 方法使用 Cache 类
# 如果 ChatTTS 不暴露这些细节,你可能需要检查并修改 ChatTTS 库的源码以适应这些更改

# 生成音频
wavs = chat.infer(texts)

# 保存生成的音频文件
for i in range(len(wavs)):
    torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]), 24000)