kshitij
73997c41bb
fix(tts): split long speech by provider and platform limits
...
Salvage of PR #17973 by @TKCen (Sebastian Hänisch), re-implemented on
current main to preserve speed/instructions/provider params,
prepare_spoken_text normalization, OPUS_VOICE_PLATFORMS, is_write_denied
path security, microsecond timestamps, and the streaming-TTS gate.
- Split long TTS text into provider-safe chunks instead of truncating
- Pack generated audio against platform upload limits (Discord 10MB,
Telegram 50MB, configurable via tts.delivery_profiles)
- Combine chunks with ffmpeg (OGG/Opus re-encoded, MP3 stream-copied)
- Multi-file delivery when combination fails or would exceed limits
- Remove hard [:4000] truncation from all callers (cli.py, voice.py,
gateway/run.py, gateway/platforms/base.py)
- Gemini TTS raises ValueError instead of silently truncating when
composed prompt exceeds the provider limit
Simplify-code fixes: removed dead all_touched_paths set, added
try/finally for scratch file cleanup on exception, clean error response
on chunk failure instead of leaking stale file_path.
2026-08-08 22:54:20 +05:30
..
2026-07-29 11:53:39 -07:00
2026-08-04 15:10:41 -07:00
2026-08-07 10:11:05 -07:00
2026-08-08 13:36:08 +05:30
2026-08-03 09:57:23 -07:00
2026-07-29 21:30:53 -07:00
2026-08-08 04:03:41 -07:00
2026-07-31 22:34:28 -07:00
2026-08-02 21:13:12 +05:30
2026-08-04 17:33:36 -07:00
2026-07-28 12:11:52 -05:00
2026-08-02 14:55:32 +05:30
2026-08-07 09:44:21 -07:00
2026-07-26 21:13:03 -07:00
2026-08-07 08:57:39 -07:00
2026-08-07 08:57:39 -07:00
2026-08-07 19:47:40 +05:30
2026-08-08 15:10:35 +05:30
2026-07-31 21:21:20 -07:00
2026-08-01 15:34:16 -07:00
2026-08-07 17:45:06 +05:30
2026-07-29 23:16:18 -07:00
2026-08-02 20:21:59 -07:00
2026-08-08 15:10:35 +05:30
2026-07-24 11:45:57 -07:00
2026-08-08 13:36:08 +05:30
2026-07-29 11:53:39 -07:00
2026-08-07 19:44:35 +05:30
2026-07-29 08:42:16 -07:00
2026-08-08 05:21:09 -07:00
2026-08-08 13:36:08 +05:30
2026-07-29 16:44:31 -07:00
2026-08-07 18:41:57 -06:00
2026-08-08 13:48:00 +05:30
2026-08-01 10:52:34 -07:00
2026-08-03 21:16:09 +05:30
2026-08-08 13:48:00 +05:30
2026-07-25 19:27:17 -07:00
2026-07-26 21:22:40 -07:00
2026-07-29 10:59:54 -07:00
2026-08-04 11:53:32 -06:00
2026-08-01 21:17:51 -04:00
2026-08-07 09:07:48 -07:00
2026-08-08 15:10:35 +05:30
2026-08-02 16:16:36 -07:00
2026-08-02 18:21:58 -07:00
2026-07-26 23:41:54 -07:00
2026-07-31 22:35:26 -07:00
2026-07-26 18:10:34 -07:00
2026-07-29 11:53:39 -07:00
2026-07-26 17:50:54 -07:00
2026-08-07 06:55:27 +05:30
2026-08-05 22:32:39 -07:00
2026-08-05 11:47:05 -04:00
2026-08-05 22:32:55 -07:00
2026-08-08 05:02:04 -07:00
2026-07-26 17:46:29 -07:00
2026-07-28 03:52:33 -05:00
2026-08-07 08:58:20 -07:00
2026-07-29 11:53:39 -07:00
2026-07-27 21:10:51 -07:00
2026-08-05 11:47:05 -04:00
2026-08-08 04:03:41 -07:00
2026-08-01 23:06:47 -05:00
2026-08-03 22:55:36 +05:30
2026-07-28 00:53:16 -05:00
2026-08-07 09:44:21 -07:00
2026-08-02 22:44:38 +05:30
2026-07-28 22:40:33 -07:00
2026-07-29 11:53:39 -07:00
2026-07-23 18:11:57 -07:00
2026-07-23 21:07:18 -07:00
2026-08-01 14:52:18 -07:00
2026-08-04 19:35:57 +00:00
2026-07-26 21:22:40 -07:00
2026-07-31 17:26:42 +05:30
2026-08-07 21:02:40 +05:30
2026-08-08 14:47:11 +05:30
2026-08-07 19:47:40 +05:30
2026-07-29 10:13:50 -07:00
2026-07-29 11:53:39 -07:00
2026-08-01 21:27:26 -05:00
2026-07-29 10:14:11 -07:00
2026-08-01 12:27:31 +05:30
2026-07-29 17:51:40 -05:00
2026-08-07 09:44:21 -07:00
2026-08-07 09:44:21 -07:00
2026-07-28 22:42:19 -07:00
2026-08-06 05:00:17 +05:30
2026-08-05 11:59:33 +05:30
2026-08-03 23:23:39 +05:30
2026-07-31 21:21:16 -07:00
2026-08-05 14:08:32 -07:00
2026-07-29 11:53:39 -07:00
2026-07-30 03:39:26 -05:00
2026-07-29 10:14:11 -07:00
2026-07-29 17:13:48 +05:30
2026-08-05 14:08:32 -07:00
2026-07-29 10:14:11 -07:00
2026-07-29 11:53:39 -07:00
2026-08-01 10:47:20 -07:00
2026-08-02 15:08:45 -07:00
2026-07-27 19:19:01 +05:30
2026-07-29 11:53:39 -07:00
2026-07-26 19:30:21 -07:00
2026-07-31 22:36:55 -07:00
2026-08-03 20:37:17 +05:30
2026-08-04 11:26:15 +05:30
2026-07-26 08:43:24 -07:00
2026-08-01 21:17:51 -04:00
2026-08-08 15:10:35 +05:30
2026-08-02 13:31:16 +05:30
2026-08-05 11:59:33 +05:30
2026-07-29 09:33:48 -07:00
2026-07-29 12:11:24 -07:00
2026-07-24 16:00:03 -07:00
2026-07-31 23:18:12 -07:00
2026-08-07 08:58:14 -07:00
2026-08-07 17:45:06 +05:30
2026-08-02 16:16:36 -07:00
2026-08-03 09:57:58 +05:30
2026-08-03 16:07:16 +05:30
2026-07-29 11:53:39 -07:00
2026-08-06 05:00:17 +05:30
2026-08-08 15:10:35 +05:30
2026-07-31 22:28:46 -07:00
2026-07-29 19:48:37 -07:00
2026-08-07 10:11:05 -07:00
2026-08-08 22:54:20 +05:30
2026-07-29 16:21:54 -07:00
2026-07-28 17:34:21 -07:00
2026-08-04 12:07:29 -06:00
2026-08-08 13:28:28 +05:30
2026-07-24 11:45:57 -07:00
2026-07-29 10:14:11 -07:00
2026-08-01 14:30:16 -07:00
2026-08-06 05:00:17 +05:30