حساب RunPod با اعتبار
قیمت و موجودی GPU لحظهای است؛ عدد ثابتی در این راهنما مبنا نیست.
راهنمای عملی · بازبینیشده در ۱۳ ژوئیهٔ ۲۰۲۶
در این راهنما یک GPU ابری در RunPod میسازیم، ویدئوها را با faster-whisper پردازش میکنیم و برای هر فایل دو خروجی قابلاستفادهٔ TXT و SRT تحویل میگیریم.
بدون API Key در کد · مناسب فارسی و زبانهای دیگر · نیازمند حساب و اعتبار RunPod
پیش از شروع
این روش روی زیرساخت ابری اجرا میشود؛ یعنی ویدئوها موقتاً از کامپیوتر شما خارج میشوند. برای دادهٔ حساس، مرز حریم خصوصی و مقررات محل کارتان را پیش از آپلود بررسی کنید.
قیمت و موجودی GPU لحظهای است؛ عدد ثابتی در این راهنما مبنا نیست.
برای شروع کمدردسر با مدل large-v3. در حافظهٔ کمتر، مدل medium را امتحان کنید.
برای مدل، خروجی و فایل موقت نیز جا بگذارید؛ معمولاً ۱۰GB فضای اضافه انتخاب محافظهکارانهای است.
نام پایهٔ دو فایل یکسان نباشد؛ مثلاً lesson.mp4 و lesson.mkv را همزمان نگذارید.
video.txt برای خواندن و video.srt برای زیرنویس زماندار ساخته میشود.
نامها، عددها و اصطلاحات تخصصی ممکن است اشتباه شوند؛ خروجی AI متن نهاییِ تضمینشده نیست.
RunPod از صفر
نام بعضی دکمهها ممکن است با بهروزرسانی رابط RunPod کمی تغییر کند. ترتیب مفهومی همین است: ساخت Pod، اتصال، نصب، آپلود، اجرا و دانلود.
در صفحهٔ Pods گزینهٔ Deploy را انتخاب کنید. برای یک کار قابلپیشبینی، حالت On-Demand مناسبتر از Spot است، چون Spot میتواند قطع شود.
یک GPU موجود با حافظهٔ کافی انتخاب کنید. سپس جدیدترین Template رسمی Runpod PyTorch دارای JupyterLab و CUDA سازگار را بردارید. در زمان نگارش، faster-whisper جدید به CUDA 12 و cuDNN 9 نیاز دارد؛ پیش از Deploy، نیازمندی فعلی پروژه را هم ببینید.
همهٔ فایلهای مهم را زیر /workspace نگه دارید. Volume disk این مسیر با Stop باقی میماند، ولی هزینهٔ فضای آن ادامه دارد و با Terminate از بین میرود. برای استفادهٔ تکراری میتوانید Network Volume مستقل بسازید.
بعد از آمادهشدن Pod روی Connect بزنید. برای مدیریت فایل از HTTP Services → Jupyter Lab و برای فرمانهای کوتاه از Start / Open Web Terminal استفاده کنید. Web Terminal برای پردازش طولانی مناسب نیست؛ فرمان پسزمینهٔ این صفحه یا SSH را بهکار ببرید.
فرمان آمادهٔ بخش بعد را در Terminal کپی کنید. نخستین بار، مدل نیز دانلود میشود؛ پس چند دقیقه زمان و فضای کافی در نظر بگیرید.
در JupyterLab وارد /workspace/transcriber/input شوید و فایلها را با Upload یا drag-and-drop اضافه کنید. برای فایلهای بسیار بزرگ، SCP یا rsync مطمئنتر است.
زبان پیشفرض فرمان فارسی است. برای تشخیص خودکار، --language fa را به --language auto تغییر دهید. فایل کامل موجود هرگز بازنویسی نمیشود.
فرمانهای آمادهٔ کپی
هر باکس را جداگانه کپی و در Terminal اجرا کنید. مسیرها طوری انتخاب شدهاند که دادهٔ مهم زیر /workspace بماند.
باید نام GPU و نسخهٔ Driver/CUDA را نشان دهد.
nvidia-smi
کتابخانه از PyPI نصب میشود.
mkdir -p /workspace/transcriber/input /workspace/transcriber/output /workspace/transcriber/models
cd /workspace/transcriber
python -m pip install --upgrade pip
python -m pip install faster-whisper
فایل نمایشدادهشده در پایین صفحه را مستقیم میگیرد.
curl -fsSL https://a-sh.app/guides/video-to-text/transcribe_videos.py -o /workspace/transcriber/transcribe_videos.py
تا پایان باز بمانید و پیشرفت را در همان Terminal ببینید.
cd /workspace/transcriber
python transcribe_videos.py \
--input /workspace/transcriber/input \
--output /workspace/transcriber/output \
--language fa \
--model large-v3 \
--device auto \
--model-cache /workspace/transcriber/models
برای ویدئوی طولانی؛ بستن پنجره پردازش را متوقف نمیکند.
cd /workspace/transcriber
nohup python transcribe_videos.py --input input --output output --language fa --model large-v3 --device auto --model-cache models > transcribe.log 2>&1 &
echo "Process ID: $!"
tail -f transcribe.log
برای خروج از نمایش Log کلیدهای Ctrl+C را بزنید؛ خود پردازش پسزمینه ادامه مییابد.
کد کامل پروژه
همین فایل قابلدانلود، داخل باکس بارگذاری میشود تا نسخهٔ نمایشی و نسخهٔ اجرایی با هم فرق نداشته باشند. کد هیچ Token یا اطلاعات ورود ندارد.
در حال بارگذاری کد…
اگر چیزی درست پیش نرفت
متن کامل خطا را نگه دارید. بیشتر مشکلها از کمبود حافظهٔ GPU، ناسازگاری CUDA یا مسیر اشتباه ورودی میآیند.
Pod را Stop کنید و GPU بزرگتر بگیرید، یا در فرمان --model medium و در صورت نیاز --compute-type int8_float16 را امتحان کنید.
Template دارای CUDA 12 سازگار را بررسی کنید و دستور رسمی Linux در بخش GPU مستندات faster-whisper را اجرا کنید؛ این دستورها با نسخهها تغییر میکنند.
در JupyterLab مطمئن شوید فایل داخل /workspace/transcriber/input است، پسوند پشتیبانی میشود و Upload کامل شده است.
اگر فرمان پسزمینه را اجرا کردهاید، با tail -f /workspace/transcriber/transcribe.log وضعیت را ببینید. در اجرای معمولی، فرمان را دوباره بزنید؛ خروجیهای کامل Skip میشوند.
برای زبان مشخص، کد ISO مثل fa، en یا de بدهید. کیفیت صدای کم، موسیقی، چند گوینده و اصطلاح تخصصی دقت را پایین میآورند.
اسکریپت فایل کامل موجود را نگه میدارد و فقط خروجی مفقود را دوباره میسازد. فایل ناقص با پسوند .part خروجی نهایی محسوب نمیشود.
پایان کار و قطع هزینه
وجود فایل روی Pod به معنی داشتن نسخهٔ امن روی کامپیوتر شما نیست. خروجی را دانلود و باز کنید، تعداد فایلها را بسنجید و سپس منابع ابری را ببندید.
cd /workspace/transcriber && python -m zipfile -c transcripts.zip output
منابع رسمی و زنده
این راهنما در ۱۳ ژوئیهٔ ۲۰۲۶ با منابع رسمی زیر تطبیق داده شده است. قیمت، موجودی GPU، نام دکمهها و نیازمندی CUDA ممکن است تغییر کند.
آمادهٔ استفادهٔ دوباره
کد را دانلود کنید، زبان و پوشه را انتخاب کنید و دفعهٔ بعد همان مسیر آزمودهشده را تکرار کنید.