Configure
Speech providers
Pick one speech service that listens and speaks with a single key, or run speech locally with no key.
Choose a service
The Cascade services below provide listening (speech-to-text, STT) and speaking (text-to-speech, TTS). One provider key can cover both. Local needs no speech key. OpenAI Realtime is a separate settings choice with GPT Realtime and GPT Live models, where an OpenAI model handles voice directly; see voice modes before choosing.
| Service | Listens with (default) | Speaks with (default) | How it listens | Free allowance | Card |
|---|---|---|---|---|---|
| Cartesia | Ink-2 | Sonic-3, voice Skylar | Streams as you speak | 20,000 credits a month: about 25 minutes of speech plus a couple of hours of listening | No card to sign up |
| Deepgram | Nova-3 | Flux, voice Hannah | Streams as you speak | $200 of credit that never expires | No card needed |
| ElevenLabs | Scribe v2 | Multilingual v2, voice Brittney | One turn at a time | 10,000 credits a month: about 10 minutes of speech | No card to sign up |
| OpenRouter | Parakeet TDT v3 | Grok Voice, voice Eve | One turn at a time | None; paid from your OpenRouter balance | Uses the balance you already have |
| Venice | Parakeet TDT v3 | Grok Voice, voice Eve | One turn at a time | None; paid from your prepaid credits | Uses the credits you already have |
| Groq | Whisper large-v3 turbo | Orpheus (English), voice Troy | One turn at a time | None; paid from your Groq account | Uses your Groq account |
| Together | Parakeet TDT v3 | Cartesia Sonic 2, voice Skylar | One turn at a time | None; paid from your Together account | Uses your Together account |
| Local | Moonshine Small Streaming | Kokoro Heart | On the host, streaming partial text | No speech API charge | No speech account |
Figures are as the providers published them in September 2026. Check the provider's own pricing before you rely on them.
What the free allowance covers
These are the plain-words explanations the settings page shows.
| Service | In plain words |
|---|---|
| Cartesia | 20,000 free credits a month, shared by listening and speaking. About 25 minutes of the agent talking uses up the month; in practice that's an hour or two of calls a month with short replies. Credits reset monthly and don't carry over. The free plan is for personal use; paid plans start at $5 a month. |
| Deepgram | A one-time $200 credit that never expires. Listening costs about 50 cents per hour of call, and the agent talking about $1.60 per hour of speech. An hour-long call where the agent talks for about 10 minutes costs under a dollar. Pay as you go after the credit is used. |
| ElevenLabs | 10,000 free credits a month. Each character the agent says uses one, so that's about 10 minutes of it talking a month: enough to try the voices, not for daily use. The free plan is non-commercial; paid plans start at $5 a month. |
| OpenRouter | Listening costs about 9 cents per hour of you talking, and the Grok voices about 80 cents per hour of the agent talking. The Deepgram Flux voices (Hannah, Kit) are free on OpenRouter. An hour-long call where you talk for 20 minutes and the agent for 10 costs about 15 cents. |
| Venice | Listening costs about 36 cents per hour of you talking, and the Grok voices about a dollar per hour of the agent talking. An hour-long call where you talk for 20 minutes and the agent for 10 costs about 30 cents. |
| Groq | Whisper listening costs a few cents per hour of you talking; the Orpheus voice is billed by the characters the agent says. |
| Together | Listening costs cents per hour; the Cartesia voices a few dollars per hour of the agent talking. An hour-long call with short replies costs well under a dollar. |
| Local | No speech API charge. Listening and speaking run on the host (about 493 MB for the default models, plus optional runtimes, CPU only). Your agent can still use a paid cloud model. See Local speech for alternatives and offline setup. |
Source: providers.json.
Set up or switch the service
Every path checks the key before saving it: Sleeptalk transcribes a bundled clip and speaks one line in the chosen voice. A key that fails is not kept.
- Settings page: run
sleeptalk settings --openand open Speech service. Select a service card, paste its key or use one found on this computer, choose models and a voice, then choose Switch to that service. See settings. - Terminal: run
sleeptalk settings --terminaland choose Speech provider & key. The menu lists Deepgram, Cartesia, ElevenLabs, OpenRouter, Local, and Mix providers (advanced), plus any usable key it finds on this computer. - Through an agent:
sleeptalk host input linkgives you a single-use link that opens the settings page on just that request. It shows every service as a card with its free allowance and card facts. You pick one, enter its key and models, then choose a voice. A repair request shows only the service in use. See agent setup.
Get a key from the provider: Cartesia, Deepgram, ElevenLabs, OpenRouter, Venice, Groq, or Together.
Keys go into a private store on the host, and the profile keeps only a reference. See profiles and credentials.
Reuse a key already on this computer
If your agent already runs on OpenRouter, Venice, Groq, or Together, the same key can listen and speak. Sleeptalk looks for one in these places:
- Sleeptalk's own credential store, for example the key of a Just a model profile.
- The environment of the process running Sleeptalk.
- Hermes:
~/.hermes/.envand~/.hermes/config.yaml. - OpenClaw:
~/.openclaw/.envand~/.openclaw/openclaw.json. - pi:
~/.pi/agent/auth.jsonandmodels.json. oh-my-pi:~/.omp/agent.
A project's .env is never a source, because a cloned repository could ship one. A key given as a shell command is never run.
Only files your user owns are read. Looking notes where a key is, never its value. A key is used only when you say so.
The settings page looks only after you click Look on this computer, and remembers that until you click Stop looking. A service with a key then shows key found on this computer and sorts near the top. The terminal wizard offers found keys first: nothing to paste, a copy goes into Sleeptalk's store.
For agents, sleeptalk host ensure only offers a found key. The receipt stays needs_input and carries reusable_keys and an ask line. The agent asks you, and only after you say yes reruns with --reuse-key:
sleeptalk host ensure --profile default --agent hermes --surface web --json
# the user says yes to the OpenRouter key
sleeptalk host ensure --profile default --agent hermes --surface web --reuse-key openrouter --json
sleeptalk host start-voice --profile default --jsonThat run checks the key on both audio routes (a small paid request), copies it into Sleeptalk's store, and comes back ready with a say line. The original stays where it was, so if you rotate it there, replace it in Sleeptalk too. If you say no, the agent sends a link to the settings page instead. --no-key-reuse skips the lookup. The receipt names where the key was found, never its value. See voice from a key you already have.
Models
Sleeptalk keeps a catalog of every model it can drive for each service. Each entry records the languages the model covers, whether it streams, a price per hour where the provider publishes one, and the voices that belong to it. One model per service and language is marked recommended, and the settings page shows the rest in dropdowns.
The settings page can also fetch the provider's public model list for OpenRouter, Venice, and Deepgram, and uses your key to fetch the lists for ElevenLabs and Together. Live lists are cached for a day. They add models, but never override the catalog's facts.
Prices below are per hour of audio, as published in September 2026. For speaking models they assume about 15 characters of speech a second. A blank price means the catalog has no figure.
Listening models
| Service | Model | Languages | Price per hour | Notes |
|---|---|---|---|---|
| Cartesia | ink-2 (recommended) | English | Streamed | |
| Cartesia | ink-whisper | 43 | Accuracy varies; used for other languages | |
| Deepgram | nova-3 (recommended) | 12 | Most accurate; multi code-switches | |
| Deepgram | nova-2 | 33 | Wider coverage, lower accuracy | |
| ElevenLabs | scribe_v2 (recommended) | 30 in the catalog | Detects the language itself | |
| OpenRouter | nvidia/parakeet-tdt-0.6b-v3 (recommended) | 25 European | $0.09 | Fastest measured; no Chinese |
| OpenRouter | microsoft/mai-transcribe-2 | Detects the language | $0.10 | Recommended for Chinese, Japanese, Korean, and Hindi |
| OpenRouter | qwen/qwen3-asr-flash-2026-02-10 | Chinese and English | $0.126 | Chinese and English mixed in one sentence |
| OpenRouter | openai/whisper-large-v3-turbo | 47 | $0.012 | |
| OpenRouter | nvidia/nemotron-3.5-asr-streaming-multilingual-0.6b | Not documented | $0.012 | Drops English words when told Chinese |
| OpenRouter | qwen/qwen3-asr-1.7b | Chinese and English | $0.027 | 25-second cold starts measured; not for calls |
| Venice | nvidia/parakeet-tdt-0.6b-v3 (recommended) | 25 European | $0.36 | |
| Venice | openai/whisper-large-v3 | 47 | $0.36 | Used for languages Parakeet lacks |
| Groq | whisper-large-v3-turbo (recommended) | 47 | ||
| Groq | whisper-large-v3 | 47 | ||
| Together | nvidia/parakeet-tdt-0.6b-v3 (recommended) | 25 European | ||
| Together | openai/whisper-large-v3 | 47 | Used for languages Parakeet lacks | |
| Local | moonshine-small-streaming-en (recommended) | English | No API charge | Streaming on the host |
| Local | moonshine-tiny-en | English | No API charge | Batch fallback, including Intel Macs |
Speaking models
| Service | Model | Languages | Price per hour | Notes |
|---|---|---|---|---|
| Cartesia | sonic-3 (recommended) | 37 | Pronunciation follows the profile language | |
| Deepgram | Flux (recommended) | English | Streamed; the voice name is the model | |
| Deepgram | Aura-2 | 7 | The voice name carries the language | |
| ElevenLabs | eleven_multilingual_v2 (recommended) | 29 | Best quality; detects the language from the text | |
| ElevenLabs | eleven_flash_v2_5 | 29 | Lowest latency | |
| ElevenLabs | eleven_turbo_v2_5 | 29 | Balanced | |
| OpenRouter | x-ai/grok-voice-tts-1.0 (recommended) | Detected from the text | $0.81 | Quickest to speak |
| OpenRouter | deepgram/flux-tts:free | English | Free | Hannah, Kit, and the other Flux voices |
| OpenRouter | deepgram/aura-2 | 7 | $1.62 | |
| OpenRouter | qwen/qwen-audio-3.0-tts-flash | Chinese and English | $0.35 | Recommended for Chinese |
| OpenRouter | hexgrad/kokoro-82m | Not documented | $0.22 | Budget pick |
| OpenRouter | canopylabs/orpheus-3b-0.1-ft | English | $0.38 | |
| Venice | tts-xai-v1, Grok Voice (recommended) | Detected from the text | $1.01 | |
| Venice | tts-orpheus | English | $3.38 | |
| Venice | tts-kokoro | Not documented | $0.19 | |
| Groq | canopylabs/orpheus-v1-english (recommended) | English | ||
| Together | cartesia/sonic-2 (recommended) | 37 | ||
| Together | canopylabs/orpheus-3b-0.1-ft | English | ||
| Together | hexgrad/Kokoro-82M | Not documented | ||
| Local | kokoro-en (recommended) | English | No API charge | Heart, 28 English voices |
| Local | piper-lessac-medium | English | No API charge | Smaller voice download |
| Local | pocket-tts-en | English | No API charge | Bria, Loona, and custom reference voices |
OpenRouter also lists MiniMax Speech 2.8 Turbo and HD. They return MP3 only, so the settings page shows them as not usable yet.
The full catalog is in speech_catalog.py. For the models each language gets, see default models by language.
Voices
Each service has a short curated list with one default. The settings page plays a recorded sample of each curated voice without a key. The samples ship with Sleeptalk and play only in the page's language.
| Service | Default | Also offered |
|---|---|---|
| Cartesia | Skylar | Daniel, Gemma, Parker, Archie |
| Deepgram | Hannah | Kit, Alexis, Cliff, Sienna |
| ElevenLabs | Brittney | Mark, Jessica, Eric, Sarah |
| OpenRouter | Eve (Grok Voice) | Ara, Rex (Grok Voice); Hannah, Kit (Deepgram Flux, free) |
| Venice | Eve (Grok Voice) | Ara, Rex, Leo, Sal |
| Groq | Troy (Orpheus) | Hannah |
| Together | Skylar (Cartesia Sonic) | Daniel (Cartesia Sonic), Tara (Orpheus), Sky (Kokoro) |
| Local | Heart (Kokoro) | 28 English Kokoro voices; Lessac (Piper); Bria and Loona (Pocket TTS) |
Groq and Together have no recorded samples. For other languages, Cartesia, Deepgram, and ElevenLabs offer up to five native voices per language, and the Grok voices on OpenRouter and Venice speak every language. See default voices by language.
Any other voice from the provider's library works too. Paste its ID below the voice list on the settings page, or follow Browse voices to the provider's library. On Deepgram the voice name is the model. On OpenRouter, Venice, and Together the voice name also picks the model.
To change voice during a call, open the gear menu on the call page and choose Voices. See settings.
Mix providers
Mix providers (advanced) in the terminal wizard uses one service to listen and another to speak. Each cloud side needs its own key.
- Listening: Deepgram, Cartesia, ElevenLabs, or Local.
- Speaking: Cartesia, Deepgram, ElevenLabs, or Local.
Agents can request a mixed setup with --stt-provider and --tts-provider on sleeptalk host input link. The settings page always switches both directions to one service.
Other TTS adapters
The code also contains PlayHT, Rime, and Hume TTS adapters. The settings page doesn't offer them.
TTS fallback
Profiles can define an ordered tts.fallback list. If synthesis fails or returns no audio before playback begins, Sleeptalk tries the next configured provider.
It does not retry after partial audio, cancellation, or playback failure. Configure and authenticate each fallback deliberately. See the component contracts.