13 poin oleh GN⁺ 2026-02-12 | 1 komentar | Bagikan ke WhatsApp
  • Mistral Voxtral Realtime 4B adalah pipeline inferensi yang diimplementasikan hanya dengan bahasa C, dengan struktur mandiri tanpa dependensi eksternal sama sekali
  • Mendukung backend Metal GPU acceleration (MPS) dan BLAS (OpenBLAS/Accelerate), serta menangani input suara real-time dan output token melalui streaming API
  • Dengan bobot BF16 yang dimemory-map, encoder berbasis sliding window, dan rolling KV cache, penggunaan memori tetap konstan bahkan untuk input audio panjang
  • Mendukung berbagai metode input audio melalui input mikrofon, pipe stdin, dan konversi ffmpeg, serta menyediakan tampilan token alternatif dan opsi pengaturan latensi (-I)
  • Dirilis dengan lisensi MIT, dan mencapai kecepatan sekitar 2,5x lebih cepat dari real-time pada Apple M3 Max, sehingga memungkinkan implementasi pengenalan suara lokal yang ringan

Gambaran umum Voxtral.c

  • Mesin inferensi berbasis C murni untuk model Voxtral Realtime 4B dari Mistral AI, tanpa dependensi selain pustaka standar C
    • Backend MPS memberikan kecepatan inferensi tinggi, sementara BLAS (OpenBLAS/Accelerate) berjalan di lingkungan berbasis CPU
    • Inferensi lokal penuh dapat dilakukan tanpa Python runtime, CUDA, atau vLLM
  • File python_simple_implementation.py juga disediakan sebagai implementasi referensi Python yang sederhana
    • Hanya memerlukan PyTorch, safetensors, soundfile, dan soxr

Fitur utama

  • Zero dependencies: dapat dijalankan hanya dengan C tanpa pustaka eksternal
  • Metal GPU acceleration: aktif otomatis di lingkungan Apple Silicon, dengan fusi operasi GPU dan pemrosesan attention yang dibatch
  • Streaming output: token yang dihasilkan langsung dikirim ke stdout
  • Streaming C API: audio dapat dimasukkan secara berurutan dan string token diterima secara real-time
  • Bobot yang dimemory-map: file safetensors dimuat langsung dengan mmap dan bisa segera digunakan
  • Dukungan input mikrofon (macOS): termasuk fitur deteksi hening otomatis
  • Chunked Encoder: memproses audio dalam chunk yang saling tumpang tindih agar penggunaan memori tetap stabil
  • Rolling KV Cache: cache dikompresi otomatis dengan sliding window 8192 posisi, memungkinkan pemrosesan audio dengan panjang tak terbatas

Cara penggunaan

  • Perintah dasar
    • ./voxtral -d voxtral-model -i audio.wav : pengenalan suara berbasis file
    • ./voxtral -d voxtral-model --from-mic : pengenalan real-time dari mikrofon (macOS)
    • Berbagai format audio juga bisa dimasukkan melalui pipe ffmpeg
  • Tampilan token alternatif
    • Gunakan opsi --alt <cutoff> untuk menampilkan kandidat dengan pelafalan mirip
    • Semakin tinggi nilai cutoff, semakin banyak kandidat yang ditampilkan
  • Pengaturan latensi (opsi -I)
    • Menetapkan periode pemanggilan encoder dalam satuan detik
    • Nilai rendah (misalnya 0.5 detik) memberi latensi rendah tetapi beban GPU lebih tinggi / nilai tinggi (misalnya 5 detik) lebih efisien
    • Nilai default adalah 2.0 detik, dan 1.0~2.0 detik direkomendasikan untuk streaming real-time

Struktur C API

  • Menyediakan streaming API berbasis vox_stream_t
    • feed() : memasukkan audio
    • get() : menerima token
    • finish() : memproses sisa audio
    • flush() : memaksa pemrosesan buffer
  • Jumlah token alternatif dapat diatur dengan vox_stream_set_alt()
  • Pemrosesan batch untuk satu file dapat dilakukan dengan fungsi vox_transcribe()

Unduh dan konfigurasi model

  • Unduh bobot model sekitar 8.9GB dari HuggingFace
    • consolidated.safetensors (bobot BF16)
    • tekken.json (kosakata tokenizer)
    • params.json (konfigurasi model)
  • Model berlisensi Apache-2.0, kode berlisensi MIT

Benchmark performa

  • Berdasarkan Apple M3 Max (GPU 40-core, RAM 128GB)
    • Backend MPS: encoder 284ms, decoder 23.5ms/langkah
    • Backend BLAS: encoder sekitar 8 detik, decoder 335ms/langkah
  • Untuk audio 60 detik, rata-rata 31.6ms/langkah, atau sekitar 2,5x lebih cepat dari real-time
  • Decoder menjalankan seluruh operasi per token melalui satu pemanggilan Metal command buffer

Arsitektur model

  • Model speech-to-text streaming dengan total 4 miliar parameter (4B)
    • Audio encoder: 32-layer causal transformer, 1280 dimensi, 32 head, window 750
    • Adapter: Linear(5120→3072) → GELU → Linear(3072→3072)
    • LLM decoder: 26-layer transformer (berbasis Ministral-3), 3072 dimensi, GQA(32 head/8KV)
  • Tokenizer Tekken, ukuran kosakata 131,072
  • Bahasa yang didukung: Inggris, Spanyol, Prancis, Portugis, Hindi, Jerman, Belanda, Italia, Arab, Rusia, Tionghoa, Jepang, Korea

