File size: 6,884 Bytes
7740f1a
 
 
d91d96d
7740f1a
 
 
 
 
 
 
d91d96d
7740f1a
 
 
d91d96d
 
 
 
 
7740f1a
 
 
 
 
 
 
 
 
 
 
 
 
 
d91d96d
 
ab98393
d91d96d
 
7740f1a
 
 
 
d91d96d
 
7740f1a
 
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
import gradio as gr
import core

with gr.Blocks(css = "app.css") as iface:
    gr.Markdown(elem_id="logo" , value="![](data:image/png;base64,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)")
    with gr.Row():
        with gr.Tab("Upload Audio as File"):
            audio_input_u = gr.Audio(label = 'Upload Audio',source="upload",type="filepath")
            transcribe_audio_u = gr.Button('Transcribe')
            
        with gr.Tab("Record Audio"):
            audio_input_r = gr.Audio(label = 'Record Audio Input',source="microphone", type="filepath")
            transcribe_audio_r = gr.Button('Transcribe')
        
        with gr.Tab("Summarize Video from URL"):
            with gr.Row():
                with gr.Column(elem_id="video_elem"): 
                    url_input = gr.Textbox(label="URL", elem_id="url_input")
                    video = gr.Video(show_label=False, interactive = False)
                    video.style(width=600)
            transcribe_url = gr.Button('Transcribe')

    with gr.Row(equal_height=True):
        with gr.Column(scale=2):
            asr_out_text = gr.Textbox(label="Transcript", lines=2, max_lines=20)
            asr_out_lang = gr.Dropdown(["English", "Vietnamese"], label="Language")
        with gr.Column(scale=1):
            asr_out_text_detail = gr.Textbox(label="Detail", lines=6, max_lines=24)
    
    with gr.Column():
        summarize_btn = gr.Button("Summarize")
        summarize_out = gr.Textbox(label="Summarization")

    transcribe_audio_u.click(core.asr_transcript, audio_input_u, [asr_out_text, asr_out_lang, asr_out_text_detail])
    transcribe_audio_r.click(core.asr_transcript, audio_input_r, [asr_out_text, asr_out_lang, asr_out_text_detail])    
    # audio_input_r.stream(core.asr_transcript, audio_input_r, [asr_out_text, asr_out_lang, asr_out_text_detail])    
    url_input.submit(core.load_video_url, [url_input], video)
    url_input.change(core.load_video_url, [url_input], video)
    transcribe_url.click(core.asr_transcript, video, [asr_out_text, asr_out_lang, asr_out_text_detail])    
    summarize_btn.click(core.text_summarize, [asr_out_text, asr_out_lang], summarize_out)

    examples = gr.Examples(examples=["Doc Truyen Dem Khuya.mp3", "The Diver An Uncanny Tale.mp3"],
                           inputs=[audio_input_u])
    examples = gr.Examples(examples=["https://www.youtube.com/watch?v=ADi7F695d90"],
                           inputs=[url_input])

iface.launch(debug=True)