小编给大家分享一下小程序怎样实现语音识别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

目前成都创新互联公司已为上1000家的企业提供了网站建设、域名、虚拟空间、绵阳服务器托管、企业网站设计、浔阳网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
接口预览
通过阅读了解科大讯飞接口文档、小程序接口开发文档以及对后端ThinkPhp框架的学习,我整理了如下开发步骤:
注册科大讯飞账号(国人的骄傲,全球领先的语音识别技术)
进入AIUI开放平台在应用管理创建应用并记录APPID和ApiKey
进入应用配置,配置符合自己的情景模式、识别方式和技能
进行小程序开发录制需要识别的音频(下有详述)
后端转码录制的音频(科大讯飞支持pcm、wav),提交给识别接口(下有详述)
小程序接到识别结果进行接下来业务
音频录制接口
wx.startRecord()和wx.stopRecord()
wx.startRecord()和wx.stopRecord()接口也可以满足需求,但从1.6.0 版本开始不再被微信团队维护。建议使用能力更强的 wx.getRecorderManager 接口。该接口获取到的音频格式为silk。
silk是webm格式通过base64编码后的结果,我们解码后需要将webm转换成pcm、wav
wx.getRecorderManager()
相对wx.startRecord()接口,该接口提供的能力更为强大(详情),可以暂停录音也可以继续录音,根据自己需求设置编码码率,录音通道数,采样率。最让人开心的是可以指定音频格式,有效值 aac/mp3。不好的是wx.getRecorderManager()在1.6.0才开始被支持。当然如果你要兼容低端微信用户需要使用wx.startRecord()做兼容处理。
事件监听细节
// wxjs:
const recorderManager = wx.getRecorderManager()
recorderManager.onStart(() => {
//开始录制的回调方法
})
//录音停止函数
recorderManager.onStop((res) => {
const { tempFilePath } = res;
//上传录制的音频
wx.uploadFile({
url: app.d.hostUrl + '/Api/Index/wxupload', //仅为示例,非真实的接口地址
filePath: tempFilePath,
name: 'viceo',
success: function (res) {
console.log(res);
}
})
})
Page({
//按下按钮--录音
startHandel: function () {
console.log("开始")
recorderManager.start({
duration: 10000
})
},
//松开按钮
endHandle: function () {
console.log("结束")
//触发录音停止
recorderManager.stop()
}
})
//wxml:
{{text}}
音频转换
我这边后端使用php的开源框架thinkphp,当然node、java、python等后端语言都可以,你根据自己的喜好和能力来。想做好音频转码我们就要借助音视频转码工具ffmpeg、avconv,它们都依赖于gcc。安装过程大家可以自行百度,或者关注底部的文章链接。
$flag,'message'=>$message,'data'=>$data); print json_encode($result);exit; } }
调用识别接口
当我们把文件准备好之后,接下来我们就可以将base64编码之后的音频文件通过api接口请求传输过去。期间我们要注意严格按照文档中所说的规范传输,否则将造成不可知的结果。
'main','userid'=>'user_0001',"auf"=>"16k","aue"=>"raw","spx_fsize"=>"60" )));
$data = "data=".$d;
$res = $this->httpsRequest($url,$data,$xparam);
if(!empty($res) && $res['code'] == 00000){
apiResponse("success","识别成功!",$res);
}else{
apiResponse("error","识别失败!");
}
}
//数据返回封装
function apiResponse($flag = 'error', $message = '',$data = array()){
$result = array('flag'=>$flag,'message'=>$message,'data'=>$data);
print json_encode($result);exit;
}
}以上是“小程序怎样实现语音识别”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
新闻名称:小程序怎样实现语音识别
网站地址:http://www.jxjierui.cn/article/igdoph.html


咨询
建站咨询
