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爬虫抓取暴走漫画上gif图片的实例分享
Apr 20 Python
使用Python的turtle模块画图的方法
Nov 15 Python
python爬取哈尔滨天气信息
Jul 14 Python
opencv转换颜色空间更改图片背景
Aug 20 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
python [:3] 实现提取数组中的数
Nov 27 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
详解用Python把PDF转为Word方法总结
Apr 27 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中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
斜45度寻路实现函数
2009/08/20 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
python 简单的多线程链接实现代码
2016/08/28 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
实用自动化运维Python脚本分享
2018/06/04 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
详解python对象之间的交互
2020/09/29 Python
农救科工作职责
2013/11/27 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
社区母亲节活动总结
2015/02/10 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android