使用Python实现文字转语音并生成wav文件的例子


Posted in Python onAugust 08, 2019

目前手边的一些工作,需要实现声音播放功能,而且仅支持wav声音格式。

现在,一些网站上支持文字转语音功能,但是生成的都是MP3文件,这样还需要额外的软件来转成wav文件,十分麻烦。

后来,研究Python,发现Python可以很容易的实现上面的功能。

步骤如下,

1。使用百度语音实现TTS(Text To Speech),生成mp3文件;

2。 使用pydub和ffmpeg实现mp3转wav格式。

下面,先上简单的示例代码,然后对代码作简单的分析。

#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
from aip import AipSpeech
from pydub import AudioSegment
 
# Step 1, Using baidu AI to generate mp3 file from text
#input your APP_ID/API_KEY/SECRET_KEY
APP_ID = 'Your_APP_ID' 
API_KEY = 'Your_API_KEY' 
SECRET_KEY = 'Your_Secret_Key' 
 
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 
result = client.synthesis('你好百度, good morning', 'zh', 1, { 'vol': 5,'per':4 }) 
 
if not isinstance(result, dict): 
 with open('test.mp3', 'wb') as f: 
  f.write(result)
 
# Step 2, convert the mp3 file to wav file
sound = AudioSegment.from_mp3('test.mp3')
sound.export("test.wav", format="wav")

运行上面的python代码,就会生成test.mp3和test.wav,使用命令“aplay test.wav”,可以测试播放声音。

下面对代码做解析,

1。在运行之前,需要安装下面的库,

1.1 安装百度AI模块,安装命令“pip install baidu-aip”

1.2 安装pydub,pydub是python的一个音频处理库处理,能对wav格式的音频直接进行处理,安装命令“pip install pydub”

1.3 安装ffmpeg,可以实现对mp3格式的处理,安装命令“sudo apt-get install ffmpeg”

2。需要注册百度的应用开发者账户,

用户可以自行去下面的网站去注册语音合成-百度AI​ai.baidu.com,注册百度云之后,去控制台创建应用,过程比较简单。

大家可以对上述代码进行进一步的优化,以实现自己想要的功能。

下面是完整的Python代码,大家可以拿来使用,

#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
"""
 module: baiduVoiceGenerate
 platform: Linux
 description: Generate Speech from Text, and convert the audio to wav file.
 Precondition: Please install below module before run this progrom,
     1. pip install baidu-aip
     2. pip install pydub
     3. sudo apt-get install ffmpeg
 creater: Guangwei Jiang
 create time: 2018-11-21
"""
from aip import AipSpeech
from pydub import AudioSegment
import time
 
#input your own APP_ID/API_KEY/SECRET_KEY
APP_ID = '14891501' 
API_KEY = 'EIm2iXtvDSplvR5cyHU8dAeM' 
SECRET_KEY = '4KkGGzTq2GVrBEYPLXXWEEIoyLL1F6Zt ' 
 
print("baiduVoiceGenerate: V1.0, by Guanagwei_Jiang, 20181121")
str = raw_input("请输入要转成语音的文字: ")
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 
result = client.synthesis(str, 'zh', 1, { 'vol': 5,'per':4 }) 
 
if not isinstance(result, dict): 
 with open('temp.mp3', 'wb') as f: 
  f.write(result)
 
sound = AudioSegment.from_mp3('temp.mp3')
sound.export(time.strftime("%Y%m%d_%H%M%S", time.localtime())+".wav", format="wav")

以上这篇使用Python实现文字转语音并生成wav文件的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现k均值算法示例(k均值聚类算法)
Mar 16 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
python使用tornado实现登录和登出
Jul 28 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
Jan 29 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python实现超市商品销售管理系统
Oct 25 Python
Python中if有多个条件处理方法
Feb 26 Python
Python无头爬虫下载文件的实现
Apr 02 Python
Python基于pip实现离线打包过程详解
May 15 Python
Python如何实现远程方法调用
Aug 07 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
django基于restframework的CBV封装详解
Aug 08 #Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 #Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 #Python
Python generator生成器和yield表达式详解
Aug 08 #Python
利用python实现短信和电话提醒功能的例子
Aug 08 #Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 #Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 #Python
You might like
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python 字符串定义
2009/09/25 Python
用Python制作简单的钢琴程序的教程
2015/04/01 Python
python中list列表的高级函数
2016/05/17 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
华为慧通笔试题
2016/04/22 面试题
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
数控技术专业推荐信
2013/11/01 职场文书
教师自荐信范文
2013/12/09 职场文书
2013年军训通讯稿
2014/02/05 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL