[2noise/ChatTTS]macos 上按照 README.md Basic Usage 执行后报错

2025-11-10 671 views
7

执行命令

conda create --prefix ./.venv python=3.10.16 -y
conda activate ./.venv
pip install -r requirements.txt
import sys

import ChatTTS
import torch
import torchaudio

def main():
  chat = ChatTTS.Chat()
  chat.load(compile=False)  # Load model
  texts = ["PUT YOUR 1st TEXT HERE", "PUT YOUR 2nd TEXT HERE"]

  wavs = chat.infer(texts)

  for i in range(len(wavs)):
      """
      In some versions of torchaudio, the first line works but in other versions, so does the second line.
      """
      try:
          torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]).unsqueeze(0), 24000)
      except:
          torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]), 24000)

if __name__ == "__main__":
  main()

执行后报错:

found invalid characters: {'1'}
found invalid characters: {'2'}
text:   3%|███▏                                                                                                                        | 10/384(max) [00:00, 10.81it/s]
code:   4%|████▊                                                                                                                      | 81/2048(max) [00:02, 29.61it/s]
code:   3%|███                                                                                                                        | 52/2048(max) [00:04, 12.55it/s]
Traceback (most recent call last):
  File "/Users/taozeyu/codes/github.com/oomol-flows/ChatTTS/ChatTTS/main.py", line 20, in main
    torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]).unsqueeze(0), 24000)
  File "/Users/taozeyu/codes/github.com/oomol-flows/ChatTTS/ChatTTS/.venv/lib/python3.10/site-packages/torchaudio/_backend/utils.py", line 312, in save
    backend = dispatcher(uri, format, backend)
  File "/Users/taozeyu/codes/github.com/oomol-flows/ChatTTS/ChatTTS/.venv/lib/python3.10/site-packages/torchaudio/_backend/utils.py", line 222, in dispatcher
    raise RuntimeError(f"Couldn't find appropriate backend to handle uri {uri} and format {format}.")
RuntimeError: Couldn't find appropriate backend to handle uri basic_output0.wav and format None.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/taozeyu/codes/github.com/oomol-flows/ChatTTS/ChatTTS/main.py", line 25, in <module>
    main()
  File "/Users/taozeyu/codes/github.com/oomol-flows/ChatTTS/ChatTTS/main.py", line 22, in main
    torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]), 24000)
  File "/Users/taozeyu/codes/github.com/oomol-flows/ChatTTS/ChatTTS/.venv/lib/python3.10/site-packages/torchaudio/_backend/utils.py", line 312, in save
    backend = dispatcher(uri, format, backend)
  File "/Users/taozeyu/codes/github.com/oomol-flows/ChatTTS/ChatTTS/.venv/lib/python3.10/site-packages/torchaudio/_backend/utils.py", line 222, in dispatcher
    raise RuntimeError(f"Couldn't find appropriate backend to handle uri {uri} and format {format}.")
RuntimeError: Couldn't find appropriate backend to handle uri basic_output0.wav and format None.

系统:macos 15.5 (24F74) Python:3.10.16 conda:24.9.2

回答

1

经过测试,在 Windows 11 上也有这个问题。

操作系统:windows 11 24H2 conda 24.11.3 Python 3.11.13

2

替代torchaudio的save,用soundfile.write("output1.wav", wavs[0], 24000)可行