Sleeptalk

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.

ServiceListens with (default)Speaks with (default)How it listensFree allowanceCard
CartesiaInk-2Sonic-3, voice SkylarStreams as you speak20,000 credits a month: about 25 minutes of speech plus a couple of hours of listeningNo card to sign up
DeepgramNova-3Flux, voice HannahStreams as you speak$200 of credit that never expiresNo card needed
ElevenLabsScribe v2Multilingual v2, voice BrittneyOne turn at a time10,000 credits a month: about 10 minutes of speechNo card to sign up
OpenRouterParakeet TDT v3Grok Voice, voice EveOne turn at a timeNone; paid from your OpenRouter balanceUses the balance you already have
VeniceParakeet TDT v3Grok Voice, voice EveOne turn at a timeNone; paid from your prepaid creditsUses the credits you already have
GroqWhisper large-v3 turboOrpheus (English), voice TroyOne turn at a timeNone; paid from your Groq accountUses your Groq account
TogetherParakeet TDT v3Cartesia Sonic 2, voice SkylarOne turn at a timeNone; paid from your Together accountUses your Together account
LocalMoonshine Small StreamingKokoro HeartOn the host, streaming partial textNo speech API chargeNo 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.

ServiceIn plain words
Cartesia20,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.
DeepgramA 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.
ElevenLabs10,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.
OpenRouterListening 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.
VeniceListening 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.
GroqWhisper listening costs a few cents per hour of you talking; the Orpheus voice is billed by the characters the agent says.
TogetherListening 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.
LocalNo 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 --open and 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 --terminal and 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 link gives 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/.env and ~/.hermes/config.yaml.
  • OpenClaw: ~/.openclaw/.env and ~/.openclaw/openclaw.json.
  • pi: ~/.pi/agent/auth.json and models.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:

Set up from a key already on the host
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 --json

That 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

ServiceModelLanguagesPrice per hourNotes
Cartesiaink-2 (recommended)EnglishStreamed
Cartesiaink-whisper43Accuracy varies; used for other languages
Deepgramnova-3 (recommended)12Most accurate; multi code-switches
Deepgramnova-233Wider coverage, lower accuracy
ElevenLabsscribe_v2 (recommended)30 in the catalogDetects the language itself
OpenRouternvidia/parakeet-tdt-0.6b-v3 (recommended)25 European$0.09Fastest measured; no Chinese
OpenRoutermicrosoft/mai-transcribe-2Detects the language$0.10Recommended for Chinese, Japanese, Korean, and Hindi
OpenRouterqwen/qwen3-asr-flash-2026-02-10Chinese and English$0.126Chinese and English mixed in one sentence
OpenRouteropenai/whisper-large-v3-turbo47$0.012
OpenRouternvidia/nemotron-3.5-asr-streaming-multilingual-0.6bNot documented$0.012Drops English words when told Chinese
OpenRouterqwen/qwen3-asr-1.7bChinese and English$0.02725-second cold starts measured; not for calls
Venicenvidia/parakeet-tdt-0.6b-v3 (recommended)25 European$0.36
Veniceopenai/whisper-large-v347$0.36Used for languages Parakeet lacks
Groqwhisper-large-v3-turbo (recommended)47
Groqwhisper-large-v347
Togethernvidia/parakeet-tdt-0.6b-v3 (recommended)25 European
Togetheropenai/whisper-large-v347Used for languages Parakeet lacks
Localmoonshine-small-streaming-en (recommended)EnglishNo API chargeStreaming on the host
Localmoonshine-tiny-enEnglishNo API chargeBatch fallback, including Intel Macs

Speaking models

ServiceModelLanguagesPrice per hourNotes
Cartesiasonic-3 (recommended)37Pronunciation follows the profile language
DeepgramFlux (recommended)EnglishStreamed; the voice name is the model
DeepgramAura-27The voice name carries the language
ElevenLabseleven_multilingual_v2 (recommended)29Best quality; detects the language from the text
ElevenLabseleven_flash_v2_529Lowest latency
ElevenLabseleven_turbo_v2_529Balanced
OpenRouterx-ai/grok-voice-tts-1.0 (recommended)Detected from the text$0.81Quickest to speak
OpenRouterdeepgram/flux-tts:freeEnglishFreeHannah, Kit, and the other Flux voices
OpenRouterdeepgram/aura-27$1.62
OpenRouterqwen/qwen-audio-3.0-tts-flashChinese and English$0.35Recommended for Chinese
OpenRouterhexgrad/kokoro-82mNot documented$0.22Budget pick
OpenRoutercanopylabs/orpheus-3b-0.1-ftEnglish$0.38
Venicetts-xai-v1, Grok Voice (recommended)Detected from the text$1.01
Venicetts-orpheusEnglish$3.38
Venicetts-kokoroNot documented$0.19
Groqcanopylabs/orpheus-v1-english (recommended)English
Togethercartesia/sonic-2 (recommended)37
Togethercanopylabs/orpheus-3b-0.1-ftEnglish
Togetherhexgrad/Kokoro-82MNot documented
Localkokoro-en (recommended)EnglishNo API chargeHeart, 28 English voices
Localpiper-lessac-mediumEnglishNo API chargeSmaller voice download
Localpocket-tts-enEnglishNo API chargeBria, 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.

ServiceDefaultAlso offered
CartesiaSkylarDaniel, Gemma, Parker, Archie
DeepgramHannahKit, Alexis, Cliff, Sienna
ElevenLabsBrittneyMark, Jessica, Eric, Sarah
OpenRouterEve (Grok Voice)Ara, Rex (Grok Voice); Hannah, Kit (Deepgram Flux, free)
VeniceEve (Grok Voice)Ara, Rex, Leo, Sal
GroqTroy (Orpheus)Hannah
TogetherSkylar (Cartesia Sonic)Daniel (Cartesia Sonic), Tara (Orpheus), Sky (Kokoro)
LocalHeart (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.