Use edge-tts — free, neural-quality voices (400+), works from any terminal. No Windows API nonsense. Sounds like a real human.
Step 1 — Check & Install
Always check if installed first:
Get-Command edge-tts -ErrorAction SilentlyContinue
Install with uv (preferred):
uv tool install edge-tts
Fallback with pip:
pip install edge-tts
This installs two executables: edge-tts (generate audio) and edge-playback (speak aloud).
Step 2 — Basic Usage
Speak aloud (use edge-playback, NOT edge-tts --play):
edge-playback --text "Hello world"
Save to MP3:
edge-tts --text "Hello world" --write-media output.mp3
⚠️
--playflag does NOT exist on Windows. Always useedge-playbackto speak aloud.
Step 3 — Voices
List ALL voices (400+):
edge-tts --list-voices
Filter by language:
edge-tts --list-voices | Select-String "en-US"
edge-tts --list-voices | Select-String "Female"
Recommended English neural voices:
| Voice | Gender | Style |
|---|---|---|
en-US-AriaNeural |
Female | Natural, warm |
en-US-JennyNeural |
Female | Friendly |
en-US-GuyNeural |
Male | Natural |
en-GB-SoniaNeural |
Female | British |
en-GB-RyanNeural |
Male | British |
Use a specific voice:
edge-playback --voice "en-US-AriaNeural" --text "Hi, I'm Aria!"
edge-tts --voice "en-US-AriaNeural" --text "Hi" --write-media aria.mp3
Step 4 — Rate, Volume, Pitch
All adjustments use +X% or -X% string format:
# Rate: default +0%, range roughly -50% to +100%
edge-playback --voice "en-US-AriaNeural" --rate "+20%" --text "Faster speech"
edge-playback --voice "en-US-AriaNeural" --rate "-30%" --text "Slower speech"
# Volume: default +0%
edge-playback --voice "en-US-AriaNeural" --volume "+50%" --text "Louder"
# Pitch: default +0Hz
edge-playback --voice "en-US-AriaNeural" --pitch "+10Hz" --text "Higher pitch"
Deeper Reading
| Topic | File |
|---|---|
| Full Say.ps1 wrapper script with pipeline support | references/say-script.md |
| Gotchas (platform quirks, case sensitivity, etc.) | references/advanced.md |