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 特性(
cuda、tensorrt、webgpu、directml、migraphx等)选择 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-ONNX、parakeet-tdt-0.6b-v3-onnx、nemotron‑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;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目