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与js)两种实现
Feb 21 Python
对于Python的Django框架使用的一些实用建议
Apr 03 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
创建Django项目图文实例详解
Jun 06 Python
Python基于机器学习方法实现的电影推荐系统实例详解
Jun 25 Python
python web框架 django wsgi原理解析
Aug 20 Python
Python如何读取、写入JSON数据
Jul 28 Python
Python字典取键、值对的方法步骤
Sep 30 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 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/06 咖啡文化
PHP制作用户注册系统
2015/10/23 PHP
修改发贴的编辑功能
2007/03/07 Javascript
javascript 数组的方法集合
2008/06/05 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python检测网络延迟的代码
2018/05/15 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
python绘制热力图heatmap
2020/03/23 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
土木工程专业个人求职信
2013/12/30 职场文书
企业内控岗位的职责
2014/02/07 职场文书
安全承诺书范文
2014/03/26 职场文书
销售人员求职信
2014/07/22 职场文书
2014年导购员工作总结
2014/11/18 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
公司员工管理制度
2015/08/04 职场文书
单位病假条范文
2015/08/17 职场文书
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript