因为项目需要,使用到了微信小程序和百度的语音接口现在将项目中的一个小模块拿出来单独分享。
-
<李>微微信小程序李>
<李>百度语音接口李>
<李> nodejs,表达李>
<李> fluent-ffmegp李>
-
<李>窗口10 李>
<李> vs代码1.20.1李>
<李>微信小程序开发工具1.02.1802270李>
<李>花生壳——提供域名和内容穿透,用于方便本地远程调试微信小程序李>
考虑到业务并不复杂,所以就将所有的代码都放在一个页面就可以了(wxml wxs, js统称为一个页面)
文件目录
页面
index.wxml
& lt;按钮类型=澳稀眀indtouchstart=皊tartrecorderHandel bindtouchend”=皊endrecorderHandel”在开始8录音& lt;/button> & lt; view> 你说的话是: & lt; view> {{味精}} & lt;/view> & lt;/view> >之前index.js
//录音对象 const recorderManager=wx.getRecorderManager (); 函数sendRecord (src) { var obj={//已经在花生壳中映射到本地端口-3001 url: http://xxx: 34306/后”, filePath: src, 名称:“fffile”, 标题:{ “内容类型”:“application/json” }, 成功:函数(结果){ var data=https://www.yisu.com/zixun/JSON.parse (result.data);//味精为最终语音识别的字符串 var味精=data.result;//获取当前页面对象 var=getCurrentPages页()[0]; 页面。setData({味精:味精}); }, 失败:函数(err) { console.log(错); } }; wx.uploadFile (obj) }//结束录音的时候触发 recorderManager.onStop ((res)=> {//获取文件路径——提交到后台——后台发送到百度 sendRecord (res.tempFilePath); }) recorderManager.onError ((res)=> { 控制台。日志(“错误”,res); }); 页面({/* * *页面的初始数据 */数据:{ 味精:“” },//按下按钮的时候触发 startrecorderHandel () {//开始录音 recorderManager.start ({ }); },//松开按钮的时候触发,发送录音 sendrecorderHandel () {//结束录音 recorderManager.stop (); },/* * *生命周期函数——监听页面加载 */alt="微信小程序和百度的语音识别接口详解">index.js
var=需要表达(表达); 应用var=表达(); var fs=要求(fs); var多党制=要求(“多党制”);//转码工具 var ffmpeg=要求(“fluent-ffmpeg”); var AipSpeechClient=要求(“baidu-aip-sdk”) .speech;//#地区创建百度授权//设置APPID/AK/SK var APP_ID=皒xx”; var API_KEY=皒xx”; var SECRET_KEY=皒xx”;//百度请求对象 var客户=new AipSpeechClient (APP_ID, API_KEY SECRET_KEY);//新建一个对象,建议只保存一个对象调用服务接口 app.post(/后,函数(下)要求,res, {//生成多党对象,并配置上传目标路径 var=new Multiparty.Form形式({ uploadDir:“上传/? });//上传完成后处理 的形式。解析函数的要求,(呃,字段,文件){ var filesTemp=JSON。stringify(文件、零2); var inputFile=files.fffile [0]; var uploadedPath=inputFile.path; var=ffmpeg命令(); command.addInput (uploadedPath)//将1。aac变为1. wav .save (uploadedPath。片(0,3)+“wav”) 内(“错误”,函数(err) { console.log(错); }) 内(“结束”,函数(){//将录音文件转为缓冲区 var=fs.readFileSync (uploadedPath声音。片(0,3)+“wav”); var voiceBuffer=new缓冲区(声音);//发送缓冲区到百度接口返回语音对应的字符串 客户端。识别(voiceBuffer, wav, 16000)。然后(函数(结果){ console.log (' & lt; recognize>: ' + JSON.stringify(结果)); res.end (JSON.stringify(结果)); }、功能(err) { console.log(错); }); }); }); }); var服务器=app.listen(3001年,函数(){ .address var主机=server.address (); var=server.address港().port; 控制台。日志(示例应用倾听http://%s: % s的,主机、端口); });微信小程序和百度的语音识别接口详解