From 1967a719353d721184baf56f5366899eb54b4b79 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Sat, 21 Mar 2026 13:55:34 +0530 Subject: [PATCH] feat: add rtf log when user speaks when muted --- .../pipecat/realtime_feedback_observer.py | 44 +++++++++----- .../pipecat/recording_router_processor.py | 16 +++-- api/services/pipecat/run_pipeline.py | 2 + api/services/workflow/pipecat_engine.py | 8 ++- docs/configurations/interruption.mdx | 57 ++++++++++++++++++ docs/docs.json | 1 + docs/images/allow-interruption.png | Bin 0 -> 113166 bytes pipecat | 2 +- .../[runId]/components/RealtimeFeedback.tsx | 6 ++ .../[runId]/components/UnifiedTranscript.tsx | 1 + .../components/shared/TranscriptMessage.tsx | 30 ++++++++- .../run/[runId]/hooks/useWebSocketRTC.tsx | 53 ++++++++++++++-- .../[runId]/utils/processTranscriptEvents.ts | 7 ++- 13 files changed, 196 insertions(+), 31 deletions(-) create mode 100644 docs/configurations/interruption.mdx create mode 100644 docs/images/allow-interruption.png diff --git a/api/services/pipecat/realtime_feedback_observer.py b/api/services/pipecat/realtime_feedback_observer.py index ff12272..2229069 100644 --- a/api/services/pipecat/realtime_feedback_observer.py +++ b/api/services/pipecat/realtime_feedback_observer.py @@ -30,6 +30,8 @@ if TYPE_CHECKING: from api.services.pipecat.in_memory_buffers import InMemoryLogsBuffer from pipecat.frames.frames import ( + BotStartedSpeakingFrame, + BotStoppedSpeakingFrame, CancelFrame, EndFrame, ErrorFrame, @@ -37,11 +39,12 @@ from pipecat.frames.frames import ( FunctionCallResultFrame, InterimTranscriptionFrame, InterruptionFrame, - LLMTextFrame, MetricsFrame, StopFrame, TranscriptionFrame, - TTSSpeakFrame, + TTSTextFrame, + UserMuteStartedFrame, + UserMuteStoppedFrame, ) from pipecat.metrics.metrics import TTFBMetricsData from pipecat.observers.base_observer import BaseObserver, FramePushed @@ -174,6 +177,30 @@ class RealtimeFeedbackObserver(BaseObserver): await self._handle_interruption() return + # Bot speaking state - WS only (ephemeral state signals, not persisted) + if isinstance(frame, BotStartedSpeakingFrame): + await self._send_ws( + {"type": RealtimeFeedbackType.BOT_STARTED_SPEAKING.value, "payload": {}} + ) + return + if isinstance(frame, BotStoppedSpeakingFrame): + await self._send_ws( + {"type": RealtimeFeedbackType.BOT_STOPPED_SPEAKING.value, "payload": {}} + ) + return + + # User mute state - WS only (ephemeral state signals, not persisted) + if isinstance(frame, UserMuteStartedFrame): + await self._send_ws( + {"type": RealtimeFeedbackType.USER_MUTE_STARTED.value, "payload": {}} + ) + return + if isinstance(frame, UserMuteStoppedFrame): + await self._send_ws( + {"type": RealtimeFeedbackType.USER_MUTE_STOPPED.value, "payload": {}} + ) + return + # Skip already processed frames (frames can be observed multiple times) if frame.id in self._frames_seen: return @@ -206,20 +233,9 @@ class RealtimeFeedbackObserver(BaseObserver): }, } ) - # Handle TTSSpeakFrame (e.g. greeting) - send immediately via WS only - # Final turn text is persisted via on_assistant_turn_stopped to avoid duplication - elif isinstance(frame, TTSSpeakFrame): - await self._send_ws( - { - "type": RealtimeFeedbackType.BOT_TEXT.value, - "payload": { - "text": frame.text, - }, - } - ) # Handle bot TTS text - respect pts timing, WebSocket only # Complete turn text is persisted via register_turn_handlers - elif isinstance(frame, LLMTextFrame): + elif isinstance(frame, TTSTextFrame): message = { "type": RealtimeFeedbackType.BOT_TEXT.value, "payload": { diff --git a/api/services/pipecat/recording_router_processor.py b/api/services/pipecat/recording_router_processor.py index 59611ef..be4eb5b 100644 --- a/api/services/pipecat/recording_router_processor.py +++ b/api/services/pipecat/recording_router_processor.py @@ -29,6 +29,7 @@ from pipecat.frames.frames import ( TTSAudioRawFrame, TTSStartedFrame, TTSStoppedFrame, + TTSTextFrame, ) from pipecat.processors.frame_processor import FrameDirection, FrameProcessor @@ -98,11 +99,9 @@ class RecordingRouterProcessor(FrameProcessor): await self.push_frame(frame, direction) return - # --- Recording mode: buffer recording_id, suppress TTS --- + # --- Recording mode: accumulate recording_id silently --- if self._mode == "recording": self._recording_id_buffer += frame.text - frame.skip_tts = True - await self.push_frame(frame, direction) return # --- Detection mode: buffer until marker found --- @@ -114,13 +113,11 @@ class RecordingRouterProcessor(FrameProcessor): self._mode = "recording" marker_end = buffered_text.index(RECORDING_MARKER) + len(RECORDING_MARKER) - # Push buffered frames with skip_tts, extract recording_id from post-marker text + # Extract recording_id from post-marker text (don't push frames) cumulative = 0 for buf_frame, buf_dir in self._frame_buffer: - buf_frame.skip_tts = True frame_start = cumulative cumulative += len(buf_frame.text) - await self.push_frame(buf_frame, buf_dir) # Capture any recording_id text after the marker if cumulative > marker_end: @@ -183,6 +180,13 @@ class RecordingRouterProcessor(FrameProcessor): if self._mode == "recording": recording_id = self._recording_id_buffer.strip() if recording_id: + # Push accumulated text as TTSTextFrame for UI feedback via observer + await self.push_frame( + TTSTextFrame( + text=RECORDING_MARKER + self._recording_id_buffer, + aggregated_by="recording_router", + ) + ) await self._play_recording(recording_id) else: logger.warning( diff --git a/api/services/pipecat/run_pipeline.py b/api/services/pipecat/run_pipeline.py index deee846..c98a46b 100644 --- a/api/services/pipecat/run_pipeline.py +++ b/api/services/pipecat/run_pipeline.py @@ -526,6 +526,7 @@ async def _run_pipeline( node_name: str, previous_node_id: Optional[str], previous_node_name: Optional[str], + allow_interrupt: bool = False, ) -> None: """Send node transition event to logs buffer and optionally via WebSocket.""" # Update current node on the buffer so subsequent events are tagged @@ -538,6 +539,7 @@ async def _run_pipeline( "node_name": node_name, "previous_node_id": previous_node_id, "previous_node_name": previous_node_name, + "allow_interrupt": allow_interrupt, }, } # Send via WebSocket if available diff --git a/api/services/workflow/pipecat_engine.py b/api/services/workflow/pipecat_engine.py index d95c832..4649ec0 100644 --- a/api/services/workflow/pipecat_engine.py +++ b/api/services/workflow/pipecat_engine.py @@ -67,7 +67,7 @@ class PipecatEngine: call_context_vars: dict, workflow_run_id: Optional[int] = None, node_transition_callback: Optional[ - Callable[[str, str, Optional[str], Optional[str]], Awaitable[None]] + Callable[[str, str, Optional[str], Optional[str], bool], Awaitable[None]] ] = None, embeddings_api_key: Optional[str] = None, embeddings_model: Optional[str] = None, @@ -521,7 +521,11 @@ class PipecatEngine: if self._node_transition_callback: try: await self._node_transition_callback( - node_id, node.name, previous_node_id, previous_node_name + node_id, + node.name, + previous_node_id, + previous_node_name, + node.allow_interrupt, ) except Exception as e: # Log but don't fail - feedback is non-critical diff --git a/docs/configurations/interruption.mdx b/docs/configurations/interruption.mdx new file mode 100644 index 0000000..56baa1f --- /dev/null +++ b/docs/configurations/interruption.mdx @@ -0,0 +1,57 @@ +--- +title: "Interruption Handling" +description: "Control whether users can interrupt the bot while it is speaking by configuring the Allow Interruption toggle on each node." +--- + +## Overview + +Interruption handling controls whether the user can "barge in" and interrupt the bot while it is speaking. This is configured **per node** in the workflow editor, giving you fine-grained control over conversation flow. + +![Allow Interruption Toggle](../images/allow-interruption.png) + +## How It Works + +Each node in your workflow has an **Allow Interruption** toggle: + +- **Disabled (default)** — The bot finishes its entire response before accepting user input. The user's microphone is temporarily muted while the bot speaks. +- **Enabled** — The bot stops speaking as soon as the user starts talking, and immediately processes their input. This creates a natural, conversational experience. + + +When interruption is disabled and the user tries to speak during bot speech, a one-time warning appears in the live transcript indicating that interruption is disabled for that step. + + +## When to Disable Interruption + +Disabling interruption is useful when the bot needs to deliver a complete message without being cut off: + +- **Legal disclaimers** — Ensure the full disclaimer is spoken before proceeding. +- **Critical instructions** — Step-by-step directions that lose meaning if partially heard. +- **Greeting or introduction** — Let the bot finish its opening before the user responds. +- **Confirmation summaries** — Read back important details (appointment times, order totals) in full. + +## When to Enable Interruption + +Keep interruption enabled for interactive conversation stages: + +- **Q&A or objection handling** — Let the user jump in naturally. +- **Open-ended discussion** — Feels more human when either party can interject. +- **Long responses** — Allow the user to redirect if the bot goes off track. + +## Configuring Interruption + +1. Open your workflow in the **Voice Agent Builder**. +2. Select the node you want to configure. +3. Toggle **Allow Interruption** on or off in the node settings panel. +4. Save your workflow. + +You can set different interruption behavior for each node. For example, disable interruption on your Start Node greeting but enable it on all subsequent Agent Nodes. + +## What the User Experiences + +| Interruption | Bot Speaking | User Speaks | Result | +|---|---|---|---| +| Enabled | Yes | Yes | Bot stops, processes user input | +| Disabled | Yes | Yes | Bot continues, user input is ignored until bot finishes | +| Either | No | Yes | User input is processed normally | + +When interruption is disabled, the platform mutes the user's audio input while the bot is speaking. Once the bot finishes, the microphone is automatically unmuted and the user can respond normally. \ No newline at end of file diff --git a/docs/docs.json b/docs/docs.json index df1ea54..0c3ef4b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -45,6 +45,7 @@ "configurations/voice", "configurations/transcriber", "configurations/api-keys", + "configurations/interruption", "configurations/tracing" ] }, diff --git a/docs/images/allow-interruption.png b/docs/images/allow-interruption.png new file mode 100644 index 0000000000000000000000000000000000000000..d7cf78aa75b516e6d9c9ec03b176a39aac6d52db GIT binary patch literal 113166 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%0A;#Z2@)M`R**vsBNMOQDePIb6S^c%R$ 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

Xc-^CQ9? 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

    KYWiT+Em1+)@7RE># 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 Mj*)h`reo;;0j + +
    +
    + Interruption Disabled +
    +
    + {message.text} +
    + + Learn more + +
    + + ); + } + // Pipeline error - show as a red alert if (message.type === 'pipeline-error') { return ( diff --git a/ui/src/app/workflow/[workflowId]/run/[runId]/hooks/useWebSocketRTC.tsx b/ui/src/app/workflow/[workflowId]/run/[runId]/hooks/useWebSocketRTC.tsx index 8446509..a2b4733 100644 --- a/ui/src/app/workflow/[workflowId]/run/[runId]/hooks/useWebSocketRTC.tsx +++ b/ui/src/app/workflow/[workflowId]/run/[runId]/hooks/useWebSocketRTC.tsx @@ -18,7 +18,7 @@ interface UseWebSocketRTCProps { export interface FeedbackMessage { id: string; - type: 'user-transcription' | 'bot-text' | 'function-call' | 'node-transition' | 'ttfb-metric' | 'pipeline-error'; + type: 'user-transcription' | 'bot-text' | 'function-call' | 'node-transition' | 'ttfb-metric' | 'pipeline-error' | 'interrupt-warning'; text: string; final?: boolean; timestamp: string; @@ -27,6 +27,7 @@ export interface FeedbackMessage { // Node transition fields nodeName?: string; previousNode?: string; + allowInterrupt?: boolean; // TTFB metric fields ttfbSeconds?: number; processor?: string; @@ -82,6 +83,12 @@ export const useWebSocketRTC = ({ workflowId, workflowRunId, accessToken, initia const pc_id = useRef(generateSecureId()); + // Mute/speaking state tracking refs (ephemeral signals, not rendered directly) + const userMutedRef = useRef(false); + const firstBotSpeechCompletedRef = useRef(false); + const currentAllowInterruptRef = useRef(undefined); + const interruptWarningShownRef = useRef(false); + // Get WebSocket URL from client configuration const getWebSocketUrl = useCallback(() => { // Get base URL from client configuration @@ -287,6 +294,24 @@ export const useWebSocketRTC = ({ workflowId, workflowRunId, accessToken, initia case 'rtf-user-transcription': { const transcription = message.payload; + + // Show one-time warning if user speaks while muted on a no-interrupt node + // Skip during initial bot greeting (muted by MuteUntilFirstBotComplete strategy) + if ( + !interruptWarningShownRef.current && + firstBotSpeechCompletedRef.current && + userMutedRef.current && + currentAllowInterruptRef.current === false + ) { + interruptWarningShownRef.current = true; + setFeedbackMessages(prev => [...prev, { + id: `interrupt-warning-${Date.now()}`, + type: 'interrupt-warning', + text: 'Interruption is disabled for this step. The bot will finish speaking before processing your input. You can enable interruption in the workflow editor.', + timestamp: new Date().toISOString(), + }]); + } + setFeedbackMessages(prev => { // Step 1: Finalize the last bot message (user started speaking) const messagesWithBotFinalized = prev.map((msg, idx) => { @@ -322,7 +347,7 @@ export const useWebSocketRTC = ({ workflowId, workflowRunId, accessToken, initia // Append to existing bot message return [ ...prev.slice(0, -1), - { ...last, text: last.text + message.payload.text } + { ...last, text: last.text + ' ' + message.payload.text } ]; } // Start new bot message @@ -368,13 +393,15 @@ export const useWebSocketRTC = ({ workflowId, workflowRunId, accessToken, initia } case 'rtf-node-transition': { - const { node_name, previous_node } = message.payload; + const { node_name, previous_node_name, allow_interrupt } = message.payload; + currentAllowInterruptRef.current = allow_interrupt; setFeedbackMessages(prev => [...prev, { id: `node-${Date.now()}`, type: 'node-transition', text: node_name, nodeName: node_name, - previousNode: previous_node, + previousNode: previous_node_name, + allowInterrupt: allow_interrupt, timestamp: new Date().toISOString(), }]); break; @@ -407,6 +434,24 @@ export const useWebSocketRTC = ({ workflowId, workflowRunId, accessToken, initia break; } + // Ephemeral state signals — update refs only, no UI messages + case 'rtf-bot-started-speaking': + break; + + case 'rtf-bot-stopped-speaking': + if (!firstBotSpeechCompletedRef.current) { + firstBotSpeechCompletedRef.current = true; + } + break; + + case 'rtf-user-mute-started': + userMutedRef.current = true; + break; + + case 'rtf-user-mute-stopped': + userMutedRef.current = false; + break; + default: logger.warn('Unknown message type:', message.type); } diff --git a/ui/src/app/workflow/[workflowId]/run/[runId]/utils/processTranscriptEvents.ts b/ui/src/app/workflow/[workflowId]/run/[runId]/utils/processTranscriptEvents.ts index 44ed9c5..5429ab2 100644 --- a/ui/src/app/workflow/[workflowId]/run/[runId]/utils/processTranscriptEvents.ts +++ b/ui/src/app/workflow/[workflowId]/run/[runId]/utils/processTranscriptEvents.ts @@ -4,7 +4,7 @@ */ export interface TranscriptEvent { - type: 'user-transcription' | 'bot-text' | 'function-call' | 'node-transition' | 'ttfb-metric' | 'pipeline-error'; + type: 'user-transcription' | 'bot-text' | 'function-call' | 'node-transition' | 'ttfb-metric' | 'pipeline-error' | 'interrupt-warning'; text: string; final?: boolean; timestamp: string; @@ -13,6 +13,7 @@ export interface TranscriptEvent { status?: 'running' | 'completed'; nodeName?: string; previousNode?: string; + allowInterrupt?: boolean; ttfbSeconds?: number; processor?: string; model?: string; @@ -28,6 +29,7 @@ export interface ProcessedMessage { functionName?: string; status?: 'running' | 'completed'; nodeName?: string; + allowInterrupt?: boolean; ttfbSeconds?: number; fatal?: boolean; } @@ -69,7 +71,7 @@ export function processTranscriptEvents(events: TranscriptEvent[]): ProcessedMes } else if (event.type === 'bot-text') { // Combine consecutive bot-text from the same turn if (currentBotText && currentBotText.event.turn === event.turn) { - currentBotText.text = currentBotText.text + event.text; + currentBotText.text = currentBotText.text + ' ' + event.text; } else { flushBotText(); currentBotText = { event, text: event.text }; @@ -144,6 +146,7 @@ function convertToProcessedMessage(event: TranscriptEvent, overrideText?: string functionName: event.functionName, status: event.status, nodeName: event.nodeName, + allowInterrupt: event.allowInterrupt, ttfbSeconds: event.ttfbSeconds, fatal: event.fatal, };