Skip to content

Test: dictation onboarding and customization #328440

Description

@meganrogge

Refs #327334, #327853, #328058, #328094, #328420

  • Windows
  • macOS
  • Linux

Complexity: 4


Setup

  1. Use the latest VS Code Insiders.
  2. Enable chat.enableNewVoiceFeatures.
  3. Ensure dictation.enabled is enabled with accessibility.voice.speechTimeout set to a non-zero value.
  4. Test in an empty trusted workspace unless a section says otherwise.
  5. For microphone-picker coverage, test once with one physical microphone and once with at least two.

Onboarding and microphone preview

  1. Run Developer: Reset Dictation Onboarding.
  2. Start Dictation in a chat input with Voice: Start Dictation in Chat or Ctrl/Cmd+Shift+V.
  3. Confirm Dictation starts immediately and a Dictation introduction card appears above the chat input.
  4. Confirm the card always shows a live microphone waveform, including when only one microphone is available.
  5. Speak at different volumes and confirm both the waveform and live transcript respond to the selected microphone.
  6. With one normalized physical microphone, confirm its name is shown as a label and no dropdown picker appears.
  7. With multiple normalized physical microphones, confirm a picker appears beside the waveform.
  8. Open the picker and confirm each physical device appears once. Virtual default and communications duplicates should not appear, and the physical system-default device should appear once as <device name> (System default).
  9. Select another microphone and confirm the preview switches to it and the waveform responds to that device. Confirm the selection is shared with Dictation, Voice Mode, and Voice: Select Microphone.
  10. Deny microphone permission, or test with no available device, and confirm the card keeps a dim waveform visible and shows an explanatory message.
  11. Confirm the card explains Dictation and contains working links for settings and how it's written.
  12. Verify keyboard behavior: Tab reaches links, the picker when present, and close; Enter/Space activate controls; Escape dismisses.
  13. Confirm normal chat tips are hidden while the card is open and return after it closes.
  14. Dismiss the card with its close button and confirm Dictation continues.
  15. Stop and restart Dictation and confirm the card does not reappear. Reset onboarding again and confirm it returns on the next Dictation.

Manual introduction

  1. Stop Dictation, then run Voice: Show Dictation Introduction from the Command Palette or the microphone context menu.
  2. Confirm the same card, waveform, and conditional microphone picker appear without starting Dictation.
  3. Confirm no separate chat notification appears.
  4. Close the card and confirm its microphone preview is released.
  5. Reopen it and confirm the previously selected microphone is retained.

General functionality

  1. Open the microphone button's context menu in a chat input and confirm it includes controls for Mode (Voice Mode/Dictation), language, microphone, and Configure Instructions.
  2. In a chat input, start Dictation by clicking the microphone button or running Voice: Start Dictation in Chat. Speak a multi-sentence prompt, wait for the configured timeout, and confirm:
    • text appears incrementally while speaking;
    • Dictation stops after silence;
    • the final transcript is post-processed without changing the intended meaning.
  3. Start Dictation and press the microphone button again. Confirm recording stops immediately.
  4. Start Dictation in a text editor with Voice: Start Dictation in Editor. Confirm the transcript is inserted at the cursor and starting the command again stops recording.
  5. Start Dictation in a terminal with Voice: Start Dictation in Terminal. Confirm shell-aware cleanup preserves command syntax and starting the command again stops recording.
  6. Confirm only one Dictation session can be active at a time and switching targets ends the previous session cleanly.

Accessibility

  1. Enable screen-reader optimized mode and open each Dictation onboarding variant.
  2. Confirm the card is announced as Dictation introduction with a useful description.
  3. Confirm status announcements occur after microphone selection and error text is announced when microphone preview is unavailable.
  4. Enable reduced motion and confirm the microphone waveform still provides readable level feedback at a reduced update rate.

Settings

  1. Toggle dictation.enabled and confirm Dictation entry points appear or disappear accordingly.
  2. Change accessibility.voice.speechTimeout and confirm silence detection follows the configured timeout.
  3. Toggle dictation.showTranscript and confirm live transcript visibility changes while final insertion still works.
  4. Switch dictation.model between available models and confirm Dictation still completes.

Workspace trust

  1. In a trusted workspace, confirm workspace .github/dictation.md instructions are discovered.
  2. Mark the workspace untrusted and confirm workspace instructions are ignored while user-level instructions remain available.

dictation.md customization

  1. Run Voice: Configure Dictation Instructions and create or open the user-level file.
  2. Add a distinctive but safe instruction, such as preserving a project-specific term or formatting output as short bullet points.
  3. Dictate text that exercises the instruction and confirm the final post-processed transcript follows it without inventing content.
  4. Add .github/dictation.md with a different workspace instruction and confirm user and workspace guidance combine in a trusted workspace.
  5. Empty or remove the files and confirm Dictation returns to default cleanup behavior.

Multilingual Nemotron 3.5

  1. Set dictation.model to Nemotron 3.5 ASR (Multilingual) — On-Device (nemotron-3.5-asr-streaming-0.6b).
  2. Set agents.voice.language to each supported explicit language and dictate a short phrase:
    • English (en)
    • Spanish (es)
    • French (fr)
    • German (de)
    • Italian (it)
    • Portuguese (pt)
    • Chinese (zh)
    • Japanese (ja)
  3. Confirm the transcript is produced in the selected language and regional values such as es-MX, fr-CA, and pt-BR use the correct base-language prompt.
  4. Set agents.voice.language to auto, change the system/browser locale to a supported language, restart Dictation, and confirm that locale is used.
  5. With auto and an unsupported system/browser locale, dictate supported speech and confirm model language detection is used rather than forcing English.
  6. Set an unsupported explicit value such as nl and confirm Dictation still runs by falling back to model language detection.
  7. If the legacy Nemotron English checkpoint was previously selected, update to a build containing the migration and confirm the setting automatically moves to Nemotron 3.5.
  8. In Voice: Import Offline Speech Model, select Nemotron 3.5 and confirm the importer resolves the multilingual Foundry Local model rather than the retired English-only checkpoint.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions