Downloads · 30 days
164
72% of all-time downloads
ctyau/cohere-transcribe-coreml-fp16
cohere-transcribe-coreml-fp16 is a automatic speech recognition model from ctyau. Use it when you need speech turned into text. The card lists the license as apache-2.0.
Native Apple Silicon CoreML FP16 release of CohereLabs/cohere-transcribe-03-2026 (2 Billion parameter Conformer + Transformer ASR model).
Downloads · 30 days
164
72% of all-time downloads
All-time downloads
227
Public
Repo size
4.3 GB
Likes
0
Public
Click a slice to open those files.
.bin4.3 GB · 100%
From the Hugging Face model README
Native Apple Silicon CoreML FP16 release of CohereLabs/cohere-transcribe-03-2026 (2 Billion parameter Conformer + Transformer ASR model).
This release utilizes Apple's CoreML.framework with MLState in-place KV caching (iOS 18 / macOS 15+), achieving 26× to 31× realtime transcription speed and ~210 tokens/sec decoding throughput on Apple Silicon M5.
| Utterance Duration | Processing Time | Realtime Factor (RTF) | Realtime Speedup | Decoder Step Latency | Decode Throughput |
|---|---|---|---|---|---|
| 8.40s | 0.320s | 0.038 | 26.3× realtime | 4.76 ms / token | ~210 tok/sec |
| 9.80s | 0.310s | 0.032 | 31.6× realtime | 4.76 ms / token | ~210 tok/sec |
| 11.70s | 0.430s | 0.037 | 27.2× realtime | 4.76 ms / token | ~210 tok/sec |
MLState Key-Value CachingStandard ONNX / PyTorch models require passing the full past key-value tensors in and out of the graph at each autoregressive step, incurring significant memory bandwidth and memory copy overhead.
In this CoreML release, the decoder is compiled as a stateful model. It allocates 32 on-chip state buffers:
cross_k_0..7, cross_v_0..7)self_k_0..7, self_v_0..7)At decode time, the MLState object is mutated directly in Neural Engine and GPU SRAM without streaming tensors across memory domains. Single-token decode latency is reduced to 4.76 ms.
The encoder accepts mel spectrogram [1, 128, 3500] and dynamic length [1]. By tracking the real acoustic duration, padding tokens are properly masked out, preventing repetition and hallucination loops common in naive static exports.
Includes pre-computed Slaney 128-bin mel filterbank weights (mel_filters.bin) and complete tokenizer files (tokenizer.json, tokenizer_config.json, processor_config.json, config.json), making it a drop-in asset for voice applications.
| File | Size | Description |
|---|---|---|
cohere_encoder.mlpackage | ~3.5 GB | Conformer ASR Encoder (FP16 weights, ANE accelerated) |
cohere_decoder_prefill.mlpackage | ~289 MB | Prompt prefill & cross-attention (initializes MLState) |
cohere_decoder_decode.mlpackage | ~258 MB | 1-token autoregressive step (mutates MLState in place) |
mel_filters.bin | 102.9 KB | 128-bin Slaney mel filterbank (16kHz, n_fft=400, IEEE float32) |
cohere_transcribe_trace_metadata.json | 1.6 KB | Tensor input/output metadata and shape specifications |
tokenizer.json / config.json | ~1.2 MB | Tokenizer vocab (16,384 tokens) and model hyper-parameters |
cohere_encoder.mlpackage)mel: [1, 128, 3500] (float32, log-mel spectrogram)length: [1] (int32, actual number of acoustic frames)encoder_hidden: [1, 438, 1024] (float16 acoustic representations)cohere_decoder_prefill.mlpackage)encoder_hidden: [1, 438, 1024] (float32)input_ids: [1, 10] (int32, prompt prefix: [13764, 7, 4, 16, 62, 62, 5, 9, 11, 13])MLState buffers[1, 10, 16384] (predicts initial token)cohere_decoder_decode.mlpackage)input_ids: [1, 1] (int32, current token)cache_update_mask: [1, 512] (float32, one-hot update slot)cache_valid_mask: [1, 512] (float32, cumulative mask)MLState in place[1, 1, 16384]coremltools:from coremltools.models.utils import compile_model
from huggingface_hub import snapshot_download
import shutil, os
# Download
path = snapshot_download(repo_id="ctyau/cohere-transcribe-coreml-fp16")
# Compile to native .mlmodelc bundles
dest = os.path.expanduser("~/Library/Application Support/voxtype/models/cohere-transcribe-fp16/compiled_coreml")
os.makedirs(dest, exist_ok=True)
for name in ["cohere_encoder", "cohere_decoder_prefill", "cohere_decoder_decode"]:
compiled_temp = compile_model(f"{path}/{name}.mlpackage")
target = os.path.join(dest, f"{name}.mlmodelc")
if os.path.exists(target):
shutil.rmtree(target)
shutil.copytree(compiled_temp, target)
print(f"Compiled {name} -> {target}")
This model bundle powers native Apple Silicon dictation in Voxtype:
Released under the Apache-2.0 license, consistent with the upstream base model CohereLabs/cohere-transcribe-03-2026.