seba3y commited on
Commit
2032e56
·
1 Parent(s): f27cc13

Delete gradio_app.py

Browse files
Files changed (1) hide show
  1. gradio_app.py +0 -108
gradio_app.py DELETED
@@ -1,108 +0,0 @@
1
- import gradio as gr
2
- from audio import predict_all # This is your custom module for predictions
3
- import re # Regular expressions for text processing
4
-
5
- # Additional CSS for styling the confidence bars and the result layout
6
- additional_css = """
7
- /* CSS for the confidence bars */
8
- .confidence-section {
9
- display: flex;
10
- align-items: center;
11
- margin-top: 10px;
12
- }
13
-
14
- .confidence-label {
15
- margin-right: 10px;
16
- font-weight: bold;
17
- }
18
- .confidence-bar {
19
- height: 20px;
20
- width: 100%;
21
- background-color: #eee;
22
- border-radius: 10px;
23
- margin: 10px 0;
24
- }
25
-
26
- .confidence-fill {
27
- height: 100%;
28
- border-radius: 10px;
29
- background-color: #4caf50; /* Change color based on confidence level if desired */
30
- text-align: center;
31
- color: white;
32
- line-height: 20px;
33
- }
34
- /* Additional CSS for styling the rest of your results */
35
- """
36
-
37
- # Function to generate custom HTML for the confidence bar
38
- def custom_confidence_bar(confidence):
39
- color = "#4caf50" if confidence > 75 else "#FFC107" if confidence > 50 else "#F44336"
40
- return f"""
41
- <div class="confidence-section">
42
- <span class="confidence-label">Model Confidence:</span>
43
- <div class="confidence-bar">
44
- <div class="confidence-fill" style="width: {confidence}%; background-color: {color};">
45
- {confidence}%
46
- </div>
47
- </div>
48
- </div>
49
- """
50
-
51
-
52
- # Function to extract score level from message
53
- def extract_score_level(message):
54
- match = re.search(r'Score: (\d+)-(\d+)', message)
55
- score_level = f"{match.group(1)} of 10" if match else "N/A"
56
- return score_level
57
- def message_markdown(label, message, task, score_level):
58
- md = f'''# {label}
59
- **Model Prediction:** {message}
60
-
61
- **{task} Score:** {score_level}
62
- '''
63
- return md
64
- # Function to process the audio file and analyze it
65
- def analyze_audio(audio_data):
66
- # Assuming predict_all returns a tuple of (message, confidence) for accuracy and fluency
67
- accuracy, fluency = predict_all(audio_data)
68
-
69
- # Unpack the results
70
- accuracy_message, accuracy_confidence = accuracy
71
- fluency_message, fluency_confidence = fluency
72
-
73
- # Extract the score level from the message
74
- accuracy_score = extract_score_level(accuracy_message)
75
- fluency_score = extract_score_level(fluency_message)
76
-
77
- # Remove the score level from the original message
78
- accuracy_message = accuracy_message.split(",")[1].strip() if "," in accuracy_message else accuracy_message
79
- fluency_message = fluency_message.split(",")[1].strip() if "," in fluency_message else fluency_message
80
-
81
- # Generate the confidence bar HTML
82
- accuracy_confidence_html = custom_confidence_bar(accuracy_confidence * 100)
83
- fluency_confidence_html = custom_confidence_bar(fluency_confidence * 100)
84
-
85
- accuracy_markdown = message_markdown('Accuracy of Pronunciation', accuracy_message, 'Pronunciation', accuracy_score)
86
-
87
- fluency_markdown = message_markdown('Speaker Fluency', fluency_message, 'Fluency', fluency_score)
88
-
89
- return accuracy_markdown, accuracy_confidence_html, fluency_markdown, fluency_confidence_html
90
-
91
- # Define the Gradio interface
92
- iface = gr.Interface(
93
- fn=analyze_audio,
94
- inputs=gr.Audio(label="Upload Audio"),
95
- outputs=[
96
- gr.Markdown(label="Accuracy Score Level"),
97
- gr.HTML(label="Accuracy Confidence"),
98
- gr.Markdown(label="Fluency Score Level"),
99
- gr.HTML(label="Fluency Confidence"),
100
- ],
101
- css=additional_css,
102
- title="Audio Analysis Tool",
103
- description="Upload an audio file to analyze its accuracy and fluency."
104
- )
105
-
106
- # Run the Gradio app
107
- if __name__ == "__main__":
108
- iface.launch()