From f60833b1fd75ef25e8b6ff8337bad47ed61f4115 Mon Sep 17 00:00:00 2001 From: owen Date: Mon, 14 Sep 2026 12:23:34 -0500 Subject: [PATCH] docs: webui now separate service; add Grigori MiniMax alias --- README.md | 18 +++++++++++------- ttstoy/ttstoy.py | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 660a3b2..92489ca 100644 --- a/README.md +++ b/README.md @@ -768,7 +768,7 @@ Display the current configuration as an embed: # TtsToy -Multi-engine text-to-speech cog with voice cloning, emoji-triggered sound effects, inline voice switching, a TTS queue system, and a companion web UI. Plays audio in voice channels and uploads MP3 files to chat. +Multi-engine text-to-speech cog with voice cloning, emoji-triggered sound effects, inline voice switching, a TTS queue system, and a separate web UI service (tracked in scrapyard-ttstoy-webui). Plays audio in voice channels and uploads MP3 files to chat. ### Engines @@ -1119,13 +1119,13 @@ Toggle auto-start for the bundled DECTalk server. When enabled, the server start ### `[p]ttstoy webuistatus` -Check the status of the TtsToy web UI subprocess (running, reachable, URL, PID). +Check whether the TtsToy web UI is reachable. The web UI is no longer a bot subprocess; it runs as a scrapyard service. Restart with `sudo systemctl restart scrapyard`. --- ### `[p]ttstoy webuirestart` -Restart the TtsToy web UI subprocess. +The web UI is now a scrapyard service, so this just tells you to run `sudo systemctl restart scrapyard`. --- @@ -1239,12 +1239,16 @@ No voice selection needed. All text is always spoken in Morshu's voice. ## Web UI -TtsToy includes a companion Flask web UI for managing voices, generating TTS, and controlling settings from a browser. +TtsToy has a companion Flask web UI, but it no longer ships inside the cog. It is a separate scrapyard service (port 8098) tracked in its own repo: `kingston/scrapyard-ttstoy-webui` on Gitea (`http://192.168.0.200:3000/kingston/scrapyard-ttstoy-webui`). - Login via `[p]ttstoy login` (DMs you a one-time key) -- Access at the configured URL (default: `https://ttstoy.kingstons-scrapyard.net`) +- Access at https://ttstoy.kingstons-scrapyard.net - Features: voice management, TTS generation, parameter tuning, SFX mapping editor -- TTS generated from the web UI is played in the user's current voice channel and posted to the configured Discord channel +- The web UI talks to the cog through a shared state file under `/tmp` (a cross-process `flock`): it appends `pending_posts` and `pending_commands`, and the cog's `_webui_state_processor` loop (3 s) pops them. It is not a Discord command bridge; audio is generated by the webui service itself and posted by the cog afterward. + +The bot cog only: +- issues one-time login tokens (`[p]ttstoy login`) +- consumes `pending_posts` and posts the rendered audio to the server's webui TTS channel (and plays it in VC if the user is in one) --- @@ -1263,7 +1267,7 @@ TtsToy exposes a health check HTTP endpoint at port 8097: | BlueGnome | - | | Dracafow | - | | Gaben | - | -| Grigori | - | +| Grigori / Gregori | Same voice, both spellings accepted | | Gnome | Default voice | | King | - | | Peppa | - | diff --git a/ttstoy/ttstoy.py b/ttstoy/ttstoy.py index de7338d..53fa26a 100644 --- a/ttstoy/ttstoy.py +++ b/ttstoy/ttstoy.py @@ -60,6 +60,7 @@ MINIMAX_VOICES = { "Dracafow": "moss_audio_13cb66d2-12c7-11f1-b6f2-729162d0a8d2", "Gaben": "moss_audio_5239ca93-115b-11f1-b9c4-4ea5324904c7", "Grigori": "moss_audio_63a397aa-24c9-11f1-918f-5a2de67f838a", + "Gregori": "moss_audio_63a397aa-24c9-11f1-918f-5a2de67f838a", "Gnome": "moss_audio_b304011b-11b2-11f1-90fe-36953c023630", "King": "moss_audio_39c16b2c-1158-11f1-995d-b25e2f30d3fa", "Peppa": "moss_audio_d656489f-114b-11f1-995d-b25e2f30d3fa",