File size: 1,952 Bytes
adf1205
 
 
 
 
 
4631e13
adf1205
 
 
 
 
 
 
6b5ce4a
adf1205
 
 
 
 
 
 
1829484
adf1205
 
 
 
 
 
6b5ce4a
 
 
4631e13
6eb3fe4
4631e13
 
075f4a5
4631e13
d25a92c
6b5ce4a
f8b0b7a
adf1205
 
 
 
 
 
4631e13
adf1205
 
 
6b5ce4a
adf1205
 
 
 
 
 
 
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
import gradio as gr
from utilities.setup import get_files
# import spaces


#@spaces.GPU
def process_meeting(audio_input, num_speakers, speaker_names):
    if 1 < num_speakers < 6:
        answer = "Completed Loading Data", "fl"
    else:
        answer = "Number of speakers out of range", "fl"
    return answer



def main(conf):

    with gr.Blocks(theme=gr.themes.Soft(text_size="lg")) as demo:
    
        with gr.TabItem(conf["layout"]["page_names"][0]):
            
            gr.Markdown("🎤 Non-Video Meeting Transcription and Speaker Diarization")
            gr.Markdown("![](file/microphone_pen_and_paper.png)")
            gr.Markdown(get_files.load_markdown_file(conf["layout"]["about"]))
        

        with gr.TabItem(conf["layout"]["page_names"][1]):
            
            audio_input = gr.Audio(type="filepath", label="Upload Audio File")
            num_speakers = gr.Dropdown([2,3,4,5],
                                       label="Number of Speakers", 
                                       value=2)
            speaker_names = gr.Dataframe(
                label="Type your names and details. Your actual entries will be limited to the speakers you selected above.",
                headers=["Name", "Supporting Details"],
                datatype=["str", "str"],
                row_count=(5,"fixed"),
                col_count=(2, "fixed"),
            )

            
            process_button = gr.Button("Process")
            diarization_output = gr.Textbox(label="Diarization Output")
            label_file_link = gr.File(label="Download DAW Labels")
        
            process_button.click(
                fn=process_meeting,
                inputs=[audio_input, num_speakers, speaker_names],
                outputs=[diarization_output, label_file_link]
        )

    demo.launch(server_name="0.0.0.0", allowed_paths=["/"])




if __name__ == "__main__":
    conf = get_files.json_cfg()
    main(conf)