Spaces:
Sleeping
Sleeping
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 | |
def main(audio_file, number_of_speakers): | |
# Audio to Text Converter | |
text_data = transcribe(audio_file, number_of_speakers) | |
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 | |
# UI Interface on the Hugging Face Page | |
with gr.Blocks() as demo: | |
gr.Markdown(""" | |
# Shravan - Unlocking Value from Call Data | |
> **NOTE:** You need to give a `.wav` audio file and the audio file should be `monochannel`. | |
""") | |
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], | |
["./examples/monopos.wav", 2], | |
["./examples/mononeg.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() | |