VoiceThere 0.3.0

October 21, 2026 · release

@voicethere/agent 0.10.0 · @voicethere/cli 0.16.9 · @voicethere/client 0.11.9

VoiceThere 0.3.0 is the third production release of the hosted platform. The biggest change is under the hood: VoiceThere speech now runs on its own servers, and that makes replies faster and transcripts more accurate when many calls run at once. On top of that, callers can switch language in the middle of a call, calls survive short network drops, and the dashboard shows what happened in every deploy and every turn.

Dashboard: app.voicethere.io

Speech on its own servers

VoiceThere speech-to-text and text-to-speech no longer run inside your agent's worker node. They run on dedicated speech servers that scale with the number of calls, so a busy agent no longer slows down the transcript, and speech capacity grows as calls come in.

We ran the same test against the previous release and this one: 30 callers starting at once and talking for ten minutes.

More calls per worker. Each agent worker node now handles 15 concurrent voice sessions with VoiceThere speech-to-text and text-to-speech, up from 10. That is 45 concurrent voice sessions on Advanced (was 30) and 120 on Ultimate (was 80). A project picks up the new limit on its next deploy.

Published latency. Under heavy load, with many calls running at once on VoiceThere speech, a reply starts a median of 1,766 ms after the caller stops talking, and time to first audio is a median of 130 ms. About 1,500 ms of the first number is the end-of-speech wait you configure, not compute. The benchmarks page also covers ElevenLabs, Cartesia, Groq, OpenAI and Fish Audio, with the method and the commands to reproduce it.

Built-in speech is now called voicethere everywhere: SDK, API, dashboard, CLI and docs. The old ids local-sherpa and cluster-sherpa still work when you set voice settings through the API or CLI 0.16.9.

More: Speech latency benchmarks · VoiceThere speech · Configure the end-of-turn wait

Switch language in the middle of a call

A caller can now change language mid-call and your agent follows, on the same connection. Turn on automatic switching with languageId.autoSwitch.enabled. After the caller stops talking, VoiceThere identifies the spoken language, starts the speech models for the new language, holds the caller's words and replays them into the new recognizer, so nothing is misheard. Your agent receives the transcript in the new language and answers in it.

If the new language takes a moment to start, the caller hears a short ready message (built-in texts for English, German, Spanish, French, Italian, Portuguese, Dutch, Polish and Russian). A slow start is retried once, and a language that still cannot start is reported to your agent as language_unavailable instead of being transcribed as the old language. Your agent can also switch on its own with setVoiceLanguage. Automatic switching needs VoiceThere speech for both speech-to-text and text-to-speech. A full switch, where both the recognizer and the voice change, works for English, German, Spanish, French, Russian and Chinese.

More: Language switching

Calls that survive network drops

A call now rides out a network drop of about 10 seconds with the default 15 second reconnect window, and about 25 seconds if you raise the window to 30. Before, a drop of roughly 5 seconds ended the call. The conversation continues on the same session, and a call that never comes back is billed up to the point it was lost. The window is the project setting connection.reconnectWindowSec (15 to 30 seconds), and the full behavior needs @voicethere/client 0.11.9.

The voice runtime also got fixes that callers notice without knowing why:

More: Connection drops and the reconnect window · Advanced voice settings

Deploys you can read

Every deploy now has a timeline: requested, started, new version ready, new calls switched, previous version finishing its calls, and what a force deploy ended. Open the Deployments tab, or run voicethere deployments list and voicethere deployments show. The list shows who requested each deploy, and events are kept for 90 days.

A failed deploy now says whose problem it is. If your agent throws while loading, the deploy fails as AGENT_START_FAILED and the previous version keeps serving (before, the broken version went live and every call failed). If the failure is on our side, the dashboard offers an Open a ticket email with the ids support needs.

Force rollouts now do what the name says: calls on older versions end within 15 seconds of the new version being ready, with end reason force_rollout.

More: Deployment history · Rollout modes · Why a deploy failed

A redesigned dashboard

The dashboard has a new layout: sidebar navigation, a project header with live status, a "Get this project live" checklist on new projects, and a Settings tab that holds runner, voice, billing and environment settings. Press ⌘K to jump anywhere.

Each session has a timeline that puts the conversation, logs, system events and errors in one list. Every caller and agent row shows the turn details: for the caller, speech-to-text vendor and model, language, speech length and why the turn ended; for the agent, voice, characters, time to first audio and played time. Each row also shows an estimated credit cost.

The new Metrics area (Overview, Sessions, Voice, Agent) has zoomable charts for response time, finalize delay and abandoned turns, and the project Usage page shows characters, credits and sessions for each voice. The create-project list is built from the installed @voicethere/agent, so new templates appear without a platform release.

More: Dashboard guide · Turn details · Project metrics · Voice usage per project · Agent templates

More voices and better speech

Fish Audio joins the cloud vendors, with Drama 3 for text-to-speech and transcribe-1 for speech-to-text. Bring your own Fish key:

voicethere projects voice set --stt-provider fishaudio --tts-provider fishaudio --stt-model transcribe-1 --tts-model drama-3

Fish speech-to-text sends no partial transcripts, so barge-in uses voice activity detection unless the project sets vad.bargeIn.requireSttPartial.

Repeated agent replies (greetings, "one moment please") now play from memory, with a project toggle to turn that off. Replies that start with a lowercase word after a period used to be read as one sentence and started about 150 ms late; the new tts.sentenceCase setting (default auto) fixes that without touching your text. The docs also explain how the end of a turn is decided, with a tuning table, and how to control pauses and pronunciation with Piper voices.

More: Advanced voice settings · Fish Audio · Piper pauses and pronunciation

Billing

Built-in speech is billed per use. Speech-to-text costs 5 credits per minute of audio. Text-to-speech costs 5, 15 or 100 credits per 1,000 characters for low, medium and high quality voices. Medium is the default for voices without a quality label, and high quality voices, including the Chinese voice, cost more.

Cloud vendor legs create no speech credit row. A session that uses a cloud vendor for one leg and VoiceThere speech for the other pays only for the VoiceThere leg, and the meter follows a vendor switch in the middle of a call. To see the split, open the project Usage page: its Voice usage section lists each voice with its quality tier and the characters it spoke.

More: Speech pricing

Packages

@voicethere/agent 0.10.0, @voicethere/cli 0.16.9 and @voicethere/client 0.11.9 are on npm. The agent exposes sttVendor and ttsVendor with provider: "voicethere", and setVoiceLanguage and prepareVoiceLanguage take one request shape for every vendor. The agent can stop storing turns for one session while it collects a PIN or card number (disableConversationHistory), and @voicethere/client can embed a widget from the chat key alone.

More: npm packages · Conversation history · Embed widget

Try it

npm install -g @voicethere/cli@latest
npm install @voicethere/agent@latest @voicethere/client@latest
voicethere login
voicethere deploy --wait
voicethere deployments list

Then open a session in the dashboard and look at the turn details on its timeline.

Upgrade notes

Thanks to everyone who sent traces and load-test reports this month. The next release is about building interactive agent experiences, with an LLM integration template and a conversation builder for people who would rather not write code.

Similar posts

← All posts