import gradio as gr | |
def greet(name): | |
return "Hello " + name + "!!" | |
demo = gr.Interface(fn=greet, inputs="text", outputs="text") | |
demo.launch() | |
# import asyncio | |
# from gradio_webrtc import AsyncAudioVideoStreamHandler | |
# class GeminiHandler(AsyncAudioVideoStreamHandler): | |
# def __init__( | |
# self, expected_layout="mono", output_sample_rate=24000, output_frame_size=480 | |
# ) -> None: | |
# super().__init__( | |
# expected_layout, | |
# output_sample_rate, | |
# output_frame_size, | |
# input_sample_rate=16000, | |
# ) | |
# self.audio_queue = asyncio.Queue() | |
# self.video_queue = asyncio.Queue() | |
# self.quit = asyncio.Event() | |
# self.session = None | |
# self.last_frame_time = 0 | |
# def copy(self) -> "GeminiHandler": | |
# """Copy gets called whenever a new user connects to the server. | |
# This ensures that each user has an independent handler. | |
# """ | |
# return GeminiHandler( | |
# expected_layout=self.expected_layout, | |
# output_sample_rate=self.output_sample_rate, | |
# output_frame_size=self.output_frame_size, | |
# ) | |
# async def video_receive(self, frame: np.ndarray): | |
# """Send video frames to the server""" | |
# if self.session: | |
# # send image every 1 second | |
# # otherwise we flood the API | |
# if time.time() - self.last_frame_time > 1: | |
# self.last_frame_time = time.time() | |
# await self.session.send(encode_image(frame)) | |
# if self.latest_args[2] is not None: | |
# await self.session.send(encode_image(self.latest_args[2])) | |
# self.video_queue.put_nowait(frame) | |
# async def video_emit(self) -> VideoEmitType: | |
# """Return video frames to the client""" | |
# return await self.video_queue.get() |