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中for语句简单遍历数据的方法
May 07 Python
Python基础之getpass模块详细介绍
Aug 10 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
python清除字符串中间空格的实例讲解
May 11 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
详解解决jupyter不能使用pytorch的问题
Feb 18 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
python基础之类方法和静态方法
Oct 24 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实现查询功能(数据访问)
2017/05/23 PHP
js压缩利器
2007/02/20 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
Python实现注册、登录小程序功能
2018/09/21 Python
python url 参数修改方法
2018/12/26 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
4s店总经理岗位职责
2013/12/31 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
雷锋的故事观后感
2015/06/10 职场文书
详解python字符串驻留技术
2021/05/21 Python