Utterlane Live
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Utterlane Livewait for the next turn, then reply out loud"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
https://github.com/user-attachments/assets/479a4c5e-43c9-4d59-802d-701c07f39b6d
Voice assistants assume there is one user. Real rooms have several. Utterlane Live keeps track of the people talking — by name when they introduce themselves, as "Person 3" when they don't — so your agent knows who asked, who answered, and when to stay quiet.
Features
Hands-free conversation — voice activity detection, local Whisper speech-to-text, streaming local text-to-speech, interrupt it any time by talking (barge-in).
Speaker naming from speech — "I'm Tuncer" names a voice; "Ahmet, go ahead" makes the next new voice Ahmet? (confirmed after a couple of turns); "I'm not Ahmet, I'm Mehmet" corrects it, retroactively. Voices that never introduce themselves become Person 3, Person 4…
Consent-first voice memory — it asks "Would you like me to recognize your voice next time?"; only a clear spoken yes right after the question stores the voice print, AES-256-GCM encrypted with a key kept in your OS keychain. Delete any time.
Group etiquette — alone, it answers everything; in a group it only speaks when addressed ("Lena, …"), and never cuts in when you hand the floor to someone else.
Bring your own brain — OpenAI, OpenClaw, Hermes Agent, Ollama, LM Studio, any OpenAI-compatible server, or your own webhook. Or none at all (listen-only).
MCP server built in — any MCP client (OpenClaw, Hermes, Claude, Cursor, Open WebUI…) can read the room (
recent_turns,wait_for_next_turn,list_speakers) and speak (speak).Only introduced people can command your agent — configurable (
all,named,enrolled), on by default for tool-using agents.Runs on ordinary computers — Windows 10/11 (x64), macOS 14+ on Apple Silicon and Linux (x86_64); an NVIDIA GPU makes it faster but is not required. Turkish and English.
Related MCP server: VoxMesh
Quick start
Windows — download the ZIP (or git clone), then double-click Utterlane.cmd.
The first run installs everything into that folder and opens the app.
git clone https://github.com/tuncertimur/utterlane-live
cd utterlane-live
.\Utterlane.cmdmacOS / Linux
git clone https://github.com/tuncertimur/utterlane-live
cd utterlane-live
./utterlane.shThe installer puts a private copy of uv and Python 3.12
inside the folder (nothing system-wide), picks the CUDA or CPU build automatically, and
downloads the models it needs, hash-verified: about 1 GB on a CPU-only computer, about 2 GB
with an NVIDIA GPU (see docs/MODELS.md). Then open
http://127.0.0.1:8765, press Start once (browsers need one click for audio) and talk.
To give it a brain, copy .env.example to .env and choose one block — for example
OPENAI_API_KEY=…, or UTTERLANE_BRAIN=ollama with UTTERLANE_BRAIN_MODEL=qwen3:8b for a
free, fully local setup. Without a brain it still transcribes and labels speakers.
.env is git-ignored; keys can also live in config.env in the data folder (the doctor
command prints where), so they never sit in a folder you might zip or share.
Options go after the launcher (.\Utterlane.cmd … on Windows, ./utterlane.sh … elsewhere):
./utterlane.sh --language en # English (default: Turkish)
./utterlane.sh --voice george # pick a voice (docs/MODELS.md)
./utterlane.sh doctor # check the installationConnect your agent
Your agent | Use it as the brain ( | Give it the room as tools (MCP) |
OpenClaw |
|
|
Hermes Agent |
|
|
Claude Code | — |
|
Ollama / LM Studio |
| — |
Anything else |
| any MCP client, or the REST API |
An Agent Skill teaches agents how to use the room:
npx skills add tuncertimur/utterlane-live -g -a openclaw hermes-agent claude-code codex.
Full setup: docs/INTEGRATIONS.md.
How it works
browser mic ──► 16 kHz PCM ──► VAD (Silero) ──► one turn
├─► Whisper (local GPU/CPU) ──────► text
└─► voice print (TitaNet-L + ResNet34, local)
└─► who? known / new "Person N" / unclear
"I'm Tuncer", "Ahmet, go ahead", "I'm not Ahmet" ──► names (text) + consent ──► encrypted profiles
[Speaker: Tuncer] text ──► brain (OpenAI / OpenClaw / Hermes / local / webhook) ──► reply
reply ──► sentence chunks ──► Pocket TTS (local, streaming) ──► browser speaker (barge-in aware)
MCP / REST: recent_turns · wait_for_next_turn · list_speakers · speakOne microphone, several people: each turn is embedded with two speaker models and matched against the people heard so far; a fast hand-off inside one segment is split at the speaker change.
Uncertain? It says Unclear instead of guessing. Very short turns ("yes", "hm") are attributed to the previous speaker as a marked guess.
Your agent never hears audio — only text with speaker labels.
Performance (measured)
Measured on consented recordings of two Turkish speakers plus public FLEURS voices (Windows 11, i9-10900X, RTX 3080). Your room and microphone will differ.
Result | |
Speaker labels on real voices, real models | 13/13 turns right (two named people + two unknown voices) |
30 randomized multi-speaker sessions | 93.6 % right, 1.7 % "unclear"; the two named people were never confused |
Turkish speech-to-text, Whisper large-v3-turbo (GPU) | WER 0.11 · 0.34 s per turn |
…same model on CPU (int8, 8 threads) | WER 0.11 · real-time factor 0.6 |
…Whisper small on CPU | WER 0.27 · real-time factor 0.23 |
Time from end of speech to first spoken reply (GPU + gpt-6-luna) | 2.0–2.6 s |
The model is chosen automatically: large-v3-turbo with an NVIDIA GPU or a CPU with
≥ 16 threads, otherwise small (set UTTERLANE_STT_MODEL to override).
Privacy and safety
Audio, transcripts and voice prints stay on your computer. A brain only receives conversation text with speaker labels.
Voice prints are stored only after a spoken yes, encrypted (AES-256-GCM, key in Windows Credential Manager / macOS Keychain / Secret Service), and can be deleted in the UI or with
./utterlane.sh profiles delete-all(.\Utterlane.cmd profiles delete-allon Windows).A voice match is a label, not authentication. Recordings or cloned voices can fool it. Don't let it unlock anything sensitive; keep tool-using agents on a restricted profile.
The server listens on
127.0.0.1only. Requests from other websites are rejected; setUTTERLANE_API_TOKENbefore exposing it on a network. Details: SECURITY.md.
Configuration
Everything is optional; see .env.example. Common settings:
Variable | Default | |
|
|
|
|
|
|
|
| who may trigger replies |
|
|
|
|
| the wake name |
|
| see docs/MODELS.md |
|
|
|
|
|
Limitations
Two people talking at the same time can't be separated with one microphone; such turns may be marked unclear.
Unknown voices that sound alike can be merged into one "Person N".
Thresholds were calibrated on clean, consented recordings plus public FLEURS voices; a noisy room may need tuning (
config.SpeakerThresholds).Turkish and English today. Pocket TTS also speaks German, French, Spanish, Italian, Portuguese and Dutch, but naming phrases are only implemented for Turkish and English.
Contributing
Issues and pull requests are welcome — see CONTRIBUTING.md. Please report security problems privately (SECURITY.md).
License
Apache-2.0 © 2026 Tuncer Timur. Models are downloaded separately and keep their own licenses (MIT, CC-BY-4.0) — see NOTICE and docs/MODELS.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Speech-to-Text
Shared room so a human's AI agents meet over MCP: rooms, lounge, files, knowledge.
Hosted text-to-speech MCP server: 66 voices in 9 languages, long-form narration, podcasts.
MCP server for Text-to-Speech
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients to speak by running local voice models using Chatterbox Turbo TTS or Kokoro TTS, with support for voice cloning, paralinguistic tags, and multiple voices.27 npm13MIT
- AlicenseNot gradedqualityBmaintenanceEnables voice-first interactions with AI agents and MCP tools, supporting speech input/output, STT/TTS, and a provider-independent agent core.1MIT
- AlicenseNot gradedqualityAmaintenanceAdds voice conversation capabilities to AI agents via MCP, enabling local speech recognition and synthesis with tools like speak, listen, and ask_by_voice for interactive voice interactions.MIT
- AlicenseAqualityBmaintenanceEnables MCP clients to synthesize text into speech locally and play it through the machine's audio, with selectable voices and playback speed.250 PyPIApache 2.0