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/voices의 voiceId를 사용해야 합니다. 빠른 연결 테스트를 위해서는 공용 시스템 음성 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응답
cache가 false이거나 생략된 경우 성공적인 응답은 이진 오디오를 반환합니다. cache가 true이면 성공적인 응답은 JSON 메타데이터를 반환합니다.
{
"audio_url": "https://example.com/generated.mp3",
"credits_used": 12,
"quota_remaining": 987988
}클라이언트는 하나의 응답 형태를 가정하는 대신 Content-Type 헤더에서 분기해야 합니다. URL이 수명이 짧은 경우 생성된 오디오를 지속 가능한 저장소에 저장하세요.
청구 및 크레딧
동기화 TTS는 생성된 콘텐츠 및 모델 구성을 기반으로 크레딧을 소비합니다. 엔드포인트는 HTTP 요청 내에서 생성을 수행하므로 클라이언트 시간 초과가 항상 서버가 작업을 취소했다는 의미는 아닙니다. 사용자 작업을 재시도할 때 자체 애플리케이션 계층에서 멱등성을 사용하세요.
정확한 사후 생성 잔액이 필요한 경우 요청이 완료된 후 Profile을 호출하세요. 대규모 배치의 경우 각 작업이 지속적인 ID와 상태를 갖도록 비동기 작업을 선호합니다.
오류
| 상태 | 의미 | 액션 |
|---|---|---|
400 | 텍스트, 음성 ID, 형식 또는 페이로드 형태가 잘못되었습니다 | 재시도하기 전에 요청을 수정하세요 |
401 | API 키가 없거나 잘못되었습니다. | 서버 측 자격 증명 새로 고침 |
402 | 크레딧 또는 할당량이 부족합니다 | 일괄 처리를 중지하고 청구 상태 표시 |
429 | 요금 제한 | 백오프로 재시도 |
500 | 검증 후 생성 실패 | 제품이 중복 오디오를 허용할 수 있는 경우에만 다시 시도 |