- Mistral Voxtral Realtime 4B मॉडल के लिए सिर्फ C भाषा में बना inference pipeline, जो बिना किसी बाहरी dependency के पूरी तरह standalone संरचना देता है
- Metal GPU acceleration (MPS) और BLAS(OpenBLAS/Accelerate) backend का समर्थन, और streaming API के जरिए real-time voice input तथा token output को प्रोसेस करता है
- Memory-mapped BF16 weights, sliding window-आधारित encoder, और rolling KV cache की मदद से लंबे audio input में भी memory usage स्थिर रहता है
- Mic input, stdin pipe, और ffmpeg conversion के जरिए कई तरह के audio input modes का समर्थन, साथ ही alternative token display और latency control option (-I) भी उपलब्ध
- MIT license के तहत जारी, और Apple M3 Max पर real-time से लगभग 2.5 गुना तेज़ प्रदर्शन के साथ हल्का local speech recognition implementation संभव बनाता है
Voxtral.c अवलोकन
- Mistral AI के Voxtral Realtime 4B मॉडल के लिए शुद्ध C-आधारित inference engine, जिसमें C standard library के अलावा कोई dependency नहीं है
- MPS backend तेज़ inference speed देता है, जबकि BLAS(OpenBLAS/Accelerate) CPU-आधारित environments में काम करता है
- Python runtime, CUDA, vLLM के बिना भी पूरा local inference संभव
- python_simple_implementation.py फ़ाइल के जरिए एक सरल Python reference implementation भी दी गई है
- इसके लिए केवल PyTorch, safetensors, soundfile, soxr चाहिए
मुख्य फीचर्स
- Zero dependencies: किसी बाहरी library के बिना सिर्फ C से चलाया जा सकता है
- Metal GPU acceleration: Apple Silicon environment में अपने-आप सक्रिय, GPU operation fusion और batched attention processing के साथ
- Streaming output: generate किए गए token तुरंत stdout पर आउटपुट होते हैं
- Streaming C API: audio को क्रमवार input किया जा सकता है और token string real-time में प्राप्त की जा सकती है
- Memory-mapped weights: safetensors फ़ाइल को mmap से सीधे load कर तुरंत उपयोग किया जा सकता है
- Mic input support (macOS): automatic silence detection शामिल
- Chunked Encoder: overlapping chunks में audio प्रोसेस कर memory usage स्थिर रखता है
- Rolling KV Cache: 8192-position sliding window के साथ cache को अपने-आप compress करता है, जिससे unlimited-length audio प्रोसेस किया जा सकता है
उपयोग का तरीका
- बेसिक कमांड
./voxtral -d voxtral-model -i audio.wav : फ़ाइल-आधारित speech recognition
./voxtral -d voxtral-model --from-mic : mic input के साथ real-time recognition (macOS)
ffmpeg pipe के जरिए विभिन्न audio formats input किए जा सकते हैं
- Alternative token display
--alt <cutoff> option के साथ मिलते-जुलते उच्चारण वाले candidate भी दिखाए जा सकते हैं
cutoff मान जितना अधिक होगा, उतने अधिक candidate दिखेंगे
- Latency control (-I option)
- encoder call interval को सेकंड में सेट किया जा सकता है
- कम मान (जैसे 0.5 सेकंड) = कम latency, ज़्यादा GPU load / अधिक मान (जैसे 5 सेकंड) = अधिक efficient processing
- default 2.0 सेकंड है, real-time streaming के लिए 1.0~2.0 सेकंड recommended है
C API संरचना
- vox_stream_t-आधारित streaming API उपलब्ध
feed() : audio input
get() : token प्राप्त करना
finish() : बचा हुआ audio प्रोसेस करना
flush() : buffer को force करके प्रोसेस करना
- vox_stream_set_alt() से alternative token count सेट किया जा सकता है
- vox_transcribe() फ़ंक्शन से single-file batch processing संभव
मॉडल डाउनलोड और कॉन्फ़िगरेशन
- HuggingFace से लगभग 8.9GB मॉडल weights डाउनलोड करने होते हैं
consolidated.safetensors (BF16 weights)
tekken.json (tokenizer vocabulary)
params.json (model configuration)
- Apache-2.0 license मॉडल, MIT license कोड
परफ़ॉर्मेंस बेंचमार्क
- Apple M3 Max (40-core GPU, 128GB RAM) के आधार पर
- MPS backend: encoder 284ms, decoder 23.5ms/step
- BLAS backend: encoder लगभग 8 सेकंड, decoder 335ms/step
- 60 सेकंड audio पर औसतन 31.6ms/step, यानी real-time से लगभग 2.5 गुना तेज़
- decoder, एकल Metal command buffer call में प्रति token पूरा computation करता है
मॉडल आर्किटेक्चर
- कुल 4 अरब parameters (4B) वाला streaming speech-to-text मॉडल
- Audio encoder: 32-layer causal transformer, 1280-dimension, 32-head, window 750
- Adapter: Linear(5120→3072) → GELU → Linear(3072→3072)
- LLM decoder: 26-layer transformer (Ministral-3 आधारित), 3072-dimension, GQA(32-head/8KV)
- Tekken tokenizer, vocabulary size 131,072
- समर्थित भाषाएँ: English, Spanish, French, Portuguese, Hindi, German, Dutch, Italian, Arabic, Russian, Chinese, Japanese, Korean
मेमोरी आवश्यकताएँ
- मॉडल weights: 8.9GB (on-demand mmap)
- GPU cache: लगभग 8.4GB (BF16→F16 conversion के बाद)
- KV cache: अधिकतम 1.8GB (sliding window limit)
- वर्क buffer: लगभग 200MB
बिल्ड और प्लेटफ़ॉर्म
- macOS Apple Silicon:
make mps (सबसे तेज़)
- macOS Intel / Linux(OpenBLAS) :
make blas
- Ubuntu/Debian:
sudo apt install libopenblas-dev
- Fedora:
sudo dnf install openblas-devel
लाइसेंस
- कोड: MIT
- मॉडल: Apache-2.0
- open source रूप में कोई भी इसे संशोधित और पुनर्वितरित कर सकता है
1 टिप्पणियां
Hacker News की राय
मैं open source ऐप Handy और Parakeet V3 के साथ STT (speech recognition) का इस्तेमाल कर रहा हूँ
स्पीड और accuracy के मामले में मैंने अभी तक इस संयोजन से बेहतर कुछ नहीं देखा। transcription लगभग तुरंत हो जाता है, और accuracy में थोड़ी कमी भी AI की context समझने की क्षमता की वजह से समस्या नहीं बनती
मैंने Voxtral C implementation को Handy में integrate करके देखा, लेकिन M1 Max MacBook (64GB) पर transcription बहुत धीमा था। मैं दूसरे implementations भी आज़माने वाला हूँ
मैं Salvatore के voxtral.c और flux2.c प्रोजेक्ट्स का प्रशंसक हूँ
उम्मीद है कि ये external dependency के बिना हल्के विकल्प के रूप में लगातार optimize होते रहेंगे। लेकिन अभी यह वास्तविक उपयोग के लिए बहुत धीमा है (AMD 7800X3D/Blas environment के आधार पर)
llms-py में Voice Input feature जोड़ते समय UX के लिहाज़ से Omarchy का voxtype.io support सबसे अच्छा था, उसके बाद Whisper.cpp था
OpenAI Whisper धीमा है, लेकिन फिर भी यह एक भरोसेमंद local transcription विकल्प है
साथ ही Mistral का Voxtral Transcription API स्पीड और कीमत दोनों के मामले में प्रभावशाली था — $0.003 प्रति मिनट पर यह बहुत तेज़ और सस्ता है। मुझे लगता है कि CPU या disk constraints वाले environment में यह सबसे अच्छा विकल्प है
अब मैं नया आया Qwen 0.6 transcription model टेस्ट करने वाला हूँ। अगर benchmarks सही हैं, तो इसमें CPU-only optimization और 8bit quantization तक को ध्यान में रखकर एक lightweight chain में विकसित होने की काफ़ी संभावना है
Hetzner जैसे server rental environment में भी install हो सके, इसलिए मैं Intel·AMD·ARM सेट के हिसाब से optimization आज़माने वाला हूँ
Handy में overlay feature होने की बात कही जाती है, लेकिन मेरे system पर यह काम नहीं करता
Linux पर install करना आसान था, लेकिन Whisper.cpp या Moonshine की तरह real-time transcription अभी नहीं होता
--from-micoption सिर्फ Mac को support करता है, इसलिए मैंने ffmpeg से audio capture करने की कोशिश की, लेकिन mic input connection असफल रहालगता है मेरा system default model चलाने के लिए पर्याप्त सक्षम नहीं है।
मैं voxtral-q4.gguf model आज़माना चाहता हूँ
Audacity या OBS Studio से recording हो जाती है, इसलिए लगता है real-time भी संभव होना चाहिए
व्यक्तिगत रूप से मैं शायद file→ffmpeg→voxtral, फिर mic→ffmpeg→file, और अंत में mic→ffmpeg→voxtral इस क्रम में कोशिश करूँगा
शीर्षक में CPU-only लिखा है, लेकिन वास्तव में यह GPU acceleration भी support करता है। repository description में यह साफ़ लिखा है
यह प्रोजेक्ट और Rust runtime implementation एक ही समय पर HN मुख्य पृष्ठ पर हैं। यह दिलचस्प प्रतिस्पर्धी परिदृश्य है
MLX version implementation भी है → voxmlx
मेरी speech-to-text (STT) क्षेत्र में बहुत रुचि है
मैं ऐसे data पर काम करना चाहता हूँ जिसमें अलग-अलग accents और technical terms मिले हों, लेकिन मेरे पास जो बड़े पैमाने का voice sample data है, उससे model train करना कहाँ से शुरू करूँ यह समझ नहीं आ रहा। सलाह चाहिए
मैंने इसे 16GB M3 MacBook Pro पर चलाकर देखा, लोड तो होता है लेकिन अटक जाता है या बहुत धीमा है
यह अजीब लगता है कि 20 साल पहले जो काम लगभग 200MB में हो जाता था, उसके लिए अब 9GB model चाहिए