Merge pull request #3480 from pipecat-ai/pk/fix-grok-realtime-smallwebrtc
Fix an issue where Grok Realtime would error out when running with Sm…
This commit is contained in:
1
changelog/3480.fixed.md
Normal file
1
changelog/3480.fixed.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
- Fixed an issue where Grok Realtime would error out when running with SmallWebRTC transport.
|
||||||
@@ -752,6 +752,14 @@ class GrokRealtimeLLMService(LLMService):
|
|||||||
|
|
||||||
async def _send_user_audio(self, frame):
|
async def _send_user_audio(self, frame):
|
||||||
"""Send user audio to Grok."""
|
"""Send user audio to Grok."""
|
||||||
|
# Don't send audio if conversation setup is still pending, as it can
|
||||||
|
# lead to errors. For example: audio sent before conversation setup
|
||||||
|
# will be interpreted as having Grok's default sample rate (24000),
|
||||||
|
# and if that differs from the sample rate we eventually set through
|
||||||
|
# the conversation setup, Grok will error out.
|
||||||
|
if self._llm_needs_conversation_setup:
|
||||||
|
return
|
||||||
|
|
||||||
payload = base64.b64encode(frame.audio).decode("utf-8")
|
payload = base64.b64encode(frame.audio).decode("utf-8")
|
||||||
await self.send_client_event(events.InputAudioBufferAppendEvent(audio=payload))
|
await self.send_client_event(events.InputAudioBufferAppendEvent(audio=payload))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user