File size: 3,822 Bytes
1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f bb8566e 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f 752ce9b 1dc0a7f bb8566e |
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
import gradio as gr # needs to be installed
from dataset import Dataset
from model import Model
from utils import hf_login, compute_wer
hf_login()
dataset = Dataset()
models = Model()
def run_tests (dataset_choice:str, model:str):
MoDeL = Model()
MoDeL.select(model)
MoDeL.load()
DaTaSeT = Dataset(100)
DaTaSeT.load(dataset_choice)
references, predictions = MoDeL.process(DaTaSeT)
wer = compute_wer(references=references, predictions=predictions)
return wer
def eval(data_subset:str, model_1:str, model_2:str)->str:
wer_result_1 = run_tests(data_subset, model_1)
wer_result_2 = run_tests(data_subset, model_2)
return f"WER Score: {wer_result_1}", f"WER Score: {wer_result_2}"
def get_card(selected_model:str)->str:
if selected_model == "None":
return ""
elif selected_model == "Model2":
return "A very good model indeed"
elif selected_model == "Model3":
return "Also very good"
else:
return "Unknown Model"
def is_own(data_subset:str):
if data_subset == "own":
own_audio = gr.Audio(sources=['microphone'],streaming=False)
own_transcription = gr.TextArea(lines=2)
return own_audio, own_transcription
own_audio = None
own_transcription = None
return own_audio, own_transcription
with gr.Blocks() as demo:
gr.Markdown('# <p style="text-align: center;">VocalVenturer 💬</p>')
gr.Markdown("-------")
gr.Markdown("""#### Hello there, this is the VocalVenturer, this app is aimed at helping you making more informed model choices for ASR. Please choose a Data Subset to evalutate the Models on. You also have the opportunity to record and transcibe an own sample. The Models will be evaluated using the *WER* metric -> here is an amazing Leaderboard for it LINK""")
with gr.Row():
with gr.Column(scale=1):
pass
with gr.Column(scale=5):
data_subset = gr.Radio(
value="LibriSpeech Clean",
choices=dataset.get_options(),
label="Data subset / Own Sample",
)
with gr.Column(scale=1):
pass
with gr.Row():
own_audio = gr.Audio(sources=['microphone'],streaming=False,visible=False)
own_transcription = gr.TextArea(lines=2, visible=False)
data_subset.change(is_own, inputs=[data_subset], outputs=[own_audio, own_transcription])
with gr.Row():
with gr.Column(scale=1):
model_1 = gr.Dropdown(
choices=models.get_options(),
label="Select Model"
)
model_1_card = gr.Markdown("")
with gr.Column(scale=1):
model_2 = gr.Dropdown(
choices=models.get_options(),
label="Select Model"
)
model_2_card = gr.Markdown("")
# with gr.Column(scale=1):
# model_3 = gr.Dropdown(
# choices=models.get_options(),
# label="Select Model"
# )
# model_3_card = gr.Markdown("")
model_1.change(get_card, inputs=model_1, outputs=model_1_card)
model_2.change(get_card, inputs=model_2, outputs=model_2_card)
# model_3.change(get_card, inputs=model_3, outputs=model_3_card)
eval_btn = gr.Button(
value="Evaluate",
variant="primary",
size="sm"
)
gr.Markdown('## <p style="text-align: center;">Results</p>')
gr.Markdown("-------")
with gr.Row():
with gr.Column(scale=1):
results_model_1 = gr.Markdown("")
with gr.Column(scale=1):
results_model_2 = gr.Markdown("")
eval_btn.click(eval, [data_subset, model_1, model_2], [results_model_1, results_model_2])
demo.launch(debug=True) |