Tự động hóa việc lọc nội dung truyền thông với AWS

bởi Abbas Nemr | vào ngày 14 tháng 12 năm 2023 |

Sự bùng nổ gần đây của sáng tạo nội dung và người sáng tạo dẫn dắt bởi sự phát triển của các nền tảng truyền thông xã hội đã nâng cao nhu cầu về các công cụ kiểm duyệt nội dung hiệu quả và tự động. Một lĩnh vực đặc biệt quan tâm là việc phát hiện và loại bỏ ngôn ngữ không thích hợp từ nội dung video. Trong bài đăng trên blog này, chúng tôi thể hiện một giải pháp để tự động hóa việc lọc ngôn ngữ không thích hợp trong video bằng cách sử dụng Amazon Transcribe, AWS Lambda và AWS Elemental MediaConvert. Chúng tôi cũng cung cấp mã mẫu được xây dựng với AWS Cloud Development Kit (AWS CDK) để triển khai giải pháp.

Làm thế nào nó hoạt động:

Hình ảnh trên đây mô tả sơ đồ kiến trúc của quy trình làm việc đề xuất của giải pháp. Nó hoạt động như sau:

  1. Tải lên tệp video: Một tệp video được tải lên một cái xô Amazon Simple Storage Service (Amazon S3) được gọi là xô Ingest. Việc tải lên tệp kích hoạt một hàm Lambda tạo một công việc xử lý mới cho MediaConvert. MediaConvert trích xuất một tệp âm thanh duy nhất (audio-proxy) từ video và lưu trữ nó trong xô Proxy S3.
  1. Khi công việc MediaConvert hoàn tất: Một hàm Lambda khác được kích hoạt để tạo một công việc chuyển văn bản cho audio-proxy trong Amazon Transcribe. Sử dụng tính năng “Vocabulary Filter”, Transcribe tạo ra một tệp chuyển văn bản trong đó các từ ngôn ngữ không thích hợp được che giấu bằng ba dấu hoa thị. Tệp chuyển văn bản cung cấp một danh sách các từ trong bản trascript với thời gian bắt đầu và kết thúc trong âm thanh, được định dạng trong JSON (JavaScript Object Notation). Công việc Transcribe cũng tạo ra một tệp phụ đề. Cả hai tệp chuyển văn bản và tệp phụ đề đều được lưu trữ trong xô Proxy.

Lưu ý: Độ chính xác của giải pháp phụ thuộc vào độ chính xác của dịch vụ Amazon Transcribe và danh sách các từ ngôn ngữ không thích hợp được sử dụng trong bộ lọc từ vựng.

Dưới đây là ví dụ về cách từ được che giấu và không che giấu được biểu diễn trong tệp chuyển văn bản:

Ví dụ về từ “Welcome”:

JSON:

{“start_time”:”8.859″,”end_time”:”9.449″,”alternatives”:[{“confidence”:”0.999″,”content”:”Welcome”}],”type”:”pronunciation”}

Ví dụ về một từ ngôn ngữ không thích hợp bị che giấu (***):

JSON:

{“start_time”:”355.76″,”end_time”:”356.2″,”alternatives”:[{“confidence”:”0.995″,”content”:”***”}],”type”:”pronunciation”}

3/ Sau khi công việc Transcribe hoàn tất, một hàm Lambda mới được kích hoạt để sửa đổi tệp audio-proxy. Hàm Lambda tìm kiếm trong tệp chuyển văn bản các trường hợp của “***” mà hiện tại đại diện cho từ ngôn ngữ không thích hợp đã bị che giấu. Hàm Lambda sử dụng module Python Pydub để xử lý tệp âm thanh và ghi đè lên các trường hợp của ngôn ngữ không thích hợp dựa trên thời gian bắt đầu và kết thúc của chúng. Trong mã mẫu, chúng tôi thay thế các từ ngôn ngữ không thích hợp trong âm thanh bằng âm thanh bíp mà chúng tôi cung cấp. Tuy nhiên, mã có thể dễ dàng được cập nhật để chèn bất kỳ âm thanh khác hoặc đơn giản chỉ chèn âm thanh im lặng để tắt tiếng từ ngôn ngữ không thích hợp.

Lưu ý: Module Pydub được cấp phép theo Giấy phép MIT (MIT) như đã nêu trên trang của module.

