File size: 1,114 Bytes
ee1c1bd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()