구독해서 새 게시물에 대한 알림을 받으세요.

Workers AI로 구동되는 Stream 생성 캡션 소개

2024-06-20

4분 읽기
이 게시물은 English, 繁體中文, 日本語简体中文로도 이용할 수 있습니다.

이제 고객은 클릭 한 번으로 Stream의 최신 온디맨드 비디오와 라이브 스트림 녹화를 위한 AI 생성 캡션을 사용하여 동영상 캡션을 쉽게 생성할 수 있습니다. 더 나은 인터넷 구축을 지원한다는 Cloudflare 사명의 일환으로 이 기능은 모든 Stream 고객에게 추가 비용 없이 제공됩니다.

이 솔루션은 타사의 전사 서비스나 복잡한 워크플로우 없이도 간편하게 사용할 수 있도록 설계되었습니다. 캡션과 같은 접근성 기능이 없는 동영상의 경우, 특히 대규모 동영상 라이브러리의 경우 수동으로 전사하는 것은 시간이 많이 소요되고 실용적이지 않을 수 있습니다. 기존에는 재생 중에 스크립트가 표시될 수 있도록 오디오를 스크립트로 작성하고 동영상과 함께 텍스트를 전달하기 위해 전문 서비스, 때로는 전담 팀이 필요했습니다. 윤리적 의무, 법적 규제 준수, 시청자 선호도 변화 등 다양한 이유로 캡션에 대한 기대가 점점 더 높아지면서 Cloudflare는 이 부담을 덜고 싶었습니다.

Stream의 통합 솔루션을 사용하면 캡션 생성 프로세스를 기존 동영상 관리 워크플로우에 원활하게 통합하여 시간과 리소스를 절약할 수 있습니다. 동영상을 업로드한 시점에 관계없이 자동 캡션을 쉽게 추가하여 접근성을 개선할 수 있습니다. 이제 캡션을 Cloudflare 대시보드 내에서 생성하거나 API 호출을 통해 생성할 수 있습니다. 캡션 생성은 모두 익숙하고 통합된 Stream 플랫폼 내에서 가능합니다.

이 기능은 개인정보 및 데이터 보호에 최대한 중점을 두고 설계되었습니다. 콘텐츠를 외부 엔티티와 공유하는 다른 타사 전사 서비스와 달리, 사용자의 데이터는 캡션 생성 프로세스 내내 Cloudflare의 에코시스템 내에 안전하게 보호됩니다. Cloudflare는 모델 훈련을 목적으로 사용자의 콘텐츠를 활용하지 않습니다. 데이터 보호에 대해 자세히 알아보려면 사용자 데이터 및 Workers AI를 참조하세요.

시작하기

이 베타 버전은 2024년 6월 20일부터 모든 Stream 고객과 100분 동영상 저장소가 포함된 Professional 및 Business 요금제 가입자에게 제공됩니다.

시작하려면 Cloudflare 대시보드 또는 API를 통해 동영상을 Stream에 업로드하세요.

그런 다음 동영상의 "캡션" 탭으로 이동하여 "캡션 추가"를 클릭합니다. 원하는 언어를 선택하고 "AI로 캡션 생성"을 선택합니다. 마지막으로 저장을 클릭하면 몇 분 내에 새로운 캡션이 캡션 관리자에 표시되고 플레이어에서도 자동으로 사용할 수 있게 됩니다. API를 통해 캡션을 생성할 수도 있습니다.

캡션은 일반적으로 몇 분 내에 생성됩니다. 캡션이 준비되면 Stream 플레이어가 자동으로 업데이트되어 사용자에게 캡션을 제공합니다. 또한 텍스트 트랙을 지원하는 타사 플레이어에서도 캡션을 표시할 수 있도록 HLS 및 DASH 매니페스트가 업데이트됩니다.

온디맨드 비디오와 라이브 스트림 녹화는 생성된 시점에 관계없이 지원됩니다. 베타 버전에서는 영어 캡션만 생성할 수 있으며, 동영상 길이는 2시간 미만이어야 합니다. 전사 품질은 선명한 음성과 최소한의 배경 소음이 있는 동영상에서 가장 좋습니다.

