13 điểm bởi GN⁺ 2026-02-12 | 1 bình luận | Chia sẻ qua WhatsApp
  • Mistral Voxtral Realtime 4Bpipeline suy luận được triển khai chỉ bằng ngôn ngữ C, với cấu trúc thực thi độc lập hoàn toàn không có phụ thuộc bên ngoài
  • Hỗ trợ backend Metal GPU acceleration (MPS)BLAS (OpenBLAS/Accelerate), đồng thời xử lý đầu vào giọng nói thời gian thực và xuất token thông qua streaming API
  • Trọng số BF16 được ánh xạ bộ nhớ, encoder dựa trên sliding windowrolling KV cache giúp giữ mức sử dụng bộ nhớ ổn định ngay cả với đầu vào âm thanh dài
  • Hỗ trợ nhiều phương thức đầu vào âm thanh qua micro, stdin pipechuyển đổi bằng ffmpeg, đồng thời cung cấp hiển thị token thay thếtùy chọn điều chỉnh độ trễ (-I)
  • Được phát hành theo giấy phép MIT, đạt tốc độ nhanh hơn thời gian thực khoảng 2,5 lần trên Apple M3 Max, cho phép triển khai nhận dạng giọng nói cục bộ gọn nhẹ

Tổng quan về Voxtral.c

  • Đây là engine suy luận thuần C dành cho mô hình Mistral AI Voxtral Realtime 4B, không có phụ thuộc nào ngoài thư viện chuẩn C
    • Backend MPS mang lại tốc độ suy luận nhanh, còn BLAS (OpenBLAS/Accelerate) hoạt động trong môi trường dùng CPU
    • Có thể suy luận hoàn toàn cục bộ mà không cần Python runtime, CUDA hay vLLM
  • Đồng thời cung cấp bản triển khai tham chiếu bằng Python đơn giản qua tệp python_simple_implementation.py
    • Chỉ cần PyTorch, safetensors, soundfile và soxr

Tính năng chính

  • Zero dependencies: có thể chạy chỉ với C mà không cần thư viện ngoài
  • Metal GPU acceleration: tự động kích hoạt trên Apple Silicon, hỗ trợ hợp nhất phép toán GPU và xử lý attention theo lô
  • Xuất streaming: token được sinh ra sẽ được in ra stdout ngay lập tức
  • Streaming C API: đưa âm thanh vào tuần tự và nhận chuỗi token theo thời gian thực
  • Trọng số ánh xạ bộ nhớ: nạp trực tiếp tệp safetensors bằng mmap để dùng ngay
  • Hỗ trợ đầu vào micro (macOS): bao gồm tính năng tự động phát hiện im lặng
  • Chunked Encoder: xử lý âm thanh theo các chunk chồng lấp để giữ mức dùng bộ nhớ ổn định
  • Rolling KV Cache: tự động nén cache bằng sliding window 8192 vị trí, cho phép xử lý âm thanh dài không giới hạn

Cách sử dụng

  • Lệnh cơ bản
    • ./voxtral -d voxtral-model -i audio.wav : nhận dạng giọng nói từ tệp
    • ./voxtral -d voxtral-model --from-mic : nhận dạng thời gian thực từ micro (macOS)
    • Có thể đưa vào nhiều định dạng âm thanh khác nhau qua pipe ffmpeg
  • Hiển thị token thay thế
    • Dùng tùy chọn --alt <cutoff> để hiển thị thêm các ứng viên phát âm gần giống
    • Giá trị cutoff càng cao thì càng hiển thị nhiều ứng viên
  • Điều chỉnh độ trễ (tùy chọn -I)
    • Thiết lập chu kỳ gọi encoder theo giây
    • Giá trị thấp (ví dụ: 0,5 giây) cho độ trễ thấp nhưng tải GPU cao / giá trị cao (ví dụ: 5 giây) cho xử lý hiệu quả hơn
    • Mặc định là 2,0 giây, khuyến nghị 1,0~2,0 giây cho streaming thời gian thực

