개발가이드파일 변환한국어 AI 내레이션 TTS

한국어 AI 내레이션 TTS API

명세 내보내기
OpenAPI 3.0.3Postman 컬렉션Markdown

한국어 대본을 보내면 음성(MP3)과 발화 시각이 맞춰진 ASS 자막을 함께 만들어 줍니다. 작업을 접수한 뒤 상태를 확인하고, 완료되면 두 파일을 내려받는 방식입니다.

POSThttps://apick.app/rest/tts/jobs전체 11개 경로
인증
Bearer 키
요청 형식
form-data / GET
응답
JSON · 파일
경로
11개

왜 한국어 AI 내레이션 TTS인가

대본만 주면 내레이션과 자막이 함께 나옵니다

내레이션을 녹음하고 자막 타이밍을 하나하나 맞추느라 영상 제작 시간이 다 갑니다. 대본을 보내면 한국어 AI 음성과 타이밍이 맞는 자막 파일을 함께 돌려받습니다.

도입 효과

  • 성우 섭외·녹음 일정 없이 제작
  • 자막 싱크 맞추는 수작업 제거
  • 대량 영상도 작업으로 맡기고 받기

이런 곳에서 많이 씁니다

  • 숏폼·영상 채널 내레이션 양산
  • 이러닝 강의 음성·자막 제작
  • 사내 교육 영상 제작
  • 오디오북 샘플 제작
가입하고 API 키 받기API 키 하나로 바로 호출 · 실패한 요청은 과금되지 않습니다

알아둘 점

기능·제공 범위 전체 펼쳐 보기

이용 전 확인

항목
조건
흐름
① POST /rest/tts/jobs로 접수 → ② GET /rest/tts/jobs/{job_id}를 2~5초 간격으로 조회 → ③ completed가 되면 /result(MP3)와 /subtitles(ASS)를 각각 내려받기
엔진
두 가지 음성 엔진 중 하나를 고릅니다. /rest/tts/jobs와 /rest/tts/gemini/jobs는 Gemini 음성(기본 목소리 Kore), /rest/tts/openai/jobs는 ChatGPT 음성(기본 목소리 alloy)입니다. 조회·다운로드 API와 결과 파일 규격은 같습니다.
대본 길이
모든 text의 글자 수 합계(공백·문장부호·줄바꿈 포함)가 정규화 사용 시 2,000자, 정규화 끔(normalize_text: false) 시 8,000자 이하. 발화는 최대 100개
언어
한국어
결과 규격
MP3 24kHz·모노·48kbps, ASS 자막(입력한 원문 표기를 실제 음성 시각에 맞춰 표시)
보관
완료 후 24시간. MP3와 ASS는 각각 한 번만 내려받을 수 있습니다. 내려받다 끊긴 경우는 다시 시도할 수 있습니다.

지원 API 요약

Method
API entry point
기능
성공 결과
POST
/rest/tts/jobs
음성 작업 접수(Gemini)
HTTP 202와 job_id
POST
/rest/tts/gemini/jobs
음성 작업 접수(Gemini, 위와 같음)
HTTP 202와 job_id
POST
/rest/tts/openai/jobs
음성 작업 접수(ChatGPT)
HTTP 202와 job_id
GET
/rest/tts/jobs/{job_id}
작업 상태 조회
HTTP 200과 현재 상태
POST
/rest/tts/jobs/{job_id}/cancel
waiting·processing 작업 취소 요청
HTTP 200과 현재 상태, 정산 후 cancelled
GET
/rest/tts/jobs/{job_id}/result
MP3 음성 다운로드
audio/mpeg 파일 <job_id>.mp3
GET
/rest/tts/jobs/{job_id}/subtitles
ASS 자막 다운로드
text/plain; charset=utf-8 파일 <job_id>.ass
GET
/rest/tts/gemini/voices
Gemini 목소리 목록(무료)
voices, 확인 시각 checked_at, 전체 목록 여부 complete
GET
/rest/tts/openai/voices
ChatGPT 목소리 목록(무료)
목소리 ID와 음색 특성
GET
/rest/tts/options
엔진별 표현 옵션 범위(무료)
engines.gemini·engines.openai
POST
/rest/tts/quote
예상 요금 조회(무료, 제작하지 않음)
합성·정규화 예상 금액과 최대 예약금

목소리: Gemini는 Kore, Puck, Charon, Zephyr 등 기본 30종과 확장 목소리가 있으며 현재 ID·성별·음색은 목소리 목록 API에서 확인하세요. ChatGPT는 alloy, ash, ballad, coral, echo, fable, onyx, nova, sage, shimmer, verse입니다. 예상 요금 조회는 접수와 같은 입력에 engine(gemini 또는 openai, 기본 gemini)을 더해 보냅니다.

요금

합성 요금은 선택한 엔진의 실제 사용량으로 정산합니다(작업당 기본요금 5P). 기본으로 켜진 정규화 요금은 별도 합산되며, 발화를 나눠도 정규화 기본요금은 한 번만 부과됩니다. 정확한 예상 금액은 POST /rest/tts/quote로 확인하세요.

접수 때 최대 금액을 예약하고 완료 후 실제 사용량으로 정산합니다. 정규화가 실패하거나 서비스 측 원인으로 최종 제작에 실패하면 정규화 요금까지 전액 환불합니다. 연결을 끊어도 제작과 정상 과금은 계속되며, 멈추려면 취소 API를 호출하세요. 취소하면 이미 처리한 분량만 정산하고 나머지 예약금은 풀립니다.

대본 작성 가이드

1. 문장부호로 쉼과 억양 정하기

마침표·물음표·느낌표·말줄임표·쉼표가 억양과 짧은 쉼에 반영됩니다. 쉬어 읽을 곳에는 쉼표를 직접 넣으세요.

--form-string 'text=하지만… 기록은 그 사실을 분명히 말하고 있었습니다. 정말 아무도 몰랐던 걸까요?'
2. 숫자·날짜·단위

normalize_text: true(기본)이면 숫자·날짜·단위를 문맥에 맞게 읽습니다. 끄면 입력한 표기 그대로 읽으므로 읽는 법을 한글로 풀어 쓰세요.

--form-string 'text=2003년 7월 14일, 오전 2시 30분에 신고가 접수됐습니다.'
3. 발화 나누기와 글자 수

문장마다 다른 목소리를 쓰려면 utterances로 나눕니다. 글자 수 한도는 발화 하나가 아니라 모든 text의 합계에 적용되며, 키 이름과 옵션 값은 세지 않습니다.

--form-string 'voice_id=Kore' \
--form-string 'utterances[0][text]=그날 밤, 마을에는 이상할 만큼 고요한 정적이 내려앉았습니다.' \
--form-string 'utterances[1][voice_id]=Charon' \
--form-string 'utterances[1][text]=하지만 한 집의 불빛만은 꺼지지 않았습니다.'
4. 감정·톤·속도·음높이

감정과 용도는 이름으로, 속도·음높이·음량은 숫자로 지정합니다. 값을 생략하면 기본 낭독입니다.

--form-string 'voice_id=Kore' \
--form-string 'style=문장 끝을 부드럽게 마무리' \
--form-string 'emotion=empathetic' \
--form-string 'tone=audiobook' \
--form-string 'accent=standard' \
--form-string 'pace=0.9' \
--form-string 'pitch=-1' \
--form-string 'volume_gain_db=1.5' \
--form-string 'text=오늘은 천천히, 다정하게 읽어 드립니다.'

발화마다 다른 감정·속도·스타일을 주려면 form-data 본문으로 보냅니다. 발화 값이 없으면 화자 설정, 그다음 최상위 값을 씁니다.

// Content-Type: application/json 본문
{
  "voice_id": "Kore",
  "utterances": [
    { "text": "먼저 결론부터 말씀드립니다.", "emotion": "confident", "tone": "news", "pace": 1.05 },
    { "text": "그리고 마지막으로 한 가지 더.", "emotion": "calm", "pace": 0.92, "style": "조금 더 천천히" }
  ]
}
5. 여러 화자의 대화

speakers에 화자 이름과 목소리·옵션을 적고, 발화의 speaker로 연결합니다. multi_speaker: true이면 화자가 2명 이상이어야 하고, Gemini 엔진에서는 화자 2명까지이며 모든 발화에 speaker가 있어야 합니다. 화자 이름은 80자 이하입니다.

// Content-Type: application/json 본문
{
  "multi_speaker": true,
  "speakers": {
    "진행자": { "voice_id": "Kore", "emotion": "friendly", "tone": "conversation" },
    "게스트": { "voice_id": "Charon", "emotion": "confident", "pace": 0.95 }
  },
  "utterances": [
    { "speaker": "진행자", "text": "오늘 이야기 나눠 볼까요?" },
    { "speaker": "게스트", "text": "네, 좋습니다." }
  ]
}

요청과 응답

1작업 접수
POST/rest/tts/jobs
  • Bearer 인증
  • multipart/form-data
  • JSON 응답
