🎬 μ‡ΌμΈ  λ‚˜λ ˆμ΄μ…˜, μ½”λ”© 없이 μžλ™ν™”ν•˜λŠ” 법 β€” νƒ€μž…μΊμŠ€νŠΈ CLI

 

Typecast  |  이번 아티클, μ‚¬λžŒμ²˜λŸΌ μžμ—°μŠ€λŸ¬μš΄ 'μ„œν˜„' λͺ©μ†Œλ¦¬λ‘œ μ½μ–΄λ“œλ €μš”

μš”μ¦˜ 쇼츠와 릴슀, μ‚¬λžŒμ΄ ν•˜λ‚˜ν•˜λ‚˜ λ§Œλ“€μ§€ μ•Šμ£ . 주제만 μ •ν•˜λ©΄ λŒ€λ³Έμ€ AIκ°€ μ“°κ³ , μžλ§‰Β·νŽΈμ§‘Β·μ—…λ‘œλ“œκΉŒμ§€ μžλ™μœΌλ‘œ λ„λŠ” 채널이 뢀쩍 λŠ˜μ—ˆμ–΄μš”.

Β 

이 νλ¦„μ—μ„œ νƒ€μž…μΊμŠ€νŠΈ API둜 μ‡ΌμΈ Β·λ¦΄μŠ€ λ‚˜λ ˆμ΄μ…˜κΉŒμ§€ μžλ™ν™”ν•˜λŠ” 뢄듀이 λ§Žμ€λ°μš”. 이제 νƒ€μž…μΊμŠ€νŠΈλ„ CLIλ₯Ό κ³΅μ‹μœΌλ‘œ μ§€μ›ν•©λ‹ˆλ‹€. μ„€μΉ˜ν•˜λ©΄ castλΌλŠ” λͺ…λ Ήμ–΄ ν•˜λ‚˜λ‘œ λ‚˜λ ˆμ΄μ…˜ μŒμ„±μ„ μžλ™μœΌλ‘œ λ§Œλ“€ 수 μžˆμ–΄μš”.

Β 

μ˜€λŠ˜μ€ νƒ€μž…μΊμŠ€νŠΈ CLI둜 μ‡ΌμΈ  λ‚˜λ ˆμ΄μ…˜μ„ μžλ™ν™”ν•˜λŠ” 법을, μ„€μΉ˜λΆ€ν„° λŒ€λŸ‰ μƒμ‚°κΉŒμ§€ μ •λ¦¬ν–ˆμ–΄μš”.

Β 

이런 λΆ„λ“€μ—κ²Œ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€

βœ… μ‡ΌμΈ Β·μ˜€λ””μ˜€λΆ λ“± μŒμ„± μ½˜ν…μΈ λ₯Ό λŒ€λŸ‰μœΌλ‘œ λ§Œλ“œλŠ” μ œμž‘μž

βœ… n8nΒ·Makeλ‚˜ AI μ—μ΄μ „νŠΈλ‘œ μ½˜ν…μΈ λ₯Ό μžλ™ν™”ν•˜λŠ” λΆ„

βœ… ν”„λ‘œκ·Έλž˜λ°μ€ λͺ°λΌλ„ 반볡 μž‘μ—…μ€ 쀄이고 싢은 λΆ„

Β 

API 무료둜 μ‹œμž‘ν•˜κΈ° β†’

Β 


Β 

CLIκ°€ λ­”κ°€μš”?

CLIλŠ” 터미널에 λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•΄ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” λ°©μ‹μ΄μ—μš”. ν™”λ©΄μ˜ λ²„νŠΌ λŒ€μ‹  ν…μŠ€νŠΈ λͺ…λ ΉμœΌλ‘œ μž‘μ—…μ„ μ‹œν‚€λŠ” κ±°μ£ . 이제 νƒ€μž…μΊμŠ€νŠΈλ„ 이 CLIλ₯Ό κ³΅μ‹μœΌλ‘œ μ§€μ›ν•©λ‹ˆλ‹€. λͺ…λ Ήμ–΄ ν•œ μ€„λ‘œ νƒ€μž…μΊμŠ€νŠΈ μŒμ„±μ„ λ§Œλ“€ 수 μžˆλ‹€λŠ” λœ»μ΄μ—μš”.

