Align.
Word timestamps on device, for any transcriber. Cut, caption, and highlight on the word, at half the error, from a 0.7MB model.
Accurate word timestamps for any transcript.
Apple says "world" runs from 2.61 to 3.04 seconds. Align says 2.57 to 2.98. Cut there and the cut is clean, the caption lights up on the word, and the highlight starts where the speaker did.
You keep Apple's transcriber. Align reads the same audio SpeechAnalyzer already gets and returns the same words with tighter start and end times, in a few milliseconds, from a 0.7MB download. On clean audio that takes Apple's average miss from 113ms to 45ms.
A word Align can't improve keeps Apple's timing, so a correction can only help or leave the word alone. Nine languages, and a locale outside them passes through with Apple's timings untouched.
Half the timing error.
Apple's word timings are off by 113ms on average; Align brings that to 45ms, and three out of four words land within 50ms, from a 0.7MB model.
Mean absolute distance from the reference word boundary, 223 clean and 210 noisy held-out recordings across nine languages
| Condition | Apple raw | Align | Within 50ms |
|---|---|---|---|
| Clean | 113.5ms | 44.9ms | 75.1% |
| Noisy | 124.4ms | 50.1ms | 69.4% |
Evaluated on the shipped Swift runtime and the bundled Core ML models. The references are machine forced-alignment estimates from Qwen3-ForcedAligner, not human annotations, so the figures show a large, consistent reduction of Apple's timing error rather than sample-accurate ground truth.
Word-by-word captions that keep up
Light up each word as it is said in a captions view, a karaoke-style lyric screen, or a language-learning app, from Apple's transcript. The timings land on the word instead of a tenth of a second off it.
Cut a clip on a word
Trim a recording to a quote in a podcast editor or a video app and have the cut start where the word starts. No frame of the previous word, no clipped consonant, and no manual nudge on the timeline.
Highlight the spoken word in a transcript
Scroll a transcript in step with playback in a meeting recorder or a lecture app, with the highlight moving on the word rather than drifting ahead of the audio.
Search that lands on the moment
Jump to the second a word was said in an archive of recordings, on the device. The timings are tight enough that the playhead starts on the word and not in the middle of the previous one.
Inspiration
Ideas to build with Align. Copy a prompt into your coding agent and go.
Highlight each word as it's spoken, timed to the audio.
Run Apple's SpeechTranscriber with Desert Ant's Align attached as a timestamp refiner, then highlight each word using its refined time range. Align tightens Apple's word timings on-device; iOS 26 / macOS 26. Build it with the Desert Ant SDK. Align (Swift). Install and API: https://desertant.com/docs/align/. Install: SwiftPM desert-ant-core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Tighten a system transcriber's word timings so captions land on the word.
Attach Desert Ant's Align as a refiner to Apple's SpeechAnalyzer / SpeechTranscriber so its word-level timings tighten and captions and cuts land exactly on the word. iOS 26 / macOS 26, on-device. Build it with the Desert Ant SDK. Align (Swift). Install and API: https://desertant.com/docs/align/. Install: SwiftPM desert-ant-core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Build a text-based video editor where selecting words trims the clip.
Transcribe with Apple's SpeechTranscriber and Desert Ant's Align refiner for word-exact timings, then let the user select words to trim the video to that span. Deleting a sentence deletes the footage. iOS 26 / macOS 26. Build it with the Desert Ant SDK. Align (Swift). Install and API: https://desertant.com/docs/align/. Install: SwiftPM desert-ant-core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Add bouncing word-by-word captions to vertical videos.
Add animated word-by-word captions to short vertical videos, timed with Desert Ant's Align attached to Apple's SpeechTranscriber so each word pops exactly when it's said. On-device, iOS 26 / macOS 26. Build it with the Desert Ant SDK. Align (Swift). Install and API: https://desertant.com/docs/align/. Install: SwiftPM desert-ant-core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Make transcript search jump the audio to the exact word.
In an Apple media app, transcribe with SpeechTranscriber and Desert Ant's Align refiner so a search result seeks the audio or video to the precise word, not the sentence. iOS 26 / macOS 26. Build it with the Desert Ant SDK. Align (Swift). Install and API: https://desertant.com/docs/align/. Install: SwiftPM desert-ant-core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
What the model does
- Corrects the word-level timings Apple's
SpeechTranscriberandSpeechAnalyzerreturn, without replacing them: same words, same result surface, tighteraudioTimeRangevalues. - Mean timing error from 113.5ms to 44.9ms on clean audio and from 124.4ms to 50.1ms on noisy audio, a 60% reduction, measured on 433 held-out recordings against forced-alignment references.
- 75.1% of words land within 50ms of the reference on clean audio, 69.4% on noisy audio.
- A structural fallback keeps Apple's original timestamp whenever a correction would be invalid, hits the search window's edge, or lacks streaming context.
- Nine languages: English, Spanish, French, Italian, Portuguese, German, Japanese, Korean, and Chinese. Other locales pass through unchanged.
- About 0.7MB of compiled Core ML in two stages, run on the CPU and Neural Engine; a typical result is refined in a few milliseconds.
Getting started
Add word timestamps to your iOS or macOS app in a few lines of code. Align docs.
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "3.1.0")
// target dependency
.product(name: "Align", package: "desert-ant-core")
import Align
let refiner = try await SpeechTimestampRefiner(locale: locale)
try await analyzer.start(inputSequence: inputs.recordingAudio(for: refiner))
for try await result in transcriber.results.refiningTimestamps(with: refiner) {
result.words // [WordTiming]: text, start, end, refined
}
Add Align from Desert Ant Labs to this Swift project (iOS, macOS). What it does: On-device Word Timestamps for Any Transcript. SDK: Swift (iOS, macOS) Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme // Swift Package Manager .package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "3.1.0") // target dependency .product(name: "Align", package: "desert-ant-core") Reference: - Model page: https://desertant.com/models/align/ - Full catalog and other models: https://desertant.com/llms.txt Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Specs
- Accuracy
- 44.9ms mean error on clean audio, 50.1ms on noisy, against Apple's 113.5ms and 124.4ms
- On-device size
- About 0.7MB compiled Core ML (two 0.3MB stages plus the filter bank and calibrator)
- Languages
- English, Spanish, French, Italian, Portuguese, German, Japanese, Korean, Chinese
- Model
- Two-stage coarse-to-fine cascade over a log-mel spectrogram, about 117k parameters per stage, with a gradient-boosted calibrator
- Platforms
- iOS 26, macOS 26, tvOS 26, visionOS 26 (Core ML), where SpeechAnalyzer lives
Align corrects Apple's timings; it doesn't transcribe, and it needs Apple's SpeechAnalyzer, which means iOS 26, macOS 26, tvOS 26, or visionOS 26. Align can't promise to improve every word.
The fallback that keeps Apple's timing catches corrections that look unsafe, not every wrong one. English, Italian, Japanese, and Korean are the weakest of the nine languages under the current references.
FAQ
What is Align?
Word timestamps on device, for any transcriber. Cut, caption, and highlight on the word, at half the error, from a 0.7MB model.
Does Align run on device?
Yes. Align runs on the device, with no server call, so the data stays with the user.
Which platforms does Align support?
Align ships as a native on-device SDK for Swift.
How much does Align cost?
Every model is free up to 100k monthly active devices per SDK. Unlimited inference per user. Contact us for custom licenses.
How accurate or fast is Align?
Apple's word timings are off by 113ms on average; Align brings that to 45ms, and three out of four words land within 50ms, from a 0.7MB model.