Skip to content

Add Parakeet TDT v3 as an optional transcription backend - #53

Merged
wassgha merged 6 commits into
mainfrom
cursor/parakeet-tdt-v3-e1fe
Aug 2, 2026
Merged

Add Parakeet TDT v3 as an optional transcription backend#53
wassgha merged 6 commits into
mainfrom
cursor/parakeet-tdt-v3-e1fe

Conversation

@wassgha

@wassgha wassgha commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

Adds NVIDIA Parakeet TDT 0.6B v3 as a selectable transcript source alongside Whisper Base / Small and Import.

  • New model choice parakeet in the source menu (persisted like Whisper)
  • Worker path via parakeet.js + ONNX: WebGPU fp16 encoder when available, WASM int8 fallback (~700 MB–1.2 GB)
  • Same pipeline otherwise: Silero VAD → ASR word timestamps → pyannote diarization
  • Parakeet auto-detects language (Whisper language menu still applies only to Whisper runs)
  • Same-origin ORT WASM for Parakeet at /vendor/ort-parakeet/ (postinstall copies nested onnxruntime-web@1.24.1 and patches parakeet.js so wasmPaths is honored)
  • Loads through the shared weightlift ModelManager (same progress / cache labeling / WebGPU→WASM fallback path as Whisper)
  • Single MODELS registry (ModelId) with a backend discriminant; UI menus render from MODEL_ORDER
  • TranscriptSource (ModelId | "import") is separate from models — store field is source, not model

Test plan

  • Source menu shows Parakeet TDT v3 with size hint
  • Selecting Parakeet and dropping media downloads the model (progress) and produces timed words
  • Speakers still label after diarization
  • Whisper Base / Small and Import still work
  • Second run with Parakeet uses IndexedDB cache (no full re-download); UI shows “from cache”
  • WebGPU unavailable / fp16 failure falls back to WASM int8 without crashing
  • WebGPU device loss mid-run reloads Parakeet on WASM via weightlift
  • Older saved projects (with model field) still open after the source rename
Open in Web Open in Cursor 

cursoragent and others added 6 commits July 31, 2026 02:42
Offer NVIDIA Parakeet alongside Whisper Base/Small via parakeet.js,
keeping VAD + pyannote diarization. WebGPU uses fp16 with WASM int8
fallback; same-origin ORT WASM is served from /vendor/ort-parakeet.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
…3-e1fe-1123

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Register Parakeet alongside Whisper in the shared ASR registry so download
progress, IndexedDB cache labeling, and WebGPU→WASM fallback use the same
weightlift path after merging main.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Fold PARAKEET_INFO into MODELS with a backend discriminant so UI and the
worker share one source for labels, sizes, and loader ids. Menus now render
from ASR_ORDER.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Keep MODELS as real speech backends only. Move "import" onto TranscriptSource
(store.source) so model helpers no longer have to special-case caption import.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
@wassgha
wassgha marked this pull request as ready for review August 2, 2026 11:22
@wassgha
wassgha merged commit 768816b into main Aug 2, 2026
1 check passed
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