File size: 2,200 Bytes
5edee8f
ca9e7bd
6086f8c
 
ca9e7bd
 
 
 
f78137c
 
 
6086f8c
c359414
 
 
c88db77
c359414
f78137c
 
a65e425
6086f8c
 
 
 
 
ce8df04
 
 
c28084b
ce8df04
 
f78137c
ce8df04
 
ca9e7bd
 
ce8df04
ca9e7bd
ce8df04
 
 
f78137c
6086f8c
 
218b27d
f78137c
ca9e7bd
f78137c
ce8df04
218b27d
 
3422eeb
bafefac
218b27d
 
4befcc4
 
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
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()