Python 使用百度语音合成SDK例子

最近在做一个项目,使用了百度的在线语音合成功能,也就是给一段文字,然后百度返回这段文字的语音mp3文件。

首先发现百度的在线api调试,python部分的代码有问题,直接复制运行,会提醒tok is empty(2022年12月8日做的测试),后来,还是使用百度提供的SDK使用起来更简单一些。

安装baidu-api SDK

安装Python 的 baidu-api SDK

pip3 install baidu-aip

Python代码

代码参考

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文件,可以打开播放,听一下是否你想要的语音。