모델

hexgrad: Kokoro 82M

Markdown · JSON

hexgrad: Kokoro 82M

hexgrad의 Kokoro 82M은 8,200만 개 매개변수의 소형 모델과 언어별 사전 설정 목소리로 음성을 생성합니다. 문서에 명시된 v1.0 규격에는 8개 언어, 54개 목소리, 24 kHz 오디오 출력이 포함됩니다.

모델 소개

이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.

Kokoro 82M은 8,200만 개의 매개변수를 가진 hexgrad의 공개 가중치 텍스트 음성 변환 모델입니다. 모델 카드는 StyleTTS 2와 iSTFTNet을 기반으로 하는 소형 디코더 전용 구조를 설명합니다. 작성된 텍스트는 발음 정보로 변환된 뒤 선택한 목소리의 음성이 됩니다. 문서에 명시된 v1.0 릴리스는 8개 언어에 걸쳐 54개 목소리를 제공합니다. 이는 이전의 영어 전용 v0.19 릴리스와 구분됩니다.

맞는 언어와 목소리 선택

목소리 목록은 미국·영국 영어, 일본어, 표준 중국어, 스페인어, 프랑스어, 힌디어, 이탈리아어, 브라질 포르투갈어를 다룹니다. 두 영어 억양은 한 언어의 변형입니다. 목소리 이름과 언어 설정은 함께 사용해야 합니다. 공식 워크플로의 af_heart는 미국 영어 예이며 다른 언어와 억양에는 별도의 그룹이 있습니다.

실제로 읽을 자료를 기준으로 화자를 선택하세요. 짧은 강의 내레이션은 각 구간에서 하나의 일관된 사전 설정 목소리를 사용할 수 있습니다. 다국어 자료 모음은 필요한 언어 그룹마다 목소리를 선택할 수 있습니다. 목록의 범위는 그룹별로 다릅니다. 예를 들어 프랑스어는 영어의 다양한 선택지와 달리 목소리 하나가 나열되어 있습니다.

발음과 문단 준비

Kokoro의 참조 파이프라인은 작성된 표기를 음소로 변환합니다. 예제에서는 용어의 발음 표기를 명시할 수 있어 어려운 이름을 모호한 철자에 맡기지 않고 준비할 수 있습니다. 주변 문장을 자연스럽게 유지하고 청취자가 들어야 할 문구를 보존하세요.

예를 들어 “가이드는 세 부분으로 구성됩니다. 먼저 자료를 선택하세요. 다음으로 예제를 비교하세요. 마지막으로 사용할 버전을 저장하세요.”라고 쓸 수 있습니다. 완결된 문구를 쓰고 문장부호가 암시하는 멈춤을 유지하세요. 긴 작품은 전체 문서를 끊김 없는 하나의 발화로 취급하지 말고 내용이 이어지는 문단으로 입력을 구성하세요.

목소리 안내에 따르면 많은 화자는 약 500토큰 범위 안에서 100~200토큰 정도의 문단일 때 가장 잘 작동합니다. 매우 짧은 발화, 특히 10~20토큰 미만에서의 약점과 긴 문단, 특히 400토큰 초과 시 서둘러 말하는 경향을 언급합니다. 이는 토큰을 기준으로 한 준비 관련 관찰이며 단어 수나 녹음 시간 한도가 아닙니다. 짧은 조각을 합치거나 긴 문단을 나누면 더 적절한 발화 단위를 만들 수 있습니다.

오디오 출력과 속도

공식 워크플로는 생성된 각 세그먼트에 대해 처리된 텍스트, 음소, 오디오 결과를 제공합니다. 세그먼트를 24,000 Hz WAV로 저장하며 참조 파이프라인에 속도 설정을 제공합니다. 조립한 내레이션이 의도한 대본을 따르도록 세그먼트 텍스트와 순서를 오디오에 연결해 보관하세요.

유용한 편집 점검은 두 문단의 경계를 이어 들어 본 다음 반복되는 이름과 목록의 말하기 속도를 살피는 것입니다. 오디오 출력과 음소 보기는 목적이 다릅니다. 하나는 청취자가 듣는 녹음이고 다른 하나는 작성된 텍스트가 어떻게 발음되는지 살펴보는 데 도움이 됩니다.

언어 범위와 실용적 한계

제조사는 발음 처리나 음성 학습 데이터가 제한되어 비영어 지원이 부족할 수 있음을 명시합니다. 따라서 사전 설정 그룹을 모든 문단에서 동등한 표현을 보장하는 것으로 취급해서는 안 됩니다. 적합한 화자를 선택하고 작업에 필요한 실제 이름과 문구를 검토하세요.

