|
import gradio as gr |
|
from transformers import pipeline |
|
|
|
accuracy_classifier = pipeline(task="audio-classification", model="JohnJumon/pronunciation_accuracy") |
|
fluency_classifier = pipeline(task="audio-classification", model="JohnJumon/fluency_accuracy") |
|
prosodic_classifier = pipeline(task="audio-classification", model="JohnJumon/prosodic_accuracy") |
|
|
|
def pronunciation_scoring(audio): |
|
accuracy = accuracy_classifier(audio) |
|
fluency = fluency_classifier(audio) |
|
prosodic = prosodic_classifier(audio) |
|
result = { |
|
'accuracy': accuracy, |
|
'fluency': fluency, |
|
'prosodic': prosodic |
|
} |
|
for category, scores in result.items(): |
|
max_score_label = max(scores, key=lambda x: x['score'])['label'] |
|
result[category] = max_score_label |
|
return result |
|
|
|
gradio_app = gr.Interface( |
|
pronunciation_scoring, |
|
inputs=gr.Audio(sources=["microphone"]), |
|
outputs=gr.Label(label="Result"), |
|
title="Pronunciation Scoring", |
|
) |
|
|
|
if __name__ == "__main__": |
|
gradio_app.launch() |