Β 

μ“°λŠ” 법은 κ°„λ‹¨ν•΄μš”. μ„€μΉ˜ν•œ λ’€ cast λͺ…령어에 ν…μŠ€νŠΈλ§Œ 적어주면 λ©λ‹ˆλ‹€. μ˜ˆμ‹œλ₯Ό ν•˜λ‚˜ λ³Όκ²Œμš”.

cast "였늘의 μ£Όμ œλŠ” 금리 μΈν•˜μž…λ‹ˆλ‹€" --out ep1.wav

이 ν•œ μ€„λ‘œ β€˜μ˜€λŠ˜μ˜ μ£Όμ œλŠ” 금리 μΈν•˜μž…λ‹ˆλ‹€β€™λ₯Ό μ›ν•˜λŠ” λͺ©μ†Œλ¦¬λ‘œ μ½λŠ” ep1.wav μŒμ„± 파일이 λ°”λ‘œ λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€. 화면을 클릭할 일도, μ½”λ“œλ₯Ό μ§€ 일도 μ—†μ–΄μš”.

Β 


Β 

CLI둜 뭘 ν•  수 μžˆλ‚˜μš”?

νƒ€μž…μΊμŠ€νŠΈ CLIκ°€ 곡식 μ§€μ›ν•˜λŠ” κΈ°λŠ₯은 크게 λ‹€μ„― κ°€μ§€μ˜ˆμš”. λͺ…λ Ήμ–΄λ‘œ μ •λ¦¬ν•˜λ©΄ μ΄λ ‡μŠ΅λ‹ˆλ‹€.

ν•˜κ³  싢은 것 λͺ…λ Ήμ–΄
ν…μŠ€νŠΈλ₯Ό μŒμ„±μœΌλ‘œ λ§Œλ“€κΈ° cast "ν…μŠ€νŠΈ" --out a.wav
ν…μŠ€νŠΈλ‘œ μŒμ„±Β·μžλ§‰ λ™μ‹œμ— λ§Œλ“€κΈ° cast "ν…μŠ€νŠΈ" --out a.wav --timestamps-out a.srt
자주 μ“°λŠ” λͺ©μ†Œλ¦¬Β·μ„€μ • 고정해두기 cast config set voice-id tc_xxx
λͺ©μ†Œλ¦¬ 골라보고 미리듣기 cast voices pick
λ‚΄ λͺ©μ†Œλ¦¬λ‘œ μ»€μŠ€ν…€ 보이슀 λ§Œλ“€κΈ° cast voices clone sample.wav --name "λ‚΄ 보이슀"

Β 

이 쀑 μ‡ΌμΈ  λ‚˜λ ˆμ΄μ…˜μ„ λ§Œλ“€ λ•Œ 주둜 μ“°λŠ” 건 μŒμ„± μƒμ„±Β·μžλ§‰ 생성·기본값 μ„€μ •μ΄μ—μš”. 이 μ…‹μœΌλ‘œ μ–΄λ–»κ²Œ μžλ™ν™”ν•˜λŠ”μ§€ λ°”λ‘œ λ³Όκ²Œμš”.

Β 

CLI λ¬Έμ„œ 보기 β†’

Β 


Β 

μ‡ΌμΈ  λ‚˜λ ˆμ΄μ…˜, μ΄λ ‡κ²Œ μžλ™ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€

