Skip to content

feat: add NVIDIA Parakeet model support via sherpa-onnx#146

Closed
gabrielste1n wants to merge 13 commits intomainfrom
claude/nvidia-parakeet-cross-platform-l5JKr
Closed

feat: add NVIDIA Parakeet model support via sherpa-onnx#146
gabrielste1n wants to merge 13 commits intomainfrom
claude/nvidia-parakeet-cross-platform-l5JKr

Conversation

@gabrielste1n
Copy link
Copy Markdown
Collaborator

@gabrielste1n gabrielste1n commented Jan 24, 2026

Summary

Add NVIDIA Parakeet speech-to-text support via sherpa-onnx as an alternative to whisper.cpp, along with several bug fixes for hotkey initialization and model management.

Changes

NVIDIA Parakeet Integration

  • Introduced NVIDIA Parakeet ASR model support using the sherpa-onnx runtime for cross-platform ONNX inference
  • Added parakeet.js for model management — downloading, verifying, and resolving bundled sherpa-onnx binaries per platform/arch
  • Added parakeetServer.js as a sherpa-onnx CLI wrapper that spawns the transcription process
  • Added parakeetWsServer.js implementing the sherpa-onnx WebSocket protocol for streaming audio to the server
  • Added ffmpegUtils.js for audio format conversion (WebM/Opus → 16kHz mono PCM WAV) required by sherpa-onnx
  • Added serverUtils.js with port-finding and server lifecycle utilities
  • Added scripts/download-sherpa-onnx.js build script to fetch platform-specific sherpa-onnx binaries
  • Added modelDirUtils.js for shared model directory path resolution
  • Registered Parakeet model (parakeet-tdt-0.6b-v3, multilingual, ~680MB) in the centralized model registry

UI & Settings

  • Updated TranscriptionModelPicker.tsx to support selecting between Whisper and Parakeet models with separate download/status tracking
  • Separated Parakeet and Whisper model settings (parakeetModel vs whisperModel) so each engine retains its own selection
  • Added new IPC channels for Parakeet operations: model listing, downloading, deletion, status checks, and server management
  • Extended useSettings.ts and useModelDownload.ts hooks for Parakeet model state
  • Added comprehensive TypeScript types in electron.ts for all new IPC APIs

Hotkey Fixes

  • Fixed hotkey initialization race condition where the saved hotkey was never restored on startup because a did-finish-load listener was registered after loadMainWindow() already resolved
  • Fixed async persistence and JS injection escaping issues in hotkey manager

Model Management Fixes

  • Fixed whisper.cpp large/turbo model lookup failures by using the registry fileName field for model paths instead of deriving filenames from model names
  • Centralized model definitions in modelRegistryData.json as single source of truth, removing hardcoded model lists from multiple files

Audio Pipeline

  • Updated audioManager.js to route transcription to either Whisper or Parakeet based on the selected engine
  • Added FFmpeg-based audio conversion pipeline ensuring correct sample rate and format for sherpa-onnx input

claude and others added 13 commits January 24, 2026 00:07
Implement cross-platform support for NVIDIA's Parakeet TDT ASR models using
sherpa-onnx runtime. Parakeet provides 50x faster transcription than Whisper
with comparable accuracy.

New features:
- Add parakeet-tdt-0.6b-v2 (English) and v3 (25 languages) models
- Create ParakeetServerManager for CLI-based transcription
- Add sherpa-onnx binary download script for all platforms
- Enable NVIDIA Parakeet tab in TranscriptionModelPicker UI
- Support model download, delete, and selection

Architecture follows existing patterns:
- parakeet.js mirrors whisper.js for model management
- parakeetServer.js uses sherpa-onnx-offline CLI
- IPC handlers follow whisper handler patterns
- useModelDownload hook extended for 'parakeet' type
…d listener that never fired after awaited loadMainWindow()
Resolve conflicts in CHANGELOG.md, CLAUDE.md, electron-builder.json,
and package.json by combining Parakeet/sherpa-onnx additions with
Windows push-to-talk, custom dictionary, and shared download utilities
from main.
@gabrielste1n gabrielste1n deleted the claude/nvidia-parakeet-cross-platform-l5JKr branch January 27, 2026 05:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants