135개 이상의 언어로 제공되는 동영상용 AI 더빙 API

동영상을 업로드하고 목표 언어를 선택한 뒤 더빙된 동영상을 받아보세요. 단 한 번의 AI 더빙 API 요청으로 텍스트 변환, 번역, 화자 감지, 목소리 복제, 음성 합성이 모두 처리됩니다. 원본 화자의 목소리 특징을 그대로 유지하며, 더빙된 동영상과 별도의 WAV 오디오 트랙 및 자막 파일을 제공합니다.
음성 복제
입모양 맞춤(립싱크) 기본 내장
REST + Python SDK
three requests, start to finish
OAuth 2.0
# 1. exchange client credentials for a token (valid 1 hour)
curl -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials"# 2. upload by link - YouTube, Drive, S3, Vimeo or direct URL
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"link": "https://youtu.be/...", "name": "Q3 launch"}'# 3. create the dubbing project - this starts the dub
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "video_id": "b8f7835d-e8c9-4ff4-8e34-5c336d818319",
    "dst_lang": "es-mx",
    "name":     "Q3 launch"
  }'
GET /v2/projects/{project_id}
polling, 10s
# Poll the project until status is merging_done.while :; do
  curl -s https://api.rask.ai/v2/projects/$ID \
    -H "Authorization: Bearer $TOKEN" | jq .status
  sleep 10done
전 세계 팀들이 사용하는
지원 기능

단 한 번의 호출로 더빙 API의 모든 기능을 이용하세요

단일 API를 통해 동영상을 자동으로 텍스트로 변환하고 번역하며 더빙하세요. 목소리 선택, 용어집, 스크립트 편집 기능을 통해 결과를 세밀하게 조정할 수 있습니다. 선택 사항인 립싱크는 별도로 과금됩니다.

135개 이상의 언어로 더빙

한 번의 요청으로 이루어지는 전체 과정: 텍스트 변환, 번역, 합성, 믹싱. 동영상과 목표 언어만 보내시면 됩니다.

화자 감지 및 화자별 목소리 설정

원본 오디오에서 화자가 자동으로 구분되며, 목표 언어에서 각 화자에게 맞는 목소리가 지정됩니다. 원하시는 대로 배정을 변경하거나 화자 수를 직접 지정할 수도 있습니다.

언어를 뛰어넘는 목소리 복제

더빙에서도 원본 화자의 목소리 특징이 유지되므로, 스페인어, 힌디어, 일본어, 한국어로 들어도 발표자의 목소리가 그대로 살아납니다.

립싱크

더빙된 오디오에 맞춰 입모양이 자연스럽게 움직입니다. 더빙 프로젝트에서 별도의 작업으로 진행되며, 얼굴 인식을 먼저 거치기 때문에 실제로 효과가 있는 경우에만 비용이 청구됩니다.

기존 배경음 유지

음악, 현장음, 효과음이 음성 분리되어 더빙 아래에 다시 믹싱됩니다. 그 결과, 새로운 목소리와 함께 원본 음악, 현장음, 효과음이 살아있는 완벽한 현지화 트랙이 완성됩니다.

.srt 및 .vtt 형식의 자막

완성된 모든 프로젝트에는 더빙 타이밍에 맞춰 바로 재생할 수 있는 두 가지 형식이 함께 제공됩니다.

용어집을 통한 용어 관리

브랜드 이름, 제품 이름, 기술 용어는 항상 동일하게 번역되거나 의도에 따라 번역되지 않습니다. 버전 관리가 지원되므로 완성된 모든 프로젝트는 더빙에 사용된 용어집을 그대로 유지합니다.

구절 단위 대본 편집

스크립트를 불러와 줄을 수정하고, 타임스탬프를 조정하고, 구간을 추가 또는 삭제한 뒤 다시 생성하세요. 언어 전문가가 스크립트를 직접 수정하면, 해당 수정 사항을 바탕으로 더빙이 다시 생성됩니다.

제한 없는 확장

전체 카탈로그를 한 번에 전송하고 모든 목표 언어로 병렬 처리하여 대량으로 더빙하세요.
실행 화면 보기

AI 더빙 API가 실제로 제공하는 결과

방금 읽어본 API 호출을 통해 동일한 클립이 더빙되었습니다. 원본 소스에서는 원래 목소리가 나며, 프랑스어, 독일어, 포르투갈어, 스페인어에서는 복제된 목소리가 배경 오디오와 함께 자연스럽게 어우러집니다.
EN 깃발
En
FR 깃발
금
DE 깃발
De
PT 깃발
Pt
ES 플래그
Es
작업 흐름

소스 파일에서 더빙된 동영상까지 단 3단계

프로젝트를 생성하면 더빙이 시작됩니다. 나중에 편집을 마친 후 /generate를 사용하여 프로젝트를 다시 더빙하세요.
1