λ§€μ£Ό 감미둜운 30λŒ€ μ€‘ν›„λ°˜ 남성 λͺ©μ†Œλ¦¬λ‘œ 경제 λ‰΄μŠ€ μ‡ΌμΈ λ₯Ό μ˜¬λ¦¬λŠ” 채널이 μžˆλ‹€κ³  ν•΄λ³Όκ²Œμš”. μ˜μƒλ§ˆλ‹€ λ‚΄μš©μ€ 달라도, λ‚˜λ ˆμ΄μ…˜μ€ 늘 같은 λͺ©μ†Œλ¦¬λ‘œ κ°€μ•Ό “이 채널닡닀”λŠ” λŠλ‚Œμ΄ μœ μ§€λ˜μ£ . 이 μ±„λ„μ˜ μ½˜ν…μΈ λ₯Ό CLI둜 μžλ™ν™”μ‹œμΌœλ³΄κ² μŠ΅λ‹ˆλ‹€.

Β 

STEP 1채널 κΈ°λ³Έ λͺ©μ†Œλ¦¬ μ •ν•˜κΈ°

μ±„λ„μ—μ„œ 계속 μ“Έ AI λͺ©μ†Œλ¦¬λŠ” μ²˜μŒμ— ν•œ 번만 정해두면 λΌμš”. 초기 μ„ΈνŒ…μ΄λΌ 맀번 ν•  ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€.
μ΄μ œλΆ€ν„° λ§Œλ“œλŠ” μŒμ„±μ€ λͺ¨λ‘ 처음 μ„ΈνŒ…ν•œ 이 λͺ©μ†Œλ¦¬λ‘œ ν†΅μΌλΌμš”. μ˜μƒμ΄ μˆ˜μ‹­ 편 μŒ“μ—¬λ„ 채널 톀이 흔듀리지 μ•Šμ£ .

cast config set voice-id tc_xxxxxxxx

Β 

STEP 2μ›ν•˜λŠ” λŒ€λ³ΈμœΌλ‘œ μŒμ„± μƒμ„±ν•˜κΈ°

κ·Έλ‹€μŒλΆ€ν„°λŠ” μ˜μƒλ§ˆλ‹€ λŒ€λ³Έλ§Œ λ°”κΏ” λͺ…λ Ήμ–΄ ν•œ 쀄을 μ‹€ν–‰ν•˜λ©΄ λ©λ‹ˆλ‹€. μ•„λž˜ λͺ…λ Ήμ–΄ ν•œ μ€„λ‘œ λ‚˜λ ˆμ΄μ…˜ μŒμ„±(ep1.wav)κ³Ό μžλ§‰(ep1.srt)이 ν•œ λ²ˆμ— μƒμ„±λ©λ‹ˆλ‹€.

cast "였늘 μ½”μŠ€ν”ΌλŠ” 2,600선을 νšŒλ³΅ν–ˆμŠ΅λ‹ˆλ‹€" --out ep1.wav --timestamps-out ep1.srt

λ‹€μŒ νŽΈλ„ λ˜‘κ°™μ•„μš”. λŒ€λ³Έλ§Œ λ³€κ²½ν•΄ 같은 λͺ…λ Ή ν•œ 쀄을 μ‹€ν–‰ν•˜λ©΄ λ©λ‹ˆλ‹€. λͺ©μ†Œλ¦¬λŠ” 이미 μ •ν•΄λ’€μœΌλ‹ˆ 맀번 κ³ λ₯Ό ν•„μš”κ°€ μ—†κ³ μš”. μ˜μƒ ν•œ 편 λ§Œλ“œλŠ” 게 λͺ…λ Ήμ–΄ ν•œ μ€„λ‘œ λλ‚˜λ‹ˆ, μˆ˜μ‹­ νŽΈμ„ λ§Œλ“€μ–΄λ„ 맀번 μ†μœΌλ‘œ ν΄λ¦­ν•˜λ©° λ°˜λ³΅ν•  일이 μ—†μ–΄μš”.

Β 

API 무료둜 μ‹œμž‘ν•˜κΈ° β†’

Β 


Β 

