Voice Chat
Voice chat lets you speak to Snippbot agents and hear their responses using speech-to-text (STT) input and text-to-speech (TTS) output.
Prerequisites
Section titled “Prerequisites”- A microphone and speaker (or headphones)
- A modern browser (Chrome or Firefox recommended) for microphone access
- For cloud providers: an API key for your chosen TTS/STT provider (OpenAI, ElevenLabs, or Hume AI). Local and Browser providers work without API keys.
Local voice (faster-whisper and piper) is part of the standard install. The speech and voice models download the first time you use them and are then cached. Older macOS releases combined with the newest Python versions are the exception, because the ONNX runtime has no build for them (see platform support). There, run Snippbot on an older Python (for example pipx reinstall --python python3.12 snippbot) or use a cloud or Browser provider.
Supported providers
Section titled “Supported providers”Text-to-speech (TTS)
Section titled “Text-to-speech (TTS)”| Provider | Key setting | Notes |
|---|---|---|
| Local (piper-tts) | (none) | Offline local TTS, no API key needed |
| OpenAI TTS | openai_api_key | High quality cloud TTS |
| ElevenLabs | elevenlabs_api_key | Highest quality, many voices |
| Hume AI | hume_api_key | Emotionally expressive voice |
| Browser (Web Speech) | (none) | Built-in browser TTS, no API key needed |
Speech-to-text (STT)
Section titled “Speech-to-text (STT)”| Provider | Notes |
|---|---|
| Local (faster-whisper) | Offline local STT, no API key needed |
| OpenAI Whisper | Higher accuracy, requires OpenAI API key |
| ElevenLabs Scribe | High-accuracy transcription via ElevenLabs |
Setting up TTS
Section titled “Setting up TTS”ElevenLabs
Section titled “ElevenLabs”-
Create an account at elevenlabs.io and get an API key
-
Add the key in Snippbot: Settings → Integrations → ElevenLabs API Key
-
Enable in chat — click the TTS icon (speaker) in the chat toolbar and select ElevenLabs
-
Choose a voice from the voice selector dropdown
Hume AI
Section titled “Hume AI”-
Create an account at hume.ai and get an API key
-
Add the key in Snippbot: Settings → Integrations → Hume API Key
-
Enable in chat — click the TTS icon in the chat toolbar and select Hume AI
Browser TTS (no setup)
Section titled “Browser TTS (no setup)”No API key needed. In the Chat UI: TTS icon → select Browser.
Browser TTS quality varies by OS and browser. System voices are used.
Using voice in the Chat UI
Section titled “Using voice in the Chat UI”-
Open a chat with any agent
-
Click the microphone icon in the message input area — the browser will request microphone access
-
Speak your message — recording is active while the icon is animated
-
Click the microphone again (or press Space) to stop recording
-
The speech is transcribed and sent as a chat message
-
When TTS is enabled, the agent’s response is read aloud automatically
Keyboard shortcuts
Section titled “Keyboard shortcuts”| Shortcut | Action |
|---|---|
Space (when focused) | Start/stop recording |
Escape | Cancel recording |
S | Toggle TTS on/off |
Continuous voice mode
Section titled “Continuous voice mode”Enable Continuous mode to keep the microphone active after each agent response:
-
Open voice settings — in the Chat UI toolbar, click Settings → Voice → Continuous mode: On
-
Start talking — after each response, recording automatically restarts
-
Exit — press
Escapeto leave continuous mode
Voice commands
Section titled “Voice commands”While recording, you can use voice commands:
| Voice command | Action |
|---|---|
| ”Stop recording” | Sends the message |
| ”Cancel” | Discards the recording |
| ”New conversation” | Starts a fresh chat session |
TTS settings
Section titled “TTS settings”Configure TTS behavior in Settings → Voice:
| Setting | Options | Description |
|---|---|---|
| Provider | Local (piper-tts) / OpenAI TTS / ElevenLabs / Hume AI / Browser (Web Speech) | TTS engine |
| Voice | (provider-specific) | Voice selection |
| Speed | 0.5 – 2.0 | Playback speed |
| Auto-play | On / Off | Auto-speak agent responses |
| Skip code blocks | On (default) | Don’t read code aloud |
STT settings
Section titled “STT settings”| Setting | Options | Description |
|---|---|---|
| Provider | Local (faster-whisper) / OpenAI Whisper / ElevenLabs Scribe | STT engine |
| Language | (locale) | Recognition language |
| Auto-send | On / Off | Send immediately after recording stops |
Privacy notes
Section titled “Privacy notes”- Microphone access is browser-gated — you grant permission per site
- Audio is processed locally (browser STT) or sent to the selected provider (ElevenLabs, Hume, Whisper)
- Snippbot does not record or store your voice
- Review the privacy policy of your chosen TTS/STT provider
Troubleshooting
Section titled “Troubleshooting”Microphone not working
Section titled “Microphone not working”- Check browser microphone permission:
chrome://settings/content/microphone - Ensure no other app has exclusive microphone access
- Try refreshing the page and granting permission again
TTS plays but sounds wrong
Section titled “TTS plays but sounds wrong”- Check the selected voice in Settings → Voice
- Reduce playback speed if the voice is too fast
- Verify the API key is valid (test at the provider’s website)
Transcription inaccurate
Section titled “Transcription inaccurate”- Speak clearly and close to the microphone
- Switch to Whisper for better accuracy (requires OpenAI key)
- Set the correct language in STT settings