유용한 결과물은 문서에 명시된 사전 설정 목소리를 사용한 발화 문단이나 조립된 내레이션이며, 텍스트는 발음 및 문단 길이 요구에 맞춰 준비합니다. 이 소개는 제조사의 v1.0 Kokoro 82M 자료를 따릅니다. 다른 체크포인트, 양자화 구현, 외부에서 수정한 목소리는 각각의 기술적 범위를 가집니다.

Ailoot Ultra · 음성 합성 POST /v1/audio/speech hexgrad/kokoro-82m

hexgrad/kokoro-82m

hexgrad /hexgrad/kokoro-82m

시작하기

hexgrad의 Kokoro 82M은 8,200만 개 매개변수의 소형 모델과 언어별 사전 설정 목소리로 음성을 생성합니다. 문서에 명시된 v1.0 규격에는 8개 언어, 54개 목소리, 24 kHz 오디오 출력이 포함됩니다.

허용 입력
텍스트
결과
오디오

Ailoot에서 사용 가능 · 입력 및 메서드

Ailoot Ultra · 음성 합성 POST /v1/audio/speech
입력
text
출력
audio
출력 형식
mp3
필드유형요건값과 한도기본값
필드model유형string요건필수값과 한도
hexgrad/kokoro-82m
기본값—
필드input유형string요건필수값과 한도
최소 길이: 1
단위: Unicode 문자
기본값—
필드voice유형string요건필수값과 한도
af_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky, am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa, bf_alice, bf_emma, bf_isabella, bf_lily, bm_daniel, bm_fable, bm_george, bm_lewis, ef_dora, em_alex, em_santa, ff_siwis, hf_alpha, hf_beta, hm_omega, hm_psi, if_sara, im_nicola, jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro, jm_kumo, pf_dora, pm_alex, pm_santa, zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi, zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang
기본값—
필드response_format유형string요건필수값과 한도
mp3
기본값—
입력 자료 조합

text_to_speech · 필수: input

메서드 매개변수와 수명 주기
매개변수명세
매개변수content_type명세application/json
매개변수required명세model, input, voice, response_format
매개변수voice_ids명세af_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky, am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa, bf_alice, bf_emma, bf_isabella, bf_lily, bm_daniel, bm_fable, bm_george, bm_lewis, ef_dora, em_alex, em_santa, ff_siwis, hf_alpha, hf_beta, hm_omega, hm_psi, if_sara, im_nicola, jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro, jm_kumo, pf_dora, pm_alex, pm_santa, zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi, zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang
매개변수response_format명세mp3
매개변수max_input_characters명세null
매개변수other_options명세false
매개변수input명세정확한 UTF-8 텍스트; 정규화 없이 계산한 유니코드 문자 수
매개변수material_types명세text

수명 주기: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · 실제로 반환된 task_id 또는 미디어 라이브러리 기록

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

이 모델 프로필에 있는 정확한 음성을 선택하세요.

입력 문자 수와 오디오 초는 서로 다른 측정 단위입니다.

요금

요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.

빠른 모드
미지정 빠른 모드를 선택한 경우
Flex 모드
미지정 flex 모드를 선택한 경우
최대 추론 수준
미지정 최대 추론 수준에 default 조정값을 적용하는 경우

Ailoot 요금

설정별 가격

각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.

설정요금표과금 대상 수량과금 단위요금
설정기본 토큰 요금요금표기본 요금과금 대상 수량—과금 단위—요금
입력 · 입력 토큰 — / 1K 토큰
출력 · 출력 토큰 — / 1K 토큰
입력 · 캐시 읽기 — / 1K 토큰
입력 · 캐시 쓰기 — / 1K 토큰
입력 · 캐시 쓰기, 1시간 — / 1K 토큰
설정Ultra요금표—과금 대상 수량한자를 포함해 Unicode 코드 포인트 하나를 문자 하나로 계산합니다.과금 단위입력 문자 1K개당요금
입력 · 입력 문자 $0.008 입력 문자 1K개당

참조 요금 상세 정보

모델 수준의 참조 요금표는 메서드 선택, 견적 또는 요금을 변경하지 않습니다. 실제 과금에는 선택한 Ailoot 메서드 요금이 적용됩니다.

hexgrad: Kokoro 82M

설정별 가격

