TurnTakingController
Manages pause/resume of audio capture during TTS playback.
Defined in: src/core/collaborators/TurnTakingController.ts:45
Manages pause/resume of audio capture during TTS playback.
Remarks
Encapsulates the logic for:
- Deciding whether to pause capture based on turn-taking configuration
- Executing pause: stop queue draining, pause input, disconnect STT
- Executing resume: resume input, reconnect STT, re-inject cached header, restart queue draining
Constructors
Constructor
new TurnTakingController(config, logger): TurnTakingController;
Defined in: src/core/collaborators/TurnTakingController.ts:48
Parameters
| Parameter | Type |
|---|---|
config | TurnTakingConfig | undefined |
logger | Logger |
Returns
TurnTakingController
Methods
pauseCapture()
pauseCapture(
stt,
input,
inputQueue,
isMultiRoleInput): Promise<void>;
Defined in: src/core/collaborators/TurnTakingController.ts:75
Pause audio capture: stop queue draining, pause input, disconnect STT.
Parameters
| Parameter | Type | Description |
|---|---|---|
stt | STTProvider | The STT provider. |
input | AudioInputProvider | The audio input provider. |
inputQueue | AudioBufferQueue | The input audio buffer queue. |
isMultiRoleInput | boolean | Whether input and STT are the same provider instance. |
Returns
Promise<void>
recoverCapture()
recoverCapture(
stt,
input,
inputQueue,
headerCache,
isMultiRoleInput,
captureWasPaused): Promise<void>;
Defined in: src/core/collaborators/TurnTakingController.ts:138
Attempt to recover STT capture after an error.
Parameters
| Parameter | Type | Description |
|---|---|---|
stt | STTProvider | The STT provider. |
input | AudioInputProvider | The audio input provider. |
inputQueue | AudioBufferQueue | The input audio buffer queue. |
headerCache | AudioHeaderCache | The audio header cache. |
isMultiRoleInput | boolean | Whether input and STT are the same provider instance. |
captureWasPaused | boolean | Whether capture was in paused state (needs resume, not restart). |
Returns
Promise<void>
Remarks
Re-connects STT and restarts queue draining, starting from a clean state. Used in error recovery paths within processTTS and finalizeLiveTTS.
resumeCapture()
resumeCapture(
stt,
input,
inputQueue,
headerCache,
isMultiRoleInput): Promise<void>;
Defined in: src/core/collaborators/TurnTakingController.ts:100
Resume audio capture: resume input, reconnect STT, re-inject cached header, restart queue draining.
Parameters
| Parameter | Type | Description |
|---|---|---|
stt | STTProvider | The STT provider. |
input | AudioInputProvider | The audio input provider. |
inputQueue | AudioBufferQueue | The input audio buffer queue. |
headerCache | AudioHeaderCache | The audio header cache for WebSocket reconnection. |
isMultiRoleInput | boolean | Whether input and STT are the same provider instance. |
Returns
Promise<void>
shouldPause()
shouldPause(stt, tts): boolean;
Defined in: src/core/collaborators/TurnTakingController.ts:63
Determine whether audio capture should be paused during playback for the given provider combination.
Parameters
| Parameter | Type | Description |
|---|---|---|
stt | STTProvider | The STT provider instance. |
tts | TTSProvider | The TTS provider instance. |
Returns
boolean
true if capture should be paused, false for full-duplex.