메인 콘텐츠로 건너뛰기
POST
/
v1
/
text-to-speech
/
with-timestamps
cURL
curl --request POST \
  --url https://api.typecast.ai/v1/text-to-speech/with-timestamps \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data @- <<EOF
{
  "voice_id": "tc_60e5426de8b95f1d3000d7b5",
  "text": "집중력이 떨어질 땐 5분간 스트레칭을 해보세요.",
  "model": "ssfm-v30",
  "language": "kor",
  "prompt": {
    "emotion_type": "preset",
    "emotion_preset": "normal",
    "emotion_intensity": 1.0
  }
}
EOF
{
  "audio": "UklGRs...(base64 오디오 생략)",
  "audio_format": "wav",
  "audio_duration": 3.2,
  "words": [
    {
      "text": "집중력이",
      "start": 0.08,
      "end": 0.76
    },
    {
      "text": "떨어질",
      "start": 0.8,
      "end": 1.26
    },
    {
      "text": "땐",
      "start": 1.3,
      "end": 1.52
    },
    {
      "text": "5분간",
      "start": 1.56,
      "end": 2.02
    },
    {
      "text": "스트레칭을",
      "start": 2.06,
      "end": 2.7
    },
    {
      "text": "해보세요.",
      "start": 2.74,
      "end": 3.2
    }
  ],
  "characters": [
    {
      "text": "집",
      "start": 0.08,
      "end": 0.26
    },
    {
      "text": "중",
      "start": 0.26,
      "end": 0.43
    },
    {
      "text": "력",
      "start": 0.43,
      "end": 0.6
    },
    {
      "text": "이",
      "start": 0.6,
      "end": 0.76
    },
    {
      "text": " ",
      "start": 0.76,
      "end": 0.8
    },
    {
      "text": "떨",
      "start": 0.8,
      "end": 0.94
    },
    {
      "text": "어",
      "start": 0.94,
      "end": 1.1
    },
    {
      "text": "질",
      "start": 1.1,
      "end": 1.26
    },
    {
      "text": " ",
      "start": 1.26,
      "end": 1.3
    },
    {
      "text": "땐",
      "start": 1.3,
      "end": 1.52
    },
    {
      "text": " ",
      "start": 1.52,
      "end": 1.56
    },
    {
      "text": "5",
      "start": 1.56,
      "end": 1.68
    },
    {
      "text": "분",
      "start": 1.68,
      "end": 1.84
    },
    {
      "text": "간",
      "start": 1.84,
      "end": 2.02
    },
    {
      "text": " ",
      "start": 2.02,
      "end": 2.06
    },
    {
      "text": "스",
      "start": 2.06,
      "end": 2.18
    },
    {
      "text": "트",
      "start": 2.18,
      "end": 2.3
    },
    {
      "text": "레",
      "start": 2.3,
      "end": 2.42
    },
    {
      "text": "칭",
      "start": 2.42,
      "end": 2.56
    },
    {
      "text": "을",
      "start": 2.56,
      "end": 2.7
    },
    {
      "text": " ",
      "start": 2.7,
      "end": 2.74
    },
    {
      "text": "해",
      "start": 2.74,
      "end": 2.88
    },
    {
      "text": "보",
      "start": 2.88,
      "end": 3.02
    },
    {
      "text": "세",
      "start": 3.02,
      "end": 3.14
    },
    {
      "text": "요",
      "start": 3.14,
      "end": 3.18
    },
    {
      "text": ".",
      "start": 3.18,
      "end": 3.2
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://typecast.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

인증

X-API-KEY
string
header
필수

인증을 위한 API 키. 타입캐스트 API 콘솔에서 API 키를 생성할 수 있습니다.

쿼리 매개변수

granularity
enum<string>

반환할 타임스탬프 배열을 선택합니다.

  • 생략: wordscharacters 모두 반환
  • word: words 만 반환 (characters 는 null)
  • char: characters 만 반환 (words 는 null)

공백 없는 언어(예: jpn, zho): word 정렬은 문장 전체를 하나의 구간으로 반환하므로, 의미 있는 타임스탬프를 얻으려면 char 를 사용하세요.

사용 가능한 옵션:
word,
char

본문

application/json

TTSRequestWith-timestamps parameters

voice_id
string
필수

캐릭터 식별자. 두 가지 prefix 를 지원합니다.

  • tc_ — 기본 제공되는 타입캐스트 캐릭터 (예: tc_60e5426de8b95f1d3000d7b5). 사용 가능한 ID 는 캐릭터 목록 조회 를 참조하세요.
  • uc_퀵 클로닝 으로 생성한 커스텀 보이스 (예: uc_64a1b2c3d4e5f6a7b8c9d0e1). 본인이 소유한 클로닝 보이스만 사용할 수 있습니다.

대소문자 구분: prefix 는 소문자만 사용합니다.

예시:

"tc_60e5426de8b95f1d3000d7b5"

text
string
필수

음성으로 변환할 텍스트. 최소 1자, 최대 2000자. 텍스트 길이에 따라 크레딧이 소비됩니다. 영어, 한국어, 일본어, 중국어를 포함한 여러 언어를 지원합니다. 특수 문자와 구두점은 자동으로 처리됩니다.

Required string length: 1 - 2000
예시:

"모든 것이 너무나 완벽해서 마치 꿈을 꾸는 것 같습니다."

model
enum<string>
필수

음성 합성에 사용할 캐릭터 모델.

  • ssfm-v30: 향상된 플로우와 추가 감정 프리셋이 있는 최신 모델(권장)
  • ssfm-v21: 빠르고 안정적인 모델로 신뢰할 수 있는 품질 제공
사용 가능한 옵션:
ssfm-v30,
ssfm-v21
예시:

"ssfm-v30"

language
string

ISO 639-3 표준을 따르는 언어 코드. 대소문자 구분 안 함("KOR"과 "kor" 모두 허용). 제공하지 않으면 텍스트 내용을 기반으로 자동 감지됩니다.

ssfm-v30 지원 언어 (37개)
코드언어코드언어코드언어
ARA아랍어IND인도네시아어POR포르투갈어
BEN벵골어ITA이탈리아어RON루마니아어
BUL불가리아어JPN일본어RUS러시아어
CES체코어KOR한국어SLK슬로바키아어
DAN덴마크어MSA말레이어SPA스페인어
DEU독일어NAN민남어SWE스웨덴어
ELL그리스어NLD네덜란드어TAM타밀어
ENG영어NOR노르웨이어TGL타갈로그어
FIN핀란드어PAN펀자브어THA태국어
FRA프랑스어POL폴란드어TUR터키어
HIN힌디어UKR우크라이나어VIE베트남어
HRV크로아티아어YUE광둥어ZHO중국어
HUN헝가리어
ssfm-v21 지원 언어 (27개)
코드언어코드언어코드언어
ARA아랍어IND인도네시아어RON루마니아어
BUL불가리아어ITA이탈리아어RUS러시아어
CES체코어JPN일본어SLK슬로바키아어
DAN덴마크어KOR한국어SPA스페인어
DEU독일어MSA말레이어SWE스웨덴어
ELL그리스어NLD네덜란드어TAM타밀어
ENG영어POL폴란드어TGL타갈로그어
FIN핀란드어POR포르투갈어UKR우크라이나어
FRA프랑스어HRV크로아티아어ZHO중국어

타임스탬프 엔드포인트 주의. 일본어(jpn) · 중국어(zho) 처럼 단어 사이에 공백이 없는 언어는 word 단위 정렬이 문장 전체를 하나의 구간으로 묶어 버립니다. 이런 언어에서는 항상 granularity=char 를 함께 지정해 문자 단위 타임스탬프를 받으세요.

예시:

"kor"

prompt
스마트 프롬프트 (ssfm-v30) · object

생성된 음성의 감정 및 스타일 설정.

예시:
{
"emotion_type": "smart",
"previous_text": "I feel like I'm walking on air and I just want to scream with joy!",
"next_text": "I am literally bursting with happiness and I never want this feeling to end!"
}
output
Output · object

볼륨(0-200), 피치(-12~+12 반음), 템포(0.5배~2.0배), 형식(wav/mp3)을 포함한 오디오 출력 설정으로 최종 오디오 특성을 제어합니다

seed
integer<uint32>

재현 가능한 음성 생성을 위한 부호 없는 정수 시드. 동일한 시드와 동일한 입력 파라미터로 항상 같은 오디오 결과를 생성합니다.

  • 0 이상의 정수만 허용됩니다. 음수 값은 사용할 수 없습니다.
  • 생략하면 서버가 매번 랜덤 시드를 생성하여 약간의 변이가 발생합니다.
필수 범위: 0 <= x <= 4294967295
예시:

42

응답

Success - Returns base64 audio and timestamps

TTS 생성 + 타임스탬프 정렬 통합 응답.

audio
string
필수

base64 로 인코딩된 오디오 바이트. audio_format 확장자로 디코딩해 파일로 저장할 수 있습니다.

audio_format
enum<string>
필수

audio 필드의 오디오 인코딩 포맷 — wav 또는 mp3 (요청의 output.audio_format 에 따라 결정).

사용 가능한 옵션:
wav,
mp3
audio_duration
number
필수

생성된 오디오의 길이(초).

words
AlignmentSegmentWord · object[] | null
필수

단어 단위 타임스탬프(문장부호 포함). 요청이 granularity=char 일 때는 null.

characters
AlignmentSegmentCharacter · object[] | null
필수

문자 단위 타임스탬프(문장부호와 공백 포함). 요청이 granularity=word 일 때는 null.