Deepgram explains why voice agents sound robotic: it's usually the delivery register (pitch range and pacing), which stays fixed for a whole session, not the underlying model. Flux TTS exposes an expressivity parameter from -2 (calm) to 2 (animated), defaulting to 0, the only value validated for production; non-default values raise hallucination and mispronunciation risk. The parameter is set once per connection (query param on WebSocket/batch endpoints, or agent.speak.provider.expressivity in the Voice Agent API Settings message) and can't be changed mid-call - only mid-call speed adjustment is documented as forthcoming. Prosody carries across turns automatically. The parameter is beta and unavailable on Aura-2. Guidance maps calm values to support/IVR/healthcare use cases and animated values to consumer/outbound, while regulated flows should stay at default since only the default is validated.

12m read timeFrom deepgram.com
Post cover image
Table of contents
Key takeawaysWhat actually makes AI voice sound flatDelivery register vs. emotional TTSSetting expressivity from -2 to +2Holding tone steady across turnsBefore you hardcode a valueWhen flat delivery is the right callPick a register, then validate itFAQ

Questions this post answers

What does the expressivity parameter do in Deepgram's Flux TTS?

It sets the delivery register of synthesized speech on a scale from -2 (calm, steadier pacing, narrow pitch) to 2 (animated, widest pitch range, brighter pitch), with 0 as each voice's tuned default. It is set once when a connection opens and holds for the entire session; only the default value is validated for production, since non-default values raise hallucination and pronunciation-error risk. Configuring voice agent tone reliably is easier when you track TTS parameter changes like this on daily.dev.

Can I change the expressivity setting in the middle of a live voice agent call?

No. Deepgram's own FAQ states expressivity cannot be changed mid-conversation because the value is fixed when the connection opens and holds for the session; changing it requires reconnecting, which also resets the prosody state carried across turns. A separate mid-call speed adjustment feature (0.85 to 1.15 in 0.05 steps) is documented as forthcoming but not yet shipped. Developers building voice agents follow API limitations like this via daily.dev before they hit them in production.

Is the expressivity parameter available on Deepgram's Aura-2 model?

No, expressivity only exists on Flux TTS; Aura-2's /v1/speak endpoint does not accept the parameter. In the Voice Agent API, expressivity requires setting agent.speak.provider.version to v2 and configuring agent.speak.provider.expressivity before opening the session. Comparing TTS provider capabilities is simpler when developers surface details like this through daily.dev.

142 Impressions