Introducing Olign 1.1, with More Accurate Word Timestamps

Product

Introducing Olign 1.1, with More Accurate Word Timestamps

Olign 1.1 times words more accurately than Olign 1.0 on every FA-Bench test set, in clean audio and in noise. Your existing requests keep working.

Introducing Olign 1.1, with More Accurate Word Timestamps

FA-Bench Leaderboard · github.com/olewave/fa-bench

Olign 1.1 is live on the Olign API. It times words more accurately than Olign 1.0 on every test set we measured, clean and noisy.

People notice when word timing is off. A subtitle should appear when the speaker starts and clear when they stop. Dubbing splits speech into lines at the pauses, so each pause has to be where it really is. A language app should light up each word as it is spoken. Each of these comes down to a few hundredths of a second.

Olign 1.1 puts word times closer to the speech, and pauses now come back close to their real length. Averaged over the four FA-Bench test sets, word timestamp F1 at 20 ms rose from 0.681 to 0.712 from audio alone, and from 0.735 to 0.759 with a transcript. Your existing requests keep working.

Forced alignment and ASR timestamps on your own recording.
Sample audio · LibriSpeech © 2014 Vassil Panayotov · CC BY 4.0
Up to 30 seconds of English speech. No account needed.
Powered by Olign

How we measured

We compared Olign release 1.1.3, measured on the live service in November 2026, with Olign 1.0, measured in October 2026. Both ran on the same test sets and were scored by the same public FA-Bench scorer.

FA-Bench uses two English corpora with word and phone boundaries labelled by hand. TIMIT core test is read speech. Buckeye test is conversation. Each runs clean and with reverb, noise, music and babble added. Noisy below is the mean of those four. That gives four test sets, and Mean of 4 is their average.

There are two tracks. ASR with timestamps hears only the audio, and Olign returns its own words with their times. Forced alignment also gets the transcript.

Word timestamp F1 at 20 ms is the share of word start and end times that land within 20 ms of the hand labels, with precision and recall combined. Higher is better.

Word error rate counts the words substituted, dropped or added, as a share of the words said. Lower is better.

Word boundary error is the average distance between Olign's word boundaries and the hand-labelled ones, in milliseconds. Lower is better.

Phone boundary F1 at 20 ms is the same as word timestamp F1, for the boundaries between speech sounds.

Olewave makes both FA-Bench and Olign. So Olign appears on the FA-Bench leaderboard unranked, at the bottom of the table. Here FA-Bench is a public, reproducible measuring stick. It ranks nothing.

ASR with timestamps

You send only the audio.

Word timestamp F1 at 20 ms
Audio only. Higher is better.
TIMIT clean Olign 1.0, 0.786 Olign 1.1, 0.804
TIMIT noisy Olign 1.0, 0.695 Olign 1.1, 0.726
Buckeye clean Olign 1.0, 0.660 Olign 1.1, 0.702
Buckeye noisy Olign 1.0, 0.585 Olign 1.1, 0.615
Mean of 4 Olign 1.0, 0.681 Olign 1.1, 0.712

Word timestamp F1 rose on all four test sets. The largest gain is on clean Buckeye, from 0.660 to 0.702. Word error rate barely moved, from 7.5% to 7.4% on average. So the gain is in the timing.

All the numbers
TIMIT cleanTIMIT noisyBuckeye cleanBuckeye noisyMean of 4
Word timestamp F1, Olign 1.00.7860.6950.6600.5850.681
Word timestamp F1, Olign 1.10.8040.7260.7020.6150.712
Word error rate, Olign 1.02.2%3.2%10.2%14.3%7.5%
Word error rate, Olign 1.12.2%3.2%9.9%14.2%7.4%

Forced alignment

You send the audio and its transcript.

