一、前言
继上一篇介绍如何使用百度语音识别API
的博客《树莓派 >>> 接入百度AI 开放平台实现智能语音识别》后,今天我们来看看如何使用百度语音合成,有了这一听一说,我们就可以打造属于我们自己的语音小助手了 😃
首先附上官方教程:
百度语音合成
(我选择使用python SDK 进行开发)
二、开始
(1)下载并安装SDK
两个方法都行:
若安装了pip:
pip install baidu-aip
若安装了setuptools:
python setup.py install
若在python 环境下import aip
没有报错,即说明SDK 安装成功。
(2)新建AipSpeech
AipSpeech是语音合成的Python SDK 客户端,为使用语音合成的开发人员提供了一系列的交互方法。
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)
上述App ID、Api Key、Secret Key 的获取在我之前那篇博客《树莓派 >>> 接入百度AI 开放平台实现智能语音识别》已经说过了,这里不再赘述
(3)配置AipSpeech
若大家需要配置AipSpeech的网络请求参数(一般不需要配置),可以在构造AipSpeech之后调用接口设置参数,目前只支持以下参数:
(4)使用SDK
合成一段语音文件:
result = client.synthesis('你好百度', 'zh', 1, {'vol': 5,})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result, dict):with open('auido.mp3', 'wb') as f:f.write(result)
若成功合成语音,则result
就是一段代表语音信息的二进制数据流,否则就是一段错误信息(可打印出来查看)
合成之后我们就可以把这段二进制流写到一个.mp3
文件中
audio_file = open('C:/Users/asdf/Desktop/baidu_api_test.mp3', 'wb')audio_file.write(result)audio_file.close()
若是系统无法区分我们想要其发出的音调,例如“重心”
和“重庆”
,这个“重”
很明显是发不同的音的,这就需要我们在合成语句的text 中进行说明:
result = client.synthesis('我爱重(chong2)庆', 'zh', 1, {'vol': 5,})