推理是训练好的模型查看一段录音并给出类别的环节。谛耳运行 ONNX 格式的模型 —— 这是 PyTorch、TensorFlow、scikit-learn 与 ML.NET 共同的导出目标。 因此,由数据团队训练的模型可以直接投入谛耳使用,无需格式转换,也不必安装对应的训练框架。
| 项目 | 支持情况 |
|---|---|
| 模型文件 | .onnx —— 分类与回归计算图 |
| 输入 | 单个 float 张量;支持 2 维、3 维、4 维形状,含动态维度 |
| 输出 | 取第一个输出张量,按每类得分的一维列表读取 |
| 音频输入 | WAV、HEAD HDF(单通道或多通道) |
| 计算设备 | 默认 CPU;可选 DirectML GPU 加速 |
batch_size 维度的模型可被自动识别并正确处理,
无需为了固定批大小而重新导出。
在第 1 步 —— 加载模型中浏览选择 .onnx 文件。加载完成后,
状态行会报告识别到的签名,例如:
Input: [1,1,16000] -> Output: [1,10] (10 classes) [batch]
读法是:模型需要 1 批、1 个通道、16000 个采样点的输入,输出 10 个类别得分。 据此先确认两件事再往下走 —— 类别数量与您即将填入的标签个数是否一致, 以及期望的输入长度与您的录音是否兼容。
测量数据的形状很少正好等于模型导出时的形状。谛耳会主动把数据适配到模型, 而不要求您手工整形。适配依据是模型声明的输入形状:
| 声明的输入 | 数据如何映射 |
|---|---|
[batch, channels, samples] | 按原样使用各通道;每通道按需截断或补零到所需长度 |
[batch, samples] | 多通道混合为单声道,再截断或补零 |
[batch, 1, time, frequency] | 频谱图(彩图)经双线性插值重采样到所需的时间 × 频率栅格 |
| 一维特征曲线 | 电平-时间或特征-时间曲线直接送入,按长度截断或补零 |
| 其他情形 | 数据展平为所需的元素总数 |
模型中声明为未知的动态维度,会用实际数据维度填充:首维取批大小,中间维取通道数,末维取采样数。
如果模型是在归一化后的输入上训练的,推理时必须施加同样的归一化。提供三种模式:
| 模式 | 变换 | 适用情形 |
|---|---|---|
| None(不归一化) | 数值原样送入 | 模型在原始物理量上训练 |
| Min-Max | (x − min) / (max − min) | 训练时把每段录音缩放到 0…1 |
| Standard | (x − 均值) / (L2 / √N) | 训练时使用零均值、单位尺度的输入 |
归一化按通道逐一计算并施加。选择了与训练时不同的归一化模式, 是「在 Python 里好用、到这里就不对」最常见的原因之一。
在第 1 步中勾选 GPU (DirectML)。DirectML 适用于任何支持 DirectX 12 的显卡, 因此无需安装厂商专用的计算工具包。若设备不可用,模型会静默改走 CPU —— 推理不会仅仅因为没有 GPU 而失败。
模型输出的是原始数值(logits)。后处理负责把它们变成可读的置信度。 第 3 步 —— 设置中的各项按固定顺序施加:Sigmoid → 温度 → Winner Takes All → SoftMax。
| 选项 | 效果 | 典型用途 |
|---|---|---|
| Sigmoid | 1 / (1 + e−x) | 多标签模型,即多个类别可能同时成立 |
| SoftMax(ReLU) | max(0, x) / Σ max(0, x) | 默认。把正得分归一化为总和 100% |
| Winner Takes All | 最高得分处置 1,其余置 0 | 只要硬性好坏结论,不需要置信度层次 |
| 温度(Temperature) | 得分除以 T(0.1…5.0) | T < 1 使分布更尖锐,T > 1 软化过度自信的模型 |
| Top-K | 只保留得分最高的 K 个类别 | 类别数以百计的模型;填 0 显示全部 |
按模型输出神经元的顺序,以英文逗号分隔填写标签,例如 OK, Whine, Knock, Rub。
填写的标签少于模型类别数时,其余按 Class_4、Class_5…… 补齐;
完全不填时全部按编号显示。标签只影响显示与 CSV 导出,绝不改变预测结果。
一次分类给出四样东西:
真正有诊断价值的是这份逐类列表的形状。单一尖峰说明模型很确信; 两个类别接近说明这段录音处在边界上,值得亲耳听一听; 所有类别都很平坦,通常意味着输入与训练数据完全不像 —— 请检查录音长度、通道选择与归一化模式。
第 5 步 —— 批量分类把已加载的模型应用到整个文件列表。
添加 WAV 或 HDF 文件,按 Run Batch 并观察进度条;
每一行报告文件名、预测标签、置信度与状态。无法读取的文件会在自己那一行标出,不会中断整批。
Export CSV 导出 File, PredictedLabel, Confidence, Status 四列,
可直接用于电子表格或质量数据库。
模型库是一份常用预训练声学模型的目录,模型本身不随安装包分发,以保持软件体积。
模型存放在 %LocalAppData%\Deepsona\Models;若已配置下载源,可按需下载并显示进度,
否则把 .onnx 文件手动放入该目录即可被识别。
| 模型 | 体积 | 用途 |
|---|---|---|
| PANNs-CNN14 | 约 80 MB | 通用声音事件分类,527 类 |
| YAMNet | 约 14 MB | 轻量声音事件分类器,521 类 —— 适合快速筛查 |
| VGGish | 约 280 MB | 输出 128 维嵌入向量而非类别 |
嵌入向量是一段声音的紧凑数值指纹。在标注极少时尤其有用: 用余弦相似度比较两段录音的嵌入向量,即可实现「以声搜声」检索录音库; 也可以把嵌入向量作为特征,用少量样本训练一个小分类器。 嵌入前端采用标准化 log-Mel 谱(64 个 Mel 带、25 ms 帧长、10 ms 帧移、125…7500 Hz), 与这些公开模型所期望的口径一致。
AI 分类同时也是一个常规分析节点,可与 FFT、响度、阶次分析并列放进管线, 一次应用到整个文件池。节点接受以下参数:
| 参数 | 含义 | 默认值 |
|---|---|---|
OnnxModelPath | 模型文件路径(必填) | — |
ClassLabels | 逗号分隔的类别名称 | 按编号 |
UseSigmoid | 施加 Sigmoid | false |
UseSoftMax | 施加 SoftMax | true |
UseWTA | 施加 Winner Takes All | false |
Normalization | None / MinMax / Standard | None |
节点输出一条每类得分曲线、一个携带获胜标签与置信度的单值, 以及一份逐类列出后处理得分与原始得分的日志 —— 这些都可被报告工具直接取用。
| 现象 | 可能原因 |
|---|---|
| 所有类别得分几乎一样 | 输入与训练数据不像 —— 检查录音长度、通道选择与归一化模式 |
| 模型总是回答同一类 | 训练集严重不均衡,或类别标签顺序填错 |
| 置信度永远是 100% | 启用了 Winner Takes All —— 关掉即可看到层次 |
| 类别数与标签数对不上 | 看第 1 步的签名行,按它调整标签列表 |
| 结果与训练框架里的不一致 | 归一化模式或输入长度与训练前端不同 |
| GPU 似乎没有效果 | 无可用的 DirectX 12 设备,已静默走 CPU 路径 |
© 2026 Deepsona. All Rights Reserved.