
ย
AI ์์ฑ์ ์๋น์ค์ ๋ถ์ฌ๋ณด๋ฉดย ํ
์คํธ ๋๋ถ๋ถ์ ์์ฐ์ค๋ฝ๊ฒ ์ฝํ๋๋ค. ๋ฌธ์ ๋ ์ซ์์ ๊ธฐํธ๋ฅผ ์ฝ์ด์ผํ ๋์
๋๋ค. “50,000์”์ด “์ค๋ง์์”์ผ๋ก, “010-1234-5678″์ด ์๋ฆฌ ๊ตฌ๋ถ ์์ด ํ๋ฌ๋์ค๋ ์๊ฐ ์๋ด๊ฐ ์ด์ํด์ง์ฃ .
๋ ์ข์ ๋ชฉ์๋ฆฌ, ๋ ์ข์ ์์ง์ TTS๋ฅผ ๋์
ํด๋ ํด๊ฒฐ๋์ง ์์์. ๋ชฉ์๋ฆฌ๊ฐ ์๋๋ผ ์ซ์๋ฅผ ‘์ฝ๋ ๋ฐฉ์’์ ๋ฌธ์ ๋ผ์, TTS์ ๋ฃ๊ธฐ ์ ์ ํ
์คํธ๋ฅผ ํ ๋ฒ ์ ๋ฆฌํด ์ฃผ๋ ๊ณผ์ (์ ์ฒ๋ฆฌ)์ด ํ์ํฉ๋๋ค.
์ด ์ ๋ฆฌ๋ฅผ ๋์ ํด ์ฃผ๋ ๋๊ตฌ๊ฐ ํ์ ์บ์คํธ์ ์คํ์์ค SDK autotag์ ๋๋ค. ์ค์น๋ง ํ ๋ฒ ํด ๋๋ฉด, ์ ํ๋ฒํธยท๊ธ์กยท๋ ์ง๊ฐ ์ฌ๋์ด ์ฝ๋ ๋ฐฉ์์ผ๋ก ์๋ ์ ๋ฆฌ๋์ด ์์ฐ์ค๋ฌ์ด ์์ฑ์ด ์์ฑ๋ฉ๋๋ค.
์ค๋์ TTS API๋ฅผ ํ์ธต ๋ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ๋๋ก ๋ง๋๋ autotag ์ค์น๋ถํฐ ํ์ ์บ์คํธ API ์ฐ๊ฒฐ๊น์ง ์ธ ๋จ๊ณ๋ก ์๋ดํด๋๋ ค์.
์ด ๊ฐ์ด๋, ์ด๋ฐ ๋ถ๋ค์๊ฒ ์ถ์ฒํฉ๋๋ค
โ TTS ์ฐ๋์ ๋๋๋๋ฐ ์ซ์ยท๊ธฐํธ ๋ฐ์๋ง ์ด์ํด ์๋ณด๊ณ ์ถ์ ๊ฐ๋ฐ์
โ ์ฝ์ผํฐยท์๋ฆผ๋ด์ฒ๋ผ ๊ณ ๊ฐ๋ช ยท๊ธ์กยท๋ฒํธ๋ฅผ ์์ฑ์ผ๋ก ์๋ดํ๋ ์๋น์ค ๋น๋
โ ์ฝ๋ ๋ช ์ค๋ก ๋ฐ๋ก ์ ์ฉ ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ ์ ์ฐพ๋ ๋ถ
ํ์ ์บ์คํธ API ๋ฌด๋ฃ๋ก ์์ํ๊ธฐ โ
AI ๋ชฉ์๋ฆฌ๋ ์ ์ซ์๋ฅผ ์ด์ํ๊ฒ ์ฝ์๊น์?
TTS๋ ์ ๋ ฅ๋ ๊ธ์๋ฅผ ๊ทธ๋๋ก ์๋ฆฌ๋ก ์ฎ๊น๋๋ค. ๊ทธ๋์ “50000์”์ด๋ผ๋ ๋ฌธ์์ด์ “์ค๋ง์์”์ฒ๋ผ ๊ธ์ ๋จ์๋ก ์ฝํ์ฃ . ์ฌ๋์ด๋ผ๋ฉด “์ค๋ง ์”์ผ๋ก ๋์ด ์ฝ์ ํ ์คํธ์ธ๋ฐ๋์.
ํนํ ํ๊ตญ์ด๋ ๊ฐ์ ์ซ์๋ ๋งฅ๋ฝ๋ง๋ค ๋ค๋ฅด๊ฒ ์ฝํ๋๋ค. ์ ํ๋ฒํธ “010”์ “๊ณต ์ผ ๊ณต”, ๊ธ์ก์ “์ค๋ง ์”, “3์ 30๋ถ”์ “์ธ ์ ์ผ์ญ ๋ถ”์ฒ๋ผ ๊ณ ์ ์ด์ ํ์์ด๊ฐ ์์ ๋๋ค. ๊ฒ๋ค๊ฐ ์๋น์ค์ ์ซ์๋ DB์์ ๋งค๋ฒ ๋ค๋ฅธ ๊ฐ์ด ๋ค์ด์ค๊ธฐ ๋๋ฌธ์ ์ฌ๋์ด ์ผ์ผ์ด ๊ณ ์น ์ ์์ฃ . ๊ท์น ๊ธฐ๋ฐ์ผ๋ก ์๋ ์ ๋ฆฌํ๋ ์ ์ฒ๋ฆฌ ๋จ๊ณ๊ฐ ํ์ํ ์ด์ ์ ๋๋ค.
๐ ๊ฐ์ ์ ํ๋ฒํธ, autotag ์ ์ฉ ์ ๊ณผ ํ๋ฅผ ๋ค์ด๋ณด์ธ์
“๊ณ ๊ฐ๋ ๋ฒํธ 010-1234-5678๋ก ์๋ด๋๋ ธ์ต๋๋ค.”
์ ์ฉ ์ ํ์ดํ(-)์ ๋ง์ด๋์ค๋ก, ์ซ์๋ ์๋ฆฌ ๊ตฌ๋ถ ์์ด ์ด์ํ๊ฒ ์ฝํ๋๋ค
์ ์ฉ ํํ ์๋ฆฌ์ฉ ๋๋ฐ๋๋ฐ, ์ฌ๋์ด ๋ฒํธ๋ฅผ ๋ถ๋ฌ ์ฃผ๋ฏ ์ฝํ๋๋ค
์ด๋์, ์๊ฐ๋ณด๋ค ์ฐจ์ด๊ฐ ํฌ์ฃ ? ์ด์ ๋ฐฉ๊ธ ๋ค์ ์ฐจ์ด๋ฅผ ์ง์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. autotag ์ค์น๋ถํฐ ํ์ ์บ์คํธ API ์ฐ๊ฒฐ๊น์ง, ์ธ ๋จ๊ณ๋ฉด ์ถฉ๋ถํฉ๋๋ค.
STEP 1. autotag ์ค์นํ๊ธฐ
autotag๋ MIT ๋ผ์ด์ ์ค ์คํ์์ค์ ๋๋ค. ๋ฐ๋ก ๋น๋ํ ํ์ ์์ด JavaScript๋ npm, Python์ pip๋ก ๋ฐ๋ก ์ค์นํ ์ ์์ต๋๋ค. ํ๊ตญ์ด์ ์์ด๋ฅผ ์ง์ํฉ๋๋ค.
# JavaScript / TypeScript (Node.js 18 ์ด์)
pnpm add @neosapience/typecast-autotag
# ๋๋: npm install @neosapience/typecast-autotag
# Python (3.8 ์ด์)
pip install typecast-autotag
์ค์น ํ ํจ์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
import { autoTag, manualTag, autoTagWithManual } from '@neosapience/typecast-autotag';
STEP 2. autotag ์ ์ฉํ๊ธฐ
autotag๋ก ํ
์คํธ๋ฅผ ์ ๋ฆฌํ๋ ๋ฐฉ์์ ๋ ๊ฐ์ง์
๋๋ค. ํ์์ด ๋ถ๋ช
ํ ๊ฐ์ ์๋(autoTag)์ผ๋ก ์ฒ๋ฆฌํ๊ณ , ์ฝ๋ ๋ฐฉ์์ด ๊ฐ๋ฆฌ๋ ๊ฐ๋ง ์ง์ (manualTag) ์ง์ ํ ์ ์์ด์.
๋ฐฉ๋ฒ 1์๋์ผ๋ก ๊ฐํธํ autoTag
autoTag('์ด ๊ธ์ก์ 50000์์
๋๋ค.', { language: 'ko' });
// โ '์ด ๊ธ์ก์ ์ค๋ง ์ ์
๋๋ค.'
autoTag('์ ํ๋ฒํธ๋ 010-1234-5678์
๋๋ค.', { language: 'ko' });
// โ '์ ํ๋ฒํธ๋ ๊ณต . ์ผ . ๊ณต . ์ผ . ์ด . ์ผ . ์ฌ . ์ค . ์ก . ์น . ํ ์
๋๋ค.'
ํ์ ์บ์คํธ autotag๊ฐ ์๋ ๊ฐ์งํ๋ ํจํด์ ์ ํ๋ฒํธยท๋ ์งยท์๊ฐยท๊ธ์กยท๋น์จยท์จ๋ยท์ฉ๋ ๋ฑ 20์ฌ ๊ฐ์ง์ ๋๋ค. ๋๋ถ๋ถ์ ๋์ ํ ์คํธ๋ ์ด ๋ฐฉ์๋ง์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค.
๋ฐฉ๋ฒ 2์๋์ผ๋ก ์ธ๋ฐํ๊ฒ manualTag
์๋น์ค์ ๋ฐ๋ผ ํํ๋ง์ผ๋ก๋ ์ฝ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ ๊ฐ๋ ์์ต๋๋ค. “1234”๋ “์ฒ์ด๋ฐฑ์ผ์ญ์ฌ”๋ก ์ฝ์ ์๋, ์ฃผ๋ฌธ๋ฒํธ์ฒ๋ผ “์ผ ์ด ์ผ ์ฌ”๋ก ์ฝ์ ์๋ ์์ฃ . ์ฌ๋ ์ด๋ฆ๋ ํ ๋จ์ด๋ก ์ฝ์์ง ๊ธ์๋ง๋ค ๋๋ฐ๋๋ฐ ์ฝ์์ง๋ ์๋์ ๋ฌ๋ ค ์์ต๋๋ค. ์ด๋ ๊ฒ ์ฝ๋ ๋ฐฉ์์ด ๊ฐ๋ฆฌ๋ ๊ฐ์ manualTag๋ก ์ง์ ์ง์ ํ ์ ์์ด์.
manualTag('์ฃผ๋ฌธ๋ฒํธ digits(1234) ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.', { language: 'ko' });
// โ '์ฃผ๋ฌธ๋ฒํธ ์ผ . ์ด . ์ผ . ์ฌ ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.'
manualTag('์๋
ํ์ธ์, name(๊น์ฒ ์)๋.', { language: 'ko' });
// โ '์๋
ํ์ธ์, ๊น . ์ฒ . ์๋.'
์๋ ํ๊ทธ(manualTag)๋ ์ธ ๊ฐ์ง๋ฅผ ์ง์ํฉ๋๋ค.
| ํ๊ทธ | ์ฒ๋ฆฌ ๋ฐฉ์ | ์ฐ๋ ๊ณณ |
|---|---|---|
name() |
์ด๋ฆ์ ๊ธ์๋ณ๋ก ๋๋ฐ๋๋ฐ | ๊ณ ๊ฐ๋ช ์๋ด |
digits() |
์ซ์๋ฅผ ์๋ฆฌ๋ณ๋ก | ์ฃผ๋ฌธยท์นด๋ยท๊ณ์ข๋ฒํธ |
address() |
ํ๊ตญ์ด ์ฃผ์ ์ฝ๊ธฐ | ๋ฐฐ์กยท๋ฐฉ๋ฌธ ์๋ด |
STEP 3. ํ์ ์บ์คํธ API์ ์ฐ๊ฒฐํ๊ธฐ
๋ง์ง๋ง์ ์ฐ๊ฒฐ์ ๋๋ค. autotag๋ก ์ ๋ฆฌํ ํ ์คํธ๋ฅผ ๊ธฐ์กด TTS ํธ์ถ์ ๊ทธ๋๋ก ๋๊ธฐ๊ธฐ๋ง ํ๋ฉด ์์ฑ์ด ๋์ต๋๋ค. ๊ธฐ์กด ์ฝ๋๋ ์๋ ํ์ ์์ด, ์์ autotag ํ ์ค๋ง ์ถ๊ฐํ๋ฉด ๋์ด์์.
import { autoTagWithManual } from '@neosapience/typecast-autotag';
import { TypecastClient } from '@neosapience/typecast-js';
const client = new TypecastClient({ apiKey: 'YOUR_API_KEY' });
// 1) TTS์ ๋ฃ๊ธฐ ์ , ํ
์คํธ ์ ๋ฆฌ (์๋ โ ์๋ ์์๋ก ์ฒ๋ฆฌ)
const rawText = 'name(๊น์ฒ ์)๋, ์ฃผ๋ฌธ๋ฒํธ digits(1234) ์ํ์ด 50000์์ ๊ฒฐ์ ๋์์ต๋๋ค.';
const processedText = autoTagWithManual(rawText, { language: 'ko' });
// 2) ์ ๋ฆฌ๋ ํ
์คํธ๋ก ์์ฑ ํฉ์ฑ
const audio = await client.textToSpeech({
text: processedText,
model: 'ssfm-v30',
voice_id: 'tc_xxxxxxxx'
});
์๋/์๋ ํ๊ทธ๋ฅผ ํ ๋ฒ์ ์ ์ฉํ๊ณ ์ถ์ผ๋ฉด autoTagWithManual ํ ์ค๋ก ์ฒ๋ฆฌํด ๋ณด์ธ์. ์ด์ ‘๊ณ ๊ฐ๋ช
’์ ๋๋ฐ๋๋ฐ, ‘์ฃผ๋ฌธ๋ฒํธ’๋ ์๋ฆฌ๋ณ๋ก, ‘๊ธ์ก’์ “์ค๋ง ์”์ผ๋ก ์ ๋ฆฌ๋ ์์ฑ์ด ์์ฑ๋ ๊ฑฐ์์.
autotag GitHub ๋ณด๊ธฐ โ autotag ๋ฌธ์ ๋ณด๊ธฐ โ
autotag, ์ด๋์ ์ ์ฉํ๋ฉด ํจ๊ณผ๊ฐ ํด๊น์?
autotag๋ ์ฃผ๋ฌธ๋ฒํธยท๊ณ ๊ฐ๋ช ยท๊ธ์ก์ฒ๋ผ ๊ฐ์ด ๋งค๋ฒ ๋ฐ๋๋ ํ ์คํธ๋ฅผ ์์ฑ์ผ๋ก ์๋ดํ๋ ์๋น์ค์์ ํจ๊ณผ๊ฐ ํฝ๋๋ค. ์ฌ๋์ด ๋ฏธ๋ฆฌ ์๋ณผ ์ ์๋ ํ ์คํธ์ผ์๋ก ์๋ ์ ๋ฆฌ๊ฐ ๋น์ ๋ฐํ์ฃ .
๐ AICCยท์ฝ์ผํฐยท์๋ฆผ๋ด
๊ณ ๊ฐ๋ช ยท์ฃผ๋ฌธ๋ฒํธยท๊ฒฐ์ ๊ธ์ก์ ์ค์๊ฐ์ผ๋ก ์ฝ์ด ์ฃผ๋ ์๋ด ์์ฑ. ์ ํํ ๋ฐ์์ด ๊ณง ์๋ด์ ์ ๋ขฐ์ ๋๋ค.
๐ฌ ์ฝํ ์ธ ์๋ํ
๋ด์คยท๋ ์จยท๊ธ์ต์ฒ๋ผ ์ซ์๊ฐ ๋ง์ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฒ๋ฆฌ ์์ด ๋ฐ๋ก ์์ฑ ์ฝํ ์ธ ๋ก ๋ณํํฉ๋๋ค.
๋ฐ๋๋ก ์ซ์ยท๊ธฐํธ๊ฐ ๊ฑฐ์ ์๋ ๋๋ ์ด์ ์ด๋ ์ฌ๋์ด ๋ฏธ๋ฆฌ ๋ค๋ฌ์ ๊ณ ์ ์คํฌ๋ฆฝํธ๋ผ๋ฉด ์ ์ฒ๋ฆฌ ํจ๊ณผ๋ ํฌ์ง ์์ต๋๋ค.
์ซ์๊น์ง ์ฌ๋์ฒ๋ผ ์ฝ๋ AI์์ฑ,
์ง๊ธ ์ ์ฉํด ๋ณด์ธ์
ํ์
์บ์คํธ์ TTS API์ autotag๋ฅผ ํ์ฉํ์ฌ
์์ฐ์ค๋ฌ์ด AI ์์ฑ๊ฒฝํ์ ์์ฑํด๋ณด์ธ์.
AICCยท์ฝ์ผํฐยท์ฝํ
์ธ ์๋ํ๊น์ง ์์ฑ์ด ํ์ํ ์ด๋๋ ์ ์ฉ๊ฐ๋ฅํฉ๋๋ค.
FAQ. ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Q. autotag๋ ๋ฌด์์ด๊ณ , ์ธ์ ์ฐ๋ฉด ์ข๋์? ๏ผ
autotag๋ ์ ํ๋ฒํธยท๊ธ์กยท๋ ์ง์ฒ๋ผ ํ์์ด ์๋ ํ ์คํธ๋ฅผ TTS์ ๋ฃ๊ธฐ ์ ์ ์ฌ๋์ด ์ฝ๋ ๋ฐฉ์์ผ๋ก ์ ๋ฆฌํด ์ฃผ๋ ์คํ์์ค ์ ์ฒ๋ฆฌ SDK์ ๋๋ค. ์ฃผ๋ฌธ๋ฒํธยท๊ณ ๊ฐ๋ช ยท๊ธ์ก์ฒ๋ผ ๊ฐ์ด ๋งค๋ฒ ๋ฐ๋์ด ์ฌ๋์ด ๋ฏธ๋ฆฌ ์๋ณผ ์ ์๋ ํ ์คํธ๋ฅผ ์์ฑ์ผ๋ก ์๋ดํ๋ ์๋น์ค(AICCยท์๋ฆผ๋ดยท์ฝํ ์ธ ์๋ํ)์์ ํนํ ํจ๊ณผ์ ์ ๋๋ค.
Q. TTS๊ฐ ๊ธ์ก์ "์ค๋ง์์"์ฒ๋ผ ์๋ชป ์ฝ์ต๋๋ค. ์ด๋ป๊ฒ ๊ณ ์น๋์? ๏ผ
์์ฑ ํฉ์ฑ ์ ์ autotag์ autoTag๋ก ๋ณํํ๋ฉด "50000์"์ด "์ค๋ง ์"์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค. ๊ท์น์ ์ง์ ์งค ํ์ ์์ด ํจํด์ ์๋ ๊ฐ์งํฉ๋๋ค.
Q. ๊ธฐ์กด TTS ์ฝ๋๋ฅผ ๋ง์ด ๊ณ ์ณ์ผ ํ๋์? ๏ผ
์๋์. ์์ฑ ํฉ์ฑ ํธ์ถ ์์ ํ
์คํธ ๋ณํ ํ ์ค(autoTagWithManual)๋ง ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค. ํธ์ถ ์ฝ๋ ์์ฒด๋ ๊ทธ๋๋ก ๋ก๋๋ค.
Q. TTS ๋ชจ๋ธ์ด ์ด๋ฏธ ์ซ์๋ฅผ ์ ์ฝ์ผ๋ฉด autotag๊ฐ ๊ตณ์ด ํ์ํ ๊น์? ๏ผ
๋จ์ํ ๊ธ์กยท๋ ์ง๋ ๋ชจ๋ธ์ด ์์ฐ์ค๋ฝ๊ฒ ์ฝ๊ธฐ๋ ํฉ๋๋ค. ๋ค๋ง ์ ํ๋ฒํธ ํ์ดํ์ด๋ ์๋ฆฌ๋ณ๋ก ๋๋ฐ๋๋ฐ ์ฝ์ด์ผ ํ๋ ๋ฒํธ์ฒ๋ผ ํ์์ด ๋ชจํธํ ๊ฐ์์๋ ๊นจ์ง ์ ์์ด, ๊ฐ์ด ๋งค๋ฒ ๋ฐ๋๋ ์๋น์ค๋ผ๋ฉด autotag๋ก ๋ฐ์์ ์์ ์ ์ผ๋ก ๋ณด์ฅํ๋ ํธ์ด ์์ ํฉ๋๋ค.
Q. TTS๊ฐ ์ ํ๋ฒํธ๋ ์ฃผ๋ฌธ๋ฒํธ๋ฅผ ํ ์๋ฆฌ์ฉ ์ฝ๊ฒ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์? ๏ผ
์ ํ๋ฒํธ๋ autoTag๊ฐ ์๋์ผ๋ก ์๋ฆฌ๋ง๋ค ๋์ด ์ฝ์ต๋๋ค. ์ฃผ๋ฌธ๋ฒํธ์ฒ๋ผ ์ผ๋ฐ ์ซ์์ ๊ตฌ๋ถ์ด ํ์ํ๋ฉด manualTag์ digits()๋ก ๊ฐ์ธ๋ฉด ๋ฉ๋๋ค.
Q. TTS autotag๋ ์ด๋ค ์ธ์ดยทํ๊ฒฝ์์ ๋์ํ๋์? ๏ผ
ํ๊ตญ์ด์ ์์ด๋ฅผ ์ง์ํ๊ณ , JavaScriptยทPythonยทJavaยทC/C++์์ ์ธ ์ ์์ต๋๋ค. MIT ๋ผ์ด์ ์ค ์คํ์์ค๋ผ ๊ธฐ์กด ์คํ์ ๊ทธ๋๋ก ๋ถ์ผ ์ ์์ต๋๋ค.





