Benchmarktiming · eval

How precisely do speech systems time words?

100k
hand-labelled word boundaries · conversational, stuttered and read speech
21
systems · forced aligners and ASR systems, local and commercial APIs
8
test conditions · Buckeye, FluencyBank, and TIMIT clean plus five noise levels

How precisely do speech systems place word boundaries? The nyra speech timing benchmark scores forced aligners and ASR systems against 100,000 hand-labelled words on conversational, stuttered and noisy speech, and measures how fast each one runs.

Speech recognition is usually judged on what was said, but when it was said can be just as fundamental. Word timing is a cornerstone of clinical speech analysis, where speech rate, pause durations and the length of disfluencies are computed from word boundaries. It places the cuts in automated video and podcast editing, and subtitling and dubbing depend on it as well.

Accurate timing also makes for better speech datasets. Precise boundaries let long recordings be segmented cleanly into training examples, and precise word-level timings add a layer of annotation that models can learn from: pauses, overlaps and turn-taking become measurable, so the modelling of conversational dynamics can be supported by placing words and sounds precisely in time. Timings can also be used as conditioning during training. A text-to-speech model that sees where each word starts and ends in its training data learns to follow those positions, so at inference it can be told when to speak each word, how long to pause, or where a laugh or a breath belongs. Better timings also enable cleaner losses. PINT, for example, uses word boundaries in its word-contrastive loss, which pulls each word's frames towards the same word spoken by another voice.

Most speech systems now return word timestamps, but their accuracy is rarely reported. This benchmark makes word-timing accuracy comparable across providers and methods, so that users can choose the right tool for their application. It is part of the measuring line of our research program.

The setup

Datasets, systems and metrics

We use three corpora with hand-labelled word boundaries: Buckeye (conversational interviews, 80,507 words), FluencyBank (people who stutter, 5,487 words) and TIMIT (read sentences, 14,043 words), the last one also with added noise.

Forced aligners are given the transcript and only place it in time. ASR systems transcribe and time in one go; their output is text-aligned to the reference and only correctly recognised words are timed, so timing is scored separately from transcription. Every table therefore also reports word recall, the share of reference words a system's timing numbers cover.

