CoolFace
Apppublic

andito/parakeet-v3-streaming

sourceHugging Faceupdated 7mo agoView on Hugging Face
94likes
App README

Parakeet STT Progressive Transcription Demo

Real-time speech recognition with smart progressive streaming, powered by Parakeet TDT 0.6B v3 (ONNX) via parakeet.js and WebGPU acceleration.

Features

  • โ€”๐ŸŽค Parakeet TDT 0.6B v3: NVIDIA's multilingual speech recognition model
  • โ€”25 European languages supported
  • โ€”Word-level timestamps and confidence scores
  • โ€”WebGPU accelerated inference
  • โ€”โšก Smart Progressive Streaming: Intelligent window management with sentence-aware boundaries
  • โ€”Growing window (0-15s) for accuracy
  • โ€”Sentence-aware sliding window (>15s) to maintain context
  • โ€”Real-time updates every 500ms
  • โ€”๐Ÿ”’ Privacy-First: All processing happens locally in your browser - no data sent to servers
  • โ€”๐ŸŽจ Visual Feedback:
  • โ€”Yellow text: Fixed sentences (completed, won't change)
  • โ€”Cyan text: Active transcription (in-progress)
  • โ€”๐Ÿ“Š Developer Metrics: Real-time performance monitoring
  • โ€”Latency and Real-time Factor (RTF)
  • โ€”Window state visualization
  • โ€”Memory usage tracking
  • โ€”Confidence scores

Tech Stack

Usage

  1. 1.Load Model: Click "Load Model" to download Parakeet (~2.5GB, one-time download)
  2. 2.Start Recording: Click "Start Recording" and grant microphone permissions
  3. 3.Speak: Watch real-time progressive transcriptions appear
  4. 4.Stop Recording: Click "Stop Recording" to finalize the transcription

How It Works

Progressive Streaming Algorithm

This demo implements the smart progressive streaming algorithm from the speech-to-speech repository:

  1. 1.Growing Window (0-15s):
  2. 2.Accumulates audio for better accuracy
  3. 3.Re-transcribes entire buffer every 500ms
  1. 1.Sliding Window (>15s):
  2. 2.Locks completed sentences as "fixed"
  3. 3.Only re-transcribes active portion (last 2s)
  4. 4.Prevents memory growth and maintains accuracy

Architecture

User Microphone
     โ†“
Web Audio API (16kHz)
     โ†“
Audio Processor (accumulate chunks)
     โ†“
Progressive Streaming Handler (500ms updates)
     โ†“
Web Worker โ†’ Parakeet ONNX Model (via parakeet.js + WebGPU)
     โ†“
Transcription Display (yellow fixed + cyan active)

Model Information

  • โ€”Model: Parakeet TDT 0.6B v3
  • โ€”Format: ONNX (optimized for web via parakeet.js)
  • โ€”Size: ~2.5GB
  • โ€”Languages: 25 European languages (EN, DE, FR, ES, IT, PT, NL, PL, RU, UK, CS, SK, HU, RO, BG, HR, SL, SR, DA, NO, SV, FI, ET, LV, LT)
  • โ€”Sample Rate: 16kHz
  • โ€”Architecture: Conformer encoder + RNN-Transducer decoder

Browser Compatibility

BrowserWebGPU SupportStatus
Chrome 113+โœ… YesFull support
Edge 113+โœ… YesFull support
Firefoxโš ๏ธ LimitedWASM fallback
Safariโš ๏ธ LimitedWASM fallback

Performance

  • โ€”First result: <500ms latency
  • โ€”Progressive updates: 500ms cadence
  • โ€”RTF (Real-time Factor): ~0.3-0.5x with WebGPU
  • โ€”Model loading: 1-2 minutes (one-time, cached locally)

Note: Browser-based inference is inherently slower than native implementations. For comparison, the Python MLX implementation achieves ~60x faster performance on Apple Silicon. This is a fundamental limitation of running large models in browsers.

Credits

License

MIT

References