우리는 테스트하는 과정에서 다양한 유형의 콘텐츠를 전사하는 AI 모델의 능력에 만족했습니다. 그러나 결과가 항상 완벽한 것은 아니며 일부 사용 사례에는 다른 방법이 더 적합할 수도 있습니다. 생성된 캡션의 정확도가 사용자의 요구 사항에 맞는지 확인하는 것이 중요합니다.

기술 세부 정보

Workers AI로 구축

Stream 엔지니어링 팀은 Workers AI를 사용하여 이 새로운 기능을 구축했습니다. 이를 통해 Cloudflare는 단 한 번의 API 호출로 오픈 소스 자동 음성 인식 모델인 Whisper 모델에 액세스할 수 있었습니다. Workers AI를 사용하면 바로 이용 가능한 솔루션을 통해 AI 모델을 배포, 통합 및 확장하는 작업이 대폭 간소화됩니다. 덕분에 우리 팀은 복잡한 인프라를 처리할 필요 없이 자동 캡션 기능을 구축하는 데만 집중할 수 있었습니다.

AI 모델을 사용하는 소프트웨어 라이팅에는 여러 가지 어려움이 따를 수 있습니다. 우선 적절한 하드웨어 인프라를 구성하는 것은 어려운 작업이 될 수 있습니다. AI 모델을 효율적으로 실행하려면 상당한 컴퓨팅 리소스가 필요하며, GPU와 같은 특수한 하드웨어가 필요하기 때문에 비용이 많이 들고 관리하기가 복잡할 수 있습니다. 또한, 대규모 AI 모델 배포는 워크로드를 분산하고 대기 시간을 최소화하며 처리량을 최적화하고 고가용성을 유지하는 복잡한 균형을 맞추어야 하는 어려운 도전 과제입니다. Workers AI는 기본 인프라 관리의 어려움을 해결해 줄 뿐만 아니라 필요에 따라 자동으로 확장할 수 있습니다.

Workers AI를 사용하여 어려운 작업을 30줄 미만의 코드로 오디오 파일을 전사하는 Worker로 전환할 수 있었습니다.

동영상에 대규모로 빠르게 캡션 추가

import { Ai } from '@cloudflare/ai'


export interface Env {
 AI: any
}


export type AiVTTOutput = {
 vtt?: string
}


export default {
 async fetch(request: Request, env: Env) {
   const blob = await request.arrayBuffer()


   const ai = new Ai(env.AI)
   const input = {
     audio: [...new Uint8Array(blob)],
   }


   try {
     const response: AiVTTOutput = (await ai.run(
       '@cf/openai/whisper-tiny-en',
       input
     )) as any
     return Response.json({ vtt: response.vtt })
   } catch (e) {
     const errMsg =
       e instanceof Error
         ? `${e.name}\n${e.message}\n${e.stack}`
         : 'unknown error type'
     return new Response(`${errMsg}`, {
       status: 500,
       statusText: 'Internal error',
     })
   }
 },
}

Stream 팀은 이 기능이 대규모 작업에서도 빠르고 효과적으로 작동하기를 원했기 때문에 동영상 길이에 관계없이 대용량의 동영상을 처리하기 위한 엔지니어링 작업을 수행해야 했습니다.

먼저, 우리 팀은 AI 추론을 실행하기 전에 오디오를 전처리하여 입력이 Whisper의 입력 형식 및 요구 사항과 호환되는지 확인해야 했습니다.

우리가 확인한 동영상 콘텐츠는 휴대폰으로 촬영한 짧고 화질이 낮은 동영상부터 몇 시간 분량의 고화질 할리우드 제작 영화까지 다양했습니다. 동영상은 무음일 수도 있고 액션 위주의 잡음이 포함될 수 있습니다. 게다가 Stream의 온디맨드 비디오에는 전체 파일로 업로드된 동영상과 달리 패키징된 라이브 스트림 녹화본이 포함되어 있습니다. 이러한 가변성을 고려하여 오디오 입력은 다양한 컨테이너 형식에 다양한 길이와 파일 크기로 저장됩니다. 우리는 오디오 파일의 형식이 Whisper의 요구 사항과 호환되도록 올바르게 설정되었는지 확인했습니다.

