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") }