Kebutuhan memori

  • Bobot model: 8.9GB (mmap on-demand)
  • Cache GPU: sekitar 8.4GB (setelah konversi BF16→F16)
  • KV cache: maksimum 1.8GB (dibatasi sliding window)
  • Buffer kerja: sekitar 200MB

Build dan platform

  • macOS Apple Silicon: make mps (paling cepat)
  • macOS Intel / Linux(OpenBLAS) : make blas
  • Ubuntu/Debian: sudo apt install libopenblas-dev
  • Fedora: sudo dnf install openblas-devel

Lisensi

  • Kode: MIT
  • Model: Apache-2.0
  • Sebagai open source, siapa pun dapat memodifikasi dan mendistribusikannya kembali

1 komentar

 
GN⁺ 2026-02-12
Opini Hacker News
  • Saya menggunakan STT (pengenalan suara) dengan menggabungkan aplikasi open-source Handy dan Parakeet V3
    Sampai sekarang saya belum melihat kombinasi lain yang bisa mengungguli ini dalam hal kecepatan dan akurasi. Transkripsinya hampir seketika, dan sedikit penurunan akurasi tidak jadi masalah berkat kemampuan AI memahami konteks
    Saya sudah mencoba mengintegrasikan implementasi Voxtral C ke Handy, tetapi di M1 Max MacBook (64GB) transkripsinya terlalu lambat. Saya berencana mencoba implementasi lain juga

    • Handy bagus, tetapi sayangnya STT-nya bukan real-time, melainkan diproses secara batch
  • Saya penggemar proyek voxtral.c dan flux2.c milik Salvatore
    Saya harap keduanya terus dioptimalkan sebagai opsi ringan yang berjalan tanpa dependensi eksternal. Namun saat ini masih terlalu lambat untuk penggunaan nyata (berdasarkan lingkungan AMD 7800X3D/Blas)
    Saat menambahkan fitur Voice Input di llms-py, dukungan voxtype.io dari Omarchy memberikan UX terbaik, disusul Whisper.cpp
    OpenAI Whisper memang lambat, tetapi tetap merupakan opsi transkripsi lokal yang andal
    Selain itu, Voxtral Transcription API dari Mistral juga mengesankan dari sisi kecepatan dan harga — sangat cepat dan murah di $0.003 per menit. Saya rasa ini pilihan terbaik di lingkungan dengan keterbatasan CPU atau disk

    • Modelnya sendiri bagus, tetapi terlalu besar untuk inferensi lokal. Whisper medium kualitasnya lebih rendah, tetapi lebih baik dari sisi kecocokan terhadap lingkungan
      Sekarang saya ingin menguji model transkripsi Qwen 0.6 yang baru dirilis. Jika sesuai benchmark, ada potensi besar berkembang menjadi rantai ringan yang mempertimbangkan optimasi CPU-only dan bahkan kuantisasi 8bit
      Karena harus bisa dipasang juga di lingkungan sewa server seperti Hetzner, saya berencana mencoba optimasi terpisah untuk Intel, AMD, dan ARM
    • Saya butuh umpan balik visual saat bicara sambil transkripsi berjalan. Saya penasaran apakah voxtype mendukung itu
      Handy katanya punya fitur overlay, tetapi di sistem saya tidak berfungsi
    • Saya pilih kombinasi voxtype dan model Whisper-base. Cukup cepat dan akurat
  • Di Linux instalasinya mudah, tetapi transkripsi real-time seperti Whisper.cpp atau Moonshine masih belum bisa
    Opsi --from-mic hanya mendukung Mac, jadi saya mencoba menangkap audio dengan ffmpeg, tetapi gagal menghubungkan input mikrofon
    Sepertinya sistem saya tidak cukup kuat untuk menjalankan model default.
    Saya ingin mencoba model voxtral-q4.gguf

    • Setelah diuji di Linux, model ini terlalu lambat untuk transkripsi real-time. Memproses file input 12 menit memakan waktu setengah hari
    • Saya ingin menangkap bukan hanya mikrofon tetapi juga audio dari port monitor, lalu mem-pipeline audio web ke transkripsi real-time
      Karena Audacity atau OBS Studio bisa merekamnya, sepertinya real-time juga mungkin
    • Mungkin bisa jalan jika audio dari file dibaca dengan ffmpeg lalu diteruskan ke voxtral
      Secara pribadi saya mungkin akan mencoba berurutan: file→ffmpeg→voxtral, lalu mic→ffmpeg→file, dan terakhir mic→ffmpeg→voxtral
  • Judulnya menyebut CPU-only, tetapi sebenarnya akselerasi GPU juga didukung. Itu dijelaskan dengan jelas di deskripsi repositori

  • Proyek ini dan implementasi runtime Rust-nya sama-sama muncul di halaman utama HN. Dinamika persaingannya menarik

  • Ada juga implementasi versi MLX → voxmlx

  • Saya sangat tertarik pada bidang speech-to-text (STT)
    Saya ingin menangani data yang mencampurkan berbagai aksen dan istilah teknis, tetapi saya tidak tahu harus mulai dari mana jika ingin melatih model dengan data sampel suara skala besar yang saya miliki. Mohon sarannya

  • Saya mencobanya di MacBook Pro M3 16GB, dan memang bisa dimuat, tetapi macet atau terlalu lambat

  • Terasa aneh bahwa pekerjaan yang 20 tahun lalu bisa dilakukan dengan sekitar 200MB sekarang membutuhkan model 9GB