一种基于麦克风阵列的近场声源实时定位系统的制作方法

文档序号:15461239发布日期:2018-09-18 18:12阅读:261来源:国知局

本发明属于声源定位技术领域,具体涉及一种基于麦克风阵列的近场声源实时定位系统。



背景技术:

麦克风作为声音信号尤其是语音信号采集的一种常用声电换能器,在多媒体会议、教学、通信、机械设备振动与噪声检测、军事指挥侦察等领域有着广泛应用[39]。目前市场上音频采集相关产品,以单个麦克风作为音频信号采集单元的产品为主,一些高端产品采用了各种形式的麦克风阵列作为音频信号采集、处理的传感器。在传统会议中,通常使用单个麦克风采集说话人的声音信息,会后通过人工的方式对会议录音内容进行整理、校对,然而这已经远远不能满足现代会议的要求,会议室的智能化建设成为一个新趋势。一个智能化的会议室,通常包括以下几个方面:①实现会议室内包括灯光、会议升降机、大屏开关、会议摄像头、空调等所有设备集中管理的设备控制模块;②实现会议主机、参会人员计算机、平板电脑、手机等智能设备的画面自由投屏显示的信号投屏模块;③实现会议摄像头、麦克风、音响设备自动采集录制、自动切换、自动存储的音视频系统。其中,音视频系统是智能会议室的核心,而对说话人的声源定位,又是音视频系统实现自动化的关键所在。根据与会者座位排列的先验信息,可以不同时刻不同说话人的位置区分不同说话人,为会后人工整理会议记录或者智能会议室控制中心区分不同说话人提供了更多信息。

出于消除混响、噪声等干扰,获得声音信号的相位信息以便更准确地判断声源位置的目的,目前国内外学者、研究人员对具有一定几何形状的麦克风做了广泛而深入的研究。阵列中的每个麦克风为一个“阵元”,利用多个“阵元”采集的信息冗余获得更多关于声源的信息。麦克风阵列应用的技术领域主要有声源远场波达方向估计与近场定位、说话人识别、语音增强、语义理解等。声源定位和声纹识别是判断说话人位置、区分不同说话人的关键技术,一种在会议室中判断说话人说话时间、说话位置以区分不同说话人的软硬件系统成为一项迫切需求。



技术实现要素:

本发明的目的在于提供可以在麦克风近场范围内实时对说话人进行定位和并存储说话人定位结果,向智能会议室系统提供说话人在二维平面区域内更准确的位置坐标的一种基于麦克风阵列的近场声源实时定位系统。

本发明的目的通过如下技术方案来实现:

第一方面,本发明提供了一种基于麦克风阵列的近场声源实时定位系统,所述系统的总体结构包括:

一个用于采集说话人声音信息的按均匀直线阵排列的驻极体麦克风阵列,将麦克风阵列按照均匀直线阵排列一方面可以在阵元数量一定的情况下尽可能增大阵列整体尺寸,提高系统的近场范围,另一方面可以方面与实际应用场景中的桌子等设施结合,方便安装与使用。

紧随其后的是各驻极体麦克风的放大电路,放大电路采用具有自动增益控制功能的集成度极高的麦克风专用放大器(例如MAX9814L)对驻极体麦克风输出的小信号放大,在设计电路时,需要设置放大器自动增益控制模块的作用时间t_attack和释放时间t_release,以达到既无“削峰”现象又无“抽吸”现象。采用集成度高的麦克风专用放大器还可以减少系统电路的节点,提高系统的稳定性。

前述各驻极体麦克风放大电路的输出信号由麦克风阵列信号采集与处理模块采集,麦克风阵列信号采集与处理模块采用具有片上模数转换器的DSP芯片作为核心,采样精度不小于10位,即可区分出麦克风阵列不同阵元接收到的说话人语音信号的相位差和幅度差。出于减少系统电路节点数量和降低成本的考虑,在麦克风阵列与信号采集模块之间不需要加入采样保持电路,通过提高模数转换器的采样频率,使相邻阵元的采样间隔时间不高于1.6μs,即可忽略非同步采样带来的误差

