Skip to content

fix(transcription): clarify Parakeet v3 language selection - #70

Merged
kitlangton merged 1 commit into
mainfrom
fix/parakeet-v3-language-clarity
Sep 3, 2026
Merged

fix(transcription): clarify Parakeet v3 language selection#70
kitlangton merged 1 commit into
mainfrom
fix/parakeet-v3-language-clarity

Conversation

@kitlangton

Copy link
Copy Markdown
Collaborator

Why

Selecting Portuguese with Parakeet v3 looks like it should guide transcription, but the pinned model identifies language from audio instead. HEX currently marks it as accepting a language hint even though that hint does not condition decoding. Related to #68.

What Changes

  • Mark Parakeet v3 as not accepting a runtime language hint. Portuguese remains a valid, available selection; Whisper still receives pt.
  • Add a note to its shared macOS/Linux model card: “Detects language from audio, not the selected language. For language-guided transcription, try Whisper.”
  • Document the distinction between multilingual support and language conditioning, with a regression covering selection validity, availability, and the runtime hint.

Language Conditioning

In transcribe-cpp-sys 0.1.3, Parakeet reads params->language for decoding only when the encoder has a prompt input. That input requires positive stt.parakeet.prompt.num_prompts metadata. All 58 metadata entries in the pinned v3 GGUF header were inspected: Portuguese is supported and language detection is advertised, but the prompt key is absent. This agrees with NVIDIA's model description, which describes transcription without language prompting.

Demo

Before and after release previews built and launched with the deterministic
Portuguese/installed fixture. Screenshot capture failed with could not create image from window; CGPreflightScreenCaptureAccess() returned false. No
screenshots are attached, and visual layout remains unverified. No permissions
were changed.

Scope

This is a metadata and UI clarification, not a demonstrated transcription-quality repair. #68 remains open: the reported audio failure has not been reproduced. Saved selections and Auto picker eligibility are unchanged; trying Whisper is a suggestion, not an accuracy guarantee.

Verification

# Commands SDK prerequisite, from sdk/
bun install --frozen-lockfile
bun run --cwd commands build

# From the repository root
cargo fmt --check
CMAKE=/opt/homebrew/bin/cmake cargo test --locked --bin voice-control transcription_models::tests
CMAKE=/opt/homebrew/bin/cmake cargo test --locked --bin voice-control desktop_transcription_picker::tests
CMAKE=/opt/homebrew/bin/cmake cargo test --locked
CMAKE=/opt/homebrew/bin/cmake cargo clippy --locked --all-targets --all-features -- -D warnings
git diff --check

# Run on the base and changed source, with before/after output paths
CMAKE=/opt/homebrew/bin/cmake ./scripts/capture-preview.sh /private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode/hex-68-before.png transcription-picker --language pt --model-state installed
CMAKE=/opt/homebrew/bin/cmake ./scripts/capture-preview.sh /private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode/hex-68-after.png transcription-picker --language pt --model-state installed
  • Regression observed red with the old metadata (Some("pt") instead of None), then green.
  • Focused checks: 11 model-catalog tests and 1 existing picker test passed.
  • Full suite: 440 passed, 9 ignored; all 12 keyboard-layout child processes passed. The first run failed the commands-workspace test because the fresh worktree lacked generated SDK resources; building the prerequisite above resolved it without source changes.
  • Clippy, formatting, and diff whitespace checks passed.
  • Release builds succeeded with the existing unused call_developer warning. Both capture commands failed at screenshot creation, as described above.
  • No v3 inference, live microphone, paste, or Linux-native UI testing was performed.

@kitlangton
kitlangton merged commit 69fdc4b into main Sep 3, 2026
2 checks 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.

1 participant