동영상 업로드

멀티파트 폼 데이터로 파일을 보내거나 링크를 게시하세요. 유튜브, 구글 드라이브, S3, 비메오 및 모든 직접 다운로드 URL을 지원합니다. 비용이 청구되기 전에 미디어 ID와 전체 기술 메타데이터를 반환합니다.

POST /api/library/v1/media/link
2

프로젝트 생성

미디어 ID를 video_id로 입력하고 타겟 언어를 지정하세요. 선택 사항으로 자체 대본이나 용어집을 첨부할 수 있습니다. 더빙이 즉시 시작됩니다.

POST /v2/projects
3

결과물 수집

상태(status)가 merging_done이 될 때까지 확인한 후, 더빙된 동영상, 오디오 트랙, 자막 파일을 다운로드하세요.

GET /v2/projects/{project_id}
처리 시간은 프로젝트에 따라 다릅니다. API를 통해 진행 상황을 추적하고 더빙이 완료되면 파일을 다운로드하세요.
맞춤형 서비스

목록에 없나요? 저희가 만들어 드립니다.

새로운 언어, 맞춤형 목소리, 자체 전달 방식, 더 높은 처리량: 퍼블릭 카탈로그에 없는 기능이 더빙 연동에 필요할 경우, 저희 팀이 고객과 함께 요건을 검토하고 구축해 드립니다.

지원 언어 및 목소리

기본 목록에 없는 언어이나 목소리가 필요하신가요? 필요한 사항과 이용 가능한 옵션에 대해 저희 팀과 상담해 보세요.

전송 및 연동

웹훅, 자체 대기열 연동, S3 직접 전송, 맞춤형 엔드포인트를 지원합니다. 시스템에 맞는 방식을 알려주세요.

볼륨 및 처리량

배치 크기, 작업당 목표 언어, 처리 우선순위는 파이프라인에 맞춰 계약 시 모두 설정됩니다.

보안 및 호스팅

데이터 보관, SSO 및 SAML, 보존 규칙 및 보안 검토 지원은 기업 온보딩 과정에서 처리됩니다.
사용 사례

AI 더빙 API를 사용하는 대상

동영상이 포함된 플랫폼

LMS 및 고객 교육 플랫폼, 크리에이터 및 동영상 플랫폼, 웨비나 및 가상 이벤트 도구, 동영상 호스팅 및 워크플로 SaaS, 디지털 도입 플랫폼, 라이브 쇼핑. 교육 콘텐츠, 제품 데모, 크리에이터 동영상이 제품 내에서 더빙되므로 전 세계 시청자가 모국어로 시청할 수 있으며, AI 더빙이 서비스의 핵심 기능 중 하나가 됩니다.

현지화 및 제작 대행사

이미 운영 중인 전달 파이프라인에 AI 더빙을 연결하고 사람의 검토 단계를 유지하세요. AI가 첫 번째 더빙 버전을 생성하고, 스튜디오를 다시 예약해 녹음하는 대신 언어 전문가가 스크립트를 직접 편집합니다.

사내 자체 동영상 제작

글로벌 유통 및 이커머스, 글로벌 프랜차이즈, 미디어 퍼블리셔, 기업 대학. 퍼블리싱 워크플로에 현지화를 구축하여 소스 동영상이 변경될 때마다 팀에서 언어 버전을 간편하게 다시 생성할 수 있습니다.
고객 성공 사례

실제 팀, 가시적인 성과

Rask를 통해 동영상을 현지화한 기업들의 실제 수치와 이야기를 확인해 보세요.
화살표
화살표
코드

AI 더빙 API 코드 예시

각 언어별 전체 과정: 인증, 업로드, 더빙, 대기, 다운로드.
# pip install git+https://github.com/braskai/rask-sdk
import asyncio
from rask_sdk import RaskSDKClient

async def main():
    client = RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

    media   = await client.upload_media_link(link="https://youtu.be/...")
    project = await client.create_project(video_id=media.id, dst_lang="es-mx")

    while project.status != "merging_done":
        await asyncio.sleep(10)
        project = await client.get_project(project.id)

    print(project.translated_video, project.translation_srt_path)

asyncio.run(main())
github.com/braskai/rask-sdk
Python 3.8+, async
import os, time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API  = "https://api.rask.ai"

token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

media = requests.post(f"{API}/api/library/v1/media/link", headers=h,
                      json={"link": "https://youtu.be/..."}).json()

project = requests.post(f"{API}/v2/projects", headers=h,
                        json={"video_id": media["id"], "dst_lang": "es-mx"}).json()

while project["status"] != "merging_done":
    time.sleep(10)
    project = requests.get(f"{API}/v2/projects/{project['id']}", headers=h).json()

