目前手边的一些工作,需要实现声音播放功能,而且仅支持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"htmlcode">
#!/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文件的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。