🚀 CED-Base模型
CED是基於ViT-Transformer的簡單音頻標籤模型,在AudioSet數據集上實現了最優性能。
🚀 快速開始
CED模型為音頻標籤任務提供了高效且性能卓越的解決方案。它在AudioSet數據集上表現出色,具備簡化微調、支持可變長度輸入、加速訓練和推理以及優異的性能等特點。
✨ 主要特性
- 簡化微調:對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-base"
>>> 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編碼器的情況下訓練一個線性頭。
📚 詳細文檔
模型性能
模型 |
參數數量(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 |
模型來源
模型信息
屬性 |
詳情 |
模型類型 |
音頻分類 |
訓練數據 |
AudioSet |
評估指標 |
mAP |
📄 許可證
本項目採用Apache-2.0許可證。