蹭一下NLP的热度,自己对于聊天机器人比较感兴趣,行业里面智能客服等越来越多的涌现出各种公司、产品
做为一名老码农(已经十年不写代码了),按捺不住蠢蠢欲动的心,想要再折腾一下
算是给自己写个小助手
先来一个总体图,大概目前做了这么几块功能
小Jarvis的功能架构
核心部分是"Robot Brain",做总控,实现两个功能:
- 1 NLP处理:判断指令意图,即通过NLP的意图识别,进行调用的功能模块识别;槽填充,识别各种信息字段,进行槽位处理
- 2 将指令、槽位分发到各个功能模块
实现了的功能(1) - 闲聊
最基本的部分。整体来说,NLP里面能够处理的部分,根据自己的语料和设计,还是很小的一部分。对于大部分情况都会是不能识别的内容,因此闲聊就等于将NLP不能处理的部分的垃圾桶。
此处可以对接的网上现成的闲聊API:
- 1 图灵机器人
- 2 xxxx
- 3 百度
实现了的功能(2) - 天气
天气功能核心实现了查询,比如"北京明天天气怎么样",识别出来,
- 意图:查天气
- 槽位:地点:北京,时间:明天
实现了的功能(3) - 垃圾分类
随着上海垃圾分类的如火如荼,感觉帝都也快了。为了避免被小区大神灵魂拷问"你是什么垃圾"~
自己先查询:"啤酒瓶是什么垃圾"
实现了的功能(4) - 待办事项
这个算是给自己实现一个日程管理的功能:
- 查询当天的安排:"今天还有什么事要做"
- 完成事项:"这件做完了"
- 添加日程:"下周一上午十点约了人在星巴克见面"
当然这里面就有一些处理不理想的地方,待优化。比如,传统的日程,可以直接点击checkbox完成事项。靠文本交互,就比较费劲。
实现了的功能(5) - 智能家居
自己屋里弄了好多智能设备,包括,小米网关、飞利浦智睿灯泡、人体红外感应、小米开关、电动窗帘等。
- 通过微信控制灯和窗帘的开关
- 根据人的位置,自动开关灯
- 根据温湿度情况,自动开空调、加湿器
接下来说说人机交互部分的想法
小助手的耳和口 - 语音交互的部分
主要有两个,最开始想着通过语音的,就是被Stark种草,想着也有个这样的智能助手
详见 树莓派搭建语音机器人
后来发现,周围有人的话,说话还是很奇怪,而且收音效果跟买的设备专业程度成正比,不弄个几千块的八爪鱼就还是不够好,能用。最理想的还是得配合装修,屋里收音的设备部署好,全屋的喇叭也部署好。
小助手的耳和口 - 文字交互部分
后来就改在微信里,最初折腾过itchat,不过很多已经被后台禁用了,逐渐微信的web接口也会关闭。现在还有很多人折腾其他终端的库,还得买。
后来还是换用微信公众号,申请个个人的订阅号,还是可以实现消息交互,由人发起,公众号可以回复。
详见 微信公众号的交互助手
小助手的眼
待补充,由智能家居的部分引发的,关于摄像头监控,进行人脸识别,可以做入户门处的安全检测,进而出发安全告警推送,或者做个性化的灯光、温湿度调整等。
详见 基于树莓派 + openCV打造人脸识别