Forced alignment and ASR timestamp accuracy

FA-Bench Leaderboard

How closely word and phone timestamps land on the boundaries human linguists placed. FA-Bench ranks 28 ASR pipelines that hear only the audio and 15 forced aligners handed the reference transcript.

ASR with timestamps, word boundary F1 at 20 ms

#SystemAccess Mean F1TIMIT cleanTIMIT noisy Buckeye cleanBuckeye noisy WER TIMITWER Buckeye
1 Olewave Olign 1.0
olign-1.0, Olign API v1
Commercial 0.6360.7560.6500.6050.534 2.210.2
2 Qwen3 โ†’ MFA 3.4 Open 0.5850.6280.6080.5990.504 2.010.4
3 Qwen3 โ†’ PocketSphinx Open 0.5730.5650.5330.6400.552 2.010.2
4 Qwen3 โ†’ MAPS โš  Open 0.5060.6980.3940.5510.383 2.010.2
5 Qwen3 โ†’ Charsiu Open 0.4930.5240.4720.5430.433 2.411.4
6 Google Chirp 2
chirp_2, Speech-to-Text API v2
Commercial 0.4360.4430.4460.4420.414 4.213.1
7 Qwen3 โ†’ CrisperWhisper โš  Open 0.4140.4270.4170.4340.377 2.710.6
8 CrisperWhisper โš  Open 0.4100.4250.4130.4300.371 3.611.5
9 Qwen3 โ†’ Meta UnitY2 Open 0.3750.3360.3350.4220.407 2.010.2
10 Qwen3 โ†’ Qwen3-FA Open 0.3700.3850.3670.3860.341 2.010.2
11 Amazon Transcribe
en-US, batch API 2017-10-26
Commercial 0.2690.2530.2620.2850.275 2.710.3
12 Qwen3 โ†’ BFA Open 0.2550.2650.2370.2750.242 2.010.4
13 Qwen3 โ†’ Meta MMS-FA Open 0.2270.2710.2580.1960.184 2.010.2
14 Qwen3 โ†’ stable-ts Open 0.2170.1720.1890.2570.251 2.010.2
15 AssemblyAI Universal-3.5 Pro
universal-3-5-pro, API v2
Commercial 0.2100.2360.2170.2040.184 3.712.2
16 Deepgram Nova-3 โ€ก
nova-3, build 2025-07-31.0, API v1
Commercial 0.1970.2080.1980.1970.184 2.410.8
17 Parakeet-TDT Open 0.1840.1800.1800.1920.185 2.411.0
18 Qwen3 โ†’ NVIDIA NeMo-FA โ€  Open 0.1780.1790.1750.1810.176 2.010.3
19 Qwen3 โ†’ TorchAudio Open 0.1720.2050.1870.1540.141 2.010.2
20 IBM Watson STT en-US
en-US large speech model, API v1
Commercial 0.1570.1470.1410.1810.159 5.112.4
21 Qwen3 โ†’ WhisperX Open 0.1520.1750.1640.1380.130 2.010.2
22 Whisper โ†’ WhisperX Open 0.1450.1780.1630.1250.116 2.914.2
23 Speechmatics Enhanced
enhanced, builds 16.0.0 and 16.1.0, API v2
Commercial 0.1430.1550.1430.1440.130 2.511.4
24 Whisper-timestamped Open 0.1400.1130.1080.1750.164 2.513.4
25 Azure AI Speech
en-US, short audio REST API v1
Commercial 0.1380.1390.1380.1420.133 3.411.5
26 ElevenLabs Scribe v2
scribe_v2, API v1
Commercial 0.1370.1660.1630.1090.108 2.010.6
27 Whisper large-v3 Open 0.1180.1040.0980.1380.132 2.913.7
28 TorchAudio (ASR) Open 0.1060.1660.1240.0830.053 10.827.8

โš  MAPS was trained on 7 of the 8 speakers in FA-Bench's Buckeye test set, so most of its Buckeye test audio comes from speakers it was trained on.

โš  CrisperWhisper's authors used TIMIT to build its word timing and don't say which TIMIT files. FA-Bench tests on TIMIT's test files, so if the authors used those too, its TIMIT scores come from audio it has already seen.

โ€ก Deepgram ends the last word of 24% of clean Buckeye test utterances more than 0.3 s after the audio does.

โ€  NeMo-FA here is its 80 ms model. The 40 ms model's mean F1 is 0.175.

Download the CSV.

Forced alignment, word boundary F1 at 20 ms

