SAVRN
Search Contact SAVRN

Open-weight model · Audio classification

wavlm-emotion-russian-resd

by Aniemore Aniemore/wavlm-emotion-russian-resd

Speech emotion recognition for Russian over seven classes: anger, disgust, enthusiasm, fear, happiness, neutral, sadness. Fine-tuned from jonatasgrosman/expw2v2truwavlms363 on Aniemore/resd.

Parameters317M
Context
Weights2.5 GB
Licensemit
AccessOpen weights
Monthly Downloads23.2k

Runs On

What it takes to serve wavlm-emotion-russian-resd (317M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.6 GB 0.8 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.3 GB 0.4 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.2 GB 0.2 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Sep 18, 2026.

Model Card

By Aniemore, published under mit, revision 7a4ca18b34ad.

Speech emotion recognition for Russian over seven classes: anger, disgust, enthusiasm, fear, happiness, neutral, sadness. Fine-tuned from jonatasgrosman/expw2v2truwavlms363 on Aniemore/resd. Audio resampled to 16 kHz mono, clips capped at 12 s, normalized per utterance, padding masked. UA is macro-averaged recall, WA is accuracy, F1 is macro-averaged. All three test sets went through the same harness, so the rows are comparable to each other. The RESD split matches fold 1 of EmoBox bit for bit. The top entry there is WavLM-large at WA 56.47 / UA 55.87 / F1 55.82. These numbers are higher, but the training protocol differs — EmoBox freezes the encoder and trains a probe, this is a full…

Read Aniemore's full model card

Speech emotion recognition for Russian over seven classes: anger, disgust, enthusiasm, fear, happiness, neutral, sadness.

Fine-tuned from jonatasgrosman/exp_w2v2t_ru_wavlm_s363 on Aniemore/resd.

  • Parameters: 317M · weights: 1207 MiB (fp32)
  • Input: 16 kHz mono waveform
  • Quantized builds: wavlm-emotion-russian-resd-quantized — INT8, FP8 and INT4, up to 5.8x smaller on disk at the same score

Results

Test set n UA WA macro-F1
RESD test 280 0.8058 0.8071 0.8026
Dusha podcast test 12079 0.3259 0.1043 0.1116
CAMEO test 5187 0.2283 0.2585 0.2104

Usage

import torch, librosa
from transformers import AutoModelForAudioClassification, AutoFeatureExtractor

repo = "Aniemore/wavlm-emotion-russian-resd"
model = AutoModelForAudioClassification.from_pretrained(repo).eval()
fe = AutoFeatureExtractor.from_pretrained(repo)

# Resample to 16 kHz. RESD ships at 44.1 kHz, and 44.1 kHz audio
# labelled as 16 kHz is stretched 2.8x in time — the model answers,
# it just answers about other audio.
wav, _ = librosa.load("clip.wav", sr=16000, mono=True)
x = fe(wav, sampling_rate=16000, return_tensors="pt", padding=True)
with torch.no_grad():
    logits = model(**x).logits

probs = logits.softmax(-1)[0]
print({model.config.id2label[i]: round(p.item(), 3) for i, p in enumerate(probs)})
Loading the audio without librosa
# torchaudio
import torchaudio
wav, sr = torchaudio.load("clip.wav")
wav = torchaudio.functional.resample(wav, sr, 16000).mean(0).numpy()

# torchcodec, the newer decoder
from torchcodec.decoders import AudioDecoder
wav = AudioDecoder("clip.wav", sample_rate=16000).get_all_samples().data.mean(0).numpy()

# straight from the dataset — `datasets` resamples on the column, so
# the mixed 16/44.1 kHz in RESD is handled for you
from datasets import load_dataset, Audio
ds = load_dataset("Aniemore/resd", split="test")
ds = ds.cast_column("speech", Audio(sampling_rate=16000))
wav = ds[0]["speech"]["array"]

Evaluation protocol

Audio resampled to 16 kHz mono, clips capped at 12 s, normalized per utterance, padding masked. UA is macro-averaged recall, WA is accuracy, F1 is macro-averaged. All three test sets went through the same harness, so the rows are comparable to each other.

The RESD split matches fold 1 of EmoBox bit for bit. The top entry there is WavLM-large at WA 56.47 / UA 55.87 / F1 55.82. These numbers are higher, but the training protocol differs — EmoBox freezes the encoder and trains a probe, this is a full fine-tune — so read it as a different recipe on the same split, not as a like-for-like win.

Limitations

RESD is acted and class-balanced. Real speech is neither. The Dusha podcast row above is the honest signal for spontaneous audio, and it is far below the RESD row. Spontaneous Russian is roughly 93% neutral, and a model tuned on balanced acted data over-predicts the emotional classes on it. Measure on your own material, and calibrate the neutral logit if you deploy.

Seven classes only, Russian only, single-speaker clips.

Citation

@misc{aniemore,
  author = {Lubenets, Ilya and Davidchuk, Nikita and Amentes, Aleksandr},
  title  = {Aniemore: an open library for emotion recognition in Russian speech},
  url    = {https://github.com/Aniemore/Aniemore},
  year   = {2023}
}

License

MIT.

Configuration

Architecture
WavLMForSequenceClassification
Layers
24
Hidden size
1,024
Feed-forward size
4,096
Attention heads
16
Vocabulary size
40
Stored precision
float32
Model type
wavlm

Identity and Version

Repository
Aniemore/wavlm-emotion-russian-resd
Publisher
Aniemore
Task
Audio classification
Modality
Audio
Library
transformers
Parameters
317M parameters
Languages
ru
Revision
7a4ca18b34adff59b56b451acc7ff44fc43a12dc
First published
2023-02-13
Last updated
2026-08-01

Files and Weights

11 files, 2.5 GB in total. The weights are 2 files totalling 2.5 GB in bin, safetensors.

Weights2 files · 2.5 GB
Configuration3 files · 3.2 KB
Tokenizer2 files · 930 B
Documentation1 file · 5.4 KB
Other2 files · 16.9 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights1.3 GB dabf15d84b45
pytorch_model.binWeights1.3 GB f9c7f72bbf58
config.jsonConfiguration2.9 KB
preprocessor_config.jsonConfiguration214 B
special_tokens_map.jsonConfiguration96 B
README.mdDocumentation5.4 KB
assets/confusion.svgOther14.1 KB
assets/panel.svgOther2.8 KB
.gitattributesRepository1.5 KB
tokenizer_config.jsonTokenizer451 B
vocab.jsonTokenizer479 B

License and Download

License
mit
Access
Open weights, no gate
Download size
2.5 GB
Download from Aniemore

Released by Aniemore through its official repository on Hugging Face. Read the license.

Built From

  • Derived from jonatasgrosman/exp_w2v2t_ru_wavlm_s363
  • Trained on (disclosed) Aniemore/resd
  • Trained on (disclosed) Aniemore/resd_annotated

Evaluations

Each result is shown as reported, with the conditions its reporter stated. None is a SAVRN measurement. A comparison lines two results up only when their configuration, unit and setup are all stated and identical.

BenchmarkConditionsResultReported byRevisionDate
CAMEO test Task Speech Emotion RecognitionMetric AccuracyComparison conditions not established 0.2585 Aniemore
Publisher reported
Evaluated revision not stated
CAMEO test Task Speech Emotion RecognitionMetric Macro F1Comparison conditions not established 0.2104 Aniemore
Publisher reported
Evaluated revision not stated
CAMEO test Task Speech Emotion RecognitionMetric Unweighted accuracyComparison conditions not established 0.2283 Aniemore
Publisher reported
Evaluated revision not stated
Dusha podcast test Task Speech Emotion RecognitionMetric AccuracyComparison conditions not established 0.1043 Aniemore
Publisher reported
Evaluated revision not stated
Dusha podcast test Task Speech Emotion RecognitionMetric Macro F1Comparison conditions not established 0.1116 Aniemore
Publisher reported
Evaluated revision not stated
Dusha podcast test Task Speech Emotion RecognitionMetric Unweighted accuracyComparison conditions not established 0.3259 Aniemore
Publisher reported
Evaluated revision not stated
RESD test Task Speech Emotion RecognitionMetric AccuracyComparison conditions not established 0.8071 Aniemore
Publisher reported
Evaluated revision not stated
RESD test Task Speech Emotion RecognitionMetric Macro F1Comparison conditions not established 0.8026 Aniemore
Publisher reported
Evaluated revision not stated
RESD test Task Speech Emotion RecognitionMetric Unweighted accuracyComparison conditions not established 0.8058 Aniemore
Publisher reported
Evaluated revision not stated

Memory Requirements

PrecisionWeights in memory
As published2.5 GB
16-bit0.6 GB
8-bit0.3 GB
4-bit0.2 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About wavlm-emotion-russian-resd

How much GPU memory does wavlm-emotion-russian-resd need?

About 0.8 GB at 16-bit and 0.2 GB at 4-bit: the weights (317M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run wavlm-emotion-russian-resd on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use wavlm-emotion-russian-resd commercially?

Yes. wavlm-emotion-russian-resd is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.

Similar Models

The model is a fine-tuned version of jonatasgrosman/wav2vec2-large-xlsr-53-english for a Speech Emotion Recognition (SER) task. The dataset used to fine-tune the original pre-trained model is the RAVDESS dataset. This dataset provides 1440 samples of recordings from actors performing on 8 different emotions in English, which are: It achieves the following results on the evaluation set: The following hyperparameters were used during training: - learningrate: 0.0001 - trainbatchsize: 4 - evalbatchsize: 4 - gradientaccumulationsteps: 2 - totaltrainbatchsize: 8 - lrschedulertype: linear - numepochs: 3 - mixedprecisiontraining: Native AMP Any doubt, contact me on Twitter. - Transformers 4.8.2…

Open weights apache-2.0 316M parameters transformers

Speech emotion recognition for Russian over seven classes: anger, disgust, enthusiasm, fear, happiness, neutral, sadness. Fine-tuned from jonatasgrosman/wav2vec2-large-xlsr-53-russian on Aniemore/resd. Audio resampled to 16 kHz mono, clips capped at 12 s, normalized per utterance, padding masked. UA is macro-averaged recall, WA is accuracy, F1 is macro-averaged. All three test sets went through the same harness, so the rows are comparable to each other. The RESD split matches fold 1 of EmoBox bit for bit. The top entry there is WavLM-large at WA 56.47 / UA 55.87 / F1 55.82. These numbers are higher, but the training protocol differs — EmoBox freezes the encoder and trains a probe, this is a…

Open weights mit 316M parameters transformers

The pre-trained model is this one - facebook/hubert-large-ls960-ft The DUSHA dataset used can be found here Fine-tuned in Google Colab using Pro account with A100 GPU Freezed all layers exept projector, classifier and all 24 HubertEncoderLayerStableLayerNorm layers Used half of the train dataset - 2 epochs - train batch size = 8 - eval batch size = 8 - gradient accumulation steps = 4 - learning rate = 5e-5 without warm up and decay Achieved - accuracy = 0.86 - balanced = 0.76 - macro f1 score = 0.81 on test set, improving accucary and f1 score compared to dataset baseline

Open weights apache-2.0 316M parameters transformers

This model is a fine-tuned version of facebook/wav2vec2-xls-r-300m on Librispeech-clean-100 for gender recognition. It achieves the following results on the evaluation set: The Librispeech-clean-100 dataset was used to train the model, with 70% of the data used for training, 10% for validation, and 20% for testing. The following hyperparameters were used during training: - learningrate: 3e-05 - trainbatchsize: 4 - evalbatchsize: 4 - gradientaccumulationsteps: 4 - totaltrainbatchsize: 16 - lrschedulertype: linear - lrschedulerwarmupratio: 0.1 - numepochs: 1 - mixedprecisiontraining: Native AMP - Transformers 4.28.0 - Pytorch 2.0.0+cu118 - Tokenizers 0.13.3

Open weights apache-2.0 316M parameters transformers

Model · Audio classification

wav2vec-vm-finetune

Jake Downie

This model is a fine-tuned version of facebook/wav2vec2-xls-r-300m for voicemail detection. It is trained on a dataset of call recordings to distinguish between voicemail greetings and live human responses. This model builds on wav2vec2-xls-r-300m, a self-supervised speech model trained on large-scale multilingual data. We fine-tuned it on the first two seconds of a call. - Automated voicemail detection in AI-powered call assistants. - Filtering voicemail responses in customer service and sales call automation. - Only trianed on the English language. - Assumes the voicemail track is isolated and contains no audio from the caller. - Designed for the first two seconds of audio when calling a…

Open weights apache-2.0 316M parameters transformers