Pipecat v1.15.0 teaches your voice bot to laugh and match the caller’s mood

2 hours ago

Pipecat v1.15.0 adds expressive conversation (alpha): the LLM writes tags for tone, laughs, pauses and stressed words, and nine TTS providers perform them. The LLM also hears how the user sounded, Pipecat Tone reads emotion and sarcasm, and Tavus avatars change expression. Also: a classifier that decides when the user is done, stop strategies that now must all agree, AssemblyAI TTS, faster OpenAI Responses after interruptions and Bedrock reasoning. Release notes: https://github.com/pipecat-ai/pipecat/releases/tag/v1.15.0 CHANGELOG: https://github.com/pipecat-ai/pipecat/blob/v1.15.0/CHANGELOG.md Full diff: https://github.com/pipecat-ai/pipecat/compare/v1.14.0...v1.15.0 Examples: https://github.com/pipecat-ai/pipecat/tree/v1.15.0/examples/expressive-conversation Docs: https://docs.pipecat.ai

Ask about this presentation

Chapters

  1. 0:00Pipecat v1.15.0
  2. 0:11Expressive conversation
  3. 0:12The tags
  4. 0:24TTS providers
  5. 0:35The LLM learns the tags
  6. 0:48Expression policy
  7. 0:59Perception
  8. 1:08Pipecat Tone
  9. 1:19Tavus
  10. 1:28Turn-taking
  11. 1:29Classifier turns
  12. 1:40Stop strategies agree
  13. 1:52Turns end on the latest words
  14. 2:03Services
  15. 2:04AssemblyAI TTS
  16. 2:16Responses after interruptions
  17. 2:29Bedrock reasoning
  18. 2:43Upgrade notes
