Aniemore/resd_annotated

Dataset

11

stars

27

commits

1

linked in READMEs

Aug 1, 2026

updated

emotion-recognition
russian
speech

README

RESD (Annotated)

RESD (Annotated)

RESD with a transcript for every clip.

How it was recorded

RESD was recorded in a studio by 20 voice actors. There was no script: the actors were not handed lines to read. Instead each actor in a pair was privately given an emotion to play, and the dialogue was improvised from there. So the words are spontaneous while the emotion is deliberate — which is the point, and also the limit. The label describes what the actor was told to convey, not what a listener independently judged.

Splits

SplitRowsHoursMean clip
train11161.886.1 s
test2800.465.9 s
Class distribution

Fields

ColumnMeaning
nameClip identifier
pathOriginal file path
speechAudio
textTranscript of the utterance
emotionEmotion label of the recording

[!IMPORTANT] The sample rate is not uniform. In train 565 clips are 16000 Hz, 551 clips are 44100 Hz. Ask for one rate when you load, and do not tell a feature extractor the audio is 16 kHz when it is 44.1 kHz: that stretches time 2.8x and silently changes the answer instead of raising.

datasets does the resampling itself — declare the rate on the column and every clip arrives at it:

from datasets import load_dataset, Audio

ds = load_dataset("Aniemore/resd_annotated")
ds = ds.cast_column("speech", Audio(sampling_rate=16000))
wav = ds["train"][0]["speech"]["array"]   # 16 kHz, float32

If you are handling files yourself instead, any of these will do the same job: librosa.load(path, sr=16000, mono=True), torchaudio.load followed by torchaudio.transforms.Resample, or torchcodec.decoders.AudioDecoder with a target rate.

Usage

from datasets import load_dataset

ds = load_dataset("Aniemore/resd_annotated")
print(ds["train"][0]["emotion"])

Limitations

Acted emotion is not spontaneous emotion. The classes here are near-balanced, while unscripted Russian speech is overwhelmingly neutral, so a model that scores well on this test set can still miss most of the neutral speech it meets in production. Treat a RESD score as a comparison between models, not as a readiness signal.

Citation

@misc{Aniemore,
  author = {Артем Аментес, Илья Лубенец, Никита Давидчук},
  title = {Открытая библиотека искусственного интеллекта для анализа и выявления эмоциональных оттенков речи человека},
  year = {2022},
  publisher = {Hugging Face},
  journal = {Hugging Face Hub},
  howpublished = {\url{https://huggingface.com/aniemore/Aniemore}},
  email = {hello@socialcode.ru}
}

License

MIT.

Contributors

Ar4ikov

24 commits

librarian-bot

1 commits

Aniemore/resd_annotated

Dataset

11

stars

27

commits

1

linked in READMEs

Aug 1, 2026

updated

emotion-recognition
russian
speech

README

RESD (Annotated)

RESD (Annotated)

RESD with a transcript for every clip.

How it was recorded

RESD was recorded in a studio by 20 voice actors. There was no script: the actors were not handed lines to read. Instead each actor in a pair was privately given an emotion to play, and the dialogue was improvised from there. So the words are spontaneous while the emotion is deliberate — which is the point, and also the limit. The label describes what the actor was told to convey, not what a listener independently judged.

Splits

SplitRowsHoursMean clip
train11161.886.1 s
test2800.465.9 s
Class distribution

Fields

ColumnMeaning
nameClip identifier
pathOriginal file path
speechAudio
textTranscript of the utterance
emotionEmotion label of the recording

[!IMPORTANT] The sample rate is not uniform. In train 565 clips are 16000 Hz, 551 clips are 44100 Hz. Ask for one rate when you load, and do not tell a feature extractor the audio is 16 kHz when it is 44.1 kHz: that stretches time 2.8x and silently changes the answer instead of raising.

datasets does the resampling itself — declare the rate on the column and every clip arrives at it:

from datasets import load_dataset, Audio

ds = load_dataset("Aniemore/resd_annotated")
ds = ds.cast_column("speech", Audio(sampling_rate=16000))
wav = ds["train"][0]["speech"]["array"]   # 16 kHz, float32

If you are handling files yourself instead, any of these will do the same job: librosa.load(path, sr=16000, mono=True), torchaudio.load followed by torchaudio.transforms.Resample, or torchcodec.decoders.AudioDecoder with a target rate.

Usage

from datasets import load_dataset

ds = load_dataset("Aniemore/resd_annotated")
print(ds["train"][0]["emotion"])

Limitations

Acted emotion is not spontaneous emotion. The classes here are near-balanced, while unscripted Russian speech is overwhelmingly neutral, so a model that scores well on this test set can still miss most of the neutral speech it meets in production. Treat a RESD score as a comparison between models, not as a readiness signal.

Citation

@misc{Aniemore,
  author = {Артем Аментес, Илья Лубенец, Никита Давидчук},
  title = {Открытая библиотека искусственного интеллекта для анализа и выявления эмоциональных оттенков речи человека},
  year = {2022},
  publisher = {Hugging Face},
  journal = {Hugging Face Hub},
  howpublished = {\url{https://huggingface.com/aniemore/Aniemore}},
  email = {hello@socialcode.ru}
}

License

MIT.

Contributors

Ar4ikov

24 commits

librarian-bot

1 commits