我爱音频网全面开启行业投稿啦!如果您有很好的技术论文、行业分析报告、产品前沿研究都可以和我们投稿呀!已经采用全网分发助力全球音频行业伙伴第一时间了解到您的研究!温馨提示文章需不涉及商业行为,仅支持技术行业分析等内容噢。如需投稿请联系:17722503948(小音 微信同)
作者:费艳锋 李坚维
这是一个已在耳机中实际运行的骨导 VPU + 气导麦克风项目。两路拾音同步工作:气导麦克风提供主要通话声音,骨导 VPU 帮助设备判断佩戴者是否在说话。项目已完成安静人声和粉红噪声环境下的录音处理,当前效果符合本项目的使用要求。
一 项目缘由与目标
项目起点是耳机通话中的实际问题:普通气导麦克风会同时收到佩戴者说话、环境噪声和旁边人的声音,嘈杂时对方不容易听清。为改善这个问题,项目在同一副耳机中加入骨导 VPU(从耳机与佩戴者接触处拾取说话振动的器件),并与气导麦克风(接收空气中声音的普通麦克风)同步使用。
项目面向蓝牙耳机等通话设备,重点是让对方更容易听清佩戴者,同时减少噪声、忽大忽小和卡顿。声纹识别也可以用于区分登记用户和其他说话者;若用于支付、门锁等高安全场景,还需额外的安全设计,不能只凭声纹结果作决定。
二 两种拾音器怎样分工
气导麦克风保留的声音更接近日常说话,但也会收到粉红噪声、风声和旁人声。骨导 VPU 不容易被空气中的环境声带偏,能提供佩戴者正在发声的线索,不过它的音色较薄,不直接作为主要通话声音。
所以两路声音不是简单按固定比例混合。耳机主要用气导麦克风输出声音,再利用骨导信号帮助判断何时应保留佩戴者的人声。
可以把分工记成一句话:“气导负责把话说自然,骨导负责帮忙认出本人正在说话”。这样既利用两种传感器的长处,也避免把音色较薄的骨导声音硬加到通话输出里。两路信号还需要同时采集并保持时间对齐:如果骨导提示晚了,算法可能把环境声当成人声保留,或者在佩戴者已经开口时仍然压低声音。同步和输入质量检查因此是后续处理的基础。
图 1 两路拾音信号分别进入通话增强与身份识别流程
三 项目处理过程
下面几条简化公式用来说明实际处理链路里的关键关系。它们帮助读者理解信号怎样被判断、噪声怎样被压低、音量怎样变得平顺;实际耳机仍运行项目中的算法与参数配置,这些公式不是对代码逐行展开。
语音增强的原理公式
X(t,k) = Σ[n=0…N−1] x_t[n] × w[n] × e^(−j2πkn/N)
这是短时频率分析的简写。系统把连续声音切成很短的小段,再观察每一小段里不同频率的声音强弱。x_t[n] 是第 t 段声音中的采样值,w[n] 是平滑边缘用的窗口,N 是每段的采样数,k 表示频率位置。这样算法可以针对某些噪声频段调低音量,而不必把整句话一起压小。
P_voice(t) = f(X_air(t), X_bone(t), N_air(t))
P_voice 表示某一时刻佩戴者正在说话的判断程度;X_air 是气导麦克风信号,X_bone 是骨导 VPU 信号,N_air 表示气导中的环境噪声特征。f 表示系统根据输入作判断的处理过程。这里说明的是双路信息共同参与判断的关系,并不表示把两路声音按比例混成一路。
Y_air(t,k) = G(t,k) × X_air(t,k), 0 ≤ G(t,k) ≤ 1
X_air 是气导声音在时间片 t、频率位置 k 上的成分,G 是处理力度,Y_air 是处理后的输出成分。G 接近 1 时保留较多,G 越小衰减越明显。系统结合人声判断和噪声强弱调节 G:尽量压低噪声对应的部分,同时保护佩戴者说话的部分。
G_s(t) = α × G_s(t−1) + (1−α) × G_target(t),0 ≤ α < 1
G_target 是当前时刻希望达到的处理力度,G_s 是平滑后的实际力度,α 控制变化的平缓程度。保留一部分上一时刻的状态,可以避免增益突然跳变,减少听感上的忽大忽小、抽动或卡顿。实际参数由项目配置决定,公式只解释平滑控制的基本思路。
公式中的 t 表示连续处理的时间片,k 表示声音频率位置。实际系统会持续重复这一过程,因此环境从安静变嘈杂时,抑制力度可以逐步调整,而不必突然切换到另一个固定档位。
四 声纹识别在这里做什么
声纹识别不负责降噪。它把当前说话人的声音特征与已登记的用户声音作比较,判断两者是否相似。简单说,声纹识别回答“是不是登记的说话者”;骨导辅助的语音增强回答“佩戴者现在有没有说话”。两者使用同一耳机的同步拾音,但用途不同。
声纹处理会先把一段语音转成一组较稳定的声音特征,再与登记时保存的特征比较。可以把这组特征想成声音的“摘要”:它不是把整段录音拿来逐字对照,而是比较音色、发声习惯等整体特征。当前项目采用气导作为主要身份依据、骨导作为辅助线索;这组身份分数只用于声纹判断,不代表把骨导和气导音频按 95%/5% 混音。
S_air = (e_now · e_registered) / (||e_now|| × ||e_registered||)
S_air 表示当前气导声音特征与已登记气导特征的相似程度;e_now 和 e_registered 分别是两次声音的特征表示;点号表示向量相乘后求和,双竖线表示特征大小。分数越接近,说明这两组声音特征越相似。
S_fused = 0.95 × S_air + 0.05 × S_bone
S_fused 是双模态融合后的身份分数,S_bone 是骨导特征给出的辅助分数。当前流程以气导分数为主、骨导分数为辅。它是身份判断的分数融合关系,不是通话声音的混合比例。产品再把融合分数与设定门槛比较,给出匹配或不匹配结果。
身份判断:S_fused ≥ θ → 匹配;S_fused < θ → 不匹配
θ(阈值)是产品用来划分匹配与不匹配的分数门槛。门槛设得更严格,误把他人认成登记用户的机会通常会降低,但也可能增加本人未通过的情况,因此要按实际产品场景设置。声纹结果适合做身份判断的一环;高安全用途还应结合设备安全措施。
在耳机产品中,声纹识别可按下面两个环节理解:
本项目的双路拾音和通话增强已在耳机上实际运行。声纹识别用于说话者判断;如果用于支付、门锁等高安全场景,仍应配合设备安全措施和相应的产品测试。
五 实际录音结果与对比依据
以下内容来自本项目耳机的实际采集和处理:骨导 VPU 与气导麦克风同步录音,20–30 秒为安静环境人声,60–70 秒为播放粉红噪声时的人声通话。两段使用同一套 R13 参数处理,没有按环境切换成两套算法。
图 3 安静片段处理前后对比:处理后仍保留清晰的人声起伏
图 4 粉红噪声片段处理前后对比:背景能量下降,人声仍可见
这次实际录音的处理前后对比见下表。数字根据本次采集的原始录音和处理后录音计算,反映的是这副耳机、本次说话人和这两段录音的结果;它们不是所有耳机和环境都通用的保证值。
dB(分贝)表示声音强弱的变化量。本次录音的增益变化第 95 百分位约为 1.02 dB,未检测到语音被切断。上述数值均由本次耳机实录音频前后对比得到,可用于理解人声保留与噪声变化。
安静片段主要观察人声有没有被处理得太轻,以及旁边声音能否压下去;粉红噪声片段则观察背景噪声下降后,佩戴者说话是否仍清楚。两段使用同一套 R13 参数处理,便于比较这套耳机在两种实际场景下的处理效果。
六 项目特色与使用说明
项目已经完成耳机 VPU 与气导麦克风双路同步拾音和语音增强的实际使用。本次录音展示了安静环境与粉红噪声环境下的处理效果;不同用户、佩戴松紧和噪声类型会带来差异,实际产品可按目标使用场景继续微调参数。
七 总结归纳
八 BP11 调试器参数设置界面
以下截图取自费佬声学前端调试器 BP11 锁定版的参数设置界面,展示固定入耳式双路输入和模块参数。该 BP11 配置用于说明调试器设置;前文第五节的 R13 录音对比仍按原文所述的 R13 参数理解。
图 5 BP11 项目与双路输入设置
图 6 BP11 硬件通道设置
图 7 BP11 模块参数:16 kHz、FFT 512、hop 240 及锁定的可调值
文章来自行业投稿,投稿人:费艳锋 李坚维,文章为投稿人自发撰写,我爱音频网整理刊登。











