Skip to content

fix(voice): ignore markup tags for transcript pacing#1989

Open
rosetta-livekit-bot[bot] wants to merge 1 commit into
mainfrom
polyps-prompted-adopting
Open

fix(voice): ignore markup tags for transcript pacing#1989
rosetta-livekit-bot[bot] wants to merge 1 commit into
mainfrom
polyps-prompted-adopting

Conversation

@rosetta-livekit-bot

@rosetta-livekit-bot rosetta-livekit-bot Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • pace synchronized transcripts using visible text with expressive markup stripped
  • keep forwarding raw text so downstream transcript outputs can strip/surface markup as before
  • add the source-equivalent regression for markup fragments adding no pacing delay

Testing

  • pnpm exec prettier --check agents/src/voice/transcription/synchronizer.ts agents/src/voice/transcription/synchronizer.test.ts .changeset/markup-pacing-tags.md
  • pnpm vitest run agents/src/voice/transcription/synchronizer.test.ts
  • pnpm build:agents
  • cue-cli runtime validation with temporary voice agent: agent_state_changed(.new_state="AS_SPEAKING") -> conversation_item_added(.item.message.role="ASSISTANT")[30s]

Ported from livekit/agents#6350

Original PR description

A markup tag with spaces in its attributes (e.g. Inworld's ) is split across word tokens by the synchronizer's word stream, so the per-token split_all_markup() never saw a complete tag and paced every fragment as if it were spoken — delaying the transcript ~3-4s per expressive sentence, compounding over the turn.

Give each segment a stateful TranscriptMarkupStripper (already used by the room output for the same cross-chunk problem) so tag fragments are held until the tag completes and contribute zero hyphens to pacing. Raw tokens are still forwarded unchanged for downstream stripping and lk.expression extraction.

@rosetta-livekit-bot rosetta-livekit-bot Bot requested a review from a team as a code owner July 7, 2026 22:08
@changeset-bot

changeset-bot Bot commented Jul 7, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 3ae70d7

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 36 packages
Name Type
@livekit/agents Patch
@livekit/agents-plugin-anam Patch
@livekit/agents-plugin-anthropic Patch
@livekit/agents-plugin-assemblyai Patch
@livekit/agents-plugin-baseten Patch
@livekit/agents-plugin-bey Patch
@livekit/agents-plugin-cartesia Patch
@livekit/agents-plugin-cerebras Patch
@livekit/agents-plugin-deepgram Patch
@livekit/agents-plugin-did Patch
@livekit/agents-plugin-elevenlabs Patch
@livekit/agents-plugin-fishaudio Patch
@livekit/agents-plugin-google Patch
@livekit/agents-plugin-hedra Patch
@livekit/agents-plugin-hume Patch
@livekit/agents-plugin-inworld Patch
@livekit/agents-plugin-lemonslice Patch
@livekit/agents-plugin-liveavatar Patch
@livekit/agents-plugin-livekit Patch
@livekit/agents-plugin-minimax Patch
@livekit/agents-plugin-mistral Patch
@livekit/agents-plugin-mistralai Patch
@livekit/agents-plugin-neuphonic Patch
@livekit/agents-plugin-openai Patch
@livekit/agents-plugin-perplexity Patch
@livekit/agents-plugin-phonic Patch
@livekit/agents-plugin-resemble Patch
@livekit/agents-plugin-rime Patch
@livekit/agents-plugin-runway Patch
@livekit/agents-plugin-sarvam Patch
@livekit/agents-plugin-silero Patch
@livekit/agents-plugin-soniox Patch
@livekit/agents-plugin-tavus Patch
@livekit/agents-plugins-test Patch
@livekit/agents-plugin-trugen Patch
@livekit/agents-plugin-xai Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants