Skip to content

feat(dictation): transcribe on the GPU, in pieces, with the best installed model - #13

Merged
collissimo merged 2 commits into
collin/mainfrom
t3/gpu-voice-dictation
Oct 29, 2026
Merged

collissimo merged 2 commits into
collin/mainfrom
t3/gpu-voice-dictation

Conversation

@collissimo

Copy link
Copy Markdown
Owner

Dictation ran Parakeet on the CPU because Vulkan returned empty text. On an RX 9070 XT (RDNA4) the cause is ggml-vulkan's cooperative-matrix path; with GGML_VK_DISABLE_COOPMAT=1 the GPU transcribes correctly and about five times faster than the CPU. Long recordings were also one model run, which drifts (Parakeet) or truncates (encoder-decoder models) after a minute or two.

  • Backend auto (Vulkan when there is a GPU). The coopmat switch is set through the C runtime (_putenv_s via koffi) because process.env does not reach ggml's getenv on Windows. T3CODE_DICTATION_BACKEND=cpu opts out.
  • The final transcript runs in pieces of at most 25 s, cut at the quietest 100 ms between 15 and 25 s.
  • Ranking knows Cohere Transcribe 03-2026 and Canary 1B v2 (best first) and also looks in <T3 home>/dictation/models.

Measured on 60 German Multilingual LibriSpeech clips (15 min), RX 9070 XT:

Model WER ms per ~15 s clip 3 min dictation, end to end
Parakeet v3, CPU 14.0% 770 –
Parakeet v3, Vulkan 14.0% 136 2.7 s
Canary 1B v2, Vulkan 7.1% 299 –
Cohere Transcribe, Vulkan 4.2% 351 5.8 s, 5.8% WER

Before chunking, one run over 2 min gave 40–70% WER for every model.

Tests: vp test run src/dictation/ (48 passed), server typecheck, lint and fmt on the touched files.

Claude Opus 5.5 in T3 Code (Claude Code harness).

🤖 Generated with Claude Code

…alled model

- Backend "auto" instead of "cpu": the model runs on Vulkan when there is a GPU.
  ggml-vulkan's coopmat path returns empty text on RDNA4 (RX 9070 XT), so
  GGML_VK_DISABLE_COOPMAT is set through the C runtime (koffi, _putenv_s)
  before the backend starts. T3CODE_DICTATION_BACKEND=cpu opts out.
- The final transcript runs in pieces of at most 25 s, cut at the quietest
  moment: one run over minutes of audio drifts (Parakeet) or stops at the
  token limit (Cohere, Canary).
- Model ranking knows Cohere Transcribe 03-2026 and Canary 1B v2 and looks in
  <T3 home>/dictation/models too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Oct 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@collissimo
collissimo merged commit 6b08ed9 into collin/main Oct 29, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant