TTS로 발음까지 외우기
최종 수정: 2026-07-14 · 작성: Y-Systems
“TTS를 켜면 좋다”는 말은 절반만 맞습니다. 음성을 켰을 때 얻는 것이 언어마다 완전히 다르기 때문입니다. 중국어는 TTS 없이 외우면 단어의 절반이 아예 기억에 안 들어갑니다. 반면 스페인어는 TTS를 꺼도 발음을 거의 정확히 복원할 수 있습니다. 이 글은 그 온도차를 언어별로 나누고, 각 언어에서 CSV를 어떻게 적어야 하는지, 재생 간격을 몇 초로 둬야 따라 말할 시간이 나오는지를 앱 코드의 실제 규칙과 숫자로 정리합니다.
먼저 결론 — 언어별 TTS 의존도
아래가 이 글의 요약이자 중심입니다. “TTS를 끄면 무엇을 잃는가”를 기준으로 세웠습니다. 별이 많을수록, 음성 없이 눈으로만 외웠을 때 복구가 어려운 손실이 생깁니다.
| 언어 | 철자→발음 예측 | TTS를 끄면 잃는 것 | 의존도 | CSV 발음 표기 |
|---|---|---|---|---|
| 중국어 | 낮음 병음이 있어도 실제 소리와 다름 |
성조 = 의미. 게다가 3성 변조·一·不 변조는 표기에 아예 없음 | ★★★★★ | 넣지 말 것 (한자만) |
| 태국어 | 매우 낮음 | 5성조 + 문자·소리 대응이 복잡. 로마자 표기는 신뢰 불가 | ★★★★★ | 넣지 말 것 (타이 문자만) |
| 영어 | 낮음 | 강세 위치, 묵음, 이철자동음(read/lead/tear) | ★★★★☆ | 동음이철어에만 리스펠링 |
| 프랑스어 | 중간 읽기는 규칙적, 역방향은 불가 |
어말 묵음, 비모음, 리에종(단어 단독으로는 안 나타남) | ★★★★☆ | 표기보다 구(句) 카드 |
| 일본어 | 가나는 규칙적 한자는 예측 불가 |
한자 읽기, 고저 액센트(箸 / 橋) | ★★★★☆ | 괄호 안에 요미가나 (앱이 지원) |
| 러시아어 | 중간 강세가 표기에 없음 |
강세 위치 → 그에 따라 모음 자체가 바뀜(아칸예) | ★★★★☆ | 강세 부호만 (선택) |
| 독일어 | 높음 | 모음 길이, ch의 두 소리, r의 실현 | ★★☆☆☆ | 대개 불필요 |
| 이탈리아어 | 매우 높음 | 거의 없음 (강세 예외 소수) | ★★☆☆☆ | 불필요 |
| 스페인어 | 매우 높음 규칙 3개로 결정됨 |
거의 없음. 표기가 발음을 사실상 100% 결정 | ★☆☆☆☆ | 불필요 |
이 순위는 “표기가 발음을 얼마나 알려주는가” 하나만 놓고 매긴 것입니다. 듣기 훈련·속도 적응 목적이라면 모든 언어에서 TTS가 유용합니다. 스페인어 별 1개는 “TTS가 쓸모없다”가 아니라 “발음을 알아내는 용도로는 덜 필요하다”는 뜻입니다.
왜 온도차가 생기는가 (짧게)
암기법 원리에서 “TTS를 켜면 청각 경로가 하나 더 붙는다”고 한 문장으로 넘어간 대목이 있습니다. 이 글은 거기서 시작합니다. 다만 이중 부호화 이야기를 반복하지는 않겠습니다. 더 중요한 건 인출 단서가 하나 늘어난다는 것보다 이쪽입니다.
단어를 눈으로만 외우면, 머릿속에는 내가 멋대로 읽은 소리가 같이 저장됩니다.
소리를 저장하지 않는 게 아닙니다. 틀린 소리를 저장합니다.
colonel을 “콜로넬”로 읽어 외운 사람에게, 원어민이 말하는 실제 colonel(“커널”)은
아는 단어가 아니라 처음 듣는 단어입니다. 뜻을 완벽히 알아도 청해 점수는 0점입니다.
그리고 이 오류는 지우는 비용이 배우는 비용보다 큽니다. 이미 자리 잡은 발음을 교정하는 것은 빈 상태에서 새로 넣는 것보다 훨씬 오래 걸립니다. TTS는 나중에 켜는 기능이 아니라 처음부터 켜야 하는 기능인 이유가 이것입니다.
언어별 처방
중국어 — 표기가 실제 소리를 알려주지 않는 유일한 경우
중국어를 “★★★★★”에 올린 이유는 성조 때문만이 아닙니다. 성조는 병음에 부호로 적혀 있으니, 그것만이라면 눈으로도 외울 수 있어야 합니다. 문제는 병음에 적힌 성조와 실제로 발음되는 성조가 다르다는 것입니다.
먼저 성조가 의미 그 자체라는 것부터 봅시다. 같은 ma인데 전부 다른 단어입니다.
| 성조 | 병음 | 한자 | 뜻 |
|---|---|---|---|
| 1성 (높고 평평) | mā | 妈 | 엄마 |
| 2성 (올림) | má | 麻 | 삼 / 저리다 |
| 3성 (내렸다 올림) | mǎ | 马 | 말(horse) |
| 4성 (떨어뜨림) | mà | 骂 | 꾸짖다 |
| 경성 | ma | 吗 | 의문 조사 |
실전에서 성조를 놓치면 이런 일이 벌어집니다.
我想问你wǒ xiǎng wèn nǐ — “물어보고 싶어요”
我想吻你wǒ xiǎng wěn nǐ — “키스하고 싶어요” (4성 → 3성 하나 차이)买mǎi 사다 ↔卖mài 팔다 — 정반대 뜻이 3성/4성 하나로 갈립니다.睡觉shuìjiào 자다 ↔水饺shuǐjiǎo 물만두 — 성조를 흘리면 “물만두 하러 갑니다”가 됩니다.
여기까지는 병음을 꼼꼼히 보면 해결됩니다. 진짜 문제는 지금부터입니다.
3성 + 3성 → 2성 + 3성.
你好는 병음으로 nǐ hǎo(3성+3성)라고 적지만,
실제 발음은 ní hǎo(2성+3성)입니다.一: 원래 1성 yī이지만
一个 = yí ge, 一起 = yì qǐ 로 바뀝니다.不: 원래 4성 bù이지만
不是 = bú shì 로 바뀝니다.문제는 표기가 일관되지 않다는 것입니다. 3성 변조(你好)는 병음에 절대 반영되지 않습니다 — 늘
nǐ hǎo로 적고 ní hǎo로 읽습니다.
반면 一·不 변조는 교재마다 다릅니다 — 변조형(yí ge, bú shì)으로 적는 곳도,
원래 성조(yī ge, bù shì)로 적는 곳도 있습니다.
즉 표기를 믿을 수 없습니다. 결국 귀로 확인하는 것 말고는 확실한 방법이 없습니다.
중국어에서 눈으로만 외운 단어가 “반쪽”인 이유가 이것입니다. 표기가 알려주지 않는 층이 하나 더 있고, 그 층은 소리로만 존재합니다. 한국어 화자에게는 사정이 더 나쁩니다. 모국어에 성조가 없어서 성조를 의미를 바꾸는 음소가 아니라 말투나 억양 정도로 처리해버립니다. 의식적으로 소리를 넣어주지 않으면 성조는 기억에 인코딩조차 되지 않습니다.
영어 — 반례가 규칙보다 많은 언어
영어는 철자를 보고 발음을 추측하면 틀리도록 설계된 것처럼 보이는 언어입니다. 역사적으로 여러 언어에서 단어를 빌려오면서 철자는 원어를 남기고 발음만 바뀌었기 때문입니다. 아래는 철자로 추측하면 거의 확실히 틀리는 단어들입니다.
| 단어 | 철자대로 읽으면 | 실제 발음 | 범인 |
|---|---|---|---|
colonel | 콜로넬 | 커–늘 /ˈkɜːrnəl/ | 글자에 없는 r 소리가 남 |
choir | 초이르 | 콰이어 /ˈkwaɪər/ | ch가 /kw/ |
yacht | 야치트 | 야–트 /jɑːt/ | ch 통째로 묵음 |
epitome | 에피톰 | 이–피터미 /ɪˈpɪtəmi/ | 어말 e가 살아있음 + 강세 |
hyperbole | 하이퍼볼 | 하이–퍼벌리 /haɪˈpɜːrbəli/ | 같은 이유 |
awry | 오–리 | 어–라이 /əˈraɪ/ | a+wry 분절 오류 |
quay | 쿠에이 | 키– /kiː/ | 철자 4개가 소리 2개 |
indict | 인딕트 | 인–다이트 /ɪnˈdaɪt/ | c 묵음 |
subtle | 섭틀 | 서–틀 /ˈsʌtl/ | b 묵음 |
그런데 이것들은 사실 TTS가 알아서 해결해줍니다. 영어 음성 엔진은 세상에서 가장 많이 훈련된 음성이고,
위 단어를 그대로 던져주면 전부 정확히 읽습니다. 그러니 영어 카드에는
발음 표기를 넣을 필요가 없습니다. 그냥 colonel,대령이면 충분합니다.
영어에서 TTS가 실패하는 지점은 따로 있습니다. 바로 이철자동음(heteronym)입니다. 철자가 같은데 발음이 둘인 단어들입니다. 단어 하나만 던져주면 TTS는 어느 쪽인지 알 방법이 없습니다.
| 철자 | 발음 A | 발음 B |
|---|---|---|
lead | 리–드 (이끌다) | 레드 (납) |
read | 리–드 (현재) | 레드 (과거) |
tear | 티어 (눈물) | 테어 (찢다) |
wind | 윈드 (바람) | 와인드 (감다) |
live | 리브 (살다) | 라이브 (생방송) |
desert | 데–저트 (사막) | 디–저–트 (버리다) |
record | 레–커드 (명사) | 리–코–드 (동사) |
아래 괄호 규칙에서, 이 문제를 앱 기능으로 강제 해결하는 방법을 다룹니다. 영어에서 괄호를 쓸 이유는 사실상 이것 하나뿐입니다.
프랑스어 — 읽을 수는 있지만, 되돌릴 수는 없다
프랑스어는 오해를 자주 삽니다. “프랑스어는 철자와 발음이 다르다”는 말은 정확하지 않습니다. 프랑스어는 철자 → 발음 방향으로는 상당히 규칙적입니다. 규칙을 배우면 처음 보는 단어도 읽을 수 있습니다. 문제는 발음 → 철자 방향이 거의 불가능하다는 것, 그리고 그 규칙이 한국어 화자의 직관과 정반대라는 것입니다.
가장 강렬한 예를 봅시다.
| 단어 | 글자 수 | 실제 소리 | 남는 것 |
|---|---|---|---|
eaux (물, 복수) | 4 | /o/ | 소리 1개 — 글자 4개가 “오” 하나 |
oiseau (새) | 6 | /wazo/ | 철자 어느 것도 소리와 1:1 대응 안 됨 |
beaucoup (많이) | 8 | /boku/ | 끝의 p 묵음 |
temps (시간) | 5 | /tɑ̃/ | m·p·s 전부 안 남고 비모음만 |
femme (여자) | 5 | /fam/ | e인데 “아” 소리 |
monsieur | 8 | /məsjø/ | 철자와 거의 무관 |
어말 자음은 대체로 묵음입니다 (예외적으로 c·r·f·l은 자주 살아남습니다 — 영어 단어 “CaReFuL”로 외웁니다). 그리고 비모음(/ɑ̃/ /ɛ̃/ /ɔ̃/)은 한국어에 존재하지 않는 소리입니다. 존재하지 않는 소리는 눈으로 익힐 방법이 원리적으로 없습니다. 이건 노력의 문제가 아닙니다.
les(레) + amis(아미) 를 각각 외우면 “레 아미”가 됩니다. 실제로는 /le.za.mi/ “레자미”입니다.
묵음이던 s가 뒤 단어의 모음과 만나 되살아나 /z/로 발음됩니다.문제는 — 단어를 하나씩 읽어주는 TTS는 리에종을 절대 보여주지 못한다는 것입니다.
les 단독은 영원히 “레”입니다.처방: 프랑스어는 단어가 아니라 “구(句)”를 카드로 만드세요.
les amis, vous avez, petit ami 처럼 2~3단어를 한 카드에 넣으면
그제야 TTS가 리에종을 들려줍니다.
일본어 — 한자는 읽기를 알려주지 않는다
일본어는 가나로 적힌 부분은 거의 완벽하게 규칙적입니다. 그 점에서는 스페인어급입니다. 그런데 한자가 섞이는 순간 예측 가능성이 0에 수렴합니다.
한자 하나가 음독·훈독을 합쳐 열 가지 넘게 읽히는 일이 흔합니다.
生 한 글자만 해도 せい·しょう·なま·き·いきる·うまれる·はえる·おう… 입니다.
生憎= あいにく (공교롭게도) — 한자 두 글자 어디에서도 이 읽기가 유추되지 않습니다. 소리에 한자를 나중에 갖다 붙인 아테지(当て字)이기 때문입니다.一日= ついたち(그 달의 1일) 이기도 하고 いちにち(하루) 이기도 합니다. 같은 표기, 다른 읽기, 다른 뜻.明日= あした / あす / みょうにち — 문맥과 격식에 따라 갈립니다.
여기에 고저 액센트가 얹힙니다. 箸(젓가락)와 橋(다리)는
둘 다 はし로 똑같이 적히지만, 음의 높낮이 패턴이 다릅니다.
표기로는 구분이 불가능하고, 귀로만 구분됩니다.
(한국어 화자는 이 차이를 아예 지각하지 못하는 경우가 많습니다.)
生憎(あいにく)라고 적으면 화면에는 한자와 읽기가 모두 보이고, 음성은 あいにく만 읽습니다.
바로 다음 절에서 이 규칙을 자세히 다룹니다.
러시아어 — 강세를 모르면 모음이 무엇인지도 모른다
러시아어에는 두 가지 배신이 겹쳐 있습니다. 짧게 씁니다.
- 강세 위치가 표기에 없습니다. 교재와 사전에만 강세 부호를 찍고, 실제 러시아어 문서에는 찍지 않습니다. 위치는 불규칙하고, 외우는 수밖에 없습니다.
- 강세가 모음의 소리를 바꿉니다(아칸예). 강세 없는
о는 “오”가 아니라 “아”에 가깝게 바뀝니다.молоко(우유)는 철자대로면 “몰로코”지만, 실제로는 /məlɐˈko/ “멀라코–”입니다. 강세를 모르면 어떤 모음이 살아남는지조차 알 수 없습니다.
게다가 강세 위치가 단어를 갈라놓습니다. за́мок(성/궁전)와 замо́к(자물쇠)는
철자가 완전히 같습니다. 단어 하나만 주면 TTS도 어느 쪽인지 모릅니다 —
영어의 이철자동음과 똑같은 문제이고, 해법도 똑같습니다(문맥이 있는 카드).
스페인어 — TTS를 꺼도 되는 이유
정직하게 씁니다. 스페인어 학습자에게 TTS는 “발음을 알아내는 도구”로서는 거의 필요 없습니다. 스페인어는 표기가 발음을 사실상 완전히 결정하기 때문입니다. 아래 강세 규칙 3개만 알면, 처음 보는 단어도 정확히 읽을 수 있습니다.
| 규칙 | 강세 위치 | 예 |
|---|---|---|
| 모음 · n · s 로 끝나면 | 끝에서 두 번째 음절 | ca-sa → CA-sa · co-men → CO-men |
| 그 외 자음으로 끝나면 | 마지막 음절 | ha-blar → ha-BLAR · fe-liz → fe-LIZ |
| 위 두 규칙의 예외 | 반드시 강세 부호로 표시됨 | ca-fé · lá-piz · te-lé-fo-no |
여기에 자모 규칙 몇 개(h는 항상 묵음, ll·ñ, v와 b는 사실상 같은 소리, c+e/i와 z는 지역에 따라 /θ/ 또는 /s/)를 더하면 끝입니다. 예외를 굳이 찾자면 외래어 정도입니다.
앱이 실제로 하는 일 — 코드가 정한 규칙
여기서부터는 일반론이 아니라 VOCA DECK 코드에 실제로 박혀 있는 동작입니다. 이걸 알면 CSV를 훨씬 잘 짤 수 있습니다.
규칙 1 — 괄호가 있으면, A면은 “괄호 안만” 읽습니다
앱의 음성 함수는 카드 텍스트에서 괄호를 먼저 찾습니다.
전각 ()·반각 () 둘 다 인식합니다.
- A면(단어)에 괄호가 있으면 → 괄호 안의 내용만 읽습니다. 괄호 밖은 전혀 읽지 않습니다.
- B면(뜻) → 괄호와 그 안의 내용을 통째로 지우고 나머지만 읽습니다.
- 화면에는 언제나 원문 전체가 그대로 표시됩니다. 지워지는 건 소리뿐입니다.
이 비대칭이 핵심입니다. “보이는 것”과 “들리는 것”을 따로 설계할 수 있다는 뜻이기 때문입니다.
生憎(あいにく),공교롭게도
→ 화면: 生憎(あいにく) (한자와 읽기 둘 다 보임)
→ 소리: あいにく (읽기만 들림)
买,사다(mǎi)
→ 화면: 사다(mǎi) (병음이 눈에 보임)
→ 소리: "사다" (병음은 안 읽힘 — B면은 괄호를 지움)
두 번째 예시를 주목하세요. 병음을 B면 괄호에 넣으면 눈으로는 병음을 확인하면서, 귀로는 병음이 끼어들지 않는 상태가 됩니다. 중국어 학습자에게 이게 가장 좋은 배치입니다.
규칙 2 — 면마다 언어(음성)가 따로입니다
A면과 B면은 서로 다른 음성 로케일로 읽힙니다. 기본값은 A = 일본어(ja-JP), B = 한국어(ko-KR)이고, 고급 설정에서 13개 로케일(en-US · ja-JP · ko-KR · zh-CN · zh-TW · th-TH · es-ES · fr-FR · de-DE · it-IT · pt-PT · ru-RU · nl-NL) 중에 고를 수 있습니다.
CSV를 직접 만들었다면 반드시 고급 설정에서 A면 언어를 먼저 맞추세요. (샘플 암기장을 적용하면 로케일이 자동으로 설정됩니다.)
규칙 3 — 읽기 속도는 0.5 ~ 2.0배로 제한됩니다
A면·B면 각각 0.5배에서 2.0배까지, 0.05 단위로 조절합니다. 이 범위 밖의 값은 코드가 강제로 잘라냅니다.
그리고 여기에 정직하게 적어야 할 한계가 있습니다.
브라우저의 속도 조절은 음높이를 유지한 채 시간만 늘리는 방식입니다.
그래서 0.7배 아래로 내리면 “느린 원어민”이 아니라 “이상한 소리”가 됩니다.
더 중요한 건, 느리게 만들면 실제 발음의 핵심인 축약과 연음이 사라진다는 것입니다.
0.6배로 들은 water는 실전에서 듣게 될 water가 아닙니다.
느리게 듣기는 성조·음소 확인용이지, 실전 청해 연습이 아닙니다.
규칙 4 — 반복 재생은 1~20회, 또는 무한
한 카드에서 같은 음성을 최대 20번까지 반복시킬 수 있고, 무한 반복도 됩니다. 무한 반복은 한 번 다 읽고 0.25초 쉬었다가 다시 시작합니다. 다음 카드로 넘어가거나 TTS를 끄면 즉시 중단됩니다.
무한 반복은 성조 하나를 몸에 새기거나, 안 되는 발음 하나를 붙잡고 늘어질 때 씁니다. 일반 학습에서는 1~2회로 충분합니다.
규칙 5 — 볼륨은 곱셈입니다 (함정)
실제 볼륨은 이렇게 계산됩니다.
실제 볼륨 = (전체 볼륨 ÷ 100) × (그 면의 볼륨 ÷ 100)
전체 50% + A면 50% → 0.5 × 0.5 = 0.25 → 실제 25%
두 슬라이더를 모두 내리면 곱해져서 예상보다 훨씬 작아집니다. “소리가 너무 작다”면 여기부터 확인하세요. 반대로 A면만 크게, B면은 작게 두는 식으로 쓰면 유용합니다 (외국어는 크게 듣고, 한국어 뜻은 배경음처럼).
규칙 6 — 무엇을 읽을지 고를 수 있습니다
A면만 / B면만 / 둘 다 중에서 고릅니다. 대부분의 학습자는 “A면만”이 맞습니다. 한국어 뜻까지 음성으로 들을 이유는 거의 없고, 한국어 음성이 끼어들면 외국어 소리에 집중이 깨집니다. B면 음성을 켤 이유는 “뜻→단어” 방향으로 산출 연습을 할 때 정도입니다.
여기에 “음성만” 모드가 별도로 있습니다. 켜면 화면 글자가 사라지고 소리만 남습니다. 이건 사실상 받아쓰기(딕테이션) 모드입니다. 철자에 의존하지 않고 소리만으로 뜻을 떠올리는 훈련이 되고, “봐서 아는 것”과 “떠올릴 수 있는 것”을 착각하는 문제를 정면으로 깨뜨립니다. 눈을 감고 하는 인출 연습이라고 생각하면 됩니다.
CSV에 발음을 적을 것인가, TTS에 맡길 것인가
가장 많이 받는 질문입니다. 그리고 정답이 언어마다 다릅니다. 위의 괄호 규칙과 각 언어의 성질을 조합하면 답이 나옵니다.
| 언어 | 답 | 이렇게 쓰세요 |
|---|---|---|
| 일본어 | 괄호에 요미가나 | 生憎(あいにく),공교롭게도한자를 그냥 주면 음성 엔진이 문맥 없이 읽기를 추측하다 틀립니다. 괄호가 정답을 강제합니다. |
| 영어 | 대부분 불필요. 단, 이철자동음만 리스펠링 |
lead(leed),이끌다lead(led),납카드를 2장으로 나누고, 괄호로 발음을 강제합니다. |
| 중국어 | A면 괄호 금지. 병음은 B면 괄호로 |
买,사다(mǎi)A면 괄호에 병음을 넣으면 중국어 음성이 로마자를 읽으려 하다 망가집니다. 한자만 주면 정확히 읽습니다. |
| 프랑스어 | 표기 대신 구(句) 카드 | les amis,친구들단어 단독으로는 리에종이 나타나지 않습니다. |
| 러시아어 | 불필요 (강세 부호만 선택적) | молоко,우유 |
| 스페인어 · 이탈리아어 | 불필요 | hablar,말하다 |
colonel(ˈkɜːrnəl),대령 처럼 쓰면, 규칙 1에 따라 음성 엔진에 “ˈkɜːrnəl”이라는 문자열이 그대로 전달됩니다.
엔진은 IPA 특수문자(ɜ · ə · ː)를 읽지 못합니다. 침묵하거나, 문자 이름을 읽거나, 깨진 소리를 냅니다.
IPA는 사람이 읽는 기호이지 음성 엔진이 읽는 기호가 아닙니다.발음기호를 눈으로 보고 싶다면 B면 괄호에 넣으세요. 그러면 화면에는 보이고 소리에서는 빠집니다.
apple(애플),사과 — 한국인이 가장 하기 쉬운 실수입니다.
A면 로케일이 en-US인 상태에서 괄호 안 “애플”이 영어 음성에 전달됩니다.
영어 음성은 한글을 못 읽습니다. 그리고 규칙 1 때문에 괄호 밖의 “apple”은 아예 읽지 않습니다.
결과: 아무 소리도 안 납니다.한글 발음 표기는 애초에 목표가 잘못됐습니다. “애플”은 apple의 발음이 아닙니다. 한국어에 없는 소리를 한글로 적는 순간 틀린 발음을 저장하게 됩니다. 그게 이 글이 처음부터 말한 바로 그 손실입니다.
一日(ついたち)と一日(いちにち) 같은 카드는 ついたち만 읽힙니다.
한 카드에 괄호는 하나만. 읽기가 둘이면 카드를 둘로 나누세요
(“한 카드에 한 개념만” 원칙과 정확히 같은 결론입니다).
섀도잉 — 재생 간격을 몇 초로 둘 것인가
섀도잉은 들은 소리를 즉시 따라 말하는 연습입니다. TTS의 가치가 최대가 되는 지점이고, 대부분의 사람이 실패하는 지점이기도 합니다. 이유는 단순합니다 — 따라 말할 시간이 없어서입니다. 기본 간격 3초로 자동 재생을 돌리면, 음성이 끝나자마자 다음 카드로 넘어가 버립니다.
그래서 시간을 계산해서 넣어야 합니다. 한 카드의 A면에 필요한 시간은 이렇게 구성됩니다.
A면 필요 시간
= 음성 재생 시간 × 반복 횟수
+ 내가 반응하는 데 걸리는 시간 (약 0.3 ~ 0.5초)
+ 내가 따라 말하는 시간 (≒ 음성 재생 시간)
+ 여유 (약 0.5초)
정직하게 밝힙니다 — 이 중에서 코드가 정한 값은 “재생 간격·속도·반복 횟수”뿐입니다. “반응 시간 0.3~0.5초”, “음절당 0.25~0.35초” 같은 값은 측정치가 아니라 실사용에 기반한 어림값입니다. 정확한 숫자로 받아들이지 말고 출발점으로 쓰세요. 본인 속도에 맞춰 조정하는 게 맞습니다.
영어 단어 하나(2음절)의 음성은 1.0배 속도에서 대략 0.6~0.8초입니다. 짧은 예문(6~8단어)이면 대략 2.5~3.5초입니다. 계산해봅시다.
| 상황 | 계산 | 필요 시간 | 3초로 되나? |
|---|---|---|---|
| 단어 1회 재생 + 따라 말하기 | 0.8 + 0.4 + 0.8 + 0.5 | ≈ 2.5초 | 됩니다 (기본값이 우연히 적절) |
| 단어 2회 재생 + 따라 말하기 | 0.8×2 + 0.4 + 0.8 + 0.5 | ≈ 3.3초 | 안 됩니다 — 잘립니다 |
| 예문 1회 + 따라 말하기 | 3.0 + 0.4 + 3.0 + 0.5 | ≈ 7초 | 턱없이 부족 |
그래서 앱에는 A면·B면 지연시간을 따로 조절하는 값이 있습니다. 제어판의 기본 간격은 그대로 두고, A면에만 시간을 더 주는 방식입니다 (0으로 두면 기본 간격과 동일). 섀도잉은 A면에서만 하므로, B면 시간을 늘릴 이유는 없습니다.
목적별 권장 조합입니다. 그대로 쓰지 말고 출발점으로 삼으세요.
| 목적 | 속도 | 반복 | A면 총 시간 | 왜 |
|---|---|---|---|---|
| 첫 노출 (소리 각인) | 1.0× | 2회 | 5초 | 두 번 듣고 한 번 따라 말할 여유 |
| 섀도잉 (단어) | 0.9× | 1회 | 4초 | 한 번 듣고 즉시 따라 말하기 |
| 섀도잉 (예문) | 0.85× | 1회 | 7~8초 | 문장은 따라 말하는 데 시간이 든다 |
| 성조 훈련 (중국어) | 0.7× | 3회 | 6초 | 느리면 성조 윤곽이 벌어져 들린다. 0.7 아래로는 내리지 말 것 |
| 청해 속도 적응 | 1.3~1.5× | 1회 | 3초 | 실전 속도에 귀를 맞춘다 |
| 복습 스캔 (아는 단어) | 1.5× | 1회 | 2초 | 빠르게 훑으며 구멍만 찾기 |
브라우저 TTS의 한계 — 정직하게
여기가 이 글에서 가장 중요한 부분입니다. 브라우저 음성 합성은 공짜이고 설치가 필요 없다는 압도적 장점이 있지만, 대가가 있습니다. 알고 쓰는 것과 모르고 쓰는 것은 다릅니다.
① 기기마다 음성이 다릅니다 — 이게 가장 큰 한계입니다
앱은 음성을 만들지 않습니다. 기기에 이미 설치된 음성을 빌려 쓸 뿐입니다. 그래서 똑같은 CSV, 똑같은 설정인데 폰에서는 자연스럽고 PC에서는 로봇처럼 들립니다.
| 환경 | 상황 |
|---|---|
| iPhone / Mac | 고품질 음성이 내장. 다만 언어에 따라 설정에서 따로 내려받아야 할 수 있습니다. |
| Android / Chrome | 대체로 품질이 좋습니다. 단 언어팩이 없으면 그 언어 음성이 아예 존재하지 않습니다. |
| Windows + Edge | 고품질 온라인 음성을 씁니다. 가장 좋은 조합인 경우가 많습니다. |
| Windows + Chrome | 구형 로컬 음성만 노출되는 경우가 많아 눈에 띄게 로봇 같습니다. |
그래서 앱은 로케일마다 음성을 직접 고르는 기능을 둡니다. 기본값은 “자동”(브라우저가 알아서 선택)입니다. 소리가 마음에 안 들면 자동을 버리고 목록에서 직접 고르세요. 대개 훨씬 나은 음성이 숨어 있습니다.
② 새로고침하면 TTS가 항상 꺼져 있습니다 (버그가 아닙니다)
앱은 의도적으로 TTS 상태를 저장하지 않습니다. 다른 설정은 다 저장하는데 이것만 안 합니다. 브라우저가 사용자 상호작용 없이는 소리를 내지 못하게 막기 때문입니다. 만약 켜진 상태로 저장해두면, 페이지를 열자마자 앱이 소리를 내려다 브라우저에 차단당하고, 사용자는 “켜져 있는데 소리가 안 나는” 최악의 상태를 만나게 됩니다.
그래서 항상 꺼진 채로 시작합니다. 여러분이 TTS 체크박스를 누르는 그 클릭이 곧 브라우저의 소리 잠금을 푸는 열쇠입니다. 매번 직접 켜야 하는 건 불편이지만, 대안이 더 나쁩니다.
③ 음성 목록이 늦게 도착합니다
브라우저는 사용 가능한 음성 목록을 비동기로 불러옵니다. 페이지를 막 열었을 때 음성 선택 목록이 비어 보일 수 있습니다. 앱은 목록이 도착하면 자동으로 갱신하지만, 설정 창이 비어 있으면 잠깐 기다렸다 다시 열어보세요.
④ 오프라인에서는 음성이 바뀌거나 사라집니다
로컬 음성은 오프라인에서도 동작하지만, 고품질 음성 중 상당수는 클라우드 기반이라 네트워크가 필요합니다. 비행기에서 갑자기 목소리가 로봇으로 바뀌거나 아예 안 나오는 이유가 이것입니다. 앱과 단어장 자체는 오프라인에서도 정상 동작합니다(브라우저에만 저장되므로). TTS만 OS와 네트워크에 달려 있습니다.
⑤ 단어 하나에는 문맥이 없습니다
이미 여러 번 나온 문제이고, 구조적으로 해결이 안 됩니다.
영어 read, 중국어 行(xíng 가다 / háng 줄·은행),
러시아어 замок(성 / 자물쇠) — TTS는 추측할 수밖에 없고, 자주 틀립니다.
해법은 하나뿐입니다: 문맥을 카드에 넣는 것. 괄호로 발음을 강제하거나, 예문을 A면에 넣거나 둘 중 하나입니다. 이건 TTS의 한계이지 설정으로 고칠 수 있는 문제가 아닙니다.
⑥ 단어 단독 발음은 “사전형”입니다 — 실전 발음이 아닙니다
이게 가장 과소평가된 한계입니다. TTS가 단어 하나를 읽을 때 나오는 소리는 또박또박한 사전형(citation form)입니다. 그런데 실제 회화에서 단어는 그렇게 발음되지 않습니다.
- 약형(weak form) —
to는 “투–”가 아니라 /tə/ “터”,can은 “캔”이 아니라 /kən/ “컨”으로 뭉개집니다. - 연음과 축약 —
want to→ “워너”,going to→ “거너”. - 탄설음화 — 미국 영어의
water는 t가 /d/에 가깝게 바뀝니다.
TTS로 단어를 완벽히 외운 사람이 원어민 대화를 한 마디도 못 알아듣는 일이 흔한 이유가 이것입니다. 단어 카드로 배운 소리와 실전에서 흘러가는 소리는 다릅니다. 단어 TTS는 “발음의 출발점”을 잡아줄 뿐, 청해를 완성해주지 않습니다. 완성은 실제 콘텐츠(드라마·팟캐스트·강의)가 합니다. 이 앱이 그걸 대신할 수는 없습니다.
⑦ TTS는 입력만 줍니다 — 내 발음이 맞는지는 아무도 안 알려줍니다
섀도잉의 근본적인 한계입니다. 정확한 소리를 들려주는 것과, 내가 낸 소리가 맞는지 확인하는 것은 완전히 다른 일입니다. 앱은 후자를 하지 못합니다. 여러분이 틀리게 따라 말해도 아무도 지적하지 않습니다. 그리고 사람은 자기 발음을 스스로 정확히 듣지 못합니다.
보완책은 앱 바깥에 있습니다 — 폰으로 자기 목소리를 녹음해서 TTS와 번갈아 들어보세요. 이 한 가지만 해도 스스로는 절대 못 느끼던 차이가 들립니다. 가능하다면 사람에게 확인받는 게 가장 확실합니다.
정리
TTS는 “켜면 좋은 부가 기능”이 아니라, 언어에 따라 “안 켜면 반쪽만 외우는” 기능입니다.
- 중국어·태국어 — TTS 없이 외우면 단어의 절반(성조)이 기억에 안 들어갑니다. 음성 품질까지 챙기세요.
- 영어·프랑스어·일본어·러시아어 — 표기가 발음을 배신합니다. TTS가 틀린 발음의 저장을 막아줍니다.
- 스페인어·이탈리아어 — 표기만으로 발음이 나옵니다. TTS는 발음용이 아니라 속도 적응용으로 쓰세요.
- CSV 표기 — 일본어는 괄호에 요미가나, 영어는 이철자동음만 리스펠링, 중국어는 A면 괄호 금지·병음은 B면에. IPA와 한글 발음은 절대 괄호에 넣지 마세요.
- 섀도잉 — 입을 열 거면 A면 시간을 4~5초(예문은 7~8초)로. 입을 안 열 거면 3초로 두고 많이 도세요.
이 글의 앱 동작·설정 범위·계산 규칙(속도 0.5~2.0배, 반복 1~20회, 볼륨 곱셈, 괄호 처리, 13개 로케일)은 VOCA DECK의 실제 코드에서 가져온 값입니다.
반면 “음절당 0.25~0.35초”, “반응 시간 0.3~0.5초”, 목적별 권장 조합은 측정된 연구 결과가 아니라 실사용에 기반한 어림값입니다. 개인차가 크므로 출발점으로만 쓰세요.
언어별 발음 설명은 표준어(보통화·도쿄 방언·표준 프랑스어 등) 기준이며, 지역 변이·방언은 다를 수 있습니다. 그리고 브라우저 TTS는 원어민이 아닙니다. 시험이나 중요한 자리에서의 발음은 사전의 음성과 실제 원어민 자료로 반드시 교차 확인하세요.