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在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
Python中类的初始化特殊方法
Dec 01 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
mac下如何将python2.7改为python3
Jul 13 Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
PyQt QListWidget修改列表项item的行高方法
Jun 20 Python
对Python中class和instance以及self的用法详解
Jun 26 Python
python pandas模块基础学习详解
Jul 03 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
python数据抓取3种方法总结
Feb 07 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
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
php检查页面是否被百度收录
2015/10/28 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
JsRender for object语法简介
2014/10/31 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
python executemany的使用及注意事项
2017/03/13 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
python实现高斯投影正反算方式
2020/01/17 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
项目副经理岗位职责
2013/12/30 职场文书
餐饮营销方案
2014/02/23 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
就业推荐表院系意见
2015/06/05 职场文书
月考总结与反思
2015/10/22 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis