十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

环境音识别入门:用 Transformers 两步跑通声音分类

环境音识别入门:用 Transformers 两步跑通声音分类 环境音识别入门用 Transformers 两步跑通声音分类【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers这篇教程写给没有音频背景的 Python 开发者带你走通环境音识别的一条完整链路先用 pipeline 做推理再改几个参数完成 wav2vec2 训练最后按场景选参数。选型对比 3 种声音分类路线 先说结论用自监督预训练模型加 Transformers 的音频分类工具链是覆盖智能家居、安防、医疗、工业监测多数场景的最省事路线。环境音识别环境音分类、声音事件分类是对非语音声音打标签识别门开了、装修施工了、设备报警了。它和语音识别的难点不同——片段时长不定、频谱结构复杂、背景噪声随时干扰。方案特点适用场景手工特征 分类器MFCC/SVM 等特征和模型都要自己调数据少时上限低教学、离线兜底wav2vec2 Transformers预训练声学编码器开箱即用自带特征提取器与 Trainer中小规模声音分类、事件检测商用音频 API免训练但类别固定、数据出网、按量计费原型验证、临时调用examples/pytorch/audio-classification/run_audio_classification.py 的--model_name_or_path默认值就是facebook/wav2vec2-base本文以它为主线结构相近的自监督模型如 Hubert可替换该参数使用。先跑通一次推理 最短路径是一行 pipeline 调用拿到分类结果装依赖不超过 3 条命令。git clone https://gitcode.com/GitHub_Trending/tra/transformers cd transformers pip install .[audio].[audio]对应 setup.py 里extras[audio]声明的依赖torchaudio、librosa 等音频处理库加上 datasets 负责数据加载。基础环境要求 Python 3.8、PyTorch 1.10。推理代码只有几行from transformers import pipeline classifier pipeline(audio-classification) # 默认 facebook/wav2vec2-base 预训练 print(classifier(door.wav)[:1]) # 返回 [(标签, 置信度), ...]pipeline 帮你串起了两件事AutoFeatureExtractor负责波形转特征AutoModelForAudioClassification负责分类。训练阶段就是分别控制这两者。拆开训练脚本看 官方训练脚本的数据链路按顺序分三步统一采样率、随机裁剪增强、冻结特征编码器最后交给 Trainer。第一步cast_column把全部音频统一转换到特征提取器要求的采样率wav2vec2-base 为 16 kHz后续特征提取不会再因采样率不一致报错raw_datasets raw_datasets.cast_column( data_args.audio_column_name, datasets.features.Audio(sampling_ratefeature_extractor.sampling_rate), )第二步训练集用random_subsample随机裁出max_length_seconds默认 20 秒的片段作为数据增强验证集不裁剪整段送入避免训练和评估口径不一致。第三步模型加载后调用freeze_feature_encoder()冻结特征编码器只让分类头接收梯度freeze_feature_encoder默认为 True。model AutoModelForAudioClassification.from_pretrained( model_args.model_name_or_path, num_labelslen(labels), label2idlabel2id, id2labelid2label, ) if model_args.freeze_feature_encoder: model.freeze_feature_encoder() # 冻结特征编码器只训分类头最后是 Trainer 配置trainer Trainer( modelmodel, argstraining_args, train_datasettrain_dataset, eval_dataseteval_dataset, compute_metricscompute_metrics, processing_classfeature_extractor, )compute_metrics默认取 argmax 后计算准确率。三套场景配方 按部署场景挑参数即可三个配方只差三两个开关。家居事件分类识别门窗开合、吸尘器运行。本地数据集走 CSV含音频路径列和标签列python examples/pytorch/audio-classification/run_audio_classification.py \ --train_file ./data/train.csv --eval_file ./data/eval.csv \ --audio_column_name path --label_column_name category \ --num_train_epochs 10 --learning_rate 3e-5 --output_dir ./env_sound_model坑audio_column_name默认值是audio、label_column_name默认是label本地 CSV 列名不同时必须显式传否则脚本报列找不到。城市噪声监测识别交通、施工噪声。把--max_length_seconds从 20 降到 10 降低单次推理延迟保持--freeze_feature_encoder True加速收敛再对训练音频叠加背景噪声混入做增强。坑采样窗口越短低频慢变事件如远处鸣笛越容易被裁掉实时性和召回要权衡。工业异常声预警故障样本少采用半监督思路——大量无标注运行音频走自监督少量标注走有监督训练加对比学习损失拉近同类、推远异类推理阈值按场景调。坑异常类占比低时别只看准确率应下调该类告警阈值宁可误报不漏报。调参与评估速查 下表汇总 run_audio_classification.py 的关键声音事件分类参数与默认值num_train_epochs、learning_rate由 TrainingArguments 控制无脚本级默认值参数默认值作用--model_name_or_pathfacebook/wav2vec2-base预训练模型--dataset_nameNoneHub 数据集名与本地文件二选一--train_file / --eval_fileNone本地训练/验证清单--audio_column_name / --label_column_nameaudio / label音频列、标签列名--max_length_seconds20训练时随机裁剪目标时长--freeze_feature_encoderTrue冻结特征编码器--per_device_train_batch_size8单卡训练批大小评估默认只有整体准确率多类别下建议扩展混淆矩阵看哪两类互相混淆再加 per-class precision/recall 与 macro F1用evaluate或 sklearn 即可。规划上线路径 按四档逐级加码每档都是前一档的超集本地 Pythonpipeline(audio-classification, model./env_sound_model)调单文件或批量列表Web 服务FastAPI 封装 REST 接口上传的 wav 在请求内完成预处理与推理移动端ONNX 导出 bitsandbytes INT8 量化或用大模型知识蒸馏出轻量模型嵌入式剪枝 量化压体积按目标设备的延迟与内存预算反复验证排错速查 数据类症状处理样本长度不一random_subsample 裁剪或填充到统一长度类别不平衡过采样、类别加权损失、数据增强背景噪声干扰推理前加降噪预处理模型类症状处理准确率低扩充数据、调学习率、换更大模型推理慢量化、剪枝、缓存特征提取结果过拟合早停、增强、正则化下一步 四个值得跟进的方向音频与视觉信号做多模态融合用自监督预训练降低标注依赖流式推理支持低延迟在线检测模型微型化以适配边缘设备。继续深入可看 examples/pytorch/audio-classification、官方文档入口 docs/source/en/index.md、setup.py 的依赖清单与 CONTRIBUTING.md。pipeline 先验证想法、微调脚本再贴场景、部署按需选档——这套组合能覆盖绝大多数声音事件分类项目。【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表