Đăng ký để nhận thông báo về bài đăng mới:

Trích xuất âm thanh từ video của bạn với Cloudflare Stream

2025-11-06

Cần 5 phút để đọc
Bài đăng này cũng có sẵn bằng English, 한국어, Español (Latinoamérica)日本語.

Cloudflare Stream yêu thích video. Nhưng chúng tôi biết rằng không phải quy trình làm việc nào cũng cần đến toàn bộ phần hình ảnh, và sự phổ biến của podcast cho thấy âm thanh khi ở một mình cũng có thể hấp dẫn đến mức nào. Đối với các nhà phát triển, việc xử lý video chỉ để lấy âm thanh là việc làm tốn thời gian, tiền bạc và phức tạp. 

Điều gì khiến video trở nên đắt đỏ đến vậy? Tệp video là một tập hợp dày đặc các hình ảnh có độ phân giải cao, được ghép lại với nhau theo thời gian. Như vậy, nó không chỉ là "một tệp tin" mà là một vùng chứa dữ liệu đa chiều như số khung hình mỗi giây, độ phân giải, bộ mã hoá — giải mã. Phân tích video nghĩa là xem xét độ phân giải thời gian và tốc độ khung hình.

Tại sao cần trích xuất âm thanh?

Ngược lại, một tệp âm thanh đơn giản hơn nhiều. Nếu một tệp âm thanh chỉ bao gồm một kênh, nó được định nghĩa là một dạng sóng đơn. Các đặc tính kỹ thuật của dạng sóng này được xác định bởi tốc độ lấy mẫu (số lượng mẫu âm thanh được lấy mỗi giây) và độ sâu bit (độ chính xác của mỗi mẫu).

Với sự phát triển của các quy trình suy luận AI đòi hỏi nhiều tài nguyên tính toán, nhiều khách hàng của chúng tôi muốn thực hiện các quy trình xử lý tiếp theo chỉ cần phân tích phần âm thanh. Ví dụ:

  • Sức mạnh của AI và Học máy: Ngoài dịch thuật và phiên âm, bạn có thể đưa âm thanh vào các mô hình Chuyển giọng nói thành văn bản để nhận dạng hoặc phân tích giọng nói, hoặc tạo các bản tóm tắt với sự hỗ trợ của AI.

  • Cải thiện việc kiểm duyệt nội dung: Phân tích âm thanh trong video của bạn để đảm bảo nội dung an toàn và tuân thủ các quy định.

Việc sử dụng dữ liệu video trong những trường hợp như vậy rất tốn kém và không cần thiết. 

Đó là lý do chúng tôi giới thiệu tính năng trích xuất âm thanh. Nhờ tính năng này, chỉ với một lệnh gọi API hoặc một cú nhấp chuột trên bảng điều khiển, bạn có thể trích xuất phần âm thanh M4A dung lượng nhỏ từ bất kỳ video nào.

Chúng tôi giới thiệu hai phương pháp linh hoạt cho phép trích xuất âm thanh từ video của bạn. 

1. Trích xuất âm thanh tức thời thông qua Media Transformations

Media Transformations là phần mềm hoàn hảo để xử lý và chuyển đổi các video ngắn, chẳng hạn như các clip trên mạng xã hội, mà bạn lưu trữ ở bất cứ đâu bạn muốn. Nó hoạt động bằng cách lấy nội dung phương tiện trực tiếp từ nguồn của bạn, tối ưu hoá tại các máy chủ biên của chúng tôi và phân phối một cách hiệu quả.

Chúng tôi đã mở rộng quy trình này để bao gồm cả âm thanh. Chỉ cần thêm mode=audio vào URL chuyển đổi, bạn có thể trích xuất âm thanh ngay lập tức từ tệp video được lưu trữ ở bất kỳ đâu.

Sau khi bật tính năng Media Transformations cho miền của bạn, bạn có thể trích xuất âm thanh từ bất kỳ video nguồn nào. Bạn còn có thể cắt các phần cụ thể bằng cách chỉ định thời gianđộ dài.

