import gradio as gr # from logic import Speaker_speech_analysis from scipy.io import wavfile from wav2vec_aligen import speaker_pronunciation_assesment def create_html_from_scores(word_levels): html_output = '' for word, level in word_levels: if level == '/': html_output += f'{level} ' elif level == 'Wrong': html_output += f'{word} ' elif level == 'Understandable': html_output += f'{word} ' else: html_output += f'{word} ' return html_output def generate_progress_bar(score, label): score = round(score, 2) score_text = f"{score:.2f}" if score < 100 else "100" if score < 30: bar_color = "#dc3545" elif score < 60: bar_color = "#dc6545" elif score < 80: bar_color = "#ffc107" else: bar_color = "#28a745" bar_length = f"{(score / 100) * 100}%" return f"""
{html_content}
Word Per Minute {wpm:0.2f}
{pronunciation_progress_bar} {fluency_progress_bar} {content_progress_bar} """ # return html_with_css # Define the Gradio interface iface = gr.Interface(fn=analyze_audio, inputs=[gr.Textbox(label='Training Text', placeholder='Write the text for pronunciation task', interactive=True, visible=True, show_copy_button=True,), gr.Audio(label="Recoreded Audio", sources=['microphone', 'upload']) ], outputs=[gr.HTML(label="Analysis of pronunciation"), ], # css=additional_css, # title="Audio Analysis Tool", description="Write any text and recored an audio to predict pronunciation erors" ) # Run the Gradio app if __name__ == "__main__": iface.launch(share=True)