번역된 영상을 위한 목소리 복제 API

영상이 다른 언어로 바뀔 때도 모든 출연자의 원래 목소리를 유지해 보세요. API가 원본 영상에서 목소리를 자동으로 복제하거나, 한 번 만들어 둔 맞춤형 목소리를 활용하여 복제된 목소리와 오디오 트랙, 자막이 포함된 더빙 영상을 완성해 줍니다.
즉석 목소리 복제
맞춤형 목소리 복제
REST + Python SDK
clone, assign, re-dub
OAuth 2.0
# 1. create the dub - each speaker gets an Instant Voice Clone by default
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"}'

# 2. list the voices available in this project
curl https://api.rask.ai/v2/projects/$ID/voices \
  -H "Authorization: Bearer $TOKEN"
#  "label": "Voice Clone", "gender": "auto"         instant clone
#  "label": "Maria Lopez", "sample_src": "https://..."  your custom clone

# 3. assign your custom clone - include every speaker in the map
curl -X PATCH https://api.rask.ai/v2/projects/$ID \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"voice": {"SPEAKER_00": "<custom_voice_id>", "SPEAKER_01": "<voice_id>"}}'
GET /v2/projects/{project_id}
polling, 10s
# 4. re-dub with the new voices, then poll until merging_done
curl -X POST https://api.rask.ai/v2/projects/$ID/generate \
  -H "Authorization: Bearer $TOKEN"
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq .status
  sleep 10
done
전 세계 팀들이 사용하는
주요 기능

목소리 복제 API의 주요 기능

원본 영상의 출연자 목소리를 복제하거나 한 번 생성해 둔 맞춤형 목소리를 활용하여 다양한 언어로 번역된 영상에 적용할 수 있습니다. 목소리 복제를 지원하지 않는 언어의 경우 AI 음성 프리셋을 선택할 수 있으며, 립싱크 기능은 별도로 추가할 수 있습니다.

즉석 목소리 복제

별도로 오디오를 녹음할 필요 없이, 원본 영상의 목소리를 그대로 복제하여 각 출연자에게 적용합니다. 지원되는 타겟 언어에서는 기본으로 설정됩니다.

맞춤형 목소리 복제

깨끗한 오디오 샘플을 사용해 Rask 앱에서 언제든 재사용할 수 있는 목소리를 만들거나, 기존 프로젝트의 출연자 목소리를 목소리 복제 라이브러리에 저장하세요. 당사자의 동의를 얻어 지원되는 언어의 API 프로젝트 전반에 해당 목소리를 다시 사용할 수 있습니다.

출연자별 1인 1목소리

출연자 음성이 자동으로 분리되며 각자의 복제된 목소리가 유지되므로 인터뷰, 패널 토론, 팟캐스트도 내용 파악이 쉽습니다.

립싱크

완성된 프로젝트에 선택 사항으로 립싱크 기능을 적용하여 복제된 목소리에 맞춰 입 모양을 자연스럽게 맞출 수 있습니다. (별도 과금) 얼굴 감지가 먼저 실행되므로 효과적인 영상에만 적용할 수 있습니다.

배경 오디오 유지

음악, 주변 소음 및 효과음이 목소리와 분리되어 복제된 목소리 아래에 다시 믹싱되므로 원본 영상의 생생한 현장감이 그대로 유지됩니다.

AI 음성 프리셋

목소리 복제를 지원하지 않는 언어이거나 기존 음성이 더 잘 어울리는 경우, 출연자 성별에 맞춰 AI 음성 프리셋을 선택할 수 있습니다.

언어를 초월하는 목소리 정체성

스페인어, 프랑스어, 일본어로 말할 때도 원래 발표자의 목소리가 그대로 유지되므로 전 세계 시청자에게 익숙한 목소리를 전달할 수 있습니다.

목소리 변경 및 특정 출연자 재더빙

출연자에게 다른 목소리를 지정하고 다시 생성해 보세요. 변경된 부분만 과금되므로 아무도 처음부터 다시 녹음할 필요가 없습니다.

