ASR-Hindi / app.py
HarshitJoshi's picture
Update app.py
104c95a verified
raw
history blame
1.39 kB
from transformers import pipeline
import gradio as gr
import os
model_id = "HarshitJoshi/whisper-small-Hindi"
pipe = pipeline("automatic-speech-recognition", model=model_id)
def transcribe_speech(filepath):
output = pipe(
filepath,
max_new_tokens=256,
generate_kwargs={
"task": "transcribe",
"language": "hindi",
},
chunk_length_s=10,
batch_size=4,
)
return output["text"]
example_folder = "./examples"
example_files = [f for f in os.listdir(example_folder) if f.endswith('.wav') or f.endswith('.mp3')]
def handle_input(mic, upload, example):
if mic is not None:
return transcribe_speech(mic)
elif upload is not None:
return transcribe_speech(upload.name)
elif example is not None:
return transcribe_speech(os.path.join(example_folder, example))
else:
return "Please provide an input."
with gr.Blocks() as demo:
with gr.Row():
mic = gr.Audio(type="filepath", label="Record from Microphone")
upload = gr.Audio(type="file", label="Upload an Audio File")
example = gr.Dropdown(choices=example_files, label="Or Select an Example")
output = gr.Textbox(label="Transcription")
submit_btn = gr.Button("Transcribe")
submit_btn.click(handle_input, inputs=[mic, upload, example], outputs=output)
demo.launch(debug=True)