Spaces:
Running
Running
import gradio as gr | |
import replicate | |
import os | |
REPLICATE_API_TOKEN = os.getenv("REPLICATE_API_TOKEN") | |
def process_audio(audio): | |
if audio is None: | |
return "No audio file uploaded." | |
output = replicate.run( | |
"victor-upmeet/whisperx:84d2ad2d6194fe98a17d2b60bef1c7f910c46b2f6fd38996ca457afd9c8abfcb", | |
input={"audio_file": open(audio, "rb")}, | |
api_token=REPLICATE_API_TOKEN | |
) | |
segments = output.get("segments") if isinstance(output, dict) else output | |
script = " ".join(seg["text"] for seg in segments) if segments else output.get("text", "No transcription found.") | |
return script | |
with gr.Blocks(theme="monochrome") as demo: | |
gr.Markdown("# AIML430 Lecture Transcription Tool") | |
gr.Markdown("Upload an audio file to begin.") | |
audio_input = gr.Audio(type="filepath", sources=["upload"], label="Audio File") | |
raw_text_output = gr.Textbox( | |
label="Raw Text Output", | |
show_copy_button=True, | |
lines=10 | |
) | |
audio_input.change( | |
fn=process_audio, | |
inputs=audio_input, | |
outputs=raw_text_output | |
) | |
demo.launch() |