Views
No views yet
facebook/wav2vec2-base-960h| Metric | Score |
|---|---|
| Accuracy | 79.94% |
| F1 Score | 79.65% |
| Validation Loss | 0.644 |
Note: Achieved stable convergence using a Cosine Learning Rate Scheduler and Frozen Feature Extractor.
1from transformers import AutoModelForAudioClassification, Wav2Vec2Processor
2import torch
3import torchaudio
4import numpy as np
5
6# 1. Load Model and Processor
7model_id = "Dpngtm/wav2vec2-emotion-recognition"
8model = AutoModelForAudioClassification.from_pretrained(model_id)
9processor = Wav2Vec2Processor.from_pretrained(model_id)
10
11# 2. Load Audio
12# Replace with your file path
13audio_path = "path_to_audio.wav"
14speech_array, sampling_rate = torchaudio.load(audio_path)
15
16# 3. Resample to 16kHz (CRITICAL STEP)
17if sampling_rate != 16000:
18 resampler = torchaudio.transforms.Resample(sampling_rate, 16000)
19 speech_array = resampler(speech_array)
20 sampling_rate = 16000
21
22# 4. Handle Stereo (Convert to Mono)
23if speech_array.shape[0] > 1:
24 speech_array = torch.mean(speech_array, dim=0, keepdim=True)
25
26# 5. Process & Predict
27inputs = processor(speech_array.squeeze(), sampling_rate=16000, return_tensors="pt", padding=True)
28
29with torch.no_grad():
30 logits = model(**inputs).logits
31
32# 6. Decode Result
33predicted_id = torch.argmax(logits, dim=-1).item()
34id2label = model.config.id2label
35predicted_label = id2label[predicted_id]
36
37print(f"Predicted Emotion: {predicted_label}")