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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
Python中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
pycharm的console输入实现换行的方法
Jan 16 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
选择python进行数据分析的理由和优势
Jun 25 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
python爬虫 正则表达式解析
Sep 28 Python
Pytest mark使用实例及原理解析
Feb 22 Python
python 的topk算法实例
Apr 02 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
pytorch损失反向传播后梯度为none的问题
May 12 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
VueJs组件之父子通讯的方式
2018/05/06 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
vue+ts下对axios的封装实现
2020/02/18 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
python算法学习之计数排序实例
2013/12/18 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
Python time库基本使用方法分析
2019/12/13 Python
python实现简单井字棋游戏
2020/03/04 Python
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
生物制药自我鉴定
2014/01/25 职场文书
三年级小学生评语
2014/04/22 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
退学证明范本3篇
2014/10/29 职场文书
职代会闭幕词
2015/01/28 职场文书
国际贸易实训总结
2015/08/03 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android