요청 파라미터 15개
파라미터
설명
textstring조건부
합성할 한국어 본문. text와 utterances 중 하나만 사용합니다. 정규화(normalize_text)를 쓰면 1~2,000자, 끄면 8,000자까지입니다(공백·줄바꿈 포함).
예시
오늘 기온은 5℃입니다.
voice_idstring선택
사용할 목소리의 ID입니다. 목소리 목록에서 고른 값을 넣으며, 생략하면 엔진 기본 목소리로 합성됩니다. 목소리별로 억양·속도·성별이 다릅니다.
예시
Kore
stylestring선택
자유 서술 낭독 스타일 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
최대 길이
1000자
예시
따뜻하고 또렷하게
emotionstring선택
감정 표현. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 12가지입니다. neutral = 감정을 넣지 않은 담담한 표현입니다. 안내·낭독의 기본값으로 쓰기 좋습니다. calm = 차분하고 낮은 감정입니다. 안정감이 필요한 안내에 적합합니다. cheerful = 밝고 경쾌한 감정입니다. 광고·환영 문구에 적합합니다. excited = 들뜨고 활기찬 감정입니다. 이벤트·강조 문장에 적합합니다. sad = 슬프고 가라앉은 감정입니다. 서사·추모 문구에 적합합니다. serious = 진지하고 단호한 감정입니다. 공지·경고 문구에 적합합니다. friendly = 친근하고 부드러운 감정입니다. 고객 응대에 적합합니다. empathetic = 공감하고 위로하는 감정입니다. 상담·안내에 적합합니다. confident = 확신에 찬 감정입니다. 발표·제안에 적합합니다. gentle = 조용하고 온화한 감정입니다. 수면·명상 콘텐츠에 적합합니다. whisper = 속삭이듯 작은 목소리입니다. ASMR·몰입형 콘텐츠에 적합합니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다.
허용값
neutral calm cheerful excited sad serious friendly empathetic confident gentle whisper narration
tonestring선택
용도·톤. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 9가지입니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다. news = 뉴스 앵커처럼 또렷하고 일정한 톤입니다. audiobook = 오디오북 낭독 톤입니다. 긴 문장을 안정적으로 읽습니다. documentary = 다큐멘터리 해설 톤입니다. 차분하고 설명적입니다. ad = 광고 카피에 맞춘 톤입니다. 짧고 리듬감 있게 읽습니다. conversation = 대화하듯 자연스러운 톤입니다. announcement = 안내 방송 톤입니다. 또렷하고 전달력이 좋습니다. tutorial = 설명·강의 톤입니다. 단계 설명에 적합합니다. storytelling = 이야기 들려주는 톤입니다. 감정 변화를 살립니다.
허용값
narration news audiobook documentary ad conversation announcement tutorial storytelling
accentstring선택
억양. 생략 시 표준어 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 5가지입니다. standard = 지역색이 없는 표준어 억양입니다. seoul = 서울·수도권 억양입니다. gyeongsang = 경상도 억양입니다. jeolla = 전라도 억양입니다. chungcheong = 충청도 억양입니다.
허용값
standard seoul gyeongsang jeolla chungcheong
pacenumber선택
말 속도 배율 0.5~2.0. 1이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
pitchnumber선택
음높이 -12~12 반음. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
volume_gain_dbnumber선택
음량 보정 -12~12 dB. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
normalize_textboolean선택
기본 true true/false로 보내며, 생략하면 서버 기본값이 적용됩니다. true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
예시
true
multi_speakerboolean선택
멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화 true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
speakersobject선택
화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}
utterancesarray조건부
합성할 발화(문단) 목록입니다. 각 항목은 text·speaker·speed 등을 가지며, 전체 글자 수 제한을 함께 확인하세요.
utterances[0][text]string조건부
발화 본문. text와 utterances 중 하나만 사용합니다. 최대 100개 발화입니다. 본문 합계는 정규화(normalize_text)를 쓰면 2,000자, 끄면 8,000자까지입니다.
utterances[0][voice_id]string선택
이 발화에만 쓸 목소리 ID입니다. 생략하면 화자 설정, 그다음 최상위 voice_id를 씁니다.
응답 필드 9개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 이 경로에서는 항상 "waiting" 하나만 오는 고정값입니다.
허용값
waiting
data.voice_idstring
합성에 사용한 목소리 ID입니다. 요청의 voice_id를 그대로 반영하며, 생략한 경우 엔진 기본 목소리 ID가 옵니다.
data.character_countinteger
공백·문장부호를 포함한 합성 글자 수입니다. 이 값으로 과금 글자 수를 확인하며, 발화 목록을 쓰면 전체 발화의 합입니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
2작업 접수
POST/rest/tts/gemini/jobs
  • Bearer 인증
  • multipart/form-data
  • JSON 응답
요청 파라미터 15개
파라미터
설명
textstring조건부
합성할 한국어 본문. text와 utterances 중 하나만 사용합니다. 정규화(normalize_text)를 쓰면 1~2,000자, 끄면 8,000자까지입니다(공백·줄바꿈 포함).
voice_idstring선택
사용할 목소리의 ID입니다. 목소리 목록에서 고른 값을 넣으며, 생략하면 엔진 기본 목소리로 합성됩니다. 목소리별로 억양·속도·성별이 다릅니다.
stylestring선택
자유 서술 낭독 스타일 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
최대 길이
1000자
emotionstring선택
감정 표현. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 12가지입니다. neutral = 감정을 넣지 않은 담담한 표현입니다. 안내·낭독의 기본값으로 쓰기 좋습니다. calm = 차분하고 낮은 감정입니다. 안정감이 필요한 안내에 적합합니다. cheerful = 밝고 경쾌한 감정입니다. 광고·환영 문구에 적합합니다. excited = 들뜨고 활기찬 감정입니다. 이벤트·강조 문장에 적합합니다. sad = 슬프고 가라앉은 감정입니다. 서사·추모 문구에 적합합니다. serious = 진지하고 단호한 감정입니다. 공지·경고 문구에 적합합니다. friendly = 친근하고 부드러운 감정입니다. 고객 응대에 적합합니다. empathetic = 공감하고 위로하는 감정입니다. 상담·안내에 적합합니다. confident = 확신에 찬 감정입니다. 발표·제안에 적합합니다. gentle = 조용하고 온화한 감정입니다. 수면·명상 콘텐츠에 적합합니다. whisper = 속삭이듯 작은 목소리입니다. ASMR·몰입형 콘텐츠에 적합합니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다.
허용값
neutral calm cheerful excited sad serious friendly empathetic confident gentle whisper narration
tonestring선택
용도·톤. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 9가지입니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다. news = 뉴스 앵커처럼 또렷하고 일정한 톤입니다. audiobook = 오디오북 낭독 톤입니다. 긴 문장을 안정적으로 읽습니다. documentary = 다큐멘터리 해설 톤입니다. 차분하고 설명적입니다. ad = 광고 카피에 맞춘 톤입니다. 짧고 리듬감 있게 읽습니다. conversation = 대화하듯 자연스러운 톤입니다. announcement = 안내 방송 톤입니다. 또렷하고 전달력이 좋습니다. tutorial = 설명·강의 톤입니다. 단계 설명에 적합합니다. storytelling = 이야기 들려주는 톤입니다. 감정 변화를 살립니다.
허용값
narration news audiobook documentary ad conversation announcement tutorial storytelling
accentstring선택
억양. 생략 시 표준어 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 5가지입니다. standard = 지역색이 없는 표준어 억양입니다. seoul = 서울·수도권 억양입니다. gyeongsang = 경상도 억양입니다. jeolla = 전라도 억양입니다. chungcheong = 충청도 억양입니다.
허용값
standard seoul gyeongsang jeolla chungcheong
pacenumber선택
말 속도 배율 0.5~2.0. 1이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
pitchnumber선택
음높이 -12~12 반음. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
volume_gain_dbnumber선택
음량 보정 -12~12 dB. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
normalize_textboolean선택
기본 true true/false로 보내며, 생략하면 서버 기본값이 적용됩니다. true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
multi_speakerboolean선택
멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화 true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
speakersobject선택
화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}
utterancesarray조건부
합성할 발화(문단) 목록입니다. 각 항목은 text·speaker·speed 등을 가지며, 전체 글자 수 제한을 함께 확인하세요.
utterances[0][text]string조건부
발화 본문. text와 utterances 중 하나만 사용합니다. 최대 100개 발화입니다. 본문 합계는 정규화(normalize_text)를 쓰면 2,000자, 끄면 8,000자까지입니다.
utterances[0][voice_id]string선택
이 발화에만 쓸 목소리 ID입니다. 생략하면 화자 설정, 그다음 최상위 voice_id를 씁니다.
응답 필드 9개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 이 경로에서는 항상 "waiting" 하나만 오는 고정값입니다.
허용값
waiting
data.voice_idstring
합성에 사용한 목소리 ID입니다. 요청의 voice_id를 그대로 반영하며, 생략한 경우 엔진 기본 목소리 ID가 옵니다.
data.character_countinteger
공백·문장부호를 포함한 합성 글자 수입니다. 이 값으로 과금 글자 수를 확인하며, 발화 목록을 쓰면 전체 발화의 합입니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
3작업 접수
POST/rest/tts/openai/jobs
  • Bearer 인증
  • multipart/form-data
  • JSON 응답
