Fish Audio Docs
API 참조텍스트 음성 변환
Back to site

HTTP 동기화

Open API v1을 사용하여 동기식으로 음성을 생성하세요.

HTTP 동기화

요청-응답 흐름에 맞게 텍스트가 충분히 짧고 제품이 계속하기 전에 오디오를 기다릴 수 있는 경우 동기화 TTS 엔드포인트를 사용하세요. 긴 텍스트, 일괄 작업 또는 사용자에게 표시되는 대기열의 경우 비동기 작업을 사용하세요.

클라이언트가 OpenAI /v1/audio/speech 요청 형태를 예상하는 경우 OpenAI 호환 TTS 엔드포인트를 대신 사용하세요.

POST /api/open/v1/speech/tts
Authorization: Bearer FISHAUDIO_API_KEY
Content-Type: application/json

요구

{
  "text": "Hello from Fish Audio.",
  "voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
  "modelId": "fishaudio-s21pro-flash",
  "format": "mp3"
}

공통 필드:

필드유형메모
text문자열합성할 텍스트입니다. 생성된 큰 텍스트를 보내기 전에 공백을 표준화하세요.
voiceId문자열새로운 통합을 위한 기본 음성 ID입니다.
modelId문자열TTS 엔진 모델 ID입니다. 예: fishaudio-s21pro-flash.
format문자열활성화된 모델에 따라 mp3와 같은 출력 컨테이너.
cache부울true인 경우 응답은 JSON 메타데이터 및 오디오 URL을 반환할 수 있습니다.

새로운 통합에서는 GET /api/open/v1/voicesvoiceId를 사용해야 합니다. 빠른 연결 테스트를 위해서는 공용 시스템 음성 00a1b221-6137-4b73-ad62-b0cbce134167를 사용하세요.

이전 SDK 또는 기타 사이트 변형의 필드를 현재 해외 Open API 계약에 혼합하지 마십시오.

curl https://fishaudio.org/api/open/v1/speech/tts \
  -H "Authorization: Bearer FISHAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello from Fish Audio.","voiceId":"00a1b221-6137-4b73-ad62-b0cbce134167","modelId":"fishaudio-s21pro-flash","format":"mp3"}' \
  --output speech.mp3

응답

cachefalse이거나 생략된 경우 성공적인 응답은 이진 오디오를 반환합니다. cachetrue이면 성공적인 응답은 JSON 메타데이터를 반환합니다.

{
  "audio_url": "https://example.com/generated.mp3",
  "credits_used": 12,
  "quota_remaining": 987988
}

클라이언트는 하나의 응답 형태를 가정하는 대신 Content-Type 헤더에서 분기해야 합니다. URL이 수명이 짧은 경우 생성된 오디오를 지속 가능한 저장소에 저장하세요.

청구 및 크레딧

동기화 TTS는 생성된 콘텐츠 및 모델 구성을 기반으로 크레딧을 소비합니다. 엔드포인트는 HTTP 요청 내에서 생성을 수행하므로 클라이언트 시간 초과가 항상 서버가 작업을 취소했다는 의미는 아닙니다. 사용자 작업을 재시도할 때 자체 애플리케이션 계층에서 멱등성을 사용하세요.

정확한 사후 생성 잔액이 필요한 경우 요청이 완료된 후 Profile을 호출하세요. 대규모 배치의 경우 각 작업이 지속적인 ID와 상태를 갖도록 비동기 작업을 선호합니다.

오류

상태의미액션
400텍스트, 음성 ID, 형식 또는 페이로드 형태가 잘못되었습니다재시도하기 전에 요청을 수정하세요
401API 키가 없거나 잘못되었습니다.서버 측 자격 증명 새로 고침
402크레딧 또는 할당량이 부족합니다일괄 처리를 중지하고 청구 상태 표시
429요금 제한백오프로 재시도
500검증 후 생성 실패제품이 중복 오디오를 허용할 수 있는 경우에만 다시 시도