Downloads · 30 days
13
9% of all-time downloads
beastLucifer/ostrich-v1-audio-mood
ostrich-v1-audio-mood is a audio classification model from beastLucifer. Use it for the audio classification task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Ostrich-v1 is a production-grade multi-label audio classification model fine-tuned for detecting musical moods in Indian music (Bollywood, Indie, Folk, Classical, Fusion, etc.). It uses a teacher–student distillation…
Downloads · 30 days
13
9% of all-time downloads
All-time downloads
141
Public
Parameters
94.6M
568 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors378 MB · 100%
From the Hugging Face model README
Ostrich-v1 is a production-grade multi-label audio classification model fine-tuned for detecting musical moods in Indian music (Bollywood, Indie, Folk, Classical, Fusion, etc.).
It uses a teacher–student distillation pipeline to map rich acoustic representations to 31 fine-grained mood dimensions, including culturally specific emotional categories.
sandychoii/distilhubert-finetuned-gtzan-audio-classificationOstrich-v1 bridges the gap between generic audio emotion models and the emotional textures unique to South Asian music.
The model is built on a DistilHuBERT backbone, fine-tuned on the Sangeetkar dataset using teacher-generated soft labels produced by a CLAP-based audio–text model.
It supports both:
The output is a 31-dimensional probability vector, allowing multiple moods to coexist per track.
beastLucifer/ostrich-v1-audio-moodbeastLucifer/sangeetkar-mood-datasetbeastLucifer/sangeetkar-teacher-labelsLabel Noise:
Labels are distilled from a teacher model. Although class-wise weighting is applied, subtle secondary moods may bleed into primary predictions.
Genre Bias:
Performance may degrade on:
Temporal Assumption:
Optimized for ≤30s chunks; long-form compositions should be chunked.
from transformers import AutoModelForAudioClassification, AutoFeatureExtractor
import torch
import librosa
model_id = "beastLucifer/ostrich-v1-audio-mood"
model = AutoModelForAudioClassification.from_pretrained(model_id)
processor = AutoFeatureExtractor.from_pretrained(model_id)
# Load audio
audio, sr = librosa.load("your_song.wav", sr=16000)
inputs = processor(
audio,
sampling_rate=16000,
return_tensors="pt"
)
# Inference
with torch.no_grad():
logits = model(**inputs).logits
probs = torch.sigmoid(logits) # multi-label probabilities
# Map predictions
id2label = model.config.id2label
predictions = {
id2label[i]: probs[0][i].item()
for i in range(len(id2label))
}
Optimizer: adamw_bnb_8bit
Learning Rate: 5e-5
Batch Size: 4 per device
Effective Batch Size: 16 (gradient accumulation)
Precision: FP16 mixed precision
Loss Function: Custom Weighted BCEWithLogitsLoss
Special Handling:
Energetic Calm Happy Sad Angry Romantic Mysterious Nostalgic Dard-bhari Masti Sufi-romantic Item Song Qawwali Vibes Judaai Tapori Chill-lofi Hype Party Dreamy Dark Motivational Melancholic Intense Peaceful Experimental Ambient Spiritual Groovy Folk Indie Electronic Classical
beastLucifer