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自动化测试之setUp与tearDown实例
Sep 28 Python
python实现bucket排序算法实例分析
May 04 Python
python根据京东商品url获取产品价格
Aug 09 Python
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
Python 多线程实例详解
Mar 25 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
python在html中插入简单的代码并加上时间戳的方法
Oct 16 Python
Django Rest framework权限的详细用法
Jul 25 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
Python通过递归函数输出嵌套列表元素
Oct 15 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访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
es6数值的扩展方法
2019/03/11 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
用Python实现协同过滤的教程
2015/04/08 Python
python对象及面向对象技术详解
2016/07/19 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
竞选演讲稿范文
2013/12/28 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
战友聚会主持词
2014/04/02 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
食品卫生管理制度
2015/08/06 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
Apache POI的基本使用详解
2021/11/07 Servers
nginx常用配置conf的示例代码详解
2022/03/21 Servers
Spring Boot 实现 WebSocket
2022/04/30 Java/Android