欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序语音聊天智能对话(demo)

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

微信小程序语音聊天智能对话(demo)

发布时间:2020-10-09  

项目中用到了 olami sdk把录音或者文字转化为用户可以理解的json字符串。

效果图

微信小程序语音聊天智能对话(demo)

重要jS代码:

 

//手指按下时 语音转文字 voiceToChar:function(){ var urls = app.globalData.slikToCharUrl; var voiceFilePath = that.data.filePath; if(voiceFilePath == null){ console.log("[Console log]:File path do not exist!"); wx.showModal({ title: '录音文件不存在', content: '我也不知道哪错了,反正你就再试一次吧!', showCancel: false, confirmText: '确定', confirmColor: '#09BB07', }) return; } var appkey = app.globalData.NLPAppkey; var appsecret = app.globalData.NLPAppSecret; var NLPCusid = app.globalData.NLPCusid; wx.showLoading({ title: '语音识别中...', }) wx.uploadFile({ url: urls, filePath: voiceFilePath, name: 'file', formData: { "appKey": appkey, "appSecret": appsecret, "userId": NLPCusid }, header: { 'content-type': 'multipart/form-data' }, success: function (res) { wx.hideLoading(); var data = JSON.parse(res.data); var seg = JSON.parse(data.result).seg; console.log("[Console log]:Voice to char:" + seg); if(seg == null || seg.length == 0){ wx.showModal({ title: '录音识别失败', content: "我什么都没听到,你再说一遍!", showCancel: false, success: function (res) { } }); return; } that.addChat(seg, 'r'); console.log("[Console log]:Add user voice input to chat list"); that.sendRequest(seg); return; }, fail: function (res) { console.log("[Console log]:Voice upload failed:" + res.errMsg); wx.hideLoading(); wx.showModal({ title: '录音识别失败', content: "请你离WIFI近一点再试一次!", showCancel: false, success: function (res) { } }); } }); },  

olami 技术的识别语音代码:

 

// 发送语料到语义平台 sendChat: function (e) { let word = e.detail.value.ask_word ? e.detail.value.ask_word : e.detail.value; console.log("[Console log]:User input:" + word); that.addChat(word, 'r'); console.log("[Console log]:Add user input to chat list"); that.setData({ askWord: '', sendButtDisable: true, }); that.sendRequest(word); }, // 发送请求到语义平台 sendRequest(corpus){ app.NLIRequest(corpus, { 'success': function (res) { if (res.status == "error") { wx.showToast({ title: '返回数据有误!', }) return; } var resjson = JSON.parse(res); var data = JSON.stringify(resjson.data); that.NLIProcess(data); }, 'fail': function (res) { wx.showToast({ title: '请求失败!', }) return; } }); }, // 处理语义 NLIProcess: function(res){ var nlires = JSON.parse(res); var nliArray = nlires.nli; if(nliArray == null || nliArray.length == 0){ wx.showToast({ title: '返回数据有误!', }) return; } var answer = nliArray[0].desc_obj.result; if(answer == null){ wx.showToast({ title: '返回数据有误!', }) return; } console.log("[Console log]:Add answer to chat list..."); that.addChat(answer, 'l'); var dataArray = nliArray[0].data_obj; if(dataArray != null && dataArray.length > 0){ var objType = nliArray[0].type; if(objType == 'selection' && dataArray.length > 1){ that.newsProcess(dataArray); return; } if (objType == 'news' && dataArray.length == 1) { console.log("[Console log]:Add news to chat list..."); var title = dataArray[0].title; var detail = dataArray[0].detail; var news = title + "\n" + detail; that.addChat(news, 'l'); return; } var content = dataArray[0].content; if (content != null && content != answer){ console.log("[Console log]:Add content to chat list..."); that.addChat(content, 'l'); } } return; },