diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte
index ded01391..7cd9da38 100644
--- a/src/lib/components/chat/Messages/ResponseMessage.svelte
+++ b/src/lib/components/chat/Messages/ResponseMessage.svelte
@@ -30,13 +30,14 @@
export let copyToClipboard: Function;
export let regenerateResponse: Function;
- let audioMap = {};
-
let edit = false;
let editedContent = '';
let tooltipInstance = null;
+
+ let audioMap = {};
let speaking = null;
+ let loadingSpeech = false;
$: tokens = marked.lexer(message.content);
@@ -126,6 +127,7 @@
speaking = true;
if ($settings?.speech?.engine === 'openai') {
+ loadingSpeech = true;
const res = await synthesizeOpenAISpeech(
localStorage.token,
$settings?.speech?.speaker,
@@ -140,6 +142,8 @@
const blobUrl = URL.createObjectURL(blob);
console.log(blobUrl);
+ loadingSpeech = false;
+
const audio = new Audio(blobUrl);
audioMap[message.id] = audio;
@@ -458,10 +462,42 @@
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:bg-gray-800 transition"
on:click={() => {
- toggleSpeakMessage(message);
+ if (!loadingSpeech) {
+ toggleSpeakMessage(message);
+ }
}}
>
- {#if speaking}
+ {#if loadingSpeech}
+
+ {:else if speaking}