diff --git a/src/lang/en.ts b/src/lang/en.ts
index df8641c7..cf3a5d79 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -263,5 +263,6 @@ export const languageEnglish = {
textBackgrounds: "Custom Text Screen Color",
textBorder: "Text Outlines",
textScreenRound: "Round Text Screen",
- textScreenBorder: "Text Screen Borders"
+ textScreenBorder: "Text Screen Borders",
+ ttsReadOnlyQuoted: "Read Only Quoted"
}
diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte
index d79ea276..7d091357 100644
--- a/src/lib/SideBars/CharConfig.svelte
+++ b/src/lib/SideBars/CharConfig.svelte
@@ -498,6 +498,12 @@
{/await}
{/if}
+ {#if currentChar.data.ttsMode === 'webspeech' || currentChar.data.ttsMode === 'elevenlab'}
+
+
+ {language.ttsReadOnlyQuoted}
+
+ {/if}
{/if}
{:else if subMenu === 2}
{language.advancedSettings}
diff --git a/src/ts/database.ts b/src/ts/database.ts
index 5105c202..1936ae19 100644
--- a/src/ts/database.ts
+++ b/src/ts/database.ts
@@ -284,6 +284,7 @@ export interface character{
ttsSpeech?:string
supaMemory?:boolean
additionalAssets?:[string, string][]
+ ttsReadOnlyQuoted?:boolean
}
diff --git a/src/ts/process/index.ts b/src/ts/process/index.ts
index 9c2c86d2..564ecdaa 100644
--- a/src/ts/process/index.ts
+++ b/src/ts/process/index.ts
@@ -350,13 +350,15 @@ export async function sendChat(chatProcessIndex = -1):Promise {
while(true){
const readed = (await reader.read())
if(readed.value){
- db.characters[selectedChar].chats[selectedChat].message[msgIndex].data =readed.value
+ result = readed.value
+ db.characters[selectedChar].chats[selectedChat].message[msgIndex].data = result
setDatabase(db)
}
if(readed.done){
break
}
}
+ await sayTTS(currentChar, result)
}
else{
const result2 = processScriptFull(currentChar, reformatContent(req.result), 'editoutput')
diff --git a/src/ts/process/tts.ts b/src/ts/process/tts.ts
index fd7b89ac..6071156c 100644
--- a/src/ts/process/tts.ts
+++ b/src/ts/process/tts.ts
@@ -7,6 +7,16 @@ export async function sayTTS(character:character,text:string) {
let db = get(DataBase)
text = text.replace(/\*/g,'')
+ if(character.ttsReadOnlyQuoted){
+ const matches = text.match(/"(.*?)"/g)
+ if(matches.length > 0){
+ text = matches.map(match => match.slice(1, -1)).join("");
+ }
+ else{
+ text = ''
+ }
+ }
+
switch(character.ttsMode){
case "webspeech":{
if(speechSynthesis && SpeechSynthesisUtterance){
@@ -19,7 +29,7 @@ export async function sayTTS(character:character,text:string) {
}
}
utterThis.voice = voices[voiceIndex]
- speechSynthesis.speak(utterThis)
+ const speak = speechSynthesis.speak(utterThis)
}
break
}