diff --git a/public/scripts/extensions/tts/manifest.json b/public/scripts/extensions/tts/manifest.json
index 573fe647a..ccd63edf6 100644
--- a/public/scripts/extensions/tts/manifest.json
+++ b/public/scripts/extensions/tts/manifest.json
@@ -2,10 +2,12 @@
"display_name": "TTS",
"loading_order": 10,
"requires": [],
- "optional": [],
+ "optional": [
+ "tts"
+ ],
"js": "index.js",
"css": "style.css",
"author": "Ouoertheo#7264",
"version": "1.0.0",
"homePage": "None"
-}
+}
\ No newline at end of file
diff --git a/public/scripts/extensions/tts/silerotts.js b/public/scripts/extensions/tts/silerotts.js
index c39e67052..7b00e78e1 100644
--- a/public/scripts/extensions/tts/silerotts.js
+++ b/public/scripts/extensions/tts/silerotts.js
@@ -1,3 +1,5 @@
+import { getApiUrl, modules } from "../../extensions.js"
+
export { SileroTtsProvider }
class SileroTtsProvider {
@@ -17,7 +19,8 @@ class SileroTtsProvider {
let html = `
- A simple Python Silero TTS Server can be found here.
+
+ Use SillyTavern Extras API or Silero TTS Server.
`
return html
}
@@ -43,8 +46,19 @@ class SileroTtsProvider {
throw `Invalid setting passed to TTS Provider: ${key}`
}
}
+
+ const apiCheckInterval = setInterval(() => {
+ // Use Extras API if TTS support is enabled
+ if (modules.includes('tts')) {
+ const baseUrl = new URL(getApiUrl());
+ baseUrl.pathname = '/api/tts';
+ this.settings.provider_endpoint = baseUrl.toString();
+ $('#silero_tts_endpoint').val(this.settings.provider_endpoint);
+ clearInterval(apiCheckInterval);
+ }
+ }, 2000);
- $('#silero_tts_endpoint').text(this.settings.provider_endpoint)
+ $('#silero_tts_endpoint').val(this.settings.provider_endpoint)
console.info("Settings loaded")
}