From 16b060d9e956f391bdbefd5261377fba77baee98 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Wed, 11 Feb 2026 18:04:20 -0500 Subject: [PATCH] Fix Grok Realtime voice type validation for server responses The Grok API now returns prefixed voice names (e.g. "human_Ara") in session.updated events, causing Pydantic validation errors. Widen the voice field type from GrokVoice to GrokVoice | str to accept both user-facing names and server-returned values. --- src/pipecat/services/grok/realtime/events.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pipecat/services/grok/realtime/events.py b/src/pipecat/services/grok/realtime/events.py index 4069ff927..1f89a92f7 100644 --- a/src/pipecat/services/grok/realtime/events.py +++ b/src/pipecat/services/grok/realtime/events.py @@ -216,7 +216,7 @@ class SessionProperties(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True) instructions: Optional[str] = None - voice: Optional[GrokVoice] = "Ara" + voice: Optional[GrokVoice | str] = "Ara" turn_detection: Optional[TurnDetection] = Field( default_factory=lambda: TurnDetection(type="server_vad") )