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 urllib模块urlopen()与urlretrieve()详解
Nov 01 Python
python获取豆瓣电影简介代码分享
Jan 16 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
用Python编写web API的教程
Apr 30 Python
Python实现遍历数据库并获取key的值
May 17 Python
Python实现截屏的函数
Jul 26 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
python excel转换csv代码实例
Aug 26 Python
Python3常见函数range()用法详解
Dec 30 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实时显示输出
2008/10/02 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python中字典(Dictionary)用法实例详解
2015/05/30 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
pandas分区间,算频率的实例
2019/07/04 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
Python PyQt5整理介绍
2020/04/01 Python
python程序输出无内容的解决方式
2020/04/09 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
委托书的写法
2014/08/30 职场文书
学生打架检讨书
2014/10/20 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
山楂树之恋观后感
2015/06/11 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
教师学习心得体会范文
2016/01/21 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书