Overview Version History Q & A Rating & Review
Markdown TTS
A VS Code extension that reads markdown files aloud and lets you speak into Copilot Chat using your OS's built-in dictation. Works on Windows (SAPI) and macOS (say), with optional Microsoft Edge neural voices (online, high quality). No API keys needed.
Requirements
VS Code 1.80.0 or later
Internet connection — only if using Edge Neural TTS engine
Windows 10/11 with Voice Typing enabled
Enable: Settings → Privacy & Security → Speech → Online speech recognition → On
Test manually: press Win+H anywhere — the Voice Typing toolbar should appear
macOS with Dictation enabled
Enable: System Settings → Keyboard → Dictation → On
First run: macOS will prompt for Accessibility permission for VS Code — grant it
Linux
Edge Neural TTS engine works (requires internet)
Local TTS and Voice Input are not yet supported
Install
code --install-extension markdown-tts-1.0.0.vsix
Or: Ctrl+Shift+P → Extensions: Install from VSIX… → pick the file.
Features
Text-to-Speech
Read File Aloud — speak the entire file, or from cursor position if placed mid-file
Read from Cursor — explicitly read from cursor to end of file
Read Selection Aloud — speak only highlighted text
Read Clipboard Aloud — speak copied text (great for chat responses, browser content, etc.)
Heading Navigation — skip to next/previous heading while reading
Pause / Resume — temporarily pause and continue speech
Stop Reading — stop the current speech immediately
Edge Neural TTS — optional high-quality voices via Microsoft Edge's online service
List Edge Voices — browse 400+ voices in a searchable picker
Reading time estimate — shows word count and estimated duration before reading long files
Speed display — status bar shows current reading speed (e.g. "Reading 1.2x")
Voice Input (Speech-to-Text)
Voice Input to Chat — triggers OS-native dictation directly into Copilot Chat
Press Ctrl+Alt+M → Copilot Chat opens → dictation starts → speak → text streams into chat
Windows : launches Win+H Voice Typing (press Esc to stop)
macOS : triggers Edit → Start Dictation (press Fn to stop)
Pre-warmed PowerShell process for near-instant launch on Windows
Smart Markdown Processing
Strips YAML frontmatter, HTML tags, code blocks, footnotes
Converts headings to "Heading level N: ..."
Removes bold/italic/link/image syntax, keeps the text
Skips tables, horizontal rules, blockquote markers
Works in markdown preview mode and with unsaved/untitled files
Keyboard Shortcuts
Shortcut
Action
Ctrl+Alt+R
Read File Aloud (cursor-aware)
Ctrl+Alt+C
Read from Cursor
Ctrl+Alt+S
Read Selection Aloud
Ctrl+Alt+V
Read Clipboard Aloud
Ctrl+Alt+P
Pause / Resume (toggles)
Ctrl+Alt+X
Stop Reading
Ctrl+Alt+]
Skip to Next Heading
Ctrl+Alt+[
Skip to Previous Heading
Ctrl+Alt+M
Voice Input to Chat
Also available via right-click context menu, Command Palette (Ctrl+Shift+P → "Markdown TTS"), and title bar icon buttons.
Settings
{
"markdownTts.engine": "sapi",
"markdownTts.rate": 2,
"markdownTts.voice": "",
"markdownTts.edgeVoice": "en-US-AriaNeural"
}
engine — "sapi" (local system voice, offline, default) or "edge" (Microsoft Edge neural voices, online)
rate — Speech rate: -10 to 10. Default 2. Maps to SAPI rate on Windows, WPM on macOS, percentage on Edge.
voice — Voice name. Windows: SAPI voice (e.g. "Microsoft David Desktop"). macOS: say voice (e.g. "Samantha"). Leave blank for system default.
edgeVoice — Edge voice name. Default "en-US-AriaNeural". Run Markdown TTS: List Edge Voices to browse.
Feature
Windows
macOS
Linux
Local TTS engine
SAPI via PowerShell
say command
—
Edge Neural TTS
✅
✅
✅
Pause / Resume
Control file
SIGTSTP/SIGCONT
SIGTSTP/SIGCONT
Voice Input
Win+H Voice Typing
Edit → Start Dictation
—
Heading Navigation
✅
✅
✅
Reading Time Estimate
✅
✅
✅
Architecture
extension.js — single-file entry point (~700 lines)
Windows SAPI : spawns PowerShell with System.Speech.Synthesis.SpeechSynthesizer
macOS say : spawns say command, pause/resume via Unix signals
Edge engine : generates MP3 via node-edge-tts, plays through platform-native player
Voice Input : pre-warmed PowerShell sends Win+H via keybd_event (Windows) or AppleScript triggers Dictation menu (macOS)
Pause/resume/stop: control file on Windows, signals (SIGTSTP/SIGCONT) on macOS
Title bar buttons and status bar indicator for visual control
Troubleshooting
Problem
Solution
Voice Input: nothing happens
Enable OS dictation (see Requirements above)
Edge TTS: "Timed out"
Check internet connection; long texts may need up to 2 min
Edge TTS: "Cannot find module"
Reinstall VSIX — dependencies may not have been bundled
No sound on Windows
Check default audio output device; try SAPI engine
No sound on macOS
Try say "hello" in Terminal; check volume
Limitations
Linux : only Edge engine supported (no local TTS, no voice input)
Edge engine requires internet — text is sent to Microsoft servers
Voice Input requires OS-level dictation to be enabled
Markdown stripping is regex-based, not a full parser