英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
基于 Arduino 的语音识别智能照明系统的设计与实现
摘 要
Arduino 是一个用于开发电子互动产品的软硬件平台。基于 Arduino 单片机的语音识别系统构建了一个智能照明系统,实现了家庭照明可以根据人的语音指令自动调节灯光亮度,根据环境温度自动调节灯光颜色。在日常家庭生活中,这种智能照明系统可以使人们的生活更加舒适,并能有效地实现照明节能。
关键词 Arduino,单片机,智能照明,语音识别
绪论
以电子系统为核心的家庭系统是未来智能家居的发展趋势。本文介绍了一种基于 Arduino 的智能语音识别智能照明控制系统。语音识别智能照明控制系统的建立,硬件是关键和基础,它直接影响到整个系统的稳定性,控制和反馈精度,节能,智能家电通过电子技术的加工,集成或控制家电产品,使家居生活更加舒适,安全和有效。与普通家用电器相比,智能家用电器不仅具有传统家用电器的功能,而且还可以从被动结构转变为主动识别人命令语音执行的智能工具,优化人们的生活方式[1],帮助人们有效地安排时间,提高家庭生活的安全性和舒适性。目前,家居照明控制主要采用传统的按键控制。在灯光昏暗的情况下,用户很难方便地控制,而且会经常发生碰撞。设计一个基于语音识别的灯光控制系统,它可以识别用户的声音,并根据用户的需求控制灯光。它可以提高用户住宅的智能性和舒适性,具有良好的实用性[2]。
语音识别智能照明控制系统的需求
目前,常用的照明控制系统是传统的按钮控制系统。当用户需要开灯或关灯时,他们需要手动触摸开关按钮。因此,在晚上,当用户需要开灯时,经常发生碰撞。如此传统的照明控制系统是不方便的。随着居民生活水平的不断提高,传统的照明控制已经不能满足人们对生活质量的要求。智能控制使用先进的计算机技术和嵌入式设备来控制家中的照明设备,为人们提供安全和舒适和愉快的高档家庭生活[3]。
现有的照明控制系统主要采用光敏传感器测量外界光线,然后自动控制照明。这些控制都设置好了,用户可能不方便需要其他控制。本文设计了一个灯光控制系统,使用语音识别技术来实现对灯光的智能控制。用户可以根据自己的需求通过语音“开灯”和“关灯”来控制照明[4]。语言是人们普遍使用的语言,是最方便的交流方式。将语音识别技术应用于照明控制可以降低操作的复杂性,增加操作的方便性[5]。
语音识别智能照明系统控制设计
语音识别智能照明控制系统的硬件部分主要包括 Arduino 控制器、传感系统、无线控制系统、语音广播部分和液晶显示部分。Arduino 是一个相对流行的电子交互产品开发平台。这个平台由硬件和软件组成。硬件和软件都是开源的。任何人都可以在 Arduino 的官方网站上获得最新的 PCB 设计。在软件方面,Arduino 拥有自己的 IDE 软件开发环境,采用类 C 的高级开发语言,支持大量的库函数,大大简化了程序开发。鉴于 Arduino 开发平台的诸多优点,本文基于 Arduino 微控制器,在一些特殊功能设计的创新方面具有许多优点[6]。
系统的基本原理
语音识别实际上是一种模式识别。计算机首先占有输入语音信号的前端信号。在数字化和噪声消除之后,对输入语音信号进行特征提取以建立所需的模型库。在实际识别部分,计算机仍然执行相同的前置和特征提取过程的测试语音信号。提取相应的特征后,与已建立的语音模板库中的语音信息进行比较,根据已建立的判别系统判断是否存在匹配,并通过匹配识别相应的输出结果。
语音识别系统在照明中的应用
家庭照明系统的语音识别由语音采集装置和控制中心组成。不像智能电视和空调,家庭照明系统需要有线,但语音输入方法是相同的。这同样可以通过远程设备或内置麦克风和其他语言采集设备实现,但由于大多数照明系统是使用内置麦克风进行语音信号采集,室内环境是嘈杂的。这需要更深层次的降低噪音。和家用空调一样,家用照明系统也是没有连接到网络的设备。因此,语音信号的识别也必须在本地进行。最后,已建立的词典被存储在控制中心的记忆中,并且可以实现智能家居。
Arduino 控制器介绍
Arduino 是一个开源的 MCU 电子设计平台。硬件部分由燕麦 AVR 微控制器、 i/o 接口和相关电路组成。软件部分包括一个标准的程序编译器和程序下载器。它使用类似的 Java 和 c 语言处理/连接开发环境。与传统的 MCUs 相比,Arduino 的特性包括免费的开源 ID 和开源硬件(包括原理图和 PCB 图)。所有资源都可以免费下载,并可以根据需要进行修改,以方便传感器和各种类型。连接的电子元件类型。
基于 Arduino 语音识别的智能照明控制系统设计
该系统的主控制器采用 ArduinoMega2560。Arduinomega2560是具有 USB 接口的核心电路板,核心是 atmega2560单片机,具有54个数字输入/输出端口(16个可作为 PWM 输出) ,16个模拟输入,4个 UART 接口,1个16mhz 晶体振荡器,一个 USB 端口,一个电源插座,一个 ICSP 头和一个复位按钮。控制板通过标 USB 电缆与计算机连接,便于在线调试。
无线语音模块
无线语音采用 YSV0.7模块,其核心是 ld3320语音识别专用芯片。该模块将 ld3320芯片与 PCB 上必要的周围电阻元件集成在一起。Ld3320芯片引脚通过2 times; 20引脚头引导,便于在面板或标准 dip40插座上快速开发 ld3320芯片。模块主 MCU 是一个51核的微控制器 STC90LE52。电源设计使用 lm1117-3.3芯片为 ld3320提供3.3 v 电压。将主控制单片机的引脚连接到 ld3320模块的引脚上,并向 ld3320模块提供一个晶体(4mhz ~ 48mhz)信号。在主控单片机中编写一个程序来识别 LD3320。
无线通信模块
目前在中国使用的 Arduino 模块包括 Falcom 的 A2D 系列、 Wavecome 的 wmo2系列、西门子的 MC39i 系列、爱立信的 DM10/dm20系列和 zxgm18系列。这些模块在功能和使用上几乎没有差别。该无线通信控制部分采用 MC39i 模块,MC39i 是新一代双频无铅产品,西门子推出的 GSM/GPRS 通信模块。它的简单封装是许多应用系统中无线高速数据传输的理想解决方案,数据可以进行处理、语音、短信和传真应用,低功耗,为用户提供了总是在线、高速、简单的移动数据通信接入方式,通过一个独特的40针连接器(ZIF)实现电源连接指令、数据、语音信号和控制信号的双向传输。它是一个具有电话报警功能的监控系统。该系统利用网络远程控制房子。当系统检测到房子里的无线声音时,通信模块可以用来控制照明设备。
图4.1 Arduino 控制器轮廓
4.3 无线控制部分
系统的 Arduino 协调节点和终端节点都使用美国 TI 公司的 CC2530。该芯片是 IEEE 802协议的系统。内部集成了一个增强的8051核心,256K 可编程存储器,8K RAM,8-14位 a/d 转换器,4个定时器/计数器,2个强大的美国支持多串行通信协议,以及卓越的性能射频收发机,看门狗定时器。硬件支持 CSMA/CA 协议,减少发送数据时的错误。同时,它还支持准确的数字化接收信号强度指示器(RSSI)/链路质量指示器(LQI) ,使可编程输出功率达到4.5,使单片机数据传输无需功率放大器达到70至100米。芯片的 MAC 在收发器中是固化的。MAC 层和物理层是集成的。2.4 GHz ISM 波段,不需要使用,成本低,功耗低,由3.3 v 电源供电。
4.4 语音控制技术的设计与实现
语音控制技术是系统的主要控制技术之一。当用户通过语音控制智能照明系统时,系统通过语音识别来识别用户的语音指令。当青少年指令与模块成功匹配时,控制命令用于发送消息。队列被发送到设备控制线程。本节将重点介绍语音识别模块的设计和实现。
4.4.1 语音识别系统的主程序
Arduino 语音识别芯片通过软件编程,可以在触发识别模式或循环识别模式下工作。触发模式是指 Arduino 芯片在接收到主动触发信号(如用户通过外部按钮或其他方式主动触发)后开始识别工作。虽然触发模式可以减少外部不相关语音对识别过程的干扰,提高了系统语音识别的正确性,每次语音识别都要求用户提供一个主动触发信号,操作繁琐。
4.4.2 语音识别系统的硬件设计
Arduino 芯片由 IC Route Corporation 设计生产,用于语音识别。Arduino 使用一种快速而稳定的优化算法来完成非特定的人类语音识别,也就是说,没有音调限制。通过软件编程,可以动态建立语音模板库,支持50个候选识别项,可以满足智能照明系统的各种场景切换和控制请求。此外,用户不需要事先培训,识别准确率高达95% 。此外,该芯片还集成了多个外围电路,包括高精度 a/d 和 d/a 通道、音频输入输出接口等。Arduino 的效率在于它不需要外部辅助芯片如 RAM 和 Flash 来实现稳定和准确的语音识别。
4.4.3 芯片和一些引脚的内部逻辑描述
- 工作电压。VDD 为3.3 v,芯片引脚输入电压范围: 高电平(“1”)为2.3 v 3.3 v,低电平(“0”)为01v。
- 时钟。芯片需要提供一个外部时钟。时钟频率范围是448 MHz。在内部锁相环之后,可以生成每个模块的指定频率。
- 重置。当使用复位时,必须在输入电压稳定的情况下进行。复位信号使芯片恢复到初始状态,并重置每个寄存器。重置之后,它进入睡眠状态,通过芯片选择信号唤醒芯片。
- 并行接口。在使用并行通信方式时,需要使用8条数据线(P0-P7)和4个控制信号(WRB * 、 RDB * 、 CS * 、 A0)以及一个中断返回信号 INT。
- 串行接口。当使用串行通信时,只需要4个芯片引脚: 芯片选择(SCS *)、 SPI 时钟(SDCK)、 SPI 输入(SDI)和 SPI 输出(SDO)。将 MD 连接到高层,SPIS * 连接到地面以选择 SPI 通信模式。
- 登记册。寄存器的地址空间是8位,可能的值是00h 到 FFH。芯片的操作是通过读写寄存器实现的。
图4.2语音识别系统硬件原理图
4.5 语音识别模块的软件设计
语音识别程序使用密码模式。用户必须先输入密码才能激活语音识别程序。使用密码模式可以大大减少由环境噪声引起的模块错误识别。Arduino 语音识别系统编写关键字识别列表。然后 Arduino 语音识别系统开始周期性地识别语音信号。Arduino 语音识别系统首先将收集到的语音信号与预设的触发密码进行匹配,匹配通过后开始计时,并继续收集语音信号。语音在指定的时间内被收集。信号发出后,它将继续匹配关键字列表中的密码。如果匹配结果符合预设密码,识别结果将被传送到微控制器。微控制器将执行无线传输程序,将密码发送到控制节点。如果不匹配,它将放弃当前的收集结果,并重新获得触发密码。
图4.3 Arduino 智能语音识别电路原理图
该系统中语音识别的工作流程是初始化,添加识别列表,开始识别,并获得识别结果。这些任务是通过读写相应的寄存器来完成的。具体的识别过程如下:
(1)初始化。根据数据表,初始化相应的寄存器。
(2)添加一个识别列表。
每个识别条目对应一个1字节的特定数字。不同的识别条目可以使用相同的数字。号码可以是不连续的,但是号码必须在00h ~ FFH 之间。每个识别项都是普通话中的小写拼音。每2个拼音由一个空格分隔。Arduino 系统可以支持50个识别项。识别条目可以通过操作相应的寄存器来添加。语音识别模块添加以下对应于数字00h ~ 06H 的识别条目。
(3)开始识别。通过设置几个相关的寄存器,可以控制 Arduino 系统开始语音识别。然后打开中断启用位,等待中断发生。
(4)获得识别结果。如果麦克风收集声音,不管识别结果如何,都会产生一个中断信号。中断程序需要获得基于寄存器值的分析结果。寄存器 BA 存储候选答案的数量,寄存器 C5存储匹配分数最高的答案。识别结果可以通过读取寄存器 C5的值来获得。语音控制主程序 Arduino 系统语音。通过软件编程,识别芯片可以在触发识别模式或循环识别模式下工作。触发工作模式是指 Arduino 系统芯片在接收到主动触发信号(如用户通过外部按钮或其他方式主动触发)后开始识别工作。虽然该触发方式可以减少外部不相关语音对识别过程的干扰,提高系统语音识别的正确性,但每次语音识别需要用户提供一个主动触发信号时,操作都很繁琐。为了提高智能照明系统语音控制的方便性,语音识别系统采用循环操作模式。当识别芯片没有语音输入命令或语音命令识别后没有匹配
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[591007],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。