利用DSP芯片中的直接存储器访问(DMA)功能,在提高系统运行效率的同时,可以方便的实现对麦克风阵列信号进行分帧。在每帧麦克风阵列信号采集并传输完成后,自动进入DMA中断,在DMA中断中实现说话人在二维平面区域中的定位。获得定位结果后,实时地将定位结果存入FAT32文件系统格式的SD卡中。

第二方面,本发明提供一种对应上述系统的近场声源实时定位方法,所述方法的流程包括:

均匀直线阵麦克风阵列采集在系统近场范围内说话的说话人语音时域信号,并将采集的信号存入矩阵X(t)中,矩阵X(t)可以容纳10ms~40ms的麦克风阵列信号;

当矩阵X(t)整体完成一次更新后,对矩阵中的每一行,即每个阵元接收的一帧信号做快速傅里叶变换得到麦克风阵列时域信号的频谱矩阵X(ω,t)。

将频谱矩阵X(ω,t)截断,获得中心频率为300Hz和1000Hz,频带宽度均为100Hz的两个子频带,或者根据声纹库中说话人的语音特点选择其他2~3个子频带;

分别求上述子频带的相关矩阵R(ω_k),具体公式如下式所示:

R(ω_k)=E{X(ω_k)X^H(ω_k)}

将R(ω_k)特征分解,并根据小特征值的分布将对应的特征向量组成噪声子空间U_N,并根据下式获得该子频带对应的MUSIC谱。

P_MUSIC(ω_k,x,y)=1/‖a(ω_k,x,y)U_N‖^2

将各子频带的MUSIC谱相加,并在二维平面区域内进行谱峰搜索,谱峰对应的坐标即为说话人在二维平面区域中的位置。

该方法在每次声源定位运算中,只需要进行一次谱峰搜索,而且在求频谱矩阵X(ω,t)的相关矩阵时,由于对频谱矩阵X(ω,t)进行了截断,减少了运算量。

第三方面,根据上述基于麦克风阵列的近场声源实时定位系统,本发明提供了一种提高系统实时性的声源定位结果文件建立与写入的方法,所述方法包括:

本发明对传统的文件创建和写入流程做了优化。优化前通常的文件创建及写入方法如图4所示。优化后的流程图如图5图所示。系统初始化时,在文件目录区写入文件基本信息的同时,在FAT表中创建一个含有约60个簇的簇链,具体数量可根据实际需要调整。对应的文件数据区可以存储240KB的数据,系统工作一次产生的数据量一般不会大于这个大小,即可不必在声源定位过程中再次搜索空簇和修改FAT表。这个方法我们可以称之为“预建簇链法”。这个在初始化过程中建立的簇链本文称之为“初始簇链”。

通过“预建簇链法”在FAT表中建立的“初始簇链”依然存储在SD卡中,通过SD卡读取文件数据区中簇与簇之间的链式关系依然需要耗费较多时间,这受制于SD卡的读写速度。为了进一步提高系统运行效率,在系统初始化时,将“初始簇链”备份在外扩SRAM中,SRAM的读写速度要远大于SD卡通过这种方法,可以进一步提高系统运行速度,减少不必要的时间开销。

本发明的有益效果在于:

本发明提供了一种基于麦克风阵列的近场声源定位系统。与传统的声源定位系统和方法相比,本发明尽可能使用集成度很高的芯片以减少系统硬件电路的节点数,提高了系统的稳定性。本发明通过均匀直线麦克风阵列在阵元数量一定的情况下尽可能加大了阵列的整体尺寸,并利用均匀直线麦克风阵列通过本发明提供的方法在与阵列平行方向上声源定位精度较高的特点,使这种阵列在会议室环境中可以良好地应用。通过对现有的近场二维宽带MUSIC声源定位算法进一步优化,减少了计算量,提高了系统的实时性。通过FAT32文件系统格式的SD卡存储声源定位结果文件,提高了系统的兼容性和广泛性。并通过“预建簇链法”对现有的嵌入式系统文件创建与写入方法进行优化,进一步提高了系统的实时性。

附图说明

图1为本发明的总体结构框图;

图2为单个驻极体麦克风及其放大电路的原理图;

图3为DSP芯片采集的麦克风阵列信号数据传送流程图;

图4为优化前声源定位文件创建与存储流程图;

图5为优化后声源定位文件创建与存储流程图;

