Back to Blog
Provider Integrations

Murf Word Timestamps: Reconcile Interrupted Voice Agent Playback

Implement Falcon 2 word timestamps with context IDs, playback accounting and interruption checks. Includes a free worksheet and current Burki support limits.

Meeran Malik
Article date:
9 min read

A voice agent can generate an entire answer while the caller hears only its opening words. When the caller interrupts, storing the whole answer as delivered creates a false conversation history. The next reply may assume the caller already heard a direction, price or qualification that never reached playback.

Murf added Falcon 2 word timestamps on October 9, 2026. The update provides word timing alongside streamed audio, with Chinese, Japanese and Korean locales excluded. It is a useful input to interruption accounting, rather than a new launch on this article's October 12 review date. Murf's dated release.

Burki's current editor does not expose Falcon 2 or a word-timestamp setting. Its Murf catalog still shows legacy FALCON and GEN2 choices. This is a direct-provider implementation guide and a review method for voice systems. It does not describe a Burki toggle, announce native support or report a completed provider call.

Download the free playback reconciliation worksheet. The examples below are fictional, and their times illustrate the method. No speech generation, caller test or benchmark was performed for this guide. The resource is free; production speech and calls have separate costs.

Keep four records instead of one delivered transcript

For each assistant turn, distinguish the text you requested, the audio the provider generated, the audio your application played, and what the caller demonstrably understood. These answer different questions.

RecordUseful evidenceWhat it cannot establish alone
Requested replyOriginal text and turn identifierWhich wording the synthesizer actually spoke
Generated speechAudio and provider word timingWhether the audio left the application's queue
Application playbackA playout position tied to that turnCaller hearing, attention or comprehension
Caller confirmationAn explicit readback or acknowledgment in contextConfirmation of a later action that was never completed

Treat the third row as a bounded application observation. A playback cursor is much better than counting received bytes, but a muted browser, disconnected headset or telephone media fault can still prevent hearing. Name your stored field playback_confirmed_prefix or another precise application term rather than customer_heard_every_word.

Generated word timing is joined to the application's playback position before interruption review

The diagram separates the provider timeline from the playback observation and the caller's later confirmation. It is a design illustration, not a recording of an executed call.

Set up the provider stream with an explicit context

First check that the intended voice and locale exist in the current Falcon catalog and that your account can use the required endpoint. Murf documents model=falcon-2 on its WebSocket path. The global hostname routes geographically; the legacy hostname has a different routing behavior. Keep credentials server-side and exclude authenticated connection URLs from public logs. Current WebSocket setup.

For a named context, send its voice configuration before its text. The identifier must match on both frames. Named contexts do not inherit another context's voice settings, so copying only the text frame can produce a fallback voice and warning. Context configuration contract.

An application would then send a text frame shaped like this, after configuring the same context:

{
  "context_id": "directions-001",
  "text": "Use the east entrance. The reception desk is on level two.",
  "add_word_timestamps": true,
  "end": true
}

The example is a request shape, not a tested client. add_word_timestamps belongs at the top level beside text; nesting it inside voice_config is silently ignored. The flag applies to the WebSocket connection, so a reused connection needs a deliberate policy for later turns. Advanced setting contract.

Use a context identifier that your own system can associate with the response being played. Do not use a business booking reference as the audio cancellation key. The audio turn and the business transaction need separate identifiers because an interruption can cancel speech without canceling a valid transaction, or vice versa.

Join timing frames to the correct audio turn

The API reference describes separate timestamp messages alongside audio, with context and trace identifiers. Your receiver must dispatch by message type rather than assume every JSON frame contains playable audio. Preserve warnings, errors and final messages in the turn record too. WebSocket API reference.

Word entries use start_s and end_s. Timing begins at zero for the first sentence in a context, and subsequent sentences continue that context's timeline. The returned words represent normalized speech: an amount or abbreviation may become several spoken words. Audio can be generated ahead of playback. Word timing behavior.

The practical consequence is to join on the actual context, not “the latest reply.” If audio from a canceled turn arrives after the next turn starts, a latest-reply variable can attach those words to the wrong response. Keep canceled contexts marked as closed to playback and prevent their later frames from reentering the queue.

Build the display from returned spoken tokens when available. Separately retain the original text for audit. Character offsets in the original sentence are a poor substitute for spoken-word boundaries when numbers, symbols and abbreviations expand. For a price readback, the meaningful unit is the complete amount, not an arbitrary character count.

