Phần này giới thiệu 1 công cụ mình tự viết bằng python dựa vào AI genimi hỗ trợ và có tham khảo 1 số nguồn ngoài.
Giới thiệu chương trình.
Chương trình Python này có tên là "SEGG OCR Tool v1.36_Optimizer" và được thiết kế để tự động hóa quá trình tạo phụ đề SRT từ video bằng cách sử dụng kết hợp công cụ VideoSubFinder (VSF) và Google Drive API cho OCR (Nhận dạng ký tự quang học).Dưới đây là mô tả chi tiết về chức năng của chương trình:
Chức năng chính:
Tóm tắt các bước cài đặt chính:
- Trích xuất ảnh từ video bằng VideoSubFinder (VSF):
- Chương trình sử dụng một công cụ bên ngoài là VideoSubFinderWXW_intel.exe để trích xuất các khung hình chứa phụ đề từ video.
- Người dùng có thể chỉ định đường dẫn đến file video.
- Chương trình cung cấp các tùy chọn crop (cắt xén) video để tập trung vào vùng chứa phụ đề, giúp cải thiện độ chính xác của OCR. Các thông số crop có thể được nhập thủ công hoặc chọn từ các profile định sẵn (ví dụ: vlxx, javhd, sextop, phimKK, titdam) hoặc tùy chỉnh bằng công cụ chọn tọa độ trực quan trên video.
- VSF tạo ra thư mục RGBImages (hoặc TXTImages tùy chọn) chứa các ảnh khung hình đã được trích xuất và crop.
- Nhận dạng ký tự quang học (OCR) bằng Google Drive API:
- Chương trình sử dụng Google Drive API để thực hiện OCR trên các ảnh đã trích xuất.
- Mỗi ảnh được tải lên Google Drive dưới dạng tài liệu.
- Google Drive thực hiện OCR và chuyển đổi ảnh thành văn bản.
- Văn bản thô (raw text) sau OCR được tải xuống và lưu vào thư mục raw_texts.
- Văn bản được xử lý (loại bỏ các dòng thừa) và lưu vào thư mục texts.
- Sau khi tải văn bản về, tài liệu ảnh trên Google Drive sẽ bị xóa.
- Tạo file phụ đề SRT:
- Chương trình tổng hợp văn bản OCR từ các ảnh theo thứ tự thời gian (dựa trên tên file ảnh do VSF tạo ra, chứa thông tin thời gian).
- Nội dung văn bản và thông tin thời gian được định dạng theo chuẩn SRT (SubRip Subtitle).
- Người dùng có thể xem trước nội dung SRT trước khi lưu.
- File phụ đề SRT được lưu vào vị trí do người dùng chỉ định.
- Quản lý và Tùy chọn
- Cấu hình: Các cài đặt như ID thư mục Google Drive, đường dẫn VideoSubFinder, tùy chọn xóa/nén file, profile crop được lưu trong file config.ini.
- Giám sát thư mục: Chương trình giám sát thư mục RGBImages và tự động bắt đầu quá trình OCR khi có ảnh mới được tạo bởi VSF.
- Tiến trình và Log: Hiển thị thanh tiến trình và thông báo trạng thái trong giao diện đồ họa. Ghi log chi tiết quá trình hoạt động vào cửa sổ log và file log (nếu có).
- Tùy chọn xóa file: Người dùng có thể chọn xóa thư mục raw_texts và texts sau khi hoàn tất quá trình OCR và tạo phụ đề.
- Tùy chọn nén file: Có tùy chọn nén thư mục raw_texts thành file zip trước khi xóa (hoặc thay vì xóa).
- Tùy chọn tạo TXTImages: Người dùng có thể chọn tạo thư mục TXTImages thay vì RGBImages khi chạy VideoSubFinder (tùy chọn này có thể ảnh hưởng đến kết quả OCR tùy thuộc vào video).
- Công cụ chọn tọa độ Crop: Cung cấp giao diện trực quan để người dùng chọn vùng crop phụ đề trên khung hình video, giúp tùy chỉnh chính xác hơn.
- Giao diện người dùng (GUI) Tkinter:
- Giao diện đồ họa đơn giản, dễ sử dụng với các trường nhập liệu, nút bấm và checkbox.
- Cho phép người dùng chọn file video, thư mục ảnh (trong trường hợp đã có ảnh), nơi lưu file phụ đề.
- Cung cấp các tùy chọn cấu hình và điều khiển quá trình OCR.
- Hiển thị log quá trình hoạt động và thanh tiến trình.
Quy trình hoạt động tổng quát:
- Người dùng cấu hình API Google Drive (credentials.json, token.json) và cài đặt ban đầu (config.ini).
- Người dùng chọn file video (hoặc thư mục ảnh nếu đã có sẵn).
- Người dùng có thể tùy chỉnh các thông số crop hoặc chọn profile crop.
- Người dùng nhấn nút "Chạy VSF" để trích xuất ảnh từ video (nếu cần).
- Chương trình tự động giám sát thư mục ảnh và bắt đầu quá trình OCR cho từng ảnh bằng Google Drive API.
- Sau khi OCR hoàn tất, chương trình tạo file phụ đề SRT và hiển thị xem trước.
- Người dùng có thể lưu file SRT.
- Chương trình thực hiện các thao tác dọn dẹp (xóa/nén thư mục) tùy theo cấu hình.
Yêu cầu:
Để chương trình "SEGG OCR Tool v1.36_Optimizer" có thể chạy được, bạn cần đảm bảo các yêu cầu sau:
- Môi trường Python:
- Python: Cần cài đặt Python trên máy tính của bạn. Chương trình có thể được viết cho Python 3.x (nên dùng phiên bản mới nhất ổn định). Thư viện Python (Libraries): Bạn cần cài đặt các thư viện Python sau. Bạn có thể cài đặt chúng bằng pip (trình quản lý gói của Python). Mở command prompt hoặc terminal và chạy các lệnh sau: pip install google-api-python-client
- Cấu hình Google Drive API:
- Google Cloud Project & API Credentials:
- Tạo dự án trên Google Cloud Console: Truy cập Google Cloud Console và tạo một dự án mới (hoặc chọn một dự án hiện có).
- Bật Google Drive API: Trong dự án của bạn, tìm kiếm "Drive API" trong thanh tìm kiếm và bật Google Drive API.
- Tạo Credentials (Thông tin xác thực):
- Trong dự án, vào "APIs & Services" -> "Credentials".
- Click "Create credentials" -> "OAuth client ID".
- Chọn "Application type" là "Desktop app".
- Đặt tên cho OAuth client ID (ví dụ: "OCR Tool Client").
- Click "Create".
- Tải xuống file credentials.json. Đặt file này vào cùng thư mục với file OCR_v1.36_optimizer.py.
- token.json (Token xác thực): Khi bạn chạy chương trình lần đầu tiên, nó sẽ cố gắng lấy thông tin xác thực từ file token.json. Nếu file này không tồn tại hoặc không hợp lệ, chương trình sẽ mở trình duyệt để bạn đăng nhập vào tài khoản Google và cấp quyền truy cập Google Drive cho ứng dụng. Sau khi cấp quyền, token.json sẽ được tạo tự động.
- VideoSubFinder (VSF):
- Tải và cài đặt VideoSubFinder: Chương trình sử dụng VideoSubFinderWXW_intel.exe. Bạn cần tải xuống phiên bản VideoSubFinder (ví dụ, phiên bản 6.10 hoặc mới hơn) từ nguồn tin cậy (thường là từ các diễn đàn hoặc trang web liên quan đến phụ đề).
- Đường dẫn VideoSubFinder: Chương trình cấu hình đường dẫn mặc định là D:\VideoSubFinder_6.10\VideoSubFinderWXW_intel.exe. Bạn cần chỉnh sửa đường dẫn này trong file config.ini (hoặc trực tiếp trong code nếu cần) để trỏ đúng đến vị trí thực tế của file VideoSubFinderWXW_intel.exe trên máy tính của bạn.
- File cấu hình config.ini:
- Tạo file config.ini: Nếu file config.ini chưa tồn tại trong cùng thư mục với script Python, chương trình sẽ tạo nó khi chạy lần đầu hoặc khi bạn lưu cấu hình từ giao diện.
- Nội dung config.ini: File này chứa các cấu hình sau:
- folder_id: ID của thư mục Google Drive mà bạn muốn sử dụng để lưu trữ tạm thời ảnh OCR (mặc định là thư mục gốc).
- delete_raw_texts, delete_texts, nen_raw_texts: Các tùy chọn boolean (True/False) cho việc xóa/nén thư mục sau khi xử lý.
- videosubfinder_path: Đường dẫn đến file VideoSubFinderWXW_intel.exe.
- crop_profiles: Các profile crop định sẵn và giá trị crop tùy chỉnh.
- threads: Số luồng xử lý OCR đồng thời (mặc định 20).
- File đầu vào:
- File video: Nếu bạn muốn sử dụng VideoSubFinder để trích xuất ảnh, bạn cần có file video ở định dạng được hỗ trợ bởi VSF (ví dụ: MP4, AVI, MKV, MOV).
- Thư mục ảnh (tùy chọn): Nếu bạn đã có sẵn thư mục chứa các ảnh khung hình phụ đề (ví dụ, đã trích xuất bằng công cụ khác), bạn có thể chọn thư mục này làm đầu vào thay vì file video.
- Quyền truy cập Google Drive:
- Khi chạy chương trình lần đầu và cấp quyền, bạn cần đảm bảo tài khoản Google bạn sử dụng có đủ dung lượng lưu trữ trên Google Drive để chứa các ảnh tải lên tạm thời và các file văn bản OCR.
- pip install google-auth-httplib2
- pip install google-auth-oauthlib
- pip install httplib2
- pip install watchdog
- pip install oauth2client
- pip install pathlib
- pip install Pillow # PIL (Python Imaging Library) - cho xử lý ảnh
- pip install opencv-python # OpenCV - cho xử lý video (lấy thời lượng)
- pip install psutil # psutil - để quản lý tiến trình hệ thống
- Cài đặt Python và các thư viện cần thiết (pip install ...).
- Cấu hình Google Cloud Project, bật Drive API, và tải credentials.json. Đặt credentials.json vào cùng thư mục với script.
- Tải và cài đặt VideoSubFinder. Chỉnh sửa config.ini để trỏ đến đường dẫn đúng của VideoSubFinderWXW_intel.exe.
- Chạy script OCR_v1.36_optimizer.py. Lần đầu chạy, cấp quyền truy cập Google Drive khi được yêu cầu.
- Sử dụng giao diện chương trình để chọn video (hoặc thư mục ảnh), cấu hình crop, và bắt đầu quá trình OCR.
Sau khi hoàn thành các bước trên, chương trình sẽ có thể chạy và thực hiện chức năng tạo phụ đề SRT từ video một cách tự động. Nếu gặp lỗi, hãy kiểm tra kỹ các bước cài đặt, đường dẫn file, và quyền truy cập API.