M1 Mac环境下Tortoise-TTS长文本脚本GPU报错求助
问题描述
已在虚拟环境中部署Tortoise-TTS,可正常运行do_tts.py及tortoise_tts.ipynb中的代码,但运行read.py、read_fast.py处理长文本时触发报错:
raise RuntimeError('Attempting to deserialize object on a CUDA ' RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.
检查后发现read.py、read_fast.py中不含torch.load语句,询问需修改原代码的哪个文件哪一行。
解决方案
报错根源是Tortoise-TTS的底层模型加载逻辑未指定CPU映射,需修改**tortoise/api.py**文件中的模型加载代码:
- 打开
tortoise/api.py,找到load_model函数(不同版本行号略有差异,通常在文件190-210行区间) - 找到函数内的
torch.load调用语句,原代码类似:model = torch.load(model_path) - 修改为:
model = torch.load(model_path, map_location=torch.device('cpu')) - 保存文件后重新运行
read.py或read_fast.py即可。
若仍有同类报错,可检查tortoise/models/目录下的模型加载代码,确保所有torch.load调用都添加了map_location=torch.device('cpu')参数。
内容的提问来源于stack exchange,提问作者jms
相关产品推荐
相关产品推荐

