|
import gradio as gr |
|
import requests |
|
|
|
from transcribe import transcribe |
|
from sentiment_analysis import sentiment_analyser |
|
from summary import summarizer |
|
from topic import topic_gen |
|
from data import data |
|
|
|
|
|
def main(audio_file, number_of_speakers): |
|
|
|
text_data = transcribe(audio_file, number_of_speakers) |
|
print(text_data) |
|
|
|
topic = topic_gen(text_data)[0]["generated_text"] |
|
summary = summarizer(text_data)[0]["summary_text"] |
|
sent_analy = sentiment_analyser(text_data) |
|
sent_analysis = sent_analy[0]["label"] + " (" + str(float(sent_analy[0]["score"]) * 100) + "%)" |
|
return topic, summary, sent_analysis |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("# Shravan - Unlocking Value from Call Data") |
|
with gr.Box(): |
|
with gr.Row(): |
|
with gr.Column(): |
|
audio_file = gr.Audio(label="Upload an Audio file (.wav)", source="upload", type="filepath") |
|
number_of_speakers = gr.Number(label="Number of Speakers", value=2) |
|
with gr.Row(): |
|
btn_clear = gr.ClearButton(value="Clear", components=[audio_file, number_of_speakers]) |
|
btn_submit = gr.Button(value="Submit") |
|
with gr.Column(): |
|
topic = gr.Textbox(label="Title", placeholder="Title for Conversation") |
|
summary = gr.Textbox(label="Short Summary", placeholder="Short Summary for Conversation") |
|
sentiment_analysis = gr.Textbox(label="Sentiment Analysis", placeholder="Sentiment Analysis for Conversation") |
|
btn_submit.click(fn=main, inputs=[audio_file, number_of_speakers], outputs=[topic, summary, sentiment_analysis]) |
|
gr.Markdown("## Examples") |
|
gr.Examples( |
|
examples=[ |
|
["./examples/sample4.wav", 2], |
|
], |
|
inputs=[audio_file, number_of_speakers], |
|
outputs=[topic, summary, sentiment_analysis], |
|
fn=main, |
|
) |
|
gr.Markdown( |
|
""" |
|
NOTE: The Tool takes around 5mins to run. So be patient! ;) |
|
See [https://github.com/peb-peb/shravan](https://github.com/peb-peb/shravan) for more details. |
|
""" |
|
) |
|
|
|
demo.launch() |
|
|