print(project["translated_video"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';

const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then(r => r.json());

const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };

const media = await fetch(`${API}/api/library/v1/media/link`, {
  method: 'POST', headers: h,
  body: JSON.stringify({ link: 'https://youtu.be/...' }),
}).then(r => r.json());

let project = await fetch(`${API}/v2/projects`, {
  method: 'POST', headers: h,
  body: JSON.stringify({ video_id: media.id, dst_lang: 'es-mx' }),
}).then(r => r.json());

while (project.status !== 'merging_done') {
  await new Promise(r => setTimeout(r, 10000));
  project = await fetch(`${API}/v2/projects/${project.id}`, { headers: h }).then(r => r.json());
}

console.log(project.translated_video);
fetch, Node 18+
plain HTTP
# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials" | jq -r .access_token)

# 2. upload by link
VIDEO_ID=$(curl -s -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"link": "https://youtu.be/..."}' | jq -r .id)

# 3. create the dubbing project
ID=$(curl -s -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\"}" | jq -r .id)

# 4. poll, then download
while [ "$(curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq -r .status)" != "merging_done" ]; do
  sleep 10
done
POST /v2/projects
OAuth 2.0 client credentials
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);

$auth = json_decode((new Client)->post(
    'https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret],
     'form_params' => ['grant_type' => 'client_credentials']]
)->getBody(), true);

