import gradio as gr from transformers import WhisperProcessor, WhisperForConditionalGeneration import torch import librosa # بارگیری مدل و پردازنده model_name = "hackergeek98/tinyyyy_whisper" processor = WhisperProcessor.from_pretrained(model_name) model = WhisperForConditionalGeneration.from_pretrained(model_name) # انتقال مدل به GPU اگر موجود باشد device = "cuda" if torch.cuda.is_available() else "cpu" model.to(device) # تنظیم شناسه‌های اجباری برای زبان فارسی forced_decoder_ids = processor.get_decoder_prompt_ids(language="fa", task="transcribe") def transcribe_audio(audio_file): # بارگیری فایل صوتی و نمونه‌برداری مجدد audio_data, sampling_rate = librosa.load(audio_file, sr=16000) # پیش‌پردازش inputs = processor(audio_data, sampling_rate=samning_rate, return_tensors="pt").input_features.to(device) # تولید متن با اجبار به زبان فارسی with torch.no_grad(): predicted_ids = model.generate( inputs, forced_decoder_ids=forced_decoder_ids ) # رمزگشایی خروجی transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0] return transcription # ایجاد رابط Gradio interface = gr.Interface( fn=transcribe_audio, inputs=gr.Audio(type="filepath"), outputs=gr.Textbox(label="متن فارسی"), title="تبدیل گفتار به متن فارسی", description="فایل صوتی فارسی آپلود کنید (فرمت‌های wav, mp3, ...)" ) # اجرای برنامه interface.launch()