κΈ°μ‘΄ μžλ™ν™”μ— CLIλ₯Ό μ—°λ™ν•˜λ©΄, 더 λ‹¨μˆœν•΄μ Έμš”

이미 μžλ™ν™” μ›Œν¬ν”Œλ‘œλ₯Ό 돌리고 μžˆλ‹€λ©΄, μŒμ„± 생성 단계λ₯Ό CLI둜 연동해 더 λ‹¨μˆœν•˜κ²Œ μ²˜λ¦¬ν•  수 μžˆμ–΄μš”. λͺ…λ Ήμ–΄λΌμ„œ λ”°λ‘œ 연동 μ½”λ“œλ₯Ό 뢙일 ν•„μš”κ°€ μ—†κ±°λ“ μš”. μ“°λŠ” ν™˜κ²½μ— 따라 μ΄λ ‡κ²Œ ν•˜λ©΄ λ©λ‹ˆλ‹€.

Β 

n8nΒ·Make 같은 μžλ™ν™” νˆ΄μ„ μ“°κ³  μžˆλ‹€λ©΄

μ›Œν¬ν”Œλ‘œ ν•œ λ‹¨κ³„μ—μ„œ castλ₯Ό μ‹€ν–‰ν•΄ μŒμ„±μ„ λ§Œλ“€κ³ , κ·Έ νŒŒμΌμ„ λ‹€μŒ λ‹¨κ³„λ‘œ λ„˜κΈ°λ©΄ λ©λ‹ˆλ‹€. μƒˆλ‘œ μ½”λ“œλ₯Ό 뢙일 ν•„μš”κ°€ μ—†μ–΄μš”.

AI μ—μ΄μ „νŠΈ(ClaudeΒ·Cursor λ“±)둜 μž‘μ—…ν•œλ‹€λ©΄

AIκ°€ λ³΅μž‘ν•œ API μ½”λ“œλ₯Ό 짜게 ν•˜λŠ” λŒ€μ‹  cast ν•œ μ€„λ§Œ μ‹€ν–‰ν•˜κ²Œ ν•˜μ„Έμš”. μ§€ 게 짧은 만큼 μ‹€μˆ˜λ„ μ€„μ–΄λ“­λ‹ˆλ‹€. 참고둜 ClaudeΒ·Cursor용 νƒ€μž…μΊμŠ€νŠΈ μŠ€ν‚¬μ΄ ‘AIμ—κ²Œ μ‚¬μš©λ²•μ„ μ•Œλ €μ£ΌλŠ” μͺ½’이라면, CLIλŠ” ‘AIκ°€ μ‹€μ œλ‘œ μ‹€ν–‰ν•˜λŠ” 도ꡬ’μ˜ˆμš”.

Β 


Β 

μ–΄λ–»κ²Œ μ‹œμž‘ν•˜λ‚˜μš”?

μ„€μΉ˜ ν•œ 번, API ν‚€ μ—°κ²° ν•œ 번이면 μ€€λΉ„κ°€ λλ‚˜μš”.

# μ„€μΉ˜ (Homebrew)
brew install neosapience/tap/cast

# API ν‚€ μ—°κ²°
cast login

# 첫 μŒμ„± λ§Œλ“€κΈ°
cast "Hello, world!" --out hello.wav

API ν‚€λŠ” νƒ€μž…μΊμŠ€νŠΈ API μ½˜μ†”μ—μ„œ 무료둜 λ°œκΈ‰λ°›μ„ 수 μžˆμ–΄μš”. λ°œκΈ‰λ°›μ•„ cast login으둜 μ—°κ²°ν•˜λ©΄, μœ„ λͺ…λ Ήμ–΄λ₯Ό λ°”λ‘œ μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.

Β 

μ‡ΌμΈ  μžλ™ν™”,
νƒ€μž…μΊμŠ€νŠΈ API둜 μ‹œμž‘ν•΄λ³΄μ„Έμš”

