메인 콘텐츠로 건너뛰기
Typecast CLI(cast)를 사용하면 터미널에서 바로 텍스트를 음성으로 변환할 수 있습니다. 즉시 오디오를 재생하거나, 파일로 저장하고, 음성을 인터랙티브하게 탐색하고, 감정을 제어할 수 있습니다. 타입캐스트 API 키가 필요합니다.

설치

1

설치

brew install neosapience/tap/cast
2

로그인

cast login
API 키를 입력하라는 메시지가 표시됩니다. 타입캐스트 API 콘솔에서 키를 발급받으세요.직접 전달할 수도 있습니다:
cast login <api_key>
3

확인

cast "Hello, world!"
오디오가 재생되면 설치가 완료된 것입니다!
API에 대한 자세한 내용은 타입캐스트 API 콘솔을 참고하세요.

빠른 시작

# 바로 재생
cast "Hello, world!"

# 특정 음성 사용
cast "Hello, world!" --voice-id tc_xxx

# WAV 파일로 저장
cast "Hello, world!" --out hello.wav

# MP3 파일로 저장
cast "Hello, world!" --out hello.mp3 --format mp3
기본적으로 cast는 오디오를 즉시 재생합니다. --out 플래그를 사용하면 WAV 또는 MP3 파일로 저장할 수 있습니다.

기능

옵션

플래그설명기본값
--voice-idVoice IDtc_60e5426de8b95f1d3000d7b5
--model모델 (ssfm-v30, ssfm-v21)ssfm-v30
--language언어 코드 (ISO 639-3)자동 감지
--emotion감정 유형: smart, preset
--emotion-preset이모션 프리셋 (--emotion preset 필요)
--emotion-intensity감정 강도 0.0–2.0 (--emotion preset 필요)1.0
--prev-text문맥을 위한 이전 문장 (--emotion smart 전용)
--next-text문맥을 위한 다음 문장 (--emotion smart 전용)
--volume볼륨 (0–200)100
--pitch피치 (반음 단위, -12 ~ +12)0
--tempo템포 배율 (0.5–2.0)1.0
--format출력 형식 (wav, mp3)wav
--seed재현 가능한 출력을 위한 부호 없는 정수 시드 (≥ 0)
--out재생 대신 파일로 저장

모델

모델언어감정지연시간
ssfm-v3037개7개 프리셋 + 스마트 이모션표준
ssfm-v2127개4개 프리셋 (normal, happy, sad, angry)낮음
# 낮은 지연시간을 위해 ssfm-v21 사용
cast "Hello, world!" --model ssfm-v21

감정

AI가 텍스트에서 적절한 감정을 자동으로 추론합니다. ssfm-v30에서만 사용 가능합니다.
cast "I just got promoted!" --emotion smart
더 나은 문맥을 위해 앞뒤 문장을 제공할 수 있습니다:
cast "I just got promoted!" --emotion smart \
  --prev-text "I have been working so hard this year." \
  --next-text "Let's celebrate tonight!"

음성

음성을 인터랙티브하게 탐색, 미리듣기, 선택할 수 있습니다:
cast voices pick
cast voices pick --gender female --age young_adult
cast voices pick --text "미리듣기 문장"
입력하여 필터링한 후 다음 키를 사용하세요:
동작
P현재 모델/감정 프리셋으로 미리듣기
E스마트 이모션으로 미리듣기 (ssfm-v30 전용)
S기본 음성으로 설정
CVoice ID를 클립보드에 복사
Enter확인 후 Voice ID 출력
Esc뒤로가기
일대일 토너먼트 방식으로 가장 마음에 드는 음성을 찾을 수 있습니다:
cast voices tournament
cast voices tournament --gender female --size 16
cast voices tournament --text "미리듣기 문장"
동작
P음성 1 미리듣기
Q음성 2 미리듣기
1음성 1 선택
2음성 2 선택
랜덤으로 음성을 선택합니다:
cast voices random
cast voices random --gender female --age young_adult
cast "Hello!" --voice-id $(cast voices random --model ssfm-v30 --gender female)
필터를 사용하여 음성을 조회합니다:
cast voices list
cast voices list --gender female
cast voices list --age young_adult
cast voices list --model ssfm-v30
cast voices list --use-case Audiobook
cast voices list --json
사용 가능한 용도: Announcer, Anime, Audiobook, Conversational, Documentary, E-learning, Rapper, Game, Tiktok/Reels, News, Podcast, Voicemail, Ads특정 음성의 상세 정보를 조회합니다:
cast voices get <voice_id>

