AzVoiceSent / app.py
nijatzeynalov's picture
Update app.py
079ae85
import whisper
import gradio as gr
from transformers import pipeline
model = whisper.load_model("base")
sentiment_analysis = pipeline("sentiment-analysis",model="siebert/sentiment-roberta-large-english")
def process_audio_file(file):
with open(file, "rb") as f:
inputs = f.read()
audio = ffmpeg_read(inputs, sampling_rate)
return audio
def transcribe(Microphone, File_Upload):
warn_output = ""
if (Microphone is not None) and (File_Upload is not None):
warn_output = "WARNING: You've uploaded an audio file and used the microphone. " \
"The recorded file from the microphone will be used and the uploaded audio will be discarded.\n"
file = Microphone
elif (Microphone is None) and (File_Upload is None):
return "ERROR: You have to either use the microphone or upload an audio file"
elif Microphone is not None:
file = Microphone
else:
file = File_Upload
result = model.transcribe(file, task="translate")
text = sentiment_analysis(result['text'])
label = text[0]['label']
score = text[0]['score']
return label, score
iface = gr.Interface(
fn=transcribe,
inputs=[
gr.inputs.Audio(source="microphone", type='filepath', optional=True),
gr.inputs.Audio(source="upload", type='filepath', optional=True),
],
outputs=[
gr.outputs.Textbox(label="Sentiment"),
gr.outputs.Textbox(label="Score")
],
layout="horizontal",
theme="huggingface",
title="AzVoiceSent: Sentiment Classification from Voice Transcriptions in Azerbaijani",
description="AzVoiceSent is research project focused on sentiment classification from voice transcriptions in Azerbaijani. The project has the potential to provide valuable insights into the sentiment expressed by speakers in various domains and applications. ",
allow_flagging='never',
)
iface.launch(enable_queue=True)