Show transcript
  1. Pipecat v1.15.0 adds expressive conversation. Your LLM writes tags into its reply, and the TTS performs them as a warm tone, a laugh or a pause.

    Slide text
    Pipecat Expressive conversation

    Pipecat v1.15.0 teaches your voice bot to laugh and match the caller’s mood

    The LLM writes expression tags into its reply, and the TTS performs them

    CHANGELOG.md · 1.15.0 · Added · #6303
  2. Expressive conversation.

    Slide text
    Pipecat
    01
  3. A delivery tag such as excited holds until the next one. Others add a laugh, a pause or a stressed word. It's alpha, so expect the syntax to change.

    Slide text
    Pipecat 01 · Expressive conversation

    Tags set the tone, add a sound or stress a word

    <<excited>> Sets the delivery until the next tag
    [[laugh]] A sound at one point
    [[pause 500]] A pause, in milliseconds
    ^^today^^ Stresses one word
    <<slow: A B 7>> Says just these words slowly

    Alpha: the tag syntax and these APIs are likely to change between releases

    CHANGELOG.md · 1.15.0 · Added · #6303
  4. ElevenLabs, Cartesia, Fish Audio and MiniMax perform them, and so do five more. Only on certain models, and a tag a service can't perform is dropped with a warning.

    Slide text
    Pipecat 01 · Expressive conversation

    Nine TTS providers perform the tags

    ElevenLabs Cartesia Fish Audio MiniMax Inworld Soniox Mistral Gemini Azure

    Only on certain models, such as ElevenLabs v3 and v4 or Fish Audio S2

    Cartesia and MiniMax change speed only between sentences

    CHANGELOG.md · 1.15.0 · Added · #6303 #6444
  5. Your prompt doesn't have to describe the tags. Pipecat writes them into the system instruction, in each provider's own words, and rewrites it when you switch TTS.

    Slide text
    Pipecat 01 · Expressive conversation

    The LLM learns which tags your TTS can perform

    Prompt Written into its system instruction for you
    Names <> reaches ElevenLabs as “warmly”
    Switching Rebuilt when the active TTS service changes
    CHANGELOG.md · 1.15.0 · Added · #6315 #6439
  6. Guidance presets tell the bot when a tag fits. One matches the caller's mood and energy, one slows down for codes, and one adds an occasional breath.

    Slide text
    Pipecat 01 · Expressive conversation

    An expression policy says when to use them

    Match style Answers in the user’s mood and energy
    Slow for details Says a code or a number slowly
    Breathe An audible breath before a long sentence, at most once a reply
    CHANGELOG.md · 1.15.0 · Added · #6315 #6385
  7. It works in the other direction too. Each user turn can carry a tone label with a confidence, written at the head of the message.

    Slide text
    Pipecat 01 · Expressive conversation

    The LLM now hears how the user sounded

    ([tone frustrated=0.86, neutral=0.10]) Can you tell me where my order is? The user message the LLM receives
    CHANGELOG.md · 1.15.0 · Added · #6319
  8. Pipecat Tone does both jobs on the CPU. Its reader judges emotion and sarcasm in each turn, and its tagger adds tags to plain LLM replies.

    Slide text
    Pipecat 01 · Expressive conversation

    Pipecat Tone reads the caller and can write the bot’s tags

    • Reader: likeliest emotions and sarcasm, against the bot’s last reply
    • Tagger: writes the tags for an LLM’s plain replies
    • Both run on the CPU, from Hugging Face
    CHANGELOG.md · 1.15.0 · Added · #6319 #6385
  9. Tavus video avatars pick up the same tags. When the bot speaks warmly, the replica's face shows happiness, timed to the words.

    Slide text
    Pipecat 01 · Expressive conversation

    A Tavus avatar’s face now follows the bot’s tone

    warm happiness
    angry anger
    Any other mood neutral
    CHANGELOG.md · 1.15.0 · Added · #6291
  10. Turn-taking.

    Slide text
    Pipecat
    02
  11. If your LLM ignores the turn completion markers, a classifier can judge instead. At each pause it weighs the user's words against the bot's last line.

    Slide text
    Pipecat 02 · Turn-taking

    A classifier can now decide when the user is done talking

    complete Ends the turn
    short, long Holds it open a few seconds unless the user goes on
    CHANGELOG.md · 1.15.0 · Added · #5870
  12. This one changes behavior on upgrade. A turn analyzer next to a speech timeout now ends the turn only when both agree. Wake phrase bots change too.

    Slide text
    Pipecat 02 · Turn-taking

    Several stop strategies now all have to agree before a turn ends

    • Turn analyzer plus speech timeout waits for both
    • A single stop strategy behaves as before
    • A setting brings back first-to-decide

    ⚠ Wake phrase bots and custom stop strategies change too

    CHANGELOG.md · 1.15.0 · Changed · ⚠ #6346
  13. When the user talks again after the answer has started, that answer is cancelled. And Whisper-style services stop ending a turn on earlier words.

    Slide text
    Pipecat 02 · Turn-taking

    Turns now end on the user’s latest words

    • Speaking again cancels an answer already under way
    • Whisper, OpenAI, Groq and Moonshine STT stop ending turns early
    • A sound with no words gets a request to repeat
    CHANGELOG.md · 1.15.0 · Changed #6346 · Fixed #6446 #6422
  14. Services.

    Slide text
    Pipecat
    03
  15. AssemblyAI's streaming text-to-speech is now a Pipecat service. An interruption cancels speech without reconnecting, and an EU host keeps processing in Europe.

    Slide text
    Pipecat 03 · Services

    AssemblyAI now voices your bot, with per-word timings

    • Interruptions cancel speech without reconnecting
    • Sessions renew before their one-hour limit
    • An EU host processes data in the EU
    CHANGELOG.md · 1.15.0 · Added · #6322
  16. Interrupt a bot on OpenAI's Responses WebSocket and the next reply starts sooner. The interrupted response finishes on its own lane, and the new request still sends only the new messages.

    Slide text
    Pipecat 03 · Services

    OpenAI Responses over WebSocket replies sooner after an interruption

    The next request no longer waits for the interrupted one to finish

    CHANGELOG.md · 1.15.0 · Performance · #6174
  17. Amazon Nova models on Bedrock wrote their reasoning into the answer, so voice bots spoke it. That reasoning now arrives as thought frames, and Claude on Bedrock keeps its reasoning across tool calls.

    Slide text
    Pipecat 03 · Services

    Bedrock voice bots stop reading Nova’s thinking aloud

    • Claude and Nova 2 reasoning arrives as thought frames
    • Claude keeps its reasoning across tool calls
    • Nova v1 thinking blocks no longer reach the TTS
    CHANGELOG.md · 1.15.0 · Added, Fixed · #6229
  18. I'd try expressive conversation first on a bot that reads out order numbers, with the slow for details preset, and keep it on a branch while it's alpha. The upgrade steps are in the Pipecat v1.15.0 release notes.

    Slide text
    Pipecat 03 · Services

    Try expressive conversation first on a bot that reads out codes

    Upgrade notes Pipecat v1.15.0 release notes github.com/pipecat-ai/pipecat/releases/tag/v1.15.0
    CHANGELOG.md · 1.15.0

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built with ❤️ in New York