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

如何用pyttsx3保存含多语音的音频文件?有无替代TTS引擎?

解决方法及替代方案

用pyttsx3实现多语音音频合并

pyttsx3没法直接把多个语音的内容保存到同一个文件,但可以分两步实现:先给每个语音单独生成音频片段,再把这些片段合并成完整文件。

具体操作

  1. 先安装依赖:pip install pyttsx3 pydub,另外pydub需要ffmpeg支持——Windows用户可下载ffmpeg解压后把bin目录加入系统环境变量;Ubuntu用户执行apt install ffmpeg即可。
  2. 修改代码如下:
import pyttsx3
from pydub import AudioSegment
import os

engine = pyttsx3.init()
voices = engine.getProperty('voices')
temp_files = []
text = 'The quick brown fox jumped over the lazy dog.'

# 为每个语音生成单独的临时音频文件
for idx, voice in enumerate(voices):
    engine.setProperty('voice', voice.id)
    temp_file = f'temp_voice_{idx}.wav'
    temp_files.append(temp_file)
    engine.save_to_file(text, temp_file)
    engine.runAndWait()

# 合并所有临时音频文件
combined = AudioSegment.empty()
for file in temp_files:
    audio = AudioSegment.from_wav(file)
    combined += audio

# 保存合并后的最终文件
combined.export('all_voices_audio.mp3', format='mp3')

# 清理临时文件
for file in temp_files:
    os.remove(file)

其他可直接实现的TTS引擎

如果觉得上述方法繁琐,可试试这些更便捷的TTS引擎:

  • Coqui TTS:开源本地TTS引擎,支持多种语音,可通过API逐个调用不同语音生成音频片段后合并,也能直接处理拼接逻辑。
  • gTTS:基于谷歌TTS的Python库,需联网使用,支持指定不同地区的语音发音,生成多段音频后合并即可,语音选择比pyttsx3更丰富。
  • Microsoft Azure Text-to-Speech:云端服务,提供大量高质量语音,可直接通过API指定多个语音生成对应音频,还能在请求中配置拼接逻辑,适合追求专业音质的场景。

内容的提问来源于stack exchange,提问作者Juan Mir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:10:26