FRTTS
FRTTS API
짧은 텍스트를 프리셋 음성으로 합성하고 완성된 WAV URL을 반환합니다.
1
음성 합성
voiceId 또는 voiceName 중 하나로 목소리를 선택합니다.
URL
POST
https://agitvxptajouhvoatxio.supabase.co/functions/v1/tts-synthesize-v1인증 및 헤더
API Key는 서버 환경변수에 보관하고 요청 헤더로만 전달하세요.
X-API-Key: {YOUR_API_KEY}
Content-Type: application/json요청 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
text | string | 필수 | 합성할 텍스트입니다. 최대 240자 |
voiceId | UUID | 조건부 | 정확한 음성·감정 변형을 가리키는 목소리 ID입니다. voiceName이 없으면 필수 |
voiceName | string | 조건부 | 프리셋 목소리 이름입니다. voiceId가 없으면 필수 |
emotion | string | 선택 | voiceName으로 선택할 감정입니다. voiceId를 사용하면 ID에 포함된 감정이 적용됩니다. 기본값 "neutral" |
dictionaryId | UUID | 선택 | 합성 전에 적용할 조직 소유 단어장 ID입니다. |
settings | object | 선택 | 속도, 피치, 볼륨 설정 객체입니다. |
settings.speed | number | 선택 | 재생 속도 배율입니다. 기본값 1.0 |
settings.pitch | number | 선택 | 피치 조절값입니다. 서버가 -10–10 범위로 보정합니다. 기본값 0 · -10–10 |
settings.volume | number | 선택 | 볼륨 비율입니다. 1.0이 기본 출력 볼륨입니다. 기본값 1.0 · 권장 0–1 |
요청 예시
{
"text": "안녕하세요. FRTTS 음성 합성 테스트입니다.",
"voiceName": "시아",
"emotion": "neutral",
"settings": {
"speed": 1,
"pitch": 0,
"volume": 1
}
}응답
200
합성 결과
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
jobId | UUID | 필수 | 생성된 TTS 작업 ID입니다. |
audioUrl | string | 필수 | 완성된 WAV 오디오 URL입니다. |
합성 결과
{
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"audioUrl": "https://cdn.example.com/output/audio.wav"
}400
E4201 / E4202 · 입력 오류
text, voiceId, voiceName, emotion, dictionaryId, settings 또는 하위 설정 값의 타입이 잘못되었거나 텍스트가 너무 긴 경우입니다.
E4201 / E4202 · 입력 오류
{
"error": {
"code": "E4201",
"message": "Invalid request",
"details": "Missing required field: text"
}
}402
E4601 · 크레딧 부족
FRTTS 작업을 예약할 크레딧이 부족합니다.
404
E4301 · 단어장 없음
dictionaryId가 조직에서 찾을 수 없는 단어장을 가리킵니다.
503
E5002 · 단어장 조회 일시 불가
단어장 DB/RPC 조회를 일시적으로 사용할 수 없습니다.
- JSON 요청 body는 최대 1 MiB입니다.