패키지
타입캐스트 Python SDK
소스 코드
타입캐스트 Python SDK 소스 코드
설치
pip를 사용하여 타입캐스트 Python SDK를 설치하세요:패키지는
typecast-python으로 설치되지만, typecast로 임포트합니다.빠른 시작
텍스트를 음성으로 변환하는 간단한 예제입니다:기능
타입캐스트 Python SDK는 텍스트 음성 변환을 위한 강력한 기능을 제공합니다:- 다중 음성 모델:
ssfm-v30(최신) 및ssfm-v21AI 음성 모델 지원 - 다국어 지원: 영어, 한국어, 스페인어, 일본어, 중국어 등 37개 언어 지원
- 감정 조절: 감정 프리셋(normal, happy, sad, angry, whisper, toneup, tonedown) 또는 스마트 문맥 인식 추론
- 오디오 사용자 정의: 라우드니스(LUFS -70 to 0), 피치(-12 to +12 반음), 템포(0.5x to 2.0x), 형식(WAV/MP3) 제어
- 비동기 지원: 고성능 애플리케이션을 위한 내장 비동기 클라이언트
- 보이스 탐색: 모델, 성별, 나이, 사용 사례별 필터링이 가능한 V2 Voices API
- 타임스탬프 TTS: 자막, 가라오케, 립싱크를 위한 단어·문자 단위 정렬 데이터
- 스트리밍: 저지연 재생을 위한 실시간 청크 오디오 전송
- 타입 힌트: Pydantic 모델을 사용한 완전한 타입 주석
보이스 추천
원하는 스타일은 알지만 정확한voice_id를 모를 때 recommend_voices를 사용합니다.
voice_id, voice_name, score만 포함됩니다. 지원 모델, 감정, 성별, 연령대, 사용 사례 같은 상세 메타데이터가 필요하면 voice_v2(voice_id) 또는 voices_v2()로 추가 조회하세요.
설정
환경 변수를 사용하거나 클라이언트에 직접 전달하여 API 키를 구성할 수 있습니다:자체 프록시를 통해 요청하는 경우
TYPECAST_API_HOST 또는 api_host를 프록시 엔드포인트로 설정하고 api_key를 생략할 수 있습니다. API 키가 비어 있거나 없으면 SDK는 X-API-KEY 헤더를 보내지 않습니다. 기본 Typecast 호스트로 요청할 때는 API 키가 계속 필요합니다.API 키 없는 프록시
고급 사용법
감정 제어 (ssfm-v30)
ssfm-v30은 두 가지 감정 제어 모드를 제공합니다: 프리셋 및 스마트.- 스마트 모드
- 프리셋 모드
AI가 문맥에서 감정을 추론하도록 합니다:
음성 조절
라우드니스, 피치, 템포 및 출력 형식을 제어합니다:파일로 바로 생성하기
오디오 데이터를 직접 다루지 않고 파일까지 바로 저장하려면generate_to_file을 사용하세요. 모델은 기본적으로 ssfm-v30을 사용하며, .mp3 / .wav 확장자는 출력 포맷이 없을 때 포맷 추론에 사용됩니다. 사용할 보이스 ID는 Voices 페이지에서 확인할 수 있습니다.
텍스트만으로 쉼 표현
한 voice로 읽는 문장 안에 쉼만 넣고 싶다면 텍스트에 pause markup을 직접 작성합니다.<|5s|>, <|1s|>, <|0.3s|>, <|0.34413s|>처럼 쓰며 값은 초 단위이고 반드시 s로 끝납니다. 별도 pause 함수를 호출하지 않아도 텍스트만 보고 쉼 위치를 확인할 수 있습니다.
다중 화자 합성
한 파일 안에서 서로 다른 voice나 구간별 pitch, tempo, prompt, seed 같은 옵션을 조합해야 할 때 사용합니다. composer는 각 구간을 WAV로 생성하고 앞뒤 무음 PCM 샘플을 trim한 뒤 합성합니다. MP3가 필요하면 먼저 WAV를 생성한 다음 앱 또는 서버 파이프라인에서 변환하세요.보이스 탐색 (V2 API)
향상된 메타데이터로 사용 가능한 보이스를 나열하고 필터링합니다:비동기 클라이언트
고성능 애플리케이션의 경우 비동기 클라이언트를 사용하세요:스트리밍
저지연 재생을 위한 실시간 오디오 청크 스트리밍:WAV 스트리밍 형식: 32000 Hz, 16비트, 모노 PCM. 첫 번째 청크에 44바이트 WAV 헤더(size =
0xFFFFFFFF)가 포함되며, 이후 청크는 원시 PCM 데이터만 포함합니다. MP3 형식: 320 kbps, 44100 Hz, 각 청크는 독립적으로 디코딩 가능합니다.타임스탬프 TTS
text_to_speech_with_timestamps()는 POST /v1/text-to-speech/with-timestamps를 래핑하여 오디오와 함께 단어·문자 단위 정렬 데이터를 반환합니다. 자막 생성, 가라오케 하이라이트, 립싱크 등에 활용할 수 있습니다.
기본 사용법
Granularity(정렬 단위)
granularity="word"(기본값) 또는 granularity="char"를 지정하여 정렬 단위를 설정합니다.
자막 내보내기
SRT 및 WebVTT 형식의 자막을 출력합니다. 자막은 문장 종결 부호(. ? ! 。 ? !)를 기준으로 분할되며 큐당 7초/42자 상한을 적용합니다(BBC/Netflix 자막 가이드라인).
일본어/중국어: 공백이 없는 언어(jpn, zho)는 단어 단위 세그먼트가 문장 전체로 나옵니다. 이러한 언어에서는
granularity="char"를 사용하세요.지원 언어
권장: 타입 안전한 언어 선택을 위해LanguageCode enum을 사용하세요. ISO 639-3 코드를 문자열로 전달할 수도 있습니다 (예: "eng").
SDK는 ISO 639-3 코드로 37개 언어를 지원합니다:
타입 안전한 언어 선택을 위해
LanguageCode enum을 사용하세요: