a little cleanup
This commit is contained in:
@@ -40,7 +40,7 @@ class StaticSpriteResponse(OrchestratorResponse):
|
||||
self.image_bytes = img.tobytes()
|
||||
|
||||
def do_play(self) -> None:
|
||||
self.output_queue.put(QueueFrame(FrameType.IMAGE_FRAME, self.image_bytes))
|
||||
self.output_queue.put(QueueFrame(FrameType.IMAGE, self.image_bytes))
|
||||
|
||||
|
||||
class IntroSpriteResponse(StaticSpriteResponse):
|
||||
@@ -73,8 +73,8 @@ class AnimatedSpriteLLMResponse(LLMResponse):
|
||||
|
||||
def get_frames_from_tts_response(self, audio_frame) -> list[QueueFrame]:
|
||||
return [
|
||||
QueueFrame(FrameType.AUDIO_FRAME, audio_frame),
|
||||
QueueFrame(FrameType.IMAGE_FRAME, random.choice(self.image_bytes))
|
||||
QueueFrame(FrameType.AUDIO, audio_frame),
|
||||
QueueFrame(FrameType.IMAGE, random.choice(self.image_bytes))
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ async def main(room_url):
|
||||
return
|
||||
|
||||
async for audio in audio_generator:
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO_FRAME, audio))
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO, audio))
|
||||
|
||||
# wait for the output queue to be empty, then leave the meeting
|
||||
transport.output_queue.join()
|
||||
|
||||
@@ -41,7 +41,7 @@ async def main(room_url):
|
||||
audio_generator: AsyncGenerator[bytes, None] = tts.run_tts(f"Hello there, {participant['info']['userName']}!")
|
||||
|
||||
async for audio in audio_generator:
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO_FRAME, audio))
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO, audio))
|
||||
|
||||
print("setting up call state handler")
|
||||
@transport.event_handler("on_call_state_updated")
|
||||
|
||||
@@ -29,7 +29,7 @@ async def main(room_url):
|
||||
"role": "system",
|
||||
"content": "You are an LLM in a WebRTC session, and this is a 'hello world' demo. Say hello to the world."
|
||||
}]
|
||||
await text_to_llm_queue.put(QueueFrame(FrameType.LLM_MESSAGE_FRAME, messages))
|
||||
await text_to_llm_queue.put(QueueFrame(FrameType.LLM_MESSAGE, messages))
|
||||
await text_to_llm_queue.put(QueueFrame(FrameType.END_STREAM, None))
|
||||
|
||||
llm_task = asyncio.create_task(llm.run())
|
||||
|
||||
@@ -27,7 +27,7 @@ async def main(room_url):
|
||||
@transport.event_handler("on_participant_joined")
|
||||
async def on_participant_joined(transport, participant):
|
||||
(_, image_bytes) = await image_task
|
||||
transport.output_queue.put(QueueFrame(FrameType.IMAGE_FRAME, image_bytes))
|
||||
transport.output_queue.put(QueueFrame(FrameType.IMAGE, image_bytes))
|
||||
|
||||
await transport.run()
|
||||
|
||||
|
||||
@@ -41,11 +41,11 @@ async def main(room_url:str):
|
||||
))
|
||||
|
||||
async for audio_chunk in tts.run_tts("My friend the LLM is now going to tell a joke about llamas."):
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO_FRAME, audio_chunk))
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO, audio_chunk))
|
||||
|
||||
llm_response = await llm_response_task
|
||||
async for audio_chunk in tts.run_tts(llm_response):
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO_FRAME, audio_chunk))
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO, audio_chunk))
|
||||
|
||||
|
||||
# wait for the output queue to be empty, then leave the meeting
|
||||
|
||||
@@ -98,12 +98,12 @@ async def main(room_url):
|
||||
data = await month_data_task
|
||||
transport.output_queue.put(
|
||||
[
|
||||
QueueFrame(FrameType.IMAGE_FRAME, data["image"]),
|
||||
QueueFrame(FrameType.AUDIO_FRAME, data["audio"][0]),
|
||||
QueueFrame(FrameType.IMAGE, data["image"]),
|
||||
QueueFrame(FrameType.AUDIO, data["audio"][0]),
|
||||
]
|
||||
)
|
||||
for audio in data["audio"][1:]:
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO_FRAME, audio))
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO, audio))
|
||||
|
||||
# wait for the output queue to be empty, then leave the meeting
|
||||
transport.output_queue.join()
|
||||
|
||||
@@ -32,7 +32,11 @@ async def main(room_url:str, token):
|
||||
]
|
||||
|
||||
sentence = ""
|
||||
async for message in transport.get_transcriptions():
|
||||
async for frame in transport.get_media_frames():
|
||||
if frame.frame_type != FrameType.TRANSCRIPTION:
|
||||
continue
|
||||
|
||||
message = frame.frame_data
|
||||
if message["session_id"] == transport.my_participant_id:
|
||||
continue
|
||||
|
||||
@@ -46,7 +50,7 @@ async def main(room_url:str, token):
|
||||
async for response in llm.run_llm_async_sentences(messages):
|
||||
full_response += response
|
||||
async for audio in tts.run_tts(response):
|
||||
transport.output_queue.put(QueueFrame(FrameType.AUDIO_FRAME, audio))
|
||||
await transport.output_queue.put(QueueFrame(FrameType.AUDIO, audio))
|
||||
|
||||
messages.append({"role": "assistant", "content": full_response})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user