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

能否复制他人人声或自定义音频片段作为Python speak函数的TTS发音音源?

结论

你当前使用的pyttsx3是调用系统原生TTS引擎的封装库,本身不支持直接把自定义音频片段、录制人声直接设置为发音音源,要实现类似需求可以参考以下几个方案:

  • 如果你只需要播放固定内容的语音,不需要动态把任意文本转语音,直接替换原有speak函数逻辑即可:用playsound、simpleaudio这类音频播放库,直接读取你预录好的音频文件播放就行,不需要走pyttsx3的TTS流程。
  • 如果你需要实现动态文本转指定人声的效果,需要先完成自定义TTS语音包的制作和安装:
    1. 准备至少3小时以上清晰无背景噪音的目标人声音频,配好对应文字标注
    2. 用VITS、Tacotron2这类开源TTS框架训练专属语音模型,导出为Windows SAPI5引擎支持的语音包格式
    3. 把导出的语音包安装到你的Windows系统后,重新调用engine.getProperty('voices')就能看到自定义音源,直接设置调用即可
  • 如果你的使用场景文本范围非常固定,也可以提前录制所有单字/词组的发音片段,自己写文本匹配逻辑,按顺序拼接播放对应音频片段,实现类TTS的效果,开发成本最低。

另外你提供的代码里有个笔误:前面获取语音列表定义的变量是voices,设置音源时写的voice[0].id会触发NameError,改成voices[0].id就能正常运行。

内容的提问来源于stack exchange,提问作者Aditya Dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:36:03