Spaces:
Sleeping
Sleeping
import whisper | |
import gradio as gr | |
import subprocess | |
from autocorrect import Speller | |
# Load the Whisper model | |
model = whisper.load_model("large") | |
# Initialize autocorrect for Urdu | |
spell = Speller(lang='ur') # Set the language for Urdu | |
def transcribe_video(video_path): | |
try: | |
# Extract audio from the uploaded video | |
audio_path = "audio.wav" | |
subprocess.run( | |
["ffmpeg", "-i", video_path, "-ar", "16000", "-ac", "1", "-c:a", "pcm_s16le", audio_path], | |
check=True | |
) | |
# Transcribe the audio in Urdu | |
result = model.transcribe(audio_path, task="transcribe", language="ur") | |
transcribed_text = result["text"] | |
# Correct the transcribed text using autocorrect | |
corrected_text = spell(transcribed_text) | |
return corrected_text | |
except FileNotFoundError: | |
return "Error: ffmpeg is not installed or not found in the environment." | |
except Exception as e: | |
return f"An error occurred: {e}" | |
# Create the Gradio interface | |
interface = gr.Interface( | |
fn=transcribe_video, | |
inputs=gr.Video(label="Upload your Urdu-speaking video"), | |
outputs=gr.Textbox(label="Corrected Transcribed Text"), | |
title="Urdu Video Transcription with Correction", | |
description="Upload a video file in Urdu, and this app will transcribe the speech and correct the text using Whisper and autocorrect.", | |
) | |
# Launch the app | |
if __name__ == "__main__": | |
interface.launch() | |