제한 없는 규모 확장

사용량 제한, 동시 처리 할당량, 키별 속도 제한이 없습니다. 복제된 목소리를 이용해 대량의 동영상을 병렬로 간편하게 더빙하세요.
작동 모습 보기

한 명의 목소리를 5개 언어로 듣기

영어 원본 목소리에 이어 프랑스어, 독일어, 포르투갈어, 스페인어로 복제된 목소리를 들어보세요. 각 출연자의 목소리와 배경 오디오가 그대로 유지됩니다.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
작업 흐름

원본 영상에서 복제된 목소리까지 단 3단계

프로젝트를 시작하면 간편 목소리 복제 기능이 적용된 더빙이 시작됩니다. 목소리를 변경하거나 대본을 수정한 후에는 /generate 주소를 사용하세요.
1

동영상 업로드

파일을 여러 부분으로 나누어 전송하거나 YouTube, Google Drive, S3, Vimeo 등의 링크 또는 직접 URL을 입력하세요. 이 동영상의 음성은 간편 목소리 복제의 기준이 되는 목소리 샘플이 됩니다.

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

프로젝트 만들기

미디어 ID를 video_id로 입력하고 목표 언어를 설정하세요. 감지된 화자마다 지원되는 언어로 간편 목소리 복제가 생성되며 즉시 더빙이 시작됩니다.

POST /v2/projects
3

목소리 지정 및 재더빙

프로젝트의 목소리 목록을 확인하고, 원하는 화자에게 맞춤형 복제 목소리나 기본 설정 목소리를 지정한 다음 /generate를 호출하고 더빙이 완료되면 파일을 다운로드하세요.

PATCH /v2/projects/{project_id}
처리 시간은 프로젝트에 따라 다릅니다. 화자의 목소리를 변경하면 해당 화자의 구간만 재더빙되며 요금이 청구됩니다.
사용자 맞춤형 서비스

목록에 없는 목소리가 필요하신가요? 저희 팀에 문의하세요

아직 지원되지 않는 언어의 목소리 복제, 더 큰 맞춤형 목소리 라이브러리, 자체 전달 방식 등 공개 목록에 없는 기능이 필요한 경우, 저희 팀에서 고객의 요구 사항과 가능한 옵션을 검토해 드립니다.

언어 및 목소리

공개 카탈로그에 없는 언어이나 목소리가 필요하신가요? 요구사항과 가능한 옵션에 대해 저희 팀과 상의해 보세요.

전송 및 연동

웹훅(Webhook), 자체 대기열로의 전송, S3로의 직접 전달, 맞춤형 엔드포인트 등을 지원합니다. 파이프라인에서 원하는 전달 방식을 알려주세요.

볼륨 및 처리량

일괄 처리 규모, 작업당 목표 언어 수, 처리 우선순위는 고정된 제품 한도가 아니라 계약 조건에 따라 결정됩니다.

보안 및 호스팅

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

목소리 복제 API를 사용하는 곳

동영상이 포함된 플랫폼

학습 관리 시스템 및 고객 교육 플랫폼, 크리에이터 및 동영상 플랫폼과 모바일 앱, 웨비나 및 가상 이벤트 도구, 동영상 호스팅 및 워크플로 SaaS, 디지털 도입 플랫폼, 라이브 쇼핑. 크리에이터와 강사가 목소리 복제를 지원하는 언어에서 자신의 목소리를 그대로 유지할 수 있도록 지원합니다. 다른 목표 언어에는 AI 목소리 기본 설정을 사용하고 플랫폼에 다국어 더빙 기능을 추가해 보세요.

현지화 및 제작 대행사

모든 고객 동영상에 원래 발표자의 목소리로 맞춤형 더빙을 제공하세요. 동의를 거쳐 반복 출연하는 발표자마다 맞춤형 복제 목소리를 유지하고, 누군가에게 다시 녹음을 요청할 필요 없이 API를 통해 모든 프로젝트에서 재사용하세요.

자체적인 지속적 동영상 제작

