Skip to main content
보이스 체인저는 speech-to-speech입니다. 전달 방식, 속도, 타이밍을 유지하면서 원본 파일을 다른 음성으로 다시 녹음합니다. 비동기 방식이며 자체 엔드포인트를 사용합니다. /audio/queuetext-to-speech, 보이스 클로닝이 아닙니다. 보이스 체인저 모델을 선택하고, 가격 견적을 요청하고, 변환을 큐에 넣은 다음, Venice가 변환된 오디오를 반환할 때까지 폴링하세요.
큐에 등록된 변환은 즉시 요금이 청구됩니다. 큐 응답이 유실되면 동일한 queue_id/audio/voice-changer/retrieve를 폴링하세요. 동일한 녹음을 다시 큐에 넣지 마세요.

모델 선택

보이스 체인저 모델은 GET /models?type=music으로 반환되며, model_spec.voice_changertrue로 설정되어 있습니다. ?type=voice-changer 필터는 없습니다. 아래 예제에서는 elevenlabs-voice-changer를 사용합니다.
선택적 필드를 설정하기 전에 각 모델의 메타데이터를 확인하세요: 지원되지 않는 필드는 HTTP 400 응답을 유발합니다. max_source_audio_duration_seconds보다 긴 녹음은 요금이 청구되기 전에 HTTP 422로 거부됩니다.

변환 흐름

1. 가격 견적 받기

보이스 체인저는 원본 녹음의 길이를 다음 정수 분으로 올림해 청구됩니다. 보내려는 길이로 견적을 요청하세요. 실제 요금은 녹음이 큐에 등록될 때 Venice가 측정하는 길이로 계산됩니다.
응답에는 USD 기준 예상 비용과 견적이 계산된 길이가 포함됩니다:

2. 변환 큐에 넣기

원본 녹음은 두 가지 방식 중 정확히 하나로 제공하세요. multipart file 업로드로 보내거나, JSON 본문의 audio_url로 보내세요. 둘 다 제공하거나 아무것도 제공하지 않으면 거부됩니다. URL을 전달하면 Venice가 바이트를 직접 가져와 검증한 다음 그 바이트만 공급자에게 전달합니다. URL 자체는 절대 전달되지 않습니다.
모델이 지원한다고 표시하는 경우의 선택적 필드:
  • remove_background_noise — 변환 전에 배경 잡음을 제거합니다
  • seed — 재현 가능한 결과를 위한 0 이상의 정수
성공한 요청은 모델, 큐 ID, 측정된 원본 길이를 반환합니다:
modelqueue_id를 저장하세요. retrieve와 complete 엔드포인트에서 필요합니다. 견적을 청구된 길이와 대조해야 한다면 duration_seconds를 견적과 비교하세요.
큐 요청은 재시도하기에 안전하지 않습니다. 성공한 큐 요청은 이미 요금이 청구된 상태입니다.

3. 폴링 및 다운로드

큐 응답에서 받은 값으로 /audio/voice-changer/retrieve를 호출하세요:
응답의 Content-Type을 확인하세요: 처리 중 응답은 다음과 같은 형태입니다:
두 타이밍 값은 모두 밀리초 단위입니다. 완료된 응답에는 x-venice-audio-format, x-venice-audio-duration, x-venice-inference-time, x-venice-model-id, x-venice-model-name도 포함됩니다. 공급자가 변환에 실패하면 요금이 자동으로 환불되며, 오류 본문에 credits_refunded가 포함됩니다. 다시 폴링하면 두 번 환불하는 대신 동일한 결과가 반복 재생됩니다. 오디오를 반환하는 동일 호출에서 저장된 미디어를 삭제하려면 retrieve에 delete_media_on_completiontrue로 설정하세요. 이후에는 오디오를 다시 가져올 수 없습니다.

전체 예시

이 Python 예제는 변환 견적을 받고, 원본 파일을 업로드하고, 5초마다 폴링한 다음, 결과를 MP3로 저장합니다.
quote 엔드포인트는 인증이 필요하지 않지만, queue, retrieve, complete 요청에는 인증이 필요합니다.

관련 리소스