이 문서는 영어 원문을 기반으로 자동 번역되었습니다. 표현이 어색하거나 모호한 부분이 있을 수 있으니, 정확한 내용은 영어 원문을 함께 확인해 주세요.
@supertone/supertone으로 공개되어 있습니다. 소스: supertone-inc/supertone-ts.
한눈에 보기
| 패키지 | npm의 @supertone/supertone |
| 저장소 | supertone-inc/supertone-ts |
| 언어 | TypeScript 5+ / Node 18+ |
| 모듈 포맷 | ESM + CommonJS |
| 인증 | new Supertone({ apiKey: ... }) |
| 동기 API | 해당 없음 |
| 비동기 API | 모든 메서드(Promise) |
| 스트리밍 | ReadableStream reader |
| 긴 텍스트 자동 청크 분할 | ✅ 300자, 순차 |
| 커스텀 재시도 | ✅ retryConfig로 설정 |
| HTTP 백엔드 | fetch |
설치
- npm
- pnpm
- bun
- yarn
fetch와 ReadableStream을 위해). Bun과 Deno에서도 동작하며, 브라우저용으로는 설계되지 않았습니다(API Key는 절대 클라이언트 측에 두면 안 됩니다).
API Key 설정
음성 생성하기
음성 스트리밍
sona_speech_1에서만 지원됩니다.
긴 텍스트 자동 청크 분할
createSpeech와 streamSpeech 모두 300자보다 긴 텍스트를 자동으로 청크 분할합니다. 텍스트를 그대로 전달하면 SDK가 분할하고, 각 세그먼트를 생성한 뒤 결과를 병합(또는 스트리밍)합니다.
predictDuration은 자동 청크 분할을 수행하지 않습니다 — 300자 제한이 그대로 적용됩니다.
자세한 내용은 긴 텍스트를 참고하세요.
자주 사용하는 작업
타입 안전 enum(선택)
타입 안전성을 위해 SDK는@supertone/supertone/models에 enum 상수를 노출합니다.
"en", "sona_speech_1")도 동일하게 동작합니다 — 선호하는 방식을 선택하세요.
오류 처리
오류는@supertone/supertone/models/errors에 있으며 모두 SupertoneError를 상속합니다.
| Error class | HTTP status |
|---|---|
BadRequestErrorResponse | 400 |
UnauthorizedErrorResponse | 401 |
PaymentRequiredErrorResponse | 402 |
ForbiddenErrorResponse | 403 |
NotFoundErrorResponse | 404 |
RequestTimeoutErrorResponse | 408 |
PayloadTooLargeErrorResponse | 413 |
UnsupportedMediaTypeErrorResponse | 415 |
TooManyRequestsErrorResponse | 429 |
InternalServerErrorResponse | 500 |
ConnectionError, RequestTimeoutError, RequestAbortedError 등)는 SupertoneError가 아닌 HTTPClientError를 상속합니다.
설정
관련 문서
Python SDK
Python을 위한 동등한 SDK입니다.
예제
자주 사용하는 워크플로에 대한 레시피입니다.