标注与训练

分类器的上限由它学过的样本决定。本页讲的是您能掌控的两件事:标注数据如何组织, 以及用哪一条训练路线把它变成模型。两条路线最终都产出一个模型文件, 供 AI 分类向导的第 1 步加载。

选择训练路线

第 2 步 —— 训练模型以两个单选项提供 ML.NET(零代码) 与 Python(深度学习)。建议先从 ML.NET 起步;只有当数据量足够大、 且确实需要更深的模型时,再转向 Python。

ML.NET(零代码)Python(深度学习)
前置条件无 —— 内置本机需安装 Python 与 PyTorch
模型类型基于 Mel 特征的梯度提升树卷积网络或自编码器,可完全自定义
输出文件model.zipmodel.onnx
训练耗时数秒到数分钟数分钟到数小时
数据需求每类几十个样本即可运转每类需数百个以上
最适合快速拿到第一个可用模型、故障类型区分明显差异细微、数据量大、需从公开模型迁移

组织训练数据

两条路线读取同一种结构:一个根目录,其子文件夹名即类别名。 把每段录音放进它所属类别的文件夹即可。整文件级分类的标注格式仅此而已 —— 不需要另外维护标签文件。

data\
  OK\
    unit_0001.wav
    unit_0002.wav
    unit_0003.hdf
  Whine\
    unit_0104.wav
    unit_0117.wav
  Knock\
    unit_0233.wav
  Rub\
    unit_0301.wav

WAV 与 HEAD HDF 均可接受,且可混放在同一文件夹中。多通道文件在特征提取时混合为单声道。 无法读取的文件会被跳过并写入日志,不会中断整次运行。

子文件夹名将成为训练所得模型的类别标签,顺序按字母排列。 请直接使用您希望在结果中看到的名称 —— 之后在第 3 步的类别名称栏里也要填写完全相同的拼写。

标注工程

除了按文件夹标注,标注工程还可以把标签保存为一个便携的 JSON 文件, 便于纳入版本管理、在团队间共享。一个工程保存类别列表,以及每个文件的 整文件级类别标签,或一组画在频谱图上的标注框。

标注框标记的是一个时频区域 —— 起止时间(秒)与上下频率(Hz)—— 并带有自己的标签,例如 Order Resonance。 当关注的事件只占长录音的一小段,或一个文件里出现多种不同事件、 单一的整文件标签会产生误导时,就该用它。

标注方式保存内容适用情形
整文件标签每段录音一个类别短促、内容单一的样本 —— 常见的下线场景
标注框时间段 × 频带,附标签长录音、瞬态事件、一个文件含多个事件

路线 A —— 内置 ML.NET 训练器

选择 ML.NET(零代码),浏览到数据文件夹,确认输出路径 (默认在数据文件夹内生成 model.zip),按 Start Training。 全部在本机运行,不会向任何地方上传数据。

其内部会把每段录音压缩成一份紧凑的声学指纹:用 1024 点 FFT、50% 重叠计算 64 带 Mel 谱, 再把每个 Mel 带在全部帧上的均值与标准差作为特征向量, 最后在这些向量上训练梯度提升树分类器。 该前端刻意做得稳健 —— 它关注声音的频谱特征,对录音长度不同也能容忍。

已标注文件夹 OK / Whine / Knock Mel 特征 64 带,均值 + 标准差 训练 多分类模型 评估 准确率、对数损失 按一次 Start Training,整条链路在本机跑完

路线 B —— Python / PyTorch 模板

选择 Python(深度学习)后会展开脚本设置。两个按钮可写出开箱即用的模板, 既可直接使用,也可自行修改:

设置脚本路径、数据文件夹、输出 .onnx 路径与训练轮数 Epochs(默认 50),然后开始。脚本以独立进程启动, 其控制台输出实时汇入训练日志,您可以逐轮观察损失与准确率,发现不收敛时随时取消。

只要接受相同的命令行参数,您自己的脚本同样可用:

python train.py --data <文件夹> --output <model.onnx> --epochs <N> --type <classifier|autoencoder>
Python 与 PyTorch 不随谛耳一同安装。若日志提示缺少依赖, 请在您指定的 Python 环境中安装模板所列的包(torch、torchaudio、 onnx)后重新运行。

训练日志与指标解读

日志记录整个过程:找到多少文件、分属哪些类别、多少个成功提取到特征、训练进展,以及最终小结。 ML.NET 路线会报告三个数字:

指标含义怎么看
微平均准确率全部样本中分类正确的比例会被样本最多的那一类主导
宏平均准确率各类别准确率的平均把稀有类别看得同样重要 —— 更诚实的数字
对数损失对「自信地答错」的惩罚越低越好;准确率高但对数损失上升,说明模型过度自信
这些指标是在训练所用的数据上测得的,因此是上限,而不是现场表现的预测。 真正有意义的数字,是用批量分类跑一遍从未参与训练的录音所得的结果。 两者差距很大是过拟合的经典征兆 —— 通常靠增加样本数量与多样性来解决。

需要多少数据

从训练完成到部署

  1. 在第 1 步 —— 加载模型中载入所得模型,核对报告的签名。
  2. 在第 3 步 —— 设置中按文件夹读取顺序(字母序)填写类别名称。
  3. 在第 4 步 —— 分类中跑几个已知样本,确认逐类得分合理。
  4. 用第 5 步 —— 批量分类跑完留出的校验集并导出 CSV; 这就是留存归档的验证证据。
  5. 把模型文件与所用数据集、设置的说明一起归档 —— 没有来历记录的模型,日后无法复现。
相关页面:AI 声学分类(总览) · ONNX 推理 · 异常检测

© 2026 Deepsona. All Rights Reserved.