Hacker News 中文摘要

RSS订阅

纯C语言实现,仅用CPU的Mistral Voxtral实时4B语音转文本模型推理 -- Pure C, CPU-only inference with Mistral Voxtral Realtime 4B speech to text model

文章摘要

这是一个用纯C语言实现的Mistral Voxtral实时4B语音转文本模型推理库,无需外部依赖。支持音频分块处理、麦克风实时输入和流式API,内存占用可控。虽然BLAS加速较慢且需要更多测试,但已实现核心推理流程。适合通过ffmpeg转码转录各种音频格式。

文章总结

Voxtral Realtime 4B纯C语言实现

该项目是Mistral AI的Voxtral Realtime 4B模型的C语言推理管道实现,仅依赖C标准库。MPS推理速度良好,BLAS加速可用但较慢(需持续将bf16权重转换为fp32)。

音频处理采用分块编码器与重叠窗口技术,无论输入长度如何都能限制内存使用。支持从stdin管道输入(--stdin)或麦克风实时采集(macOS的--from-mic),便于通过ffmpeg转码转录。流式C API(vox_stream_t)支持增量输入音频并实时获取文本标记。

测试需求:项目目前仅通过少量样本测试,需更多工作以达到生产级质量,但核心的模型推理与管道复现已完成。

核心功能

  • 零依赖:纯C实现,MPS模式可独立运行
  • Metal GPU加速:Apple Silicon自动启用
  • 流式输出:文本标记实时逐词输出
  • 内存映射权重:直接从safetensors加载BF16权重
  • 实时麦克风输入:支持macOS自动静音检测
  • 滚动KV缓存:解码器KV缓存自动压缩,支持无限长度音频

快速开始

```bash

构建(选择后端)

make mps # Apple Silicon(最快)

或:make blas # Intel Mac/Linux(需OpenBLAS)

下载模型(约8.9GB)

./download_model.sh

转录音频

./voxtral -d voxtral-model -i audio.wav

实时麦克风转录(macOS)

./voxtral -d voxtral-model --from-mic

通过ffmpeg管道输入

ffmpeg -i audio.mp3 -f s16le -ar 16000 -ac 1 - 2>/dev/null | ./voxtral -d voxtral-model --stdin ```

Python参考实现

提供自包含的Python实现便于理解模型: bash pip install torch safetensors soundfile soxr python python_simple_implementation.py voxtral-model audio.wav

性能数据(Apple M3 Max)

| 后端 | 编码器(3.6秒音频) | 预填充 | 解码器 | |------|---------------------|--------|--------| | MPS | 284 ms | 252 ms | 23.5 ms/步 | | BLAS | ~8秒 | ~1.2秒 | 335 ms/步 |

模型架构

Voxtral Realtime 4B是约40亿参数的流式语音转文本模型: - 音频编码器:32层因果Transformer - 适配器:线性层+GELU激活 - LLM解码器:26层Transformer(基于Ministral-3)

许可协议

MIT

评论总结

以下是评论内容的总结:

  1. 关于安装与使用体验:
  • 用户Curiositry表示在Linux上安装容易,但实时转录功能尚未实现,指出麦克风输入仅支持Mac系统 关键引用: "This was a breeze to install on Linux. However, I haven't managed to get realtime transcription working yet" "from-mic only supports Mac"
  1. 关于模型训练需求:
  • 用户sgt表达对语音转文字技术的兴趣,特别关注方言和术语处理,寻求如何利用自有语音数据库训练模型的建议 关键引用: "I'm very interested in speech to text - but like tricky dialects and use of various terminologies" "where to start...to train the models with a huge database of voice samples I own"
  1. 关于项目热度观察:
  • 用户written-beyond注意到该项目与Rust运行时实现同时在首页出现,表示赞赏 关键引用: "this and the Rust runtime implementation are neck and neck on the frontpage right now" "Cool project!"