[Python] Nhận diện, tạo phụ đề tự động cho video và âm thanh autosub

Table of Contents

Hướng dẫn cài đặt và sử dụng trên Windows và Mac OS X 

Nguồn: https://huwng.wordpress.com/2016/05/11/nhan-dien-tao-phu-de-tu-dong-cho-video-va-am-thanh/

[Cập nhật] Các bạn cài chương trình cho Windows chú ý nếu quá trình chạy bị lỗi hãy thay thế file autosub_app.py như ở bước 4.

[Cập nhật] Một số bạn gặp lỗi khi chạy lệnh python và pip trên cmd bị lỗi (‘pip’ is not recognized as an internal or external command) thì hãy thêm đường dẫn của hai thư mục C:\Python27\ và C:\Python27\Scripts (hoặc tương tự) vào biến môi trường Path nhé.

Các bạn đã bao giờ xem một bộ phim tiếng Anh nhưng chưa có phụ đề. Hay các bạn học theo một tutorial tải ở trên mạng bằng tiếng Anh, cố gắng nghe đi nghe lại nhưng không thể nghe được người ta nói gì chưa? Gần đây nhiều người có một giải pháp đó là upload video đó lên youtube và chờ youtube tạo sẵn phụ đề cho mình. Mặc dù youtube nhận diện khá tốt tuy nhiên đây là một công việc khá mất thời gian khi phải tải video lên youtube, sau đó lại xem trực tuyến trên youtube, đó là còn chưa kể đến các vấn đề về bản quyền nữa. Do đó, trong bài viết này mình sẽ hướng dẫn các bạn sử dụng công cụ Autosub để có thể nhanh chóng tạo phụ đề cho một video tiếng Anh bất kì.

Giới thiệu

Autosub là một công cụ được viết bằng ngôn ngữ lập trình Python, nguyên lý hoạt động của nó là sẽ tách phần âm thanh của video ra, sau đó upload lên mạng và sử dụng Google Web Speech API để nhận diện, tạo ra phụ đề và cuối cùng là lưu xuống máy tính của mình. Thông tin thêm về Autosub các bạn có thể tìm kiếm thêm ở đây

Môi trường

Mình chạy autosub trên hệ điều hành Ubuntu 14.04 đã cài đặt Python. Các bạn cũng có thể sử dụng Windows hoặc Mac OS X để chạy công cụ.

Hướng dẫn cài đặt

Trên Ubuntu

  1. Trước hết là máy của bạn phải cài đặt Python đã, nếu chưa, hãy chạy lệnhsudo apt-get update sudo apt-get install python python-dev sudo apt-get python pip
  2. Tiếp đến chúng ta cần phải cài đặt FFmpeg, sử dụng các lệnh sausudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get install ffmpeg -y
  3. Tiếp theo hãy cài đặt Autosub bằng lệnhsudo pip install autosub

Trên Windows

  1. Trước hết là máy của bạn phải cài đặt Python đã, nếu chưa, tải tại địa chỉ (chọn phiên bản 2.x.x):
    https://www.python.org/downloads/
    Các bạn lưu ý là thêm đường dẫn của hai thư mục C:\Python27\ và C:\Python27\Scripts vào biến môi trường nhé.
  2. Cài đặt FFmpeg
    2.1. Tải FFmpeg tại địa chỉ https://ffmpeg.zeranoe.com/builds/, chọn phiên bản 32bit hay 64bit tùy thuộc vào máy tính của bạn

    2.2. Giải nén file vừa tải về vào địa chỉ C:\ffmpeg, chú ý để cấu trúc file như hình

    2.3. Thêm địa chỉ của ffmpeg vào biến môi trường. Chuột phải My Computer chọn Properties-> Advanced System Settings -> Advanced-> Environments Variables… Tim đến Path ở ô System variables chọn Edit, thêm vào thư mục bin của ffmpeg
  3. Cài đặt autosub:
    3.1. Mở cmd bằng quyền admin

    3.2. Chạy lệnhpip install autosub
  4. Di chuyển tới thư mục C:\Python27\Scripts đổi tên file autosub thành autosub_app.py, nếu trong quá trình chạy mà phát sinh lỗi bạn hãy thay thế file autosub_app.py bởi file này

Trên Mac OS X

  1. Cài đặt ffmpeg bằng lệnh
    brew install ffmpeg
  2. Cài đặt autosub bằng lệnh
    pip install autosub

