AutoDL本地运行MeloTTS踩坑总结

之前是在用colab上面T4 GPU跑MeloTTS,生成一段30s的音频需要2.1s,想试一试用AutoDL的4090显卡跑它的速度如何,下面分享的遇到的报错和解决方案

UniDic 字典下载

在下载模型之前,需要执行!python -m unidic download命令下载UniDic,此时因为网络原因,会报错:

urllib.error.URLError: <urlopen error [Errno 104] Connection reset by peer>

此时如果不想科学上网,就按照以下步骤解决:

1.手动从它打印出来的网址上下载zip文件,我的叫做unidic-3.1.0.zip。

2.把zip文件拷贝到/root/miniconda3/lib/python3.10/site-packages/unidic/路径下。我的命令行为:
cp autodl-tmp/MeloTTS/unidic-3.1.0.zip /root/miniconda3/lib/python3.10/site-packages/unidic/unidic.zip(根据自己unidic-3.1.0.zip的安装路径自己修改,不需要解压

3.打开文件 /usr/local/lib/python3.9/site-packages/unidic/download.py,找到最下面的download_version函数,将函数里除了download_and_clean()以外的代码全部注释掉。

4.把download_and_clean()函数的两个参数改成download_and_clean(1122, 3344)

5.再把63行里的download_process注释掉。

6.文件保存之后再运行!python -m unidic download,就可以正常下载了

HuggingFace模型MeloTTS下载(需科学上网)

AutoDL自带的有科学上网下载huggingface模型的方法。在帮助文档集可查看。

在jupyter notebook在模型下载前运行这段代码即可。

import subprocess
import os

result = subprocess.run('bash -c "source /etc/network_turbo && env | grep proxy"', shell=True, capture_output=True, text=True)
output = result.stdout
for line in output.splitlines():
    if '=' in line:
        var, value = line.split('=', 1)
        os.environ[var] = value

NLTK 缺少 cmudict 资源

执行下面代码时,继续报错

from melo.api import TTS
LookupError: Resource cmudict not found. Please use the NLTK Downloader to obtain the resource:

这里我们在notebook下载cmudict即可

import nltk nltk.download('cmudict')

运行结果

4090显卡生成30s中文语音需要1.19s,差不多是T4的1/2时间,可以说是非常快了

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