글로벌 유통 및 전자상거래, 글로벌 프랜차이즈, 미디어 출판사, 기업 대학. 강사, 임원, 제품 전문가가 한 번 녹음한 후, 지원되는 목표 언어에서는 복제된 목소리를 사용하고 교육 동영상, 제품 업데이트, 사내 메시지의 다른 시장 버전에서는 AI 목소리 기본 설정을 사용할 수 있습니다.
고객 사례

실제 팀, 가시적인 성과

Rask AI를 통해 기업이 동영상을 현지화한 방식을 수치로 확인해 보세요.
화살표
화살표
코드

목소리 복제 API 코드 예시

각 언어별 완벽한 예시: 인증, 업로드, 간편 목소리 복제로 더빙, 화자에게 맞춤형 복제 목소리 지정, 재더빙 및 다운로드.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

async def wait(client, job):
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)
    return job

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

    video = await client.create_media_link(data=schemas.MediaCreateLink(link="https://youtu.be/..."))
    while video.status is not enums.MediaStatus.READY:
        await asyncio.sleep(5)
        video = await client.get_media(media_id=video.id)

    # first dub: every speaker gets an Instant Voice Clone
    job = await wait(client, await client.create_project(
        data=schemas.ProjectCreate(video_id=video.id, dst_lang="es-mx")))

    # assign a custom clone to SPEAKER_00, keep the other speakers as they are
    voices = await client.get_project_voices(project_id=job.id)
    custom = next(v for v in voices if v.label == "Maria Lopez")
    voice_map = {**job.voice, "SPEAKER_00": custom.id}
    await client.patch_project(project_id=job.id, data=schemas.ProjectPatch(voice=voice_map))

    job = await wait(client, await client.generate_project(project_id=job.id))
    print(job.translated_video, job.voiceover)

asyncio.run(main())
github.com/braskai/rask-sdk
async, typed models
import 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}"}

def wait(pid):
    while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
        time.sleep(10)
    return p

video = requests.post(f"{API}/api/library/v1/media/link", headers=h, json={"link": "https://youtu.be/..."}).json()
while video["status"] != "ready":
    time.sleep(5)
    video = requests.get(f"{API}/api/library/v1/media/{video['id']}", headers=h).json()

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

voices = requests.get(f"{API}/v2/projects/{pid}/voices", headers=h).json()
custom = next(v for v in voices if v["label"] == "Maria Lopez")
voice_map = {**project["voice"], "SPEAKER_00": custom["id"]}   # every speaker stays in the map

