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 特性(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;未推測任何額外功能。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案