人工智能应用之小程序语音机器人的打造
人工智能应用之客服机器人的打造
人工智能技术是2018年互联网上谈论最多的话题之一。那么关于人工智能技术的应用话题层出不穷,比如大数据、计算机视觉、爬虫、自然语音处理、无人汽车等等。今天张佬狮想和大家谈一下关于自然语音处理方面的应用。
自言语言处理是研究计算机如何能识别人类的语音的一种技术。这种技术广泛采用机械学习和深度学习的相关知识,小伙伴们可能觉得这些术语和技术离我有太遥远,不过没有关系,有一句话叫做:我们可以站在巨人的肩膀上,我承认,我们可以四个字是我加上去的。
自言语言处理是研究计算机如何能识别人类的语音的一种技术。这种技术广泛采用机械学习和深度学习的相关知识,小伙伴们可能觉得这些术语和技术离我有太遥远,不过没有关系,有一句话叫做:我们可以站在巨人的肩膀上,我承认,我们可以四个字是我加上去的。
我们今天的项目谈的是人工智能客服机器人的打造,我们采用了“欧拉蜜”公司的自然语言处理API,网址是:http://cn.olami.ai/open/website/home/home_show
“欧拉蜜”公司的自然语言处理API提供了很多大众化的功能,比如,数学计算、查询天气、讲笑话、讲故事、查询日期、翻译、做菜等等很多模块,这些模块都是在后台利用大数据进行处理得来的。
在上面的网址中,注册一个账号,申请成为开发者,然后你就会拿到两个数据,一个是AppKey,另一个是AppSecret,这两个数据就是我们在其他平台上调用“欧拉蜜”公司的自然语言处理API的身份证。
有了这个身份证,我们就可以自用的调用相关的语义处理技术,这是我们业务的核心呀,接下来,我们要解决前端问题。前端的方案有很多种,比如有Web端、小程序和手机APP等,由于小程序近两年火的一塌糊涂,主要是由于小程序的不需要安装、点开即用,关闭即走的特性,所以我们就紧跟时代发展步伐,采用小程序作为机器人的前端,关于小程序的开发,这又是另一个坑了,这个帖子不详细说明了。
有了这个身份证,我们就可以自用的调用相关的语义处理技术,这是我们业务的核心呀,接下来,我们要解决前端问题。前端的方案有很多种,比如有Web端、小程序和手机APP等,由于小程序近两年火的一塌糊涂,主要是由于小程序的不需要安装、点开即用,关闭即走的特性,所以我们就紧跟时代发展步伐,采用小程序作为机器人的前端,关于小程序的开发,这又是另一个坑了,这个帖子不详细说明了。
感兴趣的小伙伴们可以扫描下面的二维码,体验一下这个机器人,当前,机器人的功能是API提供的如数学计算、查询天气、讲笑话、讲故事、查询日期、翻译、做菜等功能,后期,我会根据具体使用场景对机器人进行定制化,让她能够完成某些人工客服能做的工作,如果想学习下这个机器人具体是这么做出来的,和所有程序源码,也可以扫描小程序二维码,进入到小程序里,点击:商务合作,就可以联系到张佬狮了。
下面是小程序二维码:!
人工智能实战小程序之语音
https://github.com/yuzd/microsoft_ai
1.人工智能实战小程序之准备工作
2.人工智能实战小程序之语音_前端开发
今天这部分主要讲小程序前端功能的开发
由于我偏后端,css是我的弱项,可能很多人和我一样开发小程序不知道如何下手,希望本篇文章对你有帮助
我的学习路线是:
大略看一遍小程序的api文档
然后在github上找一些小程序(我倾向于找有readme附图的那种)
然后download下来去跑起来然后在看代码。(最快速的学习是能够学习别人优秀的代码这个我很赞同)
我收藏了一个代码写的不错的开源电影推荐的小程序
https://github.com/yuzd/wechat-weapp-movie(感谢作者)
作者的代码目录结构我很喜欢(本次demo的开发我借鉴了)
本次demo的前端流程很简单:
录音=>上传=>展示返回结果
下手之前:
希望能找到一个开源的带录音功能的demo能帮助我快速上手,
终于找到一个比较适合的开源demo:https://github.com/WalkingFrog/SiYu-WX
虽然该项目的作者说项目年久失修,学习价值有限。。
但是uiico部分,对我来说太有帮助啦(感谢作者)
自己写css是避免不了的那么
我希望能找一个类似于bootstrap库的css库能帮助我快速排版布局
我在github搜索到了一个ZanUI小程序专用的css库,https://www.youzanyun.com/zanui/weapp#/zanui/base/icon
(果真很赞)
具体代码我已经放到了github上面了
https://github.com/yuzd/microsoft_ai
下面就说说我在开发过程中遇到的一些问题和解决方法
1.小程序的component功能我的理解像是asp.netmvc中的PartialView。使用的时候不要忘记将wxss文件也要引用到主wxss里面。
例如你自己写了一个loading的组件。
如果你在index.wxml里面用到了message.wxml不要忘记要将message.wxsimport到index.wss,否则样式就加载不进来(不要认为会默认约定加载)
2.bindtouchstart和bindlongtap的使用区别
刚开始的时候我用的是bindlongtap但是测试发现多次我长按了事件没有被调用
然后我换成了bindtouchstart但是又太灵敏了,然后采用的是settimeout200毫秒,并在bindtouchend方法进行
clearTimeout的方式解决的。
3.动画效果,比如出现录音的动画,用小程序自带的动画功能对我来说有点难,我就用了多组图片切换的方式解决
哈哈,这样真的可行。
4.录音和播放都采用了小程序最新的api
录音对象:wx.getRecorderManager()
音频播放对象:wx.createInnerAudioContext()
这2个对象都提供时间注册例如onStartonStoponError等等。我原来以为是注册多次会覆盖,其实这个类似于c#的多播委托其实是+=的概念
下篇文章会讲后端的代码实现逻辑以及音频转换会遇到的坑,希望大家多多支持