added input audio pause setting. no frame to update that state, yet.

This commit is contained in:
Kwindla Hultman Kramer
2024-10-07 15:46:33 -07:00
parent 1c5ccd3406
commit 5426891feb

View File

@@ -117,22 +117,26 @@ class OpenAILLMServiceRealtimeBeta(LLMService):
api_key: str,
base_url="wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01",
session_properties: events.SessionProperties = events.SessionProperties(),
start_audio_paused: bool = False,
**kwargs,
):
super().__init__(base_url=base_url, **kwargs)
self.api_key = api_key
self.base_url = base_url
self._websocket = None
self._receive_task = None
self._session_properties = session_properties
self._audio_input_paused = start_audio_paused
self._websocket = None
self._receive_task = None
self._context = None
self._bot_speaking = False
def can_generate_metrics(self) -> bool:
return True
def set_audio_input_paused(self, paused: bool):
self._audio_input_paused = paused
async def start(self, frame: StartFrame):
await super().start(frame)
await self._connect()
@@ -386,7 +390,8 @@ class OpenAILLMServiceRealtimeBeta(LLMService):
self._context = context
await self._create_response()
elif isinstance(frame, InputAudioRawFrame):
await self._send_user_audio(frame)
if not self._audio_input_paused:
await self._send_user_audio(frame)
elif isinstance(frame, StartInterruptionFrame):
await self._handle_interruption(frame)
elif isinstance(frame, _InternalMessagesUpdateFrame):