openfm_data / app.py
Omarkhaled99's picture
Create app.py
bf61cc2 verified
import pandas as pd
import gradio as gr
# Load Parquet data
df = pd.read_parquet('audio_and_text.parquet')
# Define function to fetch audio and text by number or index
def fetch_record(index):
index = int(index)
if 0 <= index < len(df):
record = df.iloc[index]
number = record['number']
diacritics_audio = (record['with_diacritics_audio'], "audio.wav")
no_diacritics_audio = (record['no_diacritics_audio'], "audio.wav")
diacritics_text = record['diacritics_text']
no_diacritics_text = record['no_diacritics_text']
return (f"Record Number: {number}",
diacritics_audio, diacritics_text,
no_diacritics_audio, no_diacritics_text)
else:
return ("Index out of range.", None, "", None, "")
# Gradio UI setup
with gr.Blocks() as demo:
gr.Markdown("## πŸ“š Arabic Audio & Text Browser")
index_input = gr.Number(label="Enter Record Index", value=0, precision=0)
btn_fetch = gr.Button("Fetch Record")
record_label = gr.Label(label="Record Info")
with gr.Row():
with gr.Column():
diacritics_audio_player = gr.Audio(label="Audio (With Diacritics)")
diacritics_text_output = gr.Textbox(label="Text (With Diacritics)", lines=5)
with gr.Column():
no_diacritics_audio_player = gr.Audio(label="Audio (No Diacritics)")
no_diacritics_text_output = gr.Textbox(label="Text (No Diacritics)", lines=5)
btn_fetch.click(fn=fetch_record,
inputs=index_input,
outputs=[record_label,
diacritics_audio_player, diacritics_text_output,
no_diacritics_audio_player, no_diacritics_text_output])
# Launch the app
demo.launch()