Skip to main content
Version: 0.9.17 — archived documentation

Speech playback and hangup

Delphi coordinates speech playback and call teardown. Pipeline flows use separate STT, LLM and TTS providers; realtime flows stream audio through their provider connection.

Pipeline mode — outbound speech queue​

Complete text responses enter an outbound speech queue. The pipeline synthesizes and plays each response in order, waiting for playback to finish before the next response. A bounded playback wait prevents a missing completion signal from blocking the queue indefinitely. The configured fallback TTS provider may retry a sentence if primary synthesis fails.

Realtime mode — provider-native audio​

Realtime providers stream audio through one vendor connection. Their streaming model determines playback timing; they do not use the modular outbound speech queue.

Hangup and disconnect timing​

The shared call action service prepares signaling, plays a configured farewell when a speech path exists, waits for active playback when the action requests it, then applies the configured disconnect delay before releasing the channel. An immediate carrier hangup can still end playback.

Canvas tts_playback nodes​

A TTS playback node plays fixed text through the flow's TTS provider. A subsequent action that waits for silence waits for that playback to finish.

Troubleshooting​

Check the flow's provider mode, TTS errors and call termination evidence. Pipeline playback order and a realtime provider's streaming behavior are different. Correlate TelPhi and telephony logs before attributing an early disconnect to synthesis.

See also​