🚀 hubert-finetuned-animals
hubert-finetuned-animals
是 facebook/hubert-base-ls960
的微調版本,專門用於動物聲音分類任務。它能識別 ESC - 50 數據集中特定動物的聲音,在生物聲學監測、教育工具和野生動物保護等領域有重要應用價值。
🚀 快速開始
你可以在這裡試用該模型:
動物聲音分類空間
✨ 主要特性
- 精準分類:在評估集上實現了 0.95 的準確率,能有效識別多種動物聲音。
- 應用廣泛:可用於野生動物研究、動物教育內容或娛樂等需要動物聲音識別的軟件應用。
📦 安裝指南
文檔未提及安裝步驟,暫不展示。
💻 使用示例
基礎用法
import librosa
import torch
from transformers import HubertForSequenceClassification, Wav2Vec2FeatureExtractor
model_name = "ardneebwar/wav2vec2-animal-sounds-finetuned-hubert-finetuned-animals"
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(model_name)
model = HubertForSequenceClassification.from_pretrained(model_name)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
model.eval()
def predict_audio_class(audio_file, feature_extractor, model, device):
speech, sr = librosa.load(audio_file, sr=16000)
input_values = feature_extractor(speech, return_tensors="pt", sampling_rate=16000).input_values
input_values = input_values.to(device)
with torch.no_grad():
logits = model(input_values).logits
predicted_id = torch.argmax(logits, dim=-1)
predicted_class = model.config.id2label[predicted_id.item()]
return predicted_class
audio_file_path = "path_to_audio_file.wav"
predicted_class = predict_audio_class(audio_file_path, feature_extractor, model, device)
print(f"Predicted class: {predicted_class}")
📚 詳細文檔
模型描述
HuBERT 模型最初在大量未標記的音頻數據上進行訓練,這裡針對動物聲音分類的下游任務進行了微調。這種微調使模型能夠專門識別不同的動物聲音,如狗、公雞、豬、牛、青蛙、貓、母雞、昆蟲、綿羊和烏鴉的聲音,這在生物聲學監測、教育工具和更具互動性的野生動物保護工作等應用中特別有用。
預期用途和限制
預期用途
該模型旨在對音頻片段中的特定動物聲音進行分類。它可用於與野生動物研究相關的軟件應用、與動物相關的教育內容,或用於需要動物聲音識別的娛樂目的。
限制
雖然該模型顯示出較高的準確率,但它是在 ESC - 50 數據集的有限類別上進行訓練的,可能無法涵蓋所有可能的動物聲音。其性能會因音頻質量、背景噪音以及訓練數據中未涵蓋的動物聲音變化而有顯著差異。
訓練和評估數據
該模型在 ESC - 50 數據集的一個子集上進行了微調,這是一個為環境聲音分類任務設計的公開可用的集合。這個子集專門只包括與動物聲音相關的類別。數據集中的每個類別包含 40 個示例,為模型訓練和評估提供了多樣化的樣本。
訓練過程
訓練步驟
- 預處理:將音頻文件轉換為頻譜圖。
- 數據劃分:將數據劃分為 70% 的訓練集、20% 的測試集和 10% 的驗證集。
- 微調:在訓練集上對模型進行 10 個週期的微調。
- 評估:在每個週期後在驗證集上評估模型的性能,以監測改進並防止過擬合。
訓練超參數
屬性 |
詳情 |
學習率 |
5e - 05 |
訓練批次大小 |
8 |
評估批次大小 |
8 |
隨機種子 |
42 |
優化器 |
Adam(betas=(0.9,0.999),epsilon=1e - 08) |
學習率調度器類型 |
線性 |
學習率調度器預熱比例 |
0.1 |
訓練週期數 |
10 |
訓練結果
訓練損失 |
週期 |
步數 |
驗證損失 |
準確率 |
2.1934 |
1.0 |
45 |
2.1765 |
0.3 |
2.0239 |
2.0 |
90 |
1.8169 |
0.45 |
1.7745 |
3.0 |
135 |
1.4817 |
0.65 |
1.3787 |
4.0 |
180 |
1.2497 |
0.75 |
1.2168 |
5.0 |
225 |
1.0048 |
0.85 |
1.0359 |
6.0 |
270 |
0.9969 |
0.775 |
0.7983 |
7.0 |
315 |
0.7467 |
0.9 |
0.7466 |
8.0 |
360 |
0.7698 |
0.85 |
0.6284 |
9.0 |
405 |
0.6097 |
0.9 |
0.8365 |
10.0 |
450 |
0.5596 |
0.95 |
框架版本
- Transformers 4.33.2
- Pytorch 2.0.1+cu118
- Datasets 2.14.5
- Tokenizers 0.13.3
GitHub 倉庫
動物聲音分類
🔧 技術細節
該模型基於 HuBERT 架構,通過對 ESC - 50 數據集子集的微調,使其能夠專注於動物聲音的分類。在訓練過程中,使用了一系列的預處理和優化步驟,如將音頻轉換為頻譜圖、合理劃分數據集、設置合適的超參數等,以提高模型的性能和泛化能力。同時,在每個訓練週期後對模型進行驗證評估,有助於防止過擬合,確保模型在不同的音頻數據上都能有較好的表現。
📄 許可證
本模型採用 Apache - 2.0 許可證。