你的位置:主页 > 新闻资讯 >
颜色调节例子仅支持红橙黄绿青失重式喂料机
2021-06-27 11:49

  “智能家居”很早就出现在大家的视野中,但目前大部分还是停留在概念阶段,如何让智能家居真正的落地开花呢?我想人工智能的出现必然会打破这种现状。 作为一个开发者,你是不是还在纠结如何能够用语音控制你的家居产品呢? 比如,用户说:我回家了。 你可以帮他打开灯、打开空调。 用户说:来点浪漫的气氛 你可以给他打开音箱,情景灯调整柔和的状态。 那么本文将通过实例讲解如何实现这些功能

  ZigBee作为一种短距离、低功耗的无线通信局域网协议,其优点是超低功耗、安全性高和自组网,并且可容纳多个设,因此在智能家居控制中占有很大的优势。

  但是,仅仅使用ZigBee技术来控制家居设显得比较单薄,或者不够“智能”。

  要实现这些功能,需要经过录音-语音识别-语义识别-根据语义输出命令给硬件-硬件执行命令的过程。每个过程的实现都不是那么容易。

  而随着人工智能、语音识别、自然语义理解的发展,语音控制智能家居将成为可能,但目前为止,大部分还处在概念阶段或者开源的不是很多,如何让智能家居真正的落地开花呢?本实例将做一些探索。

  这里会以window java应用程序为例,讲解如何通过语音识别控制智能家居,并输出ZigBee3.0协议,也很方便和ZigBee协调器进行对接,实现语音直接控制硬件。

  下面详细介绍程序的功能和代码实现,希望语音、语义理解今后能广泛的应用在家居等控制领域。

  APP的工作流程如下图所示,图中虚线框部分均由OLAMI开发平台提供,后面会具体介绍OLAMI开发平台的使用方法。

  首先要确保硬件设没有问题,可以进行正常的语音录入。在电脑上安装好麦克风之后,在“开始菜单”中输入“录音机”。

  然后在弹出的录音机中点击“开始录音”,使用话筒录音后点击“停止录音”后会弹出保存录音结果的对话框,保存,听听声音正常即可。当然,也可以使用QQ等第三方测试麦克风的软件。

  确定硬件设无误之后,只要通过javax.sound.sampled.TargetDataLine调用windows录音功能,录下符合OLAMI语音识别接口的声音数据即可,我的录音方式是一边录音,同时将原始数据通过speex压缩的方式post给 OLAMI 语音识别的API接口。不是保存为wav文件之后再上传,这样能够提高语音识别的效率。

  即根据OLAMI NLI的语义输出结果决定如何操作设,比如当输入为“打开灯”时,我们可以收到如下JSON数据:

  slots中的“control_obj”即要操作的设,上面的结果可以看到需要操作的设是灯,动作为打开。应用程序根据这两个信息就可以在自己的设中寻找“灯”这个设,并发出“打开”命令。

  这里没有提供驱动硬件的代码,但基本流程就是,将ZigBee协调器的开发版通过串口和电脑相连,软件发出的命令经串口发送给协调器,再由协调器控制ZigBee协议即可。

  通过设选择可以切换不同的例句。同时,可以在例句的框里输入其他控制语句,按回车可以重复输入。比如:“请帮我打开灯”,“灯给我打开”,“开一下空调”,“空调的温度提高一点”

  点击”开始录音”,如果没有点击“停止录音”,3秒之后会自动停止录音。如果在这之前点击了“停止录音”,那么会及时停止录音,并进行语音识别。

  如上图所示,应用程序中会模拟彩灯的颜色和空调的温度、模式、失重式喂料机风力,其原理就是根据输出的Zigbee3.0协议进行显示。

  功能:打开,关闭,颜色调节(例子仅支持红、橙、黄、绿、青、蓝、紫),氛围调节,色调调节。比如运动氛围、浪漫氛围、冷色调、暖色调等。

  切换模式,顺序为“自动-制冷--送风-加热”模式按顺序循环切换,但不支持某个模式的设置。

  其余设和传感器的ZigBee 输出协议不再一 一列出,可以直接在APP中测试。

  代码下载解压之后,可以在根目录找到 smarthome.jar,在windows7 环境下双击即可以运行。

  因为APP调用了OLAMI的自然语言理解接口,所以首先是必须先写语法,来匹配智能家居控制语句。比如:“打开灯”,“帮我打开空调”,必须在完成语法之后,才能从OLAMI的接口中获取NLI结果。语法相关定义和写法等请参考博客:告诉你如何使用OLAMI自然语言理解开放平台API制作自己的智能对话助手

  如果你希望修改语法,添加更多的句子支持,必须将语法文件导入到欧拉蜜NLI系统。

  下载包解压之后,根目录找到smarthome.osl,这个就是智能家居支持的语法。然后注册并登录欧拉蜜官网,在自己的账号下找到“应用管理”,并进入NLI系统。如下图所示。

  接着新增模块,并将智能家居语法smarthome.osl导入,如下图所示,点击“新建”并输入APP的名字“smarthome”,这个名字必须与smarthome.osl的名字相同,失重式喂料机否则导入时会报错。当然也可以修改,但同时要修改smarthome.ols中APP name相关字段。

  模块创建之后,选择“上传OSL文件”,然后选择smarthome.osl并确认即可。上传成功之后会进入该模块内部,然后在例句库中可以看到很多智能家居控制的句子,同时也可以查看Grammar,Rule等。至此OLAMI语法加载完毕。

  如果希望获取句子解析后的结果,必须在欧拉蜜平台中创建自己的应用程序,名字任意,我的叫smarthome。

  应用程序创建成功之后,还需要把刚才创建的smarthome 语法模块添加到应用程序中,一个应用程序可以支持多个语法模块。

  点击图中的“测试”,输入“打开灯”,就可以看到JSON格式的语义输出结果了:

  语法模块配置好之后,点击应用程序的”查看Key”的按钮,可以看到平台分配的APP Key和APP Secret.

  smartHomeApp.java用来处理智能家居APP的语法解析和命令输出。是NLIProces.java中其中一个小模块。 你还可以在NLI处理中添加其他处理模块,比如天气查询、诗歌背诵等等。目前NLIprocess.java中仅处理了smarthome相关的NLI输出:

  DataBuffer.java 和Microphone.java用来进行麦克风录音;录音格式按照欧拉蜜平台的要求,参数为16位深采样率,失重式喂料机16KHZ频率,单声道。

  麦克风的录音开始和停止通过线程监控完成。直到没有声音录入时,录音线程才会触发录音停止机制,因此希望停止录音时必须通Microphone.stopRecording()关闭录音,程序才能停止录音。

  因此录音时设置默认的录音时长或者通过标志来停止录音,并调用Microphone.stopRecording(),我这里的默认录音时长为3s.
以上信息由无锡市敏海通用设备有限公司整理编辑,了解更多双螺杆喂料机,失重式喂料机,计量喂料机信息请访问http://www.wxmhsb.com

上一篇:通过设选择可以切换不同的例句失重式喂料机
下一篇:以便有同样问题的车友更快看到答案双螺杆喂
返回