A little cleanup

This commit is contained in:
Moishe Lettvin
2024-01-05 20:41:52 -05:00
parent b48a377b17
commit 7f51c0c9b2
4 changed files with 25 additions and 22 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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:

View File

@@ -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: