You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Colab中使用Vakyansh TTS模型报错,无法生成WAV文件求助

解决Vakyansh TTS中/src/glow_tts目录不存在的错误

出现SystemExit: Error: /src/glow_tts directory does not exist错误的核心原因有两个:

  • Colab中单独使用!cd命令不会持续切换目录,每个!开头的命令都是独立子进程,执行后会回到初始目录
  • 未下载Vakyansh所需的预训练Glow-TTS和HiFi-GAN模型,这两个模型目录不会随项目克隆自动生成

修正步骤及完整代码

1. 修正目录切换与依赖安装

将分散的!cd命令改为用&&串联,或使用IPython魔法命令%cd确保目录切换持续生效:

!git clone https://github.com/Open-Speech-EkStep/vakyansh-tts
%cd vakyansh-tts
!bash install.sh
!python setup.py bdist_wheel
!pip install -e .
%cd tts_infer
!wget https://storage.googleapis.com/vakyansh-open-models/translit_models.zip && unzip -q translit_models.zip

2. 下载预训练模型

添加命令下载Glow-TTS和HiFi-GAN模型到当前目录:

# 下载印地语Glow-TTS模型(其他语言替换对应URL)
!wget https://storage.googleapis.com/vakyansh-open-models/hindi/glow_tts.zip && unzip -q glow_tts.zip
# 下载印地语HiFi-GAN模型(其他语言替换对应URL)
!wget https://storage.googleapis.com/vakyansh-open-models/hindi/hifi_gan.zip && unzip -q hifi_gan.zip

注:若使用其他语言模型,需替换上述URL为对应语言的模型地址

3. 调整代码中的模型路径

将原代码中的绝对路径改为当前目录下的相对路径:

from tts_infer.tts import TextToMel, MelToWav
from tts_infer.transliterate import XlitEngine
from tts_infer.num_to_word_on_sent import normalize_nums

import re
from scipy.io.wavfile import write

# 改为当前目录下的模型路径
text_to_mel = TextToMel(glow_model_dir='./glow_tts', device='cuda')
mel_to_wav = MelToWav(hifi_model_dir='./hifi_gan', device='cuda')

def translit(text, lang):
    reg = re.compile(r'[a-zA-Z]')
    engine = XlitEngine(lang)
    words = [engine.translit_word(word, topk=1)[lang][0] if reg.match(word) else word for word in text.split()]
    updated_sent = ' '.join(words)
    return updated_sent

def run_tts(text, lang):
    text = text.replace('।', '.') # 仅针对印地语模型
    text_num_to_word = normalize_nums(text, lang) # 将数字转换为对应语言的文字
    text_num_to_word_and_transliterated = translit(text_num_to_word, lang) # 将英文单词音译为目标语言

    mel = text_to_mel.generate_mel(text_num_to_word_and_transliterated)
    audio, sr = mel_to_wav.generate_wav(mel)
    write(filename='temp.wav', rate=sr, data=audio) # 保存wav文件
    return (sr, audio)

4. 测试运行

调用函数生成语音,例如印地语文本测试:

sr, audio = run_tts("आप कैसे हैं?", "hi")

关键说明

  • 确保使用对应语言的预训练模型,不同语言的模型存储地址不同
  • Colab中需使用%cd切换目录,单独!cd无法保持目录状态
  • 若仍有路径问题,可通过!pwd命令查看当前工作目录,确认模型路径是否正确

内容的提问来源于stack exchange,提问作者Taha Habib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 23:00:56