DIVE
목소리 관리
DIVE TTS에서 사용할 수 있는 커스텀 목소리를 등록하고 관리합니다
개요
목소리 관리 API를 사용하여 사용자의 음성 샘플을 등록하고 DIVE TTS 합성에 사용할 수 있습니다. 등록된 목소리는 savedVoiceId로 DIVE API에서 사용할 수 있습니다.
음성 샘플 등록
오디오 파일을 업로드하여 커스텀 목소리를 등록합니다
저장된 목소리 관리
등록된 목소리 목록을 조회하고 상태를 확인합니다
목소리 처리 상태
등록된 목소리는 다음과 같은 상태를 가집니다.
processing- 목소리 등록 처리 중 (토큰 생성 대기)
completed- 등록 완료 (DIVE 합성에 사용 가능)
failed- 등록 실패 (오류 발생)
API 엔드포인트
Required Headers
X-API-Key: {YOUR_API_KEY}POST
https://agitvxptajouhvoatxio.supabase.co/functions/v1/register-dive-voice-v1새로운 목소리를 등록합니다. 응답은 즉시 반환되고 실제 처리는 백그라운드에서 진행됩니다.
Content-Type: multipart/form-data
// Request (Form Data)
name: string // 목소리 이름 (최대 50자, 필수) description: string // 목소리 설명 (최대 200자, 선택) audioFile: File // 오디오 파일 - wav, mp3, m4a, webm, ogg, flac (필수) audioText: string // 오디오에서 말하는 텍스트 내용 (필수)
// Response (201 Created)
{
"id": "uuid",
"name": "string",
"status": "processing"
}GET
https://agitvxptajouhvoatxio.supabase.co/functions/v1/list-dive-voices-v1조직에 등록된 모든 목소리 목록을 조회합니다.
// Response (200 OK)
{
"voices": [
{
"id": "uuid",
"name": "string",
"description": "string",
"usageCount": number,
"status": "completed",
"createdAt": "ISO 8601 datetime"
}
]
}DELETE
https://agitvxptajouhvoatxio.supabase.co/functions/v1/delete-dive-voice-v1/{id}조직에 등록된 목소리를 삭제합니다.
// Response (200 OK)
// body 없음
오디오 파일 가이드라인
권장 사항
- 오디오 길이: 2~20초
- 포맷: WAV, MP3, M4A
- 음질: 깨끗한 녹음, 배경 소음 최소화
- 텍스트 정확도: audioText는 오디오 내용과 정확히 일치해야 함
주의 사항
- 배경 음악이나 효과음이 포함된 오디오는 피해주세요
- 여러 명의 목소리가 포함된 오디오는 사용할 수 없습니다
- 텍스트와 오디오가 일치하지 않으면 품질이 저하됩니다
DIVE API 연동
등록된 목소리를 DIVE TTS 합성에 사용하려면 mode를 "saved"로 설정하고 savedVoiceId에 목소리 ID를 전달합니다.
DIVE API Request Body
{
"text": "안녕하세요, 저장된 목소리로 합성합니다.",
"mode": "saved",
"savedVoiceId": "{VOICE_ID}"
// ... other DIVE parameters
}오류 코드
| 상태 코드 | 설명 |
|---|---|
| 400 | 필수 파라미터 누락 또는 잘못된 형식 |
| 401 | API 키가 유효하지 않거나 누락됨 |
| 403 | 목소리 등록 기능 접근 권한 없음 (has_dive_reference_access) |
| 500 | 서버 내부 오류 |