Hướng dẫn sử dụng để nhận diện video, âm thanh tiếng Anh

Mình sẽ hướng dẫn các bạn sử dụng công cụ qua một ví dụ, đó là bài nói chuyện TED Talks “The mind behind Linux” với sự xuất hiện của Linus Torvalds. Các bạn có thể xem video này tại đây hoặc tải về tại đây.

0. Trước hết, hãy nhìn qua hướng dẫn sử dụng một lượt đã nhé (Nếu bạn sử dụng công cụ để tạo sub tiếng Anh thì không cần quan tấm lắm đến bước này). Các bạn hãy chú ý đặc biệt đến hai tham số -S và -D, đây là hai tham số ngôn ngữ được nói trong video và ngôn ngữ của file phụ đề sẽ được xuất ra.

$ autosub -h
usage: autosub [-h] [-C CONCURRENCY] [-o OUTPUT] [-F FORMAT] [-S SRC_LANGUAGE]
               [-D DST_LANGUAGE] [--list-formats] [--list-src-languages]
               [--list-dst-languages]
               source_path
positional arguments:
  source_path           Path to the video or audio file
optional arguments:
  -h, --help            show this help message and exit
  -C CONCURRENCY, --concurrency CONCURRENCY
                        Number of concurrent API requests to make
  -o OUTPUT, --output OUTPUT
                        Output path for subtitles (by default, subtitles are
                        saved in the same directory and name as the source
                        path)
  -F FORMAT, --format FORMAT
                        Destination subtitle format
  -S SRC_LANGUAGE, --src-language SRC_LANGUAGE
                        Language spoken in source file
  -D DST_LANGUAGE, --dst-language DST_LANGUAGE
                        Desired language for the subtitles
  -K API_KEY, --api-key API_KEY
                        The Google Translate API key to be used. (Required for
                        subtitle translation)
  --list-formats        List all available subtitle formats
  --list-src-languages  List all available source languages
  --list-dst-languages  List all available destination languages

Trên Ubuntu

  1. Mở Terminal di chuyển đến thư mục chứa video
  2. Gõ lệnhautosub [tên_video]
  3. Nếu thành công, phụ đề sẽ được lưu ngay cùng với thư mục chứa video.
  4. Enjoy. Kết quả rất tốt.

Trên Windows

  1. Di chuyển đên thư muc C:\Python27\Scripts
  2. Chọn File-> Open command prompt-> Open command prompt as administrator
  3. Gõ lệnhpython autosub_app.py [tên_video]
    Nếu bạn gặp lỗi trong bước này thì hãy thay thế file autosub_app.py bởi file này.
  4. Kết quả rất tốt, tương tự như trên Ubuntu.

Hướng dẫn sử dụng để nhận diện video, âm thanh tiếng Việt

Làm tương tự như nhận dạng tiếng Anh nhưng hãy thêm hai tham số:

Trên Ubuntu

autosub [tên_video] -S vi -D vi

Trên Windows

python autosub_app.py [tên_video] -S vi -D vi

Kết quả thử nghiệm cũng rất tốt trên video bản tin.

5

Nhận xét

Autosub sử dụng Google Web Speech API  nên độ chính xác là khá cao, tốc độ thực thi tương đối nhanh, và dĩ nhiên, phụ thuộc vào tốc độ mạng của các bạn nữa. Các video từ 10 phút đổ xuống Autosub chỉ chạy trong vòng chưa đến 1 phút. Mình đã thử nghiệm nhận dạng sub cho bộ phim Big Hero 6 với độ dài 1 giờ 41 phút chương trình chạy chỉ trong vòng 4 phút. Cá nhân mình thấy Autosub rất hay, nhất là trong việc tạo sub tự động cho các video hướng dẫn chỉ bằng tiếng Anh, sẽ giúp đỡ rất nhiều trong quá trình học tập, tiếp cận thêm thông tin mà lại nhanh chóng hơn giải pháp sử dụng youtube.

Các bạn nếu trong quá trình cài đặt gặp lỗi gì hãy comment ở đây nhé, mình sẽ cố gắng giúp đỡ. Nếu bạn có giải pháp tốt hơn, hãy chia sẻ cho mình cùng biết với nhé.

Leave a Reply

Your email address will not be published. Required fields are marked *