diff --git a/src/lib/components/chat/MessageInput/CallOverlay.svelte b/src/lib/components/chat/MessageInput/CallOverlay.svelte index a9e96783b..bca31f610 100644 --- a/src/lib/components/chat/MessageInput/CallOverlay.svelte +++ b/src/lib/components/chat/MessageInput/CallOverlay.svelte @@ -271,7 +271,7 @@ return; } - if (assistantSpeaking) { + if (assistantSpeaking && !($settings?.voiceInterruption ?? false)) { // Mute the audio if the assistant is speaking analyser.maxDecibels = 0; analyser.minDecibels = -1; diff --git a/src/lib/components/chat/Settings/Interface.svelte b/src/lib/components/chat/Settings/Interface.svelte index a5db91a7b..f8a7019fb 100644 --- a/src/lib/components/chat/Settings/Interface.svelte +++ b/src/lib/components/chat/Settings/Interface.svelte @@ -32,6 +32,7 @@ let chatDirection: 'LTR' | 'RTL' = 'LTR'; let showEmojiInCall = false; + let voiceInterruption = false; const toggleSplitLargeChunks = async () => { splitLargeChunks = !splitLargeChunks; @@ -58,6 +59,11 @@ saveSettings({ showEmojiInCall: showEmojiInCall }); }; + const toggleVoiceInterruption = async () => { + voiceInterruption = !voiceInterruption; + saveSettings({ voiceInterruption: voiceInterruption }); + }; + const toggleUserLocation = async () => { userLocation = !userLocation; @@ -128,6 +134,7 @@ showUsername = $settings.showUsername ?? false; showEmojiInCall = $settings.showEmojiInCall ?? false; + voiceInterruption = $settings.voiceInterruption ?? false; chatBubble = $settings.chatBubble ?? true; widescreenMode = $settings.widescreenMode ?? false; @@ -399,6 +406,26 @@