diff --git a/public/scripts/extensions/tts/elevenlabs.js b/public/scripts/extensions/tts/elevenlabs.js
index 65c3cf302..c039156d5 100644
--- a/public/scripts/extensions/tts/elevenlabs.js
+++ b/public/scripts/extensions/tts/elevenlabs.js
@@ -17,6 +17,7 @@ class ElevenLabsTtsProvider {
stability: 0.75,
similarity_boost: 0.75,
apiKey: "",
+ multilingual: false,
voiceMap: {}
}
@@ -28,6 +29,10 @@ class ElevenLabsTtsProvider {
+
`
return html
}
@@ -36,6 +41,7 @@ class ElevenLabsTtsProvider {
// Update dynamically
this.settings.stability = $('#elevenlabs_tts_stability').val()
this.settings.similarity_boost = $('#elevenlabs_tts_similarity_boost').val()
+ this.settings.multilingual = $('#elevenlabs_tts_multilingual').prop('checked')
}
@@ -59,6 +65,7 @@ class ElevenLabsTtsProvider {
$('#elevenlabs_tts_stability').val(this.settings.stability)
$('#elevenlabs_tts_similarity_boost').val(this.settings.similarity_boost)
$('#elevenlabs_tts_api_key').val(this.settings.apiKey)
+ $('#tts_auto_generation').prop('checked', this.settings.multilingual)
console.info("Settings loaded")
}
@@ -165,6 +172,10 @@ class ElevenLabsTtsProvider {
}
async fetchTtsGeneration(text, voiceId) {
+ let model = "eleven_monolingual_v1"
+ if (this.settings.multilingual == true) {
+ model = "eleven_multilingual_v1"
+ }
console.info(`Generating new TTS for voice_id ${voiceId}`)
const response = await fetch(
`https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`,
@@ -175,6 +186,7 @@ class ElevenLabsTtsProvider {
'Content-Type': 'application/json'
},
body: JSON.stringify({
+ model: model,
text: text,
voice_settings: this.settings
})
diff --git a/public/scripts/extensions/tts/index.js b/public/scripts/extensions/tts/index.js
index ba618eaca..d7664e4d2 100644
--- a/public/scripts/extensions/tts/index.js
+++ b/public/scripts/extensions/tts/index.js
@@ -162,6 +162,23 @@ function isTtsProcessing() {
return processing
}
+function debugTtsPlayback() {
+ console.log(JSON.stringify(
+ {
+ "ttsProviderName": ttsProviderName,
+ "currentMessageNumber": currentMessageNumber,
+ "isWorkerBusy":isWorkerBusy,
+ "audioPaused": audioPaused,
+ "audioJobQueue": audioJobQueue,
+ "currentAudioJob": currentAudioJob,
+ "audioQueueProcessorReady": audioQueueProcessorReady,
+ "ttsJobQueue": ttsJobQueue,
+ "currentTtsJob": currentTtsJob,
+ }
+ ))
+}
+window.debugTtsPlayback = debugTtsPlayback
+
//##################//
// Audio Control //
//##################//