mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-07-25 12:01:04 +02:00
feat(tts): add websocket transport option for xAI TTS (#548)
* feat(tts): add websocket transport option for xAI TTS
xAI's pipecat service ships two implementations: XAIHttpTTSService
(batch REST, used by the existing xAI integration) and XAITTSService
(realtime WebSocket streaming). This adds a transport field on
XAITTSConfiguration ("http", default, unchanged behavior | "websocket")
and wires the latter into create_tts_service(), so live voice calls can
opt into lower time-to-first-byte streaming instead of request/response.
Originally built and battle-tested independently against v1.41.0 in a
production deployment (7 live Telnyx calls, 2026-07-15) before this PR
existed; ported onto current main and given a config toggle instead of
a second provider entry so it composes with the existing xAI HTTP path
rather than duplicating it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* refactor(tts): use websocket-only xAI TTS, drop the transport toggle
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: Sabiha Khan <sabihak89@gmail.com>
This commit is contained in:
parent
177bbe6885
commit
94dce42209
4 changed files with 13 additions and 27 deletions
|
|
@ -86,7 +86,7 @@ from pipecat.services.speechmatics.stt import (
|
|||
SpeechmaticsSTTService,
|
||||
SpeechmaticsSTTSettings,
|
||||
)
|
||||
from pipecat.services.xai.tts import XAIHttpTTSService, XAITTSSettings
|
||||
from pipecat.services.xai.tts import XAITTSService, XAIWebsocketTTSSettings
|
||||
from pipecat.transcriptions.language import Language
|
||||
from pipecat.utils.text.xml_function_tag_filter import XMLFunctionTagFilter
|
||||
|
||||
|
|
@ -817,11 +817,9 @@ def create_tts_service(
|
|||
pipecat_language = Language(language_code)
|
||||
except ValueError:
|
||||
pipecat_language = Language.EN
|
||||
return XAIHttpTTSService(
|
||||
return XAITTSService(
|
||||
api_key=user_config.tts.api_key,
|
||||
sample_rate=audio_config.transport_out_sample_rate,
|
||||
encoding="pcm",
|
||||
settings=XAITTSSettings(
|
||||
settings=XAIWebsocketTTSSettings(
|
||||
voice=voice,
|
||||
language=pipecat_language,
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue