feat(transcription): ASR model picker + explicit engine selection (Track-B step 5)#13
Open
farce1 wants to merge 4 commits into
Open
feat(transcription): ASR model picker + explicit engine selection (Track-B step 5)#13farce1 wants to merge 4 commits into
farce1 wants to merge 4 commits into
Conversation
Mirror check_model_ready for the Parakeet engine (parakeet assets + VAD) so the settings UI can show per-engine model readiness. Expose as a Tauri command and register it.
Introduce the AsrEngine type ('whisper' | 'parakeet'), persist the choice
via the asrEngine setting (default whisper), and add asrEngineInfo() mapping
each engine to its readiness/download Tauri commands and model directory.
Add an engine dropdown (Whisper/Parakeet) that persists the asrEngine setting and drives readiness checks, downloads (download_parakeet_model with the existing progress UI), and per-engine model deletion via asrEngineInfo(). Covered by an RTL test.
resolve_asr_engine now takes an optional preference: an explicit Whisper choice always wins, an explicit Parakeet choice is used when its model is present (else falls back to availability), and no preference keeps the availability-based behavior. The persisted asrEngine setting is threaded from start_session through SessionStartArgs and StartWorkerArgs to the worker.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Track-B step 5 — ASR model picker + explicit engine selection
Lets the user choose the speech-to-text engine (Whisper / Parakeet-TDT-v3) from
Settings, download Parakeet on demand, and have that choice actually drive
transcription — completing the Parakeet integration UX on top of the
availability-based selection from #12.
Stacked on
feat/engine-selection(#12):#9 ← #10 ← #11 ← #12 ← this.What's included
check_parakeet_model_readycommand (parakeet assets + VAD), mirroringcheck_model_ready, so the UI can show per-engine readiness.asrEnginesetting ('whisper' | 'parakeet', default whisper) +asrEngineInfo()helper mapping each engine to its readiness/download commands and model directory.TranscriptionSectionthat persists the choice and drives readiness, download (download_parakeet_modelwith the existingDownloadEventprogress UI), and per-engine model deletion (which now correctly preserves the shared VAD model).resolve_asr_enginehonors an optional preference — explicit Whisper always wins; explicit Parakeet is used when its model is present, else falls back to availability; no preference keeps the existing availability behavior. Threaded fromstart_session→SessionStartArgs→StartWorkerArgs.Tests (TDD, RED→GREEN)
resolve_honors_explicit_preference_then_availability,parakeet_model_ready_requires_assets_and_vad.asrEngineInfounit tests;TranscriptionSectionRTL tests (readiness wiring, persistence, parakeet download, per-engine delete).Gate
FE:
tscclean,vite build✓, vitest 44 passed. BE: clippy clean,cargo build✓.Known red CI (inherited, maintainer-owned — same as the rest of the chain)
cargo checkfails in CI on missingvendor/vc_redist.x64.exe(vendor blocker).*_archive_sha256_is_filled_infail onREPLACE_WITH_SHA256 placeholders (release prep — whisper/diarization predate this chain; parakeet added in feat(transcription): Parakeet-v3 model download (Track-B step 3) #11 per the same convention).release-bump.test.mjs"No test suite found" is fixed by fix(test): run release-bump smoke tests under vitest, not node:test #7.This PR introduces no new failures; it merges once
main's blockers are cleared and the chain rebases.