Python 使用百度语音合成SDK例子
目录
最近在做一个项目,使用了百度的在线语音合成功能,也就是给一段文字,然后百度返回这段文字的语音mp3文件。
首先发现百度的在线api调试,python部分的代码有问题,直接复制运行,会提醒tok is empty
(2022年12月8日做的测试),后来,还是使用百度提供的SDK使用起来更简单一些。
在线合成REST-API-Python-SDK 文档:
https://ai.baidu.com/ai-doc/SPEECH/plbxhh4be
安装baidu-api SDK
安装Python 的 baidu-api SDK
pip3 install baidu-aip
Python代码
参数列表
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
tex | String | 合成的文本,文本长度必须小于1024GBK字节,建议每次请求文本不超过120字节,约为60个汉字或者字母数字。 请注意计费统计依据:120个GBK字节以内(含120个)记为1次计费调用;每超过120个GBK字节则多记1次计费调用。 | 是 |
cuid | String | 用户唯一标识,用来区分用户, 填写机器 MAC 地址或 IMEI 码,长度为60以内 | 否 |
spd | String | 语速,取值0-9,默认为5中语速 | 否 |
pit | String | 音调,取值0-9,默认为5中语调 | 否 |
vol | String | 音量,取值0-15,默认为5中音量 | 否 |
per | String | 普通发音人选择:度小美=0(默认),度小宇=1,,度逍遥(基础)=3,度丫丫=4 | 否 |
per | String | 精品发音人选择:度逍遥(精品)=5003,度小鹿=5118,度博文=106,度小童=110,度小萌=111,度米朵=103,度小娇=5 | 否 |
代码参考
from aip import AipSpeech
# 定义常量
APP_ID = '289*****' # 替换成你的App ID
API_KEY = '*****cGZgC****30Fc********' # 替换成你的 Api Key
SECRET_KEY = '*******q6ga37******tx89j0****' # 替换成你的 Secret Key
# 初始化AipSpeech对象
aipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 需要合成语音的文本内容
content = u'唧唧复唧唧,木兰当户织。 不闻机杼声,惟闻女叹息。问女何所思,问女何所忆。 女亦无所思,女亦无所忆。'
# 调用百度语音合成方法
# 参数 per 普通发音人选择:度小美=0(默认),度小宇=1,,度逍遥(基础)=3,度丫丫=4
result = aipSpeech.synthesis(content, 'zh', 1, {'vol': 3,'per':0})
# 识别正确返回语音二进制, 错误则返回dict 参照Python SDK错误码
if not isinstance(result, dict):
# 生成语音文件
with open('test.mp3', 'wb') as file:
file.write(result)
# 如果将语音用于呼叫中心或其他应用,需要根据实际情况对音频进行调整
# 这里使用ffmpeg对音频进行调整 码率128kbps 单声道 采样率8000HZ
#error = subprocess.call(['ffmpeg', '-i', 'test.wav', '-ab', '128k', '-ac', '1', '-ar', '8000', 'test1.wav'])
程序结束后,在程序的目录中,就会生成一个test.mp3文件,可以打开播放,听一下是否你想要的语音。