Ví dụ:

https://example.com/cdn-cgi/media/mode=audio,time=5s,duration=10s/<SOURCE-VIDEO>

Yêu cầu trên tạo ra một đoạn âm thanh M4A dài 10 giây từ video nguồn, bắt đầu từ giây thứ 5. Bạn có thể tìm hiểu thêm về thiết lập và các tùy chọn khác trong tài liệu Media Transformations

2. Tải xuống âm thanh

Giờ đây, bạn có thể tải trực tiếp bản nhạc âm thanh cho bất kỳ nội dung nào bạn quản lý trong Stream. Bên cạnh khả năng tạo tệp MP4 có thể tải xuống để xem ngoại tuyến, giờ đây bạn cũng có thể tạo và lưu trữ tệp âm thanh M4A có thể lưu giữ vĩnh viễn.

Bản minh hoạ Workers AI

Dưới đây là một đoạn mã mẫu minh họa cách sử dụng Media Transformations với một trong những sản phẩm của Cloudflare — Workers AI. Đoạn mã sau tạo ra một quy trình hai bước: đầu tiên là chuyển đổi âm thanh của video sang tiếng Anh, sau đó dịch sang tiếng Tây Ban Nha.

export default {
 async fetch(request, env, ctx) {


   // 1. Use Media Transformations to fetch only the audio track
   const res = await fetch( "https://blog.cloudflare.com/cdn-cgi/media/mode=audio/https://pub-d9fcbc1abcd244c1821f38b99017347f.r2.dev/announcing-audio-mode.mp4" );
   const blob = await res.arrayBuffer();


   // 2. Transcribe the audio to text using Whisper
   const transcript_response = await env.AI.run(
     "@cf/openai/whisper-large-v3-turbo",
     {
       audio: base64Encode(blob), // A base64 encoded string is required by @cf/openai/whisper-large-v3-turbo
     }
   );


   // Check if transcription was successful and text exists
   if (!transcript_response.text) {
       return Response.json({ error: "Failed to transcribe audio." }, { status: 500 });
   }


   // 3. Translate the transcribed text using the M2M100 model
   const translation_response = await env.AI.run(
     '@cf/meta/m2m100-1.2b',
     {
       text: transcript_response.text,
       source_lang: 'en', // The source language (English)
       target_lang: 'es'  // The target language (Spanish)
     }
   );


   // 4. Return both the original transcription and the translation
    return Response.json({
        transcription: transcript_response.text,
        translation: translation_response.translated_text
    });


 }
};


export function base64Encode(buf) {
 let string = '';
 (new Uint8Array(buf)).forEach(
   (byte) => { string += String.fromCharCode(byte) }
 )
 return btoa(string)
}

Sau khi chạy, Worker sẽ trả về một phản hồi JSON sạch. Dưới đây là một đoạn trích từ phản hồi đã được phiên âm và dịch lại của Worker.

Phiên âm:

{
  "transcription": "I'm excited to announce that Media Transformations from Cloudflare has added audio-only mode. Now you can quickly extract and deliver just the audio from your short form video. And from there, you can transcribe it or summarize it on Worker's AI or run moderation or inference tasks easily.",
  "translation": "Estoy encantado de anunciar que Media Transformations de Cloudflare ha añadido el modo solo de audio. Ahora puede extraer y entregar rápidamente sólo el audio de su vídeo de forma corta. Y desde allí, puede transcribirlo o resumirlo en la IA de Worker o ejecutar tareas de moderación o inferencia fácilmente."
}

Thông tin chi tiết về kỹ thuật

Trong vai trò thực tập sinh mùa hè trong nhóm Stream, tôi đã tham gia triển khai tính năng được mong đợi từ lâu này. Bước đầu tiên của tôi là tìm hiểu kiến trúc phức tạp của các quy trình xử lý phương tiện trong hệ thống Stream.