설정과금 조건요금
설정hexgrad: Kokoro 82M · 기본 설정과금 조건기본 설정요금
입력 · 입력 문자 수 US$0.00000124 입력 문자당

Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →

요청 예제

Ailoot Ultra · 음성 합성

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "hexgrad/kokoro-82m", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["af_alloy", "af_aoede", "af_bella", "af_heart", "af_jessica", "af_kore", "af_nicole", "af_nova", "af_river", "af_sarah", "af_sky", "am_adam", "am_echo", "am_eric", "am_fenrir", "am_liam", "am_michael", "am_onyx", "am_puck", "am_santa", "bf_alice", "bf_emma", "bf_isabella", "bf_lily", "bm_daniel", "bm_fable", "bm_george", "bm_lewis", "ef_dora", "em_alex", "em_santa", "ff_siwis", "hf_alpha", "hf_beta", "hm_omega", "hm_psi", "if_sara", "im_nicola", "jf_alpha", "jf_gongitsune", "jf_nezumi", "jf_tebukuro", "jm_kumo", "pf_dora", "pm_alex", "pm_santa", "zf_xiaobei", "zf_xiaoni", "zf_xiaoxiao", "zf_xiaoyi", "zm_yunjian", "zm_yunxi", "zm_yunxia", "zm_yunyang"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o speech.mp3

결과 수신 및 저장

Ailoot Ultra · 음성 합성

mp3

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
기타 콘텐츠 조회
미디어 라이브러리작업 상태자산 세부 정보
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
완료된 결과 모두 보관

반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.

바이너리 결과 전체와 헤더를 보관하세요. JSON 또는 여러 출력이 반환되면 모든 데이터 항목을 보관하고 실제로 반환된 서명된 자산 URL을 각각 조회하세요.

원래 응답을 확인해야 할 경우

다시 제출하지 말고 정산 대조를 위해 최초 operation_id/X-Client-Request-ID를 보관하세요. 전용 오디오 폴링 라우트는 없습니다.

응답 필드
필드유형
필드binary audio유형bytes
필드response headers유형headers
오류와 다음 단계
응답조건다음 단계
응답400 · invalid_request_error조건필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음다음 단계새 생성 요청 전에 표시된 필드를 수정하세요.
응답server_error조건반환된 응답에 작업 또는 결과 확인이 필요하다고 표시되어 있습니다다음 단계최초로 반환된 작업/태스크 ID, 요청 헤더와 응답을 보관하고, 지원되는 조회 방식으로 해당 최초 작업을 계속 조회하세요. 생성 요청을 다시 제출하지 마세요.

별칭

모델 별칭

Ailoot Ultra hexgrad/kokoro-82m

메서드 경로 별칭

위에 표시된 메서드 경로를 사용하세요.

관련 호출용 ID

hexgrad/kokoro-82m

FAQ · hexgrad: Kokoro 82M
어떤 입력과 결과를 사용할 수 있나요?

POST /v1/audio/speech · hexgrad/kokoro-82m: text → audio

요청은 어떤 필드를 사용하나요?

POST /v1/audio/speech · hexgrad/kokoro-82m: model, input, voice, response_format

자세히 보기

Claude Code, OpenCode, Hermes, 자체 앱에 Ailoot를 연결하세요.

회사와 그 프로젝트 포트폴리오

회사와 그 프로젝트 포트폴리오: 수백만 고객, 매월 수십억 규모의 매출.

할인받아 토큰을 구매하세요.

정기 작업에는 구독 할인, 토큰 구매에는 최대 50% 프로모션 코드.

구독
정기 요청에 맞는 할인 요금제를 선택하세요.
최대 50% 프로모션 코드
구매할 때 코드를 넣으면 진행 중 행사에 따라 가격을 다시 계산합니다.
이력의 지출
요청마다 모델, 토큰, 금액을 저장합니다.

구독 선택 · 모델 가격 보기

판매하는 제품에 API를 연결하세요.

Ailoot 공식 이용 조건과 라이선스 계약으로 SaaS, 앱, 봇에 사용하세요. 재판매에는 리셀러 라이선스를 요청하세요.

상업용 앱
서비스의 유료 기능에 텍스트, 이미지, 영상, 소리 생성을 넣으세요.
리셀러 라이선스
프로젝트 설명과 접근 구조를 보내 사용·재판매의 서면 조건을 요청하세요.
사이트의 문서
연결 전에 공식 이용 조건, 라이선스 계약, 데이터 처리 정책을 읽을 수 있습니다.

리셀러 라이선스 요청 · 공식 이용 조건과 라이선스 계약