Speak text aloud using on-device or Web Speech voices.
Synopsis
say [-v voice] [-r rate] [-l lang] [-o file] [--list] <text>
Description
Speaks the given text. Uses on-device Kokoro voices when the model has downloaded (run say --warmup, or it chains after the whisper download) for supported languages (English, Spanish, French, Italian, Hindi, Portuguese); falls back to the Web Speech API otherwise.
Options
-v voice Voice name (partial match; kokoro ids like af_heart work once the model is ready).
-r rate Speech rate (0.1 to 10, default 1).
-l lang Language tag (BCP 47, e.g. en-US, es-ES, fr-FR).
-o file Write 16-bit mono WAV to <file> instead of playing it aloud (kokoro-only, English-only; --out is an alias).
--list List voices with an engine marker ([kokoro] = on-device, [web speech] otherwise).
--status Show the on-device voice state (downloading/ready + ETA).
--warmup Stage and start the on-device voice download in the background.
Examples
$ say 'hello there'
Speak text using the best available voice.
$ say -v af_heart -l en-US 'hello'
Speak with a specific on-device Kokoro voice.
$ say -o out.wav -l en-US 'render this to a file'
Render speech to a WAV file instead of playing it.
$ say --list
List available voices.
Notes
say-11 (ElevenLabs skill) is a separate, unrelated drop-in that uses the ElevenLabs API instead of on-device/Web Speech voices.
See Also
hear, afplay, chime