سلام وقت بخیر
خواستم بجای whisper از faster-whisper استفاده کنم که برای فیلم های تایم بالا سریع تر باشه و کمتر به gpu اینا فشار بیاره
اما کدش موقع ران انگار گیر میکنه و رو این حالتی که تو عکس فرستادم میمونه
کتابخانه های زیر رو هم نصب کردم:
nvidia-cudnn-cu12
nvidia-cublas-cu12
لطفا راهنمایی کنید❤️
# making_subtitle_english_faster.py
# faster-whisper LARGE (GPU)
# Fixed input file: D:\confidental\Music\Tear.mp3
import os
import subprocess
import tempfile
from faster_whisper import WhisperModel
import pysubs2
def extract_audio(input_path, output_wav):
cmd = [
"ffmpeg", "-y",
"-i", input_path,
"-vn",
"-acodec", "pcm_s16le",
"-ar", "16000",
"-ac", "1",
output_wav
]
subprocess.run(cmd, check=True)
def save_srt(segments, output_srt):
subs = pysubs2.SSAFile()
for seg in segments:
subs.append(
pysubs2.SSAEvent(
start=int(seg.start * 1000),
end=int(seg.end * 1000),
text=seg.text.strip()
)
)
subs.save(output_srt)
print(f"SRT created -> {output_srt}")
def main():
input_file = r"D:\confidental\Music\Tears.mp3"
if not os.path.exists(input_file):
print("Input file not found!")
return
output_srt = os.path.splitext(input_file)[0] + ".srt"
print("Loading Whisper LARGE model on GPU...")
# :white_check_mark: این خط اصلاح شد
model = WhisperModel(
"large-v3", # ← آرگومان اول، نه keyword
device="cuda",
compute_type="float16"
)
with tempfile.TemporaryDirectory() as tmp:
audio_wav = os.path.join(tmp, "audio.wav")
print("Extracting audio...")
extract_audio(input_file, audio_wav)
print("Transcribing...")
segments, info = model.transcribe(
audio_wav,
beam_size=5,
vad_filter=True,
language="en",
condition_on_previous_text=False
)
save_srt(segments, output_srt)
print("Done :white_check_mark:")
print("Language:", info.language)
print("Duration:", round(info.duration, 2), "seconds")
if __name__ == "__main__":
main()
Thread سلام وقت بخیر
4 Nachrichten · –E Y E اگه بتونید یکم اطلاعات دقیقتر بدید بهتر میشه عبارت هایی مثل thank you زمانی نوشته میشن که برنامه در تشخیص با مشکل مواجه میشه مثلا زمان های خالی که چیزی برای پردازش وجود نداره اینا چاپ میشن در صورتی که این اتفاق میوفته باید تنظیمات مربوژ به تشخیص سکوت و گفتار رو ایجاد یا بهینه کنید پیشنهادی برای models.transcribe segments, info = model.transcribe( audio_wav, beam_size=5, vad_filter=True, vad_parameters=dict( min_silence_duration_ms=500, speech_pad_ms=300, no_speech_threshold=0.95, compression_ratio_threshold=2.4, language="en", condition_on_previous_text=False ) یا vad_parameter های دیگه ای که فکر میکنید نیازه اگه فایلاتون تمیز نشدن قبل از اینکه بعنوان ورودی استفاده کنید تمیزشون کنید تا نویز و چیزای اذیت کار کم یا حذف بشه ffmpeg -i input.wav -af "arnndn=m=rnnoise.rnnn, silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-30dB" output_cleaned.wav توی اجرای برنامه چک کنید ببینید اون پرینتی که گذاشتی نمایش داده میشه یا نه loadin whisper large model on gpu کدتون رو روی فایل دیگه هم امتحان میکنید همینه؟