diff --git a/public/scripts/extensions/tts/index.js b/public/scripts/extensions/tts/index.js
index ae4818ef6..347e27c61 100644
--- a/public/scripts/extensions/tts/index.js
+++ b/public/scripts/extensions/tts/index.js
@@ -241,9 +241,16 @@ async function processTtsQueue() {
console.debug('New message found, running TTS')
currentTtsJob = ttsJobQueue.shift()
- const text = extension_settings.tts.narrate_dialogues_only
+ let text = extension_settings.tts.narrate_dialogues_only
? currentTtsJob.mes.replace(/\*[^\*]*?(\*|$)/g, '').trim() // remove asterisks content
: currentTtsJob.mes.replaceAll('*', '').trim() // remove just the asterisks
+
+ if (extension_settings.tts.narrate_quoted_only) {
+ // narrate only the text inside double quotes
+ const matches = text.match(/".*?"/g); // Matches text inside double quotes, non-greedily
+ text = matches ? matches.join(' ... ... ... ') : text;
+ }
+ console.log(`TTS: ${text}`)
const char = currentTtsJob.name
try {
@@ -288,6 +295,7 @@ function loadSettings() {
extension_settings.tts.enabled
)
$('#tts_narrate_dialogues').prop('checked', extension_settings.tts.narrate_dialogues_only)
+ $('#tts_narrate_quoted').prop('checked', extension_settings.tts.narrate_quoted_only)
}
const defaultSettings = {
@@ -380,6 +388,13 @@ function onNarrateDialoguesClick() {
saveSettingsDebounced()
}
+
+function onNarrateQuotedClick() {
+ extension_settings.tts.narrate_quoted_only = $('#tts_narrate_quoted').prop('checked');
+ saveSettingsDebounced()
+}
+
+
//##############//
// TTS Provider //
//##############//
@@ -459,6 +474,10 @@ $(document).ready(function () {
Narrate dialogues only
+