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中的列表知识点汇总
Apr 14 Python
celery4+django2定时任务的实现代码
Dec 23 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
手写一个python迭代器过程详解
Aug 27 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
sklearn+python:线性回归案例
Feb 24 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
安装pytorch时报sslerror错误的解决方案
May 17 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
使用数据库保存session的方法
2006/10/09 PHP
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php while循环得到循环次数
2013/10/26 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
Git命令之分支详解
2021/03/02 PHP
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
python 判断网络连通的实现方法
2018/04/22 Python
python操作mysql代码总结
2018/06/01 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
python空元组在all中返回结果详解
2020/12/15 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
《广玉兰》教学反思
2014/04/14 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
家长学校培训材料
2014/08/20 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
小班教师个人总结
2015/02/05 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python