alt.freeweights.speech / wav2vec2-emotion-recognition
From: Dpngtm <huggingface.co/Dpngtm>Newsgroups: alt.freeweights.speechSubject:

wav2vec2-emotion-recognition

Date: 2026-11-15Commit: 033a575Signed: 2DC28CC7B26A283B ✓

Audio classification model with 95M parameters. Safetensors weights, 378 MB in all. Published by Dpngtm under MIT.

95M params378MBwav2vec2-emotion-recognitionsafetensorspermissive
FactsParams95MSize378 MBFormatssafetensorsTaskaudio classificationLicenseMITFrom sourcepermissive
$ fw get Dpngtm/wav2vec2-emotion-recognition
# manifest sha256 9f57d4f99a1e… · 378 MB · 10 files
$ fw verify ./wav2vec2-emotion-recognition Dpngtm/wav2vec2-emotion-recognition
From sourceHosted (signed)Dpngtm/wav2vec2-emotion-recognitionLast check: 2026-11-15 03:26 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
378 MB
Weights
378 MB (safetensors)
Parameters
95M
Formats
safetensors
Task
audio classification
License
MIT (permissive)
Files
10, each with a sha256
Publisher
Dpngtm
Added
2026-11-15
Section
alt.freeweights.speech
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commitโ†’You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:26 UTCpassed

Model card

From the publisher at commit 033a575. Shown as plain text with links; images open at the publisher.

wav2vec2-emotion-recognition (Robust Fine-Tuning)#

This model is a fine-tuned version of facebook/wav2vec2-base-960h for Speech Emotion Recognition (SER).

It has been trained using a Frozen Feature Extractor strategy to preserve the model's acoustic understanding while adapting to emotion detection. This approach ensures stable performance and prevents "Catastrophic Forgetting," achieving nearly 80% accuracy on the validation set.

Update: The "Calm" and "Neutral" classes have been merged to improve classification consistency, resulting in 7 distinct emotion classes.

Model Description#

  • Model Architecture: Wav2Vec2 with a frozen CNN feature extractor and a trainable sequence classification head.
  • Language: English
  • Task: Speech Emotion Recognition (SER)
  • Fine-tuned from: facebook/wav2vec2-base-960h
  • Class Merging: The "Calm" emotion has been merged into "Neutral" to reduce label ambiguity.
Datasets#

The model was trained on a combined dataset of ~12,000 audio files from:

Performance Metrics#

MetricScore
Accuracy79.94%
F1 Score79.65%
Validation Loss0.644

Note: Achieved stable convergence using a Cosine Learning Rate Scheduler and Frozen Feature Extractor.

Supported Emotions (7 Classes)#

The model classifies audio into one of the following emotions:

  1. ๐Ÿ˜  Angry
  2. ๐Ÿคข Disgust
  3. ๐Ÿ˜จ Fear
  4. ๐Ÿ˜Š Happy
  5. ๐Ÿ˜ Neutral (includes Calm)
  6. ๐Ÿ˜ข Sad
  7. ๐Ÿ˜ฒ Surprise

Training Configuration#

The model was fine-tuned using the following "Robust" configuration to ensure stability on Google Colab T4 GPUs:

  • Feature Extractor: FROZEN (Locked weights to preserve pre-trained acoustic features)
  • Epochs: 10
  • Learning Rate: 3e-5
  • Scheduler: Cosine Decay (Smooth landing)
  • Batch Size: 4 (Physical) / 16 (Effective via Gradient Accumulation)
  • Optimizer: AdamW
  • Precision: fp32 (Standard precision to prevent gradient underflow)

Limitations#

Audio Requirements:#
  • Sampling Rate: 16kHz (Model will hallucinate if input is not 16kHz. Resampling is required.)
  • Duration: < 10 seconds recommended (Longer files should be chunked).
  • Environment: Best results with clear speech; background noise may reduce confidence.

Demo#

Try the model in your browser: ๐Ÿ‘‰ Hugging Face Space: Audio Emotion Recognition

FINETUNING NOTEBOOOKS#

Notebook

Contact#

For issues and questions, feel free to:

  1. Open an issue on the Model Repository
  2. Comment on the Demo Space

Usage#

from transformers import AutoModelForAudioClassification, Wav2Vec2Processor
import torch
import torchaudio
import numpy as np

# 1. Load Model and Processor
model_id = "Dpngtm/wav2vec2-emotion-recognition"
model = AutoModelForAudioClassification.from_pretrained(model_id)
processor = Wav2Vec2Processor.from_pretrained(model_id)

# 2. Load Audio
# Replace with your file path
audio_path = "path_to_audio.wav" 
speech_array, sampling_rate = torchaudio.load(audio_path)