#SystemAccess Mean F1TIMIT cleanTIMIT noisy Buckeye cleanBuckeye noisy MAE TIMITMAE Buckeye
1 Olewave Olign 1.0
olign-1.0, Olign API v1
Commercial 0.7140.7820.6690.7450.659 18.222.4
2 MFA 3.4 Open 0.6330.6440.6240.6820.583 21.821.3
3 PocketSphinx Open 0.6260.5840.5500.7270.642 30.522.1
4 NeuFA โš 
trained with its open-source code on GitHub, not released
Open 0.5680.5230.4460.7000.604 56.933.9
5 MAPS โš  Open 0.5450.7150.4030.6200.444 25.537.9
6 Charsiu Open 0.5320.5400.4870.6070.493 28.128.1
7 CrisperWhisper โš  Open 0.4490.4370.4300.4870.442 34.143.1
8 Meta UnitY2 Open 0.4090.3430.3460.4750.471 52.240.6
9 Qwen3-FA Open 0.4000.3990.3770.4320.391 32.233.8
10 BFA Open 0.2760.2720.2440.3010.289 51.057.2
11 Meta MMS-FA Open 0.2460.2750.2640.2250.221 31.137.1
12 stable-ts Open 0.2400.1770.1950.2940.295 96.871.2
13 NVIDIA NeMo-FA โ€  Open 0.1990.1860.1830.2120.216 79.291.4
14 TorchAudio Open 0.1890.2100.1920.1800.175 39.842.4
15 WhisperX Open 0.1700.1800.1700.1650.165 37.241.7

โš  NeuFA was trained on 7 of the 8 speakers in FA-Bench's Buckeye test set, so most of its Buckeye test audio comes from speakers it was trained on.

โš  MAPS was trained on 7 of the 8 speakers in FA-Bench's Buckeye test set, so most of its Buckeye test audio comes from speakers it was trained on.

โš  CrisperWhisper's authors used TIMIT to build its word timing and don't say which TIMIT files. FA-Bench tests on TIMIT's test files, so if the authors used those too, its TIMIT scores come from audio it has already seen.

โ€  NeMo-FA here is its 80 ms model. The 40 ms model's mean F1 is 0.196.

ElevenLabs Forced Alignment joins this board once our free ElevenLabs credits replenish.

Download the CSV.

ASR with timestamps, phone boundary F1 at 20 ms

#SystemAccess Mean F1TIMIT cleanTIMIT noisy Buckeye cleanBuckeye noisy PER TIMITPER Buckeye
1 Olewave Olign 1.0
olign-1.0, Olign API v1
Commercial 0.4380.4100.3920.4950.454 35.428.5
2 Qwen3 โ†’ MFA 3.4 Open 0.4280.3940.3720.5020.446 34.828.2
3 Qwen3 โ†’ PocketSphinx Open 0.3950.3370.3250.4820.436 34.027.2
4 Qwen3 โ†’ MAPS โš  Open 0.3780.4550.3190.4350.303 30.735.8
5 Qwen3 โ†’ Charsiu Open 0.3690.3610.3470.4170.352 30.332.7
6 Qwen3 โ†’ TorchAudio Open 0.2300.2070.2050.2600.250 35.930.0
7 Qwen3 โ†’ BFA Open 0.2130.1830.1770.2530.238 36.233.6

โš  MAPS was trained on 7 of the 8 speakers in FA-Bench's Buckeye test set, so most of its Buckeye test audio comes from speakers it was trained on.

Download the CSV.

Forced alignment, phone boundary F1 at 20 ms

#SystemAccess Mean F1TIMIT cleanTIMIT noisy Buckeye cleanBuckeye noisy PER TIMITPER Buckeye
1 FALCON โš  Open 0.5600.6730.5190.5850.464 0.00.7
2 Olewave Olign 1.0
olign-1.0, Olign API v1
Commercial 0.4520.4100.3930.5230.483 35.428.2
3 MFA 3.4 Open 0.4360.3930.3720.5180.463 34.826.1
4 PocketSphinx Open 0.4020.3380.3260.4940.450 33.926.0
5 MAPS โš  Open 0.3830.4540.3190.4450.313 30.734.9
6 Charsiu Open 0.3720.3600.3470.4240.359 30.331.7
7 NeuFA โš 
trained with its open-source code on GitHub, not released
Open 0.3660.3260.2770.4600.399 36.028.0
8 TorchAudio Open 0.2350.2080.2060.2660.261 35.928.5
9 BFA Open 0.2170.1830.1780.2550.251 36.232.1

