基于Arduino的环境监测设备语音识别功能设计
2021-03-07房鑫坤
房鑫坤
(广东省广州生态环境监测中心站 广东省广州市 511400)
1 引言
语音在人类社会中历史悠久且存在广泛,是人类社会最基本、最常见的交流工具。生理上的语音是由声道中源信号激发而产生的[1]。随着人类科技的发展,语音识别技术也逐渐应用到各类生产生活相关的设备中。现在,语音识别系统已经许多领域得到应用,以实现各种任务的自动化,如航班预订、银行业务、天气信息等[2]。但在环境监测领域中,语音识别技术还未普及。一方面,随着环境监测设备的不断完善和升级,环境监测设备的功能越来越全面,操作界面和按钮也越来越复杂;另一方面,运维人员在检查和操作环境监测设备时,仍旧需要进行大量手动操作来实现各项功能。为环境监测设备增加语音识别功能,或许能够减轻运维人员的繁琐操作,从而实现设备的智能化应用。基于这种现状,本文尝试利用Arduino平台设计并成功制作了一个语音识别设备,它具有语音识别、温湿度测量、光线检测等功能。该设备的成功设计说明语音识别功能或许可以作为一种功能模块加入到环境监测设备中,帮助操作人员更高效地工作。
本文其余部分如下:第2部分将详细介绍语音识别技术和环境监测设备的相关背景,第3部分将介绍基于Arduino的语音识别设备,第4部分将对语音识别功能可行性进行总结,探讨语音识别技术在环境监测设备中应用的可行性。
2 背景
2.1 语音识别
近年来,语音识别技术已经成为许多行业中的热门话题,被认为是人与机器沟通的桥梁[3]。语音识别系统有四个主要组成部分:信息源、语言通道、发音通道和声学通道。图1为一个普通语音识别模型的识别体系结构。
图1:语音识别模型的结构
语音识别系统的建立,是基于如下数学公式:
通过公式(1)和公式(2)我们可以得到公式(3):
其中,
W是说话者想表达的一系列词语。
2.2 Arduino平台
Arduino是由Massimo Banzi于2005年发明的一个方便灵活的面向工程师的开源电子原型平台。Arduino电路板是采用多种微处理器和控制器设计的。这些板配有一组数字和模拟I/O引脚,连接各种扩展板或面包板和其他电路。这些板有串行通信接口,包括一些型号上的通用串行总线(USB),用于从个人电脑加载程序。微控制器通常使用C/ c++编程语言。图2显示了一个典型的Arduino设备的结构。
图2:Arduino的结构
Arduino是一个易于使用的开源硬件产品,界面丰富。Arduino可以支持SPI、IIC和UART串行通信。它还可以通过控制灯光、马达和其他设备,通过各种传感器感知环境,以反馈和影响环境。它没有复杂的单片机底层代码,没有难懂的汇编,只有简单实用的功能。Arduino只有一个简单的编程环境IDE,有很大的自由度,因此它可以有非常高的性能。标准化的界面格局为它的不断优化奠定了坚实的基础。
2.3 环境监测设备
无论是科学家、政策制定者还是普通公众,都在关注着环境监测领域的各项成果[4]。随着科技的不断发展,环境监测领域不断涌现出新的环境监测设备,例如热电(Thermo Electron)公司开发出42i、43i、48i、49i、146i等一系列空气污染物监测仪器及动态校准仪器。随着居民对环境质量的不断重视,环境监测设备的需求量也不断增大。相关统计显示,我国环境监测设备2016年销售额已达64亿人民币,且仍呈增长趋势[5]。面对不断增长的需求,如何将环境监测设备进行改进成了人们关注的热点,而语音识别这一智能化功能便是一个很好的切入点,能够为环境监测设备的智能化操作提供可能。
3 实验
3.1 功能和组件
最终完成的设备功能包括语音识别,温湿度检测,光强检测,语音控制小灯泡开关。
组件包括:Arduino UNO、LD3320、SYN6288、DHT11、PT550、继电器模块、LED、扬声器。图3 (a)-(g)显示了该装置的组成部分。
图3
LD3320是一种特殊的芯片,它集成了一个语音识别处理器和一些外部电路,包括AD/DA转换器、麦克风接口、音频输出接口,该芯片不需要任何外部辅助芯片如Flash、RAM等,而是把这些功能直接集成在现有产品中,可执行语音识别、播放声音和人机对话功能,此外,关键字列表的识别可以是任何动态编辑。SYN6288是一款语音合成芯片,通过异步串口接收用于合成的文本,实现文本与语音的转换。DHT11温湿度传感器是具有校准数字信号输出的温度和湿度传感器。PT550模块可以检测光强,并将模拟电压信号反射回Arduino控制器,可以通过设置电压水平的阈值来触发其他单元。
3.2 功能实现情况
在软件部分,本实验将语音识别功能分为初始化模块、温度感应模块、光源开关模块、光照感应模块和语音识别模块。初始化模块中包含TimeOne、avr/wdt、Syn6288、DHT等头文件,同时定义相关语音指令,并对Arduino的相应端口进行定义。通过switch函数执行不同的功能模块,最终实现了语音响应、温湿度读取及播报、光强读取及播报、错误提示等功能。相关代码及演示视频不对外公布,如有需要可与作者联系。
图4显示了基于Arduino的语音识别设备的外观及构造。语音识别设备的功能可以通过图5所示的流程图来体现。
图4:语音识别设备外观与构造
图5:语音识别设备框图
在应用过程中,将该语音识别设备命名为“小宝”。当用户想要激活这个设备时,只需要叫它的名字,它就会回答用户。激活设备后,用户可以向语音识别设备发出不同指令,如“当前的温度和湿度怎么样?”,或者“现在需要开灯吗?”,语音识别设备通过温湿度传感器和光强传感器获取环境数据,阈值判断后会给用户答案,执行对应功能。当用户给出错误的指令,设备会语音播报错误提示。试验测得该设备语音识别成功率如表1所示。
表1:语音识别成功率
4 结论
考虑到语音识别设备的现实价值,本文认为将语音识别技术应用到环境监测设备中具有可期的前景,主要原因有三个:
(1)语音识别技术相对成熟,已有理论数学模型,且其余领域的成功产品也可为环境监测设备相关技术提供参考;
(2)语音识别功能可以实现人对环境监测设备的智能操作,节约运行维护时间且避免繁琐操作;
(3)可促进环境监测设备面板布局进一步改善及功能按钮进一步优化。
虽然语音识别技术在环境监测设备中有一定的应用价值,但相关技术的应用仍然存在一些问题,例如:
(1)现有的语音识别技术的识别率不高且提升困难;
(2)大多数语音识别技术只能识别一种语言;
(3)环境监测设备的运行维护已有成熟规范,增加语音识别功能后仍需花费时间完成对新设备操作规范的编写。
总而言之,语音识别功能与环境监测设备的结合或许可以成为环境监测设备下一步改进的方向,但实际应用过程中仍会面临相当多的困难,这需要我们进一步研究并找出解决问题的方案。