a-sh.app همهٔ راهنماها

راهنمای عملی · بازبینی‌شده در ۱۳ ژوئیهٔ ۲۰۲۶

ویدئو را بدهید؛ متن و زیرنویس بگیرید.

در این راهنما یک GPU ابری در RunPod می‌سازیم، ویدئوها را با faster-whisper پردازش می‌کنیم و برای هر فایل دو خروجی قابل‌استفادهٔ TXT و SRT تحویل می‌گیریم.

بدون API Key در کد · مناسب فارسی و زبان‌های دیگر · نیازمند حساب و اعتبار RunPod

  • GPU ابریپردازش سریع‌تر فایل‌های طولانی
  • فارسی یا خودکارزبان ثابت یا تشخیص خودکار
  • TXT + SRTمتن زمان‌دار و زیرنویس

پیش از شروع

چه چیزی لازم دارید؟

این روش روی زیرساخت ابری اجرا می‌شود؛ یعنی ویدئوها موقتاً از کامپیوتر شما خارج می‌شوند. برای دادهٔ حساس، مرز حریم خصوصی و مقررات محل کارتان را پیش از آپلود بررسی کنید.

حساب

حساب RunPod با اعتبار

قیمت و موجودی GPU لحظه‌ای است؛ عدد ثابتی در این راهنما مبنا نیست.

GPU

ترجیحاً NVIDIA با ۱۲GB+

برای شروع کم‌دردسر با مدل large-v3. در حافظهٔ کمتر، مدل medium را امتحان کنید.

فضا

حجم ویدئوها + حاشیهٔ امن

برای مدل، خروجی و فایل موقت نیز جا بگذارید؛ معمولاً ۱۰GB فضای اضافه انتخاب محافظه‌کارانه‌ای است.

ورودی

MP4 · MKV · MOV · AVI · WEBM · M4V

نام پایهٔ دو فایل یکسان نباشد؛ مثلاً lesson.mp4 و lesson.mkv را هم‌زمان نگذارید.

خروجی

دو فایل برای هر ویدئو

video.txt برای خواندن و video.srt برای زیرنویس زمان‌دار ساخته می‌شود.

بازبینی

شنیدن و کنترل انسانی

نام‌ها، عددها و اصطلاحات تخصصی ممکن است اشتباه شوند؛ خروجی AI متن نهاییِ تضمین‌شده نیست.

RunPod از صفر

Pod را بسازید و آماده کنید.

نام بعضی دکمه‌ها ممکن است با به‌روزرسانی رابط RunPod کمی تغییر کند. ترتیب مفهومی همین است: ساخت Pod، اتصال، نصب، آپلود، اجرا و دانلود.

وارد RunPod شوید و Deploy را بزنید

در صفحهٔ Pods گزینهٔ Deploy را انتخاب کنید. برای یک کار قابل‌پیش‌بینی، حالت On-Demand مناسب‌تر از Spot است، چون Spot می‌تواند قطع شود.

GPU و Template را انتخاب کنید

یک GPU موجود با حافظهٔ کافی انتخاب کنید. سپس جدیدترین Template رسمی Runpod PyTorch دارای JupyterLab و CUDA سازگار را بردارید. در زمان نگارش، faster-whisper جدید به CUDA 12 و cuDNN 9 نیاز دارد؛ پیش از Deploy، نیازمندی فعلی پروژه را هم ببینید.

Storage را بر اساس کارتان تنظیم کنید

همهٔ فایل‌های مهم را زیر /workspace نگه دارید. Volume disk این مسیر با Stop باقی می‌ماند، ولی هزینهٔ فضای آن ادامه دارد و با Terminate از بین می‌رود. برای استفادهٔ تکراری می‌توانید Network Volume مستقل بسازید.

به Pod وصل شوید

بعد از آماده‌شدن Pod روی Connect بزنید. برای مدیریت فایل از HTTP Services → Jupyter Lab و برای فرمان‌های کوتاه از Start / Open Web Terminal استفاده کنید. Web Terminal برای پردازش طولانی مناسب نیست؛ فرمان پس‌زمینهٔ این صفحه یا SSH را به‌کار ببرید.

پوشه‌ها و نرم‌افزار را بسازید

فرمان آمادهٔ بخش بعد را در Terminal کپی کنید. نخستین بار، مدل نیز دانلود می‌شود؛ پس چند دقیقه زمان و فضای کافی در نظر بگیرید.

ویدئوها را Upload کنید

