python语音合成并播放_百度语音合成在python中的使用

今天来说一下在python中如何使用百度的语音合成功能;即输入一段文字,请求百度相关服务器后,会返回来一段二进制语音流,将这段二进制数据经过base64编码返回给前端,前端解码后,可以播放出这段语音;也可以将这段二进制语音流保存到一个wav文件中。

使用百度的语音合成,首先需要在百度的ai开放平台上注册。

具体代码如下:

import asyncio

from aiohttp import ClientSession

def get_baidu_voice(text, baidu_voice_token):

content_audio = {

'tex': text,

'tok': baidu_voice_token,

'cuid': 'default',

'ctp': '1',

'lan': 'zh',

'per': '4',

}

speech_url = 'https://tsn.baidu.com/text2audio?'

headers = {

# 'Content-Type': 'audio/mp3'

'Content-Type': 'application/json'

}

async with ClientSession() as session:

async with session.post(url=speech_url, data=content_audio,

headers=headers) as res:

ret = await res.content.read()

try:

# 将bytes类型转换为str类型

ret_str = str(ret, encoding="utf-8")

except Exception as e:

# 正常返回

self.speech = base64.b64encode(ret)

else:

# 异常返回

ret_dict = json.loads(ret_str)

if ret_dict["err_no"] == 502:

raise RuntimeError("access token expired, please check")

elif ret_dict["err_no"] == 501:

raise RuntimeError("the input arguments is incorrect, please check")

elif ret_dict["err_no"] == 503:

raise RuntimeError("合成后端出错")

elif ret_dict["err_no"] == 500:

raise RuntimeError("unsupport input")

需要传入两个参数,分别是:需要转换成语音的文本和百度的语音token。

百度语音token的获取方式如下:

def get_baidu_voice_token():

# client_id 为官网获取的AK, client_secret 为官网获取的SK

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+ client_id + '&client_secret=' + client_secret

request = urllib.request.Request(host)

request.add_header('Content-Type', 'application/json; charset=UTF-8')

response = urllib.request.urlopen(request)

content_bytes = response.read()

content_dict = json.loads(str(content_bytes, encoding="utf-8"))

if content_dict:

# 28天过期

return content_dict["access_token"]

注意,token是有有效期的,需要定时获取新的token。

以上就是百度语音合成的调用,如有错误,欢迎交流指正!

文章来源:segmentfault,作者:wyzane。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:william.shi#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

3bd16c71c09c78ecd52251f00b4c6dfa.png

后台-系统设置-扩展变量-手机广告位-内容正文底部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python百度语音合成是一种使用Python编程语言结合百度语音合成API实现语音合成的技术。通过调用百度语音合成API,将文本转化为语音,并生成相应的音频文件。引用提供了百度语音合成的官方文档,其包含了详细的使用说明和示例代码。引用展示了一个使用百度语音合成API的Python代码示例,其包括导入库、初始化AipSpeech对象、调用语音合成方法和保存音频文件的过程。要使用百度语音合成,您需要先在百度AI开放平台创建应用并获取秘钥,具体步骤可以参考引用所提供的链接。 因此,如果您想使用Python百度语音合成,可以按照以下步骤操作: 1. 导入所需的库,使用pip install baidu-aip命令安装baidu-aip库。 2. 初始化AipSpeech对象,将您的App ID、API Key和Secret Key作为参数传入。 3. 调用语音合成的方法,将待合成的文本以及其他可选参数传入该方法。 4. 如果合成成功,将返回的音频二进制数据保存为音频文件。 通过上述步骤,您可以使用Python实现百度语音合成,并将文本转化为相应的语音输出。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python 百度语音合成](https://blog.csdn.net/hlx20080808/article/details/109746952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值