Historical catalog and model evidence. Runtime support, ratings, UI behavior, and commands below describe the implementation at the recorded date. Retired benchmark commands are retained as provenance, not instructions. See the desktop guide for current supported artifacts and features; these records do not claim Electron performance.
The retained signed base catalog contains 44 curated choices: 41 transcription models and three independent voice-cleaning models. The ASR choices are Whisper small.en; Experimental Whisper Large V2 and V3 q5_0; Whisper Large V3 Turbo q5_0 and a separate MLX Turbo entry; Experimental CrisperWhisper 2.0 Large and Turbo FP16 entries; Accurate Canary-Qwen 2.5B; Parakeet TDT 0.6B V3, V2, and TDT-CTC 110M; Parakeet RNNT 1.1B; Cohere Transcribe; Parakeet Japanese; the Paraformer Chinese specialist; ReazonSpeech K2 V2 Japanese; and SenseVoiceSmall for English, Mandarin, Cantonese, Japanese, and Korean; plus Experimental Qwen3-ASR 0.6B and 1.7B entries in MLX 8-bit and GGUF BF16, Q8_0, and Q5_K_M formats; plus Experimental Parakeet TDT V2, Parakeet TDT V3, and Nemotron 3.5 ASR entries in MLX and GGUF F16, Q8_0, and Q5_K_M formats; plus Granite Speech 4.1 2B AR and NAR, Voxtral Mini 4B Realtime 2602, and MOSS Transcribe-Diarize 0.9B. The catalog and signature are bundled; model weights remain external and are downloaded only after the user chooses a model.
The optional voice-cleaning choices are separate from the active ASR model and run before every transcription backend. They use the pinned MLX Audio Swift MossFormer2 SE implementation on Metal, resampling Textify’s canonical 16 kHz mono buffer to the model’s native 48 kHz and back entirely in memory. A failure does not block dictation: Textify exposes a Raw Audio Fallback warning and sends the original canonical buffer to ASR.
| Model id | Tier | Exact revision | Installed bytes | Weights SHA-256 |
|---|---|---|---|---|
mossformer2-se-fp32 |
Accurate | 8744c59f925154f4ba2e9f15ae7eeaa870f80118 |
221,178,344 | 8e47b75ca25dc402db5420c45c868544da8d2ac43b21a919197da113d4d81313 |
mossformer2-se-fp16 |
Recommended | dd04b1b736b9f49951433b7f051cd8d32eb024b6 |
110,652,884 | 61e63484df9c2be7e1111ca0346d431422a98b263331021a67c2d7ddb2f67a85 |
mossformer2-se-int8 |
Fast | 694e69b58f2457e02d96f4ba7fa151a28b07805a |
90,089,718 | 89a0a7fef6de4a7b25bac7365ea60e9b490e978d2ad2fc95c381092f06a5315f |
Each directory contains an exact config.json and model.safetensors from
the corresponding starkdmi Hugging Face repository. FP16 is the recommended
choice and becomes active when installed. Installing or switching a cleaner
never changes the transcription model. The converted checkpoints are
Apache-2.0.
Textify uses only the signed catalog bundled with its current app version. A model becomes visible only in a new Textify release after its exact artifacts, checksums, provenance, licenses, runtime, accelerator, capabilities, support tier, finalization/accuracy guidance, requirements, and minimum app version are included in that bundled catalog.
ggml-small.en-q5_1Balanced - Whisper small.en q5_1ggml-small.en-q5_1.binggerganov/whisper.cppggml-small.en-q5_1.binhttps://github.com/Player0109/Textify/releases/download/models-v1/ggml-small.en-q5_1.binThe manifest sha256 value must be computed from the exact uploaded Textify
GitHub Release asset bytes, not from an upstream URL, local placeholder, or a
file before final upload verification.
shasum -a 256 ggml-small.en-q5_1.bin
Release manifests must not ship with placeholder checksums, placeholder sizes, or non-Textify download URLs. If the model bytes change, publish a new immutable release asset URL and sign a new manifest for those bytes.
The signed catalog can publish Whisper GGML variants across tiny, base, small, medium, large, quantized, distilled, English-only, and multilingual tiers. Each entry remains a separate curated artifact with its own measured quality, release-to-final latency, memory use, language capability, and license record.
Users may also import a local Whisper-compatible GGML/GGUF file. Textify checks that it is a regular file, enforces size limits, recognizes the container header, hashes and copies it into managed storage, and requires the native Whisper runtime to load and warm it before activation. Textify labels the license as user-provided and does not claim that an imported file is safe or properly licensed.
Whisper Large V2 q5_0 and Whisper Large V3 q5_0 are published as Experimental
English routes under catalog IDs whisper-large-v2-q5_0 and
whisper-large-v3-q5_0. Their exact 1,080,732,091-byte and 1,081,140,203-byte
artifacts come from ggerganov/whisper.cpp commit
c521a4b02f422512d734391fdf08bb08c0862f68; SHA-256 values are
3a214837221e4530dbc1fe8d734f302af393eb30bd0ed046042ebf4baf70f6f2 and
d75795ecff3f83b5faa89d1900604ad8c780abd5739fae406de19f23ecd98ad1.
Textify exposes English only for these entries until additional languages pass
the same fixed-corpus quality, latency, and memory gate. The OpenAI model and
whisper.cpp conversion/runtime layers are MIT. On the fixed 210-word OpenSLR
subset on M4 Max, V2 measured 3.33% WER, 551 ms median/746 ms p95
release-to-final, and 1.49 GB peak resident memory; V3 measured 3.81% WER,
542.5 ms median/728 ms p95, and 1.50 GB peak resident memory. See the
exact benchmark record.
Whisper Large V3 Turbo q5_0 is published as the English/Hindi Specialist under
catalog id whisper-large-v3-turbo-q5_0. Its single 574,041,195-byte artifact
comes directly from ggerganov/whisper.cpp at commit
5359861c739e955e79d9a303bcbc70fb988958b1; SHA-256 is
394221709cd5ad1f40c46e6031ca61bce88931e6e088c188294c6d5a55ffa7e2.
Both the OpenAI model and whisper.cpp conversion/runtime layers are MIT.
On the fixed English OpenSLR sample it measured 4.29% corpus WER, 367 ms median
finalization, and 415 ms p95/max. On the fixed Hindi FLEURS hi_in sample it
measured 22.05% WER and 20.47% CER, with 536.5 ms median and 734 ms p95/max.
Peak RSS was about 700 MB. The one Hindi clip over the 700 ms Recommended-tier
target and the narrow two-language evidence keep it Specialist. Textify exposes
only English, Hindi, and automatic selection for this entry until additional
languages pass the same gate.
The catalog publishes two English-only Experimental FP16 entries through Textify’s pinned whisper.cpp/Metal integration:
| Model id | Exact file | Installed bytes | SHA-256 |
|---|---|---|---|
crisperwhisper-2-large-f16 |
ggml-crisperwhisper-large-f16.bin |
3,094,723,598 | 4160d90dcc11fb234bd126c85956e74c866b288524e8ec29a0a0a5c3e11c0cb7 |
crisperwhisper-2-turbo-f16 |
ggml-crisperwhisper-turbo-f16.bin |
1,624,655,191 | f9a12306a577c99cbdaab5a4988725fbceed5a92993baec10436e579116ffa41 |
Both conversions come from drbaph/CrisperWhisper2.0-GGML at immutable
revision 4807002cb64c57f78b37ffb4c48e986815a7c885. Their original Nyra
checkpoints are nyralabs/CrisperWhisper2.0_large at
fe94128aee7cdf1ad43ab59c4b1f7ed6362c1106 and
nyralabs/CrisperWhisper2.0_turbo at
16424a0a0dad3d7bcc08927451718da49bce8ce0. Textify uses its existing pinned
ggml-org whisper.cpp v1.7.6 Metal integration at commit
a8d002cfd879315632a579e73f0148d06959de36; it does not ship or link the
CrisperWhisper.cpp runtime. Focused decoder logic in Textify’s shim is adapted
from Saganaki22/CrisperWhisper.cpp commit
13c7b3efdafd8bd20bd6361e7354ce2aa9bec464, whose code is MIT-licensed.
Textify requires the verified Metal route, supports explicit English only, and
caps each runtime audio chunk at 30 seconds. The entries are not assigned
catalog benchmark ratings.
The standard public Nyra repositories publish noncommercial terms for the model weights and outputs generated by them. Textify keeps the exact upstream terms visible offline. Shipping these entries depends on Textify’s separate commercial grant from nyra health GmbH; the catalog and this guide do not replace or modify the public upstream terms.
The native runtime supports these catalog variants through pinned FluidAudio
0.15.5:
Textify requires macOS 14.4 or newer for a Parakeet catalog entry because it
uses MLComputePlan to prove that the compiled encoder actually prefers the
Apple Neural Engine. Merely requesting .cpuAndNeuralEngine is not accepted as
accelerator evidence.
Parakeet V3 is promoted as parakeet-tdt-0.6b-v3 in the Recommended tier. The
catalog selects 21 int8 runtime leaves totaling 483,105,645 bytes from
FluidInference/parakeet-tdt-0.6b-v3-coreml at commit
aed02740059203c4a87495924f685de3722ae9ce. It intentionally excludes duplicate
and source variants from that repository. The model weights are CC-BY-4.0;
FluidAudio runtime/conversion code is Apache-2.0.
Every file uses an exact commit-pinned Hugging Face URL, safe relative path, byte size, and SHA-256. The installer stages and verifies every leaf before atomically replacing the installed model directory. FluidAudio network access is disabled in the app runtime; missing or corrupt artifacts fail closed.
Parakeet TDT-CTC 110M is published as the English-only Fast tier. Its 16
runtime leaves total 227,466,209 bytes and come from
FluidInference/parakeet-tdt-ctc-110m-coreml at commit
9bc92ead6e8f17eca92a869fd578ae76842b82ba. The fused preprocessor contains
the encoder, so Textify verifies that component—not a nonexistent standalone
encoder—for Neural Engine-preferred operations. A native smoke run produced an
exact transcript in 68 ms after warm load on the M4 Max test host.
Parakeet V2 is published as the English-only Accurate tier. Its 21 int8 runtime
leaves total 464,413,247 bytes and come from
FluidInference/parakeet-tdt-0.6b-v2-coreml at commit
ee09c569f73759e6d44c9bd16766f477b2b36d39. A native smoke run produced an
exact transcript in 75 ms; its first executable-specific Core ML preparation
took about 70 seconds on the M4 Max test host, which is disclosed in the model
picker.
Both entries inherit the upstream CC-BY-4.0 model terms and the pinned Apache-2.0 FluidAudio runtime. On the fixed 210-word OpenSLR subset, 110M measured 2.38% corpus WER with 38.5 ms median and 51 ms p95/max finalization; V2 measured 0.95% WER with 64 ms median and 74 ms p95/max. Both also passed the clean signed-catalog download, atomic install, offline load, ANE verification, and fixture-transcription gate.
Parakeet Japanese is published as the Japanese-only Specialist tier under the
FluidAudio-compatible catalog id parakeet-ja. Its 21 int8 runtime leaves total
619,065,246 bytes and come from FluidInference/parakeet-0.6b-ja-coreml at
commit 2952296ff1da4a6d6a7aec545e226367db80c612. The original and derived model
weights are CC-BY-4.0, and the pinned FluidAudio runtime is Apache-2.0.
On Textify’s fixed ten-utterance JSUT sample it measured 13.11% corpus CER, 60.5 ms median finalization, and 406 ms p95/max on the M4 Max test host. Peak RSS was about 694 MB. The first executable-specific Core ML preparation took 37.4 seconds; warm process loads were 281–739 ms. Its signed picker guidance discloses the Japanese-only coverage, 619 MB download, accuracy result, and first-preparation cost.
Parakeet RNNT 1.1B is published as the English-only Experimental entry
parakeet-rnnt-1.1b. Its five-file MLX directory totals 4,282,559,760 bytes and
comes from mlx-community/parakeet-rnnt-1.1b at immutable commit
7f399a0d3442123deae9194e71f5c984b2879efa. The original NVIDIA weights and
conversion remain CC-BY-4.0; the pinned MLX Audio Swift and MLX Swift runtime
layers are MIT.
Textify keeps the loaded MLX session resident, forces the Metal GPU, accepts
16 kHz mono English audio only, and caps each ASR window at 60 seconds within a
five-minute Dictation Session. Command-line
SwiftPM cannot build MLX’s shaders, so the app ships a distinct, verified
mlx.metallib beside its executable. Whisper’s default.metallib is a
different library and cannot satisfy this route.
On the fixed 210-word OpenSLR subset on M4 Max, the exact model measured 1.90% WER, 128.5 ms median and 241 ms p95 release-to-final latency, 0.0182 median real-time factor, and 4,456,595,456 bytes peak resident memory. A fresh install-shaped directory with all five catalog hashes reproduced the exact first transcript on MLX Metal. Its 4.28 GB download and memory footprint keep it Experimental and require at least 16 GB unified memory. See the exact benchmark record.
Cohere Transcribe is published as the English-only Experimental entry
cohere-transcribe-03-2026-mlx-8bit. Its four-file MLX directory totals
2,418,577,135 bytes and is pinned to
beshkenadze/cohere-transcribe-03-2026-mlx-8bit commit
d1f843476f84846e6fe7aa58a6033f17882f0ec9. The official model and conversion
are Apache-2.0; the MLX runtime layers are MIT. Textify uses explicit English,
greedy decoding, the verified Metal GPU, and keeps every internal ASR window
within the model’s 30-second limit.
On the same fixed M4 Max corpus, the exact 8-bit model measured 2.86% WER, 121.5 ms median and 304 ms p95 release-to-final latency, 0.0179 median real-time factor, and 2,522,726,400 bytes peak resident memory. All four downloaded files matched the signed byte sizes and hashes, and the native runtime reproduced the first reference at 0 WER through MLX Metal. The 2.42 GB download, English-only scope, new conversion, and 30-second cap keep it Experimental. See the exact benchmark record.
Whisper Large V3 Turbo MLX is published as the English-only Experimental entry
whisper-large-v3-turbo-mlx. Its 1,618,594,759-byte managed directory combines
config.json and weights.safetensors from
mlx-community/whisper-large-v3-turbo commit
a4aaeec0636e6fef84abdcbe3544cb2bf7e9f6fb with eight tokenizer and generation
files from the original OpenAI Turbo repository at immutable commit
41f01f3fe87f28c78e2fbf8b568835947dd65ed9. This prevents the upstream Swift
loader from attempting its mutable online tokenizer fallback after install.
On the same fixed M4 Max corpus, the exact MLX model measured 3.33% WER, 321.5 ms median and 416 ms p95 release-to-final latency, 0.0458 median real-time factor, and 1,748,041,728 bytes peak resident memory. The existing 5-bit whisper.cpp Turbo route remains available because it is about one third the download size and uses substantially less memory; the MLX route offers slightly better measured English accuracy and latency in exchange for that footprint. Textify currently exposes explicit English only because the pinned Swift Whisper decoder does not provide the automatic-language and confidence metrics needed for a trustworthy multilingual production route. See the exact benchmark record.
Qwen3-ASR 0.6B and 1.7B are published as Experimental multilingual choices
with Automatic and explicit language selection. Each architecture has one
native MLX Audio Swift 8-bit directory and three GGUF choices through
transcribe.cpp: BF16, Q8_0, and Q5_K_M. The MLX directories are pinned to
mlx-community/Qwen3-ASR-0.6B-8bit commit
89e96d92ba34aca20b3e29fb10cc284097d1219f and
mlx-community/Qwen3-ASR-1.7B-8bit commit
a8379a2e2f9e313c9292cdf1af4055ab56d50d55. Their nine required inference
files total 1,010,771,234 and 2,467,856,503 bytes respectively.
The six GGUF entries select exact files from
handy-computer/Qwen3-ASR-0.6B-gguf commit
e4e16599b900eb0cb36e524514756bb92eb092b7 and
handy-computer/Qwen3-ASR-1.7B-gguf commit
92282af1610a2db19d66f2bef1e260f5deca782d. Their sizes range from
645,356,192 bytes for 0.6B Q5_K_M to 4,083,087,904 bytes for 1.7B BF16. Every
entry records its own exact filename, size, SHA-256, revision, and Apache-2.0
model license; the native MLX and transcribe.cpp runtime layers are MIT.
Both runtimes keep model inference local, require a verified Metal backend, and cap each ASR window at 60 seconds within a five-minute Dictation Session. Automatic sends no language hint so the architecture detects the language. An explicit compatible selection is forwarded to the MLX or GGUF runtime and disables detection. Textify rejects an explicit language before inference unless it is declared by the signed entry and supported by that runtime variant. The entries advertise the 30 languages declared by the upstream checkpoint and remain Experimental while Textify expands its per-language corpus evidence.
On the fixed English sample, MLX 0.6B and 1.7B measured 3.20% and 1.83% WER with 191.5 ms and 211.5 ms median finalization. The GGUF routes measured 3.33–3.65% WER with 156.5–317.5 ms medians. Q5_K_M used the least memory for each GGUF size. On the fixed Hindi sample, the 0.6B and 1.7B Q5_K_M routes measured 11.36%/10.05% and 10.00%/7.00% WER/CER through automatic language detection. See the exact artifact and benchmark record.
Parakeet TDT 0.6B V2, Parakeet TDT 0.6B V3, and Nemotron 3.5 ASR 0.6B each have one exact MLX Community directory plus F16, Q8_0, and Q5_K_M GGUF choices from handy-computer. The GGUF sources do not publish BF16, so Textify uses and labels their exact F16 files. All twelve choices remain Experimental.
V2 is explicit English. V3 uses automatic detection across its 25 declared European languages. Nemotron uses automatic detection with a conservative catalog of 28 base language codes. Textify sends completed recordings to all three architectures and does not expose Nemotron’s upstream streaming mode or claim live partials.
The exact MLX revisions are
8ae155301e23d820d82aa60d24817c900e69e487 (V2),
ed2b7e8c15f9aaa0b5772e2efb986255eaef7e15 (V3), and
e550040c0478027ed679b2b6b0d055502c103663 (Nemotron). The exact GGUF
revisions are 07cee0616125a08ef619729bb47f40ef747e4bc4,
85ac09ea12fc4b1112fa76810059364bc6adc9de, and
6d44e540bc31b0de1dbe174a3cea87f53a7f22fb respectively.
On the fixed 210-word M4 Max English corpus, Parakeet V2 measured 0.48% WER, Parakeet V3 measured 2.38%, and Nemotron measured 2.86–3.33%. Median release-to-final latency ranged from 67 to 137 ms and every route verified its required Metal backend. See the exact artifact and benchmark record.
The runtime publishes paraformer-large-zh-int8 as a Mandarin Chinese
Specialist. It uses the released FluidAudio 0.15.5
non-autoregressive pipeline: CPU feature extraction, Core ML
encoder/CIF/decoder stages, and host-side integrate-and-fire. Textify verifies
that both the int8 encoder and decoder have Neural Engine-preferred operations
before accepting the model.
The catalog selects 17 int8 runtime leaves totaling 222,136,057 bytes from
FluidInference/paraformer-large-zh-coreml at commit
5dd557bd06342a3cd07ceccb909d8a45e48b053a. The upstream/derived model and
FluidAudio layers are recorded as Apache-2.0.
The fixed ten-utterance AISHELL-1 sample measured 5.38% corpus CER, 66 ms median release-to-final latency, and 75 ms maximum/p95 on the Apple M4 Max test host. Warm process loads were 348–391 ms. The first executable-specific Core ML AOT preparation took about 146 seconds in the benchmark process, so this model must remain Specialist rather than Recommended/Fast and its picker requirements warns that first preparation can take several minutes. A clean isolated install downloaded all 17 exact files, loaded the resulting managed directory, proved ANE-preferred operations, and transcribed a public Mandarin fixture.
The released preprocessor accepts no more than 480,000 samples at 16 kHz (30 seconds). Textify hard-rejects a larger buffer before FluidAudio can truncate it, and production Paraformer catalog entries are capped at 29 seconds. The recorder uses the selected model’s declared limit and automatically finishes there instead of recording an unsupported utterance.
The catalog publishes reazonspeech-k2-v2-int8 as the compact Fast Japanese
choice. Its official four-file int8 Zipformer transducer export totals
160,372,200 bytes and is pinned to reazon-research/reazonspeech-k2-v2 commit
291488c8151be24d7da4bf7af26e533fad96e407. The model and sherpa-onnx are
Apache-2.0; ONNX Runtime is MIT.
Textify embeds only the exact arm64 sherpa-onnx 1.13.2 C runtime and ONNX Runtime 1.24.4 libraries, not model weights. It verifies their source hashes, architecture, nested signatures, and sherpa release version/commit before use. The loaded recognizer remains resident and creates a fresh stream for each completed recording.
On the fixed ten-utterance JSUT sample it measured 14.61% corpus CER, 86 ms median release-to-final latency, and 413 ms p95/max. Cold model load was about 1.3 seconds and peak RSS about 551 MB. A 29-second stress recording finalized in 954 ms. A five-second silence fixture produced a low-confidence token that Textify’s signed average-log-probability threshold discards.
The CPU provider is intentional. On the same 10.72-second fixture, the Core ML provider took 378 ms after a 4.7-second load and used about 1.14 GB RSS; CPU was faster and used roughly half the memory. Reazon is slightly less accurate than the 13.11% CER Parakeet Japanese entry, but its download is about one quarter the size and its cold preparation is dramatically shorter. Those distinct tradeoffs justify keeping both Japanese choices.
The catalog publishes sensevoice-small-int8-2024-07-17 as the Accurate
five-language choice. The 239,233,841-byte int8 ONNX model and 315,894-byte
token table are pinned to
csukuangfj/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17 commit
2365baeacb507f821a0c8120fcee3d484dba7a07. The runtime uses automatic
language identification for English, Mandarin, Cantonese, Japanese, and Korean
and also permits an explicit language selection.
On fixed public samples, SenseVoiceSmall measured 10.86% Japanese CER with 138.5 ms median and 311 ms p95/max finalization, 3.81% English WER with about 223 ms median and 390 ms p95/max, and 6.15% Mandarin CER with 128 ms median and 163 ms p95/max. Automatic selection produced the expected script and content on the Korean and Cantonese upstream fixtures in 139 ms and 159 ms. Cold model load was about 0.32 seconds, and the largest fixed-corpus process reached about 739 MB RSS. A 29-second stress recording finalized in 882 ms, so the model is Accurate rather than Recommended despite its excellent ordinary-dictation latency.
The CPU provider is again measured rather than assumed. On the longest JSUT fixture it finalized in 311 ms after a 319 ms CPU load; Core ML took 332 ms after a 2.04-second load and offered no memory or latency advantage. Textify therefore publishes the CPU route. SenseVoice can hallucinate a short token on digital silence, so the runtime marks punctuation-only or below -60 dBFS input as no speech; normal app recordings have already passed the stricter adaptive speech detector and -45 dBFS edge trimmer.
SenseVoiceSmall weights use the custom FunASR Model Open Source License Agreement 1.1. The license permits use, copying, modification, and sharing with source/author attribution and retention of the model name. An official project member separately confirmed commercial paid-desktop use. Textify retains the SenseVoiceSmall name in the picker, includes FunASR/SenseVoice attribution, and ships a copy of the model license text.
The catalog publishes canary-qwen-2.5b-q4-k-m as the Accurate English choice.
Its single 1,737,575,808-byte Q4_K_M GGUF is pinned to
handy-computer/canary-qwen-2.5b-gguf commit
3370d4e2f28cc70eea79dfc9f2f43fb91eef3163; SHA-256 is
db5162229d6fa22597d06a613bd9b543eddb3ee02e6afc5e759120fde02bebf7.
The original NVIDIA model and conversion are CC-BY-4.0, the Qwen component is
Apache-2.0, and the pinned transcribe.cpp runtime is MIT.
Textify loads the exact canary_qwen architecture through its isolated
transcribe.cpp 0.1.3 dynamic runtime, verifies the reported Metal device, keeps
the session resident, accepts explicit English only, and rejects audio longer
than 40 seconds before inference. Digital and near-digital silence is returned
as no speech without invoking the autoregressive model.
On the fixed 210-word OpenSLR subset on M4 Max, Canary-Qwen measured 0.95% WER, 255.5 ms median and 373 ms p95 release-to-final latency, 0.0312 median real-time factor, and 3,163,389,952 bytes peak resident memory. The opt-in native regression loaded the exact artifact on Metal and reproduced the punctuated first reference under the 700 ms budget. See the exact benchmark record.
The reusable additional engine boundary is sherpa-onnx v1.13.2 at commit
13d0ae6c539d2809d32f5eaa3ef1db0c459d0b24, not one custom runtime per model.
Textify now ships production paths for ReazonSpeech and SenseVoiceSmall. Its
released C/Swift evaluation surface covers Dolphin, while historical native
benchmark records preserve the Omnilingual ASR evaluation. sherpa-onnx also
exposes the separately deferred Qwen3-ASR ONNX route, Moonshine V2, Cohere
Transcribe, Fun-ASR Nano, and FireRedASR. Each new architecture still requires
a small explicit shim extension plus exact-artifact quality, latency, memory,
license, and accelerator evaluation. A provider option alone is not accelerator
proof.
| Candidate | Decision |
|---|---|
| Distil-Whisper Large V3.5 | Deferred on product fit. Its official 1,519,521,155-byte GGML artifact produced the same 4.29% WER as Turbo on the fixed English sample and was only 15 ms faster at the median, while peaking near 1.62 GB RSS and supporting English only. |
| Kotoba-Whisper V2.0 q5_0 | Deferred with no measured advantage. The official 537,819,875-byte Apache-2.0 GGML artifact reached 18.73% CER, 507.5 ms median, 700 ms p95/max, about 633 MB RSS, and a 24.7-second first load on the same JSUT slice. Promoted Parakeet Japanese measured 13.11% CER and 60.5 ms median, so another Japanese-only download would add choice without adding value. |
| Qwen3-ASR 0.6B int8 ONNX | This separate sherpa-onnx export remains deferred on interactive cost; the native MLX and GGUF variants are published above. The exact 987,015,347-byte Apache-2.0 ONNX artifact reached 12.95% Hindi WER and 13.11% CER, better than Whisper Turbo’s Hindi result, but took about 2.22 seconds median and 3.42 seconds p95/max with about 2.15 GB RSS. Core ML regressed to 15.45 seconds and 8.20 GB on one clip; a 29-second Japanese stress clip still ended incomplete at the raised 512-token output limit. |
| Legacy Cohere Transcribe 2B sherpa conversion | Deferred. This older, differently licensed conversion is not the requested Apache-2.0 Cohere Transcribe 03-2026 model now supported through MLX Metal. |
| Omnilingual ASR CTC 300M int8 | Deferred on measured quality. The exact 365,438,543-byte Apache-2.0 artifact covers more than 1,600 languages and finalized the fixed Hindi sample in about 754 ms median/1.50 seconds p95, but reached 23.18% WER and 31.24% CER with about 1.02 GB RSS—worse quality than promoted Whisper Turbo on this slice. Core ML took 2.92 seconds and roughly 12.28 GB on one clip. |
| Dolphin Small CTC multilingual int8 | Deferred on quality despite speed. The exact 250,163,616-byte Apache-2.0 artifact finalized at about 228 ms Hindi median and roughly 93 ms Japanese median, but measured 33.86% Hindi WER/35.37% CER and 18.35% Japanese CER. It adds no quality advantage over the promoted Hindi or Japanese choices. |
| Moonshine V2 Tiny English | Deferred pending safe chunking. The exact 44 MB quantized sherpa artifact transcribed ≤9.02-second OpenSLR clips in 29–110 ms on CPU, but returned empty results for every 11.48–13.31-second clip because the exported window is about 10 seconds. Core ML was much worse on a 4.65-second clip: 1.947 seconds versus 58 ms on CPU, with higher memory. Do not cap ordinary dictation or silently lose long audio; add boundary-aware chunking before promotion. |
| Canary 180M/1B | Deferred until a released native Apple-accelerated runtime exists. NVIDIA’s official support path targets NVIDIA hardware. |
Detailed measurements and reproducible commands live in
docs/models/benchmark-report-2026-07-19.md and Benchmarks/RealtimeASR.
A model is not added merely because its runtime can load it. Promotion requires: