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,
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', {

View File

@ -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'
);

View File

@ -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));