Go Reference
Typecast Go SDK
소스 코드
Typecast Go SDK 소스 코드
설치
빠른 시작
기능
Typecast Go 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
- Context 지원: 취소 및 타임아웃을 위한
context.Context완전 지원 - 타임스탬프 TTS: 자막, 가라오케, 립싱크를 위한 단어·문자 단위 정렬 데이터
- 스트리밍: 저지연 재생을 위한 실시간 청크 오디오 전송
- 의존성 없음: Go 표준 라이브러리만 사용
보이스 추천
원하는 스타일은 알지만 정확한voice_id를 모를 때 RecommendVoices를 사용합니다.
VoiceID, VoiceName, Score만 포함됩니다. 지원 모델, 감정, 성별, 연령대, 사용 사례 같은 상세 메타데이터가 필요하면 GetVoiceV2 또는 GetVoicesV2로 추가 조회하세요.
설정
환경 변수 또는 직접 전달로 API 키를 설정하세요:자체 프록시를 통해 요청하는 경우
BaseURL 또는 TYPECAST_API_HOST를 프록시 엔드포인트로 설정하고 APIKey를 생략할 수 있습니다. API 키가 비어 있거나 없으면 SDK는 X-API-KEY 헤더를 보내지 않습니다. 기본 Typecast 호스트로 요청할 때는 API 키가 계속 필요합니다.API 키 없는 프록시
환경 변수
고급 사용법
감정 제어 (ssfm-v30)
ssfm-v30은 두 가지 감정 제어 모드를 제공합니다: 프리셋과 스마트.- 스마트 모드
- 프리셋 모드
AI가 문맥에서 감정을 추론하도록 합니다:
오디오 커스터마이징
라우드니스, 피치, 템포, 출력 형식을 제어합니다:파일로 바로 생성하기
GenerateToFile은 음성 합성과 파일 저장을 한 번에 처리합니다. model은 기본값으로 ssfm-v30을 사용하고, .mp3 또는 .wav 확장자로 출력 형식을 결정합니다.
텍스트만으로 쉼 표현
한 voice로 읽는 문장 안에 쉼만 넣고 싶다면 텍스트에 pause markup을 직접 작성합니다.<|5s|>, <|1s|>, <|0.3s|>, <|0.34413s|>처럼 쓰며 값은 초 단위이고 반드시 s로 끝납니다. 별도 pause 함수를 호출하지 않아도 텍스트만 보고 쉼 위치를 확인할 수 있습니다.
다중 화자 합성
한 파일 안에서 서로 다른 voice나 구간별 pitch, tempo, prompt, seed 같은 옵션을 조합해야 할 때 사용합니다. composer는 각 구간을 WAV로 생성하고 앞뒤 무음 PCM 샘플을 trim한 뒤 합성합니다. MP3가 필요하면 먼저 WAV를 생성한 다음 앱 또는 서버 파이프라인에서 변환하세요.음성 검색 (V2 API)
향상된 메타데이터로 사용 가능한 음성을 나열하고 필터링합니다:다국어 콘텐츠
SDK는 자동 언어 감지를 통해 37개 언어를 지원합니다:스트리밍
저지연 재생을 위한 실시간 오디오 청크 스트리밍:WAV 스트리밍 형식: 32000 Hz, 16비트, 모노 PCM. 첫 번째 청크에 44바이트 WAV 헤더(size =
0xFFFFFFFF)가 포함되며, 이후 청크는 원시 PCM 데이터만 포함합니다. MP3 형식: 320 kbps, 44100 Hz, 각 청크는 독립적으로 디코딩 가능합니다.타임스탬프 TTS
TextToSpeechWithTimestamps()는 POST /v1/text-to-speech/with-timestamps를 래핑하며, 오디오와 함께 단어·문자 단위 정렬 데이터를 반환합니다. 가라오케 하이라이트, 자막 생성, 립싱크 애플리케이션에 활용할 수 있습니다.
기본 사용법
정밀도(Granularity) 설정
Granularity: typecast.GranularityWord(기본값) 또는 Granularity: typecast.GranularityChar를 전달해 정렬 단위를 제어합니다.
자막 내보내기
일본어·중국어: 공백 구분자가 없는 언어(jpn, zho)는 단어 단위 세그먼트가 의미를 갖지 않습니다. 해당 언어에는
GranularityChar를 사용해 문자 단위 정렬 데이터를 얻으세요.지원 언어
SDK는 자동 언어 감지를 통해 37개 언어를 지원합니다:지정하지 않으면 입력 텍스트에서 자동으로 언어가 감지됩니다.
오류 처리
SDK는 특정 오류를 처리하기 위한 헬퍼 메서드가 있는APIError 타입을 제공합니다:
오류 유형
Context와 타임아웃
SDK는 취소 및 타임아웃을 위한 Go의context.Context를 완전히 지원합니다: