Instructions to use selcukkubur/parakeet-ultra-mlx with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use selcukkubur/parakeet-ultra-mlx with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir parakeet-ultra-mlx selcukkubur/parakeet-ultra-mlx
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
parakeet-ultra-mlx
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.
What was changed
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.
How it was checked
- 697/697 tensor names and shapes match the reference exactly.
- Cosine similarity against the reference across all 697 tensors: median 1.0000, mean 0.9998, every tensor above 0.8. parakeet-ultra is a post-train of the same base, so near-identity is expected; a wrong transpose would read near zero.
- It transcribes. On a 7-second clip it returns the reference text word for word, punctuation included.
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.
Licence and credit
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.
- Downloads last month
- -
Quantized