王崇, 周渊平, 王维果
(四川大学 电子信息学院,四川 成都 610000)
语音时延估计是麦克风阵列的关键技术,通过时延估计的实现可以对麦克风阵列的多路信号进行处理,从而实现语音的增强、去噪、声源定位等。时延估计的算法在理论上已经非常成熟,针对语音信号的特殊性,对各种算法做了仿真比较,选取了算法复杂度低且能够很好的发挥DSP芯片数字滤波、相关及快速傅里叶变换等优势的基本互相关时延估计,并根据语音信号的特殊性提出了更加有效的计算到达两个麦克风语音的时延值方法。随着 DSP芯片的优异性能和快速发展,已经使其广泛的应用到军事、通信、医疗、家用电器等诸多方面,而且随着 DSP芯片的性价比日益提高,其应用潜力将更加巨大。为此,提出并实现了基于 DSP的语音时延估计方法。
时延估计方法的基本原理参考文献[1]对于一个带宽为B的语音信号 s(t),可以定义 N麦克风进行接收,其中第 k支麦克风接收到的语音信号为:
式(1)中ak为第k支麦克风接收的信号的衰减因子,tk为麦克风接收信号相对于语音信号源s(t)的时间延时,nk(t)表示第k支麦克风语音信号所带的噪声信号。
假设麦克风接收到的语音信号功率远远大于噪声功率时,则任意两麦克风 k和m之间的互相关函数为:
由所给假设条件可知 s(t)、nk(t)、nm(t)互不相关,可从公式(2)推得:
由直接互相关的理论知道,当τ=tm-tk时,Rkm有最大值,所以任意两个麦克风 k和 m之间的时间延时就是 Rkm(τ)最大值时 τ的值。当对语音信号进行数字化处理时,则可得任意两麦克风 k和m之间的互相关函数为:
由互相关函数与互功率谱的关系可得:
公式(5)中的 Gkm(ω)是第 k和 m支麦克风接收到的语音信号互功率谱。
由公式(5)可知,在求时延估计时可先在频域计算,然后再转换到时域求 Rkm。为了适应不同语音信号噪声和混响的影响,可以在公式(5)中 Gkm(ω)前添加不同的加权函数φ(ω),从而实现对 Rkm的锐化。在 MATLAB仿真实验中,采集了一段语音信号 x1,并人为的对其做了 20点的延时得到x2。采用时域直接互相关、基本互相关(φ(ω)=1)、互功率谱相位(φ(ω)=1/|Gx1x2(ω)|)、Roth处理(φ(ω)=1/|Gx1x1(ω)|)和平滑相干变换的方法分别对采集的语音进行延时估计[2],其仿真结果如图 1和图 2所示。
图 1 时延仿真 1
由图 1和图 2仿真结果,可知时域直接互相关方法不能够准确的估计出时延值,估计值与时延值有一定的误差。其它四种时延估计方法估值较准确,但算法复杂度较时域直接互相关方法要高。综合考虑几种时间延时估计方法的效果和算法复杂度,在基于DSP的语音时间延时估计中采用了复杂度较低、时间延时估计比较准确的基本互相关方法来实现。
图2 时延仿真 2
基于 DSP的语音时延估计系统采用 TI公司的TMS320C6416和 TLV 320AIC23来实现两路语音信号的采集和时延估计。其中 TLV320AIC23具有左右两声道的语音采集芯片,TMS320C6416是一个高性能的定点DSP。硬件实现是通过 TMS320C6416的多通道缓冲串口来实现对TLV 320AIC23的控制和数据通信[3]。在硬件设计中,通过对TMS320C6416和TLV 320AIC23外围电路进行简单的设计[4],并通过 TMS320C6416的多路缓冲串口 1(McBSP1)来控制TLV 320AIC23芯片,通过 McBSP2来进行语音信号的数据传输。而两路语音信号的采集是通过 TLV320AIC23芯片的左右声道输入来实现的。其具体的接口电路框图如图 3所示。
图 3 接口框
基于图 3所搭建的两路语音信号采集处理硬件系统,可以利用TI公司的 CCS专业软件来进行编程,从而驱动硬件正常工作,实现语音信号的采集和数据的传送。在底层驱动设计的过程中,首先对 TMS320C6416的多路缓冲串口、中断和EMIF进行初始化设置[5],然后通过 McBSP1来实现对TLV 320AIC23初始化配置。具体的底层驱动如图 4所示。
图 4 底层驱动流程
在实际应用中,语音信号存在很多干扰和不确定因素,用相关方法很难准确的计算出语音信号的时延。由语音信号的慢速性和语音源移动慢的特点,两路语音信号的时间延时在一定的时间范围内不会发生变化。所以实际语音信号到达麦克风的时间延时的求值可以采用在一定的时间段内多次求时延值,然后取众数的方法来计算一段时间内的延时。在理想情况下,两路语音信号的时间延时可以用基本互相关方法来准确求得[6],其具体程序流程如图 5所示。在现实的语音环境中,用基本互相关方法不能一次准确的估计一段时间内的延时,采用多次求时延再取众数的方法可估计一段时间内的语音延时,其具体的程序流程如图 6所示。
图 5 基本互相关流程
图 6 求众数流程
通过基于 DSP的语音时延估计软硬件的实现,可以对实验条件进行设置,从而验证估计延时与实际延时的误差。在实验中,可以固定声源到两个麦克风的距离,从而确定声源到达两个麦克风之间的实际延时。在实验中采用固定声源到达两麦克风的距离差为 7.7 cm,由声速为 340 m/s可得时间延时为 0.000 227 s。由 TLV 320AIC23初始化可知两路语音信号的采样率为 44.1 kHz,则两麦克风实际延时的采样点数应为10点。在以上实验条件情况下,基本互相关时延估计的其中一次仿真如图 7,多次求时延值取众数的方法估计一段时间内时延值的寄存器如图 8所示。从图 8可知一段时间内的时延值t有一定的变化,但时延值的众数m=10是准确的,所以可知所提出的估计一段时间内时延值的方法是有效的。
图 7 互相关时延估计仿真
图 8 时延值寄存器
由结果分析可知,根据语音信号的特殊性提出的估计一段时间内时间延时的方法很好的解决了复杂环境下比较准确的估计一段时间内时延值的难题,而基于DSP的语音时延估计设计也扩大了其在实际应用中的范围。基于 DSP的语音时延估计实现的探索,对多种场合的实际应用有一定的参考价值。
[1]王永德,王军.随机信号分析基础[M].北京:电子工业出版社,2003:34-106.
[2]唐小明,吴昊.刘志坤.基于广义互相关算法的时延估计研究[J].语音技术,2009,33(08):71-74.
[3]苑毅,黄珍.基于 DSP的语音信号的采集压缩与数据传输[J].通信技术,2008,41(10):122-123.
[4]柴晓东,袁晓.基于 DSP的多路数据采集系统的设计[J].通信技术,2009,42(07):172-174.
[5]Texas Instruments Incorporated.TMS320C6000系列 DSP的 CPU与外设[M].北京:清华大学出版社,2007:27-473.
[6]铁勇,刘洋.相关时延估计方法的 DSP实现研究[J].内蒙古大学学报,2007,33(06):689-692.