Tải audio từ YouTube (hoặc nhận file cục bộ), nhận dạng giọng nói bằng Whisper,
xuất ra file .srt và .vtt kèm timestamp.
Phiên làm việc tạo ra repo này chạy trong môi trường bị chặn mạng ra YouTube
(proxy trả 403 với mọi host youtube.com, youtu.be, googlevideo.com). Không
tải được video thì không nhận dạng được. Nên phần làm được là bộ script chạy
trên máy bạn — nơi có internet.
Cần Python 3.9+ và ffmpeg.
# ffmpeg
brew install ffmpeg # macOS
sudo apt install ffmpeg # Ubuntu/Debian
# thư viện Python
pip install -r requirements.txt# Từ URL YouTube, tự phát hiện ngôn ngữ
python generate_subtitles.py "https://youtu.be/DP5DkEEcCjQ"
# Ép tiếng Việt, model lớn hơn cho chính xác, xuất cả srt lẫn vtt
python generate_subtitles.py "https://youtu.be/DP5DkEEcCjQ" \
--language vi --model medium --format srt vtt --name DP5DkEEcCjQ
# Từ file cục bộ
python generate_subtitles.py video.mp4 --out-dir phudeĐường dẫn file phụ đề được in ra stdout; log tiến trình in ra stderr.
| Tham số | Mặc định | Ý nghĩa |
|---|---|---|
source |
bắt buộc | URL YouTube hoặc đường dẫn file audio/video |
--model |
small |
tiny/base/small/medium/large-v3. To hơn = chính xác hơn, chậm hơn, tốn RAM hơn |
--language |
tự phát hiện | Mã ngôn ngữ ép buộc, vd vi, en |
--out-dir |
. |
Thư mục xuất |
--format |
srt |
srt, vtt, hoặc cả hai |
--name |
subtitles |
Tên file, không kèm đuôi |
Tiếng Việt nên dùng tối thiểu small, video quan trọng thì medium hoặc
large-v3. tiny/base chạy nhanh nhưng sai nhiều với tiếng Việt. Lần đầu
chạy sẽ tải trọng số model về, vài trăm MB đến ~3GB tùy cỡ.
Mặc định script thử faster-whisper trước (nhanh hơn nhiều, ăn ít RAM). Không có
thì tự chuyển sang openai-whisper.