ElevenLabs
ElevenLabs
elevenlabs/text-to-dialogue
개발자를 위한 음성 및 오디오 생성 제품군으로, 텍스트 음성 변환, 대화형 음성, 음향 효과 및 음악 생성을 아우릅니다
elevenlabs/text-to-dialogue 사용해 보기
입력
작품 갤러리
모든 작품 보기출력
audio가격
elevenlabs/text-to-dialogue per 1,000 characters
| 단가 | $0.125 |
|---|
포지셔닝 소개
elevenlabs/text-to-dialogue는 여러 역할의 대화 텍스트를 한 번에 음성으로 합성하는 인터페이스입니다. 호출자는 { text, voice } 배열로 각 대사와 음색을 지정하며, 모델은 각 줄에 대응하는 음성을 출력합니다. 한 번 제출하는 모든 대사의 총합은 5000자를 넘을 수 없습니다. 이는 단일 요청에서 2인 또는 다인 대화 오디오를 생성해야 하는 개발자, 예를 들어 단편 드라마 더빙, 팟캐스트 대담, 음성 비서 예시 자료, 인터랙티브 콘텐츠의 대화 연출에 적합합니다.
핵심 하이라이트
- 줄마다 음색 지정, 한 번의 요청으로 다인 대화 합성——dialogue 배열의 각 대사에 voice_id를 개별 바인딩하므로, 여러 번의 단일 합성으로 나눈 뒤 이어 붙일 필요가 없습니다.
- 문장별 음색 교체, 60여 개 후보 음색 지원——스키마의 voice 열거형은 수십 가지 옵션을 제공하며, 한 번의 대화에서 각기 다른 역할에 서로 다른 음색을 선택할 수 있습니다.
- 안정성 파라미터 일괄 조정——stability는 0, 0.5, 1 세 단계를 지원하며, 감정 기복과 음색 일관성 사이에서 균형을 잡는 데 사용됩니다.
- 언어 자동 감지 또는 지정 가능——language_code를 비워 두면 자동 감지되며, ISO 언어 코드를 명시적으로 지정할 수도 있고 70여 개 언어를 지원합니다.
기능 설명
다인 대화 합성: 대화 배열로 대사와 음색을 지정하면 한 번의 호출로 여러 역할이 포함된 대화 오디오를 출력하여, 구간별 합성과 수동 이어 붙이기를 생략할 수 있습니다.
문장별 음색 바인딩: 각 줄의 대사 voice를 독립적으로 선택할 수 있어, 역할마다 다른 음색을 부여하고 각자의 음성 특성을 유지하기에 적합합니다.
안정성 및 언어 제어: stability는 표현의 감정 변화 폭을 제어하고, language_code는 낭독 언어를 결정하거나 자동 감지에 맡기므로 고정 언어의 소재를 일괄 처리하기에 편리합니다.
긴 대화 텍스트 처리: 한 번의 요청에서 모든 대사의 총합은 5000자로 제한되며, 대본 형태의 대화를 한 번에 제출하고 내부 분할을 신경 쓰지 않아도 됩니다.
적용 시나리오
- 단편 드라마 및 스토리 콘텐츠 제작자: 다인 대화 대본——역할별 대사를 각자의 음색과 함께 제출하면 완전한 대화 오디오를 얻어 단편 드라마, 라디오 드라마, 인터랙티브 드라마의 줄거리 연출에 사용할 수 있습니다.
- 팟캐스트 및 인터뷰 콘텐츠: 대담 대본——2인 대담 텍스트를 서로 다른 음색의 대화 트랙으로 변환해 팟캐스트 클립이나 프로그램 샘플 테이프로 바로 사용할 수 있습니다.
- 제품 및 콘텐츠 팀: 다국어 대사 소재——언어 코드를 지정해 해당 언어의 대화 오디오를 합성하여 해외 버전 콘텐츠의 더빙과 데모에 사용할 수 있습니다.
- 개발자: 음성 대화 프로토타입 소재——음성 비서, 고객 상담 로봇 등의 프로토타입을 위해 다인 예시 오디오를 빠르게 생성하여 프로세스 검증과 내부 데모에 활용할 수 있습니다.
제한 및 선택 가이드
출력은 오디오이며 화면이나 영상을 생성하지 않으므로, 완성 영상이 필요하면 별도로 시각 제작을 완료해야 합니다. 한 번의 요청에서 모든 대사의 총합은 5000자를 넘을 수 없으며, 초과하는 긴 대본은 직접 여러 번 호출로 나누어 이어 붙여야 합니다. 음색은 인터페이스가 제공하는 voice 목록에서만 선택할 수 있고, 새로운 음색을 직접 복제할 수는 없습니다. 시나리오가 단일 내레이션 또는 1인 낭독에 불과하다면 단일 텍스트 음성 변환 경로를 사용하면 되며, 대화 배열을 구성할 필요가 없습니다.
자주 묻는 질문
모든 질문 보기 →-
Turbo 2.5란 무엇인가요?
ElevenLabs의 저지연 텍스트 음성 변환 모델로, 음성 비서, 알림 방송 및 대량 더빙에 적합합니다.
-
어떻게 호출하나요?
POST /v1/tasks에 model(elevenlabs/text-to-speech-turbo-2-5)과 input을 전달한 다음, taskId로 결과를 조회하거나 callback을 설정하세요.
-
요금은 어떻게 청구되나요?
input.text의 문자 수를 기준으로 1,000자당 청구되며, 실시간 단가는 본 페이지의 가격 섹션을 기준으로 합니다.
-
previous_text와 next_text는 유료인가요?
무료입니다. 이들은 분할 합성에 문맥을 제공하여 억양이 자연스럽게 이어지도록 할 뿐입니다.
생성 작업 제출
https://api.hiapi.ai/v1/tasks 헤더
Authorizationstring필수계정 API 키. 모든 요청에 필수입니다. 예: Bearer YOUR_HIAPI_API_KEY. API 키 받기
Content-Typestring선택요청 본문은 항상 JSON으로 파싱됩니다. 전송 시 application/json(charset 포함 가능)만 허용되며, 다른 값은 415를 반환합니다. 예: application/json.
Idempotency-Keystring선택멱등 키. 최대 255바이트. 같은 계정에서 같은 키의 재시도는 태스크를 한 번만 생성하며, 재전송 시 최초의 taskId를 반환합니다.
네트워크 타임아웃이나 클라이언트 자동 재시도 시 같은 키로는 태스크를 한 번만 생성하고 이중 과금되지 않습니다(범위 = API 키의 계정). 업무 고유 식별자(예: "order-42")를 키로 사용할 것을 권장합니다. 같은 키 재전송 시 최초 taskId를 반환하며, 키는 첫 제출 후 24시간 뒤 만료됩니다. 자세한 시나리오 표는 통합 비동기 API 소개 페이지를 참고하세요.
본문
modelstring필수현재 고정 값: elevenlabs/text-to-dialogue
routestring선택현재 고정 값: default
inputobject필수
elevenlabs/text-to-dialogue 및 루트 default의 비즈니스 파라미터 객체. 아래 파라미터 표를 참조하세요.
dialoguearray필수minItems 1
대화 항목 배열이며, 배열의 각 요소는 text와 voice 두 필드를 포함하여 해당 대사의 문장과 사용할 음색을 각각 지정합니다. 모든 대화 항목의 text 총 문자 수는 5000자를 초과할 수 없습니다.
Array [ object ]
배열 항목
textstring필수minLength 1해당 대사 문장의 텍스트 내용입니다. 대화 배열의 모든 text 필드 문자 총수는 5000자를 초과할 수 없습니다.
voicestring필수기본값: "EkK5I93UQWFDigLMpZcX"해당 대사에 사용할 음색으로, 프리셋 음색 이름 또는 voice_id를 입력할 수 있습니다. 기본값은 EkK5I93UQWFDigLMpZcX입니다.
EkK5I93UQWFDigLMpZcXZ3R5wn05IrDiVCyEkUrKNNl6r8mD7vthiJatiJt1YOq2y2Up4RgXP2HyXjE5B8gJV1IhpuegLxdpXFOE2zRM7PkgwBPiau2jvVXc1SM7GgM6IMuvQlz2BwM35l5f8iK3YPeGga21rQIX전체 보기(59개)
scOwDtmlUjD3prqpp97INOpBlnGInO9m6vDvFkFCBZgkqPqms7Kj9ulSkVznwo6udizrrtpIxWGp2qJkgU0LNdkMOQCOrPrwtbeeDGzg6RaUqxGRTHSBjfgFx70vRnQBMBu4FAYhjJbOSm1seazb4gs7RSlUVw7cP1bg08DkjqiVEzOn76yGqDuRKMlYmrm8trt5QyBnqXpMhyvQqiRxWQs4qSSBTX3LPaxmHKxFdv7VOQHJN2lVS1w4EtoT3dr4eOWOFGY2WhTYpPnrIDTdsKH5kPzsL2i3teMYv0FxEYQ6UgBBYS2sOqTuMpoF3BR0hpp4J3VqNfWAUOO0d1UsnPczCjzI2devNBz1zQrbuYXf8XasLslADfZ2MB4ugs0tAILXbY5DNrJrsM6FDTKMou8ccj1ZaWGBiotdvBKc2FfBKJfcZNyEt1n6DYkrAHD8iwork3YSUBbs56AoDkrOh6qfVPDXZ7PteR40ATw9ArzDf9h3v7t7g6xIsTj2HwM6VR4iXFCwlcMyyd2HUfFzxdCaC4Ta6aDn1KB0hjpdcocrUkmqSq93GQT4X1lKDXsQcixOflHkNRp1BlvT73UL6gyz9yzdeviXkFddZ4Oz8MokpPdl9cQBQq4p6mRkZy2ZzYcjlYFOd3taleS0gkk3nzeAacJi50IvxcyDnMXaruirxsoakN0GWmGNIo04TC0Zp7WVFzhA8zpTlRqVljo9gAlSqKOvF6D8sOsXPPzYpIqttlTYA83688JI8JVbfL6oEdmuxKn5DK2CiCrDUkL56s3C8sCRl7wbwJqPPQ618aTW29mptyocEiNlNiXeDU1pqqOPrYMO4YYIPFl9wE5c4L2eu2Gb6F5Zhi321D3Oq7v1oNT4YXpFCvM1S3JbWEJhoskWLG95yZDEHg6fCZdQjLqjCeNX9CMwmxDxUF5Q2InmaD6riP1btT197c6dACmymtrellq69YZsNwzUSyXhdHd5gvgSOzSfduK4CvEgeVItLK1UvXctxuaRV2Oqesy0r39YPLQjOczyOib8Tsns2HvNFKfGiNjllgqo1U02n4nD6AdIZ9CjF053AeRdCCKzvd23BpJoofzxLruHrtVF6PSyGItzMNHS1wGbFxmAM3Fgw63G1zZJhqfrgApggtO1785R4FsnMJ0RnG71ty4LH3dvNfSdstabilitynumber선택기본값: 0.5음색 안정성으로, 값이 작을수록 감정이 풍부하고 변화가 많으며, 클수록 출력이 더 안정적이고 일관됩니다. 기본값은 0.5입니다.
00.51language_codestring선택기본값: ""언어 코드(ISO 형식). 비워 두면 언어를 자동 감지하며, 기본값은 비워 둠입니다.
afarhyasazbebn전체 보기(67개)
bsbgcacebnyhrcsdanlenetfilfifrglkadeelguhahehihuisidgaitjajvknkkkykolvlnltlbmkmsmlzhmrnenopsfaplptparorusrsdskslsoesswsvtatethtrukurvicycallbackobject선택
종료 상태 알림 설정. 생략하면 콜백이 전송되지 않으며 호출 측에서 폴링합니다.
생성 시 callback.url을 지정하면 태스크 종료 시 HiAPI가 서비스로 POST하여 폴링이 필요 없습니다. 콜백 본문은 태스크 상세와 동일한 구조입니다. 서명 검증·재시도·멱등에 대한 자세한 내용은 통합 비동기 API 소개 페이지의 콜백 설명을 참고하세요.
urlstring필수callback 사용 시 필수. 태스크 종료 후 이 URL로 POST됩니다. 유효한 http(s) URL이어야 합니다.
whenstring선택기본값: "final"현재는 final만 지원(success / fail 모두 알림).
finalstoragestring선택기본값: "temp"산출물 저장 등급: temp(기본·약 7일) 또는 persistent(장기 보관·용량 과금). 잔액 부족이나 저장 한도 초과 시 자동으로 temp로 강등됩니다. 실제 적용된 등급은 태스크 상세 응답에서 확인할 수 있습니다.
temppersistent요청 예시
# 비동기 태스크 제출. 성공 시 즉시 taskId 반환(생성 완료 대기 없음)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "elevenlabs/text-to-dialogue",
"input": {
"dialogue": "…",
"stability": 0.5,
"language_code": ""
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "elevenlabs/text-to-dialogue",
input: {
"dialogue": "…",
"stability": 0.5,
"language_code": ""
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "elevenlabs/text-to-dialogue",
"input": {
"dialogue": "…",
"stability": 0.5,
"language_code": ""
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} 작업 상세 조회
https://api.hiapi.ai/v1/tasks/:id 응답 필드
taskIdstring필수태스크 ID. 접두사는 항상 tk-hiapi-.
modelstring필수확인된 전체 모델명. route 파라미터로 제출한 태스크는 base@route(예: gpt-image-2/text-to-image@ext)를 반환하며, 그 외에는 제출 시의 모델명과 동일합니다.
routestring선택route 파라미터를 명시해 제출한 태스크에만 나타나며, 제출한 값을 그대로 반환합니다.
statusstring필수태스크 상태.
queued 대기 중, 아직 시작되지 않음.
handling 처리 중.
archiving 처리 완료, 산출물 준비 중.
success 종료: 완료. 산출물 사용 가능(output 반환).
fail 종료: 실패(error 반환).
제출 후 status로 판단합니다: success와 fail이 종료 상태이며 나머지는 비종료입니다. 1~3초 간격으로 종료까지 폴링하세요. 성공 시 output[].url에서 산출물을 다운로드하고 expireAt 전에 옮기세요. 장기 보관이 필요하면 생성 시 storage: "persistent"를 사용하세요.
creatednumber필수태스크 생성 시각(Unix 초).
completednumber필수종료 상태가 된 Unix 초. 비종료 상태에서는 0.
outputarray선택
status == success일 때만 나타납니다. 산출물 목록 — 항상 배열이며, 하나의 태스크에서 여러 type을 동시에 반환할 수 있습니다(예: video + first_frame).
Array [ object ]
배열 항목
urlstring필수산출물 URL. 바로 다운로드할 수 있습니다.
typestring필수현재 가능한 값: video, image, audio, first_frame, last_frame, thumbnail. 이후 확장될 수 있습니다.
expireAtnumber필수산출물 접근 가능 기한(Unix 초). 만료 전에 다운로드하거나 이전하세요.
errorobject선택
status == fail일 때만 나타납니다.
codestring필수비즈니스 오류 코드.
messagestring필수오류 설명.
응답 예시
성공
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} 처리 중(비종료)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} 실패
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} 아티클
모든 아티클 보기 →-
튜토리얼
HiAPI API로 hailuo-2.3/text-to-video를 호출하는 방법: curl, Python 및 실행 가능한 요청 예시
-
튜토리얼
HiAPI에서 kandinsky-6.0-pro/image-to-video 튜토리얼: curl + Python
HiAPI에서 사용 가능한 이미지-투-비디오 요청 보내기: 첫 프레임 업로드부터 비동기 폴링, 최종 다운로드까지
-
튜토리얼
HiAPI API로 kling-4.0/text-to-video를 사용하는 방법: curl, Python 및 실행 가능한 요청 예제
개발자를 위한 실전 가이드: 영화적 프롬프트, 동기화 오디오, 비동기 폴링 및 출력 다운로드
-
튜토리얼
HiAPI에서 kling-4.0/image-to-video를 호출하는 방법: curl, Python 및 폴링
-
튜토리얼
HiAPI에서 Kandinsky 6.0 Pro 텍스트-투-비디오 사용하기: curl 및 Python 튜토리얼
요청 우선 실전 데모: 프롬프트에서 비디오 클립까지의 호출 구성, 요청 제출, 완료 상태 폴링 및 결과 다운로드
-
튜토리얼
HiAPI API로 hailuo-2.3-fast/image-to-video 호출하는 방법: curl과 Python 실전
빠르고 저렴한 이미지-투-비디오 등급의 첫 실행 요청 — 모델 ID부터 MP4 다운로드까지
관련 모델
모든 모델 보기 →동일 유형
-
MiniMax Music 2.6 MiniMax $0.210 /곡 -
Lyria 3 Pro Google $0.140 /곡 -
MiniMax Music 3 MiniMax $0.0026 /초 -
Gemini 3.1 Flash TTS Google -- -
ElevenLabs ElevenLabs $0.0029 /초 -
Qwen Audio 3.0 TTS Alibaba $0.030 /1,000자 -
MiniMax Music 1.5 MiniMax $0.070 /곡 -
Mirelo SFX 2.0 Mirelo AI $0.021 /초 -
Mureka 9.5 Mureka $0.322 per request -
Lyria 3.5 Google $0.090 /곡



