Python实现文字转语音的三种主流方案详解
本文详细解析Python实现文字转语音的三种方法:调用百度语音合成API生成音频文件、使用Pyttsx3库直接调用系统引擎(含中文配置),以及利用gTTS生成MP3并播放。涵盖环境配置、代码示例及注意事项,帮助开发者快速实现语音播报功能。
Python文字转语音实现方案概述
前言
本文主要介绍如何利用Python将文本转换为语音并进行播放。实现这一功能通常有两种技术路径:一是通过第三方接口生成音频文件后播放,二是直接调用操作系统内置的语音引擎。其中,直接调用引擎的方式主要依赖第三方库的支持。
环境
Python版本:Anaconda 4.4.10
操作系统:win10
注意:在使用第三方库时,不同操作系统和Python版本的代码可能存在差异。
方案一:调用百度语音合成API
调用api
可以通过调用第三方的语音合成API来生成音频文件,随后播放该文件即可实现语音输出。本文示例使用的是百度语音合成API。
1、注册账号创建应用
使用前需注册百度账号,并创建一个语音合成应用。获取AppID、API Key和Secret Key,这些凭证将在后续调用接口时使用。

2、调用语音合成接口
Python调用百度语音合成API接口的详细文档地址为:http://yuyin.baidu.com/docs/tts/196
3、安装百度提供的Python库:
如果已安装pip,执行pip install baidu-aip即可。
如果已安装setuptools,执行python setup.py install即可。
from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result = client.synthesis('你好吗?', 'zh', 1, {
'vol': 5,
})
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open('auido.mp3', 'wb') as f:
f.write(result)
播放音频文件
安装playsound:pip install playsound
from playsound import playsound
playsound("auido.mp3")
方案二:利用系统内置引擎(Pyttsx)
利用系统内置语音引擎实现发音
1. Pyttsx
Pyttsx是一个跨平台的文字转语音第三方库,它封装了操作系统的内置语音引擎。
Pyttsx安装
Python2:pip install pyttsx
Python3:pip install pyttsx3
代码
import pyttsx3
engine = pyttsx3.init()
engine.say("Good")
engine.runAndWait()
pyttsx默认使用英文引擎,若需读取中文需修改语言设置,否则可能报错或无法发音。首先参考系统支持的语言类型和参数,通过以下代码可以查看
engine = pyttsx3.init()
voices = engine.getProperty("voices")
for item in voices:
print(item.id,item.languages)

可以看到ZH-CN的参数,表示的是中文,然后将代码修改成如下即可
engine = pyttsx3.init()
engine.setProperty("voice","HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Sp
eech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0")
engine.say("你好吗?")
engine.runAndWait()方案三:使用gTTS生成音频
2. gTTS
gTTS可以将文字转成语音并保存为MP3格式,然后再读取语音实现发音。它是通过调用Google提供的TTS服务来实现将文字转语音的,因为需要调用Google的服务,所以需要。。,因为缺少环境所以下面的代码是没有测试过的。调用下面代码的时候,需要设置在代码中设置代码或者全局代理。
from gtts import gTTS
import os
tts = gTTS(text="come on",lang="en")
tts.save("test.mp3")
os.system("mpg321 test.mp3")
如果需要生成wav格式的音频文件,可以利用FFmpeg将MP3的音频文件转成wav格式。
操作系统内置引擎
利用win32com来调用Windows操作系统内置的语音引擎实现文字的发音
以上这篇Python将文字转成语音并读出来的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













