使用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 相关文章推荐
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
Python开发实例分享bt种子爬虫程序和种子解析
May 21 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
讲解Python中运算符使用时的优先级
May 14 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
Python中字符串与编码示例代码
May 20 Python
Django文件存储 默认存储系统解析
Aug 02 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python 实现客户端与服务端的通信
Dec 23 Python
基于Pygame实现简单的贪吃蛇游戏
Dec 06 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
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
jquery遍历input取得input的name
2009/04/27 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python 从远程服务器下载东西的代码
2013/02/10 Python
Python实现获取网站PR及百度权重
2015/01/21 Python
Python正则表达式使用范例分享
2016/12/04 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
基于python绘制科赫雪花
2018/06/22 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
python实现简单猜单词游戏
2020/12/24 Python
中国好声音广告词
2014/03/18 职场文书
篝火晚会主持词
2014/03/25 职场文书
单位单身证明样本
2014/10/11 职场文书
投标售后服务承诺书
2015/04/29 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
高质量“欢迎词”
2019/04/03 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python
MySQL 视图(View)原理解析
2021/05/19 MySQL
浅析Python中的套接字编程
2021/06/22 Python
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js