微信小程序语音聊天智能对话(核心源码)

“智能聊”:微信小程序详解

这次是1.0版本的更新,整体设计请参考上一篇文章:
手把手教你做自然语言理解智能对话的微信小程序【核心源码】

本次更新内容:
1.键盘输入框和语音输入的切换
2.语音输入图标

扫码体验(小程序名:智能聊

这里写图片描述 这里写图片描述

更新之后的界面:

这里写图片描述

录音中

这里写图片描述

废话不多说,直接上代码:

index.wxml

<view class="container"><scroll-view class="scrool-view" scroll-y="true" scroll-with-animation="true" scroll-into-view="{{scrolltop}}" enable-back-to-top="true"><view class="chat-list"><block wx:for="{{chatList}}" wx:key="time"><view id="roll{{index + 1}}" class="chat-left" wx:if="{{item.orientation == 'l'}}"><image class="avatar-img" src="/res/image/chat_logo.png"></image><text>{{item.text}}</text><image class="avatar-img"></image></view><view id="roll{{index + 1}}" class="chat-right" wx:if="{{item.orientation == 'r'}}"><image class="avatar-img"></image><text>{{item.text}}{{item.url}}</text><image class="avatar-img" src="{{userLogoUrl}}"></image></view></block></view></scroll-view><view class="showAuthor weui-footer weui-footer__text"><view id="rollend" class="olamicontent">语义解析技术由OLAMI提供</view><view class="author" bindtap="contactMe">联系作者</view></view><form bindsubmit="sendChat"><view class="ask-input-word"><image class="text-video-img" src="/res/image/speak.png" hidden="{{keyboard}}" bindtap="switchInputType"></image><image class="text-video-img" src="/res/image/keyboard.png" hidden="{{!keyboard}}" bindtap="switchInputType"></image><input class="input-big" hidden="{{keyboard}}" focus="{{!keyboard}}" placeholder="" confirm-type="send" name="ask_word" type="text" bindconfirm="sendChat" bindinput="Typing" value="{{askWord}}" /><button hidden="{{!keyboard}}" bindtouchstart="touchdown" bindtouchend="touchup">按住 说话</button></view></form>
</view>
<image class="speaker" hidden="{{!isSpeaking}}" src="{{speakerUrl}}"></image>

使用keyboard来控制文本框和语音输入的切换,最后的image是语音输入时的图标。

JS控制代码

index.js(部分代码)

......(省略部分代码)// 切换语音输入和文字输入switchInputType:function(){this.setData({keyboard: !(this.data.keyboard),})},// 按钮按下touchdown:function(){this.setData({isSpeaking : true,})that.speaking.call();console.log("[Console log]:Touch down!Start recording!");// 开始录音wx.startRecord({'success':function(res){var tempFilePath = res.tempFilePath;that.data.filePath = tempFilePath;console.log("[Console log]:Record success!File path:" + tempFilePath);that.voiceToChar();},'fail':function(){console.log("[Console log]:Record failed!");wx.showModal({title: '录音失败',content:'换根手指再试一次!',showCancel: false,confirmText: '确定',confirmColor: '#09BB07',})},});},// 按钮松开touchup:function(){wx.stopRecord();console.log("[Console log]:Touch up!Stop recording!");this.setData({isSpeaking: false,speakerUrl: '/res/image/speaker0.png',})clearInterval(that.speakerInterval);},// 语音转文字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) {}});}});},// 联系作者contactMe:function(){if(that.data.contactFlag){// 语义平台自定义回复,有问题可以联系博主// 此处也可以调用addChat直接添加回复。that.sendRequest("");}else{wx.showModal({title: '提示',content: '你都点过了,还点干嘛!!',showCancel:false,});}that.data.contactFlag = false;},// 麦克风帧动画 speaking:function() {// 话筒帧动画 var i = 0;that.speakerInterval = setInterval(function () {i++;i = i % 7;that.setData({speakerUrl: that.data.speakerUrlPrefix + i + that.data.speakerUrlSuffix,});console.log("[Console log]:Speaker image changing...");}, 300);}
......(省略部分代码)

上面代码略有更改,最近更新到了微信官方的语音插件,因为逻辑都是一致的,只是语音识别调用的接口不一样,所以博客中的代码也就没有更新。

如有任何问题可以联系博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18200.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mixly用点灯科技控制小爱同学小度小度天猫精灵Siri控制应用

Mixly用点灯科技控制小爱同学小度小度天猫精灵Siri控制应用 Mixly用点灯科技Arduino编程控制小爱同学小度小度天猫精灵Siri控制应用 在Mixly中我们可以用图形化来给各种智能音箱编程&#xff0c;不用再看复杂的代码&#xff0c;哪怕是小朋友也可以上手自己的智能产品。只要导…

【DuerOS开发日记】2.打造属于自己的小度(1):使用PythonSDK

目录 【Minecode|开发日记】1.据说小度在等待帅的人把它唤醒 【Minecode|开发日记】2.打造属于自己的小度(1)&#xff1a;使用PythonSDK 【Minecode|开发日记】3.打造属于自己的小度(2)&#xff1a;小白小白&#xff01;——唤醒词替换 &#xff08;未完持更&#xff09; 写在前…

【百度智能云】教程:连接百度ai开放平台api接口并完成语音识别的任务

前言与介绍 本文章介绍了如何在Pycharm上用python语言简单的对连接百度ai开放平台的语音识别功能api端口的调用&#xff0c;并在代码里实现了现录音识别内容。 平台与相关工具 windows10、Pycharm、Python3.9 百度智能云官网为&#xff1a;百度ai开放平台官网 操作流程 注册…

小度音箱对接之DuerOS开放平台智能家居技能Java对接Demo实现

近期调研中&#xff0c;编写了个简单的Demo&#xff0c;对接DuerOS的智能家居技能。 Demo源码地址&#xff1a;https://gitee.com/mylitboy/link-smart-speaker-demo 介绍 小度音箱DuerOS对接demo&#xff0c;模拟OAuth2、设备云功能。 注意&#xff1a; 该项目&#xff0c;只…

百度小程序调研微信转百度

1、微信与百度小程序的区别 整体框架和微信小程序一致&#xff0c;遵循新建路由页面需要利用创建page模块&#xff0c;不能手动创建&#xff0c;分别有swan&#xff08;相当于html文件&#xff09;、js、json&#xff08;页面配置文件&#xff09;、css。 html中主要需要更改的…

百度人工智能API的调用_微信小程序。

微信小程序–智能接口 通过微信小程序开发调用百度人工智能接口&#xff0c;从而实现很多有趣的功能。 文章目录 微信小程序--智能接口前言一、百度智能云的认识1-1 注册1-2 页面说明1-3 功能初识1-4 api 接口 二、百度智能接口的创建2-1 创建接口2-1-1 点击创建新应用2-1-2 应…

百度飞桨paddlespeech实现小程序实时语音流识别

前言&#xff1a; 哈哈&#xff0c;这是我2023年4月份的公司作业。如果仅仅是简单的语音识别倒也没什么难度&#xff0c;wav文件直接走模型输出结果的事。可是注意标题&#xff0c;流式识别、实时&#xff01; 那么不得不说一下流式的优点了。 1、解决内存溢出的烦恼。 2、…

QT聊天机器人(百度语音+青云客API)

文章目录 效果前期准备设计功能?代码文字聊天代码语音聊天代码 一些细节可以改进的地方 代码已上传到github&#xff1a; https://github.com/HMY777/RobotChat 效果 运行界面&#xff1a; 请无视这个简陋的布局 文字聊天&#xff1a; 语音聊天: 为了压缩GIF大小已经裁剪…

微信小程序和百度的语音识别接口

介绍 因为项目需要,使用到了微信小程序和百度的语音接口 现在将项目中的一个小模块拿出来单独分享. 技术关键字 微信小程序百度语音接口nodejs,expressfluent-ffmegp 环境 windows 10vs code 1.20.1微信小程序开发工具 1.02.1802270花生壳-提供域名和内容穿透-用于方便本地…

你想不到,韩国女团最喜欢的英文单词是这些

如果你也想赚钱&#xff0c;实现财务自由&#xff0c;但接触不到优质的人脉和资源&#xff0c;可以到公June浩&#xff1a;成长home&#xff0c;发"资源" &#xff0c;就会看到我吐血整理的168条保姆级零基础吸金秘籍&#xff0c;跟着我一起亲历毕业5年、创业3年、从…

太逼真!这个韩国虚拟女团你追不追?

“她们看上去太像真人了”&#xff0c; 韩国虚拟女团MAVE的首支MV和打歌舞台引发网友阵阵惊呼。现在&#xff0c;她们的舞蹈已经有真人在挑战了。 这一组虚拟人的“逼真”倒不在脸&#xff0c;主要是MAVE女团的舞台动作接近自然&#xff0c;不放近景看&#xff0c;基本可以达到…

NBA球星数据可视化分析-FineBI

目录 一、实验&#xff08;实训&#xff09;目的 二、实验&#xff08;实训&#xff09;原理或方法 三、仪器设备、材料 四、实验&#xff08;实训&#xff09;步骤 五、实训记录及结果 <---------------------------------木易白驹----------------------------------…

【第十一届泰迪杯数据挖掘挑战赛】A 题:新冠疫情防控数据的分析 思路+代码(持续更新)

【第十一届泰迪杯数据挖掘挑战赛】A 题&#xff1a;新冠疫情防控数据的分析 思路代码&#xff08;持续更新&#xff09; 问题背景解决问题代码下载数据分析Task1Task2Task3Task4 问题背景 自 2019 年底至今&#xff0c;全国各地陆续出现不同程度的新冠病毒感染疫情&#xff0c;…

【数据博彩】如何使用大数据机器学习预测NBA比赛结果?

引言 伴随着大数据时代的来临&#xff0c;机器学习、深度学习、人工智能等越来越多的出现在我们的视野中&#xff0c;数据技术正在颠覆着包括体育和博彩在内的各行各业&#xff0c;本文着手于使用大数据机器学习预测NBA比赛结果&#xff0c;希望给相关行业从业者和爱好者带来启…

用Python采集球员信息,成功预测到了球赛胜负?

前言 嗨嗨&#xff0c;最近看球赛的朋友多吗 emm怎么说&#xff0c;我对这个虽然兴趣不是很大 但是还是想跟朋友赌赌&#xff0c;自己对这些球员也不是很熟悉&#xff0c;索性叫我的好同事帮我用Python采集了各国球员的一些信息&#xff0c;没料到竟预测成功了&#xff01; …

大火的ChatGPT能为自动驾驶带来什么?

/导读/ 最近的科技圈&#xff0c;大家都被微软推出的ChatGPT刷屏&#xff0c;作为工智能公司OpenAI于2022年11月推出的聊天机器人&#xff0c;其能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;甚至能完成撰写邮件、视频脚本、文…

神器Ai工具箱全集,不用找了你想要的Ai都在这里。

周报生成器 https://weeklyreport.avemaria.fun/zh AI写作 README 生成器 https://readme.rustc.cloud/zh AI写作 AI做决定 https://rationale.jina.ai AI助手 AI自动后端 https://www.autobackend.dev AI代码 AI上色 https://palette.fm AI图设 AI简历 https:…

AI面试必刷算法题 附答案和解析 --持续更新中

面试中发现很多同学一股脑优化、润色项目经历&#xff0c;但聊到基本的算法&#xff0c;反而会一脸懵X&#xff0c;得空整理下算法题给大家&#xff0c;希望对你有帮助。 1. tail(head(tail(C))) ( ) 已知广义表: A(a,b), B(A,A), C(a,(b,A),B), 求下列运算的结果:&#xff08…

google大模型Bard下场【谷歌版本的ChatGPT】

本文需要会可学上网&#xff0c;不会直接拉到底部 google大模型开始下场了https://bard.google.com/,点击链接用谷歌账户登录就能使用 步骤 第一步&#xff1a;如果你有谷歌账号&#xff0c;你所做的就只是登录【一个谷歌账号&#xff0c;可以帮你在大部分地方免登录&#x…

当 chatGPT 被职场 PUA ,笑麻了

大家最近是不是被 chatGPT 刷屏了&#xff1f;简单来说&#xff0c;chatGPT 是一个智能聊天引擎。 那 chatGPT 和小爱同学、 siri 有什么区别呢&#xff1f; 如果体验过的朋友&#xff0c;能感受到区别还是很大&#xff0c;chatGPT 的智能表现过于优秀&#xff0c;远远超过了这…