diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index d30cb811d..7cd77c30c 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -49,7 +49,8 @@ sleep, removeDetails, getPromptVariables, - processDetails + processDetails, + removeAllDetails } from '$lib/utils'; import { generateChatCompletion } from '$lib/apis/ollama'; @@ -1172,7 +1173,7 @@ // Emit chat event for TTS const messageContentParts = getMessageContentParts( - message.content, + removeAllDetails(message.content), $config?.audio?.tts?.split_on ?? 'punctuation' ); messageContentParts.pop(); @@ -1206,7 +1207,7 @@ // Emit chat event for TTS const messageContentParts = getMessageContentParts( - message.content, + removeAllDetails(message.content), $config?.audio?.tts?.split_on ?? 'punctuation' ); messageContentParts.pop(); @@ -1253,9 +1254,10 @@ // Emit chat event for TTS let lastMessageContentPart = - getMessageContentParts(message.content, $config?.audio?.tts?.split_on ?? 'punctuation')?.at( - -1 - ) ?? ''; + getMessageContentParts( + removeAllDetails(message.content), + $config?.audio?.tts?.split_on ?? 'punctuation' + )?.at(-1) ?? ''; if (lastMessageContentPart) { eventTarget.dispatchEvent( new CustomEvent('chat', { diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index deb96c153..cf16a869e 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -212,6 +212,8 @@ speaking = true; + const content = removeAllDetails(content); + if ($config.audio.tts.engine === '') { let voices = []; const getVoicesLoop = setInterval(() => { @@ -228,7 +230,7 @@ console.log(voice); - const speak = new SpeechSynthesisUtterance(message.content); + const speak = new SpeechSynthesisUtterance(content); speak.rate = $settings.audio?.tts?.playbackRate ?? 1; console.log(speak); @@ -251,7 +253,7 @@ loadingSpeech = true; const messageContentParts: string[] = getMessageContentParts( - message.content, + content, $config?.audio?.tts?.split_on ?? 'punctuation' ); diff --git a/src/lib/utils/index.ts b/src/lib/utils/index.ts index acdcbe1c8..85bc40fd2 100644 --- a/src/lib/utils/index.ts +++ b/src/lib/utils/index.ts @@ -867,11 +867,10 @@ export const extractSentencesForAudio = (text: string) => { }, [] as string[]); }; -export const getMessageContentParts = (content: string, split_on: string = 'punctuation') => { - content = removeDetails(content, ['reasoning', 'code_interpreter', 'tool_calls']); +export const getMessageContentParts = (content: string, splitOn: string = 'punctuation') => { const messageContentParts: string[] = []; - switch (split_on) { + switch (splitOn) { default: case TTS_RESPONSE_SPLIT.PUNCTUATION: messageContentParts.push(...extractSentencesForAudio(content));