Skip to content

Nvidia parakeet cross platform#155

Merged
gabrielste1n merged 14 commits intomainfrom
nvidia-parakeet-cross-platform
Jan 27, 2026
Merged

Nvidia parakeet cross platform#155
gabrielste1n merged 14 commits intomainfrom
nvidia-parakeet-cross-platform

Conversation

@gabrielste1n
Copy link
Copy Markdown
Collaborator

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 14 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 merged commit bed49fe into main Jan 27, 2026
2 of 4 checks passed
@gabrielste1n gabrielste1n deleted the nvidia-parakeet-cross-platform branch January 27, 2026 05:56
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