基于avconv转码工具的微信小程序语音识别功能实现~

袁小威 2019-07-19 5019人围观
简介最近在做基于微信小程序的语音识别功能模块时,遇到了一个比较头疼得事情,由于腾讯AI开放平台的接口只支持PCM、WAV、AMR和SILK四种音频格式,而微信小程序录音的音频文件是mp3格式的(此处就是踩得第一大坑了,刚开始看到开发文档是的时候心里还暗喜了一波,因为微信小程序录音文件就可以设置为SILK格式,这样岂不是可以不费吹灰之力就搞定了想想有点头疼的语音识别啦~然而我们终究还是太年轻~折腾了半天,在真机测试的时候发现木有半点反应,调试发现没有生成录音文件,真的是丈二和尚摸不着头脑的赶脚,最后查了一番资料才知道微信小程序在真机上只能设置成acc和mp3格式的),那么这里就不得不进行音频格式转化了。

        最近在做基于微信小程序【垃圾分类引导指南】的语音识别功能模块时,遇到了一个比较头疼得事情,由于腾讯AI开放平台的接口只支持PCM、WAV、AMR和SILK四种音频格式,而微信小程序录音的音频文件是mp3格式的(此处就是踩得第一大坑了,刚开始看到开发文档是的时候心里还暗喜了一波,因为微信小程序录音文件就可以设置为SILK格式,这样岂不是可以不费吹灰之力就搞定了想想有点头疼的语音识别啦~然而我们终究还是太年轻~折腾了半天,在真机测试的时候发现木有半点反应,调试发现没有生成录音文件,真的是丈二和尚摸不着头脑的赶脚,最后查了一番资料才知道微信小程序在真机上只能设置成acc和mp3格式的),那么这里就不得不进行音频格式转化了。

        此次分享废话不多说,直接上每一步的代码,首先上一波流程图


        微信小程序端语音页面代码如下

    


        Js部分的话,先引入wx.getRecorderManager()

    

        然后,在录音开始事件中进行录音参数设置及开启录音

    

        最后,在停止录音事件里进行停止录音操作,并监控停止录音事件,获取到录音文件,使用wx.uploadFile()方法将录音文件传给后端,后端处理完成后返回最终处理信息并展示

        后端代码采用avconv进行音频转化,这里采用腾讯语音识别-echo版Api接口来进行语音识别,具体实现如下

        接收录音文件并进行转码

        对接腾讯语音识别Api接口进行语音识别

        至此,微信小程序语音识别就结束了,又可以愉快的玩耍了~

        最后再上一个小程序码,欢迎大家扫码体验,有什么意见可以去公众号给我留言哟~

        

很赞哦! (0)