Ir al contenido

Voice - Speech-to-Text Dictation and Text-to-Speech Playback

Esta página aún no está disponible en tu idioma.

Voice adds two independent capabilities to the chat experience: speech-to-text (STT) dictation, which transcribes your spoken words directly into the chat input, and text-to-speech (TTS) playback, which reads AI responses aloud. Both are opt-in and disabled by default - enabling Voice adds zero UI clutter for users who don’t need it.

Voice is a convenience layer on top of the existing chat pipeline, resolved independently of the active chat provider - you can chat with Gemini while dictating with OpenAI Whisper, or run a fully local/offline STT+TTS stack with no cloud dependency at all.

Provider Direction Requires Notes
OpenAI STT + TTS OpenAI API key Whisper for transcription, OpenAI TTS for playback. Cloud-based, highest quality out of the box.
Local (whisper.cpp) STT only A self-hosted whisper.cpp / faster-whisper server Talks to an OpenAI-compatible /v1/audio/transcriptions endpoint. Free, fully offline-capable.
Local (Piper) TTS only A self-hosted Piper HTTP server Free, fully offline-capable text-to-speech.

You can mix and match: for example, OpenAI for STT paired with a local Piper server for TTS, so playback never leaves your machine while dictation still uses Whisper’s accuracy.

Requires an OpenAI API key. If you already have one configured for an OPENAI chat provider instance, Settings > Voice offers a Reuse existing key shortcut so you don’t have to paste it twice - Voice’s key is stored separately from any chat provider key, since you may want to dictate/listen with OpenAI while chatting with a different provider entirely.

  1. Open Settings → Voice.
  2. Toggle Enabled on. The dictation and playback controls appear in chat once enabled.
  3. Pick a Speech-to-Text provider and a Text-to-Speech provider (they don’t have to match).
  4. If either provider is OpenAI, paste an API key (or reuse an existing one from a configured OpenAI chat provider instance).
  5. If either provider is local, fill in its endpoint URL.
Askimo Desktop Voice configuration showing the enabled toggle, speech-to-text provider, text-to-speech provider, and API key fields.

Voice stays completely hidden from the chat UI until you turn it on - existing users see no change unless they opt in.

Once enabled, a microphone button appears next to Send in the chat input.

  1. Click the 🎤 button (or press the toggle recording shortcut) to start recording. A pulsing red dot, an elapsed-time counter, and a live waveform reflecting your mic level appear next to the button while recording.
  2. Speak your message.
  3. Click the button again (or press the shortcut again) to stop. The button switches to a Transcribing… state with a spinner while the audio is sent to your chosen STT provider.
  4. The transcript is inserted into the chat input, appended to any text already there, ready to review and send.

Recording automatically stops after 120 seconds as a safety cap - the elapsed-time counter turns red for the last 10 seconds as a warning, so a forgotten open mic can’t run indefinitely.

By default, the transcript is inserted into the input field for you to review before sending. Turn on Auto-send transcript in Settings → Voice to skip that review step entirely: as soon as transcription finishes, the message is sent automatically - a fully hands-free record → transcribe → send flow.

Action Shortcut (macOS) Shortcut (Windows/Linux)
Start/stop dictation Cmd+Shift+M Ctrl+Shift+M

The shortcut works identically to clicking the microphone button, and is shown in the button’s tooltip for quick reference.

Every AI response gets a 🔊 button in its action row (next to Copy), hidden entirely when Voice output is disabled.

  • Click 🔊 to have that response read aloud using your configured TTS provider. The icon becomes a spinner while audio is synthesized, then a ⏹ Stop icon while it plays.
  • Only one response plays at a time app-wide - starting playback on a different message stops whichever one was already playing.
  • Synthesized audio is cached in memory per message, so replaying a response you’ve already listened to skips a fresh synthesis call.

Turn on Auto-play responses in Settings → Voice to have every completed AI response start speaking automatically as soon as it finishes streaming - no need to click 🔊 on each message. The per-message button remains available either way, so you can still stop or manually replay a specific response.

The Playback speed slider (0.25x–4.0x) controls how fast synthesized speech plays, and applies to both OpenAI and Piper TTS.

Action Shortcut (macOS) Shortcut (Windows/Linux)
Toggle playback of the last AI response Cmd+Shift+L Ctrl+Shift+L

This plays (or stops) the most recent AI message without needing to scroll to it and click its 🔊 button - handy for a quick “read that back to me” while your hands stay on the keyboard.

Synthesized TTS audio is kept in a small in-memory cache so repeated 🔊 clicks (or the replay shortcut) on a recently-played response don’t re-hit the TTS API. Two settings bound its size:

Setting Default Description
Max cached messages 5 Maximum number of distinct AI messages whose audio is kept at once.
Max cache size (MB) 4 MB Maximum total size of cached audio across all messages.

Whichever limit is hit first evicts the oldest cached entry. The cache is purely in-memory and app-lifetime - it’s never persisted to disk and is cleared on restart.

Field Description
Enabled Master switch - hides all voice UI when off.
Speech-to-Text provider OpenAI or Local (whisper.cpp).
STT model Model name passed to the STT provider (default whisper-1 for OpenAI).
Local STT endpoint Base URL of your self-hosted whisper.cpp/faster-whisper server.
Auto-send transcript Sends the transcribed text immediately instead of waiting for manual Send.
Text-to-Speech provider OpenAI or Local (Piper).
TTS model Model name passed to the TTS provider (default tts-1 for OpenAI).
TTS voice OpenAI voice name (dropdown: alloy, ash, coral, echo, fable, onyx, nova, sage, shimmer, verse) or a free-text Piper voice id.
Local TTS endpoint Base URL of your self-hosted Piper server.
Playback speed 0.25x–4.0x multiplier applied to synthesized speech.
Auto-play responses Speaks every completed AI response automatically.
Max cached messages / Max cache size (MB) Bounds on the in-memory TTS playback cache (see above).
API key OpenAI key used for Voice - separate from any chat provider’s key, with a Reuse existing key shortcut.

Voice configuration lives under the voice: key in askimo.yml, alongside your other Askimo settings. API keys are always stored in your OS keychain, never as plain text in the config file.

  • Voice is entirely opt-in; nothing is recorded, transcribed, or synthesized until you enable it and either click the mic / 🔊 buttons or use their shortcuts.
  • Choosing Local (whisper.cpp) for STT and Local (Piper) for TTS keeps both dictation and playback fully offline - no audio ever leaves your machine.
  • With OpenAI selected for either direction, the relevant audio (your recorded speech for STT, or the AI’s response text for TTS) is sent to OpenAI’s API for processing, subject to OpenAI’s own data handling policies.

The OS denied microphone access or no input device is available:

  • macOS: check System Settings → Privacy & Security → Microphone and make sure Askimo is allowed.
  • Confirm a working microphone is connected and selected as the system’s default input device.

Voice is disabled by default. Go to Settings → Voice and toggle Enabled on.

  • For OpenAI: check that a valid API key is configured and that you have network connectivity.
  • For local whisper.cpp: confirm the endpoint URL is correct and the server is running and reachable.

The 🔊 button only appears once Voice is enabled, and only on non-empty AI responses. It stays hidden entirely if Voice is turned off.

  • Check your TTS provider is configured correctly (API key for OpenAI, reachable endpoint for Piper).
  • Confirm system audio output isn’t muted and the correct output device is selected.

  • Preferences - general app preferences, including where Voice settings live
  • Plans - multi-step AI workflows
  • Agents - agents with local file system access