altunenes/parakeet-rs

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

What it solves

parakeet-rs is a Rust library that provides fast, high-performance speech recognition (ASR) and speaker diarization using NVIDIA's Parakeet models and Cohere Transcribe via the ONNX Runtime. It allows developers to integrate advanced speech-to-text capabilities—including streaming, multilingual support, and multi-speaker identification—directly into Rust applications without needing to manage complex AI model deployments.

How it works

The library acts as a wrapper around ONNX Runtime, enabling the execution of various pre-trained models. It supports multiple model architectures:

  • CTC/TDT: For offline transcription with token-level timestamps.
  • EOU (End-of-Utterance): For real-time streaming ASR with detection of when a person stops speaking.
  • Nemotron: Cache-aware streaming ASR with punctuation and casing, available in English-only and multilingual variants.
  • Multitalker: For streaming multi-speaker ASR where transcription is attributed to specific speakers.
  • Sortformer: For streaming speaker diarization (identifying who spoke when for up to 4 speakers).
  • Cohere Transcribe: For offline multilingual transcription of long-form audio.

Who it’s for

Rust developers who need to implement speech recognition or speaker diarization in their software, particularly those seeking low-latency streaming ASR or high-performance local execution on CPU, CUDA, TensorRT, or WebGPU.

Highlights

  • Diverse Model Support: Integrates NVIDIA Parakeet and Cohere models for various use cases (streaming vs. offline).
  • Hardware Acceleration: Supports multiple execution providers including CUDA, TensorRT, WebGPU, DirectML, and CPU.
  • Casing and Punctuation: Nemotron models provide polished output with proper casing and punctuation.
  • Speaker Attribution: Combines ASR with Sortformer for speaker diarization and multi-speaker transcription.
  • Token-level Timestamps: Provides precise timing for each word/token in CTC and TDT models.