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 相关文章推荐
在Docker上开始部署Python应用的教程
Apr 17 Python
Python常用小技巧总结
Jun 01 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
python绘制多个子图的实例
Jul 07 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
python多线程使用方法实例详解
Dec 30 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 Python
python调用私有属性的方法总结
Jul 24 Python
如何在Python中妥善使用进度条详解
Apr 05 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编写的图片验证码类文件分享
2016/06/06 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
Python selenium如何设置等待时间
2016/09/15 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python中偏函数用法示例
2018/06/07 Python
Python将string转换到float的实例方法
2019/07/29 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
python 弧度与角度互转实例
2020/04/15 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
广州盈通面试题
2015/12/05 面试题
EntityManager都有哪些方法
2013/11/01 面试题
护理专业毕业生自荐书
2014/05/24 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
Vue Element plus使用方法梳理
2022/12/24 Vue.js