Python随身听,程序任我行。嗨,你好,欢迎来到Python随身听。我是DE8UG。

很多朋友都听说了Python是AI时代非常受欢迎的编程语言,为啥这么说呢?因为用Python玩起AI技术来是非常方便的。

今天我们来一起看看怎么用Python玩一下百度的语音合成技术。

这里主要分两个阶段:1:成为百度AI开放平台的开发者,创建一个应用 2:写代码,把文本合成语音

第一阶段:

先看第一步,肯定先注册个百度账号。然后打开百度的AI开放平台,也就是在百度的网址前面加上AI点就可以了。接下来就是用账号登录,然后创建一个应用,我把图贴到公众号的文章里,你可以直接查看。

创建应用时候的名字你可以随意取一个,我们要得到的关键信息是APP id和两个KEY。

这些你创建完应用就看见了。



第二阶段:

我们可以直接使用百度给我们提供好的SDK进行快速的代码编写。当然,这个SDK是有些限制的,支持最多512字(1024 字节)的音频合成,合成的文件格式为mp3。

我们需要先安装,使用这个命令来安装:执行pip install baidu-aip。

接下来,你需要参照下面的代码创建你自己的语音合成客户端,这里主要是分三步:

第一步导入aip这个语音代码包, 第二步用上面创建应用时候生成的APP id和两个KEY进行配置, 第三步就是生成客户端对象

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)

接下来就是调用客户端的synthesis方法,把要说的文字传给它,作为第一个参数,后面还有几个参数是是语速,音调,音量等,详情可以查看我贴的图片。


调用合成方法之后,会得到一个结果,判断一下格式正确的话,就直接写成mp3文件。

result  = client.synthesis('你好啊,欢迎收听Python随身听', 'zh', 1, {

'vol': 5,

})

# 识别正确返回语音二进制 错误则返回dict 参照下面错误码

if not isinstance(result, dict):

with open('auido.mp3', 'wb') as f:

f.write(result)

为了更方便的调用这个功能,我们可以把它写成一个函数:

第一个参数放文字,第二个参数放音频名称,后面的参数可以自定义,比如我把音量和发音人写到这里。当然,我这里的客户端对象是之前生成好的,你可以直接用,或者也作为函数参数,从外部传入使用。总之很灵活。

你可以直接查看我的代码:

def text_to_mp3(t, mp3='audio-de8ug.mp3', vol=5, per=106):
result = client.synthesis(t, 'zh', 1, {
'vol': vol,
'per': per
})
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open(mp3, 'wb') as f:
f.write(result)
return AudioFileClip(mp3).duration

ok,这就是今天Python随身听的节目了,感谢你的聆听

下期节目,再见!