[2noise/ChatTTS]运行官方示例出bug

2024-08-19 733 views
7

按照conda create -n chattts conda activate chattts pip install -r requirements.txt pip install ChatTTS配置环境之后运行示例代码

import ChatTTS
import torch
import torchaudio

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

texts = ["你好啊,你吃早饭了嘛", "你真讨厌啊!"]

wavs = chat.infer(texts)

for i in range(len(wavs)):
    torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]).unsqueeze(0), 24000)

显示bug

(chattts) mcshao@node17:/home/work_nfs13/mcshao/workspace/chattts/ChatTTS$ python /home/work_nfs13/mcshao/workspace/chattts/example.py
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:  80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                       | 308/384(max) [00:12, 24.14it/s]
code:  58%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                                                 | 1198/2048(max) [00:46, 25.87it/s]
Traceback (most recent call last):
  File "/home/work_nfs13/mcshao/workspace/chattts/example.py", line 13, in <module>
    torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]).unsqueeze(0), 24000)
  File "/home/environment2/mcshao/miniconda3/lib/python3.11/site-packages/torchaudio/_backend/utils.py", line 313, in save
    return backend.save(
           ^^^^^^^^^^^^^
  File "/home/environment2/mcshao/miniconda3/lib/python3.11/site-packages/torchaudio/_backend/sox.py", line 72, in save
    sox_ext.save_audio_file(
  File "/home/environment2/mcshao/miniconda3/lib/python3.11/site-packages/torch/_ops.py", line 854, in __call__
    return self_._op(*args, **(kwargs or {}))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Input tensor has to be 2D.

并且我的环境pip list显示已有transformer_engine 0.0.0 为啥依然有 error: No module named 'transformer_engine'

回答

5

RuntimeError: Input tensor has to be 2D.

无法复现。请尝试更新torchtorchaudio到最新版本。如确有困难不能更新,请尽量更新到新版并给出当前使用的版本号。

截屏2024-07-24 下午4 39 34

为啥依然有 error: No module named 'transformer_engine'

TE目前仍处于测试阶段无法使用,可以忽略此警告。

4

这明明是一个error,你怎么忽略?这个问题持续这么久了,有多人提问,还嘴硬当做警告。如果代码不完善就不要合并提交。

2

这明明是一个error,你怎么忽略?这个问题持续这么久了,有多人提问,还嘴硬当做警告。如果代码不完善就不要合并提交。

那部分代码是我自己写的,是不是警告我不清楚?用你在这里指指点点,笑死我了,你给我一分钱了吗,我要听你在这里像个甲方一样指手画脚。发言之前请先确认自己的话是纯粹发泄情绪还是真的为这个项目好,如果你选择对我,对这个项目发泄情绪,我也只好也对你做同样的事了。告诉您一个小秘密,不懂代码可以不说话,您这样浅薄的发言,唯一的作用就是暴露您半桶水三脚猫般的知识水平,让懂代码的人看你在这里胡搅蛮缠无理取闹的笑话而已。如果你但凡有点良心,自己悄悄删掉这句话,我不会再追究,要是你还像这样子扰乱正常的讨论秩序,就不要怪我们不客气了。

7

去掉.unsqueeze(0)就OK了

7

torch2.1.0+cu118 存在同样的问题

4

多谢 @menphix-watanabe 这样能正常跑通:

import ChatTTS
import torch
import torchaudio

chat = ChatTTS.Chat()
custom_path = './pretrained_models/chatTTS/'
device = 'cuda'
chat.load(source='custom', custom_path=custom_path, device=device, compile=False) # Set to True for better performance
texts = ["PUT YOUR 1st TEXT HERE", "PUT YOUR 2nd TEXT HERE"]

wavs = chat.infer(texts)

for i in range(len(wavs)):
    torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]), 24000)