요청 파라미터 15개
파라미터
설명
textstring조건부
합성할 한국어 본문. text와 utterances 중 하나만 사용합니다. 정규화(normalize_text)를 쓰면 1~2,000자, 끄면 8,000자까지입니다(공백·줄바꿈 포함).
voice_idstring선택
사용할 목소리의 ID입니다. 목소리 목록에서 고른 값을 넣으며, 생략하면 엔진 기본 목소리로 합성됩니다. 목소리별로 억양·속도·성별이 다릅니다.
stylestring선택
자유 서술 낭독 스타일 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
최대 길이
1000자
emotionstring선택
감정 표현. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 12가지입니다. neutral = 감정을 넣지 않은 담담한 표현입니다. 안내·낭독의 기본값으로 쓰기 좋습니다. calm = 차분하고 낮은 감정입니다. 안정감이 필요한 안내에 적합합니다. cheerful = 밝고 경쾌한 감정입니다. 광고·환영 문구에 적합합니다. excited = 들뜨고 활기찬 감정입니다. 이벤트·강조 문장에 적합합니다. sad = 슬프고 가라앉은 감정입니다. 서사·추모 문구에 적합합니다. serious = 진지하고 단호한 감정입니다. 공지·경고 문구에 적합합니다. friendly = 친근하고 부드러운 감정입니다. 고객 응대에 적합합니다. empathetic = 공감하고 위로하는 감정입니다. 상담·안내에 적합합니다. confident = 확신에 찬 감정입니다. 발표·제안에 적합합니다. gentle = 조용하고 온화한 감정입니다. 수면·명상 콘텐츠에 적합합니다. whisper = 속삭이듯 작은 목소리입니다. ASMR·몰입형 콘텐츠에 적합합니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다.
허용값
neutral calm cheerful excited sad serious friendly empathetic confident gentle whisper narration
tonestring선택
용도·톤. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 9가지입니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다. news = 뉴스 앵커처럼 또렷하고 일정한 톤입니다. audiobook = 오디오북 낭독 톤입니다. 긴 문장을 안정적으로 읽습니다. documentary = 다큐멘터리 해설 톤입니다. 차분하고 설명적입니다. ad = 광고 카피에 맞춘 톤입니다. 짧고 리듬감 있게 읽습니다. conversation = 대화하듯 자연스러운 톤입니다. announcement = 안내 방송 톤입니다. 또렷하고 전달력이 좋습니다. tutorial = 설명·강의 톤입니다. 단계 설명에 적합합니다. storytelling = 이야기 들려주는 톤입니다. 감정 변화를 살립니다.
허용값
narration news audiobook documentary ad conversation announcement tutorial storytelling
accentstring선택
억양. 생략 시 표준어 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 5가지입니다. standard = 지역색이 없는 표준어 억양입니다. seoul = 서울·수도권 억양입니다. gyeongsang = 경상도 억양입니다. jeolla = 전라도 억양입니다. chungcheong = 충청도 억양입니다.
허용값
standard seoul gyeongsang jeolla chungcheong
pacenumber선택
말 속도 배율 0.5~2.0. 1이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
pitchnumber선택
음높이 -12~12 반음. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
volume_gain_dbnumber선택
음량 보정 -12~12 dB. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
normalize_textboolean선택
기본 true true/false로 보내며, 생략하면 서버 기본값이 적용됩니다. true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
multi_speakerboolean선택
멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화 true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
speakersobject선택
화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}
utterancesarray조건부
합성할 발화(문단) 목록입니다. 각 항목은 text·speaker·speed 등을 가지며, 전체 글자 수 제한을 함께 확인하세요.
utterances[0][text]string조건부
발화 본문. text와 utterances 중 하나만 사용합니다. 최대 100개 발화입니다. 본문 합계는 정규화(normalize_text)를 쓰면 2,000자, 끄면 8,000자까지입니다.
utterances[0][voice_id]string선택
이 발화에만 쓸 목소리 ID입니다. 생략하면 화자 설정, 그다음 최상위 voice_id를 씁니다.
응답 필드 9개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 이 경로에서는 항상 "waiting" 하나만 오는 고정값입니다.
허용값
waiting
data.voice_idstring
합성에 사용한 목소리 ID입니다. 요청의 voice_id를 그대로 반영하며, 생략한 경우 엔진 기본 목소리 ID가 옵니다.
data.character_countinteger
공백·문장부호를 포함한 합성 글자 수입니다. 이 값으로 과금 글자 수를 확인하며, 발화 목록을 쓰면 전체 발화의 합입니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
4상태·목록 조회
GET/rest/tts/jobs/:job_id
  • Bearer 인증
  • 요청 본문 없음
  • JSON 응답

경로의 job_id는 앞 단계에서 받은 값으로 바꾸세요. 예제는 APICK_JOB_ID 환경변수에서 읽습니다.

요청 파라미터 없음

추가 폼 항목이 없습니다. 인증 헤더만 보내면 됩니다.

응답 필드 263개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 가능한 값은 5가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. cancelled = 작업이 취소된 상태입니다. 결과가 없으므로 필요하면 같은 조건으로 새로 접수해야 합니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
허용값
waiting processing completed cancelled failed
data.result_availableboolean
결과 파일을 지금 내려받을 수 있는지 여부입니다. false면 아직 처리 중이거나 결과가 만료·삭제된 상태입니다. true = 결과 파일을 지금 내려받을 수 있는 경우, false = 처리 중이거나 실패·만료된 경우입니다.
data.subtitles_availableboolean
합성 결과의 자막 파일을 내려받을 수 있는지 여부입니다. false면 자막 생성이 생략되었거나 아직 준비되지 않은 상태입니다. true = 자막 파일을 내려받을 수 있는 경우, false = 자막 생성이 생략되었거나 아직 준비되지 않은 경우입니다.
data.resume_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.qualityobject
품질 상세. 아직 검사 전이면 null이거나 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다. null 허용.
data.errorobject
작업 실패 원인을 담은 객체입니다. 공개 오류코드(code)와 사람이 읽을 설명(message)이 들어 있으며, 성공한 작업에는 없습니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
하위 필드 251개 더 보기
응답 필드
설명
data.quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_qualityobject
최종 선택된 음원의 품질 검사 결과입니다. 최종 검사 전에는 null이거나 생략됩니다.
data.quality.final_quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.final_quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.final_quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.final_quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.final_quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.final_quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.final_quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.final_quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.final_quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.final_quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.final_quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.statusstring
최종 선택된 음원의 검사 상태입니다. 통과·주의·실패 값을 확인해 다운로드 가능 여부를 판단하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.audio_sha256string
최종 선택된 음원의 SHA-256 해시입니다. 다운로드한 파일의 무결성을 확인할 때 사용합니다.
data.error.codestring
작업 실패의 공개 오류코드입니다. 같은 코드는 같은 원인을 뜻하며, 재시도 가능 여부는 오류 문서를 확인하세요.
data.error.messagestring
작업 실패 내용을 사람이 읽을 수 있게 설명합니다. 상세 원인은 서버 로그에만 남으며, 고객에게는 이 문구를 안내하세요.
5작업 취소
POST/rest/tts/jobs/:job_id/cancel
  • Bearer 인증
  • multipart/form-data
  • JSON 응답

경로의 job_id는 앞 단계에서 받은 값으로 바꾸세요. 예제는 APICK_JOB_ID 환경변수에서 읽습니다.

요청 파라미터 없음

추가 폼 항목이 없습니다. 인증 헤더만 보내면 됩니다.

응답 필드 7개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 이 경로에서는 항상 "cancelled" 하나만 오는 고정값입니다.
허용값
cancelled
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
6결과 받기
GET/rest/tts/jobs/:job_id/result
  • Bearer 인증
  • 요청 본문 없음
  • 파일 응답

경로의 job_id는 앞 단계에서 받은 값으로 바꾸세요. 예제는 APICK_JOB_ID 환경변수에서 읽습니다.

요청 파라미터 없음

추가 폼 항목이 없습니다. 인증 헤더만 보내면 됩니다.

응답 필드 파일

정상 응답은 파일 본문입니다. 실패 시 JSON 오류가 올 수 있으므로 HTTP 상태와 Content-Type을 먼저 확인하세요.

7결과 받기
GET/rest/tts/jobs/:job_id/subtitles
  • Bearer 인증
  • 요청 본문 없음
  • 파일 응답

경로의 job_id는 앞 단계에서 받은 값으로 바꾸세요. 예제는 APICK_JOB_ID 환경변수에서 읽습니다.

요청 파라미터 없음

추가 폼 항목이 없습니다. 인증 헤더만 보내면 됩니다.

응답 필드 파일

정상 응답은 파일 본문입니다. 실패 시 JSON 오류가 올 수 있으므로 HTTP 상태와 Content-Type을 먼저 확인하세요.