# 3. Resample to 16kHz (CRITICAL STEP)
if sampling_rate != 16000:
    resampler = torchaudio.transforms.Resample(sampling_rate, 16000)
    speech_array = resampler(speech_array)
    sampling_rate = 16000

# 4. Handle Stereo (Convert to Mono)
if speech_array.shape[0] > 1:
    speech_array = torch.mean(speech_array, dim=0, keepdim=True)

# 5. Process & Predict
inputs = processor(speech_array.squeeze(), sampling_rate=16000, return_tensors="pt", padding=True)

with torch.no_grad():
    logits = model(**inputs).logits

# 6. Decode Result
predicted_id = torch.argmax(logits, dim=-1).item()
id2label = model.config.id2label
predicted_label = id2label[predicted_id]

print(f"Predicted Emotion: {predicted_label}")

Files

10 files ยท 378 MBWeights 378 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 10 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md4.88 KBb320e625788049725bf587d2bdfb30afb8325ee30686bf15bc85588c9ad78d5d
config.json2.37 KB219fe4ea30d255c4fa0de7070b3f0c6f1277f741a492594f589d046951e9635f
model.safetensors378 MB19c9ffbfd4a6e75f15fa789e4b0c4c028af0b3ecb8bab4d6105321f77dc6a0d4
preprocessor_config.json257 B617bd0950f8cc9ac4062e8c73a7be60305ca5790a243df55fa6f44fb671b55b1
runs/reconstructed/events.out.tfevents.1768846795.b004a82bd71f.2662.013.0 KBd8ead51360e5b3979234bf35b1f657663832a1d7a0816877cea145586f4a7d76
special_tokens_map.json96 B9046da57c270c8e74d0f38832b4adce269c9d914ef21d2a0925e7772152dd793
tokenizer_config.json1.18 KB6f2b1da40bb8a9838af8639cb672bfa4d9bc98fed7a7cea38452eb3afc30e430
training_args.bin5.30 KB12e850157104fb63d82373c93c9020d69e433ce6c0f4b77daf03698dd4b742c0
vocab.json358 B4178db26b3c7570f6a47f14ac6a1c7b32950b8c2800fb097287e53776934f1c5
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
033a5751a5 pinned now2026-11-15 03:26 UTC10 files ยท 378 MB

Use it

$ fw get Dpngtm/wav2vec2-emotion-recognition
# manifest sha256 9f57d4f99a1e… · 378 MB · 10 files
$ fw verify ./wav2vec2-emotion-recognition Dpngtm/wav2vec2-emotion-recognition
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/Dpngtm/wav2vec2-emotion-recognition.json --dir ./wav2vec2-emotion-recognition $ python3 fw.py verify ./wav2vec2-emotion-recognition ./Dpngtm__wav2vec2-emotion-recognition.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Dpngtm/wav2vec2-emotion-recognition --revision 033a5751a5bbe5b0b67c2c71e6102c38de35a346 --local-dir ./wav2vec2-emotion-recognition

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
b320e625788049725bf587d2bdfb30afb8325ee30686bf15bc85588c9ad78d5d
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: Dpngtm <huggingface.co/Dpngtm>Newsgroups: alt.freeweights.speechSubject: wav2vec2-emotion-recognitionDate: 2026-11-15Commit: 033a575Signed: 2DC28CC7B26A283B ✓
Upstream
Dpngtm/wav2vec2-emotion-recognition
Pinned commit
033a5751a5bbe5b0b67c2c71e6102c38de35a346
Manifest
wav2vec2-emotion-recognition.json ยท .minisig
Manifest sha256
9f57d4f99a1e3100bf8db5e83d3ba39ce1cfb4d8448d746399aaf54e5d610db0
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:26 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/Dpngtm/wav2vec2-emotion-recognition.json $ curl -O https://freeweights.allternit.com/manifests/Dpngtm/wav2vec2-emotion-recognition.json.minisig $ minisign -Vm wav2vec2-emotion-recognition.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Dpngtm/wav2vec2-emotion-recognition
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. wav2vec2-emotion-recognition.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of wav2vec2-emotion-recognition. Each has its own license check and page.

From: MIT <huggingface.co/MIT>Subject: ast-finetuned-audioset-10-10-0.4593
From: onnx-community <huggingface.co/onnx-community>Subject: ast-finetuned-audioset-10-10-0.4593-ONNX
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Preview-0.6b
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Realistic-Air
From: facebook <huggingface.co/facebook>Subject: audiobox-aesthetics
From: mlx-community <huggingface.co/mlx-community>Subject: chatterbox-4bit