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

在Google Colab中使用pyttsx3无法切换语音,求解决及自定义语音添加方法

在Google Colab中解决pyttsx3语音切换问题及自定义语音添加方法

一、语音切换失败的原因与解决

Colab是云端Linux环境,pyttsx3依赖系统底层的TTS引擎,默认环境下可用语音数量极少,你代码中直接调用voices[1]大概率是因为该索引不存在导致切换失败。

解决步骤:

  1. 先排查当前可用语音:
    sound_engine = pyttsx3.init()
    voices = sound_engine.getProperty("voices")
    # 打印所有可用语音详情
    for idx, voice in enumerate(voices):
        print(f"索引: {idx}, ID: {voice.id}, 名称: {voice.name}, 语言: {voice.languages}")
    sound_engine.setProperty("rate", 150)
    
  2. 根据输出的实际索引设置语音,比如如果只有1个语音,就用voices[0].id。

二、添加自定义语音的实现方法

pyttsx3本身不支持直接导入自定义语音包,它依赖系统级TTS引擎,在Colab中可通过以下方式扩展语音:

1. 安装系统级额外语音包(以eSpeak-NG为例)

Colab默认用eSpeak作为TTS引擎,可安装多语言语音包:

!sudo apt-get update
!sudo apt-get install espeak-ng espeak-ng-data

安装完成后查看所有可用语音:

!espeak-ng --voices

找到目标语音的ID后,在pyttsx3中设置:

sound_engine.setProperty("voice", "zh-cn")  # 示例:设置中文普通话语音,具体ID以实际输出为准

2. 使用第三方TTS库实现自定义语音(替代方案)

如果要使用训练好的自定义语音模型,pyttsx3无法直接兼容,可改用gTTS或其他TTS库,示例:

from gtts import gTTS
from IPython.display import Audio

# 生成自定义语音音频
text = "这是自定义语音测试内容"
tts = gTTS(text=text, lang='zh', tld='com')  # tld参数可切换不同地区的语音风格
tts.save("custom_voice.mp3")

# 播放音频
Audio("custom_voice.mp3", autoplay=True)

内容的提问来源于stack exchange,提问作者santino larris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:44:54