Views
No views yet
| File | Size | What |
|---|---|---|
model.pte | 2.20 GiB | LM decoder, token embedding, audio embedding, semantic head, and flow velocity methods lowered to MLX |
codec_decoder.pte | 289 MiB | Native MLX codec decoder for waveform synthesis |
seed=42 and prompt
"Hello, how are you today?".| Config | Audio | Generate time | Generation RTF | Process wall | Notes |
|---|---|---|---|---|---|
| MLX bf16 + 4w linear + 8w embedding | 3.44 s | 2932 ms | 0.852326 | 4.20 s | refreshed after MLX indexing fix |
| MLX bf16 + 4w linear + 8w embedding | 3.44 s | 3132 ms | 0.910465 | 5.19 s | first measured run |
| MLX bf16 + 4w linear + 8w embedding | 3.44 s | 2634 ms | 0.765698 | 3.15 s | warm run |
| MLX bf16 + 4w linear + 8w embedding | 3.44 s | 2607 ms | 0.757849 | 3.13 s | warm run |
0.425764, clipped samples 0. Apple Speech
transcribed the original generated sample as Hello how are you today.EXECUTORCH_BUILD_MLX=ON.1git clone https://github.com/pytorch/executorch ~/executorch
2cd ~/executorch
3
4./install_executorch.sh
5pip install -e . --no-build-isolation
6make voxtral_tts-mlxba5b038400299a383dbe93ab394a30f42a953cc11pip install huggingface_hub
2
3# ExecuTorch MLX artifacts.
4hf download younghan-meta/Voxtral-4B-TTS-2603-ExecuTorch-MLX \
5 --local-dir voxtral_tts_mlx
6
7# Tokenizer + voice embeddings from the base model.
8hf download mistralai/Voxtral-4B-TTS-2603 \
9 tekken.json voice_embedding/* \
10 --local-dir voxtral_tts_base1unset CPATH
2
3cmake-out/examples/models/voxtral_tts/voxtral_tts_runner \
4 --model voxtral_tts_mlx/model.pte \
5 --codec voxtral_tts_mlx/codec_decoder.pte \
6 --tokenizer voxtral_tts_base/tekken.json \
7 --voice voxtral_tts_base/voice_embedding/neutral_female.pt \
8 --text "Hello, how are you today?" \
9 --output output.wav \
10 --seed 42 \
11 --max_new_tokens 200ffplay output.wav--streaming to emit codec output in chunks instead of one batch at the
end. Pair it with --speaker to pipe raw f32le PCM to stdout for live
playback:1cmake-out/examples/models/voxtral_tts/voxtral_tts_runner \
2 --model voxtral_tts_mlx/model.pte \
3 --codec voxtral_tts_mlx/codec_decoder.pte \
4 --tokenizer voxtral_tts_base/tekken.json \
5 --voice voxtral_tts_base/voice_embedding/neutral_female.pt \
6 --text "Introducing real-time Voxtral TTS streaming on Apple Silicon with the ExecuTorch MLX backend." \
7 --seed 42 \
8 --max_new_tokens 200 \
9 --streaming \
10 --speaker \
11 | ffplay -f f32le -sample_rate 24000 -ch_layout mono -nodisp -autoexit -aplay instead: ... | aplay -f FLOAT_LE -r 24000 -c 1.1python examples/models/voxtral_tts/export_voxtral_tts.py \
2 --model-path ~/models/Voxtral-4B-TTS-2603 \
3 --backend mlx \
4 --dtype bf16 \
5 --qlinear 4w \
6 --qembedding 8w \
7 --output-dir ./voxtral_tts_exports_mlx_4w--qembedding 8w auto-selects --qembedding-group-size=128. --qlinear-codec
is not yet validated for MLX, so this export keeps the codec unquantized.1904131ac1a1e3552ea4ada566c19eb57d654e662f93f906456aa1f8633825688 model.pte
2162178ce94732db05bb74d7240a97f2c5a898b8819a29b5d59ebf076aeda8891 codec_decoder.pte