Spaces:
Build error
Build error
| import gradio as gr | |
| import whisper | |
| from googletrans import Translator | |
| import srt | |
| import datetime | |
| import tempfile | |
| import os | |
| # Load model once | |
| model = whisper.load_model("base") | |
| translator = Translator() | |
| def transcribe(audio): | |
| try: | |
| # Check if audio file exists | |
| if audio is None: | |
| return "โ No audio uploaded!", None | |
| # Transcribe audio | |
| result = model.transcribe(audio) | |
| segments = result.get("segments", []) | |
| subtitles = [] | |
| full_text = "" | |
| for i, seg in enumerate(segments): | |
| start = datetime.timedelta(seconds=float(seg["start"])) | |
| end = datetime.timedelta(seconds=float(seg["end"])) | |
| text = seg["text"].strip() | |
| # Translate Hindi โ Hinglish (pronunciation) | |
| translated = translator.translate(text, src='hi', dest='en').pronunciation | |
| if not translated: | |
| translated = translator.translate(text, src='hi', dest='en').text | |
| subtitles.append(srt.Subtitle(index=i+1, start=start, end=end, content=translated)) | |
| full_text += translated + " " | |
| # Create SRT file | |
| srt_content = srt.compose(subtitles) | |
| # Temporary file save | |
| srt_path = os.path.join(tempfile.gettempdir(), "output.srt") | |
| with open(srt_path, "w", encoding="utf-8") as f: | |
| f.write(srt_content) | |
| return full_text.strip(), srt_path | |
| except Exception as e: | |
| return f"โ Runtime Error: {str(e)}", None | |
| iface = gr.Interface( | |
| fn=transcribe, | |
| inputs=gr.Audio(source="upload", type="filepath", label="๐ค Upload Hindi Audio"), | |
| outputs=[ | |
| gr.Textbox(label="๐ Hinglish Subtitles"), | |
| gr.File(label="โฌ๏ธ Download SRT File") | |
| ], | |
| title="Hinglish Subtitle Generator ๐ฎ๐ณ", | |
| description="Upload Hindi speech audio โ get Hinglish subtitles (.srt) instantly!" | |
| ) | |
| iface.launch() |