Khi video được xử lý bởi Stream, nó có thể theo một trong hai hướng đi. Đầu tiên là hệ thống video theo yêu cầu (VOD) của chúng tôi, xử lý các video được tải trực tiếp lên Stream. Hệ thống tạo ra và lưu trữ một tập hợp các phân đoạn video đã được mã hoá phục vụ cho truyền phát tốc độ bit thích ứng, có thể được truyền phát thông qua HLS hoặc DASH. Hướng còn lại là quy trình mã hoá tức thời (OTFE), vận hành dịch vụ Stream Live và Media Transformations. Thay vì xử lý trước và lưu trữ các tập tin, OTFE lấy dữ liệu đa phương tiện từ trang web của khách hàng và thực hiện các chuyển đổi ngay tại biên.

Dự án của tôi bao gồm việc mở rộng cả hai quy trình này để hỗ trợ trích xuất âm thanh.

Quy trình OTFE

Hệ thống quy trình OTFE được thiết kế để hoạt động trong thời gian thực. Quy trình hiện tại được thiết kế cho các tác vụ trực quan. Khi khách hàng đã bật tính năng Media Transformations gửi yêu cầu trên trang web của họ, yêu cầu đó sẽ được chuyển tiếp đến các máy chủ biên của chúng tôi đóng vai trò là điểm truy cập đầu vào. Sau đó, yêu cầu sẽ được xác thực, và theo yêu cầu của người dùng, OTFE sẽ tải video và tạo phiên bản đã được điều chỉnh kích thước hoặc hình thu nhỏ tĩnh.

Để hỗ trợ việc chỉ trích xuất âm thanh, tôi đã phát triển quy trình làm việc hiện có để thêm một chế độ mới. Điều này bao gồm:

  1. Mở rộng logic xác thực: Đặc biệt đối với âm thanh, một bước xác thực quan trọng là kiểm tra xem video nguồn có chứa bản nhạc âm thanh hay không trước khi tiến hành trích xuất. Điều này được thực hiện bổ sung bên cạnh các bước xác thực đã có sẵn nhằm bảo đảm rằng URL được yêu cầu có định dạng chính xác. 

  2. Xây dựng một trình xử lý chuyển đổi mới: Đây là trọng tâm của dự án của tôi. Tôi đã xây dựng một trình xử lý mới trong nền tảng OTFE, chuyên loại bỏ các luồng hình ảnh để tạo ra tệp M4A chất lượng cao.

Quy trình VOD

Tương tự như công việc tôi đã thực hiện với OTFE, dự án này liên quan đến việc mở rộng quy trình tải xuống MP4 hiện tại của chúng tôi sang định dạng chỉ có âm thanh, cụ thể là tải xuống M4A. Điều này dẫn đến một loạt các quyết định kỹ thuật thú vị. 

Quy trình thông thường để tạo một lượt tải xuống video bắt đầu bằng một yêu cầu POST gửi đến tầng API chính của chúng tôi. Tầng này chịu trách nhiệm xác thực và kiểm tra tính hợp lệ, đồng thời tạo bản ghi tương ứng trong cơ sở dữ liệu. Sau đó, công việc sẽ được đưa vào hàng đợi bất đồng bộ của chúng tôi nơi các worker thực hiện nhiệm vụ xử lý. Để kích hoạt tải xuống âm thanh cho VOD, tôi đã bổ sung các điểm cuối API mới theo từng loại (POST /downloads/{type}) đồng thời vẫn giữ nguyên tuyến POST /downloadscũ làm bí danh để tạo các lượt tải xuống theo loại mặc định, hay loại tải xuống video. Điều này đảm bảo khả năng tương thích ngược hoàn toàn.

Công việc cốt lõi, tạo bản tải xuống, được thực hiện bởi hàng đợi bất đồng bộ của chúng tôi. Bao gồm:

  • Thêm logic vào phía người dùng để phát hiện loại tải xuống âm thanh mới

  • Sử dụng mẫu cấu hình ffmpeg được định nghĩa trong tầng API của chúng tôi để mã hóa luồng âm thanh đúng cách vào một container M4A chất lượng cao

