Refs #327418, #327853, #328058, #328094, #328259
Complexity: 4
Setup
- Use the latest VS Code Insiders and sign in with an account that has Voice Mode access.
- Enable
chat.enableNewVoiceFeatures and agents.voice.enabled.
- Test in an empty trusted workspace unless a section says otherwise.
- For microphone-picker coverage, test once with one physical microphone and once with at least two.
- Before each first-run pass, run Developer: Reset Voice Mode Onboarding.
First use and onboarding
- Start Voice Mode from a chat input or the Command Palette.
- Confirm Voice Mode connects immediately and a Welcome to Voice Mode card appears above the active chat input.
- Confirm the card explains that it configures how the agent speaks and includes a working settings link.
- Confirm the broad waveform is always visible in both automatic and manually opened Voice Mode cards, regardless of microphone count. This is an agent-voice visualization, not a live microphone-level meter: it animates at rest and reacts to prerecorded voice-preview playback.
- With only one normalized physical microphone available, confirm the waveform remains visible but the microphone picker is hidden.
- With multiple normalized physical microphones available, confirm a picker appears. Open it and verify each physical device appears once, virtual
default and communications duplicates are absent, and the physical system-default device appears once as <device name> (System default).
- Select another microphone and confirm the selection is retained and shared with Dictation and Voice: Select Microphone. The Voice Mode onboarding waveform should not react to microphone input.
- With
agents.voice.handsFree enabled, confirm Voice Mode listens while the card is open. Play voice samples and confirm their audio is not submitted as user speech or treated as a new question.
- With
agents.voice.handsFree disabled, confirm the initial action connects Voice Mode without beginning continuous listening; use the microphone button or shortcut again to start recording.
- Close the card and confirm Voice Mode remains connected and usable.
- Disconnect and reconnect Voice Mode and confirm the automatic card does not reappear.
Manual introduction
- Run Voice: Show Voice Mode Introduction from the Command Palette or the microphone context menu.
- Confirm the same voice visualization and conditional microphone-picker behavior described above.
- Confirm normal chat tips are hidden while the card is open and return after it closes. No separate chat notification should appear.
- Verify keyboard behavior: Tab reaches settings, voice previews, the microphone picker when present, and close; Enter/Space activate controls; Escape dismisses.
Voice and language previews
- For English, or a locale without a native Voice Mode voice, confirm four preview choices appear: Maya (Default), Victoria, Kevin, and Daniel.
- Confirm no English voice is selected when the card first opens.
- Select each voice and confirm:
- its prerecorded sample plays;
- its button shows the playing state;
- the broad waveform changes to that voice's visual signature and responds to sample loudness;
- the chosen voice is saved immediately.
- Select the currently playing voice again and confirm playback stops without clearing the selection.
- Change
agents.voice.language to each natively spoken language and reopen the introduction:
- German: Marc
- Spanish: Maria
- French: David
- Italian: Eva
- Japanese: Aruha
- Korean: Jiyon
- Portuguese: Gil
- Chinese: Wuzhi
- For each supported non-English language, confirm exactly one localized preview button appears instead of the four-voice English chooser. It should play and stop the native sample without persisting an English voice choice.
- With
agents.voice.language set to auto, confirm the system/browser locale selects the native preview when supported and otherwise falls back to the four English choices.
- Verify the English radio group with keyboard-only input: arrows move and select, Enter/Space play or stop, and only one choice is in the Tab order.
Voice Mode instructions
- Run Voice: Configure Voice Mode Instructions from the Command Palette, or choose Configure Instructions from the Voice Mode microphone menu. The command is also linked from Voice Mode settings.
- Create or open the user-level
~/.copilot/voice.md, add distinctive safe guidance such as a preferred pronunciation or response style, reconnect Voice Mode, and confirm the instructions are applied.
- Add trusted workspace
.github/voice.md guidance and confirm it combines with the user-level file after reconnecting.
- Mark the workspace untrusted and confirm workspace instructions are ignored while user-level instructions remain available.
- Empty or remove both files, reconnect, and confirm Voice Mode returns to default behavior.
General Voice Mode behavior
- Confirm a spoken prompt is transcribed and submitted after the end-of-speech timeout.
- Ask multiple questions in one utterance and confirm all are addressed.
- Ask another question while a request is running and confirm concurrent-question handling queues or routes it correctly without losing either request.
- Enable verbose spoken progress updates and confirm useful progress is spoken while a request runs; disable it and confirm those updates stop.
- When approval is required, confirm the agent explains the request, listens for approve/deny, and follows the spoken response.
- With live transcripts disabled, confirm the input shows Listening... rather than an empty cursor while listening.
- Try voice mode in multiple sessions. Ensure confirmations and responses are read out upon your return to a session.
Spoken barge-in
- Enable hands-free mode and start a request that produces a long spoken response.
- While the agent is speaking, begin a new utterance such as "Stop" or a new question.
- Confirm playback stops promptly, the new utterance is captured from its beginning, and it is submitted after end-of-speech.
- Repeat while a spoken progress update is playing and confirm the interruption behaves the same way.
- Confirm audio from the agent itself does not trigger barge-in without user speech.
Accessibility
- Enable screen-reader optimized mode and open both automatic and manual introductions.
- Confirm the card is announced as Voice Mode introduction and focus moves into it when appropriate.
- Confirm voice choices expose useful roles, labels, selected state, and play/stop state.
- Confirm microphone selection and voice selection changes are announced.
- Enable reduced motion and confirm the card avoids unnecessary motion while preserving understandable state.
Refs #327418, #327853, #328058, #328094, #328259
Complexity: 4
Setup
chat.enableNewVoiceFeaturesandagents.voice.enabled.First use and onboarding
defaultandcommunicationsduplicates are absent, and the physical system-default device appears once as<device name> (System default).agents.voice.handsFreeenabled, confirm Voice Mode listens while the card is open. Play voice samples and confirm their audio is not submitted as user speech or treated as a new question.agents.voice.handsFreedisabled, confirm the initial action connects Voice Mode without beginning continuous listening; use the microphone button or shortcut again to start recording.Manual introduction
Voice and language previews
agents.voice.languageto each natively spoken language and reopen the introduction:agents.voice.languageset toauto, confirm the system/browser locale selects the native preview when supported and otherwise falls back to the four English choices.Voice Mode instructions
~/.copilot/voice.md, add distinctive safe guidance such as a preferred pronunciation or response style, reconnect Voice Mode, and confirm the instructions are applied..github/voice.mdguidance and confirm it combines with the user-level file after reconnecting.General Voice Mode behavior
Spoken barge-in
Accessibility