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 讓這些模型可在原生 Rust 程式中使用,無需引入 Python 或重型深度學習框架,並支援多種執行提供者(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;未推測任何額外功能。
相關
- 專案
- 專案
- 專案
- 專案
- 專案