- Mistral Voxtral Realtime 4B modeli için yalnızca C diliyle yazılmış bir çıkarım hattı; hiçbir dış bağımlılığı olmayan bağımsız bir yapı
- Metal GPU hızlandırma (MPS) ve BLAS (OpenBLAS/Accelerate) arka uçlarını destekler; streaming API ile gerçek zamanlı ses girişi ve token çıktısını işler
- Bellek eşlemeli BF16 ağırlıklar, sliding window tabanlı encoder ve rolling KV cache sayesinde uzun ses girdilerinde bile bellek kullanımını sabit tutar
- Mikrofon girişi, stdin pipe ve ffmpeg dönüşümü üzerinden farklı ses giriş yöntemlerini destekler; alternatif token gösterimi ve gecikme ayarı seçeneği (-I) sunar
- MIT lisansı ile yayımlandı; Apple M3 Max üzerinde gerçek zamandan yaklaşık 2,5 kat daha hızlı çalışarak hafif yerel konuşma tanıma uygulamalarını mümkün kılar
Voxtral.c genel bakış
- Mistral AI'nin Voxtral Realtime 4B modeli için saf C tabanlı bir çıkarım motoru; C standart kütüphanesi dışında hiçbir bağımlılığı yok
- MPS arka ucu hızlı çıkarım sağlar; BLAS (OpenBLAS/Accelerate) ise CPU tabanlı ortamlarda çalışır
- Python runtime, CUDA ve vLLM olmadan da tamamen yerel çıkarım yapılabilir
- python_simple_implementation.py dosyası üzerinden basit bir Python referans uygulaması da sunulur
- Yalnızca PyTorch, safetensors, soundfile ve soxr gerekir
Başlıca özellikler
- Zero dependencies: Dış kütüphane olmadan yalnızca C ile çalışabilir
- Metal GPU hızlandırma: Apple Silicon ortamında otomatik etkinleşir; GPU işlem füzyonu ve batch'lenmiş attention işleme içerir
- Streaming output: Üretilen token'lar anında stdout'a yazdırılır
- Streaming C API: Sesi sıralı olarak girip token dizelerini gerçek zamanlı almak mümkündür
- Bellek eşlemeli ağırlıklar: safetensors dosyaları doğrudan
mmap ile yüklenir ve hemen kullanılabilir
- Mikrofon girişi desteği (macOS): Otomatik sessizlik algılama içerir
- Chunked Encoder: Sesi çakışan chunk'lar halinde işleyerek bellek kullanımını sabit tutar
- Rolling KV Cache: 8192 konumluk sliding window ile önbelleği otomatik sıkıştırır; sınırsız uzunlukta ses işlenebilir
Kullanım
- Temel komutlar
./voxtral -d voxtral-model -i audio.wav : dosya tabanlı konuşma tanıma
./voxtral -d voxtral-model --from-mic : mikrofondan gerçek zamanlı tanıma (macOS)
ffmpeg pipe'ı ile çeşitli ses formatları giriş olarak verilebilir
- Alternatif token gösterimi
--alt <cutoff> seçeneği ile benzer telaffuz adayları da gösterilebilir
cutoff değeri yükseldikçe daha fazla aday gösterilir
- Gecikme ayarı (-I seçeneği)
- Encoder çağrı aralığını saniye cinsinden ayarlar
- Düşük değerler (ör. 0.5 saniye) düşük gecikme ama daha yüksek GPU yükü sağlar / yüksek değerler (ör. 5 saniye) daha verimli işleme sunar
- Varsayılan değer 2.0 saniyedir; gerçek zamanlı streaming için 1.0~2.0 saniye önerilir
C API yapısı
- vox_stream_t tabanlı streaming API sunulur
feed() : ses girdisi
get() : token alma
finish() : kalan sesi işleme
flush() : tamponu zorla işleme
- vox_stream_set_alt() ile alternatif token sayısı ayarlanabilir
- vox_transcribe() fonksiyonu ile tek dosya toplu olarak işlenebilir
Model indirme ve yapılandırma
- HuggingFace üzerinden yaklaşık 8.9GB model ağırlığı indirilir
consolidated.safetensors (BF16 ağırlıklar)
tekken.json (tokenizer sözlüğü)
params.json (model ayarları)
- Apache-2.0 lisanslı model, MIT lisanslı kod
Performans kıyaslamaları
- Apple M3 Max (40 çekirdek GPU, 128GB RAM) temel alınarak
- MPS arka ucu: encoder 284ms, decoder 23.5ms/adım
- BLAS arka ucu: encoder yaklaşık 8 saniye, decoder 335ms/adım
- 60 saniyelik ses için ortalama 31.6ms/adım, yani gerçek zamandan yaklaşık 2,5 kat daha hızlı
- Decoder, tek bir Metal command buffer çağrısı ile token başına tüm işlemleri yürütür
Model mimarisi
- Toplam 4 milyar parametreli (4B) bir streaming speech-to-text modeli
- Audio encoder: 32 katmanlı causal transformer, 1280 boyut, 32 head, pencere 750
- Adapter: Linear(5120→3072) → GELU → Linear(3072→3072)
- LLM decoder: 26 katmanlı transformer (Ministral-3 tabanlı), 3072 boyut, GQA(32 head/8KV)
- Tekken tokenizer, sözlük boyutu 131,072
- Desteklenen diller: İngilizce, İspanyolca, Fransızca, Portekizce, Hintçe, Almanca, Felemenkçe, İtalyanca, Arapça, Rusça, Çince, Japonca, Korece
Bellek gereksinimleri
- Model ağırlıkları: 8.9GB (isteğe bağlı
mmap)
- GPU cache: yaklaşık 8.4GB (BF16→F16 dönüşümünden sonra)
- KV cache: en fazla 1.8GB (sliding window sınırı)
- Çalışma tamponu: yaklaşık 200MB
Derleme ve platformlar
- macOS Apple Silicon:
make mps (en hızlı)
- macOS Intel / Linux(OpenBLAS) :
make blas
- Ubuntu/Debian:
sudo apt install libopenblas-dev
- Fedora:
sudo dnf install openblas-devel
Lisans
- Kod: MIT
- Model: Apache-2.0
- Açık kaynak olarak herkes tarafından değiştirilebilir ve yeniden dağıtılabilir
1 yorum
Hacker News yorumları
Ben açık kaynaklı Handy uygulamasıyla Parakeet V3'ü birleştirip STT'yi (konuşmadan metne) kullanıyorum
Hız ve doğruluk açısından bu kombinasyonu geçen bir şey henüz görmedim. Neredeyse anında deşifre ediyor ve küçük doğruluk kaybı, yapay zekanın bağlamı okuma yeteneği sayesinde sorun olmuyor
Voxtral C uygulamasını Handy'ye entegre etmeyi denedim ama M1 Max MacBook'ta (64GB) deşifre çok yavaştı. Başka uygulamaları da denemeyi planlıyorum
Salvatore'nin voxtral.c ve flux2.c projelerinin hayranıyım
Harici bağımlılıklar olmadan hafif çalışan bir seçenek olarak sürekli optimize edilmesini umuyorum. Ama şu an gerçek kullanım için fazla yavaş (AMD 7800X3D/Blas ortamı bazında)
llms-py'ye Voice Input özelliğini eklerken UX açısından Omarchy'nin voxtype.io desteği en iyisiydi, ardından Whisper.cpp geliyordu
OpenAI Whisper yavaş ama hâlâ güvenilir bir yerel deşifre seçeneği
Ayrıca Mistral'ın Voxtral Transcription API hız ve fiyat açısından etkileyiciydi — dakika başına $0.003 ile çok hızlı ve ucuz. CPU veya disk kısıtlı ortamlarda en iyi seçenek olduğunu düşünüyorum
Şimdi yeni çıkan Qwen 0.6 deşifre modelini test etmeyi düşünüyorum. Benchmark'lar doğruysa, yalnızca CPU için optimizasyon ve 8bit kuantizasyon da hesaba katılan hafif bir zincire dönüşme potansiyeli yüksek
Hetzner gibi sunucu kiralama ortamlarında da kurulabilmesi gerektiği için Intel·AMD·ARM setleri bazında optimizasyon denemeyi planlıyorum
Handy'nin overlay özelliği olduğu söyleniyor ama benim sistemimde çalışmıyor
Linux'ta kurulum kolaydı ama Whisper.cpp ya da Moonshine gibi gerçek zamanlı deşifre hâlâ mümkün değil
--from-micseçeneği yalnızca Mac'i desteklediği için ffmpeg ile sesi yakalamayı denedim ama mikrofon girişini bağlamayı başaramadımSistemim varsayılan modeli çalıştırmak için yetersiz görünüyor.
voxtral-q4.gguf modelini denemek istiyorum
Audacity ya da OBS Studio ile kayıt yapılabildiğine göre, gerçek zamanlı da mümkün olmalı
Ben olsam sırasıyla file→ffmpeg→voxtral, sonra mic→ffmpeg→file, en son da mic→ffmpeg→voxtral denerdim
Başlıkta yalnızca CPU yazıyor ama gerçekte GPU hızlandırma da destekleniyor. Depo açıklamasında bu açıkça yazıyor
Bu proje ile Rust runtime uygulaması aynı anda HN ana sayfasında yer alıyor. İlginç bir rekabet tablosu
MLX sürümüyle yapılmış bir uygulama da var → voxmlx
Ben konuşmadan metne (STT) alanına çok ilgiliyim
Farklı aksanlar ve uzmanlık terimlerinin karıştığı verilerle çalışmak istiyorum ama elimdeki büyük ses örneği verisiyle modeli eğitmeye nereden başlamam gerektiğini bilmiyorum. Tavsiye arıyorum
16GB M3 MacBook Pro'da çalıştırmayı denedim; yükleniyor ama takılıyor ya da çok yavaş
20 yıl önce yaklaşık 200MB ile yapılabilen bir iş için şimdi 9GB'lık bir model gerekmesi tuhaf geliyor