refac: tts details tags

This commit is contained in:
Timothy Jaeryang Baek 2025-05-23 13:40:33 +04:00
parent 55a6fae9db
commit dd8e742c2d
3 changed files with 14 additions and 11 deletions

View File

@ -49,7 +49,8 @@
sleep, sleep,
removeDetails, removeDetails,
getPromptVariables, getPromptVariables,
processDetails processDetails,
removeAllDetails
} from '$lib/utils'; } from '$lib/utils';
import { generateChatCompletion } from '$lib/apis/ollama'; import { generateChatCompletion } from '$lib/apis/ollama';
@ -1172,7 +1173,7 @@
// Emit chat event for TTS // Emit chat event for TTS
const messageContentParts = getMessageContentParts( const messageContentParts = getMessageContentParts(
message.content, removeAllDetails(message.content),
$config?.audio?.tts?.split_on ?? 'punctuation' $config?.audio?.tts?.split_on ?? 'punctuation'
); );
messageContentParts.pop(); messageContentParts.pop();
@ -1206,7 +1207,7 @@
// Emit chat event for TTS // Emit chat event for TTS
const messageContentParts = getMessageContentParts( const messageContentParts = getMessageContentParts(
message.content, removeAllDetails(message.content),
$config?.audio?.tts?.split_on ?? 'punctuation' $config?.audio?.tts?.split_on ?? 'punctuation'
); );
messageContentParts.pop(); messageContentParts.pop();
@ -1253,9 +1254,10 @@
// Emit chat event for TTS // Emit chat event for TTS
let lastMessageContentPart = let lastMessageContentPart =
getMessageContentParts(message.content, $config?.audio?.tts?.split_on ?? 'punctuation')?.at( getMessageContentParts(
-1 removeAllDetails(message.content),
) ?? ''; $config?.audio?.tts?.split_on ?? 'punctuation'
)?.at(-1) ?? '';
if (lastMessageContentPart) { if (lastMessageContentPart) {
eventTarget.dispatchEvent( eventTarget.dispatchEvent(
new CustomEvent('chat', { new CustomEvent('chat', {

View File

@ -212,6 +212,8 @@
speaking = true; speaking = true;
const content = removeAllDetails(content);
if ($config.audio.tts.engine === '') { if ($config.audio.tts.engine === '') {
let voices = []; let voices = [];
const getVoicesLoop = setInterval(() => { const getVoicesLoop = setInterval(() => {
@ -228,7 +230,7 @@
console.log(voice); console.log(voice);
const speak = new SpeechSynthesisUtterance(message.content); const speak = new SpeechSynthesisUtterance(content);
speak.rate = $settings.audio?.tts?.playbackRate ?? 1; speak.rate = $settings.audio?.tts?.playbackRate ?? 1;
console.log(speak); console.log(speak);
@ -251,7 +253,7 @@
loadingSpeech = true; loadingSpeech = true;
const messageContentParts: string[] = getMessageContentParts( const messageContentParts: string[] = getMessageContentParts(
message.content, content,
$config?.audio?.tts?.split_on ?? 'punctuation' $config?.audio?.tts?.split_on ?? 'punctuation'
); );

View File

@ -867,11 +867,10 @@ export const extractSentencesForAudio = (text: string) => {
}, [] as string[]); }, [] as string[]);
}; };
export const getMessageContentParts = (content: string, split_on: string = 'punctuation') => { export const getMessageContentParts = (content: string, splitOn: string = 'punctuation') => {
content = removeDetails(content, ['reasoning', 'code_interpreter', 'tool_calls']);
const messageContentParts: string[] = []; const messageContentParts: string[] = [];
switch (split_on) { switch (splitOn) {
default: default:
case TTS_RESPONSE_SPLIT.PUNCTUATION: case TTS_RESPONSE_SPLIT.PUNCTUATION:
messageContentParts.push(...extractSentencesForAudio(content)); messageContentParts.push(...extractSentencesForAudio(content));