سلام وقت بخیر
خواستم بجای 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…
خواندن کامل ←