13 puan yazan GN⁺ 2026-02-12 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2026-02-12
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

    • Handy harika ama STT'nin gerçek zamanlı değil, toplu işleme tarzında çalışması üzücü
  • 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

    • Modelin kendisi harika ama yerel çıkarım için fazla büyük. Whisper medium kalite olarak daha düşük olsa da ortama uygunluk açısından daha iyi
      Ş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
    • Ben konuşurken aynı anda deşifre edilen görsel geri bildirime ihtiyacım var. voxtype'ın bunu destekleyip desteklemediğini merak ediyorum
      Handy'nin overlay özelliği olduğu söyleniyor ama benim sistemimde çalışmıyor
    • voxtype ve Whisper-base model kombinasyonuna bir oy da benden. Oldukça hızlı ve doğru
  • Linux'ta kurulum kolaydı ama Whisper.cpp ya da Moonshine gibi gerçek zamanlı deşifre hâlâ mümkün değil
    --from-mic seçeneği yalnızca Mac'i desteklediği için ffmpeg ile sesi yakalamayı denedim ama mikrofon girişini bağlamayı başaramadım
    Sistemim varsayılan modeli çalıştırmak için yetersiz görünüyor.
    voxtral-q4.gguf modelini denemek istiyorum

    • Linux'ta test ettiğimde bu modelin gerçek zamanlı deşifre için fazla yavaş olduğunu gördüm. 12 dakikalık bir girdi dosyasını işlemek yarım gün sürdü
    • Sadece mikrofonu değil, monitör portu sesini de yakalayıp web sesini gerçek zamanlı deşifre için boru hattına sokmak istiyorum
      Audacity ya da OBS Studio ile kayıt yapılabildiğine göre, gerçek zamanlı da mümkün olmalı
    • ffmpeg ile dosyadan sesi okuyup voxtral'a vermek işe yarayabilir
      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