分类器的上限由它学过的样本决定。本页讲的是您能掌控的两件事:标注数据如何组织, 以及用哪一条训练路线把它变成模型。两条路线最终都产出一个模型文件, 供 AI 分类向导的第 1 步加载。
第 2 步 —— 训练模型以两个单选项提供 ML.NET(零代码) 与 Python(深度学习)。建议先从 ML.NET 起步;只有当数据量足够大、 且确实需要更深的模型时,再转向 Python。
| ML.NET(零代码) | Python(深度学习) | |
|---|---|---|
| 前置条件 | 无 —— 内置 | 本机需安装 Python 与 PyTorch |
| 模型类型 | 基于 Mel 特征的梯度提升树 | 卷积网络或自编码器,可完全自定义 |
| 输出文件 | model.zip | model.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 均可接受,且可混放在同一文件夹中。多通道文件在特征提取时混合为单声道。 无法读取的文件会被跳过并写入日志,不会中断整次运行。
除了按文件夹标注,标注工程还可以把标签保存为一个便携的 JSON 文件, 便于纳入版本管理、在团队间共享。一个工程保存类别列表,以及每个文件的 整文件级类别标签,或一组画在频谱图上的标注框。
标注框标记的是一个时频区域 —— 起止时间(秒)与上下频率(Hz)——
并带有自己的标签,例如 Order Resonance。
当关注的事件只占长录音的一小段,或一个文件里出现多种不同事件、
单一的整文件标签会产生误导时,就该用它。
| 标注方式 | 保存内容 | 适用情形 |
|---|---|---|
| 整文件标签 | 每段录音一个类别 | 短促、内容单一的样本 —— 常见的下线场景 |
| 标注框 | 时间段 × 频带,附标签 | 长录音、瞬态事件、一个文件含多个事件 |
选择 ML.NET(零代码),浏览到数据文件夹,确认输出路径
(默认在数据文件夹内生成 model.zip),按 Start Training。
全部在本机运行,不会向任何地方上传数据。
其内部会把每段录音压缩成一份紧凑的声学指纹:用 1024 点 FFT、50% 重叠计算 64 带 Mel 谱, 再把每个 Mel 带在全部帧上的均值与标准差作为特征向量, 最后在这些向量上训练梯度提升树分类器。 该前端刻意做得稳健 —— 它关注声音的频谱特征,对录音长度不同也能容忍。
选择 Python(深度学习)后会展开脚本设置。两个按钮可写出开箱即用的模板, 既可直接使用,也可自行修改:
设置脚本路径、数据文件夹、输出 .onnx 路径与训练轮数
Epochs(默认 50),然后开始。脚本以独立进程启动,
其控制台输出实时汇入训练日志,您可以逐轮观察损失与准确率,发现不收敛时随时取消。
只要接受相同的命令行参数,您自己的脚本同样可用:
python train.py --data <文件夹> --output <model.onnx> --epochs <N> --type <classifier|autoencoder>
torch、torchaudio、
onnx)后重新运行。
日志记录整个过程:找到多少文件、分属哪些类别、多少个成功提取到特征、训练进展,以及最终小结。 ML.NET 路线会报告三个数字:
| 指标 | 含义 | 怎么看 |
|---|---|---|
| 微平均准确率 | 全部样本中分类正确的比例 | 会被样本最多的那一类主导 |
| 宏平均准确率 | 各类别准确率的平均 | 把稀有类别看得同样重要 —— 更诚实的数字 |
| 对数损失 | 对「自信地答错」的惩罚 | 越低越好;准确率高但对数损失上升,说明模型过度自信 |
© 2026 Deepsona. All Rights Reserved.