8상태·목록 조회
GET/rest/tts/gemini/voices
  • Bearer 인증
  • 요청 본문 없음
  • JSON 응답
요청 파라미터 없음

추가 폼 항목이 없습니다. 인증 헤더만 보내면 됩니다.

응답 필드 263개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 가능한 값은 5가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. cancelled = 작업이 취소된 상태입니다. 결과가 없으므로 필요하면 같은 조건으로 새로 접수해야 합니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
허용값
waiting processing completed cancelled failed
data.result_availableboolean
결과 파일을 지금 내려받을 수 있는지 여부입니다. false면 아직 처리 중이거나 결과가 만료·삭제된 상태입니다. true = 결과 파일을 지금 내려받을 수 있는 경우, false = 처리 중이거나 실패·만료된 경우입니다.
data.subtitles_availableboolean
합성 결과의 자막 파일을 내려받을 수 있는지 여부입니다. false면 자막 생성이 생략되었거나 아직 준비되지 않은 상태입니다. true = 자막 파일을 내려받을 수 있는 경우, false = 자막 생성이 생략되었거나 아직 준비되지 않은 경우입니다.
data.resume_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.qualityobject
품질 상세. 아직 검사 전이면 null이거나 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다. null 허용.
data.errorobject
작업 실패 원인을 담은 객체입니다. 공개 오류코드(code)와 사람이 읽을 설명(message)이 들어 있으며, 성공한 작업에는 없습니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
하위 필드 251개 더 보기
응답 필드
설명
data.quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_qualityobject
최종 선택된 음원의 품질 검사 결과입니다. 최종 검사 전에는 null이거나 생략됩니다.
data.quality.final_quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.final_quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.final_quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.final_quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.final_quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.final_quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.final_quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.final_quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.final_quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.final_quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.final_quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.statusstring
최종 선택된 음원의 검사 상태입니다. 통과·주의·실패 값을 확인해 다운로드 가능 여부를 판단하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.audio_sha256string
최종 선택된 음원의 SHA-256 해시입니다. 다운로드한 파일의 무결성을 확인할 때 사용합니다.
data.error.codestring
작업 실패의 공개 오류코드입니다. 같은 코드는 같은 원인을 뜻하며, 재시도 가능 여부는 오류 문서를 확인하세요.
data.error.messagestring
작업 실패 내용을 사람이 읽을 수 있게 설명합니다. 상세 원인은 서버 로그에만 남으며, 고객에게는 이 문구를 안내하세요.
9상태·목록 조회
GET/rest/tts/openai/voices
  • Bearer 인증
  • 요청 본문 없음
  • JSON 응답
요청 파라미터 없음

추가 폼 항목이 없습니다. 인증 헤더만 보내면 됩니다.

응답 필드 263개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 가능한 값은 5가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. cancelled = 작업이 취소된 상태입니다. 결과가 없으므로 필요하면 같은 조건으로 새로 접수해야 합니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
허용값
waiting processing completed cancelled failed
data.result_availableboolean
결과 파일을 지금 내려받을 수 있는지 여부입니다. false면 아직 처리 중이거나 결과가 만료·삭제된 상태입니다. true = 결과 파일을 지금 내려받을 수 있는 경우, false = 처리 중이거나 실패·만료된 경우입니다.
data.subtitles_availableboolean
합성 결과의 자막 파일을 내려받을 수 있는지 여부입니다. false면 자막 생성이 생략되었거나 아직 준비되지 않은 상태입니다. true = 자막 파일을 내려받을 수 있는 경우, false = 자막 생성이 생략되었거나 아직 준비되지 않은 경우입니다.
data.resume_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.qualityobject
품질 상세. 아직 검사 전이면 null이거나 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다. null 허용.
data.errorobject
작업 실패 원인을 담은 객체입니다. 공개 오류코드(code)와 사람이 읽을 설명(message)이 들어 있으며, 성공한 작업에는 없습니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
하위 필드 251개 더 보기
응답 필드
설명
data.quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_qualityobject
최종 선택된 음원의 품질 검사 결과입니다. 최종 검사 전에는 null이거나 생략됩니다.
data.quality.final_quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.final_quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.final_quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.final_quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.final_quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.final_quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.final_quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.final_quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.final_quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.final_quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.final_quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.statusstring
최종 선택된 음원의 검사 상태입니다. 통과·주의·실패 값을 확인해 다운로드 가능 여부를 판단하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.audio_sha256string
최종 선택된 음원의 SHA-256 해시입니다. 다운로드한 파일의 무결성을 확인할 때 사용합니다.
data.error.codestring
작업 실패의 공개 오류코드입니다. 같은 코드는 같은 원인을 뜻하며, 재시도 가능 여부는 오류 문서를 확인하세요.
data.error.messagestring
작업 실패 내용을 사람이 읽을 수 있게 설명합니다. 상세 원인은 서버 로그에만 남으며, 고객에게는 이 문구를 안내하세요.
10상태·목록 조회
GET/rest/tts/options
  • Bearer 인증
  • 요청 본문 없음
  • JSON 응답
요청 파라미터 없음

추가 폼 항목이 없습니다. 인증 헤더만 보내면 됩니다.

