Python实现文字转语音并生成WAV文件的完整指南

方予
方予
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍如何利用Python将文本转换为语音并生成WAV格式音频文件。通过调用百度AI接口生成MP3,再使用pydub和ffmpeg将其转换为WAV格式。文中提供了详细的代码示例、环境配置及API注册步骤,帮助开发者快速实现语音播放功能。

背景与需求分析

当前部分工作场景需要实现声音播放功能,且系统仅支持WAV格式的音频文件。

尽管许多网站提供文字转语音服务,但生成的通常是MP3格式。若需WAV格式,必须借助额外软件进行转换,操作较为繁琐。

经过研究,发现使用Python可以便捷地实现上述功能。

实现步骤概述

具体实施步骤如下:

1. 利用百度语音合成(TTS)服务生成MP3文件;

2. 借助pydub库配合ffmpeg工具,将MP3文件转换为WAV格式。

代码示例与解析

接下来,先展示一段简单的示例代码,随后对代码逻辑进行简要分析。


#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
from aip import AipSpeech
from pydub import AudioSegment
 
# Step 1, Using baidu AI to generate mp3 file from text
#input your APP_ID/API_KEY/SECRET_KEY
APP_ID = 'Your_APP_ID' 
API_KEY = 'Your_API_KEY' 
SECRET_KEY = 'Your_Secret_Key' 
 
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 
result = client.synthesis('你好百度, good morning', 'zh', 1, { 'vol': 5,'per':4 }) 
 
if not isinstance(result, dict): 
 with open('test.mp3', 'wb') as f: 
  f.write(result)
 
# Step 2, convert the mp3 file to wav file
sound = AudioSegment.from_mp3('test.mp3')
sound.export("test.wav", format="wav")

执行上述Python代码后,会生成test.mp3和test.wav两个文件。可通过执行命令“aplay test.wav”来测试音频播放效果。

以下是对代码的详细解析:

环境配置与API注册

1. 在运行代码前,需预先安装相关依赖库:

1.1 安装百度AI模块,执行命令“pip install baidu-aip”;

1.2 安装pydub,这是一个Python音频处理库,可直接处理WAV格式音频,执行命令“pip install pydub”;

1.3 安装ffmpeg,用于处理MP3格式转换,执行命令“sudo apt-get install ffmpeg”;

2. 需注册百度应用开发者账户:

用户可访问百度AI官网(ai.baidu.com)注册语音合成服务。完成百度云注册后,在控制台创建应用,该过程相对简单。

读者可根据实际需求对上述代码进行优化,以满足特定功能要求。

以下是完整的Python代码示例,供读者直接参考使用:


#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
"""
 module: baiduVoiceGenerate
 platform: Linux
 description: Generate Speech from Text, and convert the audio to wav file.
 Precondition: Please install below module before run this progrom,
     1. pip install baidu-aip
     2. pip install pydub
     3. sudo apt-get install ffmpeg
 creater: Guangwei Jiang
 create time: 2018-11-21
"""
from aip import AipSpeech
from pydub import AudioSegment
import time
 
#input your own APP_ID/API_KEY/SECRET_KEY
APP_ID = '14891501' 
API_KEY = 'EIm2iXtvDSplvR5cyHU8dAeM' 
SECRET_KEY = '4KkGGzTq2GVrBEYPLXXWEEIoyLL1F6Zt ' 
 
print("baiduVoiceGenerate: V1.0, by Guanagwei_Jiang, 20181121")
str = raw_input("请输入要转成语音的文字: ")
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 
result = client.synthesis(str, 'zh', 1, { 'vol': 5,'per':4 }) 
 
if not isinstance(result, dict): 
 with open('temp.mp3', 'wb') as f: 
  f.write(result)
 
sound = AudioSegment.from_mp3('temp.mp3')
sound.export(time.strftime("%Y%m%d_%H%M%S", time.localtime())+".wav", format="wav")

本文分享了利用Python实现文字转语音并生成WAV文件的完整示例,希望能为读者提供参考,感谢支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表