CLIλ₯Ό ν™œμš©ν•˜λ©΄ λͺ…λ Ήμ–΄ ν•œ μ€„λ‘œ μ—¬λŸ¬λΆ„μ˜ μ½˜ν…μΈ λ₯Ό μžλ™ν™”ν•΄λ³Ό 수 μžˆμ–΄μš”.
무료 API ν‚€λ₯Ό λ°œκΈ‰λ°›μ•„ 첫 λ‚˜λ ˆμ΄μ…˜μ„ λ§Œλ“€μ–΄λ³΄μ„Έμš”.(μ›” 30,000ν¬λ ˆλ”§ 제곡)

API 무료둜 μ‹œμž‘ν•˜κΈ° β†’ CLI λ¬Έμ„œ 보기 β†’

FAQ. 자주 λ¬»λŠ” 질문

 

Q. 코딩을 λͺ°λΌλ„ μ“Έ 수 μžˆλ‚˜μš”? οΌ‹

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” λͺ°λΌλ„ λ©λ‹ˆλ‹€. μ²˜μŒμ— ν•œ 번 μ„€μΉ˜ν•˜κ³  API ν‚€λ₯Ό 연결해두면, κ·Έλ‹€μŒλΆ€ν„°λŠ” 터미널에 cast "ν…μŠ€νŠΈ" --out 파일λͺ….wav ν˜•νƒœλ‘œ μž…λ ₯ν•˜κΈ°λ§Œ ν•˜λ©΄ μŒμ„±μ΄ λ‚˜μ™€μš”. 자주 μ“°λŠ” 섀정은 cast config set으둜 μ €μž₯해두면 λͺ…령이 더 μ§§μ•„μ§€κ³ μš”.

Q. APIΒ·SDKλž‘ 뭐가 λ‹€λ₯Έκ°€μš”? οΌ‹

APIΒ·SDKλŠ” μŒμ„± κΈ°λŠ₯을 직접 λ§Œλ“€μ–΄ μ“°λŠ” μž¬λ£Œμ— κ°€κΉŒμ›Œμš”. ν™˜κ²½μ„ κ°–μΆ”κ³  μ½”λ“œλ₯Ό μž‘μ„±ν•΄ ν˜ΈμΆœλΆ€ν„° μ €μž₯κΉŒμ§€ 직접 ν†΅μ œν•˜μ£ . CLIλŠ” κ·Έ 과정을 미리 λ¬Άμ–΄λ‘” μ™„μ„±ν˜• λ„κ΅¬μž…λ‹ˆλ‹€. μžνŒκΈ°μ— 동전(λͺ…λ Ήμ–΄)을 λ„£κ³  λ²„νŠΌλ§Œ λˆ„λ₯΄λ©΄ μ™„μ„±ν’ˆ(μŒμ„± 파일)이 λ‚˜μ˜€λŠ” κ²ƒμ²˜λŸΌ, λ§Œλ“€ 것 없이 μ‹€ν–‰λ§Œ ν•˜λ©΄ λΌμš”. μ•ˆμ—μ„œλŠ” CLIκ°€ 같은 νƒ€μž…μΊμŠ€νŠΈ APIλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

Q. νƒ€μž…μΊμŠ€νŠΈ Claude μŠ€ν‚¬μ΄λž‘ 같은 κ±΄κ°€μš”? οΌ‹

λ‹€λ¦…λ‹ˆλ‹€. μŠ€ν‚¬μ€ AI μ—μ΄μ „νŠΈμ—κ²Œ νƒ€μž…μΊμŠ€νŠΈ μ‚¬μš©λ²•μ„ μ•Œλ €μ£ΌλŠ” 지식 νŒ¨ν‚€μ§€μ΄κ³ , CLIλŠ” μŒμ„±μ„ μ‹€μ œλ‘œ λ§Œλ“€μ–΄λ‚΄λŠ” μ‹€ν–‰ λ„κ΅¬μ˜ˆμš”. μŠ€ν‚¬μ΄ "무엇을 ν• μ§€"λ₯Ό μ•ˆλ‚΄ν•œλ‹€λ©΄, CLIλŠ” κ·Έκ±Έ "μ‹€μˆ˜ 없이 μ‹€ν–‰"ν•˜λŠ” 역할이라, ν•¨κ»˜ μ“Έ λ•Œ κ°€μž₯ 잘 λ§žμŠ΅λ‹ˆλ‹€.

