aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-18 23:18:37 +0200
committersalmonik <salmonik@tuta.io>2026-08-18 23:18:37 +0200
commitb252c39517b9fce181d1a0fe4761404c7d981397 (patch)
tree564cf01aed601f1974e0de8801d4452215ec05f5 /AGENTS.md
parentfir auto completion and send file in the response body upon grajcuj file (diff)
downloadsenator-sperma-b252c39517b9fce181d1a0fe4761404c7d981397.tar.gz
senator-sperma-b252c39517b9fce181d1a0fe4761404c7d981397.zip
feat: local TTS via piper subprocess with Google fallback
- New src/tts.rs: centralize TTS in synthesize(config, http_client, text) Piper subprocess primary, Google Translate fallback on error/missing - TTS_MODEL_PATH/TTS_VOICE env config (defaults to pl_PL-bass-high) - Fix Unknown interaction errors: spawn play_tts_in_channel in background so voice-state TTS no longer blocks the shard event loop (3s Discord limit) - Best-effort confirmation replies in /tts to prevent error cascade - Custom on_error handler: graceful interaction-expired error handling - Comprehensive tracing logging (engine, model, duration, stderr)
Diffstat (limited to '')
-rw-r--r--AGENTS.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/AGENTS.md b/AGENTS.md
index f5a78ee..a074a43 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -15,7 +15,7 @@ src/
15│ ├── music.rs — /play (🟡 stub), /stop, /join, /loop_toggle 15│ ├── music.rs — /play (🟡 stub), /stop, /join, /loop_toggle
16│ ├── qr.rs — /qr encode + decode 16│ ├── qr.rs — /qr encode + decode
17│ ├── trigger.rs — /trigger group (6 subcommands) 17│ ├── trigger.rs — /trigger group (6 subcommands)
18│ ├── tts.rs — /tts (Google TTS → file/vc), /log_volume 18│ ├── tts.rs — /tts (local Piper TTS → file/vc), /log_volume
19│ ├── utilities.rs — compress🟡, convert🟡, upload, search, download, say 19│ ├── utilities.rs — compress🟡, convert🟡, upload, search, download, say
20│ └── web.rs — /web (DuckDuckGo scrape) 20│ └── web.rs — /web (DuckDuckGo scrape)
21├── copyparty/mod.rs — CopypartyClient (search, upload) 21├── copyparty/mod.rs — CopypartyClient (search, upload)
@@ -23,6 +23,7 @@ src/
23├── events/mod.rs — handle_ready, handle_voice_state_update, handle_message 23├── events/mod.rs — handle_ready, handle_voice_state_update, handle_message
24├── openrouter/mod.rs — OpenRouterClient (chat, chat_with_history) 24├── openrouter/mod.rs — OpenRouterClient (chat, chat_with_history)
25├── tasks/mod.rs — cron_scheduler_loop (30s polling, stub exec bodies) 25├── tasks/mod.rs — cron_scheduler_loop (30s polling, stub exec bodies)
26├── tts.rs — synthesize(): Piper subprocess → Google TTS fallback
26└── voice/mod.rs — VoiceManager (connect, disconnect, get_call), mp3_to_input 27└── voice/mod.rs — VoiceManager (connect, disconnect, get_call), mp3_to_input
27``` 28```
28 29