소개
립싱크는 이미 있는 영상의 목소리를 바꿉니다. video_url에 클립을, audio_url에 새 음성을 보내면 화면 속 인물의 입 주변이 그 말에 맞게 다시 그려지고, 연기·조명·구도는 촬영한 그대로 남습니다. 결과는 음성 길이만큼이며 그 음성이 사운드트랙으로 들어갑니다.
핵심 기능 및 하이라이트
입만 다시 칠합니다
표정, 머리 움직임, 의상, 배경은 모두 원본 프레임에서 오므로 이미 잘된 테이크는 그대로 살아 있습니다. 바뀌는 것은 그 사람이 무슨 말을 하는 것처럼 보이느냐뿐입니다. 얼굴의 나머지는 건드리지 않으니 새 대사는 원래 연기에 어울려야 합니다. 차분한 얼굴에 외치는 음성을 붙여도 여전히 차분해 보입니다.
길이는 음성이 정합니다
결과는 클립이 아니라 녹음을 따릅니다. 음성이 영상보다 길면 영상을 반복해 채우고, 반환 파일은 음성 끝보다 0.5초 정도 길어질 수 있습니다. 화면은 보낸 영상의 해상도를 720p 안팎까지 유지합니다. 1280×720 테스트 클립은 1280×720으로, 1920×1080 클립도 1280×720으로 돌아왔습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
video_url | 예 | 목소리를 바꿀 영상입니다. 얼굴이 하나이고 화면에서 충분히 크며 거의 카메라를 향해야 합니다. 1자 이상 |
audio_url | 예 | 새 말소리로, 3~60초의 MP3 또는 WAV입니다. 결과는 이 녹음 길이만큼이며, 범위를 벗어난 파일은 과금 전에 거절됩니다. 1자 이상 |
요금
$0.012 / 출력 초
보낸 음성의 초당으로, 1초 단위 올림에 최소 3초 기준으로 과금됩니다. 반환되는 영상은 음성보다 0.5초 정도 길 수 있지만 그만큼은 과금되지 않습니다.
활용 사례
다시 찍지 않는 더빙
인터뷰, 고객 후기, 진행자 테이크를 그대로 두고 번역한 음성으로 바꾸세요. 연기는 촬영한 그대로이고, 입 모양은 현장에서 녹음한 언어가 아니라 새 언어를 따라갑니다.
무음 생성 클립에 목소리를
대부분의 영상 모델은 무음 영상을 돌려줍니다. 대사를 녹음하거나 생성해 클립과 함께 보내면, 화면 속 인물이 입을 아무렇게나 움직이거나 가만히 있지 않고 실제로 그 말을 합니다.
프롬프트 가이드 및 실전 팁
입이 보이는 영상 고르기
한 사람, 충분히 큰 얼굴, 거의 카메라를 향한 영상이어야 합니다. 컷 전환, 심한 모션 블러, 입 근처의 손, 아주 작은 얼굴에서는 싱크가 어긋납니다. 고정된 샷은 음성이 클립보다 길 때 반복 지점도 잘 가려 줍니다.
더빙처럼 대사 준비하기
배경 음악 없는 건조한 말소리를 내보내고 앞뒤 무음을 잘라 내세요. 과금되는 길이는 음성이 정합니다. 파일 하나는 3~60초로 맞추고, 긴 대본은 자연스러운 쉼에서 나누세요.
기다리는 시간 계획하기
이 세트에서 가장 느린 도구로, 10초 대사를 처리하는 데 약 4분이 걸렸습니다. 일찍 제출하고 느긋하게 폴링하며, 대본 전체를 보내기 전에 짧은 대사로 조합을 먼저 시험하세요.
API 빠른 시작
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/lip-sync-v1/lip-sync",
"input": {
"audio_url": "https://example.com/reference.mp3",
"video_url": "https://example.com/reference.mp4"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
인증, 전체 스키마, 폴링과 오류 처리는 API 레퍼런스에서 확인하세요.




