🚀 hubert-finetuned-animals
このモデル hubert-finetuned-animals
は、facebook/hubert-base-ls960
を動物の音声分類タスクに特化してファインチューニングしたバージョンです。ESC - 50 データセットの一部の動物カテゴリの音声を識別するように訓練されています。評価セットでは、損失率 0.5596、正解率 0.95 を達成しています。
🚀 クイックスタート
モデルをここで試すことができます:
Animal Sound Classification Spaces
✨ 主な機能
HuBERTモデルは、大量のラベルなしオーディオデータで学習された後、動物の音声分類という下流タスクに合わせてファインチューニングされています。これにより、犬、鶏、豚、牛、カエル、猫、雌鶏、昆虫、羊、カラスなどの動物の音声を識別することができ、生物音響モニタリング、教育ツール、野生生物保護活動などのアプリケーションに役立ちます。
📦 インストール
ローカルで試すには、以下のコードを使用します。
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データセットのサブセットでファインチューニングされました。ESC - 50データセットは、環境音声分類タスク用に設計された公開データセットで、このサブセットには動物の音声に関連するカテゴリのみが含まれています。データセット内の各カテゴリには40のサンプルが含まれており、モデルの訓練と評価に多様なサンプルを提供します。
訓練手順
モデルは以下の手順でファインチューニングされました。
- 前処理:オーディオファイルをスペクトログラムに変換します。
- データ分割:データを70%の訓練セット、20%のテストセット、10%の検証セットに分割します。
- ファインチューニング:モデルを訓練セットで10エポックファインチューニングします。
- 評価:各エポック後に検証セットでモデルのパフォーマンスを評価し、改善を監視し、過学習を防ぎます。
訓練ハイパーパラメータ
訓練中に以下のハイパーパラメータが使用されました。
パラメータ |
詳細 |
learning_rate |
5e - 05 |
train_batch_size |
8 |
eval_batch_size |
8 |
seed |
42 |
optimizer |
Adam (betas=(0.9,0.999), epsilon=1e - 08) |
lr_scheduler_type |
linear |
lr_scheduler_warmup_ratio |
0.1 |
num_epochs |
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リポジトリ
Animal Sound Classification
📄 ライセンス
このモデルはApache - 2.0ライセンスの下で提供されています。