در JupyterLab وارد /workspace/transcriber/input شوید و فایل‌ها را با Upload یا drag-and-drop اضافه کنید. برای فایل‌های بسیار بزرگ، SCP یا rsync مطمئن‌تر است.

اجرا کنید و Log را ببینید

زبان پیش‌فرض فرمان فارسی است. برای تشخیص خودکار، --language fa را به --language auto تغییر دهید. فایل کامل موجود هرگز بازنویسی نمی‌شود.

فرمان‌های آمادهٔ کپی

از GPU تا خروجی، بدون حدس.

هر باکس را جداگانه کپی و در Terminal اجرا کنید. مسیرها طوری انتخاب شده‌اند که دادهٔ مهم زیر /workspace بماند.

۱. بررسی GPU

باید نام 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 یا اطلاعات ورود ندارد.

transcribe_videos.py
دانلود فایل
در حال بارگذاری کد…

اگر چیزی درست پیش نرفت

خطا را از نشانه‌اش پیدا کنید.

متن کامل خطا را نگه دارید. بیشتر مشکل‌ها از کمبود حافظهٔ GPU، ناسازگاری CUDA یا مسیر اشتباه ورودی می‌آیند.

خطای Out of memory یا CUDA

Pod را Stop کنید و GPU بزرگ‌تر بگیرید، یا در فرمان --model medium و در صورت نیاز --compute-type int8_float16 را امتحان کنید.

cuDNN یا cuBLAS پیدا نمی‌شود

Template دارای CUDA 12 سازگار را بررسی کنید و دستور رسمی Linux در بخش GPU مستندات faster-whisper را اجرا کنید؛ این دستورها با نسخه‌ها تغییر می‌کنند.

هیچ ویدئویی پیدا نشد

در JupyterLab مطمئن شوید فایل داخل /workspace/transcriber/input است، پسوند پشتیبانی می‌شود و Upload کامل شده است.

Terminal بسته شد

اگر فرمان پس‌زمینه را اجرا کرده‌اید، با tail -f /workspace/transcriber/transcribe.log وضعیت را ببینید. در اجرای معمولی، فرمان را دوباره بزنید؛ خروجی‌های کامل Skip می‌شوند.

زبان یا واژه‌ها اشتباه‌اند

برای زبان مشخص، کد ISO مثل fa، en یا de بدهید. کیفیت صدای کم، موسیقی، چند گوینده و اصطلاح تخصصی دقت را پایین می‌آورند.

فقط یکی از TXT یا SRT موجود است

اسکریپت فایل کامل موجود را نگه می‌دارد و فقط خروجی مفقود را دوباره می‌سازد. فایل ناقص با پسوند .part خروجی نهایی محسوب نمی‌شود.

پایان کار و قطع هزینه

اول دانلود؛ بعد Stop یا Terminate.

وجود فایل روی Pod به معنی داشتن نسخهٔ امن روی کامپیوتر شما نیست. خروجی را دانلود و باز کنید، تعداد فایل‌ها را بسنجید و سپس منابع ابری را ببندید.

  1. خروجی‌ها را کنترل کنیددر /workspace/transcriber/output برای هر ویدئو یک TXT و یک SRT ببینید.
  2. یک ZIP بسازیدفرمان زیر پوشهٔ خروجی را برای دانلود ساده‌تر بسته‌بندی می‌کند.
  3. دانلود و بازکردن محلیدر JupyterLab روی ZIP راست‌کلیک و Download را انتخاب کنید؛ سپس فایل را روی کامپیوتر خود باز کنید.
  4. هزینه را متوقف کنیدStop، GPU را آزاد می‌کند ولی Volume disk هنوز هزینه دارد. اگر چیزی لازم ندارید، پس از نسخهٔ پشتیبان Terminate کنید.
cd /workspace/transcriber && python -m zipfile -c transcripts.zip output

منابع رسمی و زنده

اگر رابط یا نسخه‌ها عوض شد، از اینجا بررسی کنید.

این راهنما در ۱۳ ژوئیهٔ ۲۰۲۶ با منابع رسمی زیر تطبیق داده شده است. قیمت، موجودی GPU، نام دکمه‌ها و نیازمندی CUDA ممکن است تغییر کند.

آمادهٔ استفادهٔ دوباره

یک راهنما؛ هر تعداد ویدئو.

کد را دانلود کنید، زبان و پوشه را انتخاب کنید و دفعهٔ بعد همان مسیر آزموده‌شده را تکرار کنید.

دانلود کد پایتون