CoolFace
Datasetpublic

NbAiLab/nb-asr-qwen3whisperxagreement-v1

nb-asr-qwen3whisperxagreement-v1 Word-level forced alignment training data for Norwegian speech, produced by keeping only examples where two independent aligners — WhisperX and Qwen3 (Lunde forced aligner) — agree within a tight tolerance. Dataset Description This dataset contains 702,067 speech segments drawn from the NB-ASR Norwegian audio corpus. Each record pairs an audio file with a word-level forced alignment in a format suitable for training a… See the full description on the dataset page: https://huggingface.co/datasets/NbAiLab/nb-asr-qwen3whisperxagreement-v1.

sourceHugging Facecc-by-4.0updated 4mo agoView on Hugging Face
0likes10downloads
Dataset Card

nb-asr-qwen3whisperxagreement-v1

Word-level forced alignment training data for Norwegian speech, produced by keeping only examples where two independent aligners — WhisperX and Qwen3 (Lunde forced aligner) — agree within a tight tolerance.

Dataset Description

This dataset contains 702,067 speech segments drawn from the NB-ASR Norwegian audio corpus. Each record pairs an audio file with a word-level forced alignment in a format suitable for training a <timestamp>-predicting sequence model (e.g. Qwen3 fine-tuning).

Timestamps are represented as integer frame indices at 80 ms resolution (12.5 frames/sec), matching the feature-frame rate used during alignment.

How the data was created

Two forced-alignment systems were run independently on the same audio:

SystemSource
WhisperXwhisperx_pseudo_labels/output/all_whisper_raw.jsonl
Qwen3 / Lunde alignerlunde_alignment_results/verbatim/all.jsonl

For each sample, word boundaries from the two systems were compared after converting both to 80 ms frame indices. A pair of alignments is kept only when every word satisfies:

  • —|start_whisperx − start_qwen3| ≤ 2 frames (≤ 160 ms)
  • —|end_whisperx − end_qwen3| ≤ 5 frames (≤ 400 ms)

Samples with a different word count between the two systems are rejected outright.

Filtering outcome (from `filter_by_whisperx.py`):

OutcomeCount
Total candidates1,637,091
Kept (agreed)702,067
Rejected — end tolerance exceeded427,575
Rejected — start tolerance exceeded87,503
Rejected — word count mismatch12,487

~42.9 % of candidates passed the agreement filter.

Data Format

Each record is a JSON object with four fields:

FieldTypeDescription
idstringUnique segment identifier (derived from audio filename and timestamps)
audiostringAbsolute path to the 16 kHz mono WAV file
textstringWords interleaved with <timestamp> placeholder tokens
labelslist[int]Frame-index labels; -100 (ignore) at word positions, start_frame and end_frame at <timestamp> positions

Example record

json
{
  "id": "DVNA20000613_1609520_1623520",
  "audio": "/nird/datalake/NS30001K/nb-asr-audio/wav16mono/ad/31/DVNA20000613_1609520_1623520.wav",
  "text": "Alle <timestamp> <timestamp> de <timestamp> <timestamp> fem <timestamp> <timestamp> ...",
  "labels": [-100, 3, 6, -100, 6, 8, -100, 8, 11, ...]
}

The text and labels fields align token-by-token:

token:  Alle  <timestamp>  <timestamp>  de  <timestamp>  <timestamp>  ...
label:  -100       3            6       -100      6            8       ...

Frame index 3 corresponds to 3 × 0.08 s = 0.24 s.

Intended Use

This dataset is intended for supervised fine-tuning of models that predict word-level timestamps from audio, particularly those using a <timestamp> token scheme. The double-agreement filter provides higher-confidence ground-truth boundaries than using either aligner alone.

Source Audio

Audio originates from the NB-ASR Norwegian broadcast and parliamentary speech corpus. Files are 16 kHz mono WAV, stored at paths under /nird/datalake/NS30001K/nb-asr-audio/.

License

Creative Commons Attribution 4.0 International (CC BY 4.0)