这篇文章重点介绍几种实用的波束形成算法(delaysum,delaysub,一阶差分自适应BF)原理及实现效果,再简单介绍一些知名品牌助听器中的BF方案;
1.易实现的BF算法介绍
1.1 delaysum
延时相加和延时相减是最基本的BF处理方式,他们的原理和实现方式也很简单:一路信号延时后与另一路信号进行相加(delaysum)或相减(delaysub),其处理流程示意图如下(以相减为例):
延时相减流程
对delaysum来说,中低频信号不衰减,高频信号衰减约3dB;其输入和输出对比如下(上声道为一路输入信号,下声道为delaysum的输出信号;左边为目标方向的信号,右边为抑制方向的信号;两个麦克风间距为1cm):
delaysum的输入与输出(时域)
delaysum的输入与输出(频域)
从下面频谱的图中可以看到背景颜色更深,因此delaysum能够消除掉一部分环境底噪(3dB左右),能够实实在在提高信噪比。
理论上的delaysum是无失真的,从下面的3D极性图可以更清晰、全面地看到delaysum的效果:主瓣为0°方向,此时对该方向上的信号增益为0dB不衰减;在特定频率处凹陷较深,即衰减更多;
delaysum的3D极性图
对delaysum的评价:虽然易于实现,操作简单,但是限于麦克风数量和间距的限制,delaysum往往收效甚微;换句话说就是“没什么错误,但也没什么作用”。
那么如何提高delaysum的性能呢?
对于delaysum来说,麦克风数量越多,麦克风之间间距在一定范围内越大,delaysum的效果越好(理论上每增加一个麦克风,delaysum将会增加3dB的受益),因此BF算法的设计和硬件结构设计(阵列阵形、朝向等)密切相关;
delaysum性能麦克风数量和间距如下图所示,越往右麦克风数量越多;越往下麦克风间距越大,紫色表示增益低,黄色表示增益高(最大0dB即不衰减),右下角的指向性效果(方向和抑制深度)越明显:
delaysum性能和麦克风数量与间距的关系
需要注意的是,麦克风间距不能无限增加,要使得阵列信号保持一定相关性的条件下,适当增加间距。
1.2 delaysub
delaysub即将一路信号延时后和另一路相减,其输入和输出对比如下(上声道为一路输入信号,下声道为delaysub的输出信号;左边为目标方向的信号,右边为抑制方向的信号;两个麦克风间距为1cm):
delaysub的输入与输出(时域)
delaysub的输入与输出(频域)
delaysub的效果是无论哪个方向的信号,都在低频(0~1KHz)有较大的衰减,虽然这让BF具有明显的方向性拾音效果,但牺牲了目标方向上语音清晰度和可懂度,尤其是500~1000Hz的语音信号会受到影响;因此可以考虑在delaysub的基础上对低频进行适当补偿,在方向性效果和清晰度之间进行取舍;
参考文末的第一篇论文后,给出一个针对delaysub的低频补偿滤波器:
输出信号补偿前后的频响如下(蓝色为未补偿的频响,红色为补偿后的频响):
delaysub输出信号补偿前后的频响
1.3 双麦自适应差分BF
参考文末的最后一篇论文,给出一种自适应双麦BF算法流程图:
自适应差分BF流程
其主要思想是:两路信号分别进行delaysub,形成两路新的信号
(这两路信号的极性图为下图中的两个心形);再通过方位估计的算法,自适应地调整信号合成比例
这一参数,这样就能自动控制两个完全相反极性的信号在合成中的比例,从而能够自适应调整波束的增强方向。
文章中同时论证了如何更好地选取
:
两个心形极性图的合成
那么不同的合成比例参数
,就会合成得到不同的极性图:
不同β参数合成后得到的极性图
无论是delaysum,delaysub还是自适应BF,都要对信号进行延时,但如何对信号进行时延?在DSP、FPGA等数字系统中如何实现整数时延和分数时延? 参考之后的一篇文章(先占坑):“延时滤波器的实现”。
最后,还要补充一点:对多数BF算来说,对信号的后滤波处理往往是必不可少的,原因在于:
声音的方向性和频率有关,频率越高,方向性越强,辐射角度越小。语音是宽带信号60Hz~8kHz均有语音信息,如下图所示,不同频率信号的辐射角不一样,对波束宽度不随频率改变的波束方法(delaysum),波束后的信号频率成分会发生较大差异,从而影响语音的音质。大多BF主瓣宽度有限,因此,为了使波束在全频带上具有较强的适用性和鲁棒性,通常会对低频带和高频带做额外的处理。
不同频率的声波辐射指向特性示意图
低频是全向性的该如何处理呢,就是与波束指向性有什么关联呢???见下面3.2的部分。
3.助听器及芯片厂商的波束形成方案概览
助听器算法是信号处理中较为小众的领域,其明显的特点之一是算力、体积有限,不仅要求助听器芯片维持极低的时延(15ms内)和功耗,同时还要求算法有不俗的表现:
3.1 Resound
Resound实现自适应波束形成:在目标语音出现时能够使波束变窄,实现自动聚焦和抑制背景噪声;
00:13
Resound较早的方向性算法中采用了分频处理方向性的思路:将输入信号分为高低频带分别进行方向性处理,同时可以实时调整高低频带的界限阈值:
Resound的分频方向性
同时,在上位机上还可以手动调节波束宽度等参数:
手动设置波束增强方向
3.2 Phonak
Phonak的方向性算法方案思路也是类似的:将两路输入信号分别进行分频,得到低频,中频,高频信号;再通过调整时延,实现特定频带的增强或抑制。这样不仅能够在获得方向性增益的同时抑制背景噪声,又能够保留中低频的语音:
Phonak的方向性算法方案
3.3 Oticon
Oticon采用了MVDR的BF方案:利用双麦信号进行分析后,利用估计出的声源方位,动态调整降噪算法的参数:
Oticon的BF方案流程
Oticon既有固定BF,也有自适应的BF方案:
Oticon的固定(左)和自适应BF(右)方案
很多助听器算法是通过定制化硬件来实现的,例如各类硬件加速器(FFT、卷积、LMS、统计器等)和DSP处理器等,这样的软硬件协同处理能够极大地提高数据处理的效率,实现更低的功耗和时延。
针对BF算法的测试方案,可以参考我的下一篇文章“波束形成(三)”,主要分享实际测试过程和开发中遇到的各种各样的坑。
参考资料:
《First order differential microphone arrays for automotive applications》
波束形成(三):测试
目录
收起
1.BF算法极性图的几种测试方案
1.1 方案一:Fonix8000测试仪器+静音箱
1.2 方案二:步进转台+静音房
1.3 方案三:多声源+静音房
2. 开发与测试中遇到的坑
2.1 混响导致BF性能急剧下降
2.2 多麦阵形的影响:
2.3 麦克风器件一致性的影响
2.4 测试时遮挡
3.拓展知识:指向性麦克风
这篇文章介绍BF的测试方案,这部分内容在网上的介绍比较少,作者结合了个人的实践经历和目前已有的测试方案来简单阐述;除此之外,还会介绍一些开发和测试中的坑,能够帮助读者少走一些弯路。
1.BF算法极性图的几种测试方案
几种BF测试方案有一些共同特点:
BF的测试环境都尽可能在静音房/隔音箱的环境中,减少外界噪声的干扰,改善混响情况;
1.1 方案一:Fonix8000测试仪器+静音箱
下图为Fonix 8000测试仪器,专用于助听器等可穿戴音频设备的电声测试:
隔音箱测试极性图整体
以测试一个带BF算法的耳背式(BTE)助听器为例,下图为助听器被固定在一个可旋转的金属杆上:
在下图中,左上方向为静音箱中的扬声器,周期性地播放激励信号;每播放完一段激励信号,金属杆就旋转一定的角度,进而带动助听器旋转,如此一来就可控制输入信号在不同方向:
隔音箱中扬声器发出激励信号
测试过程中,Fonix8000软件会实时绘制极性图,同时显示待测设备在不同频率和方向上的增益等测试指标:
测试结果
1.2 方案二:步进转台+静音房
步进转台的方案大致为:
首先,将待测设备(如TWS耳机、助听器等)固定在转台上,在软件中控制人工嘴播放激励声信号和转台速度;
同时待测设备通过有线/无线的方式将响应传输至软件中,软件实时显示极性图:
转台测试极性图方案
转台测试方案的实际场景,相较于测试方案一,这种方案可以测试体积更大的设备:
转台实物图
一款双麦TWS耳机的BF测试效果如下:
测试结果
1.3 方案三:多声源+静音房
作为方案一、二的补充,以下为Onsemi较早版本的BF测试方案:是方案一和方案三的结合:
和方案一相似之处在于,在隔音箱或静音房中,有一个转动设备上固定着待测设备;
和方案三相似之处在于,在隔音箱的外面有电脑控制转动设备和激励信号,同时记录算法响应:
测试方案三示意图
测试界面如下:
测试软件界面
2. 开发与测试中遇到的坑
2.1 混响导致BF性能急剧下降
刚开始做实验时,这是一个不小的坑:
当你在混响严重的室内测试BF性能时,效果往往比你复现的论文里的效果差很多。(很多文献和资料中提出的BF算法,他们展示的BF极性图大多是理想状态下的效果,如仿真或测试是在消声室内进行的),例如同样一个BF算法,理想极性图是这样的:
理想极性图
如果自己没有消声室,那么同样的BF算法,其表现往往是大打折扣的!可能导致自己反复检查在哪出错,或者哪里理解上有偏差,实际上的极性图可能是这样的:
实测极性图
实际上,产生上面这样差异有很多原因,例如混响导致存在其他声源干扰:
在不同环境则麦克风可能在不同种类的噪声场中:而不同的BF算法在不同的噪声场中性能差异较大,若要具体了解,请移步参考我的另一篇文章:
(占坑)
同时,还可能有测试存在遮挡,声源和麦克风不在同一平面,消声室尺寸和本地噪声,器件一致性问题等等。
2.2 多麦阵形的影响:
对一些小型的设备来说,阵形(麦克风间距,相对位置,角度等)的情况决定了BF算法的有没有效果;
不好的阵形设置甚至可能会产生不好的后果!
例如在下图中,目标声音是从助听器佩戴者的正前方传来,图A中两个麦克风为端射方向(end-fire,双麦延长线为目标声源方向),那么图A中的有效距离就大于图B,
在实际测试中,图A的性能和效果就比图B更好:
双麦的有效距离:A>B
2.3 麦克风器件一致性的影响
产品在实际批量生产的过程中,如果一个产品上多个麦克风器件来料的电声性能(从频响测得)出现较大差异时,BF算法往往不仅无法达到预期效果(例如方位角估计变得不准),严重的还可能导致BF的输出信号失真,从而导致BF算法的性能大幅下降!
下面是一个典型mems硅麦的频响曲线,一般都有误差范围标定:
一款mems硅麦的频响曲线
所以在测试BF算法时,要注意器件性能需尽可能保持一致。
2.4 测试时遮挡
在测试BF算法时,应尽可能避免其他物体对声源的遮挡,否则极性图可能会产生不对称(大部分测试结果是对称的)或局部的“突出”和“凹陷”;
如果在人头模型上测试单耳BF的效果,这个问题则会更为凸显,
因此有时候还需要考虑人头相关传递函数(HRFT)的影响:
人头模型中测试BF
此外,还有很多小问题可能需要被考虑:例如BF往往需要进行补偿后滤波等等;
3.拓展知识:指向性麦克风
既然BF算法的一个应用是定向拾音,那么有没有器件本身就带有指向性拾音的麦克风呢?
答案是:有
下面就介绍几款指向型麦克风(主要是驻极体麦克风、硅麦):
指向性麦克风优点自然是拥有指向性拾音的功能,而无需算法进行处理,但这是一把双刃剑,既是它的优点也是它的缺点!因为这意味着它损失了全部方向的有效信息!
除此之外,指向性麦克风还有其他的劣势:价格更高,体积更大,功耗更大(相较于普通mems全向硅麦)
几款指向性硅麦及其参数分享给一些DIY玩家:
1.UB6027L-2A343-C1033
UB6027L-2A343-C1033
2.ICS-40800
ICS-40800
ICS-40800的极性图
参考链接:
《Acoustic Beamforming for Hearing Aids Using Multi Microphone Array by Designing Graphical User Interface》
1.从耳机调音说起
为什么很多耳机、音响、HiFi发烧友和试音碟常用蔡琴的歌(例如《渡口》)来试音?
开头的鼓声,能反映出低频的下潜表现,例如低频下潜深则更为震撼,有的低频比较浑浊等等。同时这首歌的人声也能表现出设备对声音的解析度情况,例如清澈细节丰富的人声则更好。。。。
归根结底,由于人的听觉神经对不同频率的主观感受不同,于是人们对于“好声音”有一套较为主流的评价标准。
人类可听到频率范围在20Hz~20KHz的各种声音。 人类言语频率包含在200~8KHz范围内。首先把声音频段分为四大段:
LF(低频):20Hz-200Hz,影响音色的混厚度和丰满度。能产生类似低音炮的声音;
MID LF(中低频):200Hz-600Hz,影响主要音色和结实度。力量感;
MID HF(中高频):600Hz-6kHz,影响音色的明亮度、清晰度,大部分语音集中在这一段;
HF(高频):6kHz-16kHz,影响音色的表现力、解析力,例如很多乐器声音集中在这一段。
值得注意的是,对于听力康复行业(如助听器),音质的评价标准和一般人的标准不一样,助听器中正常人觉得好的,听障患者不一定觉得好。 反之,听障患者觉得好听的声音,正常人也可能难以接受!
例如:听障患者往往高频听损严重,那么高频增益的提高会更适合听障患者,但是正常人听了会觉得刺耳;
又例如:适当提高低频增益以包含更多语音信息,是更适合听障患者的,但正常人往往难以忍受低频增益提升带来的噪声和浑浊感。
那么在调音或评价声音时,不同频率的声音有什么特点?又应当怎么调会更好听?下面记录不同频率的声音的特点供参考:
2.不同频率的声音特点
20Hz-60Hz:
这段频率影响音色的空间感,这是因为乐音的基音大多在这段频率以上。这段频率是房间或厅堂的谐振频率。如果这段频率表现的充分,会使人产生一种置身于大厅之中的感受;如果这段频率缺乏,音色会变得空虚;而如果这段频率过强,会产生一种嗡嗡的低频共振的声音,严重地影响了语音的清晰度和可懂度。
60Hz-100Hz:
这段频率影响声音的混厚感,是低音的基音区。如果这段频率很丰满,音色会显得厚实、混厚感强。如果这段频率不足,音色会变得无力;而如果这段频率过强,音色会出现低频共振声,有轰鸣声的感觉。
100-150Hz:
这段频率影响音色的丰满度。如果这段频率成分增强,就会产生一种房间共鸣的空间感、混厚感;如果这段频率成分缺少,音色会变得单薄、苍白;如果这段频率成分过强,音色将会显得浑浊,语音的清晰度变差。20Hz~200Hz这一段会影响音色的混厚度和丰满度,例如低音炮的声音。
低频增强、低音炮:
在低频如果增强了31Hz、63Hz、125Hz 这三个频率,那么重低音的效果就会比较明显:
31Hz:
这个频段需要播放器材有比较好的低频下潜能力,如果没有,当然就不容易听见,这个频段主要影响底鼓的延续音(sustain),就是踩下底鼓之后嗡嗡的声音,增强这个频段可以让音乐浑厚。
63Hz:
这个频段是底鼓所在的主要频段,如果单纯把这个频点增强10dB,最明显的感受就是底鼓声变得很大,甚至破了,所以增强这个频段有助于音乐更厚实。
125Hz:
这就主要是贝斯的频段了,贝斯常用的音高位置的音色主要在这一频段,当然不是说这一频段只有贝斯,增强这一频段音乐会更扎实。
基本上,如果增强了上述三个频段,你想要重低音的话就有了,这里说一下遮蔽效应,简单说就是比如你把125Hz调的很大,那么靠近125Hz的、dB数小的频率就会被遮蔽,听不到了。
150Hz-300Hz:
这段频率影响声音的力度,尤其是男声声音的力度。这段频率是男声声音的低频基音频率,同时也是乐音中和弦的根音频率。如果这段频率成分缺乏,音色会显得发软、发飘,语音则会变得软绵绵;如果这段频率成分过强,声音会变得生硬而不自然,且没有特色。
250Hz:
这个频率的声音这个频段,如果多了则会很比较浑浊,少了声音会很干净,硬实,但它同时也是人声、弦乐、手鼓等等音色的主要共鸣点的所在频段。
300Hz-500Hz:
这段频率是语音的主要音区频率。这段频率的幅度丰满,语音有力度。如果这段频率幅度不足,声音会显得空洞、不坚实;如果这段频率幅度过强,音色会变得单调,相对来说低频成分少了,高频成分也少了,语音会变成像电话中声音的音色一样,显得很单调。影响音色和结实度.
500Hz:
和250Hz的感受相似,这一频段的增强会使一些铺底的合成器pad音色凸显出来,会使更多的男声凸显出来,这一频段多了还是会浑浊,稍微增加一些会使音乐有更多温暖、亲近的感觉。
500Hz-1KHz:
这段频率是人声的基音频率区域,是一个重要的频率范围。如果这段频率丰满,人声的轮廓明朗,整体感好;如果这段频率幅度不足,语音会产生一种收缩感;如果这段频率过强,语音就会产生一种向前凸出的感觉,使语音产生一种提前进人人耳的听觉感受。
800Hz:
这个频率幅度影响音色的力度。如果这个频率丰满,音色会显得强劲有力;如果这个频率不足,音色将会显得松弛,也就是 800Hz
以下的成分特性表现突出了,低频成分就明显;而如果这个频率过多了,则会产生喉音感。人人都有一个喉腔,人人都有一定的喉音,如果音色中的喉音成分过多了,则会失掉语音的个性、失掉音色美感。因此,音响师把这个频率称为"危险频率",要谨慎使用。
1KHz:
这个频段可以算作一个分水岭,大部分乐器的基频都在200—1000Hz,所以调节1000以下的频段会更多的影响音色(不是影响音量),增强这一频段会使音色更明亮。
1KHz-2KHz:
这段频率范围通透感明显,顺畅感强。如果这段频率缺乏,音色则松散且音色脱节;如果这段频率过强,音色则有跳跃感。
2KHz:
增强人声的可懂性,说白了听得更清楚,包括吉他贝斯的琴弦摩擦的声音,电吉他的尖刺感,两元店大喇叭里的广告,都可以让你更多的体会这一频段的特点,所以增强这一频段让音乐更清晰。
2KHz-3KHz:
这段频率是影响声音明亮度最敏感的频段,如果这段频率成分丰富,则音色的明亮度会增强,如果这段频率幅度不足,则音色将会变得朦朦胧胧;而如果这段频率成分过强,音色就会显得呆板、发硬、不自然。
4KHz:
这个频率的穿透力很强。人耳耳腔的谐振频率是 1~4KHz 所以人耳对这个频率也是非常敏感的。如果空虚频率成分过少,听觉能力会变差,语音显得模糊不清了。如果这个频率成分过强了,则会产生咳声的感觉,例如当收音机接收电台频率不正时,播音员常发出的咳音声。这一频段可以让声音更完整,更具细节,更多现场感,但是过多的提升也会让人觉得刺耳,听觉疲劳。
4KHz-5KHz:
这段频率对乐器的表面响度有影响。如果这段频率成分幅度大了,乐器的响度就会提高;如果这段频率强度变小了,会使人听觉感到这种乐器与人耳的距离变远了;如果这段频率强度提高了,则会使人感觉乐器与人耳的距离变近了。
5KHz-6KHz:
这段频率最影响语音的清晰度、可懂度。如果这段频率成分不足,则音色显得含糊不清;如果此段频率成分过强,则音色变得锋利,易使人产生听觉上的疲劳感。5KHz以上是几乎所有乐器的谐波成分,也是人耳最敏感的频段,比如把5000Hz提升6dB,有时会让人觉得整个音量被开大了一倍,如果过多的衰减则会让音乐听起来很远。
6KHz-8KHz:
这段频率影响音色的明亮度,这是人耳听觉敏感的频率,影响音色清晰度。如果这段频率成分缺少,则音色会变得暗淡;如果这段频率成分过强,则音色显得齿音严重。
8KHz:
这个频段比较明显的是各种镲声、弦乐摩擦琴弦的声音、还有就是齿音,比如提升该频段会放大歌手四、是、次、字一类的发音。一般很少会大幅提升这一频段。这段频率 s 音非常明显,影响音色的清晰度和透明度。如果这频率成分缺少,音色则变得平平淡淡;如果这段频率成分过多,音色则变得尖锐。
10KHz-12KHz:
这是高音木管乐器的高音铜管乐器的高频泛音频段,例如长笛、双簧管、小号、短笛等高音管乐器的金属声非常强烈。如果这段频率缺乏,则音色将会失去光泽,失去个性;如果这段频率过强,则会产生尖噪,刺耳的感觉。
12KHz-16KHz:
这是人耳可以听到的高频率声波,是音色最富于表现力的部分,是一些高音乐器和高音打击乐器的高频泛音频段,例如镲、铃、铃鼓、沙锤、铜刷、三角铁等打击乐器的高频泛音,可给人一种"金光四射"的感觉,强烈地表现了各种乐器的个性。如果这段频率成分不足,则音色将会会失掉色彩,失去个性;而如果这段频率成分过强,如激励器激励过强,音色会产生"毛刺"般尖噪、刺耳的高频噪声,对此频段应给予一定的适当的衰减。
16KHz:
事实上这一频段确实很难分辨,如果把一首歌的16000Hz提升10dB,我一般会去听各种镲,镲会显得更亮更大声了,反之,镲声会显得小了、暗了。如果不仔细听,会感觉音乐没什么变化。
16KHz-20KHz:
这段频率范围实际上对于人耳的听觉器官来说,已经听不到了,因为人耳听觉的最高频率是 15.1KHz。但是,人可以通过人体和头骨、颅骨将感受到的 16~20KHz 频率的声波传递给大脑的听觉脑区,因而感受到这个声波的存在。这段频率影响音色的韵味、色彩、感情味。如果音响系统的频率响应范围达不到这个频率范围,那么音色的韵味将会失落;而如果这段频率过强,则给人一种宇宙声的感觉,一种幻觉,一种神秘莫测的感觉,使人有一种不稳定的感觉。因为这些频率大多数是基音的不谐和音频率,所以会产生一种不安定的感受。这段频率在音色当中强度很小。但是很重要,是音色的表现力部分,也是常常被人们忽略的部分,甚至有些人根本感觉不到它的存在。
(参考杰里调试文档)
在利用 EQ均衡器(Equalizer)进行调音时,可以参考上面的对应关系使听感更好,EQ的实际应用场景:
音响、效果器等设备调音:
车载音响EQ调音:
车载音响系统的调音软件
无线蓝牙耳机APP中集成的EQ功能:
耳机的EQ功能
3.听感的后天训练
不可否认,听音和调音都需要一定的天赋,正如唱歌五音不全或者跑调的原因极有可能是不能区分声音。
推荐几个听音训练软件工具:
1.How To Listen:
https://harmanhowtolisten.blogspot.com/harmanhowtolisten.blogspot.com/
2.KLIPPEL LISTENING TEST
https://www.klippel.de/listeningtest/?v=3www.klippel.de/listeningtest/?v=3
3.金耳朵训练APP
金耳朵训练apps.apple.com/cn/app/%E9%87%91%E8%80%B3%E6%9C%B5%E8%AE%AD%E7%BB%83/id1468424396?l=pl编辑
4.参考链接
Soomal作品 - 频率与听感的对应关系 [Soomal]www.soomal.com/doc/10100000082.htm
杰里之音质调试篇www.ngui.cc/zz/2135512.html?action=onClick
听音训练软件/工具 - 干脆面666 - 博客园www.cnblogs.com/gancuimian/p/17223755.html编辑
音乐中的低频、中频、高频部分如何定义?198 关注 · 6 回答问题