摘要以ARM11 S3C6410为核心设计了一种家用智能垃圾桶,用拾音器作为声音传感器,采用延时估计法实现声源方位的实时检测,从而实现语音控制垃圾桶的运动;采用红外传感器实现垃圾桶行进的蔽障功能;同时,采用语音识别技术实现用户对垃圾桶的前、后、左、右行驶或开启、关闭垃圾桶盖等各种语音指示的识别。从而实现垃圾桶的智能化与人性化,给生活带来便利。
关键词S3C6410;声源定位;语音识别;避障
随着人们生活水品的不断提高,在人们购买各种家具或家电时越来越重视其智能化和人性化。人们在生活中产生的生活垃圾都需用垃圾桶放置,考虑到老人、孕妇或者残疾人,放置垃圾时存在的不便、费时、费力等问题。设计针对这些问题,提出了具有语音识别功能的智能垃圾桶设计方案,当用户想要扔垃圾时,只要一声令下,垃圾桶就会快速准确地来到你身边。
1 系统硬件设计
系统硬件包括垃圾桶车体机械结构和硬件控制电路两个部分。其中车体机械结构为一部三轮小车车体,能按照在不同地点处用户发出的声音指令,自动行驶到用户所在地。系统硬件电路总体结构框图如图1所示,包括电源模块、ARM最小系统、声源定位模块、语音识别模块、避障模块和电机驱动模块。
工作原理:首先通过语音识别模块识别出用户的呼叫命令,同时通过声源定位模块判断用户所处位置,再通过ARM产生驱动电机的PWM信号,利用电机驱动模块驱动垃圾桶向声源方向行驶,并在行进过程中,利用避障模块自行避开障碍物。同时,该设计还支持用户对垃圾桶前、后、左、右行驶或打开、关闭垃圾桶盖等语音控制。
1.1 电源模块
系统所有模块和控制器都需要+5 V的工作电压,采用锂电池进行供电,并用LM2576S-5稳压芯片将电压稳定在+5 V,然后通过稳压源LM11 17-33和LM1117-18为S3C6410芯片3.3 V和1.8 V电压。
其余语音芯片UDA1341TS、拾音器的5 V供电、红外避障、直流电动机均为+5 V供电。
1.2 声源定位模块
声源定位模块主要包括拾音器构成的麦克风阵列和信号处理单元,如图2所示。
系统中麦克风阵列选用2个拾音器来实现,其监听范围为30~50 m2。由于拾音器所拾取的声音信号太小,易受环境噪声影响,因此有必要对声音信号进行预处理,通过信号调理单元的处理,使其能够满足系统要求。为满足拾音器所得到的微弱电信号进行放大,系统采取两级放大电路。又由于A/D模块不能采集负电压信号,因此需要对放大后的电信号进行偏置,使其不出现负电压,便于ARM采样,使其输出的误差更小。
1.3 语音识别模块
设计采用Philips公司UDA1341TS专用的语音处理芯片,能对语音实现放大、滤波、采样、A/D或D/A转换及进行数字语音处理功能,并且支持璐总线数据格式,与ARM芯片S3C6410内置IIS总线接口配合使用。ARM芯片上内置的IIS接口不但能够读取IIS总线上的数据,为FIFO数据提供DMA的传输模式,而且可以同时传输和接收数据。UDA1341TS对所采集的语音信号进行采集和编码,由DTW模型算法进行模板训练,并将训练结果存储在Flash中以便于在语音信号识别阶段读取模板。在语音信号识别阶段,将输入的语音信号经过音频数字信号编译码器UDA1341 TS处理后,通知S3C6410嵌入式Linux操作系统,与保存在Flash中的参考样本进行对比,找出最佳的声音识别效果,然后由嵌入式Linux操作系统中的系统调用函数控制S3C6410的I/O口,指挥垃圾桶的运动。
1.4 电机驱动模块
电机驱动模块根据ARM控制器输出的控制信号驱动电机的运行。电机的驱动电路采用H桥驱动电路,如图3所示。
Q1、Q2、Q3、Q4这4个三极管组成4个桥臂,Q1和Q4组成一组,Q2和Q3组成一组,Q5控制Q2、Q3的导通与关断,Q6控制Q1和Q4的导通与关断,而Q5、Q6由S3C6410的IO口来控制,这样就可以通过IO输出的高低电平,控制4个桥臂的导通与关断控制电机的运行状态,使之正转反转或者停转,进而控制垃圾桶的行驶。为避免用分立元件使电路板过于复杂,在设计中使用H桥驱动L298N芯片。
1.5 避障模块
避障电路采用漫反射式光电开关进行避障。光电开关是集发射头和接收头于一体的检测开关,其工作原理是根据发射头发出的光束,被障碍物反射,接收头据此做出判断是否有障碍物。当有光线反射回来时,输出低电平;当没有光线反射回来时,输出高电平。ARM根据接收头电平的高低做出相应控制,避免小车碰到障碍物,由于接收管输出TTL电平,有利于ARM对信号的处理。障碍检测模块作为对外部障碍信息的采集窗口,将行进过程中障碍信息检测出来,并传递给ARM控制器进行处理。
1.6 ARM最小系统
智能垃圾桶以三星公司的ARM微处理器S3C6410为核心控制器,其主要作用:接收和处理收到的各种传感器信号,并通过决策后输出合适的控制信号。利用S3C6410丰富的片上外设可以方便地采集和处理各种传感器的信号,实时控制垃圾桶的运动,同时完成与语音芯片UDA1341 TS之间的通信。
2 系统算法设计
系统软件包括声源定位算法、特定语音识别算法和自动避障算法等。
2.1 声源定位算法
针对声源定位,系统采用基于传声器阵列时延估计法来估测用户发声的方向。基于时延估计的声源定位算法分为两个部分:(1)时延估计,即计算声源到两两传声器之间的时间差。(2)方位估计,即根据时延和传声器阵列的几何位置估计出声源的位置,其中时延估计的精度是关系到声源定位精确与否的关键因素。
(1)时延估计。时延估计采用广义互相关法。假设两传声器m1和m2间距为d,在没有混响的情况下,两传声器接受到的信号x1(t)和x2(t)为
x1(t)=α1s(t)+n1(t) (1)
x2(t)=α2s(t-τ)+n2(t) (2)
其中,s(t)为声源信号;α1、α2是声波从声源到传感器的传播衰减系数;τ是声源传播到两个传感器所需延迟时间,即到达时延。n1(t)、n2(t)为环境噪声。这时,到达时延(TDOA)可以采用传统的互相关法进行估计,这时互相关方程为
其中,是传声器1、2拾取信号的互相关谱;ψ12:(ω)是权函数;φx1x2(ω)=ψ12(ω)Gx1x2(ω)是广义互相关谱,这样到达时延为。
根据上式选取不同的权函数ψ12(ω)就可得到到达时延的不同算法,它的选取可根据实际的声学环境选择相应的准则,使得Rx1x2(τ)有个比较尖锐的峰值,得到最好的估计效果。Rx1x2(τ)的峰值处即为两传声器间的时延。但在实际应用中,权函数的选取是一个难点。目前用得较多的是基于互功率谱相位加权(CSP)法,其中加权函数选为ψ12=1/|Gx1x2(ω)|。这种方法通过对信号互功率谱的归一化,去除了信号的幅度信息,只保留了信号的相位特性,对于噪声和混响都有一定的抑制效果。
(2)方位估计。采用几何定位法,利用角度距离估计方位。利用两个拾音器摆成如图4所示,利用拾音器1和2接收到得时间差就可以检测出声源偏离主轴的角度θ。
由图4可得
由于AB距离和V声音已知,时延(tA-tB)可由式(1)~式(3)算出,再由式(4)和式(5)可求得声源偏移正方向的角度θ,则可控制电机转动使垃圾桶向用户方位旋转并前进。
2.2 特定语音识别算法
针对特定语音的识别,采用动态时间规整(DTW)的算法,是一种把时间规整和距离测度的计算结合起来非线性规整技术,多用于孤立词的语音识别。语音识别过程如图5所示。
首先应滤掉输入语音信号的噪音并进行预加重处理,提升高频分量,然后线性预测系数等方法进行频谱分析,找出语音的特征参数作为未知模式,与预先存储的标准模式进行比较,当输入的未知模式与标准模式的特征一致时,ARM便识别输入的语音信号并输出结果。
3 系统软件设计
系统软件主要包括:数据采集模块、SCI通讯模块、特定声源定位算法模块和避障软件模块。系统软件总体流程图如图6所示。
3.1 特定声源定位算法设计
系统的声源定位算法主要基于传声器阵列时延估计法,利用A/D采样模块检测不同拾音器所接收到的声音信号,算法实现采用广义互相关法。ARM采样得到的波形接近为正弦波,将对应采样得到的值放入数组中保存,首先进行相关运算,得出互相关谱。为避免误差和杂音的干扰,进行多次计算去除了误差较大的值。其算法流程图如图7所示。
同时,为避免垃圾桶对接收到的任何声音都进行定位,系统在定位时加入了语音识别,即只对需要的声音进行方位判断,对特定声音进行语音识别的流程框图如图8所示。
3.2 避障软件设计
避障软件模块采用对ARM的GPIO口查询方法。在垃圾桶加电后,主函数中一直查询GPIO,某一路的GPIO出现低电平时,进入相应的子函数,执行相应的控制动作。3个红外传感器同时工作,发射红外信号。任何一个红外接收装置接收到反射的红外信号进入相应的子函数执行控制电机转动。红外避障流程如图9所示。
4 结束语
设计的智能垃圾桶“听”到主人的呼喊后能自动到达主人身边,并且能识别主人的声音进行一系列动作,经试验证明该设计能够满足使用要求。