From 7f51c0c9b22e549a12aee354d6eee6c60420d63c Mon Sep 17 00:00:00 2001 From: Moishe Lettvin Date: Fri, 5 Jan 2024 20:41:52 -0500 Subject: [PATCH] A little cleanup --- src/dailyai/services/ai_services.py | 2 +- src/dailyai/services/azure_ai_services.py | 6 +++--- .../services/daily_transport_service.py | 19 +++++++++--------- .../05-sync-speech-and-text.py | 20 +++++++++++-------- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/dailyai/services/ai_services.py b/src/dailyai/services/ai_services.py index 9c52d43f8..a99a7aba4 100644 --- a/src/dailyai/services/ai_services.py +++ b/src/dailyai/services/ai_services.py @@ -44,7 +44,7 @@ class TTSService(AIService): class ImageGenService(AIService): # Renders the image. Returns an Image object. @abstractmethod - async def run_image_gen(self, sentence) -> tuple[str, bytes]: + async def run_image_gen(self, sentence, size) -> tuple[str, bytes]: pass diff --git a/src/dailyai/services/azure_ai_services.py b/src/dailyai/services/azure_ai_services.py index 9104b7304..05d73cf30 100644 --- a/src/dailyai/services/azure_ai_services.py +++ b/src/dailyai/services/azure_ai_services.py @@ -153,20 +153,20 @@ class AzureImageGenService(ImageGenService): api_version=api_version, ) - async def run_image_gen(self, sentence) -> tuple[str, Image.Image]: + async def run_image_gen(self, sentence, size) -> tuple[str, bytes]: self.logger.info("Generating azure image", sentence) image = self.client.images.generate( model=self.model, prompt=sentence, n=1, - size=f"1024x1024", + size=size, ) url = image["data"][0]["url"] response = requests.get(url) dalle_stream = io.BytesIO(response.content) - dalle_im = Image.open(dalle_stream) + dalle_im = Image.open(dalle_stream.tobytes()) return (url, dalle_im) diff --git a/src/dailyai/services/daily_transport_service.py b/src/dailyai/services/daily_transport_service.py index 025843442..c73c988d6 100644 --- a/src/dailyai/services/daily_transport_service.py +++ b/src/dailyai/services/daily_transport_service.py @@ -194,11 +194,7 @@ class DailyTransportService(EventHandler): pass def on_transcription_message(self, message): - with self.tracer.start_as_current_span( - "on_transcription_message", context=self.ctx - ): - if message["session_id"] != self.my_participant_id: - self.handle_transcription_fragment(message["text"]) + pass def on_transcription_stopped(self, stopped_by, stopped_by_error): self.logger.info(f"Transcription stopped {stopped_by}, {stopped_by_error}") @@ -216,10 +212,9 @@ class DailyTransportService(EventHandler): try: while not self.stop_threads.is_set(): if self.image: - print("rendering image") self.camera.write_frame(self.image) - time.sleep(1.0 / 24) # 24 fps + time.sleep(1.0 / 8) # 8 fps except Exception as e: self.logger.error(f"Exception {e} in camera thread.") print("exiting run_camera thread") @@ -231,9 +226,13 @@ class DailyTransportService(EventHandler): all_audio_frames = bytearray() while True: try: - frames: OutputQueueFrame | list[OutputQueueFrame] = self.output_queue.get() - if type(frames) != list: - frames = [frames] + frames_or_frame: OutputQueueFrame | list[OutputQueueFrame] = self.output_queue.get() + if type(frames_or_frame) == OutputQueueFrame: + frames: list[OutputQueueFrame] = [frames_or_frame] + elif type(frames_or_frame) == list: + frames: list[OutputQueueFrame] = frames_or_frame + else: + raise Exception("Unknown type in output queue") for frame in frames: if frame.frame_type == FrameType.END_STREAM: diff --git a/src/samples/theoretical-to-real/05-sync-speech-and-text.py b/src/samples/theoretical-to-real/05-sync-speech-and-text.py index 456a89954..26a1e3db4 100644 --- a/src/samples/theoretical-to-real/05-sync-speech-and-text.py +++ b/src/samples/theoretical-to-real/05-sync-speech-and-text.py @@ -8,12 +8,13 @@ async def main(room_url, token): class Sample05Transport(DailyTransportService): def on_participant_joined(self, participant): super().on_participant_joined(participant) + asyncio.run(show_all_months()) meeting_duration_minutes = 4 transport = Sample05Transport( room_url, token, - "Simple Bot", + "Month Narration Bot", meeting_duration_minutes, ) transport.mic_enabled = True @@ -56,11 +57,12 @@ async def main(room_url, token): ] ) - try: - transport.run() + async def show_all_months(): + # for now just two to avoid 429s with Azure months = [ "January", - "February", + "February",] + """ "March", "April", "May", @@ -70,14 +72,16 @@ async def main(room_url, token): "September", "October", "November", - "December" + "December", ] - sleeper = asyncio.sleep(meeting_duration_minutes * 60) + """ print("gathering") await asyncio.gather(*[show_month(month) for month in months]) - print("waiting") - await sleeper print("done") + + try: + transport.run() + await asyncio.sleep(meeting_duration_minutes * 60) except Exception as e: print("Exception", e) finally: