File size: 2,345 Bytes
75b6ee6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# zoom_test_frontend.py
import gradio as gr
from zoom_test_backend import ZoomTranscriptionBackend
# Initialize backend
backend = ZoomTranscriptionBackend()
def update_display():
"""Function to get latest transcription from backend"""
return backend.get_transcription()
def handle_start_listening():
"""Handle start button click"""
return backend.start_listening()
def handle_stop_listening():
"""Handle stop button click"""
return backend.stop_listening()
def handle_clear_transcription():
"""Handle clear button click"""
return backend.clear_transcription()
# Create Gradio interface
with gr.Blocks(title="Zoom Transcription Test") as demo:
gr.Markdown("# ๐ฏ Zoom Live Transcription Test")
gr.Markdown("Frontend UI - Backend handles all Zoom logic")
with gr.Row():
with gr.Column():
start_btn = gr.Button("๐ง Start Listening", variant="primary")
stop_btn = gr.Button("โน๏ธ Stop Listening", variant="secondary")
# In your frontend, add this button:
refresh_btn = gr.Button("๐ Refresh Transcription")
clear_btn = gr.Button("๐ Clear Text", variant="stop")
status = gr.Textbox(label="Status", interactive=False)
with gr.Row():
transcription_display = gr.Textbox(
label="Live Transcription",
lines=15,
max_lines=20,
interactive=False,
placeholder="Transcription will appear here live..."
)
# Auto-refresh the transcription display every second
demo.load(
fn=update_display,
outputs=transcription_display,
)
# Button actions
start_btn.click(
fn=handle_start_listening,
outputs=status
)
stop_btn.click(
fn=handle_stop_listening,
outputs=status
)
# Add this click event:
refresh_btn.click(
fn=update_display,
outputs=transcription_display
)
clear_btn.click(
fn=handle_clear_transcription,
outputs=status
).then(
fn=update_display,
outputs=transcription_display
)
if __name__ == "__main__":
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=True
) |