Python将文字转成语音并读出来的实例详解


Posted in Python onJuly 15, 2019

前言

本篇文章主要介绍,如何利用Python来实现将文字转成语音。将文字转成语音主要有两种不同的实现方法:先将文字转成语音,然后再通过读取语音实现发音、直接调用系统内置的语音引擎实现发音,后一种方法的实现主要利用第三方库。

环境

Python版本:Anaconda 4.4.10

操作系统:win10

注意:在使用第三方库的时候,不同的操作系统和Python版本代码可能有所差别。

调用api

可以调用第三方的语音合成api生成音频文件,然后再播放音频文件即可,这里我使用的是百度语音合成api。

1、注册账号创建应用

在使用之前,需要先注册一个百度账号,然后再创建一个语音合成的api,需要拷贝AppID、API Key、Secret Key后面调用接口的时候需要使用。

Python将文字转成语音并读出来的实例详解

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")

利用系统内置语音引擎实现发音

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)

Python将文字转成语音并读出来的实例详解

可以看到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()

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将文字转成语音并读出来的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用python实现的去除win下文本文件头部BOM的代码
Feb 10 Python
python实现将元祖转换成数组的方法
May 04 Python
全面了解python字符串和字典
Jul 07 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
Jul 15 #Python
Python符号计算之实现函数极限的方法
Jul 15 #Python
在python 中split()使用多符号分割的例子
Jul 15 #Python
Python-Seaborn热图绘制的实现方法
Jul 15 #Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 #Python
python 用所有标点符号分隔句子的示例
Jul 15 #Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 #Python
You might like
十天学会php之第四天
2006/10/09 PHP
我的论坛源代码(六)
2006/10/09 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
javascript计时器详解
2015/02/28 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
node中使用shell脚本的方法步骤
2021/03/23 Javascript
儿子婚宴答谢词
2014/01/09 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
慰问信格式
2015/02/14 职场文书
幼师个人总结范文
2015/02/28 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
Python+tkinter实现高清图片保存
2022/03/13 Python