Word timestamp F1 at 20 ms
Audio and transcript. Higher is better.
TIMIT clean Olign 1.0, 0.805 Olign 1.1, 0.824
TIMIT noisy Olign 1.0, 0.710 Olign 1.1, 0.747
Buckeye clean Olign 1.0, 0.755 Olign 1.1, 0.775
Buckeye noisy Olign 1.0, 0.668 Olign 1.1, 0.689
Mean of 4 Olign 1.0, 0.735 Olign 1.1, 0.759
Word boundary error
Average distance from the human boundaries. Lower is better.
TIMIT clean Olign 1.0, 18.2 ms Olign 1.1, 17.0 ms
TIMIT noisy Olign 1.0, 33.0 ms Olign 1.1, 25.7 ms
Buckeye clean Olign 1.0, 22.4 ms Olign 1.1, 18.7 ms
Buckeye noisy Olign 1.0, 43.8 ms Olign 1.1, 38.8 ms

Word timestamp F1 rose on all four test sets, and word boundary error fell on all four. The largest drop in word boundary error is on noisy TIMIT, from 33.0 ms to 25.7 ms. Phone boundary F1 rose a little everywhere, from 0.452 to 0.458 on average. Most of the change is at word edges.

All the numbers
TIMIT cleanTIMIT noisyBuckeye cleanBuckeye noisyMean of 4
Word timestamp F1, Olign 1.00.8050.7100.7550.6680.735
Word timestamp F1, Olign 1.10.8240.7470.7750.6890.759
Word boundary error, Olign 1.018.2 ms33.0 ms22.4 ms43.8 ms
Word boundary error, Olign 1.117.0 ms25.7 ms18.7 ms38.8 ms
Phone boundary F1, Olign 1.00.4100.3930.5230.4830.452
Phone boundary F1, Olign 1.10.4130.3960.5290.4920.458

What changed for you

Olign releases and the API have their own version numbers. Both are named below.

Pauses come back close to their real length. Before release 1.1.3, a word before a pause ran into it, by about 80 to 90 ms at the median in our Buckeye tests. So pauses came back shorter than they are. Now the word ends where its sound ends, and the median is within a few milliseconds. Subtitles and dubbing split speech at pauses, so this matters there.

Pauses and phrases in every result. Since API v1.1.0 each result has two more lists. pauses holds every stretch of 0.05 s or more that no word covers. phrases splits the words at every pause of 0.1 s or more. Here they are for a 4.5-second clip of seven words.

"pauses": [
  {"begin": 0.0, "end": 0.47},
  {"begin": 0.75, "end": 0.84},
  {"begin": 1.132, "end": 1.213},
  {"begin": 1.89, "end": 2.173},
  {"begin": 4.36, "end": 4.48}
],
"phrases": [
  {"begin": 0.47, "end": 1.89, "words": [0, 2]},
  {"begin": 2.173, "end": 4.36, "words": [3, 6]}
]

One pause between words lasts 0.1 s or more, so the clip has two phrases. words gives each phrase's first and last word.

Two kinds of word edges. Since API v1.2.0 you choose how words are timed. word_edges=phonetic is the default, with edges where phoneticians put them. word_edges=audible starts and ends each word where you hear it. The silence before a p, t, k, b, d or g then stays outside its word, which is what dubbing and subtitles need. Use audible edges on studio-clean recordings.

curl https://api.olewave.com/olign/v1 \
  -H "X-API-Key: $OLIGN_KEY" \
  -F [email protected] \
  -F [email protected] \
  -F word_edges=audible

First words and breaths. The first word no longer starts in a breath or noise before it. A first word that starts with p, t, k, b, d or g keeps at most 30 ms of the silence before its burst. A word after a pause no longer starts in the breath before it.

Names and new words. Since release 1.1.0, names, brands and new words get a pronunciation and are aligned with their own sounds. Before, such a word came back with no phones, and its neighbours took on its timing errors.

Long recordings. Words at the very start and end are no longer clipped or dropped. Two words in a row no longer overlap.

Nothing to migrate. The API changes are additive. Requests that worked with Olign 1.0 work with Olign 1.1, and the older option name for audible edges still works.

Reading these numbers

The tests cover English only, in read speech and conversation. FA-Bench is Olewave's own benchmark, and Olign is listed on it unranked. The scorer is public on GitHub, and anyone can license TIMIT and Buckeye. Send the same audio to Olign and score what comes back.