Bằng cách mở rộng từng thành phần của quy trình này – từ các tuyến API đến các lệnh xử lý phương tiện – tôi đã có thể cung cấp một tính năng mới, được yêu cầu rất nhiều, giúp mở khóa các quy trình làm việc tập trung vào âm thanh cho khách hàng của chúng tôi!

Ảnh chụp màn hình Bảng điều khiển

Chúng tôi rất vui mừng thông báo rằng tính năng này cũng đã có sẵn trong bảng điều khiển Stream. Chỉ cần truy cập vào video bất kỳ của mình, bạn sẽ tìm thấy tùy chọn tải xuống video hoặc chỉ tải xuống âm thanh.

Sau khi quá trình tải xuống hoàn tất, bạn sẽ thấy URL của tệp, cùng với tùy chọn cho phép vô hiệu hóa nó.

Vậy là xong rồi!

Dự án này đã giải quyết một nhu cầu lâu dài của khách hàng, cung cấp một cách thức đơn giản hơn để xử lý âm thanh từ video. Tôi vô cùng biết ơn toàn bộ hành trình này, từ việc hiểu rõ vấn đề đến việc đưa ra giải pháp, và đặc biệt là sự hướng dẫn và hỗ trợ mà tôi nhận được từ nhóm của mình trong suốt quá trình. Chúng tôi rất hào hứng chờ xem các nhà phát triển sẽ sử dụng khả năng mới này như thế nào để xây dựng các ứng dụng hiệu quả và hấp dẫn hơn trên Cloudflare Stream.

Bạn có thể thử tính năng trích xuất âm thanh bằng cách tải một video lên Stream hoặc sử dụng API! Nếu bạn muốn tự mình giải quyết những thách thức kỹ thuật này, hãy tìm hiểu các chương trình thực tập và chương trình cho tài năng trẻ của chúng tôi để bắt đầu hành trình của riêng mình.

Chúng tôi bảo vệ toàn bộ các mạng của công ty, giúp khách hàng xây dựng các ứng dụng quy mô Internet một cách hiệu quả, tăng tốc bất kỳ trang web hoặc ứng dụng Internet nào, ngăn chặn các cuộc tấn công DDoS, chặn tin tặc và có thể giúp bạn trong hành trình đến với Zero Trust.

Truy cập 1.1.1.1 trên mọi thiết bị để bắt đầu sử dụng ứng dụng miễn phí của chúng tôi, giúp Internet của bạn nhanh hơn và an toàn hơn.

Để tìm hiểu thêm về sứ mệnh xây dựng Internet tốt hơn của chúng tôi, hãy bắt đầu tại đây. Nếu bạn đang tìm kiếm một định hướng nghề nghiệp mới, hãy xem các vị trí đang tuyển dụng của chúng tôi.
Internship ExperienceTin tức về sản phẩmCloudflare Stream

Theo dõi trên X

Cloudflare|@cloudflare

Bài đăng liên quan

lúc 6:00 27 tháng 2, 2026

The most-seen UI on the Internet? Redesigning Turnstile and Challenge Pages

We serve 7.6 billion challenges daily. Here’s how we used research, AAA accessibility standards, and a unified architecture to redesign the Internet’s most-seen user interface....

lúc 14:00 04 tháng 11, 2025

Building a better testing experience for Workflows, our durable execution engine for multi-step applications

End-to-end testing for Cloudflare Workflows was challenging. We're introducing first-class support for Workflows in cloudflare:test, enabling full introspection, mocking, and isolated, reliable tests for your most complex applications....

lúc 13:10 22 tháng 9, 2025

Hãy cùng kiến tạo tương lai: Cloudflare công bố mục tiêu tuyển dụng 1.111 thực tập sinh vào năm 2026.

Chúng tôi vô cùng hào hứng thông báo về chương trình thực tập tham vọng nhất từ trước đến nay của chúng tôi: Cloudflare đặt mục tiêu tuyển dụng tới 1.111 thực tập sinh trong suốt năm 2026....