requests.patch(f"{API}/v2/projects/{pid}", headers=h, json={"voice": voice_map})
requests.post(f"{API}/v2/projects/{pid}/generate", headers=h)
print(wait(pid)["translated_video"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
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 call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());
const wait = async (id) => { let p; while ((p = await call('GET', `/v2/projects/${id}`)).status !== 'merging_done') await sleep(10000); return p; };

let video = await call('POST', '/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (video.status !== 'ready') { await sleep(5000); video = await call('GET', `/api/library/v1/media/${video.id}`); }

const { id } = await call('POST', '/v2/projects', { video_id: video.id, dst_lang: 'es-mx' });
const project = await wait(id);

const voices = await call('GET', `/v2/projects/${id}/voices`);
const custom = voices.find((v) => v.label === 'Maria Lopez');
await call('PATCH', `/v2/projects/${id}`, { voice: { ...project.voice, SPEAKER_00: custom.id } });
await call('POST', `/v2/projects/${id}/generate`);

console.log((await wait(id)).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. create the dub - Instant Voice Clones are assigned by default
ID=$(curl -s -X POST https://api.rask.ai/v2/projects -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\"}" | jq -r .id)

# 3. after merging_done: read the current voice map and the voice options
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq .voice
curl -s https://api.rask.ai/v2/projects/$ID/voices -H "Authorization: Bearer $TOKEN" | jq '.[] | {id, label, gender}'

# 4. assign voices for every speaker, then re-dub
curl -s -X PATCH https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" -d '{"voice": {"SPEAKER_00": "<custom_voice_id>", "SPEAKER_01": "<voice_id>"}}'
curl -s -X POST https://api.rask.ai/v2/projects/$ID/generate -H "Authorization: Bearer $TOKEN"
PATCH /v2/projects/{id}
OAuth 2.0 client credentials
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);
$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$wait = function ($id) use ($http, $h, $json) {
    do { sleep(10); $p = $json($http->get("/v2/projects/$id", ['headers' => $h])); }
    while ($p['status'] !== 'merging_done');
    return $p;
};

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

$voices = $json($http->get("/v2/projects/$id/voices", ['headers' => $h]));
$custom = current(array_filter($voices, fn($v) => $v['label'] === 'Maria Lopez'));
$map = array_merge($project['voice'], ['SPEAKER_00' => $custom['id']]);

$http->patch("/v2/projects/$id", ['headers' => $h, 'json' => ['voice' => $map]]);
$http->post("/v2/projects/$id/generate", ['headers' => $h]);
echo $wait($id)['translated_video'];
Guzzle 7
plain HTTP
Python은 공식 SDK입니다. 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 사용자에게 직접 보여주기에 충분히 명확합니다.
Observed run, 3:47 source video, en → es-mx
GET /v2/projects/{project_id}
   0s  created
  11s  transcription_started
  87s  translation_started
  99s  voiceover_started
 154s  merging_started
 165s  merging_done

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

웹훅 엔드포인트를 지정하면 상태가 바뀔 때마다 POST 요청이 전송되므로, 대기열이 변경 즉시 반응합니다. 웹훅 전송 기능은 엔터프라이즈 플랜에서 제공됩니다.
문서 읽기
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
결과물

복제된 목소리, 더빙된 동영상, 자막

복제된 목소리와 SRT, VTT 형식의 번역된 자막이 포함된 더빙 동영상을 다운로드하세요. 이용 가능한 요금제에서는 복제된 목소리 트랙만 WAV 형식으로 다운로드하거나 원본 배경 오디오와 믹스해서 다운로드할 수도 있습니다.
필드
형식
설명
translated_video
MP4
바로 게시할 수 있는 더빙된 동영상
voiceover
WAV
직접 믹스할 수 있도록 복제된 목소리로만 번역된 음성 제공
translated_audio
WAV
번역된 음성과 원래 배경 오디오가 섞인 파일
translation_srt_path
.srt
번역된 언어의 자막
translation_vtt_path
.vtt
웹 플레이어용 WebVTT 자막
original_video
MP4
참고용으로 저장된 원본 파일
제어

목소리를 변경한 후 해당 화자만 재더빙

대부분의 화자에게는 간편 복제 기능이 적합합니다. 특정 목소리를 다르게 설정해야 하는 경우 해당 화자에게 맞춤형 복제 목소리나 기본 설정 목소리를 지정하고 다시 생성하세요. 변경된 구간에 대해서만 요금이 청구됩니다.

문장 단위 편집

문장 단위 편집
모든 프로젝트는 화자 라벨이 포함된 세그먼트 형태로 대본을 제공하므로, 대사를 다른 화자에게 옮기거나 목소리를 변경하는 작업은 요청 한 번으로 완료됩니다.
대본과 문장 가져오기
원본 텍스트를 수정하면 AI가 다시 번역합니다
번역된 텍스트를 직접 수정하여 원하는 표현을 유지하세요
타임스탬프 조정, 문장 추가 및 삭제
화자에게 지정된 목소리 변경하기

전문 용어 사전

전문 용어 사전
용어집을 추가하면 브랜드 이름, 제품명, 전문 용어가 어떤 목소리로 말하든 모든 언어에서 동일하게 번역됩니다.

하나의 용어 사은 하나의 언어 쌍을 다루며 해당 타겟 언어의 모든 지역별 변형에 적용되므로, 하나의 스페인어 사전으로 es-mx 및 es-es 지원합니다. 프로젝트는 glossary_version을 기록하므로, 나중에 수정해도 완료된 작업이 예기치 않게 변경되지 않습니다.
입력

지원하는 파일 형식

7가지 동영상 및 4가지 오디오 형식 중 원하는 파일을 업로드하거나 URL을 전송하세요. 파일의 음성이 간편 목소리 복제의 기준이 되므로 깨끗한 오디오일수록 더 좋은 결과를 얻을 수 있습니다.

동영상

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

오디오

4개 형식
.mp3
.wav
.flac
.m4a

비용 발생 전 상세 정보 확인

미디어 엔드포인트는 재생 시간, 파일 크기, 비디오 코덱, 프레임 레이트, 해상도, 오디오 코덱, 샘플 레이트 및 채널 레이아웃을 반환합니다. 복제된 목소리를 이용한 더빙은 분 단위로 요금이 부과되므로, 사전에 파일을 확인하고 비용을 예상해 보세요.
보안 및 규정 준수

법무팀에서 승인할 수 있는 음성 데이터

Brask Inc는 SOC 2 Type II 인증을 취득했으며 GDPR을 준수하고, 트러스트 센터에 실시간 제어 상태를 공개합니다. 맞춤형 목소리 복제는 화자의 동의하에 이루어지며, 데이터 보안을 위해 오디오는 일반 모델 학습에 절대 사용되지 않습니다.

인증

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 비교

텍스트 음성 변환(TTS) 복제 API는 전송한 텍스트를 음성으로 변환해 줍니다. 번역된 동영상에서 복제된 목소리에는 자막 생성, 번역, 화자 분리, 타이밍 및 믹싱도 필요합니다. 다음은 같은 결과를 두 가지 방식으로 구현한 모습입니다.
필요한 항목
Rask API
개별 부품 조합 방식
원본 동영상의 각 화자 목소리 복제
기본 제공되는 즉시 목소리 복제
모든 화자의 샘플 수집 및 업로드
재사용 가능한 맞춤형 목소리
voice_id를 이용한 맞춤형 목소리 복제
직접 구축하고 관리하는 음성 라이브러리
자막 생성, 번역, 음성 합성, 믹싱
단 하나의 API
3~4개의 서비스 업체와 이를 연결하는 코드
화자 감지 및 화자당 하나의 목소리
포함됨
화자 분리 서비스 업체와 자체 음성 할당 로직
배경음악 및 효과음 유지
포함됨
직접 구축하고 조정해야 하는 소스 분리 단계
목소리 복제가 지원되지 않는 언어
AI 음성 프리셋
다른 텍스트 음성 변환 서비스 업체
립싱크
선택 사항이며 별도 청구
별도의 서비스 업체
특정 화자의 목소리 변경
해당 화자만 다시 더빙하고 변경된 구간에 대해서만 요금 부과
파일 전체에 대해 파이프라인 재실행
이용 제한
없음
가장 엄격한 제공업체의 정책 적용
목록에 없는 목소리나 언어
팀과 상담하기
공급업체에 따라 다름
자주 묻는 질문

목소리 복제 API: 자주 묻는 질문

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

목소리 복제용 API가 있나요?

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

즉석 목소리 복제와 맞춤형 목소리 복제의 차이점은 무엇인가요?

API를 통해 맞춤형 목소리 복제를 만들 수 있나요?

맞춤형 목소리 복제에는 어떤 오디오가 필요한가요?

어떤 언어에서 목소리 복제를 지원하나요?

목소리 복제 API를 텍스트 음성 변환(TTS)으로 사용할 수 있나요?

더빙 후 화자의 목소리를 어떻게 바꾸나요?

맞춤 목소리를 몇 개까지 저장할 수 있나요?

목소리를 복제하려면 동의가 필요한가요?

복제된 목소리가 화자의 감정과 억양을 유지하나요?

복제된 음성을 상업적 목적으로 사용할 수 있나요?

음성 복제 비용은 얼마인가요?

반나절만에 더빙 시작하기

오늘 첫 요청을 보내보세요. 대량 계약 조건이나 다른 곳에 없는 언어가 필요할 때 저희에게 연락해 주세요.