themechanism's picture
Fix Gradio app runtime
f73471d verified
import gradio as gr
from script_fidelity import compute_corpus_sfr, list_languages
EXAMPLE_TEXT = "کابل کې ښه هوا ده\nromanized output"
def _score(predictions_text: str, language: str, digit_policy: str) -> dict:
predictions = [
line.strip()
for line in (predictions_text or "").splitlines()
if line.strip()
]
if not predictions:
return {"error": "Enter at least one prediction."}
return compute_corpus_sfr(
predictions,
language=language,
digit_policy=digit_policy,
return_details=True,
)
with gr.Blocks(title="Script Fidelity Rate") as demo:
gr.Markdown(
"# Script Fidelity Rate\n"
"Reference-free script check for multilingual ASR. "
"Enter one prediction per line."
)
with gr.Row():
language = gr.Dropdown(
choices=list_languages(),
value="ps_af",
label="FLEURS language",
)
digit_policy = gr.Radio(
choices=["count", "ignore"],
value="count",
label="Digit policy",
)
predictions = gr.Textbox(
value=EXAMPLE_TEXT,
lines=6,
label="Predictions",
)
button = gr.Button("Compute SFR")
output = gr.JSON(label="Result")
button.click(_score, [predictions, language, digit_policy], output)
predictions.submit(_score, [predictions, language, digit_policy], output)
if __name__ == "__main__":
demo.launch()