$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$media = json_decode($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']])->getBody(), true);

$project = json_decode($http->post('/v2/projects',
    ['headers' => $h, 'json' => ['video_id' => $media['id'], 'dst_lang' => 'es-mx']])->getBody(), true);

while ($project['status'] !== 'merging_done') {
    sleep(10);
    $project = json_decode($http->get("/v2/projects/{$project['id']}",
        ['headers' => $h])->getBody(), true);
}
Guzzle 7
plain HTTP
공식 SDK는 Python입니다. Node, PHP, cURL 탭은 동일한 엔드포인트를 사용하는 일반적인 HTTP 예시입니다.
진행 상황

더빙 프로젝트의 진행 상황을 보고하는 방법

프로젝트는 문서화된 상태 시스템을 거쳐 진행되므로 사용자에게 실제 단계별 진행률 바를 보여줄 수 있습니다. 세 가지 그룹에만 대응하면 됩니다.

성공, 여기서 중지

merging_done
더빙이 완료되었습니다. 프로젝트를 다시 불러와 다운로드 링크를 확인하세요.

진행 중, 계속 확인

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
또한 일치하는 항목 _done 단계별 진행 상황 화면에 알맞게 표시됩니다.

실패, 중단 및 보고

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words 및 forbidden_link 사용자에게 직접 보여줄 수 있을 만큼 구체적입니다.
Typical run, 4 minute source video
GET /v2/projects/{project_id}
   0s  created
  12s  transcription_started
  70s  translation_started
  95s  voiceover_started
 150s  merging_started
 170s  merging_done

또는 상태 확인 과정을 완전히 건너뛰세요

웹훅 엔드포인트를 지정하면 모든 상태 전환이 POST 요청으로 전송되므로 큐가 변경 즉시 반응할 수 있습니다. 웹훅 전달은 엔터프라이즈 온보딩의 일부입니다.
문서 읽기
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
결과물

더빙된 동영상, 오디오 및 자막

더빙된 동영상과 SRT 및 VTT 형식의 번역된 자막을 다운로드하세요. 이용 가능한 요금제에서는 번역된 음성만 따로 다운로드하거나 원래 배경음악과 섞어서 다운로드할 수도 있습니다.
항목
형식
설명
translated_video
MP4
바로 게시할 수 있는 더빙된 동영상
voiceover
WAV
배경음 없이 번역된 음성만 포함되어 있어 자유롭게 편집에 활용할 수 있습니다
translated_audio
WAV
번역된 음성과 원래의 배경음악이 섞인 오디오
translation_srt_path
.srt
번역된 언어의 자막
translation_vtt_path
.vtt
웹 플레이어용 WebVTT 자막
original_video
MP4
참고용으로 보관된 원본 파일
제어

대본을 수정한 후 변경된 부분만 다시 더빙하세요

자동 번역만으로도 대부분의 작업이 해결됩니다. 부족한 부분이 있다면 대본을 구간별로 수정하여 다시 만들 수 있으며, 수정한 부분에 대해서만 비용이 청구됩니다.

문장 단위 편집

문장 단위 편집
모든 프로젝트는 대본을 수정할 수 있는 구간별로 제공하므로, 잘못된 부분을 수정하려면 간단한 요청 한 번이면 됩니다.
대본과 문장 불러오기
원본 텍스트를 수정하면 자동으로 다시 번역됩니다.
번역된 텍스트를 직접 수정하여 원하는 표현을 유지하세요.
타임스탬프 조정, 문장 추가 및 삭제
화자에게 연결된 목소리 변경하기

용어집

용어집
프로젝트에 용어집을 추가하면 브랜드 이름, 제품명, 전문 용어가 항상 동일하게 번역되거나 의도한 대로 번역되지 않고 유지됩니다.

용어집 하나는 한 쌍의 언어에 적용되며 해당 목표 언어의 모든 지역별 변형에 공통으로 적용되므로 하나의 스페인어 용어집으로 es-mx 및 es-es 모두 커버할 수 있습니다. 프로젝트 기록은 glossary_version유지되므로 나중에 수정하더라도 완료된 작업이 예기치 않게 변경되지 않습니다.
입력

지원되는 파일 형식

7가지 동영상 형식과 4가지 오디오 형식을 지원하며 URL을 통한 직접 업로드도 가능합니다. 지원되지 않는 파일을 올리면 사용 시간이 차감되기 전에 API가 파일 형식을 확인하고 거부합니다.

동영상

7가지 형식
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

오디오

4가지 형식
.mp3
.wav
.flac
.m4a

작업 전 메타데이터 확인

미디어 엔드포인트는 재생 시간, 파일 크기, 동영상 코덱, 프레임 레이트, 해상도, 오디오 코덱, 샘플 레이트 및 채널 레이아웃을 제공합니다. 더빙은 사용 시간 단위로 비용이 청구되므로 사전에 파일을 확인하고 비용을 예상해 보세요.
보안 및 규정 준수

보안 검증 완료

Brask Inc는 SOC 2 Type II 인증을 받았으며 GDPR을 준수하고, 신뢰 센터(Trust Center)에 실시간 시스템 상태를 공개하고 있습니다.

인증

SOC 2 Type II
GDPR
CAI 및 C2PA 회원사

암호화

전송 중 TLS 1.2 암호화
저장 시 AES-256 암호화
SSE-S3 관리형 키
최소 12개월마다 키 갱신

회원님의 콘텐츠

폐쇄형 AI 환경
일반 모델 학습에 절대 사용되지 않음
전체 내보내기 가능, 종속성 없음

액세스

SSO 및 SAML
역할 기반 접근 제어
OAuth 2.0 클라이언트 자격 증명

기업

데이터 보관 지역 선택 옵션
맞춤형 SLA
전담 계정 관리자

음성 권리

사용 권한이 포함된 합성 목소리
동의 기반 목소리 복제
AI 안전 제어 및 사람의 관리
비교

Rask API와 직접 구축 방식 비교

동일한 더빙 기능이지만 방식은 두 가지입니다. 한쪽은 계약서이고, 다른 한쪽은 로드맵입니다.
필요한 기능
Rask API
부품들을 조립하는 방식
자막 추출, 번역, 음성 합성, 오디오 믹싱
한 번의 호출
3~4개의 업체와 이를 연결하는 작업 필요
화자 감지 및 화자별 목소리 설정
포함됨
화자 분리 업체와 자체 목소리 할당 로직 필요
배경 음악과 효과음 유지
포함됨
직접 구축하고 조정해야 하는 오디오 분리 단계
언어를 뛰어넘는 목소리 복제
포함됨
별도의 업체와 별도의 동의 절차
립싱크
포함됨
다섯 번째 업체
.srt 및 .vtt 형식의 자막
포함됨
자체 타이밍 데이터를 기반으로 생성
잘못된 대사 한 줄 수정하기
해당 부분만 다시 더빙하고 그 부분만 비용을 지불하세요
작업을 다시 실행하고 파일 비용을 지불하세요
용어 일관성
버전별 용어집
직접 관리하는 전처리 및 후처리
사용량 제한
없음
가장 성능이 낮은 업체의 기준
아직 아무도 지원하지 않는 언어
저희가 직접 만듭니다
사용 불가
자주 묻는 질문

AI 더빙 API 자주 묻는 질문

원하시는 내용을 찾지 못하셨나요? 영업팀에 문의해 주세요.

API 접근 권한과 API 키는 어떻게 발급받나요?

AI 더빙 API 인증은 어떻게 하나요?

API는 동기식인가요, 비동기식인가요?

요청 제한(rate limit)이 있나요?

몇 개의 언어로 더빙할 수 있나요?

API를 이용한 목소리 복제는 어떻게 작동하나요?

AI 더빙에는 얼마나 걸리나요?

어떤 파일 형식을 지원하나요?

화자가 여러 명인 동영상은 API에서 어떻게 처리하나요?

제가 직접 작성한 대본이나 자막을 사용할 수 있나요?

더블링된 동영상과 함께 자막도 받을 수 있나요?

SDK가 제공되나요?

수정 후 다시 더블링할 때 비용이 얼마나 드나요?

단 하루 만에 더블링을 시작해 보세요

오늘 첫 요청을 보내보시고, 대량 이용 조건이나 흔하지 않은 언어가 필요할 때 저희에게 문의해 주세요.