Cấu trúc C API

  • Cung cấp streaming API dựa trên vox_stream_t
    • feed() : nhập âm thanh
    • get() : nhận token
    • finish() : xử lý phần âm thanh còn lại
    • flush() : buộc xử lý bộ đệm
  • Có thể thiết lập số lượng token thay thế bằng vox_stream_set_alt()
  • Có thể xử lý hàng loạt một tệp đơn bằng hàm vox_transcribe()

Tải mô hình và cấu hình

  • Tải trọng số mô hình khoảng 8,9GB từ HuggingFace
    • consolidated.safetensors (trọng số BF16)
    • tekken.json (từ vựng tokenizer)
    • params.json (cấu hình mô hình)
  • Mô hình theo giấy phép Apache-2.0, mã nguồn theo giấy phép MIT

Benchmark hiệu năng

  • Theo chuẩn Apple M3 Max (GPU 40 lõi, RAM 128GB)
    • Backend MPS: encoder 284ms, decoder 23,5ms/bước
    • Backend BLAS: encoder khoảng 8 giây, decoder 335ms/bước
  • Trung bình 31,6ms/bước với âm thanh 60 giây, đạt tốc độ nhanh hơn thời gian thực khoảng 2,5 lần
  • Decoder thực hiện toàn bộ phép toán cho mỗi token chỉ với một lệnh gọi Metal command buffer duy nhất

Kiến trúc mô hình

  • Mô hình speech-to-text streaming quy mô 4 tỷ tham số (4B)
    • Audio encoder: causal transformer 32 lớp, 1280 chiều, 32 head, window 750
    • Adapter: Linear(5120→3072) → GELU → Linear(3072→3072)
    • LLM decoder: transformer 26 lớp (dựa trên Ministral-3), 3072 chiều, GQA(32 head/8KV)
  • Tokenizer Tekken, kích thước từ vựng 131.072
  • Ngôn ngữ hỗ trợ: tiếng Anh, tiếng Tây Ban Nha, tiếng Pháp, tiếng Bồ Đào Nha, tiếng Hindi, tiếng Đức, tiếng Hà Lan, tiếng Ý, tiếng Ả Rập, tiếng Nga, tiếng Trung, tiếng Nhật, tiếng Hàn

Yêu cầu bộ nhớ

  • Trọng số mô hình: 8,9GB (mmap theo nhu cầu)
  • GPU cache: khoảng 8,4GB (sau khi chuyển BF16 → F16)
  • KV cache: tối đa 1,8GB (bị giới hạn bởi sliding window)
  • Work buffer: khoảng 200MB

Build và nền tảng

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

Giấy phép

  • Mã nguồn: MIT
  • Mô hình: Apache-2.0
  • Bất kỳ ai cũng có thể sửa đổi và phân phối lại dưới dạng mã nguồn mở

