from transformers import pipeline | |
import gradio as gr | |
asr = pipeline("automatic-speech-recognition", "facebook/wav2vec2-base-960h") | |
classifier = pipeline("text-classification") | |
def speech_to_text(speech): | |
text = asr(speech)["text"] # type: ignore | |
return text | |
def text_to_sentiment(text): | |
return classifier(text)[0]["label"] # type: ignore | |
demo = gr.Blocks() | |
with demo: | |
audio_file = gr.Audio(type="filepath") | |
text = gr.Textbox() | |
label = gr.Label() | |
b1 = gr.Button("Recognize Speech") | |
b2 = gr.Button("Classify Sentiment") | |
b1.click(speech_to_text, inputs=audio_file, outputs=text) | |
b2.click(text_to_sentiment, inputs=text, outputs=label) | |
if __name__ == "__main__": | |
demo.launch() | |