Vitor Cepeda Lopes
93b3f4c45b
feat(xai): add native streaming TTS (#103993)
* feat(xai): add streaming TTS via wss://api.x.ai/v1/tts
Expose streamSynthesize on the bundled xAI speech provider so Talk and
Discord streaming playback can use xAI alongside batch REST synthesis.
Adds ws runtime dependency, byte-cap enforcement, and provider tests.
* fix(xai): harden streaming TTS per review feedback
Restrict streaming WS to api.x.ai, decode WebSocket payloads explicitly,
refresh idle timeout on audio.delta, add lifecycle/security tests, and
document the official xAI streaming contract plus non-realtime-voice scope.
* fix(xai): bound streaming TTS text deltas
* fix(xai): require secure native TTS streaming endpoint
* docs(tts): remove duplicate output formats section
* fix(xai): preserve surrogate pairs in tts frames
* fix(xai): bound streaming TTS websocket payloads
* fix(xai): align TTS websocket decoding with ws types
* fix(xai): pin native streaming TTS endpoint
* test(xai): cover native streaming TTS live path
* fix(xai): preserve streaming codec compatibility
* style(xai): format streaming endpoint guard
* docs(tts): describe xAI streaming output policy [skip ci]
* fix(xai): own voice-note TTS format policy [skip ci]
* docs(tts): keep provider summary concise [skip ci]
* test(xai): use explicit placeholder credentials [skip ci]
* test(xai): keep fixtures scanner-safe [skip ci]
---------
Co-authored-by: TheAngryPit <16145902+TheAngryPit@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 06:08:28 -07:00
..
2026-07-13 21:01:52 +08:00
2026-07-13 04:38:05 -07:00
2026-07-12 11:11:15 -04:00
2026-07-12 12:48:22 +01:00
2026-07-13 03:39:16 -07:00
2026-07-13 02:25:13 -07:00
2026-07-12 09:17:31 +01:00
2026-07-12 17:16:47 +02:00
2026-07-13 05:05:31 -07:00
2026-07-12 12:48:22 +01:00
2026-07-12 22:33:53 -07:00
2026-07-12 09:17:31 +01:00
2026-07-12 12:48:22 +01:00
2026-07-12 16:47:15 +02:00
2026-07-12 15:27:41 +02:00
2026-07-13 03:39:16 -07:00
2026-07-12 09:17:31 +01:00
2026-07-13 04:00:17 -07:00
2026-07-13 00:34:46 -07:00
2026-07-12 12:48:22 +01:00
2026-07-13 02:30:45 -07:00
2026-07-12 09:17:31 +01:00
2026-07-13 02:34:06 -07:00
2026-07-12 22:33:53 -07:00
2026-07-13 02:34:06 -07:00
2026-07-13 03:23:27 -07:00
2026-07-12 09:17:31 +01:00
2026-07-12 15:43:24 +02:00
2026-07-13 02:34:06 -07:00
2026-07-12 12:48:22 +01:00
2026-07-12 21:04:43 -07:00
2026-07-12 15:24:39 +01:00
2026-07-13 05:17:24 -07:00
2026-07-13 04:34:19 -07:00
2026-07-13 02:34:06 -07:00
2026-07-12 09:43:22 +01:00
2026-07-12 12:48:22 +01:00
2026-07-13 01:51:32 -07:00
2026-07-12 12:48:22 +01:00
2026-07-13 01:51:32 -07:00
2026-07-13 01:18:31 -07:00
2026-07-12 12:48:22 +01:00
2026-07-12 18:08:26 -07:00
2026-07-12 09:17:31 +01:00
2026-07-13 01:31:16 -07:00
2026-07-12 12:48:22 +01:00
2026-07-13 04:39:58 -07:00
2026-07-13 03:23:27 -07:00
2026-07-13 03:16:28 -07:00
2026-07-12 18:08:26 -07:00
2026-07-13 03:16:28 -07:00
2026-07-12 16:09:01 +02:00
2026-07-12 09:17:31 +01:00
2026-07-12 09:17:31 +01:00
2026-07-12 11:29:57 -04:00
2026-07-12 15:43:24 +02:00
2026-07-13 03:43:17 -07:00
2026-07-12 23:07:25 -07:00
2026-07-13 01:51:32 -07:00
2026-07-13 08:03:54 +08:00
2026-07-13 20:37:08 +08:00
2026-07-13 00:34:46 -07:00
2026-07-13 03:12:47 -07:00
2026-07-13 05:17:24 -07:00
2026-07-12 22:39:43 -07:00
2026-07-13 15:37:26 +03:00
2026-07-13 01:53:28 -07:00
2026-07-13 02:34:06 -07:00
2026-07-12 23:38:22 -07:00
2026-07-13 02:34:06 -07:00
2026-07-13 00:34:46 -07:00
2026-07-13 03:11:25 -07:00
2026-07-13 00:34:46 -07:00
2026-07-13 02:34:06 -07:00
2026-07-12 11:11:15 -04:00
2026-07-12 22:37:21 -07:00
2026-07-13 05:17:44 -07:00
2026-07-12 12:48:22 +01:00
2026-07-13 02:34:06 -07:00
2026-07-13 02:26:49 -07:00
2026-07-13 02:34:06 -07:00
2026-07-13 01:51:32 -07:00
2026-07-13 04:39:58 -07:00
2026-07-12 17:03:26 +02:00
2026-07-12 12:48:22 +01:00
2026-07-12 17:30:35 -07:00
2026-07-12 18:08:26 -07:00
2026-07-12 09:17:31 +01:00
2026-07-12 12:48:22 +01:00
2026-07-13 05:33:16 -07:00
2026-07-11 16:43:58 -07:00
2026-07-13 02:53:15 -07:00
2026-07-13 05:24:49 -07:00
2026-07-13 02:34:06 -07:00
2026-07-13 06:08:28 -07:00
2026-07-12 08:40:22 +08:00
2026-07-13 01:51:32 -07:00
2026-07-12 23:46:16 -07:00
2026-07-12 19:58:55 -07:00