1 bình luận

 
GN⁺ 2026-02-12
Ý kiến trên Hacker News
  • Tôi đang dùng STT (nhận dạng giọng nói) bằng cách kết hợp ứng dụng mã nguồn mở Handy với Parakeet V3
    Về tốc độ và độ chính xác, tôi vẫn chưa thấy gì vượt qua được tổ hợp này. Gần như được chép lời ngay lập tức, và chút suy giảm độ chính xác cũng không thành vấn đề nhờ khả năng đọc ngữ cảnh của AI
    Tôi đã thử tích hợp bản triển khai Voxtral C vào Handy, nhưng trên MacBook M1 Max (64GB) thì chép lời quá chậm. Tôi dự định sẽ thử thêm các bản triển khai khác

    • Handy rất tuyệt, nhưng tiếc là STT không phải thời gian thực mà theo kiểu xử lý hàng loạt
  • Tôi là fan của các dự án voxtral.cflux2.c của Salvatore
    Tôi mong chúng tiếp tục được tối ưu như một lựa chọn nhẹ, chạy được mà không cần phụ thuộc bên ngoài. Nhưng hiện tại vẫn còn quá chậm để dùng thực tế (theo môi trường AMD 7800X3D/Blas)
    Khi thêm tính năng Voice Input của llms-py, hỗ trợ voxtype.io của Omarchy cho UX tốt nhất, sau đó là Whisper.cpp
    OpenAI Whisper chậm nhưng vẫn là một lựa chọn chép lời cục bộ ổn định
    Ngoài ra, Voxtral Transcription API của Mistral cũng rất ấn tượng về tốc độ và giá — $0.003 mỗi phút, rất nhanh và rẻ. Tôi nghĩ đây là lựa chọn tốt nhất trong các môi trường bị giới hạn CPU hoặc ổ đĩa

    • Bản thân mô hình rất tốt, nhưng quá lớn để suy luận cục bộ. Whisper medium chất lượng thấp hơn nhưng lại phù hợp môi trường triển khai hơn
      Giờ tôi định thử mẫu chép lời Qwen 0.6 mới ra. Nếu đúng như benchmark thì nó có tiềm năng phát triển thành một chuỗi gọn nhẹ có tối ưu chỉ dùng CPU và cả lượng tử hóa 8bit
      Vì cũng phải cài được trên các môi trường thuê máy chủ như Hetzner, tôi dự định thử tối ưu riêng cho từng nhóm Intel·AMD·ARM
    • Tôi cần phản hồi trực quan với phần chép lời xuất hiện đồng thời khi đang nói. Không rõ voxtype có hỗ trợ điều đó không
      Handy có vẻ có tính năng overlay, nhưng trên hệ thống của tôi thì không hoạt động
    • Tôi bỏ một phiếu cho tổ hợp voxtype và mô hình Whisper-base. Khá nhanh và chính xác
  • Trên Linux thì cài đặt khá dễ, nhưng vẫn chưa đạt được chép lời thời gian thực như Whisper.cpp hay Moonshine
    Tùy chọn --from-mic chỉ hỗ trợ Mac nên tôi đã thử capture âm thanh bằng ffmpeg, nhưng kết nối đầu vào mic thì thất bại
    Có vẻ hệ thống của tôi không đủ cấu hình để chạy mô hình mặc định.
    Tôi muốn thử mô hình voxtral-q4.gguf

    • Tôi đã thử trên Linux và mô hình này quá chậm để chép lời thời gian thực. Xử lý một file đầu vào dài 12 phút mất nửa ngày
    • Tôi muốn capture không chỉ mic mà cả âm thanh từ cổng monitor để đưa audio web vào pipeline chép lời thời gian thực
      Audacity hay OBS Studio đều ghi được, nên tôi nghĩ thời gian thực cũng có thể làm được
    • Có thể sẽ hoạt động nếu dùng ffmpeg để đọc audio từ file rồi chuyển sang voxtral
      Cá nhân tôi có lẽ sẽ thử theo thứ tự file→ffmpeg→voxtral, sau đó mic→ffmpeg→file, và cuối cùng là mic→ffmpeg→voxtral
  • Tiêu đề ghi là chỉ dành cho CPU, nhưng thực tế cũng hỗ trợ tăng tốc GPU. Điều đó được ghi rõ trong phần mô tả kho lưu trữ

  • Dự án này và bản triển khai runtime bằng Rust đang cùng lúc lên trang chính HN. Cục diện cạnh tranh khá thú vị

  • Cũng có một bản triển khai phiên bản MLX → voxmlx

  • Tôi rất quan tâm đến mảng speech-to-text (STT)
    Tôi muốn xử lý dữ liệu có nhiều giọng địa phương và thuật ngữ chuyên môn pha trộn, nhưng không biết nên bắt đầu từ đâu nếu muốn huấn luyện mô hình bằng tập mẫu giọng nói quy mô lớn mà mình có. Mong được cho lời khuyên

  • Tôi đã thử chạy trên MacBook Pro M3 16GB, có tải lên được nhưng bị treo hoặc quá chậm

  • Thật kỳ lạ khi việc mà 20 năm trước chỉ cần khoảng 200MB giờ lại cần tới mô hình 9GB