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

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

本文介绍如何利用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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。