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中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
Python使用sorted排序的方法小结
Jul 28 Python
python+mongodb数据抓取详细介绍
Oct 25 Python
python实现图书管理系统
Mar 12 Python
浅谈numpy生成数组的零值问题
Nov 12 Python
Python实现将HTML转成PDF的方法分析
May 04 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
python读取Kafka实例
Dec 23 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 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 4.2书写安全的脚本
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/11/17 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php递归json类实例
2014/12/02 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
PHP实现验证码校验功能
2017/11/16 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
js继承的实现代码
2010/08/05 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
Python比较两个图片相似度的方法
2015/03/13 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
九年级化学教学反思
2014/01/28 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
写给医生的感谢信
2015/01/22 职场文书
护理专业自我评价
2015/03/11 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
Python实现聚类K-means算法详解
2022/07/15 Python