antirez/qwen-asr

C inference for Qwen3-ASR 0.6b and 1.7b transcriptions models

解决的问题

此项目提供了一个高性能、纯 C 语言实现的 Qwen3-ASR 语音转文字模型推理管线。它允许用户以极少的依赖项运行强大的 ASR 模型(0.6B 和 1.7B 参数),从而在 CPU、NVIDIA GPU(通过 CUDA)和 AMD GPU(通过 ROCm)上实现高效的转录。

运作原理

该实现使用基于 C 的管线来处理音频预处理、标记化(tokenization)和模型推理。它支持三种主要的运作模式:

  • 一般模式 (Normal Mode):一次性(离线)处理音频,或分段处理以应对较大的文件。
  • 流式模式 (Streaming Mode):以 2 秒为单位处理音频,并结合滑动窗口与前缀回滚(prefix rollback),以维持实时音频的上下文与稳定性。
  • 分段模式 (Segmented Mode):根据静音边界将长音频分割为多个片段,以管理内存与运算成本。

为了优化性能,它使用 BLAS 进行 CPU 加速,并针对 GPU 后端使用原生核心(native kernels)。它还采用内存映射权重(memory-mapped weights)来进行 CPU 推理,以减少内存开销。

适用对象

  • 开发者:寻求轻量级、无依赖的 C 函数库,以便将语音转文字功能整合至应用程序中。
  • 系统管理员:需要在没有庞大 Python 执行环境的远程 Linux 服务器上运行 ASR。
  • 用户:希望在性能一般的硬件上运行 Qwen3-ASR 模型,包括低端 Intel/AMD 处理器或特定的 AMD/NVIDIA GPU。

特色亮点

  • 极简依赖:CPU 构建仅需 C 标准函数库与 BLAS 实现。
  • GPU 加速:原生支持 NVIDIA CUDA 与 AMD ROCm 后端。
  • 灵活输入:支持 WAV 文件以及通过 stdin 传入的音频(例如来自 ffmpeg)。
  • 实时诊断:提供“监控模式”,使用 Unicode 符号在 stderr 上可视化管线的进度。
  • 语言与提示词控制:能够强制指定目标语言,或提供系统提示词以影响拼写与技术术语。
  • 流式能力:支持无限流式传输,并透过滑动窗口来限制内存与运算需求。

相关

  • 项目
  • 项目
  • 项目
  • 项目