전처리의 한 가지 측면은 추론을 최적화하는 데 파일의 길이가 적절한지 확인하는 것입니다. Whisper는 30초 길이의 전사용 오디오 파일에 ‘안성맞춤’입니다. Whisper는 Github 토론에서 다음과 같이 말합니다. “문장 길이가 너무 짧으면 주변 맥락이 부족합니다. 문장이 더 자주 끊어지고 많은 문장이 이해가 되지 않을 것입니다. 너무 길면 추적하려는 의미의 복잡성을 파악하기 위해 더 크고 복잡한 모델이 필요합니다.” 다행히도 Stream은 웹 재생 중에 빠르게 전송될 수 있도록 이미 동영상을 작은 세그먼트로 분할하고 있습니다. 우리는 이러한 작은 세그먼트를 Workers AI로 전송하기 전에 30초 배치로 연결하는 기능을 작성했습니다.

처리 속도를 최적화하기 위해 우리 팀은 최대한 많은 작업을 동시에 실행했습니다. 30초 오디오 배치를 동시에 생성하면서 Workers AI에 요청을 전송함으로써 Workers AI 플랫폼의 확장성을 최대한 활용했습니다. 이렇게 하면 캡션 생성에 필요한 시간을 크게 단축할 수 있지만 약간 복잡해집니다. Workers AI에 요청을 동시에 전송하기 때문에 전사 응답이 순서에 맞지 않게 도달할 수 있습니다. 예를 들어 동영상이 1분 길이인 경우 동영상의 두 번째 30초에 대한 캡션 생성 요청이 첫 번째 30초에 대한 요청보다 먼저 완료될 수 있습니다. 캡션은 동영상 순서대로 정렬되어야 하므로 최종적으로 결합된 WebVTT 캡션 파일이 동영상과 제대로 동기화될 수 있도록 팀이 오디오 배치 순서를 파악하고 있어야 했습니다. 우리는 Workers AI 응답을 정렬하고 타임스탬프를 재정렬하여 최종적으로 정확한 전사를 수행합니다.

그 결과, 대규모로 긴 동영상의 캡션을 빠르고 효율적으로 생성할 수 있습니다.

지금 사용하기

Cloudflare는 오늘 모든 구독자와 ProBusiness 요금제 고객에게 이 기능을 오픈 베타 버전으로 제공하게 되어 기쁘게 생각합니다! Stream에 동영상을 업로드하여 시작하세요. 튜토리얼과 현재 베타 제한 사항을 살펴보려면 Cloudflare 문서를 참조하세요. 앞으로 더 많은 언어를 추가하고 길이가 더 긴 동영상을 지원하는 데 주력할 예정입니다.

Cloudflare에서는 전체 기업 네트워크를 보호하고, 고객이 인터넷 규모의 애플리케이션을 효과적으로 구축하도록 지원하며, 웹 사이트와 인터넷 애플리케이션을 가속화하고, DDoS 공격을 막으며, 해커를 막고, Zero Trust로 향하는 고객의 여정을 지원합니다.

어떤 장치로든 1.1.1.1에 방문해 인터넷을 더 빠르고 안전하게 만들어 주는 Cloudflare의 무료 앱을 사용해 보세요.

더 나은 인터넷을 만들기 위한 Cloudflare의 사명을 자세히 알아보려면 여기에서 시작하세요. 새로운 커리어 경로를 찾고 있다면 채용 공고를 확인해 보세요.
Developer Platform개발자Workers AIAI제품 뉴스Cloudflare Stream (KO)

X에서 팔로우하기

Cloudflare|@cloudflare

관련 게시물