A little cleanup
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user