基于LabVIEW的双麦克风实时声源定位系统
来源:用户上传
作者:
摘要:声源定位技术是利用声学与电子装置接收声波并确定声源位置的一种技术。实时声源定位系统使用两个麦克风实时采集声音,借助LabVIEW平台,用CPSP算法估计声源的方位角,并通过DAQ控制安装有摄像头的步进电机,捕捉说话人的影像。该系统在噪音和混响都较小的普通教室里进行了测试,实验结果表明系统实时性和重复性较好,运行可靠、稳定,声源方位角估计误差小与1度。
关键词:LabVIEW;声源定位;时延估计;CPSP;虚拟仪器
中图分类号:TP912.3 文献标识码:A
文章编号:1009-3044(2020)02-0252-03
Abstract: Sound source localization technology is a technique that uses acoustic and electronic devices to receive sound waves and determine the position of the sound source. Using two microphones to collect sound in real time. With the LabVIEW platform, the CPSP algorithm is used to estimate the azimuth of the sound source, and the stepper motor with a camera is controlled by DAQ to capture the image of the speaker. The system has been tested in ordinary classrooms with low noise and small reverberation. The experimental results show that the real-time system is reliable and stable, and the error of estimated sound source azimuth is smaller than 1 degree.
Key words: LabVIEW; sound source localization; delay estimation; CPSP; virtual instrument
1 概述
聲源定位是利用麦克风阵列同步采集的多通道声音信号确定声源方位角,可以广泛应用于智能机器人、安防监控、可视电话、视频会议等领域[1,2]。声源定位算法很多,其中估计声达时间差(Time Difference of Arrival, TDOA)的广义互相关算法(Generalized Cross-correlation, GCC)比较简单、易于实现[3]。GCC算法通过引入加权函数优化时延估计的性能,CPSP(Cross Power Spectral Phase)算法是GCC算法的一种,具有一定的抗噪声和混响能力[4-6]。本文设计的声源定位系统利用两个麦克风采集声源信号,用CPSP算法估计声源方位角,转动步进电机,实时拍摄说话人影像。
2 基本原理
2.1 声源定位模型
假设声源与麦克风阵列之间有一定距离,声波的传播过程可近似处理为平面波,远场双麦克风声源定位模型如图1所示:
3 系统方案及硬件设计
本文设计的双麦克风实时声源定位系统由麦克风及前置放大器、PC机、DAQ(Data Acquisition)、步进电机、校零装置和摄像头组成,如图2所示。两路麦克风信号经话筒前置放大后输入到PC机Line In输入端,用声卡进行AD转换,接收双通道麦克风信号。PC机运行LabVIEW程序,根据CPSP算法得到声源方位角,并控制步进电机旋转摄像头捕捉说话人显示到PC机上。CPSP估计误差使电机旋转角度偏离正确值,当系统连续运行时这种误差会累积。为了消除累积误差,在系统初始化、步进电机通过零度方向或在一侧连续运行若干次之后进行校零。
考虑到声源距麦克风比较远,麦克风采用灵敏度比较高的CM536电容式话筒,麦克风前置放大器选用RME OuadMic II。PC机与外部装置的通信通过DAQ实现,DAQ选用亚为公司YAV USB 4AD Plus,DAQ的数字量输出端分别连接至TB6560步进电机驱动器的脉冲信号CLK端和方向控制信号CW端。LabVIEW控制DAQ发送若干脉冲至TB6560的CLK端,并提供方向控制信号,使步进电机转动给定角度。步进电机选用步距角为1.8度的42步进电机。校零装置用U型光电开关实现。在步进电机转轴上固定一个带有圆形小孔的转盘,摄像头朝小孔方向安置,将圆形小孔方向设为零度。U型光电开关安装在机座上,电机旋转至小孔时U型光电开关的受光三极管饱和,受光三极管集电极连接至DAQ的数字量输入端口,LabVIEW检测出零度方向。
4 软件设计
4.1 主程序流程图
双麦克风声源定位主程序流程图如图3所示。首先对声卡、摄像头进行初始化,启动校零子程序对准零度方位角。对麦克风信号进行VAD(Voice Activity Detection)检测,输入的信号能量大于门槛值则判断为有信号输入,门槛值通过实验来设定。当有麦克风信号输入时,运行CPSP算法子程序估计声达时间差[D],并计算出声源方位角和步进电机需转动的步数,生成方波脉冲经DAQ发送至步进电机驱动器的CLK端。当方位角为正时通过DAQ提供低电平至步进电机驱动板的方向控制引脚CW端,反之提供高电平。步进电机转动经过零度方向或在一侧连续运行若干次之后启动校零程序消除累积误差。 4.2 前面板设计
人机界面如图4所示,左侧为参数设定和CPSP计算结果,中间顯示摄像头拍摄的图像,用NI(National Instruments) IMAQ(Image Acquisition)工具箱获取,右侧显示双通道麦克风时域信号和CPSP波形,波形最大值对应的自变量即为声达时间差[D] (单位:采样点数)。
当有麦克风信号输入时摄像头画面右上角VAD指示灯亮,LabVIEW运行CPSP算法进行声源定位。
4.3 CPSP算法子程序
CPSP算法子程序如图5所示,对输入的麦克风信号先进行FFT运算,计算互功率谱,如式(5);计算CPSP加权函数,如式(6),当加权函数分母中有0时强制将其设为1防止加权函数趋于无穷大;互功率谱乘以加权函数之后进行傅里叶反变换,得[R(τ)],如式(4);将[R(τ)]数据分成两部分将左右调换并限定峰值检测范围,输出波峰值和索引号,该索引号就是声达时间差[D](单位:采样点数)。
5 实验结果分析
本文设计的实时声源定位系统设定采样频率为[44.1kHz],两个麦克风间距为[0.3m],帧长[0.5s],在长[7m]、宽[9m]、高[3.4m]的教室进行了测试。教室内噪音和回音都比较小,说话人离定位系统[2.5m]远,测试的方位角为+15度、+30度、+40度和+75度。
测得的实验数据如表1所示,声源的方位角用量角器测量;声达时间差是CPSP算法计算结果,单位是采样点数(sample);CPSP估计的方位角由式(1)计算得出。进行多次重复实验,系统声达时间差的估计比较稳定,在一个位置说话时没有跳变的现象。
6 结论
基于LabVIEW平台设计并调试了声源定位系统,使用两个麦克风对声音信号进行实时采集并利用CPSP算法进行声源定位,通过步进电机将摄像头旋转至声源方位并进行显示。该系统在噪声和混响比较小的普通教室里进行了测试,实验结果表明系统稳定、可靠,重复性好,方位角估计误差小于[±1]度,摄像头能够实时捕捉说话人。
参考文献:
[1] 程方晓,刘璐,姚清华,韩笑,宋曦.基于改进时延估计的声源定位算法[J].吉林大学学报:理学版,2018,56(3):681-687.
[2] 李德宝,归达举,叶懋.基于TDOA麦克风阵列声源定位技术[J].科技资讯,2016,14(13):3-4.
[3] C. Knapp, G. Carter. The generalized correlation method for estimation of time delay[J]. in IEEE Transactions on Acoustics, Speech, and Signal Processing, 1976,24(4):320-327.
[4] 蒋相斌,白宗龙,孙金玮,黄博妍.强混响条件下基于广义互相关的声源定位算法改进[J].计测技术,2018,38(1):43-47.
[5] 杨艺敏,刘涛.改进的GCC算法在声源定位中的研究[J].电子世界,2017(10):180,186.
[6] 李伟,时延估计的声源定位算法研究[J].电脑知识与技术,2018,14(7):220-222.
【通联编辑:梁书】
转载注明来源:https://www.xzbu.com/8/view-15129484.htm