拿额度
登录到百度AI开放平台https://ai.baidu.com/
控制台中选择语音技术
在百度智能云这边创建应用
可以领取一些免费额度,这里我只需要短文本在线合成,180天5万次免费额度
然后整个token用(一个月,也可以选择写在代码),自己替换下访问
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=应用的APIKey&client_secret=应用的Secret Key
做进机器人
nonebot2为例,我没用别的
简单到不能再简单的文本转语音函数,各参数详见https://cloud.baidu.com/doc/SPEECH/s/Qk38y8lrl
async def get_tts(text:str):
data={
'tex':text,
'tok':'你的token',
'cuid':'test',
'ctp':'1',
'lan':'zh',
'per':'4'}
url="https://tsn.baidu.com/text2audio"
try:
r = requests.post(url,data=data,timeout=1)
except:
return ''
else:
return r.content
发送调用上面的函数即可,返回base64语音,塞进MessageSegment即可
await Matcher.send(MessageSegment.record(await get_tts(文本)))