ai-coustics/aic_test_calls_en
aic_test_calls_en An evaluation dataset of real far end call recordings for accurate speaker transcription under realistic conditions. The dataset provides around 35 minutes of genuine team and test calls recorded at ai-coustics, captured under real-world acoustic and transmission conditions — real rooms, real devices, real meeting and telephony channels — together with human-produced ground-truth transcripts. No clean speech reference exists; evaluation is transcript-based.… See the full description on the dataset page: https://huggingface.co/datasets/ai-coustics/aic_test_calls_en.
aictestcalls_en
An evaluation dataset of real far end call recordings for accurate speaker transcription under realistic conditions.
The dataset provides around 35 minutes of genuine team and test calls recorded at ai-coustics, captured under real-world acoustic and transmission conditions — real rooms, real devices, real meeting and telephony channels — together with human-produced ground-truth transcripts. No clean speech reference exists; evaluation is transcript-based.
Dataset Description
Direct Use
This dataset is intended for evaluation of speech processing systems on genuine call audio in conditions relevant to downstream speech-to-text systems.
Technical Details
- 83 clips with a total duration of 00:35:29 [hh:mm:ss]
- Minimum duration: 5.54 s
- Maximum duration: 54.44 s
- Mean duration: 25.65 s
- 16 kHz sampling rate, 16-bit, mono
- 4 speakers, all recorded with informed consent
- Voice gender distribution: 64 % female-sounding voices, 36 % male-sounding voices (2 of 4 speakers each)
Dataset Structure
Each row in the dataset contains the following fields:
- `mix`: 16 kHz WAV audio of the call recording
- `transcript`: Ground-truth transcription corresponding to the
mixaudio - `id`: Opaque unique sample identifier (random short uid)
- `speaker_id`: Numeric identifier of the primary speaker
- `index`: Integer index distinguishing multiple samples from the same speaker
- `mix__vad__human`: Human voice-activity ground truth for the
mixaudio — an.npzmarking where the foreground speaker is talking, at one label per 10 ms. See Human VAD labels
Dataset Sources
Audio
- Segments of dedicated test calls recorded in different locations
- Captured through the recording features of the call platforms and receiver devices. The acoustic conditions (rooms, background sounds) and transmission effects (codecs, network) occurred naturally during the calls.
Transcriptions
- All transcripts are quality-checked by AIC staff.
VAD labels
- Annotated by AIC staff, drawn as spans on the waveform against the
mixaudio. - Foreground speaker only — background talkers present in the mix are deliberately left unmarked.
- Annotation was seeded with
pyannote-segmentation-3.0(4.0.6) and corrected by hand. Labelling tool version 0.2.4. - Aligned to the untrimmed
mixaudio, so they are row-aligned with every other field.
Dataset Details
- Curated by: Joschka Wohlgemuth
- Funded by: ai-coustics GmbH
- Language: English
- License: CC BY-NC 4.0
- Contact:
- Email: info@ai-coustics.com
- Web: https://ai-coustics.com
Citation
@dataset{aic_test_calls_en,
title = {aic_test_calls_en: An evaluation dataset of real call recordings for accurate speaker transcription},
author = {Joschka Wohlgemuth},
year = {2026},
publisher = {ai-coustics GmbH},
license = {CC BY-NC 4.0},
url = {https://ai-coustics.com}
}Human VAD labels
mix__vad__human carries human voice-activity ground truth for every clip. Each cell is a {bytes, path} struct holding one .npz:
n_frames equals ceil(duration * 100) for every clip — the trailing partial 10 ms window carries a label, so the track can be one frame longer than the audio. The foreground speaker is active on 42.9% of frames across the set.
These labels answer "is the target speaker talking", not "is anyone talking" — which is the question a voice-focus model is scored against. An all-speech VAD evaluated here will be penalised for background speech it detects correctly.
import io, numpy as np
from datasets import load_dataset
ds = load_dataset("ai-coustics/aic_test_calls_en", split="eval")
with np.load(io.BytesIO(ds[0]["mix__vad__human"]["bytes"]), allow_pickle=False) as d:
fg = d["foreground_speaker"] # bool, one entry per 10 ms
fr = float(d["frame_rate_hz"]) # 100.0