roninpb's picture
Update app.py
add431b
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import gradio as gr
import os
import shutil
def greet(audio):
print(audio)
if not os.path.exists("/tmp/test_wavs"):
os.makedirs("/tmp/test_wavs")
shutil.copy(audio, "/tmp/test_wavs/01_000001.wav")
print("-----------------------------------------------")
print(os.listdir("/tmp/test_wavs/"))
print("-----------------------------------------------")
inference_pipeline = pipeline(task=Tasks.auto_speech_recognition, model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch')
rec_result = inference_pipeline(audio_in=audio)
semantic_cls = pipeline(Tasks.text_classification, 'damo/nlp_structbert_sentiment-classification_chinese-base')
cls = semantic_cls(input=rec_result['text'])
cls_dict = {cls['labels'][0]: cls['scores'][0], cls['labels'][1]: cls['scores'][1]}
print(cls_dict)
return rec_result['text'], cls_dict
with gr.Blocks() as demo:
gr.Markdown("# 语言情感判断")
with gr.Tab("测试音频"):
test = gr.Audio(type='filepath', value='test.wav')
button = gr.Button("情感分析", variant="primary")
output_txt = gr.Textbox(label='文本')
output_label = gr.Label(label='情感')
button.click(greet,
inputs=test,
outputs=[output_txt, output_label])
with gr.Tab("麦克风"):
in_audio = gr.Audio(source='microphone', type='filepath')
button = gr.Button("情感分析", variant="primary")
output_txt = gr.Textbox(label='文本')
output_label = gr.Label(label='情感')
button.click(greet,
inputs=in_audio,
outputs=[output_txt, output_label])
with gr.Tab("上传音频"):
in_audio = gr.Audio(type='filepath')
button = gr.Button("情感分析", variant="primary")
output_txt = gr.Textbox(label='文本')
output_label = gr.Label(label='情感')
button.click(greet,
inputs=in_audio,
outputs=[output_txt, output_label])
gr.close_all()
demo.queue(concurrency_count=5)
demo.launch()