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.
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
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.
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.
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.
| system | recall % | MAE ms | mIoU % | Acc@25 | Acc@50 | Acc@100 | Acc@200 | speed |
|---|---|---|---|---|---|---|---|---|
| nyra forced alignerforced aligner · local | 100.0 | 20.1 | 83.0 | 63.3 | 88.8 | 97.2 | 99.3 | 418× |
| MFA (wide beam)forced aligner · local | 99.9 | 35.7 | 79.0 | 53.0 | 79.1 | 92.1 | 96.8 | 0.8× |
| Olewave Olign v1forced aligner · commercial API | 99.9 | 35.7 | 81.9 | 61.3 | 78.5 | 89.5 | 96.1 | 5.0× |
| MFA (default beam)forced aligner · local | 98.7 | 48.9 | 78.2 | 52.5 | 78.3 | 91.2 | 95.9 | 0.9× |
| Fish AudioASR · commercial API | 93.2 | 35.5 | 71.9 | 28.9 | 75.8 | 94.9 | 98.4 | 21× |
| Qwen3-FAforced aligner · local | 99.9 | 39.4 | 71.1 | 28.7 | 75.0 | 94.4 | 97.9 | 359× |
| CrisperWhisper 2.0ASR · local | 93.2 | 38.8 | 71.7 | 32.7 | 66.1 | 87.4 | 96.7 | 35× |
| MWA (Buckeye model)*forced aligner · local | 100.0 | 108.7 | 64.6 | 38.9 | 58.9 | 73.2 | 80.7 | 0.8× |
| MWA (TIMIT model)*forced aligner · local | 100.0 | 143.2 | 58.9 | 31.7 | 51.3 | 66.4 | 75.8 | 0.8× |
| xAI Grok STTASR · commercial API | 92.9 | 48.8 | 62.8 | 15.3 | 50.5 | 87.8 | 97.5 | 36× |
| MMS-FAforced aligner · local | 100.0 | 52.7 | 62.1 | 15.2 | 49.9 | 86.5 | 96.8 | 362× |
| CTC-Segmentationforced aligner · local | 100.0 | 81.0 | 63.5 | 18.3 | 48.8 | 75.0 | 85.9 | 582× |
| Cartesia Ink-WhisperASR · commercial API | 88.6 | 144.8 | 57.4 | 12.7 | 35.3 | 63.9 | 80.5 | 73× |
| ElevenLabs Cueforced aligner · commercial API | 100.0 | 50.8 | 58.4 | 7.5 | 32.4 | 81.4 | 98.3 | 106× |
| MAI-Transcribe-2ASR · commercial API | 91.7 | 54.4 | 56.0 | 8.9 | 31.0 | 73.2 | 98.1 | 22× |
| AssemblyAI U-3.5 ProASR · commercial API | 88.7 | 68.1 | 53.6 | 8.9 | 30.9 | 74.6 | 95.8 | 4.4× |
| NeMo FAforced aligner · local | 100.0 | 72.6 | 44.3 | 5.5 | 20.4 | 58.8 | 94.8 | 91× |
| Deepgram Nova-3ASR · commercial API | 92.7 | 87.6 | 49.5 | 3.8 | 14.8 | 50.9 | 89.5 | 65× |
| Canary 1B v2ASR · local | 88.2 | 107.2 | 30.4 | 2.7 | 10.0 | 33.6 | 79.6 | 18× |
| WhisperXASR · local | 88.1 | 89.8 | 42.0 | 1.0 | 8.7 | 54.0 | 93.7 | 30× |
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.
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.
| system | clean | 30 dB | 20 dB | 10 dB | 5 dB | 0 dB |
|---|---|---|---|---|---|---|
| Olewave Olign v1 | 83.8 | 84.1 | 82.6 | 74.1 | 56.6 | 25.0 |
| nyra forced aligner | 80.2 | 80.5 | 81.3 | 79.5 | 72.9 | 45.7 |
| MFA (wide beam) | 77.7 | 76.9 | 64.0 | 34.0 | 16.2 | 4.2 |
| MFA (default beam) | 77.6 | 76.7 | 63.9 | 33.8 | 14.0 | 2.2 |
| Qwen3-FA | 70.8 | 72.3 | 70.8 | 51.5 | 29.7 | 13.2 |
| Fish Audio | 69.5 | 71.2 | 70.3 | 53.6 | 30.7 | 12.1 |
| CrisperWhisper 2.0 | 69.3 | 69.1 | 66.2 | 58.8 | 46.4 | 13.6 |
| MWA (TIMIT model)* | 53.5 | 51.9 | 49.4 | 45.2 | 39.2 | 26.0 |
| MMS-FA | 51.3 | 51.1 | 50.8 | 50.3 | 49.5 | 46.9 |
| xAI Grok STT | 50.4 | 50.2 | 49.7 | 48.7 | 46.2 | 38.3 |
| MWA (Buckeye model)* | 49.8 | 47.8 | 44.0 | 39.2 | 33.2 | 22.4 |
| CTC-Segmentation | 38.9 | 38.5 | 38.3 | 36.3 | 31.8 | 19.9 |
| AssemblyAI U-3.5 Pro | 33.0 | 32.9 | 31.2 | 25.2 | 15.6 | 4.1 |
| ElevenLabs Cue | 32.5 | 31.8 | 31.7 | 32.7 | 33.8 | 35.3 |
| MAI-Transcribe-2 | 27.4 | 27.4 | 27.3 | 27.4 | 27.4 | 27.3 |
| Cartesia Ink-Whisper | 20.3 | 20.7 | 20.8 | 21.0 | 21.0 | 19.2 |
| Deepgram Nova-3 | 20.2 | 20.4 | 20.1 | 19.8 | 18.9 | 14.9 |
| NeMo FA | 19.3 | 19.3 | 20.1 | 22.2 | 23.9 | 25.7 |
| WhisperX | 13.3 | 12.2 | 11.1 | 8.9 | 6.1 | 1.6 |
| Canary 1B v2 | 12.9 | 12.7 | 12.5 | 12.4 | 12.3 | 11.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.
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.
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 GitHubCommercial APIs change over time; all their results are from October–November 2026.
Related research
The nyra forced aligner
Word- and phoneme-level forced alignment for real speech: noise-robust WavLM features, explicit units for fillers and vocal sounds, and verbatim training data. 20.6 ms on conversational speech, 2.7× fewer catastrophic errors than MFA.
Turning emergent cross-attention into a precise aligner
How CrisperWhisper 2.0 reads millisecond-accurate word timings out of an ASR decoder's cross-attention: by making the output policy explicit, then supervising the heads that already lean toward alignment.
Measuring verbatimness
An open suite that scores not just the words, but the fillers, repetitions, cut-offs, and vocal sounds that make speech real.