美文网首页Android开发经验谈
腾讯AI语音识别API踩坑记录

腾讯AI语音识别API踩坑记录

作者: 施瓦辛格777 | 来源:发表于2018-08-28 18:57 被阅读6次

    腾讯AI语音识别API踩坑记录

    介绍

    以前不习惯“踩坑”这个词,现在也不习惯。不过看大家都在用,我也用一下试试。

    腾讯AI语音识别分为三个版本,分别是ECHO流式微信专用流式。前两个比较好理解,为什么还有一个微信专用流式呢?这是因为微信小程序中录音API录制的音频格式只能是压缩过的mp3/ogg格式,而一般语音识别API都只识别一些非压缩格式,比如WAV,PCM等等。所以腾讯另外添加了微信专用流式

    一般来讲,像这种第三方API调用都比较简单,把需要传递的参数加上APP_KEY和APP_ID一并给服务器传递过去,就可以得到相应的返回数据。而腾讯AI语音识别API需要额外的接口鉴权,鉴权正确了才会返回正确结果。

    接口鉴权

    接口鉴权通俗讲就是把所有的参数按照一定顺序排列然后做一个MD5计算,把计算结果当成一个参数传递给服务器,服务器在接收到请求时也会计算一下MD5值,与客户端传递过来的MD5值进行匹配,如果值一致就进一步处理,如果不一致则报鉴权失败的错误{ret: 16388, msg: "sign invalid", data: {…}}

    接口鉴权官方介绍里提供了PHP语言的DEMO,如果需要用JS版本的,可以看这里我封装的一个DEMO,该DEMO确认可行的。

    对于接口鉴权需要额外补充的是如果调用API时传递了一个参数,且该参数参与了接口鉴权的MD5计算,那么服务器也会报一个sign invalid的错误,原因是服务器在接口鉴权时只会使用会用到的参数,你多传递的参数只有在客户端参与了MD5计算,而服务器上没有使用这个参数进行计算,从而导致计算出的MD5值不一样。多传参数时并不会报错,这是一个小坑。

    这里把参数整理方便对比:

    echo 流式版 流式版(WeChat AI)
    app_id app_id app_id
    format format format
    rate rate rate
    - - bits
    - seq seq
    - len len
    - end end
    - speech_id speech_id
    speech speech_chunk speech_chunk
    - - cont_res
    time_stamp time_stamp time_stamp
    nonce_str nonce_str nonce_str
    sign sign sign

    相关文章

      网友评论

        本文标题:腾讯AI语音识别API踩坑记录

        本文链接:https://www.haomeiwen.com/subject/biwqwftx.html