File size: 3,750 Bytes
7dbde5a 734a7ea ce63f6f d29fa84 5a4ac64 734a7ea 5a4ac64 be00192 716237b be00192 716237b 5a4ac64 deab4af 0bb57fd 716237b 5a4ac64 466dd36 5a4ac64 293f2a1 5a4ac64 0e8c610 b1e229a 0e8c610 2dddc43 d6d3fa1 0e8c610 2dddc43 d6d3fa1 0e8c610 d6d3fa1 b1e229a 0e8c610 d6d3fa1 0e8c610 d6d3fa1 0e8c610 b1e229a 2dddc43 b1e229a 5a4ac64 716237b 734a7ea deb8ef3 ea0e1cd 716237b deb8ef3 716237b 734a7ea deb8ef3 ea0e1cd 716237b d29fa84 5a4ac64 d29fa84 5a4ac64 d6d3fa1 5a4ac64 734a7ea 5a4ac64 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
import gradio as gr
import util
import tts
import asr
# Front-End
with gr.Blocks() as app:
with gr.Row():
# Input Column
with gr.Column(scale=1):
with gr.Row():
script_choice = gr.Dropdown(
choices=["Uyghur Arabic", "Uyghur Latin"],
label="1. Select Input Script",
value="Uyghur Arabic",
interactive=True
)
with gr.Row():
input_text = gr.Textbox(
label="2. Input Uyghur Text to Pronounce or Generate Text with Buttons below",
placeholder="Enter Uyghur text here...",
)
# Add buttons for generating short and long texts
with gr.Row():
generate_short_btn = gr.Button("Generate Short Text")
generate_long_btn = gr.Button("Generate Long Text")
with gr.Row():
example_audio = gr.Audio(label="3. Click \"Generate Example Pronunciation\"")
with gr.Row():
tts_btn = gr.Button("Generate Example Pronunciation")
with gr.Row():
user_audio = gr.Audio(
label="4. Record/Upload Your Pronunciation",
sources=["microphone", "upload"],
type="filepath",
)
with gr.Row():
check_btn = gr.Button("Check My Pronunciation")
# Output Column
with gr.Column(scale=1):
# Group transcripts together
with gr.Group():
with gr.Row():
transcript_ugArab_box = gr.Textbox(
label="User Transcript (Uyghur Arabic)",
placeholder="ASR transcription of user audio..."
)
with gr.Row():
transcript_ugLatn_box = gr.Textbox(
label="User Transcript (Uyghur Latin)",
placeholder="ASR transcription of user audio..."
)
# Group machine and user pronunciation
with gr.Group():
with gr.Row():
machine_pronunciation_box = gr.Textbox(
label="Machine Pronunciation",
placeholder="IPA representation of the machine pronunciation..."
)
with gr.Row():
user_pronunciation_box = gr.Textbox(
label="User Pronunciation",
placeholder="IPA representation of the user pronunciation..."
)
with gr.Group():
with gr.Row():
match_box = gr.html(
label="Phonetic Match",
)
with gr.Row():
score_box = gr.Textbox(
label="Phonetic Score",
)
# Bind functions to buttons
generate_short_btn.click(
util.generate_short_text,
inputs=[script_choice],
outputs=[input_text]
)
generate_long_btn.click(
util.generate_long_text,
inputs=[script_choice],
outputs=[input_text]
)
tts_btn.click(
tts.generate_audio,
inputs=[input_text, script_choice],
outputs=[example_audio]
)
check_btn.click(
asr.check_pronunciation,
inputs=[input_text, script_choice, user_audio],
outputs=[transcript_ugArab_box, transcript_ugLatn_box, machine_pronunciation_box, user_pronunciation_box, match_box, score_box]
)
# Main
if __name__ == "__main__":
app.launch() |