Đáng chú ý rằng nếu không có từ ngôn ngữ không thích hợp nào được tìm thấy trong tệp chuyển văn bản, bước xử lý âm thanh sẽ được bỏ qua. Sau khi loại bỏ từ ngôn ngữ không thích hợp khỏi âm thanh, Lambda tải lên bản sao mới đã lọc của tệp âm thanh vào xô Proxy.

4/ Cuối cùng, hàm Lambda xử lý tạo một công việc MediaConvert mới để ghép tài nguyên truyền thông cuối cùng. Công việc MediaConvert kết hợp video từ tệp nguồn được tải lên ở bước 1, phụ đề được sản xuất bởi Amazon Transcribe ở bước 2 và tệp âm thanh đã được lọc ở bước 3. Trong mã mẫu của chúng tôi và vì mục đích trình bày, MediaConvert tạo ra một tài nguyên HTTP Live Streaming (HLS) có thể được phát lại thông qua Amazon CloudFront Content Management Network (CDN). Tuy nhiên, cài đặt công việc MediaConvert có thể được cập nhật để phù hợp với các luồng làm việc khác.

Kho mã mẫu

Mã mẫu của giải pháp có sẵn trên Github với hướng dẫn từng bước giải thích cách triển khai giải pháp bằng cách sử dụng AWS CDK vào tài khoản AWS của bạn.

Trong tệp README của kho mã nguồn, cung cấp hướng dẫn về cách tạo và cấu hình bộ lọc từ vựng trong Amazon Transcribe cho các ngôn ngữ bạn cần hỗ trợ.

Kiểm thử giải pháp

Vì mục đích trình bày, chúng tôi đã tạo ra một danh sách các từ hơi không đúng mực và tạo bộ lọc từ vựng trong Amazon Transcribe với danh sách đó:

jerk
freaky
friky
fricky
freaked
fricked
friked
freak

Chúng tôi sau đó kiểm thử giải pháp với bộ phim mã nguồn mở “Tears Of Steel” [(CC) Blender Foundation | mango.blender.org]. Dưới đây là một đoạn video ngắn thể hiện trước và sau khi áp dụng bộ lọc:

Các cải tiến bổ sung

Các cải tiến bổ sung đang được xem xét cho giải pháp bao gồm:

  • Hỗ trợ âm thanh 5.1 và bất kỳ định dạng âm thanh nào khác. Mã đã được kiểm thử chỉ với âm thanh stereo.
  • Hỗ trợ các video yêu cầu phát hiện nhiều ngôn ngữ. Hiện tại, chỉ một ngôn ngữ trên mỗi tệp video sẽ được lọc.
  • Thêm một tham số cấu hình để chuyển đổi giữa âm thanh bíp hoặc tắt tiếng từ ngôn ngữ không thích hợp.

Nếu bạn quan tâm đến bất kỳ cải tiến nào ở trên hoặc có bất kỳ yêu cầu khác nào, vui lòng cho chúng tôi biết bằng cách tạo một vấn đề (issue) trong dự án Github.

Kết luận

Trên đây là một giải pháp để lọc ngôn ngữ không thích hợp từ nội dung truyền thông dựa trên các dịch vụ Amazon Transcribe, AWS Lambda và AWS Elemental MediaConvert. Giải pháp bao gồm mã mẫu AWS CDK có thể triển khai trong tài khoản AWS của bạn.

Tài nguyên bổ sung

Hướng dẫn Nhà phát triển Amazon Transcribe: Sử dụng bộ lọc từ vựng tùy chỉnh để xóa, che giấu hoặc đánh dấu từ (https://docs.aws.amazon.com/transcribe/latest/dg/vocabulary-filtering.html)

AWS Media Blog: Sử dụng học máy để lọc nội dung do người dùng tạo ra và bảo vệ thương hiệu của bạn (https://aws.amazon.com/blogs/media/using-ml-to-filter-user-generated-content-to-protect-your-brand/)

Abbas Nemr

Abbas Nemr là Kiến trúc sư giải pháp cấp cao của nhóm Amazon Web Services Telco ở Canada. Abbas chuyên về khối lượng công việc truyền thông bao gồm chèn quảng cáo, phát video trực tiếp cũng như xử lý và tự động hóa video theo yêu cầu (VOD).