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实现的正则表达式功能入门教程【经典】
Jun 05 Python
Django 接收Post请求数据,并保存到数据库的实现方法
Jul 12 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
python文件排序的方法总结
Sep 13 Python
python查询MySQL将数据写入Excel
Oct 29 Python
Python脚本调试工具安装过程
Jan 11 Python
用python自动生成日历
Apr 24 Python
python基于turtle绘制几何图形
Jun 15 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 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
2019十大人气国漫
2020/03/13 国漫
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
jQuery 位置插件
2008/12/25 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Django框架模板用法入门教程
2019/11/04 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
法院信息化建设方案
2014/05/21 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
公司年会开场白
2015/06/01 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
关于Redis的主从复制及哨兵问题
2022/06/16 Redis