diff --git a/src/api/generated/data-contracts.ts b/src/api/generated/data-contracts.ts index 157dc0f..985eb1b 100644 --- a/src/api/generated/data-contracts.ts +++ b/src/api/generated/data-contracts.ts @@ -964,6 +964,15 @@ export type ServerVadConfig = ( ) & { /** Optional Smart Turn endpoint detection configuration. Runs after VAD silence detection to verify turn completion. */ smartTurn?: SmartTurnConfig; + /** + * Duration in milliseconds to wait for the user to continue speaking after a barge-in interrupt. If silence is detected for this duration, ASR is stopped. Default: 3000. + * @min 500 + * @max 10000 + * @default 3000 + */ + bargeInSilenceTimeout?: number; + /** Optional placeholder text fed to the AI as user input when the user barge-ins but then stops speaking before the bargeInSilenceTimeout. The AI generates a response based on this prompt (e.g. "[you misheard something the user said]"). Default: [repeat after interruption]. */ + bargeInSilencePlaceholder?: string; }; export interface LegacyVadConfig { diff --git a/src/api/openapi.json b/src/api/openapi.json index 4eb4f7a..c550744 100644 --- a/src/api/openapi.json +++ b/src/api/openapi.json @@ -1557,6 +1557,17 @@ "properties": { "smartTurn": { "$ref": "#/components/schemas/SmartTurnConfig" + }, + "bargeInSilenceTimeout": { + "type": "integer", + "minimum": 500, + "maximum": 10000, + "default": 3000, + "description": "Duration in milliseconds to wait for the user to continue speaking after a barge-in interrupt. If silence is detected for this duration, ASR is stopped. Default: 3000." + }, + "bargeInSilencePlaceholder": { + "type": "string", + "description": "Optional placeholder text fed to the AI as user input when the user barge-ins but then stops speaking before the bargeInSilenceTimeout. The AI generates a response based on this prompt (e.g. \"[you misheard something the user said]\"). Default: [repeat after interruption]." } } } diff --git a/src/api/websocket/websocket-contracts.json b/src/api/websocket/websocket-contracts.json index 5060473..8d307f4 100644 --- a/src/api/websocket/websocket-contracts.json +++ b/src/api/websocket/websocket-contracts.json @@ -778,6 +778,17 @@ "properties": { "smartTurn": { "$ref": "#/definitions/SmartTurnConfig" + }, + "bargeInSilenceTimeout": { + "type": "integer", + "minimum": 500, + "maximum": 10000, + "default": 3000, + "description": "Duration in milliseconds to wait for the user to continue speaking after a barge-in interrupt. If silence is detected for this duration, ASR is stopped. Default: 3000." + }, + "bargeInSilencePlaceholder": { + "type": "string", + "description": "Optional placeholder text fed to the AI as user input when the user barge-ins but then stops speaking before the bargeInSilenceTimeout. The AI generates a response based on this prompt (e.g. \"[you misheard something the user said]\"). Default: [repeat after interruption]." } } } diff --git a/src/api/websocket/websocket-contracts.ts b/src/api/websocket/websocket-contracts.ts index 0cf4998..87d2e04 100644 --- a/src/api/websocket/websocket-contracts.ts +++ b/src/api/websocket/websocket-contracts.ts @@ -407,6 +407,14 @@ export interface SmartTurnConfig { */ export type ServerVadConfig = (LegacyVadConfig | SileroVadConfig | FireRedVadConfig) & { smartTurn?: SmartTurnConfig; + /** + * Duration in milliseconds to wait for the user to continue speaking after a barge-in interrupt. If silence is detected for this duration, ASR is stopped. Default: 3000. + */ + bargeInSilenceTimeout?: number; + /** + * Optional placeholder text fed to the AI as user input when the user barge-ins but then stops speaking before the bargeInSilenceTimeout. The AI generates a response based on this prompt (e.g. "[you misheard something the user said]"). Default: [repeat after interruption]. + */ + bargeInSilencePlaceholder?: string; }; diff --git a/src/components/modals/ServerVadSettingsModal.vue b/src/components/modals/ServerVadSettingsModal.vue index 965ffc3..86e90e7 100644 --- a/src/components/modals/ServerVadSettingsModal.vue +++ b/src/components/modals/ServerVadSettingsModal.vue @@ -3,76 +3,32 @@