설정

매번 플래그를 전달하지 않도록 기본값을 설정할 수 있습니다:
cast config set voice-id tc_xxx
cast config set model ssfm-v21
cast config set volume 120

cast config list          # 현재 설정 확인
cast config unset volume  # 값 제거
사용 가능한 키: voice-id, model, language, emotion, emotion-preset, emotion-intensity, volume, pitch, tempo, format 설정은 다음 우선순위로 적용됩니다:
--flag  >  환경 변수  >  ~/.typecast/config.yaml  >  기본값

환경 변수

TYPECAST_ 접두사를 사용하여 모든 옵션을 환경 변수로 설정할 수 있습니다:
변수플래그
TYPECAST_API_KEY--api-key
TYPECAST_VOICE_ID--voice-id
TYPECAST_MODEL--model
TYPECAST_LANGUAGE--language
TYPECAST_EMOTION--emotion
TYPECAST_EMOTION_PRESET--emotion-preset
TYPECAST_EMOTION_INTENSITY--emotion-intensity
TYPECAST_FORMAT--format
TYPECAST_VOLUME--volume
TYPECAST_PITCH--pitch
TYPECAST_TEMPO--tempo

활용 예시

cast "$(cat script.txt)"
echo "System is ready." | cast
cast "$(curl -s https://example.com/status.txt)"
cast "Chapter one." --out ch1.wav
cast "Chapter two." --out ch2.wav
cast "Chapter three." --out ch3.wav
# 차분한 톤의 내레이션
cast "It was a dark and stormy night." \
  --emotion preset --emotion-preset normal --emotion-intensity 0.5 --out intro.wav

# 흥분되는 순간
cast "She opened the letter and gasped." \
  --emotion preset --emotion-preset happy --emotion-intensity 1.5 --out climax.wav

# 슬픈 이별
cast "He watched the train disappear into the fog." \
  --emotion preset --emotion-preset sad --out farewell.wav
cast "I can't believe we actually made it!" --emotion smart \
  --prev-text "We've been working on this for three years." \
  --next-text "Let's celebrate tonight!"
cast "Hello, world!" --seed 42 --out hello.wav
# 같은 시드로 다시 실행하면 동일한 오디오가 생성됩니다
cast "Hello, world!" --seed 42 --out hello2.wav
cast "Bonjour le monde" --language fra
cast "こんにちは" --language jpn
cast "Buy now, limited time offer!" --tempo 1.3 --pitch 2
cast "Relax and take a deep breath." --tempo 0.85 --volume 90

문제 해결

  • 설치가 정상적으로 완료되었는지 확인하세요
  • Homebrew: brew list neosapience/tap/cast로 확인
  • Go: $GOPATH/binPATH에 포함되어 있는지 확인
  • 새 터미널 세션을 열어보세요
  • cast login으로 API 키를 다시 입력하세요
  • 타입캐스트 API 콘솔에서 키가 유효한지 확인하세요
  • cast logoutcast login으로 초기화하세요
  • 파일로 저장해보세요: cast "test" --out test.wav
  • 시스템 오디오 출력 장치를 확인하세요
  • 시스템 볼륨이 음소거 상태가 아닌지 확인하세요

리소스

GitHub

소스 코드 및 릴리스

API 레퍼런스

타입캐스트 API 탐색하기

음성 라이브러리

사용 가능한 음성 둘러보기

타입캐스트 API 콘솔

API 홈