| import os | |
| import gradio as gr | |
| demo = gr.Blocks() | |
| EXAMPLES = ["cantina.wav"] | |
| def speech_to_text(x): | |
| return [("yada yada", "speaker 0"), ("blah blah blah", "speaker 1")] | |
| def summarize(y, c): | |
| return "> " + len(c)*"stuff" | |
| def sentiment(x, y): | |
| if y == 0: | |
| return [("yada yada", "happy")] | |
| if y == 1: | |
| return [("blah blah blah", "sad")] | |
| with demo: | |
| with gr.Row(): | |
| with gr.Column(): | |
| audio = gr.Audio(label="Audio file", type='filepath') | |
| with gr.Row(): | |
| btn = gr.Button("Transcribe") | |
| with gr.Row(): | |
| examples = gr.components.Dataset(components=[audio], samples=[EXAMPLES], type="index") | |
| with gr.Column(): | |
| gr.Markdown("**Diarized Output:**") | |
| diarized = gr.HighlightedText(label="Diarized Output") | |
| gr.Markdown("Choose speaker(s) for summarization:") | |
| check = gr.CheckboxGroup(["Speaker 0", "Speaker 1"], show_label=False) | |
| gr.Textbox("**Summary:**") | |
| summary = gr.Markdown() | |
| gr.Markdown("Choose speaker for sentiment analysis:") | |
| radio = gr.Radio(["Speaker 0", "Speaker 1"], show_label=False, type="index") | |
| analyzed = gr.HighlightedText(label="Customer Sentiment") | |
| btn.click(speech_to_text, audio, diarized) | |
| check.change(summarize, [diarized, check], summary) | |
| radio.change(sentiment, [diarized, radio], analyzed) | |
| def load_example(example_id): | |
| processed_examples = audio.preprocess_example(EXAMPLES[example_id]) | |
| return processed_examples | |
| examples.click(load_example, inputs=[examples], outputs=[audio], _preprocess=False) | |
| demo.launch() |