Model reference · open weights
voz is an open-weight audio or speech model from desert-ant-labs. voz (BF16) weighs 325 MB; the smallest configuration that runs it is RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the desert-ant-labs/voz model card, 2026-10-27
What it is
| Released by | desert-ant-labs |
|---|---|
| Released | 2026-08-19 |
| VRAM | 325 MB for the weights |
What it runs on
| Card | One stream | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
Transcribe 10 minutes in 2 seconds.
On-device speech recognition: transcripts with word-level timestamps, 25 languages.
Voz transcribes speech on the device, in 25 languages, with word-level timestamps. You can run Voz on iPhone, iPad, Mac, Windows, in the browser and in Node, so your audio never leaves the device. An iPhone 17 Pro transcribes 10 minutes of audio in 1.8s.
Voz is part of our SDK, Desert-Ant-Labs/desert-ant-core.
npm i @desert-ant-labs/voz, plus
onnxruntime-web in the browser or onnxruntime-node in Node.The SDK downloads the model on first use and caches the files, so your app stays small.
let voz = try await Voz()
let result = try await voz.transcribe(url)
result.text // "We made the bet to build for iOS..."
result.words.first?.start // 0.32
result.words.first?.end // 0.58
| Platforms | iOS, macOS, tvOS, visionOS, Android, Linux, Windows, Browser, Node |
| Languages | 25 |
| Weights | v0.5.0 |
Swift (requirements)
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.2.0")
Then add the Voz product to your target.
Kotlin (requirements)
implementation("ai.desertant:voz:4.2.0")
JavaScript (requirements)
npm i @desert-ant-labs/voz onnxruntime-web
| Files | Used on |
|---|---|
encoder.mlmodelc, mel.mlmodelc, decoder.mlmodelc | Apple platforms, through Core ML |
web/encoder.onnx, web/decoder.onnx, web/decoder.webgpu.onnx | Browser, Node and Windows, through ONNX Runtime |
meta.json, vocab.json, embedding.f16 | Both; web/ has its own copies |
We ship the Core ML models compiled. If you turn them back into an
.mlpackage, Core ML recompiles them on every launch and a load takes 28s
instead of 0.13s.
Voz is NVIDIA's Parakeet TDT 0.6B v3, converted and compressed to run on phones, laptops and in the browser. Voz cuts a recording into 15s windows at pauses, transcribes up to 16 windows at once, and joins them where neighboring windows agree on the words. Because Voz works through a recording window by window, a five-hour file needs no more memory than a five-minute one. On Apple devices every step runs on the Neural Engine.
You can pass audio at any sample rate, mono or stereo. The SDK handles the conversion.
Time to transcribe 10 minutes of audio with Swift SDK 3.5.0, the fastest of three runs after the model loaded:
| Device | Time | Realtime factor |
|---|---|---|
| M3 Ultra | 0.8s | 762x |
| iPhone 18 Pro | 1.2s | 492x |
| M4 Max | 1.3s | 453x |
| iPhone 17 Pro | 1.8s | 334x |
| iPhone 15 Pro | 2.1s | 283x |
| M1 Mac mini | 2.4s | 251x |
Short clips run at 50-62x, because Voz always processes a full 15s window.
The first load after install takes 20s while Core ML prepares the model for the Neural Engine. After that, a load takes 0.2s on an M3 Ultra.
| Word error rate | 7.40% across six Open ASR Leaderboard datasets. Whisper large-v3-turbo scores 7.00%. |
| On long audio | 2.83% on 30 minutes of an audiobook. Whisper large-v3-turbo scores 2.72%. |
| Word timestamps | Starts are off by 83ms and ends by 95ms on average, compared with a forced aligner. |
| Size | 467MB. Whisper large-v3-turbo is 1.6GB. |
We scored Voz on the Open ASR Leaderboard datasets with the leaderboard's own text normalizer. Whisper's numbers come from the leaderboard.
| Dataset | Voz | Whisper large-v3-turbo |
|---|---|---|
| LibriSpeech test-clean | 2.19% | 2.13% |
| LibriSpeech test-other | 3.86% | 3.70% |
| GigaSpeech | 9.70% | 8.47% |
| SPGISpeech | 3.86% | 2.79% |
| Earnings-22 | 12.97% | 11.07% |
| AMI | 11.84% | 13.87% |
| Average | 7.40% | 7.00% |
Voz comes close to Whisper large-v3-turbo at less than a third of the size. Voz does better on meetings and worse on read and prepared speech.
Clean audiobook recordings score 2-4%. Meetings, earnings calls and podcasts score 10-13%, and most real recordings sound more like those. On a podcast, plan to check one word in ten.
We left out VoxPopuli and TEDLIUM. The leaderboard's scripts point at a smaller VoxPopuli set than the one behind its published scores, and the TEDLIUM config has no data.
We compared Voz's word times with torchaudio's MMS_FA forced aligner.
| Words | Start error | End error | Ends within 80ms | Ends within 200ms | |
|---|---|---|---|---|---|
| English, LibriSpeech | 6295 | 83ms | 95ms | 60% | 90% |
| German, FLEURS | 939 | 80ms | 92ms | 62% | 92% |
Word ends are harder to get right. The model reports how long each token lasts, and that tends to run into the pause after a word, so the SDK trims the end back using the audio. The aligner isn't exact either, and Voz works in 80ms frames, so no timestamp is more precise than 80ms.
We tested each language on 10 minutes of audio, made by joining FLEURS test clips into one long file. A single FLEURS clip is shorter than one 15s window, so a single clip wouldn't test how Voz joins windows, which every real recording needs.
|
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
How it works