图6为ADC模块外部电路原理图;

图7为TMS320F28335ADC模块级联方式工作流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明:

一种基于麦克风阵列的近场声源实时定位系统,通过一个排成均匀直线阵的驻极体麦克风阵列采集说话人的声音信号,每个驻极体麦克风输出的电信号分别通过包含自动增益控制模块的麦克风专用放大器放大,放大器输出信号由一个包含片上模数转换器的DSP芯片采集,模数转换后的数字量通过DSP芯片中的直接存储器访问(DMA)功能传送到外扩SRAM中,并在DMA中断中实现优化的近场二维宽带MUSIC声源定位算法,声源定位结果以用户特定的文件格式存储在FAT32文件系统格式的SD卡中。

用于采集说话人语音的麦克风阵列为均匀直线阵,阵元数量不少于4个,相邻阵元间距不大于5厘米(约为探测的语音信号最小波长的一半),阵元数量及阵列整体尺寸根据实际工程应用需要,在满足近场条件r≤(2L^2)/λ的情况下确定,其中L表示阵列尺寸,r表示系统探测距离,λ表示探测信号的波长。

放大电路采用包含自动增益模块的麦克风专用放大器(例如MAX9814L)放大每个驻极体麦克风的输出信号,采用集成度极高的麦克风专用放大器可以减少系统节点,提高系统稳定性。自动增益模块的作用时间t_attack和释放时间t_release要严格控制,其中t_attack的取值范围在0.8ms~1.4ms之间,t_release为t_attack的400~600倍,这种情况下,放大后的麦克风阵列信号不会出现“削峰”现象,声音听起来也不会出现忽大忽小的“抽吸”现象。

信号采集与处理模块采用包含模数转换功能的DSP芯片为核心,片上模数转换器的采样精度不低于10位,片上模数转换器可以减少系统电路节点,提高系统稳定性。模数转换器采集的麦克风阵列信号通过直接存储器访问(DMA)功能传送到外扩SRAM中存储,根据语音信号的短时平稳性,需要对麦克风阵列信号做“分帧”处理,每帧麦克风阵列信号为10ms~40ms,声源定位运算在每帧麦克风阵列信号采集完成后在DMA中断中进行。

麦克风阵列及其放大电路与信号采集与处理模块之间不需要加入采样保持电路,通过设置较高的采样频率,使相邻阵元的采样间隔时间不大于1.6μs即可区分相邻阵元采集的说话人语音信号的相位差和幅度差,达到减少系统节点、提高系统稳定性,并降低系统制作成本的目的。

声源定位算法采用优化的近场二维宽带MUSIC算法。将采集的麦克风阵列信号通过快速傅里叶变换求出麦克风阵列信号的频谱,并根据说话人语音信号的特点,对阵列信号的频谱进行“截断”,选取中心频率为300Hz和1000Hz,频带宽度为100Hz的两个子频带代替经典MUSIC算法中使用的时域阵列信号,分别求出MUSIC谱并相加,通过谱峰搜索确定说话人在二位区域中的位置坐标。

如果本发明提供的系统工作场合说话人较为固定,可以建立说话人的声纹库,通过对声纹库中各说话人声纹分布特点进行比对,选择2~3个子频带,所述子频带的中心频率应为声纹库中所有说话人语音频谱中共同的、能量较高的频率值。

两个中心频率为300Hz和1000Hz频带宽度为100Hz的子频带的选取是根据观测大量的语谱图实现的,为了进一步提高说话人位置估计的准确性,在说话人相对固定的场合,可预先采集说话人的声纹信息,建立说话人声纹库,选取要探测的所有说话人共同的、能量较高的2~3个子频带来替换权利要求5中选取的两个子频带,可得到更精确的说话人位置估计结果。

声源定位结果以文件的格式存储到FAT32文件系统格式的SD卡中,以最大限度地拓展系统的兼容性。SD卡工作在SPI模式下,不需要DSP芯片具有硬件MMC接口或软件驱动,也不需要系统电路上额外增加专门的MMC芯片,降低了对DSP芯片的要求和系统电路节点数量,提高了系统的成本和复杂度,提高了系统的稳定性。

