Teknium
782dd635fe
feat(tts): speech toggles warm/release plugin and command TTS providers
...
Extends the TTS lease from #100912 (4e3feb8bbb ) beyond built-in local
engines: when the configured tts.provider is user-declared, acquiring
the first lease and releasing the last one now reach it, so a
self-hosted TTS server can preload its model when read-aloud / voice
conversation turns on and unload when it turns off (Discord request).
- agent/tts_provider.py: TTSProvider gains concrete no-op warm() /
release() (not abstract — existing plugins are unaffected).
- tools/tts_tool.py: _signal_user_tts_provider() forwards the lease
hook; plugin providers get warm()/release(), command providers run
optional `warm_command` / `release_command` (config.yaml, under
tts.providers.<name>) through the existing _run_command_tts helper
on a daemon thread — best-effort, output discarded, failures at
debug. warm_tts_provider() and release_tts_provider() call it.
- tests/tools/test_tts_lifecycle_leases.py: fake plugin provider and
fake command provider observe warm/release through acquire/release
lease (both fail on main with action == "noop").
- docs: features/tts.md — lease section, command-provider optional
keys table, plugin optional hooks.
2026-09-02 05:35:14 -07:00
..
2026-08-23 17:45:47 -05:00
2026-09-02 05:33:22 -07:00
2026-09-02 00:44:19 -07:00
2026-09-02 05:34:35 -07:00
2026-08-26 00:54:36 -07:00
2026-08-24 15:54:23 +05:30
2026-09-02 15:13:46 +05:30
2026-08-26 07:28:10 -07:00
2026-08-24 21:21:34 -07:00
2026-08-31 01:04:11 -07:00
2026-09-02 05:34:11 -07:00
2026-09-02 05:34:28 -07:00
2026-09-02 16:57:21 +05:30
2026-08-13 23:43:15 +05:30
2026-09-01 14:11:55 +05:30
2026-08-28 11:54:33 +05:30
2026-09-02 01:15:58 -07:00
2026-08-29 18:01:25 -07:00
2026-08-20 19:56:01 -07:00
2026-09-02 16:57:21 +05:30
2026-09-02 00:06:01 -07:00
2026-08-12 19:13:32 -07:00
2026-08-30 04:53:39 -07:00
2026-09-02 16:57:21 +05:30
2026-09-02 05:35:14 -07:00
2026-09-02 01:35:59 -07:00
2026-08-19 12:41:45 -05:00
2026-09-01 10:56:49 -07:00
2026-09-01 09:28:01 -07:00
2026-08-24 15:37:22 +05:30
2026-08-31 09:56:43 -07:00
2026-08-31 12:36:33 -07:00
2026-08-12 17:25:30 -05:00
2026-08-13 22:44:23 +05:30
2026-08-24 03:21:07 -07:00
2026-08-24 03:21:07 -07:00
2026-08-16 01:50:20 -07:00
2026-08-23 17:01:31 -07:00
2026-08-31 20:43:36 -05:00
2026-08-30 01:20:27 -07:00
2026-08-30 01:20:27 -07:00
2026-08-16 12:20:50 +02:00
2026-08-17 16:34:02 -07:00
2026-08-20 04:54:14 -07:00
2026-09-01 08:36:03 -07:00
2026-08-26 18:23:33 -07:00
2026-09-02 00:44:19 -07:00
2026-08-26 18:23:33 -07:00
2026-08-31 10:05:13 -07:00
2026-08-14 15:41:38 -05:00
2026-08-28 05:45:00 -07:00
2026-08-28 12:20:40 -07:00
2026-09-01 00:35:29 +05:30
2026-08-31 09:56:43 -07:00
2026-08-12 19:13:32 -07:00
2026-08-16 06:29:53 -07:00
2026-08-27 13:48:51 -07:00
2026-08-25 10:54:42 +10:00
2026-08-31 07:28:22 -07:00
2026-08-15 23:37:22 -07:00
2026-08-31 09:56:04 -07:00
2026-09-01 22:14:33 -07:00
2026-08-29 18:34:35 -07:00
2026-08-13 23:43:15 +05:30
2026-08-13 23:43:15 +05:30
2026-08-31 10:00:38 -07:00
2026-08-13 02:38:28 -07:00
2026-08-14 21:35:30 -07:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-08-23 18:27:21 -07:00
2026-08-14 22:33:58 -07:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-08-14 21:58:09 -07:00
2026-08-14 21:58:09 -07:00
2026-08-16 11:34:40 -07:00
2026-08-13 02:38:28 -07:00
2026-08-13 18:39:54 +00:00
2026-08-31 10:00:55 -07:00
2026-08-13 18:39:54 +00:00
2026-08-31 10:53:18 -07:00
2026-08-31 10:53:18 -07:00
2026-09-01 11:25:10 -07:00
2026-08-28 12:36:15 -07:00
2026-08-14 21:58:09 -07:00
2026-08-27 07:52:26 -07:00
2026-08-27 07:52:26 -07:00
2026-08-17 02:40:59 -07:00
2026-08-15 01:55:22 -07:00
2026-09-01 10:52:42 -07:00
2026-08-16 23:26:10 -07:00
2026-08-23 13:34:32 +05:30
2026-08-14 21:36:41 -07:00
2026-08-29 18:23:07 -07:00
2026-08-31 12:22:17 -07:00
2026-08-20 11:37:01 +05:30
2026-08-14 21:45:08 -07:00
2026-08-31 10:03:34 -07:00
2026-08-13 11:49:14 -07:00
2026-08-17 15:12:53 -05:00
2026-08-17 16:39:47 -07:00
2026-08-14 13:51:26 -07:00
2026-08-14 13:51:26 -07:00
2026-08-12 18:55:14 -07:00
2026-08-16 20:43:13 -07:00
2026-08-31 05:56:18 -07:00
2026-08-31 11:23:48 -07:00
2026-08-31 09:56:04 -07:00
2026-08-25 23:15:49 -07:00
2026-08-31 09:56:54 -07:00
2026-08-21 21:53:11 +05:30
2026-09-02 04:15:02 -07:00
2026-08-31 09:56:43 -07:00
2026-09-02 16:57:21 +05:30
2026-08-22 04:02:29 +05:30
2026-08-15 02:22:58 -07:00
2026-08-22 14:33:20 +05:30
2026-08-23 18:25:12 -07:00
2026-08-23 20:01:41 -07:00
2026-08-23 18:25:12 -07:00
2026-08-27 07:52:26 -07:00
2026-08-31 09:58:40 -07:00
2026-08-29 18:23:07 -07:00
2026-08-13 09:36:02 -07:00
2026-08-27 11:26:57 +05:30
2026-08-16 06:26:37 -07:00
2026-09-02 05:33:13 -07:00
2026-08-24 04:01:53 -07:00
2026-08-12 20:02:07 -07:00
2026-08-14 12:02:05 -04:00
2026-08-13 02:38:28 -07:00
2026-08-23 17:43:39 -07:00
2026-08-31 09:56:43 -07:00