DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2542|回复: 1
打印 上一主题 下一主题

[待整理] 基于语音识别的家居控制系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-29 23:02:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  随着科技智能化的发展和社会生活水平的不断提高,人们对家居环境方便快捷的要求也随之提高,智能家居的概念成为了一个热门话题。在智能家居系统中,语音识别和远程控制的应用打破了常规的家用电器局域性控制局限,已经成为了具有竞争性的新兴高技术产业,在智能家居控制系统上应用非常广泛。本文研究了基于SPCE061A单片机的特定人语音识别技术以及智能手机蓝牙通信技术,并将其成功应用于家用电器的控制上,用户可以利用语音命令和Android手机操作方便快捷地控制电器的开关动作。
  1 系统总体设计
  系统采用凌阳16位SPCE061A单片机为核心控制器,由蓝牙串口透传模块ATK-HC05、MIC输入模块、扬声器、液晶显示器、按键组成,利用SPCE061A内置的语音模块,将麦克风采集到的语音信号与事先训练好的语音库的特征语音进行对比,根据语音辨识结果产生控制信号,进而控制家用电器[1]。系统还增加了无线蓝牙通信功能,由Android智能手机发送事先规定的指令,蓝牙模块接收后将数据交给控制器处理,产生的控制信号将发送给执行器对家电进行控制。系统还设置了人性化的液晶人机界面和指示灯方便用户操作。用户可以通过键盘对系统进行复位、重新学习语音命令的操作。系统总体结构框图如图1所示。


  2 系统硬件设计
  凌阳16位单片机SPCE061A在硬件结构和指令系统上都非常适用于语音信号处理,其主要的特点为:速度快,多中断,多个A/D转换器,特别是具有音频输出功能的双通道10位D/A转换器,具有自动增益控制功能与内置传声放大器的A/D转换器[2]。
  本设计采用具有DSP功能并内置声音A/D转换器的凌阳单片机,可以使得系统大大简化。
  SPCE061A的A/D转换器有8个通道,其中有一个是MIC_IN输入,专门对语音信号进行采样。MIC选用驻极体话筒,其偏压由SPCE061A的VMIC脚提供。MIC输入模块电路结构简单,只需外接三个电阻和电容以对电流信号进行滤波。
  SPCE061A提供双通道10位的D/A输出AUD1、AUD2,每个通道的输出能力是30mA。为了能驱动扬声器放音,将输出电路设计为由负载电阻和三极管8050组成的功放电路[3]。
  2.1 最小系统组成
  最小系统接线如下图2所示,在OSC0、OSC1端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。其它闲置的电源端和地端接上0.1μF的去藕电容以提高抗干扰能力。


  2.2 蓝牙通信电路
  ATK-HC05是一款高性能的主从一体蓝牙串口模块,该模块支持非常宽的波特率范围:4800~1382400,并且模块兼容5V或3.3V单片机系统[4]。
  模块与单片机连接最少只需要4根线即可:VCC、GND、TXD、RXD。其中VCC和GND用于给模块供电,RXD和TXD分别为串口接收脚和串口发送脚,分别连接单片机的TXD和RXD进行通信。
  ATK-HC05模块与单片机系统的典型连接方式如图3所示:

  3 系统软件设计
  本课题的软件主要包括两部分:语音控制和蓝牙通信,采用C语言编程。该系统的智能手机控制软件是在MIT/GoogleApp Inventer平台下搭建的,App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成Android程式。Google App Inventor用户能够通过该工具软件使用谷歌的Android系列软件自行研发适合手机使用的应用程序[5]。
  3.1 语音控制程序流程图
  语音控制程序流程如图4所示。该控制程序主要包括两个部分,即语音训练和语音识别。语音识别部分则实现对特定人发出的语音命令与系统储存的语音命令比较,并根据比较结果产生相应的控制信号。


  程序执行步骤如下:程序开始运行时,首先将RAM中的语音模式擦除,为下面的语音训练的存储做准备。然后按照训练提示音依次训练触发名称。每一条语音命令需要训练两次,这两次训练会自动作出比较判断。当训练人两次发出的语音命令在误差允许范围内则判断为训练成功,同时将训练人的发音特征储存到系统中,否则程序返回上一层对该命令再次进行训练,直到语音命令完全训练成功。
  当系统提示语音训练完毕后,程序随即进入识别阶段。系统首先对语音识别器进行初始化,同时麦克风会播放提示音,提示训练人此时可以对控制系统发出语音命令。处理器将采集的语音信号进行处理,并与存储器中训练人的语音样本进行比较,根据比较结果产生相应的控制信号从而驱动设备动作。语音识别过程循环进行,完成语音命令的控制任务后系统等待训练人再次语音命令[6]。
  3.2 蓝牙通信
  由Android移动设备发送事先规定好的数据指令,系统中的蓝牙模块接收到后将数据交给单片机处理,单片机将接收到的指令和预先规定好的指令进行比较,产生控制信号传送给被控对象,从而实现Android智能手机对电器设备的控制。蓝牙通信流程图如图5所示。


  3.3 Android软件设计
  App Inventor for Android,它是一个基于网页的开发环境,即使是没有开发背景的人也能通过它轻松创建Android应用程序。App Inventor可以让开发者抛开复杂的程序代码,使用搭积木式的方法来完成Android应用程序。搭建应用程序需要准备以下材料:⑴Android系统智能型手机⑵蓝牙串口透传模块(本文使用ATK-HC05)⑶单片机系统开发板(本文使用凌阳SPCE061A)首先要有一个谷歌账户,并且申请了开发App inventor的权限。
  登录到App inventor开发界面可以看到一个空页面,点击“new”创建一个新项目,在出现的对话框中输入创建的app的名字,便可以开始对应用程序的编辑。


  App Inventor由两个部分构成:设计视图和块编辑视图。
  开发者可以在设计视图中完成添加按钮、文本框等程序外观的设计,设计视图就是一个网页;在块编辑视图进行真正的代码编辑,块编辑视图就是一个Java应用。如果将Android设备连接到了电脑上,还可以随时在手机上看到应用程序的修改。
  Android软件设计结构图如图6所示,此程序表示当打开Android手机的蓝牙功能后,获取可连接设备的地址。当连接成功后按下发送按钮,Android手机会经由蓝牙发送指令数据给当前地址的接收端,从而实现智能手机对电器设备的远程控制。
  4 结论
  本设计采用凌阳单片机SPCE061A作语音识别处理器,硬件电路简单,控制灵活;选用适合特定人孤立词识别的语音特征和识别方法,处理速度快,识别率高,可满足实时语音识别的需要。同时使用者可以根据自己的需要改变应答反应(包括语音输出和控制输出),就可以实现对多种电器设备的控制,如电视机开关及选台、音量调节等操作。该系统可扩展性和灵活性强、成本低廉,在智能家居方面具有良好的应用前景。
  
  
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-15 16:46 , 耗时 0.107832 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表