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

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

浏览量:604 时间: 来源:极乐叔

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

效果图

重要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 + "" + 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; },

源码:
百度云:https://pan.baidu.com/s/1jHJj1HG

专栏作家

honey缘木鱼。小程序社区博主,坚持原创分享技术博文。

本文原创发布于小程序社区。未经许可,禁止转载

原文地址:微信小程序语音聊天智能对话(demo)-教程-小程序社区-微信小程序-微信小程序开发社区-小程序开发论坛-微信小程序联盟

微信小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