【发明内容】
本发明的目的在于提供一种能够自动控制窗户开关的声控窗控制系统。
本发明的另一目的在于提供一种自动控制窗户开关的声控窗控制方法。
为达成前述目的,本发明一种声控窗控制系统,其包括:
声音采集单元,其包括分别设置于窗外和窗内的两个麦克风;
声音方向判断模块,其根据声音采集单元的两个麦克风采集的声音判断声音是来自于窗内还是窗外;
声音类型判断模块,其根据声音采集单元采集的声音判断声音的类型;
用户设置模块,其设置用户的各种控制模式;
控制决策模块,其根据前述声音方向判断模块、声音类型判断模块传输的信号根据用户设置模块的设置控制窗户的运动。
进一步地,所述声音方向判断模块是根据麦克风采集的声音的能量,通过比较两个麦克风采集的声音能量来判断声音的方向。
进一步地,所述声音类型模块进一步包括声音特征分析单元以及声音类别分类器。
进一步地,所述声音特征分析单元采用倒谱系数算法计算声音的特征参数。
进一步地,所述声音类别分类器采用高斯混合模型GMM算法确定声音的分类。
进一步地,所述分类器通过大量数据训练的方法确定不同类别声音的高斯混合模型参数。
为达成前述另一目的,本发明一种声控窗控制方法,其包括:
设置两个麦克风分别采集窗内和窗外的声音;
判断声音的方向是来自于窗内还是窗外;
判断声音的类型;
设定声控窗的控制模式;
根据获取的声音的方向、声音的类型以及控制模式控制窗户的运动。
进一步地,所述声音方向判断是根据麦克风采集的声音的能量,通过比较两个麦克风采集的声音能量来判断声音的方向,声音能量的计算公式为:
其中XE1[i]=Envelop_old1*alfa+X1[i]*X1[i]*(1-alfa),i=0---L-1,其中L为一帧信号的长度,Alfa为平滑因子,X1[i]为麦克风采集的当前信号,Envelop_old1为前一信号的能量包络。
进一步地,所述判断声音的类型进一步包括:
采用倒谱系数算法计算采集到的声音的特征参数;
采用高斯混合模型GMM算法确定声音的分类;
根据高斯混合模型的声音分类以及采集到的声音的特征参数确定声音的类型。
进一步地,所述倒谱系数算法采用一阶回归方法计算:
MFCC(l,n)表示第l帧信号的第n阶MFCC系数,n为自然数。
本发明的声控窗控制系统能够自动识别声音的方向来源,并判断声音的类型,并根据用户的设置实现对窗户的自动控制,能够有效防止误操作,而且控制模式有各种选择,能够实现多种控制需求。
【具体实施方式】
此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
本发明是一种声控窗控制系统,其能够根据声音的来源判断声音是来自于室内还是室外,并判断声音的类型,从而决定窗户的控制。
请参阅图1所示,其显示本发明声控窗控制系统100的结构框图。如图所示,本发明声控窗控制系统100其包括:声音采集模块1以及声控装置2。
声音采集模块1是用于采集声音,在本发明的一个实施例中该声音采集模块为麦克风。因为需要判断声音的来源是来自于室内还是室外,例如如果是想在睡觉时如果外面有声音自动关闭窗户,则需要采集室外的声音,如果在室内呼喊救命想把窗户打开,则需要采集室内的声音,因此本发明的声音采集模块1包括两个麦克风11、12。如图2所示,两个麦克风11、12可以分别安装在窗户3的两面,窗户外的麦克风11超向窗外,用于采集窗外的声音,窗户内的麦克风12用于采集窗户内的声音。
声控装置2包括声音方向判断模块21、声音类型判断模块22、控制决策模块23以及用户设置模块24。声控装置2通过声音采集模块1采集到的声音信号,经过处理和分析,得出对目前环境声响的判断结果。然后根据用户的设置,自动决策窗户的打开还是关闭。
声控装置2的声音方向判断模块21判断声音的方向。声音方向的判断是基于两个麦克风11、12采集的能量大小来判断,窗外声音大时,室外麦克风11采集到的声音能量大,室内麦克风12采集到的声音能量小;反之,窗外声音小时,室内麦克风12采集到的声音能量大,室外麦克风11采集到的声音能量小。
假设室外麦克风11采集的信号为X1[i]
室内麦克风12采集到的信号为X2[i],则首先分别求出它们的能量包络。
XE1[i]=Envelop_old1*alfa+X1[i]*X1[i]*(1-alfa),i=0---L-1
同样
XE2[i]=Envelop_old2*alfa+X2[i]*X2[i]*(1-alfa),i=0---L-1
其中L为一帧信号的长度。Alfa为平滑因子,本案中取0.95,Envelop_old1为前一信号的能量包络。
然后根据能量包络分别求出它们的平均能量。
如果XEA1>XEA2,则声音来自窗外,此时将X1[i]信号传给声音类型判断模块22;
反之,如果XEA1<=XEA2,声音来自窗内。此时将X2[i]信号传给声音类型判断模块22。
同时将声音方向的判决结果通知控制决策模块23。
获取声音的方向是来自室内还是室外之后可以进一步分析声音的类型。声音类型判断模块22根据采集到的信号,提取它的特征,然后用分类器来判断属于哪种类型。
首先需要先确定采集到的声音的特征。本系统中声音的特征采用MFCC系数16维以及差分系数16维,共组成一个32维的特征矢量:MFCC_0~MFCC_15,Delta_MFCC_0~Delta_MFCC_15。
如图3所示,其显示MFCC系数的计算过程,如图所示,计算MCFF系数包括:
步骤S301:对重叠的帧进行分帧处理
步骤S302:对信号进行预加重处理,通过一个一阶有限激励响应高通滤波器,使信号的频谱变得平坦,不易受到有限字长效应的影响。该滤波器的函数为:
H(z)=1-0.95□z-1
步骤S303:振幅归一化,这里采用的是将一帧信号的绝对值归一化为0~1的方法。
s_norm(n)=s(n)/max_abs
max_abs是一帧信号(长256点)的绝对值的最大值。
步骤S303:加窗,在本发明的一个实施例中使用的是汉宁窗,采用汉宁窗对一帧语音加窗,以减小吉布斯效应的影响。
步骤S304:对加窗后的信号s_norm_win(n)作傅立叶变换(DFT变换),求功率谱|s_norm_win(k)|2
步骤S305:Mel滤波,用一组Mel频标上线性分布的三角窗滤波器(共M个三角窗滤波器),对信号的功率谱滤波,每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来模拟人耳的掩蔽效应。
步骤S306:对Mel滤波后的结果求对数,可以得到近似于同态变换的结果,得到对数带通能量E(d)(d=1~M)。
步骤S307:对对数运算结果作离散余弦变换(Discrete Cosine Transformation,DCT):去除各维信号之间的相关性,将信号映射到低维空间。
这里n=0~15。
步骤S308:谱加权。DCT变换的输出就是MFCC系数了,但一般都会正弦窗对其进行加权,由于倒谱的低阶参数易受说话人特性、信道特性等的影响,而高阶参数系数易受噪声的影响分辨能力比较低,所以需要进行谱加权,抑制其低阶和高阶参数,以提高识别的准确性。
MFCC_w(n)=MFCC(n)*sin_win(n)
其中,
sin_win(n)=1+N/2*sin(π*n/N)
其中n=0~N,本系统中N取值15。
差分倒谱系数采用一阶回归方法计算
MFCC(l,n)表示第l帧信号的第n阶MFCC系数,其中n为自然数。这种方法计算得到的差分倒谱比起直接对倒谱系数作减法得到的差分倒谱更平滑一些。这样我们就得到了32维的特征参数。
在获得声音信号的倒谱系数MFCC系数参数(即获得声音信号的特征)之后,需要确定声音的分类,即具有该MFCC参数的声音是哪一类声音。要想分辩采集的声音是哪一类声音,首先需要预先设定声音有哪些类别,本控制系统的主要声音包括:火车声,飞机声,汽车声,成铁声,人声,风声,打雷声,下雨声,脚步声等。这样首先形成一个声音分类器。
声音分类器确定声音的类别的方法是,使用混合高斯模型GMM算法,采用大量训练的方式预先确定各个声音的类别参数。当需要确定采集到的声音的类别时,根据前面的声音的特征参数使用训练好的分类器进行分类即可确定声音的类别。
以下结合图4的高斯混合模型示意图简单介绍一下混合高斯模型。
高斯混合模型的参数可表示为:
λ={pj,uj,∑j},j=1...M (1)
其中M指混合模型中有M个成员。
其中:
μ
j为均值,∑
i为协方差矩阵。定义d维的基本密度函数为:
bj(x),j=1,...,M
整个高斯混合模型的概率密度函数为:
其中公式(3)即为计算一个具有x特征的声音相对于不同声音类别参数λ的概率。例如火车声,飞机声,汽车声,成铁声等的声音类别参数分别为λ1、λ2、λ3、λ4等,一个具有x特征的声音通过公式(3)计算出的概率分别为P1、P2、P3、P4,如果是参数为λ1的概率最大,则表示这个具有特征x的声音为火车声。
下面讲述利用大量的声音训练每类声音对应的模型参数λ的方法。
本发明在训练各类声音的模型参数时使用的是最大似然估计法MLE,迭代方法如下:
(1)计算后验概率:
βj(x)=p(j|x),j=1…M
(2)计算新的均值:
(3)计算新的方差:
(4)计算新的混合系数
(5)如果新的参数与旧的参数基本不变化,即
||λ-λnew||<ε
则停止并保存这组参数,否则转回(2)继续迭代。
训练完成后,保存各个类的参数λi。即可以得到各个类别声音的模型参数λ。
根据前面所述,从信号中提取出该帧信号的MFCC系数MFCC_0~MFCC_15,Delta_MFCC_0~Delta_MFCC_15,对应GMM算法中的特征变量x。将其代入前述公式(3)中,即可分别计算出各个类情况下出现该x的概率。取概率最大的判定为该帧信号所属的类别。就可以确定所采集的声音是什么类别的声音。
控制决策模块23根据声音方向和声音类型,同时根据用户的设置情况,来综合决策此时的窗户应该处于什么状态,是打开,还是关闭。具体情况要根据用户设置模块24制定的规则执行。
用户设置模块24,给用户提供一个可以自己设置防范声音类别的接口。该模块可以控制声音方向判断模块21,声音类型判断模块22以及控制决策模块23。
首先,用户设置是否启动声控系统,如果否,则关闭所有模块;如果是,则进一步设置声音方向防范策略。
声音方向防范策略有三种选择:(1)只防范窗外的声音、(2)只防范窗内的声音、(3)全部防范。
如果设置为(1),则当声音方向判断模块21判定声音来自窗外时,才启动声音类型判断模块22;如果判断为来自窗内,则不执行声音类型判断模块22,直接通知控制决策模块23执行开窗操作。
如果设置为(2),则当声音方向判断模块21判定声音来自窗内时,才启动声音类型判断模块22;如果判断为来自窗外,则不执行声音类型判断模块22,直接通知控制决策模块23执行开窗操作。
如果设置为(3),则不执行声音方向判断模块21,直接执行声音类型22判断模块。
接着进一步设置声音类型防范策略。用户在防范类型列表中加入所有需要防范的声音类型。这样,如果声音类型判断模块22判定结果在防范类型列表中,则通知控制策略模块23执行关窗操作;否则执行开窗操作。
通过这个模块,用户就可以自己定制需要的声控窗模式。
比如,晚上睡觉时,怕被火车或者成铁声吵醒,但是夏天关着窗户睡觉又太热;可以先开着窗户睡觉,同时启动声控装置,将防范声音类型列表中设置为火车和成铁项。特别的,如果用户睡觉容易打呼噜,打呼噜的声音可能会触发声控装置,则可在声音方向防范策略中选择(1),只防范窗外声音。这样在睡觉的时候如果有火车声或者城铁声,则自动关闭窗户,避免被吵醒。
又如,出门时不想关窗,但是又怕刮风下雨。则可以启动声控装置,将防范声音类型列表中设置为打雷,下雨,刮风项。这样当出现打雷、下雨、刮风的情况,窗户可以自动关闭,这样就可以放心出门了。
上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。