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重新引入被覆盖的自带function
Jul 16 Python
Python中给List添加元素的4种方法分享
Nov 28 Python
python获取从命令行输入数字的方法
Apr 29 Python
Python常用算法学习基础教程
Apr 13 Python
Python内置函数 next的具体使用方法
Nov 24 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
python读文件的步骤
Oct 08 Python
Python中使用gflags实例及原理解析
Dec 13 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 Python
Python实现简单猜数字游戏
Feb 03 Python
基于Python实现一个春节倒计时脚本
Jan 22 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字符串中抽取子串操作实例分析
2019/06/22 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
介绍Python中内置的itertools模块
2015/04/29 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
利用Python破解斗地主残局详解
2017/06/30 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
python文件及目录操作代码汇总
2020/07/08 Python
python 如何快速复制序列
2020/09/07 Python
django使用多个数据库的方法实例
2021/03/04 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
鼓励运动员的广播稿
2014/02/08 职场文书
保密工作承诺书
2014/08/29 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
公司员工辞职信范文
2015/05/12 职场文书
活动主持人开场白
2015/05/28 职场文书
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
MySQL Server 层四个日志
2022/03/31 MySQL