本帖最后由 刚性兑付 于 2025-7-17 04:14 编辑
之前开发公众号的时候,需要识别amr格式的音频,市面上好像只有TX云支持……
就对接了,难点在签名部分,校验_取b64_hmac_sha1 自己改一下精易模块的源码就好了,里面有取sha1、也有hmac,没什么难度
分享给小白,有需要的时候少走弯路hhhh
|
TX云_语音转文本 | 逻辑型 | | |
appid | 文本型 | | | | secretid | 文本型 | | | | SecretKey | 文本型 | | | | 语音文件字节集 | 字节集 | | | | 返_消息文本 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_参数数组 | 文本型 | | 0 | 局_参数串 | 文本型 | | | 局_签名原文 | 文本型 | | | 局_签名 | 文本型 | | | 局_请求地址 | 文本型 | | | 局_返回值 | 文本型 | | | 局_json | 类_json | | | 局_请求头 | 类_POST数据类 | | | 加入成员 (局_参数数组, “secretid=” + secretid )加入成员 (局_参数数组, “engine_type=16k_zh”)加入成员 (局_参数数组, “voice_format=amr”)加入成员 (局_参数数组, “timestamp=” + 时间_取现行时间戳 (真)) 加入成员 (局_参数数组, “convert_num_mode=1”)数组_排序 (局_参数数组, , )局_参数串 = 数组_合并 (局_参数数组, “&”)局_签名原文 = “POSTasr.cloud.tencent.com/asr/flash/v1/” + appid + “?” + 局_参数串 局_签名 = 校验_取b64_hmac_sha1 (到字节集 (局_签名原文 ), SecretKey )局_请求地址 = “https://” + 文本_取右边 (局_签名原文, “POST”, , )局_请求头. 添加 (“Host”, “asr.cloud.tencent.com”, )局_请求头. 添加 (“Authorization”, 局_签名, )局_请求头. 添加 (“Content-Type”, “application/octet-stream”, )局_请求头. 添加 (“Content-Length”, 到文本 (取字节集长度 (语音文件字节集 )), )局_返回值 = 到文本 (编码_编码转换对象 (网页_访问_对象 (局_请求地址, 1, , , , 局_请求头. 获取协议头数据 (), , , , 语音文件字节集, , , , , , , , , ), , , )) 如果 (局_json. 解析 (局_返回值, , ))  如果 (局_json. 属性是否存在 (“['flash_result'][0].text”))   返_消息文本 = 局_json. 取通用属性 (“['flash_result'][0].text”, ) 返回 (真) 返回 (假)  返回 (假)
|