跳到主要内容
返回时间线
arXiv来源发表:

只凭一段麦克风录音,SonoDyno读出未知发动机的转速、缸数与负荷强度

核心概要

SonoDyno 只靠麦克风信号估计发动机转速、气缸数和归一化负荷强度,不需要转速计、总线访问或事先知道发动机配置。它把各阶次能量在三种时频分辨率上送入一个 124 302 参数的卷积评分器,联合判定缸数与转速,再由解码器约束转速轨迹。在两台从未听过的真实发动机上,93% 至 97% 的帧落在真实转速 2% 以内,缸数识别准确率 80%,八度混淆低于 2% 的帧。

Source-provided article image: SonoDyno: A Sonic Dynamometer for Engine Speed and Load Estimation from Audio
arXiv

深度剖析

一段没有转速计标注的发动机录音,现在可以直接读出瞬时转速和气缸数,麦克风位置、发动机型号和缸数都不必事先知道。 此前从声音读转速要么依赖已知机型与人工指定的谐波阶次,要么用通用基频跟踪器,而后者每帧只给出一个周期性,无法确定缸数。 在两台训练中从未出现的真实发动机上,93% 至 97% 的帧落在真实转速 2% 以内,缸数按每次录音会话读一次,准确率 80%,八度混淆低于 2% 的帧。

做法是把发动机声音的谐波结构直接变成一张按阶次排列的能量图,再让缸数只以加权的方式进入评分。 阶次能量在长、中、短三个布莱克曼窗上分别计算,每个窗内先各自清理脊线,再按阶次融合,各阶次在进入评分前始终不混在一起。 在真实验证录音上,即使把每个发动机的谐波阶次直接告诉通用基频跟踪器,最好的 PESTO 也只把 61.6% 的帧放进 5% 容差,SonoDyno 为 95.7%;去掉全部学习阶段、仅用三窗阶次能量平铺求和,这一比例降到 72%。

负荷不再用响度代替,而是估计一个相对发动机自身能力的负荷强度,取值 0 对应断油滑行的阻力下限,1 对应全负荷上限。 此前基于录音训练的发动机声音合成方法只能用响度作为负荷的替代量,而响度既不含扭矩的正负号,也不含相对发动机容量的尺度。 在一台型号已知但此前未听过的真实发动机上,负荷强度的平均绝对误差为 0.12,判断驱动还是断油滑行的符号正确率为 91% 的帧。

启示与展望

演示范围限于底盘测功机、半消声室内录制的真实发动机,以及游戏引擎仿真渲染的发动机;真实材料只含 4、6、8 缸,留出的真实发动机只有 4 缸和 8 缸,其余缸数仅在仿真发动机上检验。读者对象是需要为无标注发动机录音补上转速与负荷轨迹的声音合成、阶次分析和噪声振动研究者。

剩余转速误差集中在急加速段、快速变速带和怠速,真实录音上这三处分别约每六到七帧错一帧、每三帧错一帧、每六到七帧错一帧。唯一系统性误读是把恒速高转速的四缸机读成八缸,这是信号模型本身允许的混淆。未见机型上发动机更换与录音设置更换两种变化无法分离,且全部真实材料都在半消声室内录制,道路、风与交通噪声未覆盖。