응답 필드 263개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 가능한 값은 5가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. cancelled = 작업이 취소된 상태입니다. 결과가 없으므로 필요하면 같은 조건으로 새로 접수해야 합니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
허용값
waiting processing completed cancelled failed
data.result_availableboolean
결과 파일을 지금 내려받을 수 있는지 여부입니다. false면 아직 처리 중이거나 결과가 만료·삭제된 상태입니다. true = 결과 파일을 지금 내려받을 수 있는 경우, false = 처리 중이거나 실패·만료된 경우입니다.
data.subtitles_availableboolean
합성 결과의 자막 파일을 내려받을 수 있는지 여부입니다. false면 자막 생성이 생략되었거나 아직 준비되지 않은 상태입니다. true = 자막 파일을 내려받을 수 있는 경우, false = 자막 생성이 생략되었거나 아직 준비되지 않은 경우입니다.
data.resume_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.qualityobject
품질 상세. 아직 검사 전이면 null이거나 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다. null 허용.
data.errorobject
작업 실패 원인을 담은 객체입니다. 공개 오류코드(code)와 사람이 읽을 설명(message)이 들어 있으며, 성공한 작업에는 없습니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
하위 필드 251개 더 보기
응답 필드
설명
data.quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_qualityobject
최종 선택된 음원의 품질 검사 결과입니다. 최종 검사 전에는 null이거나 생략됩니다.
data.quality.final_quality.schema_versionstring
품질 결과 JSON의 규격 버전입니다. 필드 구성이 바뀔 때 증가하며, 클라이언트는 이 값을 기준으로 호환성을 판단할 수 있습니다.
data.quality.final_quality.attemptinteger
현재 품질 검사가 몇 번째 시도인지 나타냅니다. 재검사할 때마다 증가하며, 후보별 attempt와 다를 수 있습니다.
data.quality.final_quality.phasestring
작업이 현재 어느 처리 단계에 있는지 나타냅니다. waiting·processing·completed·failed 같은 값으로 진행 상태를 구분합니다. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.accepted_utterancesinteger
품질 검사를 통과한 발화 수입니다. 전체 발화 수와 비교해 실패·미검사 발화를 파악하세요.
data.quality.final_quality.failed_utterancesinteger
품질 검사에서 실패한 발화 수입니다. 0이 아니면 실패 사유와 재시도 필요 여부를 함께 확인하세요.
data.quality.final_quality.total_utterancesinteger
이 작업에 포함된 전체 발화 수입니다. accepted_utterances + failed_utterances와 같거나, 아직 검사 전인 발화가 있으면 더 클 수 있습니다.
data.quality.final_quality.expires_atstring
후보 음원·검사 결과를 보관하는 만료 시각입니다. 이 시각이 지나면 후보 다운로드가 불가능할 수 있으며, 검사 전에는 null입니다. null 허용.
data.quality.final_quality.queue_elapsed_secnumber
작업이 대기열에서 기다린 시간(초)입니다. 생성 시간과 분리해 지연 원인을 파악할 때 사용합니다.
data.quality.final_quality.generation_elapsed_secnumber
실제 음성 생성에 걸린 시간(초)입니다. 대기 시간을 제외한 처리 시간입니다.
data.quality.final_quality.utterancesarray
발화별 품질 검사 결과 목록입니다. 각 항목은 발화 ID·후보 ID·속도·반복·참조 검사 값을 포함합니다.
data.quality.final_quality.utterances[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.utterances[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.utterances[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.utterances[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.utterances[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.utterances[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.utterances[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.utterances[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.utterances[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.utterances[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.utterances[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.utterances[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.utterances[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.utterances[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.utterances[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.utterances[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.utterances[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.utterances[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.utterances[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.utterances[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.utterances[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.utterances[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.utterances[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.utterances[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.utterances[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.utterances[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.utterances[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.utterances[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.utterances[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.utterances[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.utterances[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.utterances[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.utterances[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.utterances[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.utterances[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.utterances[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.utterances[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.utterances[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.utterances[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.utterances[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.candidatesarray
음성 후보별 품질 검사 결과 목록입니다. 같은 발화의 여러 후보를 비교해 최종 후보를 고를 때 사용합니다.
data.quality.final_quality.candidates[].idstring
이 검사 항목의 식별자입니다. 같은 응답 안에서 항목을 구분할 때 사용하며, 발화 ID와 다를 수 있습니다.
data.quality.final_quality.candidates[].utterance_idstring
검사 대상 발화의 식별자입니다. 요청의 utterances 순서대로 u001·u002처럼 부여되며, 같은 발화의 여러 후보를 묶을 때 사용합니다.
data.quality.final_quality.candidates[].candidate_idstring
생성된 음성 후보의 식별자입니다. 같은 발화에 후보가 여러 개일 때 각 후보를 구분하며, 후보 오디오 경로에 사용합니다.
data.quality.final_quality.candidates[].statusstring
이 항목의 처리·검사 상태입니다. waiting·processing·completed·failed 같은 값이 들어가며, 실패 사유는 reasons에서 확인하세요. 가능한 값은 4가지입니다. waiting = 접수만 되고 처리는 시작되지 않은 상태입니다. 결과가 비어 있으므로 같은 작업 ID로 잠시 후 다시 조회합니다. processing = 처리 중인 상태입니다. 결과가 아직 확정되지 않았으므로 완료 상태가 될 때까지 조회를 반복합니다. completed = 정상 완료된 상태입니다. 결과 필드나 파일 경로에서 실제 결과를 사용할 수 있습니다. failed = 작업이 실패한 상태입니다. error의 code·message로 원인을 확인하고 재시도 가능 여부를 판단합니다.
data.quality.final_quality.candidates[].attemptinteger
이 후보를 생성한 시도 회차입니다. 1부터 시작하며 재생성할 때마다 증가합니다.
data.quality.final_quality.candidates[].voice_idstring
합성에 사용한 공개 목소리 ID입니다. 요청의 voice_id와 같으며, 목소리 목록 API에서 확인한 값을 그대로 반영합니다.
data.quality.final_quality.candidates[].created_atstring
이 발화·후보가 생성된 시각입니다. ISO 8601 형식이며 시간대가 포함됩니다.
data.quality.final_quality.candidates[].elapsed_secnumber
이 항목의 생성·검사에 걸린 경과 시간(초)입니다. 대기열에서 기다린 시간은 포함하지 않을 수 있습니다.
data.quality.final_quality.candidates[].reasonsarray
검사·실패 사유 목록입니다. 통과·주의·실패 판정의 근거가 문장으로 들어가며, 사유가 없으면 빈 배열입니다. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].speech_rateobject
발화 속도 검사. 검사 단계에 따라 일부 필드는 생략됩니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].speech_rate.charactersinteger
검사 대상 발화의 글자 수입니다. 공백과 문장부호를 포함하며, chars와 같은 값을 다른 이름으로 제공합니다.
data.quality.final_quality.candidates[].speech_rate.charsinteger
검사 대상 발화의 글자 수입니다. characters와 동일한 값이며, 기존 클라이언트 호환을 위해 함께 제공됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_secnumber
측정된 음성의 실제 길이(초)입니다. 무음 구간이 포함될 수 있고, 초당 글자 수 계산의 기준이 됩니다.
data.quality.final_quality.candidates[].speech_rate.duration_msnumber
측정된 음성의 실제 길이(밀리초)입니다. duration_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.cpsnumber
초당 발화 글자 수입니다. 값이 높을수록 빠르게 말한 것이며, min_cps보다 낮으면 지나치게 느린 발화로 판정될 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.expected_secnumber
같은 글자 수를 기준 속도로 읽었을 때 예상되는 발화 길이(초)입니다. 실제 길이와 비교해 속도 편차를 계산합니다.
data.quality.final_quality.candidates[].speech_rate.expected_duration_msnumber
예상 발화 길이(밀리초)입니다. expected_sec와 같은 값을 단위만 바꿔 제공합니다.
data.quality.final_quality.candidates[].speech_rate.duration_rationumber
실제 음성 길이를 예상 길이로 나눈 비율입니다. 1보다 크면 예상보다 느리고, 1보다 작으면 빠릅니다. 계산할 수 없으면 null입니다. null 허용.
data.quality.final_quality.candidates[].speech_rate.min_cpsnumber
이 검사에서 허용하는 최소 초당 글자 수입니다. cps가 이 값보다 낮으면 속도 검사에서 주의·실패로 표시됩니다.
data.quality.final_quality.candidates[].speech_rate.minimum_charactersinteger
속도 검사를 수행하는 데 필요한 최소 글자 수입니다. 이보다 짧은 발화는 속도 판정을 생략할 수 있습니다.
data.quality.final_quality.candidates[].speech_rate.statusstring
속도 검사 결과입니다. 통과·주의·실패 같은 판정 값이 들어가며, 상세 사유는 같은 항목의 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.candidates[].audio_sha256string
후보 음원의 SHA-256 해시입니다. 같은 음원인지 무결성을 비교할 때 사용하며, 음원이 없으면 생략됩니다.
data.quality.final_quality.candidates[].audio_duration_msnumber
후보 음원의 실제 길이(밀리초)입니다. 발화 속도·무음 구간 검사의 기준 값으로 사용됩니다.
data.quality.final_quality.candidates[].audio_availableboolean
이 후보의 음원을 다운로드할 수 있는지 여부입니다. false면 생성 실패·보관 만료 등으로 파일이 없습니다. true = 음원 파일을 내려받을 수 있는 경우, false = 생성 실패·보관 만료로 파일이 없는 경우입니다.
data.quality.final_quality.candidates[].transcriptstring
후보 음원에서 음성 인식으로 얻은 텍스트입니다. 원문과 비교해 CER·coverage를 계산합니다.
data.quality.final_quality.candidates[].cernumber
문자 오류율(Character Error Rate)입니다. 0에 가까울수록 원문과 정확히 일치하며, 1 이상이면 많은 문자가 틀렸다는 뜻입니다.
data.quality.final_quality.candidates[].coveragenumber
원문 글자 중 음성에서 실제로 인식된 비율입니다. 1에 가까울수록 원문을 빠짐없이 읽었습니다.
data.quality.final_quality.candidates[].repeatobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].repeat.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].repeat.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].repeat.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].repeat.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].repeat.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].repeat.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].repeat.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].repeat.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].reference_intrusionobject
검출 결과. 분석할 수 없는 항목은 생략되거나 null입니다. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.quality.final_quality.candidates[].reference_intrusion.detectedboolean
반복·참조 음성 침입 같은 현상이 검출됐는지 여부입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요. true = 반복·참조 음성 같은 현상이 검출된 경우, false = 검출되지 않은 경우입니다. true면 correlation·matched_characters 같은 근거 값을 함께 확인하세요.
data.quality.final_quality.candidates[].reference_intrusion.suspectedboolean
검출이 확정되지는 않았지만 추가 확인이 필요한 상태인지 여부입니다. true면 detected와 별개로 수동 검토 대상입니다. true = 확정은 아니지만 추가 확인이 필요한 경우, false = 의심 정황이 없는 경우입니다.
data.quality.final_quality.candidates[].reference_intrusion.correlationnumber
비교한 두 구간의 파형 유사도입니다. 0~1 범위이며 1에 가까울수록 같은 음성 패턴으로 판단합니다.
data.quality.final_quality.candidates[].reference_intrusion.best_lag_secnumber
두 구간이 가장 잘 일치한 시간 차이(초)입니다. 반복·참조 구간의 기준 위치를 해석할 때 사용합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_start_secnumber
검사한 비교 구간의 시작 시각(초)입니다. 음성 파일 시작점을 0으로 계산합니다.
data.quality.final_quality.candidates[].reference_intrusion.window_end_secnumber
검사한 비교 구간의 끝 시각(초)입니다. window_start_sec와 함께 실제 비교 범위를 나타냅니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charactersinteger
비교 구간에서 일치한 글자 수입니다. 값이 클수록 반복·참조된 발화가 길다는 뜻입니다.
data.quality.final_quality.candidates[].reference_intrusion.matched_charsinteger
일치한 글자 수를 characters와 같은 방식으로 제공하는 호환 필드입니다. matched_characters와 동일한 값입니다.
data.quality.final_quality.candidates[].text_qa_statusstring
합성 텍스트와 인식 텍스트의 일치 검사 상태입니다. 통과·주의·실패 값이 들어가며, 상세 사유는 reasons를 확인하세요. 가능한 값은 3가지입니다. 통과 = 합성 텍스트와 인식 텍스트가 기준 이상으로 일치한 경우, 주의 = 일부 구간만 어긋나 확인이 필요한 경우, 실패 = 기준 미만으로 해당 음원을 쓰기 어려운 경우입니다. 주의·실패면 reasons의 사유를 함께 확인하세요.
data.quality.final_quality.candidates[].active_start_msnumber
음원에서 실제 발화가 시작된 위치(밀리초)입니다. 앞부분 무음 구간을 제외한 유효 음성의 시작점입니다.
data.quality.final_quality.candidates[].active_end_msnumber
음원에서 실제 발화가 끝난 위치(밀리초)입니다. 뒷부분 무음·보호 구간을 제외한 유효 음성의 끝점입니다.
data.quality.final_quality.candidates[].tail_guard_attachedboolean
끝부분 잘림을 확인하기 위한 보호 구간이 음원에 붙었는지 여부입니다. 검사용으로만 쓰며 최종 음원에는 포함되지 않습니다. true = 끝부분 잘림을 확인하려고 검사용 보호 구간을 음원 끝에 붙인 상태인 경우, false = 보호 구간이 없는 최종 음원인 경우입니다. true인 음원은 검사 중간 결과이므로 그대로 배포하지 마세요.
data.quality.final_quality.candidates[].tail_verifiedboolean
끝부분까지 정상적으로 생성됐는지 검증을 마쳤는지 여부입니다. false면 끝단 검사가 아직 끝나지 않았습니다. true = 음원 끝까지 정상 생성됐는지 검사를 마친 경우, false = 아직 검사 전이거나 끝단 확인에 실패한 경우입니다. false면 최종 음원으로 확정하지 말고 다시 조회하세요.
data.quality.final_quality.candidates[].tail_verified_at_msnumber
끝부분 검증을 수행한 시각(밀리초)입니다. 검증 전에는 null이며, 값이 있으면 tail_verified와 함께 확인하세요. null 허용.
data.quality.final_quality.candidates[].tail_body_end_at_msnumber
보호 구간을 제외한 실제 본문의 끝 위치(밀리초)입니다. 잘림 판정의 기준점으로 사용됩니다. null 허용.
data.quality.final_quality.candidates[].tail_guard_attached_chunk_idsarray
보호 구간이 붙은 음성 구간 ID 목록입니다. 어느 구간까지 끝단 검사를 적용했는지 확인할 때 사용합니다.
data.quality.final_quality.candidates[].generation_budget_exhaustedboolean
이 발화의 자동 생성 시도 한도를 모두 사용했는지 여부입니다. true면 같은 조건으로는 더 이상 자동 재생성되지 않습니다. true = 허용된 재생성 횟수를 모두 사용해 더 시도할 수 없는 경우, false = 아직 재생성 여지가 남은 경우입니다. true면 새 작업으로 접수해야 합니다.
data.quality.final_quality.candidates[].retry_requires_new_regeneration_keyboolean
재시도에 새 재생성 키가 필요한 상태인지 여부입니다. true면 기존 요청을 반복해도 새 후보가 생성되지 않습니다. true = 같은 재시도 키로는 다시 접수할 수 없어 새 키가 필요한 경우, false = 기존 키로 재시도할 수 있는 경우입니다. true면 새 재생성 키를 발급해 접수하세요.
data.quality.final_quality.candidates[].candidate_revisioninteger
재시도 회차. 0은 최초 생성이며 재시도할 때 증가합니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
data.quality.final_quality.statusstring
최종 선택된 음원의 검사 상태입니다. 통과·주의·실패 값을 확인해 다운로드 가능 여부를 판단하세요. 가능한 값은 3가지입니다. 통과 = 기준을 충족해 그대로 쓸 수 있는 경우, 주의 = 경계값이라 결과는 쓰되 확인이 필요한 경우, 실패 = 기준을 충족하지 못해 쓰기 어려운 경우입니다.
data.quality.final_quality.audio_sha256string
최종 선택된 음원의 SHA-256 해시입니다. 다운로드한 파일의 무결성을 확인할 때 사용합니다.
data.error.codestring
작업 실패의 공개 오류코드입니다. 같은 코드는 같은 원인을 뜻하며, 재시도 가능 여부는 오류 문서를 확인하세요.
data.error.messagestring
작업 실패 내용을 사람이 읽을 수 있게 설명합니다. 상세 원인은 서버 로그에만 남으며, 고객에게는 이 문구를 안내하세요.
11API 요청
POST/rest/tts/quote
  • Bearer 인증
  • multipart/form-data
  • JSON 응답
요청 파라미터 15개
파라미터
설명
textstring조건부
합성할 한국어 본문. text와 utterances 중 하나만 사용합니다. 정규화(normalize_text)를 쓰면 1~2,000자, 끄면 8,000자까지입니다(공백·줄바꿈 포함).
voice_idstring선택
사용할 목소리의 ID입니다. 목소리 목록에서 고른 값을 넣으며, 생략하면 엔진 기본 목소리로 합성됩니다. 목소리별로 억양·속도·성별이 다릅니다.
stylestring선택
자유 서술 낭독 스타일 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
최대 길이
1000자
emotionstring선택
감정 표현. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 12가지입니다. neutral = 감정을 넣지 않은 담담한 표현입니다. 안내·낭독의 기본값으로 쓰기 좋습니다. calm = 차분하고 낮은 감정입니다. 안정감이 필요한 안내에 적합합니다. cheerful = 밝고 경쾌한 감정입니다. 광고·환영 문구에 적합합니다. excited = 들뜨고 활기찬 감정입니다. 이벤트·강조 문장에 적합합니다. sad = 슬프고 가라앉은 감정입니다. 서사·추모 문구에 적합합니다. serious = 진지하고 단호한 감정입니다. 공지·경고 문구에 적합합니다. friendly = 친근하고 부드러운 감정입니다. 고객 응대에 적합합니다. empathetic = 공감하고 위로하는 감정입니다. 상담·안내에 적합합니다. confident = 확신에 찬 감정입니다. 발표·제안에 적합합니다. gentle = 조용하고 온화한 감정입니다. 수면·명상 콘텐츠에 적합합니다. whisper = 속삭이듯 작은 목소리입니다. ASMR·몰입형 콘텐츠에 적합합니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다.
허용값
neutral calm cheerful excited sad serious friendly empathetic confident gentle whisper narration
tonestring선택
용도·톤. 생략 시 기본 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 9가지입니다. narration = 낭독·해설에 맞춘 톤입니다. 문장 사이 쉼이 자연스럽습니다. news = 뉴스 앵커처럼 또렷하고 일정한 톤입니다. audiobook = 오디오북 낭독 톤입니다. 긴 문장을 안정적으로 읽습니다. documentary = 다큐멘터리 해설 톤입니다. 차분하고 설명적입니다. ad = 광고 카피에 맞춘 톤입니다. 짧고 리듬감 있게 읽습니다. conversation = 대화하듯 자연스러운 톤입니다. announcement = 안내 방송 톤입니다. 또렷하고 전달력이 좋습니다. tutorial = 설명·강의 톤입니다. 단계 설명에 적합합니다. storytelling = 이야기 들려주는 톤입니다. 감정 변화를 살립니다.
허용값
narration news audiobook documentary ad conversation announcement tutorial storytelling
accentstring선택
억양. 생략 시 표준어 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. 가능한 값은 5가지입니다. standard = 지역색이 없는 표준어 억양입니다. seoul = 서울·수도권 억양입니다. gyeongsang = 경상도 억양입니다. jeolla = 전라도 억양입니다. chungcheong = 충청도 억양입니다.
허용값
standard seoul gyeongsang jeolla chungcheong
pacenumber선택
말 속도 배율 0.5~2.0. 1이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
pitchnumber선택
음높이 -12~12 반음. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
volume_gain_dbnumber선택
음량 보정 -12~12 dB. 0이 기본 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다.
normalize_textboolean선택
기본 true true/false로 보내며, 생략하면 서버 기본값이 적용됩니다. true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
multi_speakerboolean선택
멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화 true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
speakersobject선택
화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}
utterancesarray조건부
합성할 발화(문단) 목록입니다. 각 항목은 text·speaker·speed 등을 가지며, 전체 글자 수 제한을 함께 확인하세요.
utterances[0][text]string조건부
발화 본문. text와 utterances 중 하나만 사용합니다. 최대 100개 발화입니다. 본문 합계는 정규화(normalize_text)를 쓰면 2,000자, 끄면 8,000자까지입니다.
utterances[0][voice_id]string선택
이 발화에만 쓸 목소리 ID입니다. 생략하면 화자 설정, 그다음 최상위 voice_id를 씁니다.
응답 필드 9개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.job_idstring
접수 응답에서 받은 작업 ID. 같은 계정의 작업에만 접근할 수 있습니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 이 경로에서는 항상 "waiting" 하나만 오는 고정값입니다.
허용값
waiting
data.voice_idstring
합성에 사용한 목소리 ID입니다. 요청의 voice_id를 그대로 반영하며, 생략한 경우 엔진 기본 목소리 ID가 옵니다.
data.character_countinteger
공백·문장부호를 포함한 합성 글자 수입니다. 이 값으로 과금 글자 수를 확인하며, 발화 목록을 쓰면 전체 발화의 합입니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costnumber
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
입력 조건·전송 규칙

목소리·표현 옵션

요청 옵션
동작
voice_id
엔진별 목소리 목록의 ID입니다. Gemini 기본값은 Kore, ChatGPT 기본값은 alloy입니다. 대소문자는 구분하지 않습니다.
style
낭독 스타일을 문장으로 지정합니다(최대 1,000자). 예: 차분한 뉴스 낭독, 낮고 천천히. 생략하면 기본 낭독입니다.
emotion
감정 표현. neutral, calm, cheerful, excited, sad, serious, friendly, empathetic, confident, gentle, whisper, narration 중 하나입니다.
tone
용도·톤. narration, news, audiobook, documentary, ad, conversation, announcement, tutorial, storytelling 중 하나입니다.
accent
억양. standard(기본), seoul, gyeongsang, jeolla, chungcheong 중 하나입니다.
pace
말 속도 배율 0.5~2.0입니다. 1이 기본이며 작을수록 느립니다.
pitch
음높이를 반음 단위 -12~12로 조정합니다. 0이 기본입니다.
volume_gain_db
음량 보정을 dB 단위 -12~12로 지정합니다. 0이 기본입니다.
speakers·multi_speaker
화자 이름별로 목소리·옵션을 묶어 대화를 만듭니다(최대 8명). Gemini는 화자 2명의 대화를 한 번에, ChatGPT는 발화마다 목소리를 바꿔 읽습니다. 결과는 둘 다 MP3 하나와 ASS 하나입니다.
normalize_text: true
기본값. 한글 표기 정규화로 숫자·단위·기호·영문 약어를 문맥에 맞는 읽기로 바꿉니다(예: 5번 버스 → 오 번 버스, 버튼을 5번 → 다섯 번, -5℃ → 영하 오 도). 정규화 요금이 합산되며 합계 2,000자까지입니다. 자막에는 원문 표기가 그대로 나옵니다.
normalize_text: false
정규화와 그 요금을 생략합니다. 숫자·영문은 원하는 읽기대로 한글로 풀어 써서 보내세요. 합계 8,000자까지입니다.

표현 옵션은 낭독 지시이므로 목소리마다 효과가 다릅니다. ChatGPT 엔진에서 pace·pitch·volume_gain_db는 느리게·높게·크게 같은 방향으로 반영되며 정확한 배율·반음·dB를 보장하지 않습니다. 엔진별로 쓸 수 있는 값은 GET /rest/tts/options에서 확인하세요.

목소리 목록의 age_verified가 false인 목소리는 연령대가 확인되지 않은 것입니다. 연령대 표시는 목소리 설정이며 실제 화자의 나이를 뜻하지 않습니다.

항목
설정
메서드·주소
POST https://apick.app/rest/tts/jobs (ChatGPT 엔진은 /rest/tts/openai/jobs)
인증 헤더
Authorization: Bearer 내 계정의 API 인증키
본문 형식
application/json 또는 multipart/form-data
재접수 키(선택)
X-Idempotency-Key 헤더. 영문·숫자·_ . : - 1~128자. 접수 응답을 받지 못했을 때 같은 키·같은 입력으로 다시 보내면 새로 만들지 않고 처음 작업을 돌려줍니다. 같은 키로 입력을 바꾸면 409입니다.

발화별 style·speaker·emotion·tone·accent·pace·pitch·volume_gain_db와 speakers는 form-data 본문에서만 받습니다. form-data로 보낼 때는 최상위 옵션과 utterances[n][text]·utterances[n][voice_id]만 쓰세요. 위에 없는 이름의 옵션, SSML, 문장 중간 무음 지시는 지원하지 않습니다.

요청 예시

사용 예시

상황별로 보내는 값과 응답에서 확인할 값을 모았습니다. 언어 탭에서 그대로 복사해 쓸 수 있습니다.

예시 1. 대본 한 편을 기본 목소리로 접수

가장 간단한 접수입니다. 숫자·단위는 표기 정규화로 문맥에 맞게 읽습니다.

요청POST/rest/tts/jobs
curl --fail-with-body --request POST 'https://apick.app/rest/tts/jobs' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'normalize_text=true' \
  --form-string 'voice_id=Kore' \
  --form-string 'text=오늘 기온은 5℃이고, 오후에는 비가 옵니다.' \
  --form-string 'style=차분한 뉴스 낭독'
  • HTTP 202와 data.job_id, data.status waiting이 오면 접수된 것입니다. 이때 api.cost는 0입니다.
  • data.job_id를 저장하고 상태 조회로 넘어갑니다.
예시 2. 정규화를 끄고 읽는 법을 직접 정하기

숫자·영문을 원하는 대로 읽히고 싶거나 2,000자보다 긴 대본(최대 8,000자)을 보낼 때 씁니다.

요청POST/rest/tts/jobs
curl --fail-with-body --request POST 'https://apick.app/rest/tts/jobs' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'voice_id=Kore' \
  --form-string 'text=오늘 기온은 영하 오 도입니다. 에이피아이 안내를 시작합니다.' \
  --form-string 'normalize_text=false'
  • 완료 후 data.normalization.status가 skipped이고 data.billing.skill이 0입니다.
  • 읽기 결과가 표기 그대로이므로 숫자는 한글로 풀어 써서 보내세요.
예시 3. 문장마다 다른 목소리로 읽기

해설과 대사처럼 문장별로 목소리를 바꿀 때 발화 목록으로 보냅니다. 두 번째 문장은 utterances[1][text]처럼 번호를 이어 붙입니다.

요청POST/rest/tts/jobs
curl --fail-with-body --request POST 'https://apick.app/rest/tts/jobs' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'normalize_text=true' \
  --form-string 'voice_id=Kore' \
  --form-string 'utterances[0][text]=하지만 한 집의 불빛만은 꺼지지 않았습니다.' \
  --form-string 'utterances[0][voice_id]=Charon'
  • text와 utterances를 함께 보내면 TTS_INPUT_CONFLICT로 거절됩니다.
  • 발화별 감정·속도·화자 지정은 JSON 본문으로 보내야 합니다.
예시 4. ChatGPT 음성으로 접수

ChatGPT 엔진의 목소리(alloy, nova 등)를 쓰려면 이 주소로 접수합니다. 조회·다운로드 주소는 같습니다.

요청POST/rest/tts/openai/jobs
curl --fail-with-body --request POST 'https://apick.app/rest/tts/openai/jobs' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'voice_id=nova' \
  --form-string 'text=주문하신 상품이 오늘 출발합니다.'
  • 완료 후 data.synthesis.engine이 openai입니다.
  • 목소리 ID가 ChatGPT 목록에 없으면 TTS_VOICE_INVALID입니다.
예시 5. 접수 전에 예상 요금 확인

제작하지 않고 금액만 확인합니다. 무료이며 접수와 같은 입력을 보냅니다.

요청POST/rest/tts/quote
curl --fail-with-body --request POST 'https://apick.app/rest/tts/quote' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'voice_id=Kore' \
  --form-string 'text=오늘의 이야기를 시작합니다.'
  • 응답의 예상 금액과 최대 예약금을 보고 포인트가 충분한지 확인한 뒤 접수하세요.
예시 6. 상태 확인 후 MP3 내려받기

접수 응답의 job_id로 2~5초마다 상태를 조회하다가 완료되면 결과 주소를 호출합니다.

요청GET/rest/tts/jobs/:job_id
curl --fail-with-body --request GET "https://apick.app/rest/tts/jobs/${APICK_JOB_ID}" \
  --header "Authorization: Bearer $APICK_API_KEY"
  • data.status가 completed이고 data.result_available이 true이면 GET /rest/tts/jobs/{job_id}/result로 MP3를 받습니다.
  • data.subtitles_available이 true이면 /subtitles로 ASS 자막을 받습니다. 두 파일은 24시간 안에 각각 한 번만 받을 수 있습니다.
  • data.status가 failed이면 data.failure_code를 기록하고 새 작업을 접수합니다.

응답 처리

HTTP 성공과 업무 결과를 구분하세요. 경로별 응답 필드와 예시는 위 요청과 응답에 함께 있습니다.

응답 형식 오류코드는 data.code에 표시됩니다. api.success만으로 업무 성공을 판단하지 말고 HTTP 상태와 data.success를 함께 확인하세요. 음성·자막 파일은 각 다운로드 경로의 보관·재다운로드 조건을 따릅니다.

응답과 정산

접수·조회·취소 응답은 같은 구조이며 api.cost는 항상 0입니다. 실제 요금은 작업이 끝난 뒤 data.billing으로 확인합니다.

응답 예시 (완료된 작업 조회)
{
  "data": {
    "job_id": "7f7e43f578cd459db04696416435c789",
    "status": "completed",
    "voice_id": "Kore",
    "character_count": 14,
    "synthesis": {"engine": "gemini", "voice_id": "Kore", "age_verified": false},
    "normalization": {"enabled": true, "run_id": "run_example", "status": "succeeded", "skill_id": "korean-text-normalize"},
    "billing": {"status": "captured", "synthesis": 3, "skill": 22, "total": 25, "reserved": 0, "refunded": 0, "released": 100, "currency": "POINT"},
    "result_available": true,
    "subtitles_available": true,
    "expires_at": "2026-10-06T00:00:00.000Z"
  },
  "api": {"success": true, "cost": 0}
}

위 금액은 구조 설명용 예시입니다. 접수 직후 응답은 status: "waiting"이며 result_available·subtitles_available은 false입니다.

원문 응답 필드 표 보기
필드
타입
설명
data
object
작업 정보
job_id
string
32자리 작업 ID입니다. 조회·취소·다운로드 주소에 넣습니다.
status
string
waiting, processing, completed, cancelled, failed 중 하나입니다.
voice_id
string
요청한 기본 목소리 ID입니다.
character_count
integer
과금 기준 글자 수입니다.
synthesis
object
합성 정보입니다. engine(gemini·openai), 실제 사용한 voice_id, 연령대 확인 여부 age_verified가 담깁니다.
normalization
object
표기 정규화 정보입니다. enabled, status(정규화를 끄면 skipped)가 담깁니다.
billing
object
정산 정보입니다. synthesis(합성) + skill(정규화) = total. reserved는 아직 확정하지 않은 예약금, released는 쓰지 않아 풀린 예약금, refunded는 확정 후 환불액입니다. 사용량 확인이 끝나지 않으면 status가 pending입니다.
result_available
boolean
MP3를 내려받을 수 있으면 true입니다.
subtitles_available
boolean
ASS 자막을 내려받을 수 있으면 true입니다.
expires_at
string
결과 보관 만료 시각(UTC)입니다.
failure_code
string
failed일 때만 담기는 실패 코드입니다.

오류 코드

응답을 아래 순서로 확인하세요. 결과 유무와 과금 여부는 서로 다릅니다.

  1. HTTP 상태전송·인증·입력 오류
  2. api.successAPI 처리 여부
  3. data · result업무 결과와 오류 문구
  4. api.cost이번 요청의 과금
이 API의 오류 코드 12개
코드
HTTP
의미·조치
TTS_REQUEST_INVALID
400·413·422
목소리·문자 수·발화 구조·입력 크기를 확인하세요.
TTS_AUTH_FAILED
401
인증키를 확인하세요.
TTS_ACCESS_DISABLED
403
계정의 API 이용 제한 상태를 확인하세요.
TTS_PAYMENT_REQUIRED
403
최초 결제를 완료한 뒤 이용하세요.
TTS_INSUFFICIENT_POINTS
402
필요한 포인트를 충전하세요.
TTS_NOT_FOUND
404
작업·후보 ID와 소유 계정을 확인하세요.
TTS_JOB_CONFLICT
409
작업 상태·재시도 회차·같은 멱등 키의 요청 내용을 확인하세요.
TTS_GENERATION_FAILED
409
실패 상태를 확인하고 입력을 수정하거나 새 작업을 접수하세요.
TTS_RESULT_UNAVAILABLE
410
파일이 이미 다운로드됐거나 보관 기간이 만료됐습니다.
TTS_TEMPORARILY_UNAVAILABLE
429·503
Retry-After 이후 다시 시도하세요. 재시도 요청에는 같은 멱등 키를 사용하세요.
TTS_BILLING_FAILED
424
결제를 완료하지 못했습니다. Retry-After 이후 다시 시도하세요.
TTS_INTERNAL_ERROR
500
잠시 후 다시 시도하세요.
서비스 코드·조건

작업 상태

status
의미와 다음 행동
waiting
접수되어 처리 시작을 기다리는 중입니다. 2~5초 뒤 다시 조회하세요.
processing
음성을 만드는 중입니다. 2~5초 뒤 다시 조회하세요.
completed
완료입니다. MP3·ASS를 24시간 안에 각각 한 번 내려받으세요.
cancelled
취소가 끝났습니다. billing에서 정산액을 확인하세요.
failed
제작에 실패했습니다. failure_code를 기록하고 입력을 확인한 뒤 새 작업을 접수하세요.

오류 코드

오류 응답은 data.code에 아래 코드, data.error에 짧은 안내를 담고 api.cost는 0입니다. 입력 오류는 제작 전에 거절되므로 과금되지 않습니다.

코드
HTTP
원인
해결책
TTS_REQUEST_INVALID
400·413·422
요청 형식이 올바르지 않음(normalize_text·multi_speaker가 true/false가 아님 등)
입력 형식과 지원 조건 확인
TTS_INPUT_CONFLICT
400
text와 utterances를 함께 보냄
둘 중 하나만 보내기
TTS_TEXT_REQUIRED
400
비어 있는 대본 또는 발화
모든 발화에 text 넣기
TTS_TEXT_TOO_LONG·TTS_NORMALIZATION_TEXT_TOO_LONG
400
글자 수 합계 초과(정규화 2,000자 / 끔 8,000자)
작업을 나누거나 normalize_text: false로 보내기
TTS_UTTERANCES_INVALID
400
발화가 0개이거나 100개 초과
1~100개로 나누기
TTS_VOICE_INVALID
400
선택한 엔진에 없는 목소리 ID
목소리 목록 API에서 ID 확인
TTS_STYLE_INVALID
400
style이 문자열이 아니거나 1,000자 초과
스타일 문장을 1,000자 이하로 줄이기
TTS_EMOTION_INVALID·TTS_TONE_INVALID·TTS_ACCENT_INVALID
400
허용 목록에 없는 감정·톤·억양 값
위 옵션 표의 값 중 하나로 보내기
TTS_PACE_INVALID·TTS_PITCH_INVALID·TTS_VOLUME_INVALID
400
속도·음높이·음량이 범위를 벗어남
GET /rest/tts/options로 범위 확인
TTS_SPEAKERS_REQUIRED·TTS_SPEAKERS_INVALID
400
multi_speaker인데 화자가 2명 미만이거나 화자 설정이 잘못됨
speakers 수와 각 화자 설정 확인
TTS_SPEAKER_REQUIRED·TTS_SPEAKER_INVALID
400
발화의 speaker가 없거나 80자 초과
모든 발화에 speakers의 이름 넣기
TTS_LANGUAGE_NOT_SUPPORTED
400
한국어가 아닌 언어 지정
언어 지정을 빼거나 ko로 보내기
TTS_IDEMPOTENCY_KEY_INVALID
400
재접수 키 형식 오류
영문·숫자·_ . : - 1~128자로 보내기
TTS_IDEMPOTENCY_CONFLICT
409
같은 재접수 키로 다른 입력을 보냄
새 키를 쓰거나 처음 입력 그대로 보내기
TTS_INSUFFICIENT_POINTS
402
예약할 포인트 부족
포인트 충전 후 다시 접수
TTS_AUTH_FAILED
401·403
인증 실패
인증키 확인
TTS_NOT_FOUND
404
작업을 찾을 수 없음
접수 응답의 작업 ID 확인
TTS_JOB_CONFLICT
409
현재 상태에서 요청을 처리할 수 없음
최신 상태 확인 후 다시 요청
TTS_GENERATION_FAILED
409
음성 또는 자막 생성 실패
입력 확인 후 새 작업 접수
TTS_RESULT_UNAVAILABLE
410
해당 파일을 이미 내려받았거나 24시간이 지남
새 작업 접수
TTS_TEMPORARILY_UNAVAILABLE
429·503
일시적으로 접수 불가
Retry-After 이후 다시 시도
TTS_INTERNAL_ERROR
500
분류되지 않은 오류
잠시 후 다시 시도

정상 취소 요청은 HTTP 200과 현재 상태를 돌려줍니다. 이미 처리한 분량의 정산이 끝나면 cancelled가 됩니다.

폼 입력 오류 error.code
코드
HTTP
의미·조치
FORM_DATA_INVALID
400
필드 이름·값의 타입·배열 인덱스를 확인하세요. 인덱스는 0부터 연속으로 사용합니다.
FORM_DATA_FIELD_CONFLICT
400
같은 값과 중첩 경로를 동시에 지정하지 마세요.
MULTIPART_LIMIT_OR_PARSE_ERROR
400·413
boundary·파일 크기·필드 개수를 확인하세요. 서비스별 제한이 우선 적용됩니다.

요금·이용 조건

기본 요금사용량 기준(작업당 기본요금 5P) + 정규화 스킬 요금가입 포인트로 1회(300자 이하) 체험할 수 있고, 그 뒤에는 최소 1회 결제 후 이용할 수 있습니다.

실제 차감 금액은 응답의 api.cost로 확인하세요. 상세 요금은 요금정책에서 볼 수 있습니다.

연동 팁

  • 요청 예제의 오류 처리 포함 모드는 시간 제한과 업무 실패 판정을 함께 보여줍니다.
  • 인증키는 서버 환경변수에 두고 브라우저·앱에 넣지 마세요.
  • HTTP 성공과 업무 결과를 구분하고, 실패 응답의 오류 문구를 그대로 기록하세요.

개발가이드 검색

API 이름·경로·파라미터·오류 코드로 찾을 수 있습니다.

표시 가격은 기본 단가입니다. 상세 과금 조건은 각 가이드에서 확인하세요.