Repository navigation
feat(voice): add configurable local voice transcription - #14882
UtkarshUsername wants to merge 231 commits into
Conversation
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
- Show recording, transcription, and download status in the composer - Replace active send controls with voice confirmation and cancellation actions
- Move attachments alongside speech status - Place cancel control after the speech button
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
- Add model catalog, downloads, cancellation, selection, and removal - Expose model management in voice settings
- Mark Whisper-family and Breeze-ASR models as supporting recognition hints - Surface hint support in voice settings
|
LGTM. Please marge this one. I need it 😐 |
|
Note Written by Hi! We are cleaning up open PRs, and this one names a harness (Codex) but not which model version created it. If this change is really important, we recommend rebuilding the PR with a newer model and noting the model in the PR description. |
|
Note Written by Reopening, this was closed by mistake. Sorry for the noise! |
|
Note Written by Closing again after a second look, sorry for the back and forth. This PR has merge conflicts with main and does not say which model created it. If this change is still important, please rebuild it on current main with a newer model and note the model in the PR description. |
This replaces #8928 after the orchestrator V2 rewrite, as requested in #8928 (comment).
Problem
Users need local voice transcription for voice dictation.
Change
Scope and approval
Feature was discussed on discord with Julius.
This is the replacement implementation requested by the maintainer in the closure comment linked above. Original work and discussion: #8928.
Verification
Focused checks on Windows:
Server:
vp test run src/speech src/textGeneration/TranscriptionPostProcessing.test.ts src/textGeneration/TextGeneration.test.ts src/textGeneration/OpenCode2TextGeneration.test.ts src/provider/Drivers/OpenCodeDriver.test.ts src/serverSettings.test.ts: 173 passed, 2 skipped. Includes speech HTTP, lifecycle, streaming, cancellation, models, cleanup fallback, and OpenCode 2 routing/session cleanup.Contracts:
vp test run src/speech.test.ts src/settings.test.ts: 171 passed.Client runtime:
vp test run src/voice-input: 45 passed.Shared:
vp test run src/serverSettings.test.ts src/projectSettings.test.ts src/speech.test.ts: 61 passed. Includes ACP Registry fallback and scoped vocabulary.Web: focused speech hooks, recording/resampling, Voice settings/setup tests, microphone/model checks, settings search, scoped settings, composer controls, and keybindings: 271 passed across 15 files.
Desktop:
vp test run src/preview/Manager.test.ts: 94 passed.Packaging:
vp test run lib/cli-external-packages.test.ts build-desktop-artifact.test.ts: 93 passed, 2 failed. Both failures reproduce identically on untouched main cc1e634 on Windows: Linux helper executable mode (0666 versus 0755) and the cross-architecture Windows primary-native-probe assertion.Targeted formatting and lint completed with no errors. Lint reports warnings in affected files.
Typechecks passed for server, web, contracts, client-runtime, shared, and desktop (
vp exec tsc --noEmit --pretty falsewith each workspace tsconfig).Model: GPT 5.6 Sol + GPT 6 Astra + GPT 6 Sol + GPT 6.1 Sol
Harness: T3 Code Codex