Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Lightweight TTS CLI tool for linux machines

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages