发明内容
根据本发明的一个方面,提供了一种用于汽车的驾驶者声源定位系统,所述系统包括:位于不同位置处的第一语音采集装置和第二语音采集装置,用于采集第一语音信号和第二语音信号;控制系统,用于将所述第一语音信号和第二语音信号分别进行处理以输出驾驶者定位信息,所述控制系统进一步包括:降噪装置,用于对所采集的第一和第二语音信号进行降噪处理;滤波装置,用于对经过降噪处理的第一和第二语音信号进行滤波;语音激活检测装置,用于分别选择滤波后的语音信号中所需的部分,并将选择的结果进行合并;长帧分帧装置,用于对合并后的语音信号各自分别按照时长划分为若干个帧;包络计算装置,分别计算经所述语音激活检测装置选择后的第一和第二语音信号的信号包络和包络能量;以及能量比率计算装置,根据所述包络计算装置和长帧分帧装置的计算结果,计算所述第一和第二语音信号的包络能量比率。
优选地,所述第一语音采集装置位于所述汽车内靠近驾驶员的位置处,所述第二语音采集装置位于偏离驾驶员的位置处。
优选地,所述第一语音信号为所述驾驶员的语音信号,所述第二语音信号为与所述第一语音信号不同的对比信号。
优选地,所述第一语音采集装置和第二语音采集装置是麦克风。
优选地,所述第一语音采集装置和第二语音采集装置设置于所述汽车内前挡风玻璃的内侧,或是在车顶内前侧。
优选地,所述降噪装置采用谱减法降噪算法对所采集的第一和第二语音信号进行降噪处理。
优选地,所述滤波降噪装置为高通滤波器。
优选地,仅使用所述驾驶者的语音部分来计算信号包络能量和能量比率。
优选地,对所述第一和第二语音信号的划分取20~30ms长度为一帧。更优选地,对所述第一和第二语音信号的划分取25ms长度为一帧。
优选地,当所述第一语音采集装置和第二语音采集装置的增益存在差异时,将所述第一和第二语音信号的包络能量比率乘以一个偏移值。
优选地,通过设定用于能量比较的比率阈值来比较判断出声源是否来自驾驶者。
优选地,所述比率阈值根据汽车内空间的大小来设定。更优选地,所述比率阈值在1.3和3.2之间,最优选地,所述比率阈值为2.4。
根据本发明的另一方面,还提供了一种用于汽车的驾驶者声源定位方法,所述方法包括:在不同位置处采集第一语音信号和第二语音信号;将所述第一语音信号和第二语音信号分别进行处理以输出驾驶者定位信息,所述处理进一步包括:对所采集的第一和第二语音信号进行降噪处理;对经过降噪处理的第一和第二语音信号进行滤波;分别选择滤波后的语音信号中所需的部分,并将选择的结果进行合并;对合并后的语音信号各自分别按照时长划分为若干个帧;分别计算经所述语音激活检测装置选择后的第一和第二语音信号的信号包络和包络能量;以及根据所述包络计算和分帧的结果,计算所述第一和第二语音信号的包络能量比率。
根据本发明的用于汽车的驾驶者声源定位系统及方法,可以改善传统的声源定位技术应用到车内驾驶员定位的场合中所遇到的问题。无需配备大量麦克风构成的麦克风阵列来进行精确定位,因此具有相对低廉的成本,同时兼有高度的定位准确性和实时性。
发明概述
根据本发明的车内驾驶员定位系统如图1所示。在图1中,以驾驶员位于右侧作为示范性实施例。本领域技术人员可以理解的是,本发明的方法可以进行镜像对称从而应用于驾驶员位于左侧的场合中。
如图1所示,根据本发明的车内驾驶员定位系统100包括第一语音采集装置101和第二语音采集装置102,以及控制系统103。所述系统100可以设置在车内前侧,位于驾驶员的前方。例如,可以将第一语音采集装置和第二语音采集装置设置在前挡风玻璃的内侧,或是设置在车顶内前侧。由于第一语音采集装置收集的第一语音信号主要用于收集驾驶员的语音信号,所以装置101优选设置在靠近驾驶员的位置处,而第二语音采集装置收集的第二语音信号作为第一语音信号的对比信号,主要用于和第一语音信号对比获得两者能量差,所以装置102优选设置在偏离驾驶员位置的一侧。图1所示为驾驶员在驾驶室内右侧的位置示意图,本领域技术人员可以理解的是,根据本发明的第一语音采集装置和第二语音采集装置可以根据各个国家行车习惯的不同(如左行或者右行)而做相应的调整。所述语音采集装置可以是本领域已知的常用语音采集设备,例如麦克风。
图2示出了根据本发明的驾驶员定位系统中的控制装置103的进一步详细说明。如图2所示,由第一语音采集装置和第二语音采集装置分别采集的第一语音信号和第二语音信号送入到控制装置103中。这两路语音信号分别进入各自的处理装置进行一系列处理。由于汽车噪音会影响定位系统的精度,因此需要减少噪音。在本发明的系统中使用了降噪装置,在对收集的信号首先由噪音抑制器进行预处理。如图2所示,在利用第一语音采集装置200a和第二语音采集装置200b采集车内的声音信息后,将声音信息输入到降噪装置201a和201b进行噪音的降低处理。降噪装置201a和201b和降噪所使用的算法可采用本领域公知的任意硬件设备和/或软件,例如,可采用计算机声卡中自带的简易降噪电路和系统的降噪算法实现的。可采用美国Andrea的Pure Audio USB-SA适配器来采集双声道音频数据,该适配器内自带Andrea采用Pureaudio降噪技术。降噪算法则是用C代码实现文献(可参见I.Cohen,“On speech enhancement under signal presenceuncertainty,”in Acoustics,Speech,and Signal Processing,2001.Proceedings.(ICASSP’01).2001 IEEE International Conference on,vol.1,2001,pp.661–664vol.1.中的谱减法降噪算法。)
为得到更为清晰语音的,本发明中的系统在对声音信息进行降噪后,还使用了滤波装置202a和202b对噪音进行滤波。由于噪音抑制器不可能完全地去除噪音,但是对于在汽车中收集的信号,残留噪音主要分布在低频域,因此优选地使用高通滤波器(HPF)对低频噪音进行过滤。高通滤波器可以滤掉低频域的噪音,这特别是在汽车高速行驶时尤为有效。具体地,以通带为450Hz以上的有限脉冲响应(FIR)高通滤波器为例实现本发明,它能保留大部分语音能量并过滤大部分残留噪音。本领域普通技术人员可以理解的是,本发明还可以采用本领域熟知的其他高通滤波器。
在进行降噪和滤波之后,将声音信号分别输入到语音激活检测(VAD)装置203a和203b以选择语音信号中所需的部分,然后分别将VAD的结果输入到各自的包络计算装置204a和204b中进行计算。同时,将第一和第二语音信号进行语音激活检测后的结果合并,输入到长帧分帧装置205中进行时长划分,得到的结果与包络计算装置204a和204b输出的结果一并输入到能量比率计算装置206中计算第一和第二语音信号的能量比率,从而得到准确的驾驶员定位信息。
本领域普通技术人员可以理解的是,如图2所示的对第一语音信号和第二语音信号进行的处理,可以在物理上分别单独设置处理路径,也可以集成在一起进行处理,还可以单独和共用处理混合进行。例如,由于这里所描述的是数字信号处理系统,因此在输入声音信号进行数字化转换以后,其后续处理可以在同一数字信号处理芯片(DSP)或者中央处理单元(CPU)中进行。因此,在这种情况下,这两路装置在物理上是一起的,而在信号处理流程上是独立的。
下面详细描述各个装置的工作过程。
本发明提出了基于能量比较原理的声源定位方法。根据能量比较定位原理,在汽车内的驾驶员定位任务中,驾驶员的声源可被视作一个点声源,声音在三维空间中以球状发散的方式传播,能量将均匀地分布在球状表面。传播距离越远,球状表面积越大,能接收到的声音能量越少。球体表面积和距离的平方成正比,和接收到的能量成反比。
根据本发明的声源定位方法采用了信号包络来平滑波形,计算长帧能量来稳定能量比,以及减少因时延导致的误差。在能量比较算法中,根据本发明的系统仅使用语音部分来比较能量,因为非语音部分的能量较低,容易受到噪声干扰,导致随机能量比并给出错误定位判断。本发明的系统中采用了本领域已知的语音激活检测(VAD)的算法来在定位前选择语音信号中所需的部分,即明显的能量部分。例如,可采用欧洲通信标准协会(ETIS)已经提出的一种基于能量的用于语音编码方案的VAD算法。具体参见ETSI,“ETSI ES 202 050V1.1.5(Speech Processing,Transmission andQuality Aspects(STQ);Distributed speech recognition;Advanced front-endfeature extraction algorithm;Compression algorithms),”2007-01,pp.14-15。
信号包络的计算
由于语音是时变信号,并且两个语音采集装置采集到的语音至少受到如下因素而会出现差别:A正常的,语音特别是驾驶员的语音到达两个采集装置的时间有差异;B两个采集装置把模拟的声学信号(空气压强)转换为电信号时的传递函数会出现差异,引起附加的相位和幅度差异;C在两个采集装置采集到的背景噪声会有相位和幅度的差异。如果直接计算两信道中的短时能量,并且在计算能量比之后,因素B和C会引起短时能量比的波动,因此会降低精确度。
在实时语音信号处理中,一般取20~30ms长度为一帧,此处优选地,我们取25ms长度为一帧,每次移动窗口为10ms长度。对于每帧频率为Fs的信号x,将有的n=0.025*Fs个数据点,我们用x(1),...x(n)表示。相应地,我们可以计算出一个n个数据点的信号包络,用env(1),...env(n)表示。
由于两路语音信号有不同的传播路径,两路麦克风采集的信号存在幅度差和少数几个点上的时差偏移。采用该包络近似算法,即能忽略时差偏移对结果造成的影响,又能保留原有两路信号的幅度关系。
因此,基于信号包络导出包络能量特征以取代短时能量。考虑到计算包络时只需要信号的音量/能量,我们采用ADSR包络的原理来获取信号的包络,即假设声音到达最大音量时将会衰减,直到下一个更大音量发生时重新给信号赋值。因此,说话的空隙将被衰减信号替代,从而获取平滑的包络。在数据处理中,即提取一个上限xmax和一个下限xmin来避免波动,信号包络env(i)为xmax和xmin之间距离的一半。如果输入数据在两限内,两限均会随时间常数变小。假设信号的采集频率为Fs,即1s时长对应有Fs个信号数据点。衰减计算中,衰减时间常数使用单位秒(s)来计量,但是在信号处理的计算中,我们使用点来计数。因此,我们采用Tt=T/Fs来统一衰减时间常数的这两个计量单位。其中,Tt单位为秒,T单位为数据点。该时间常数将依据不同噪声环境下不同位置说话人的语音信号平滑度来确定,是该实验中的一个经验值。该算法描述如下:
算法1:信号包络计算
这里,记录imaxpre和iminpre以计算衰变时间,分别表示前面一次两限外的数据点的位置,也即“上一次的最大音量”。用当前数据点和上一次最大音量数据点的相差点数,计算出相差的时间,从而得出衰减幅度。时间常数Tt决定包络的平滑程度。过大的Tt使信号变平并引入额外噪音,而过小的Tt不能平滑语音。图3示出了应用本发明的方法对车内声音信号进行采集后降噪并滤波处理后的波形示意图。其中图3a和图3b显示了汽车环境中已预处理的信号,HPF帮助滤掉低频噪音;图3c至3f是具有不同时间常数1s、5s、10s、30s的信号包络。在图3中显示了不同Tt的平滑结果xmax、xmin和2×env。在2.2~2.4×104时间范围,图3c中(Tt=1s)和图3d中(Tt=5s)不能给出充分的平滑结果,而图3f中(Tt=30s)不能很好的表示1.75~1.85×104时间范围的信号。由此可见,10s信号包络最适合的。
在以下计算中,优选选择Tt=10s。
包络能量计算
在计算中,假设噪音减少和经过高通滤波器后的语音是清晰的,且信号包络平方的总和为需要的包络能量。在本发明提出的算法中,能量比率由两信道的长帧上的包络能量导出。
通过大约为20~30ms的帧长lenshort的短时能量,计算出VAD,此处所述帧长称之为“短帧”,以区分之前提及的“长帧”。事实上,实时驾驶者定位是一种基于缓冲区的操作,且长帧不能无限长,而是限制于输入缓冲长度。当VAD判断在短帧i跳至1(活动话音),且在短帧j跳到0(非活动话音)或保持1直到帧移至缓冲结束,得到长帧长度lenlong。得出两信道的包络能量如下:
此处,move代表VAD的帧移。
当语音采集装置处在不同的位置的时候,可以计算出不同的能量比率。假定两部麦克风相同,否则,当语音采集装置的增益存在差异时,能量比率需要乘以一个偏移值。例如,如果两个麦克风在采集某个和这两个麦克风等距离声源能量时,所采集能量到的能量比值为1.5,则该偏移值例如可以为1.5。如果两个麦克风在采集某个和这两个麦克风等距离声源能量时,所采集能量到的能量,则认为两个麦克风相同,则该偏移值为1,即不做补偿。偏移植可以认为是“设备校准”的一个过程。在实际操作中,此偏移量为两个信号采集装置(麦克风)的增益的比值,采用已有的技术即可实现。参考图1,我们可以将驾驶者正前方的麦克风102设定为信道1(M1),将远离驾驶者处的麦克风101设定为信道2(M3)。由于接收到的能量与距离的平房成反比,两信道的能量比率为:
根据麦克风的位置设置可知,司机位置与两个麦克风的位置相差比较大,得到的信道能量比率将明显大于1,而其他位置的信道能量比率只是略大于1或者小于1。因此,我们只需要设定一个用于能量比较的比率阈值Thratio,使之为驾驶者位置和乘客位置能量比率之间的某一个值,便能通过阈值比较判断出声源是不是驾驶者。这些阈值与汽车尺寸有关,可以根据汽车内空间的大小来设定。例如,这些参数可以如下选取:D:两麦克风的X方向距离;W:前车厢两座位中心的X方向距离;Lf:麦克风到前车厢座位中心的Y方向距离;Lb:麦克风到后车厢座位中心的Y方向距离。依据这些参数,我们可以粗略计算出四个座位的参考能量阈值,如表1所示。其中Thd表示司机座位的参考能量阈值,Th1,Th2,Th3表示乘客座位的参考能量阈值,而Thratio应该取司机和乘客参考能量阈值之间的某个值。
表1:汽车驾驶室参数
实验结果
为了确保提出的算法能够在不同噪音环境下工作,选择10个噪音状态进行试验。表2中,我们有1、2、3、4和a、b、c七个汽车子状况。我们将它们组合为10个汽车状态。它们为1a、1b、1c、2a、2b、2c、3b、3c、4b和4c。例如,3b表示汽车以低于80km/h的速度在高速路上行驶,同时窗户和空调关闭。
表2不同的汽车子状况
我们收集30个人,包括14个女性和16个男性,总共7.5小时的语音,每人说220句话。这些话语包括声音命令、位置、歌曲、人以及商店的名称、电话号码和短句。每个话语文件在两个信道中以16kHz、16bit采样。
A.VAD参数
VAD参数选择会影响到结果,该参数可由在不同Thratio下标定的相对运动特性(ROC)予以说明。等错误率(EER)被用于估算VAD参数。由于使用噪音抑制器对数据进行了预处理,结果得出的能量因噪音状况而变化,且我们使用SNR阈值snr代替VAD能量阈值作为VAD参数。
图4是根据不同SNR阈值,snr=1.2和1.5下一个人的语音形成的ROC得出最好的EER=8%,即92%的精确度。显示结果表现较佳,然后随着snr的增加变差,但程度不大。在计算中,我们设定snr=1.5。
B.具有已收集数据的TDOA和波束形状算法
我们将用已收集数据的说明这现有技术的TDOA算法和根据本发明的算法比较的ROC结果。
根据汽车尺寸参数,TDOA算法中,理论样本点差阈值应为-18<ThT<-9,波束形成算法中,到达方向应为37°<θ<61°。改变-30<ThT<30和0°<θ<120°。在图5中示出了这两种算法的ROC。这种效果不好。
C.能量比较算法的ROC
在我们的汽车试验方案中,Thratio大约在1.3和3.2之间,然后我们改变-1.1<ThT<4并得到能量比较算法的ROC(参见图6)。与TDOA和波束形成算法不同,能量比较算法对驾驶者定位有效,且我们提出的算法显示了精确度方面的改善。
在汽车应用中,事先确定一个固定的Thratio来定位驾驶者。经过简单的测量,我们发现不同的汽车具有相似的尺寸参数,使得固定的Thratio可以用于其它车型。我们设定应用中的Thratio=2.4。在我们的试验中,当Thratio=2.4,总错误率降低到0.1414。
本发明的效果
根据本发明的驾驶员定位系统和方法克服了现有技术中以往的定位算法需要大量麦克风构成的阵列、以及TDOA和波束形成算法都无法定位高噪音下的驾驶者位置的缺陷。本发明的系统仅使用两个语音采集装置,可以在真实的汽车噪声环境下,将驾驶者位置的定位精度提升到86%以上。此外,由于这是一种时域上的操作,在实时系统中虽然计算了长帧的能量,但是处理的延时并未增加。此次试验数据是从真实环境中收集而得,包含汽车高速行驶并开启空调一类的恶劣噪声环境。实验结果表明该算法是鲁棒的。
本发明已经通过上述实施例进行了说明,但应当理解的是,上述实施例只是用于举例和说明的目的,而非意在将本发明限制于所描述的实施例范围内。此外本领域技术人员可以理解的是,本发明并不局限于上述实施例,根据本发明的教导还可以做出更多种的变型和修改,这些变型和修改均落在本发明所要求保护的范围以内。本发明的保护范围由附属的权利要求书及其等效范围所界定。