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