โš  FALCON is handed the reference phones in place of the words. It was also trained on its own speaker split of Buckeye, which puts at least 8 of the 16 speakers in FA-Bench's Buckeye dev and test sets in its training data.

โš  MAPS was trained on 7 of the 8 speakers in FA-Bench's Buckeye test set, so most of its Buckeye test audio comes from speakers it was trained on.

โš  NeuFA was trained on 7 of the 8 speakers in FA-Bench's Buckeye test set, so most of its Buckeye test audio comes from speakers it was trained on.

Download the CSV.

ASR with timestamps and forced alignment

The first switch picks the task. ASR with timestamps hears only the audio and returns its own words, each with a start and an end time. A subtitle has to know when each word starts and ends, and most speech recognition APIs return word times without saying how accurate those times are. Forced alignment is handed the reference transcript, so it can make no recognition error and its boundary error is timing error alone.

The FA-Bench paper names two ways to get word times from audio alone. A one-step system is an ASR with timestamps. The ASR times its own words. A two-step system aligns after ASR. An ASR decodes the utterance, and an aligner then receives those decoded words in place of the reference transcript and times them.

On the ASR boards, โ†’ denotes ASR then aligner. Qwen3 โ†’ MFA 3.4 means Qwen3-ASR decodes the words and MFA 3.4 aligns them.

Words and phones

The second switch picks the boundaries. The word boards score the boundaries between words, and the phone boards score the boundaries between phones, on the same four test cells. Each system aligns in its own phone set, so FA-Bench maps its phones and the reference phones into TIMIT-39, the conventional reduction for these corpora.

The ASR phone board holds only the systems that return phone timestamps from audio alone. Their PER, the phone error rate, carries the recognizer's word errors too. On the forced alignment phone board, each aligner is handed the reference transcript, and PER is the phone error rate of the phones it returns against the annotators' phones.

How the score works

Each bar is the boundary F1 at 20 ms. A boundary is a hit when the words or phones on both sides of it match the reference and its time falls within 20 ms of where a human annotator placed it. A misheard word costs a system the boundaries beside it, so on the ASR boards the score charges recognition errors and timing errors together.

The default view averages four test cells. They are TIMIT core test and Buckeye test, each on clean audio and on the mean of four degraded versions with reverb, noise, music or babble added. Choose a single cell from the menu to rank the systems by one corpus or one condition.

Choose Open models to compare only the pipelines you can run on your own hardware. A two-step pipeline counts as commercial when either step calls a paid API.

Each bar carries the colour and logo of the organization behind it. For a two-step pipeline that is the maker of the aligner, the step that sets the times.

API versions

Each commercial API was called with the model below. Deepgram and Speechmatics name a build in every response, and the other APIs name none. FA-Bench called the eight other APIs between September 17 and September 26, 2026, and Olign 1.0 in October 2026.

APIModel calledAPI version
Olewave Olign 1.0olign-1.0v1
Google Chirp 2chirp_2Speech-to-Text v2
Amazon Transcribeen-USBatch, 2017-10-26
AssemblyAI Universal-3.5 Prouniversal-3-5-prov2
Deepgram Nova-3nova-3, build 2025-07-31.0v1
IBM Watson STT en-USen-US large speech modelv1
Speechmatics Enhancedenhanced, builds 16.0.0 and 16.1.0Batch v2
Azure AI Speechen-USShort audio REST v1
ElevenLabs Scribe v2scribe_v2v1

FA-Bench and Artificial Analysis

Artificial Analysis also ranks speech to text APIs, by its AA-WER v2 score. The table sets the two benchmarks side by side, using what each one publishes about itself.

FA-BenchArtificial Analysis
What it scoresWord timing and recognition, as F1 at 20 msWord error rate
Test audioTIMIT and Buckeye, research corpora anyone can license50% private AA-AgentTalk, 50% public VoxPopuli and Earnings22
Word timestampsScored against human annotatorsNot scored
Scoring codePublic on GitHubNot published
Text normalizerPublic on GitHubNot published
Rerun by othersYes, with TIMIT and BuckeyeNo

Artificial Analysis details come from its methodology page and its AA-WER v2 announcement, read on October 11, 2026.

Reproduce every number

The numbers come from FA-Bench's records, snapshot 202610. The boards keep one pipeline per aligner, and NeMo-FA appears with its 80 ms model only. The records hold all 34 ASR pipelines on words and all 12 on phones, and all 18 aligners on words and all 11 on phones. Download the CSV under each board, or clone the repository and rescore every system yourself.