The main metric is Acc@X, the share of words whose start and end both lie within X of the reference. 25 ms is roughly the length of a phone; 200 ms is “roughly right”. We also report the mean absolute boundary error (MAE, the average of a word's start and end error) and mIoU, the mean intersection over union of predicted and reference word intervals: the time both intervals share, divided by the time either covers. A word placed exactly scores 100%, a word that does not overlap its reference at all scores 0%. Unlike MAE, IoU is relative to the word's length, so a 30 ms error costs more on a short function word than on a long content word.

Speed is how many times faster than real time a system processes one 20-second clip, measured one clip at a time on a single NVIDIA L40 GPU (MFA runs on CPU), or as the full request time for commercial APIs: uploading the audio, queueing, processing and returning the response. These requests were sent one at a time from a cloud VM in Montréal with a fast connection (Ookla speed test against a Montréal server: about 7.8 Gbit/s down, 17 Gbit/s up and 0.7 ms ping). The measured time still depends on the route to each provider and its load at the time, so it reflects the latency a client sees rather than the speed of the model alone.

MFA is listed twice: with its default search beam (10, retry 40) and with a wide beam (400, retry 4000), which drops almost no utterances but is slightly slower.

Accuracy vs. speed

Accuracy vs. speed

The chart plots mean boundary error on Buckeye against processing speed. The Pareto frontier connects the systems that no other system beats on both axes at once.

Buckeye · conversational speech · mean word-boundary error vs. speedBoundary error vs. speed
Pareto frontierforced alignerASR systemfilled local · hollow commercial API
Boundary error vs. speed20 ms40 ms60 ms80 ms100 ms120 ms140 ms1×10×100×1000×real timespeed · × real time, log scale · faster to the rightboundary error · lower is betternyra forced alignerMFA (wide beam)Olewave Olign v1MFA (default beam)Fish AudioQwen3-FACrisperWhisper 2.0MWA (Buckeye model)*MWA (TIMIT model)*xAI Grok STTMMS-FACTC-SegmentationCartesia Ink-WhisperElevenLabs CueMAI-Transcribe-2AssemblyAI U-3.5 ProNeMo FADeepgram Nova-3Canary 1B v2WhisperX
Hover a mark for details. Speed: one clip at a time on a single NVIDIA L40 GPU after warm-up (MFA on CPU); commercial APIs are timed end to end (upload, queueing, response) from a cloud VM in Montréal (about 7.8 Gbit/s down, 17 Gbit/s up, 0.7 ms ping), so their speed includes the network. ASR systems are scored on the words they recognised. * MWA models are trained on Buckeye or TIMIT; the Buckeye model is in-domain here.

Two systems are on the frontier: the nyra forced aligner (20.1 ms at 418× real time) and CTC-Segmentation (81.0 ms at 582×). Among the remaining systems, Fish Audio (35.5 ms), Olewave Olign v1 and MFA with a wide beam (both 35.7 ms), CrisperWhisper 2.0 (38.8 ms) and Qwen3-ForcedAligner (39.4 ms) have the lowest errors, at 21×, 5×, 0.8×, 35× and 359× real time. Widening MFA's beam lowers its error from 48.9 to 35.7 ms, but MFA stays slower than real time either way. How the nyra forced aligner works is described in its release post.

Leaderboard

Results per dataset

Both tables are sorted by Acc@50ms. FluencyBank is harder for every system: repetitions, blocks and prolongations make word boundaries less clear, and errors rise accordingly.

Acc@X = % of words with start and end within X
Buckeye · conversational · 2,008 clips · 80,507 words · sorted by Acc@50ms
systemrecall %MAE msmIoU %Acc@25Acc@50Acc@100Acc@200speed
nyra forced alignerforced aligner · local100.020.183.063.388.897.299.3418×
MFA (wide beam)forced aligner · local99.935.779.053.079.192.196.80.8×
Olewave Olign v1forced aligner · commercial API99.935.781.961.378.589.596.15.0×
MFA (default beam)forced aligner · local98.748.978.252.578.391.295.90.9×
Fish AudioASR · commercial API93.235.571.928.975.894.998.421×
Qwen3-FAforced aligner · local99.939.471.128.775.094.497.9359×
CrisperWhisper 2.0ASR · local93.238.871.732.766.187.496.735×
MWA (Buckeye model)*forced aligner · local100.0108.764.638.958.973.280.70.8×
MWA (TIMIT model)*forced aligner · local100.0143.258.931.751.366.475.80.8×
xAI Grok STTASR · commercial API92.948.862.815.350.587.897.536×
MMS-FAforced aligner · local100.052.762.115.249.986.596.8362×
CTC-Segmentationforced aligner · local100.081.063.518.348.875.085.9582×
Cartesia Ink-WhisperASR · commercial API88.6144.857.412.735.363.980.573×
ElevenLabs Cueforced aligner · commercial API100.050.858.47.532.481.498.3106×
MAI-Transcribe-2ASR · commercial API91.754.456.08.931.073.298.122×
AssemblyAI U-3.5 ProASR · commercial API88.768.153.68.930.974.695.84.4×
NeMo FAforced aligner · local100.072.644.35.520.458.894.891×
Deepgram Nova-3ASR · commercial API92.787.649.53.814.850.989.565×
Canary 1B v2ASR · local88.2107.230.42.710.033.679.618×
WhisperXASR · local88.189.842.01.08.754.093.730×

Reading the tables

Accuracy should be read together with recall: the ASR systems recognise 74–93% of the words and are timed only on those. The MAE is heavy-tailed, so a few failed utterances can dominate it (MFA with the default beam on FluencyBank: 228 ms mean, 35 ms median). The tighter collars separate systems most clearly: at 200 ms most systems are above 90% on Buckeye, while at 25 ms the range is 1.0% to 63.3%.

Two of the aligners were trained on the evaluation corpora: the MWA Buckeye model on Buckeye recordings and the MWA TIMIT model on TIMIT (marked with * in the tables). Their scores on those sets are in-domain and not directly comparable with the other systems.

Under noise

Robustness to noise

We add white Gaussian noise to TIMIT at 30 down to 0 dB signal-to-noise ratio; at 0 dB the noise is as loud as the speech. Because systems start missing words under noise, this table uses F1@50ms: a word counts only if it is recognised and placed within 50 ms.

TIMIT · white Gaussian noise · F1@50ms · higher is better
systemclean30 dB20 dB10 dB5 dB0 dB
Olewave Olign v183.884.182.674.156.625.0
nyra forced aligner80.280.581.379.572.945.7
MFA (wide beam)77.776.964.034.016.24.2
MFA (default beam)77.676.763.933.814.02.2
Qwen3-FA70.872.370.851.529.713.2
Fish Audio69.571.270.353.630.712.1
CrisperWhisper 2.069.369.166.258.846.413.6
MWA (TIMIT model)*53.551.949.445.239.226.0
MMS-FA51.351.150.850.349.546.9
xAI Grok STT50.450.249.748.746.238.3
MWA (Buckeye model)*49.847.844.039.233.222.4
CTC-Segmentation38.938.538.336.331.819.9
AssemblyAI U-3.5 Pro33.032.931.225.215.64.1
ElevenLabs Cue32.531.831.732.733.835.3
MAI-Transcribe-227.427.427.327.427.427.3
Cartesia Ink-Whisper20.320.720.821.021.019.2
Deepgram Nova-320.220.420.119.818.914.9
NeMo FA19.319.320.122.223.925.7
WhisperX13.312.211.18.96.11.6
Canary 1B v212.912.712.512.412.311.5

Olewave Olign v1 has the highest clean score (83.8), ahead of the nyra forced aligner (80.2) and MFA (77.7). At 20 dB most systems stay within a few points of their clean score; MFA is the exception, with both beam settings (77.6 to 63.9 and 77.7 to 64.0). Below 10 dB the more accurate systems lose ground quickly, and at 0 dB the highest scores are 46.9 (MMS-FA), 45.7 (nyra forced aligner) and 38.3 (xAI Grok STT). MMS-FA and several commercial APIs hardly change with noise but start from a lower level, which suggests their timing resolution, not recognition, limits the score.

What's next

Where the benchmark goes from here

The current version covers English and a single noise type. We plan to extend it to more languages and to more realistic acoustic conditions: babble, music, reverberation and the channel effects of phone and video calls, in addition to white noise. Beyond added noise, we want to include realistic in-the-wild recordings: far-field and handheld microphones, clinical and home environments, and spontaneous speech captured outside the studio, where noise, reverberation and speaking style vary together rather than one at a time.

The larger limitation is the alignment scenario itself. All three corpora contain one speaker at a time, so the benchmark only measures alignment of non-overlapping speech. Real conversations are not like that: speakers interrupt, talk over each other and backchannel while the other is still speaking. Measuring timing in these situations needs reference annotations for overlapping speech, and building them is the next step. They will show how current methods behave when speakers overlap, and they are a prerequisite for developing methods that align several speakers jointly rather than one stream at a time.

A joint model is not the only route. A cascaded system could first separate the recording into one audio stream per speaker and then align each stream on its own. That would let existing single-speaker aligners be reused as they are, and an overlap benchmark would show how far such a pipeline gets compared with aligning all speakers at once.

Open & reproducible

Adding a system

The corpora are licensed and cannot be redistributed, so the repository contains the scorer, text-free manifests, every system's predictions and the scored results. To add a system, contribute a small adapter that turns one audio clip into word timings; we run it on all three datasets, the noise sweep and the speed test, and add the results.

Open sourcenyrahealth/nyra_speech_timing_benchmarkThe scorer, the predictions of all 21 systems, the noise and speed protocols, and the script that regenerates every table on this page.View on GitHub

Commercial APIs change over time; all their results are from October–November 2026.