Work through an interruption without inventing hearing

Suppose a fictional community center assistant says:

Use the east entrance. The reception desk is on level two.

In an illustrative timeline, the application reports playback through 1.10 seconds. The provider's word intervals place “east” at 0.72–0.98 seconds and “entrance” at 1.00–1.28 seconds. The caller interrupts during that second word: “Is there step-free access?”

Do not mark the entire first sentence delivered. Classify completed words through the cursor as played by the application, the crossing word as uncertain, and later words as unplayed. This conservative boundary is an application review rule. It helps avoid treating a partially played direction as a complete instruction, even when the provider documentation describes a simpler start-time cutoff.

The next response should address access using approved public information and, if needed, repeat the relevant entrance instruction. It should not say “As I already told you, use the east entrance” merely because that sentence was fully generated. If the center's access details are unknown, request staff help rather than infer them from the interrupted sentence.

For a payment amount, date or safety instruction, partial-word classification is still insufficient. Ask for the appropriate confirmation before treating the critical value as understood. The caller's question about access acknowledges a topic; it does not confirm every word of the prior direction.

Stop playback and cancel separately

At interruption, freeze the current context's playback observation, stop local playout and discard its remaining local queue. Send the provider cancellation for that context separately from any new text. Murf documents that text combined with clear is ignored, so the correction must start in a separate frame and context. Clear and context semantics.

There is an important documentation limit. The Context ID page contains both an older statement about started audio completing and a later instruction to discard pending context audio. The advanced guide also requires stopping playback and dropping received audio. Rely on those client-side safeguards; do not assume clear can retract bytes already delivered to your player or prove the old voice stopped at the caller. Context documentation, interruption guidance.

In your application, retain a cancellation marker long enough to reject late old-turn frames. Start the next reply with a new context and its own voice configuration. A provider acknowledgment, when available, can be logged as an additional event, but it must not overwrite the independent observation of when application playback stopped.

Check failure cases before a production trial

The worksheet turns these questions into an adaptable review:

  1. Do timestamps and audio carry the expected context, including when responses overlap?
  2. Does the application store its actual playout position, rather than the arrival time of a generated frame?
  3. Can a canceled context receive a late frame without restarting speech?
  4. Are a word crossing the stop position and an incomplete critical amount marked uncertain?
  5. Does the next turn use the caller's correction and avoid claiming unheard instructions were delivered?

Add separate cases for a missing timestamp frame, unsupported locale, a warning after malformed settings, a reconnect and a player that has no reliable cursor. If playback evidence is missing, keep the delivered prefix unknown. Reconstructing it from elapsed wall time would hide queue delay, buffering and device behavior.

Inspect failures as first-class results. A cleanly canceled request that never produced useful audio is different from a complete response. A transcript that looks tidy after the fact is different from a caller who received a coherent answer during the interruption.

Budget for generated audio and inspect Burki's available choices

Murf's rendered API Pay As You Go page, checked October 12, lists USD 0.01 per 1,000 characters for Falcon, consistent with its Falcon 2 model documentation. Verify your account's plan and billable-character rules before quoting a production total. Generated speech that is discarded after an interruption can still consume synthesis work; this guide does not establish a cancellation refund policy. Platform, recognition, LLM and telephone charges are additional components. Current API pricing, Falcon 2 model information.

Murf also distinguishes active streaming contexts from warm WebSocket connections. Its current public limits list different concurrency for US-East and global/regional endpoints on Free and Pay As You Go. Check the relevant account limit before planning simultaneous sessions, rather than assuming every open connection can synthesize at once. Provider rate limits.

In Burki, inspect Voice → Model and provider choices → Conversation engine, then Standard pipeline · advanced provider choices. The voice controls are under Speech settings → Advanced voice stack. Use the actual Voice provider and Voice model choices present. A custom voice identifier cannot add a missing model or a timing option.

For a business AI receptionist, the immediate useful practice is to review interrupted replies against caller corrections and confirmed actions. The interruption recovery guide covers that wider conversation behavior. This timestamp method adds a more precise playback record when the underlying integration supports it, while keeping unsupported native settings and unverified caller hearing visible.

Ready to try Burki?

Create an assistant and check your available browser practice allowance.

Create your assistant

Trial eligibility and available practice are shown in your workspace.

Related Articles