在SD卡中创建并写入声源定位结果文件时,采用“预建簇链法”在系统初始化时就查找并记录SD卡中可以写入数据的“空簇”,查找的空簇数量不小于系统工作一次所产生的声源定位结果文件的大小,在声源定位算法执行及定位结果文件写入过程中,不需要重新搜索簇链,有效提高系统工作的连续性与实时性。

具体实施例一:

麦克风阵列及其放大电路中,驻极体麦克风采用NMI9745型驻极体麦克风,放大器采用MAX9814L型麦克风专用放大器,按照图3中所示的单个驻极体麦克风及其放大电路的原理图连接。

MAX9814L内部的AGC模块检测到输出电压超过预设阈值时,会根据可选时间系数减小增益,这个时间常数被称为“Attack Time”。当信号输出幅度降低后,增益会在短时间内保持在减小状态,这个时间被称为“Hold Time”。随后缓慢增加到正常值,这个时间被称为

“Release Time”。减小增益的时间系数tattack可通过下式得到。

tattack=2400×CCT

通过A/R引脚可以调节Attack Time(tattack)与Release Time(trelease)的比值tattack/trelease,A/R引脚状态与tattack/trelease的关系参照MAX9814的官方数据手册。通过实验对比,对于正常说话时的语音信号(麦克风处的声强约为60dB),tattack太短时听起来会出现“抽吸”现象,tattack太长则会出现较明显的“削峰”现象,本文中CCT=470nf,此时tattack=1.1ms,trelease=550ms。AGC阈值通过TH引脚设置,TH引脚的电压为输出信号的均值,通常选为比电源电压稍低的数值,这里选择通过电阻串联分压的方式,分压电阻参数选择及麦克风放大模块的电路图如图3所示。并将每个驻极体麦克风按照相邻阵元间距不大于5cm的均匀直线阵排列。

DSP芯片选择TI公司生产的TMS320F28335型DSP芯片。F28335具有A、B两组ADC模块,每组ADC模块含有8个模拟信号输入通道,如图6所示为F28335的ADC部分电路原理图。MIC8~MIC15分别连接麦克风放大电路的输出接口。ADCREFP和ADCREFM分别是ADC模块内部基准正输出和中输出,为防止意外抖动,这两个引脚需要分别通过一个容值2.2uf低等效电阻(ESR)的陶瓷电容与模拟地连接。ADCLO引脚为ADC模块的低基准,直接与模拟地连接。ADCRESEXT外部偏置电阻引脚,通过一个精度为1%阻值为24.9kΩ的电阻与模拟地连接。

F28335片上ADC的核心是一个12位模数转换模块,16个模拟输入通道通过两个采样保持器SH-A、SH-B在系统控制模块的控制下分时复用这个ADC模块,转换结果按照排序器设定的顺序存储在结果寄存器ADCRESULT0~ADCRESULT15中。排序器SEQ1、SEQ2有两种操作方式,即级联操作和双排序器操作。级联操作是将SEQ1和SEQ2组合成一个排序器,只响应一个SOC触发源;双排序器操作中,SEQ1和SEQ2分别响应一个SOC触发源,分别负责ADCINAx通道和ADCINBx通道转换结果的排序。

级联操作和双排序器操作最大的区别在于响应SOC触发源的数量不同,本文设计的系统只EPWMA一个SOC触发源,采用级联模式。在级联操作方式中,两个排序器SEQ1和SEQ2构成一个16状态排序器SEQ。SEQ控制ADC模块将转换结果按照预先设定的顺序存储到结果寄存器中,并在各通道全部完成一次转换后产生一次ADC转换完成中断。TMS320F28335的ADC模块在级联方式下的工作流程图如图7所示。

根据发明内容中第二方面所述的近场二维宽带MUSIC声源定位算法,将两个能量较高的子频带的MUSIC谱相加得到优化后的MUSIC谱,通过谱峰搜索得到说话人在二维平面区域中的位置坐标。

将SD卡与TMS320F28335型DSP芯片按照SPI模式连接,并按照图5所示的写入文件的流程将声源定位结果按照文件格式要求写入SD卡的数据区,当一个簇写满之后,根据SRAM中的“初始簇链”跳转到下一个簇继续写入数据。

直至用户结束系统的本次工作。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1