Q. ν•œ λ²ˆμ— λŒ€λŸ‰μ˜ μŒμ„±μ„ λ³€ν™˜ν•˜λŠ” 것도 κ°€λŠ₯ν•œκ°€μš”? οΌ‹

λ„€. cast config set으둜 κΈ°λ³Έ 섀정을 고정해두면 맀번 μ˜΅μ…˜μ„ μ§€μ •ν•  ν•„μš”κ°€ μ—†κ³ , 같은 λͺ…λ Ή κ·œμΉ™μ„ μ—¬λŸ¬ ν…μŠ€νŠΈμ— μ μš©ν•΄ μŒμ„±μ„ μž‡λ”°λΌ 생성할 수 μžˆμ–΄μš”. μžλ§‰(SRTΒ·VTT)도 ν•¨κ»˜ 받을 수 μžˆμ–΄ μ‡ΌμΈ Β·μ˜€λ””μ˜€λΆμ²˜λŸΌ 양이 λ§Žμ€ μž‘μ—…μ— λ§žμŠ΅λ‹ˆλ‹€.

Q. νƒ€μž…μΊμŠ€νŠΈ APIλŠ” 뭐가 μ’‹μ€κ°€μš”? οΌ‹

νƒ€μž…μΊμŠ€νŠΈλŠ” MRR κΈ°μ€€ κ΅­λ‚΄ 1μœ„ μŒμ„±Β·μ˜μƒ 생성 AI κΈ°μ—…μž…λ‹ˆλ‹€. 핡심 강점은 μ„Έ κ°€μ§€μ˜ˆμš”. β‘  μžμ—°μŠ€λŸ¬μ›€ β€” μ „λ¬Έ μ„±μš° λ…ΉμŒκ³Ό ν…μŠ€νŠΈ λ§₯락을 μ½λŠ” Smart Emotion이 결합돼 μžμ—°μŠ€λŸ¬μš΄ 감정 ν‘œν˜„μ„ λƒ…λ‹ˆλ‹€. β‘‘ λ‹€μ–‘μ„± β€” API κΈ°μ€€ 500개 μ΄μƒμ˜ AI λͺ©μ†Œλ¦¬μ™€ 37개 μ–Έμ–΄λ₯Ό 같은 API둜 ν˜ΈμΆœν•΄ κΈ€λ‘œλ²Œ μ„œλΉ„μŠ€λ‘œ κ·ΈλŒ€λ‘œ ν™•μž₯λ©λ‹ˆλ‹€. β‘’ μ•ˆμ •μ„± β€” 수만 λͺ…이 λ™μ‹œ μ ‘μ†ν•˜λŠ” 라이브 ν™˜κ²½μ—μ„œλ„ λ ˆμ΄ν„΄μ‹œ 없이 λ™μž‘ν•˜λŠ” 게 κ²€μ¦λμŠ΅λ‹ˆλ‹€.

 

μ„Έμƒμ—μ„œ κ°€μž₯ μ‰¬μš΄ μ½˜ν…μΈ  μ œμž‘ 툴 νƒ€μž…μΊμŠ€νŠΈ

κ°„λ‹¨ν•˜κ²Œ ν…μŠ€νŠΈλ§Œ μž…λ ₯ν•˜λ©΄ λˆ„κ΅¬λ‚˜ μ‰½κ²Œ AI 보이슀 생성과 μ˜μƒ μ½˜ν…μΈ  μ œμž‘μ΄ κ°€λŠ₯ν•΄μš”!