altunenes/parakeet-rs

very fast speech-to-text, diarization, streaming (even in CPU) with NVIDIA Parakeet in Rust

parakeet‑rs – 使用 Rust 实现快速语音转文字

是什么parakeet‑rs 是一个 Rust crate,可通过 ONNX Runtime 运行 NVIDIA 的 Parakeet 语音识别模型(CTC、TDT、流式、多语言、说话人分离等)。它提供了一个简洁、易用的 API,用于加载 ONNX 文件,输入 16 kHz 单声道音频,并返回转录文本,以及可选的时间戳和说话人标签。

为何重要 – 原始 Parakeet 模型是大型、高质量的 ASR 模型,运行在 GPU 上。parakeet‑rs 使这些模型无需引入 Python 或重型深度学习框架,即可在原生 Rust 程序中使用,并支持多种执行提供者(CUDA、TensorRT、WebGPU、DirectML、MIGraphX、CPU)。这使得桌面、服务器或嵌入式 Rust 应用程序能够实现低延迟、本地化的语音转文字。

核心功能

  • CTC(仅限英语) – 支持词级时间戳的快速离线转录。
  • TDT(多语言) – 支持 25 种语言自动检测的模型,提供句级时间戳。
  • EOU(语音结束检测) – 实时流式 ASR,语音结束后自动停止。
  • Nemotron 流式 – 支持缓存的流式转录,包含标点符号;仅限英语(0.6 B)和多语言(3.5 B)版本。
  • Cohere Transcribe – 可选的离线多语言模型(14 种语言),支持可选标点和逆文本规范化。
  • 多说话人 – 实时多说话人转录;每个块返回 (speaker_id, text) 对列表。
  • Sortformer 说话人分离 – 支持最多 4 个说话人的离线或分块实时使用说话人分离模型。
  • 词元级时间戳 – 对于 CTC/TDT 模型,可获取每个词元的起止时间。
  • GPU/CPU 灵活性 – 通过 Cargo 特性(cudatensorrtwebgpudirectmlmigraphx 等)选择 ONNX Runtime 执行提供者,或自动回退到 CPU。

典型用法(简化版)

use parakeet_rs::{Parakeet, Transcriber, TimestampMode};

// 从本地目录加载预训练的 CTC 模型
let mut model = Parakeet::from_pretrained("./ctc", None)?;

// `audio` = 16 kHz 单声道样本的 Vec<f32>
let result = model.transcribe_samples(audio, 16000, 1, Some(TimestampMode::Words))?;
println!("Transcribed: {}", result.text);

// 可选的词元级时间戳
for token in result.tokens {
    println!(["{:.3}s – {:.3}s] {}", token.start, token.end, token.text);
}

该 crate 随附一组示例程序(examples/*.rs),演示了每种模型类型、流式循环和说话人分离流水线。

获取模型 该库不包含 ONNX 权重;您必须从链接的 Hugging Face 仓库下载(例如 parakeet-ctc-0.6b-ONNXparakeet-tdt-0.6b-v3-onnxnemotron‑3.5‑asr‑streaming‑0.6b)。README 提供了直接 URL 和一个小型 Python 工具(scripts/download_orukeet.py),用于验证哈希并本地缓存文件。

安装

# Cargo.toml
parakeet-rs = { version = "0.3", features = ["cuda"] }   # 或 "webgpu", "tensorrt" 等。

如果需要使用默认 CPU 以外的执行提供者,请进行如下配置:

use parakeet_rs::{Parakeet, ExecutionConfig, ExecutionProvider};
let cfg = ExecutionConfig::new().with_execution_provider(ExecutionProvider::Cuda);
let mut model = Parakeet::from_pretrained("./model", Some(cfg))?;

高级用户可通过 ExecutionConfig::with_custom_configure 自定义底层 ONNX Runtime SessionBuilder

许可证 – 代码采用 MIT 或 Apache‑2.0 双重许可。ONNX 模型文件不包含在内;它们仍受 NVIDIA 或相应模型所有者的许可(例如 Orukeet 微调模型为 CC BY‑SA 4.0)。


以上所有信息均直接取自仓库的 README;未推断任何额外功能。

相关

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