Downloads · 30 days
2.9K
92% of all-time downloads
selcukkubur/parakeet-ultra-mlx
parakeet-ultra-mlx is a automatic speech recognition model from selcukkubur. Use it when you need speech turned into text. It is set up for mlx. The card lists the license as cc-by-4.0.
moondream/parakeet-ultra in the layout mlx-audio-swift's ParakeetModel reads, at bfloat16. Made for OpenMeet; anyone else running Parakeet through MLX on Apple silicon can use it too.
Downloads · 30 days
2.9K
92% of all-time downloads
All-time downloads
3.1K
Public
Parameters
627M
1.3 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.3 GB · 100%
From the Hugging Face model README
moondream/parakeet-ultra in the
layout mlx-audio-swift's ParakeetModel
reads, at bfloat16. Made for OpenMeet; anyone else running
Parakeet through MLX on Apple silicon can use it too.
The upstream model is published for Photon, which this is not. It is the same weights under different names.
Nothing was retrained, quantized below bf16, or pruned. The weights are the upstream ones with their names and memory layouts translated:
upstream (HF ParakeetForTDT) | here (NeMo/MLX) |
|---|---|
encoder.subsampling.layers.N.* | encoder.pre_encode.conv.N.*, weights NCHW→NHWC |
encoder.subsampling.linear.* | encoder.pre_encode.out.* |
encoder.layers.N.conv.norm.* | encoder.layers.N.conv.batch_norm.* |
conv.depthwise_conv / pointwise_conv{1,2} | same names, channels transposed (0,2,1) |
self_attn.{q,k,v,o}_proj | self_attn.linear_{q,k,v,out} |
self_attn.relative_k_proj | self_attn.linear_pos |
self_attn.bias_{u,v} | self_attn.pos_bias_{u,v} |
encoder_projector.* | joint.enc.* |
decoder.decoder_projector.* | joint.pred.* |
joint.head.* | joint.joint_net.2.* |
decoder.embedding.* | decoder.prediction.embed.* |
decoder.lstm.weight_{ih,hh}_lN | decoder.prediction.dec_rnn.lstm.N.{Wx,Wh} |
decoder.lstm.bias_ih_lN + bias_hh_lN | …lstm.N.bias, summed |
Dropped, because the NeMo graph has nowhere to put them: vad_head.* (6 tensors,
Photon's voice-activity head) and the 24 conv.norm.num_batches_tracked counters,
which are BatchNorm bookkeeping rather than weights. 729 − 6 − 24 − 2 = 697, the
tensor count of mlx-community/parakeet-tdt-0.6b-v3, name for name and shape for
shape.
config.json and the tokenizer are taken from that reference unchanged. The model
card upstream says "same architecture, same tokenizer", and the vocabularies were
compared token by token before relying on it: 8192 of 8192 identical.
The upstream accuracy gains were not reproduced here. Against
mlx-community/parakeet-tdt-0.6b-v3 on synthesized speech — clean, 10/5/0 dB SNR,
and German — the two produced identical text in every case except one token at
0 dB, where this model was the worse of the two. That is a statement about the test,
not the models: synthesized speech is far easier than the human corpora the
Open ASR Leaderboard
numbers on the upstream card are measured against, and both models saturate it.
Anyone wanting the published gains should measure on real audio.
Throughput was a wash: 176–189× real time here against 184–192× for the reference, on the same 19-second clip on the same machine.
CC-BY-4.0, inherited. Credit belongs to moondream for parakeet-ultra and to NVIDIA for parakeet-tdt-0.6b-v3 underneath it. This repository is a format conversion and claims nothing else.