🚀 CED-Mini模型
CED是基于简单ViT-Transformer架构的音频标签模型,在AudioSet数据集上实现了最优性能。
🚀 快速开始
CED模型在音频标签任务中表现出色,具有高效、性能优越等特点,能为音频分类等相关应用提供强大支持。
✨ 主要特性
- 微调简化:对Mel频谱图进行批量归一化。在微调时,无需像AST模型那样先计算数据集的均值和方差。
- 支持可变长度输入:大多数其他模型使用静态时频位置嵌入,这限制了模型对短于10秒音频片段的泛化能力。许多先前的Transformer模型为避免性能影响,将输入填充到10秒,这会大幅降低训练/推理速度。
- 训练/推理加速:使用64维梅尔滤波器组和16x16无重叠的图像块,从10秒的频谱图中可得到248个图像块。相比之下,AST在训练/推理时使用128个梅尔滤波器组和16x16(10x10重叠)卷积,可得到1212个图像块。CED-Tiny在普通CPU上的运行速度与可比的MobileNetV3一样快。
- 性能优越:参数为1000万的CED模型性能优于大多数先前的方法(约8000万参数)。
📦 安装指南
pip install git+https://github.com/jimbozhang/hf_transformers_custom_model_ced.git
💻 使用示例
基础用法
>>> from ced_model.feature_extraction_ced import CedFeatureExtractor
>>> from ced_model.modeling_ced import CedForAudioClassification
>>> model_name = "mispeech/ced-mini"
>>> feature_extractor = CedFeatureExtractor.from_pretrained(model_name)
>>> model = CedForAudioClassification.from_pretrained(model_name)
>>> import torchaudio
>>> audio, sampling_rate = torchaudio.load("resources/JeD5V5aaaoI_931_932.wav")
>>> assert sampling_rate == 16000
>>> inputs = feature_extractor(audio, sampling_rate=sampling_rate, return_tensors="pt")
>>> import torch
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_id = torch.argmax(logits, dim=-1).item()
>>> model.config.id2label[predicted_class_id]
'Finger snapping'
高级用法
在example_finetune_esc50.ipynb
中展示了如何在ESC - 50数据集上冻结CED编码器并训练一个线性头部。
📚 详细文档
模型信息
属性 |
详情 |
模型类型 |
音频分类 |
训练数据 |
AudioSet |
评估指标 |
mAP |
模型来源
模型参数及性能
模型 |
参数 (M) |
AS - 20K (mAP) |
AS - 2M (mAP) |
CED - Tiny |
5.5 |
36.5 |
48.1 |
CED - Mini |
9.6 |
38.5 |
49.0 |
CED - Small |
22 |
41.6 |
49.6 |
CED - Base |
86 |
44.0 |
50.0 |
📄 许可证
本模型采用Apache - 2.0许可证。