Skip to main content

1785884895192-019fcf07-71e9-75bf-8467-be33449f1eec

Make your computer talk, right from the terminal. Powered by Supertonic 3 — everything runs locally on your CPU.

Install

# If you don't have uv installed, run this first:
curl -LsSf https://astral.sh/uv/install.sh | sh                              # Linux / macOS
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"   # Windows

# if you do just run this command
uv tool install speak-cli

The voice models (~400 MB) download automatically the first time you speak. Works on Linux, macOS, and Windows.

How to use ?

speak "hello world"
speak -v noah "a different voice"
speak "مرحبا بالعالم"                # language detected automatically
speak -o clip.wav "or save to a file"
speak < article.txt                  # long reads start speaking instantly
ollama run llama3 "tell a story" | speak --live   # voice for your LLM

Note: say also works as an alias.

Use from Python

The same engine is available as a library — add speak-cli to your project (uv add speak-cli / pip install speak-cli) and:

from speak_cli import Speaker, say

say("hello world")                      # one-liner: synthesize and play

speaker = Speaker(voice="noah", speed=1.1)   # model loads once, reuse it
speaker.say("long texts stream, so they start speaking instantly")
wav_bytes = speaker.synthesize("raw 44.1 kHz WAV bytes")
speaker.save("مرحبا بالعالم", "clip.wav")    # language auto-detected per call

Per-call overrides work everywhere: speaker.say("bonjour", lang="fr", speed=0.9).

Voices

Ten voices, picked by name (speak --list-voices):

Female Male
sara (default) james
emma daniel
lily leo
maya ryan
nora noah

Prefer one? Make it stick: speak --set-default noah

Options

Flag Default Meaning
-v, --voice sara voice name
-s, --speed 1 speech speed (0.7–2.0)
-l, --lang auto language (31 supported, auto-detected from the text)
-o, --out FILE — save a WAV instead of playing
--live — speak piped input line by line as it arrives
--steps 8 quality vs speed (5–12)

Sprinkle in expression tags for natural delivery: speak "well <laugh> that was funny" (also <breath>, <sigh>, …).

Good to know

  • Speech streams: long texts start playing in about a second while the rest is still being synthesized — no waiting, no length limit.
  • The first call starts a small background service that keeps the model warm — repeat calls speak in under a second. It shuts itself down after 15 idle minutes; speak --stop ends it manually.
  • Auto-detection recognizes Arabic, Japanese, Korean, Russian, Greek, and Hindi by their alphabets; other Latin-script languages need a hint, e.g. --lang fr.

Licenses

CLI: MIT · Supertonic 3 model weights: OpenRAIL-M

Metadata

Release files for speak-cli 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for speak-cli 1.3.0
File Size Uploaded
speak_cli-1.3.0.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for speak-cli 1.3.0
File Interpreter ABI Platform
speak_cli-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 39.2 kB

Release files / speak_cli-1.3.0.tar.gz

Download URL speak_cli-1.3.0.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9ffb6a529eecb858b3c02a561e7ca9cb2f40c25b1bbbf272d4f1e24261c16d83
BLAKE2b-256 checksum
How to use checksums
1cd841d808211638343f08c2acf045eb9e3699721765dbf76c36289b622e0044
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / speak_cli-1.3.0-py3-none-any.whl

Download URL speak_cli-1.3.0-py3-none-any.whl
Size 20.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f1dba01234eded39af71e196c9cacd08e67986a985801b2c0ce177cb8fb4fe60
BLAKE2b-256 checksum
How to use checksums
731a05d0fe5040bdd14308e81254a607253b625f4cc74eea382beb65e5a64c5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.5.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page