TTS 제공자 개요
TTS가 체스 학습 방식을 바꾸는 이유
섹션 제목: “TTS가 체스 학습 방식을 바꾸는 이유”주석이 달린 게임을 복기할 때, 눈은 이중으로 일하고 있습니다. 보드 위의 기물을 따라가면서 동시에 해설을 읽어야 합니다. 시선이 보드와 주석 패널 사이를 오가며, 그때마다 순간적으로 포지션을 놓치게 됩니다. 기물을 다시 찾고, 수순을 다시 따라가고, 머릿속에서 그림을 다시 그려야 합니다.
텍스트 음성 변환은 이 문제를 완전히 해결합니다.
TTS를 활성화하면, 게임을 한 수씩 넘기는 동안 주석이 음성으로 전달됩니다. 눈은 보드에 고정됩니다. 나이트가 f3에 착지하는 것을 보면서 왜 그것이 강력한 전개 수인지 음성으로 듣습니다. 폰 구조가 변화하는 것을 보면서 그 뒤에 숨겨진 전략적 아이디어를 해설이 설명해 줍니다. 보드와 해설이 동시에 전달됩니다 — 마치 맞은편에 앉은 코치가 가르쳐 주는 것처럼요.
이는 특히 다음과 같은 상황에서 강력합니다:
- 오프닝 학습 — 포지션이 전개되는 것을 보면서 각 수의 아이디어를 음성으로 들을 수 있습니다
- 게임 복기 — 주석이 달린 자신의 게임을 한 수씩 넘기며 교훈을 자연스럽게 흡수할 수 있습니다
- 엔드게임 연습 — 해설이 안내하는 동안 핵심 칸에 집중할 수 있습니다
- 언어 몰입 — 프랑스어, 독일어, 스페인어, 러시아어, 일본어, 중국어 또는 한국어로 체스를 학습하며, 모든 체스 용어가 올바르게 번역됩니다. “Knight f3, check” 대신 “Cavalier f3, echec”를 들을 수 있습니다. 자신이 사고하는 언어로 게임을 배워보세요.
- 접근성 — 읽는 것보다 듣는 것이 편한 플레이어나, 책상을 떠나서 학습하고 싶은 분들에게 유용합니다
한번 사용해 보면, 음성 없는 주석으로 돌아가는 것은 마치 음소거된 영화를 보는 것 같을 것입니다.
제공자 선택하기
섹션 제목: “제공자 선택하기”En Parlant~에는 다섯 가지 TTS 제공자가 포함되어 있으며, 스튜디오 품질의 음성을 제공하는 클라우드 API부터 인터넷이 전혀 필요 없는 완전 로컬 옵션까지 다양합니다. 시작하는 데 하나만 있으면 됩니다. 아래에 음성 품질이 좋은 순서대로 나열되어 있습니다.
ElevenLabs
섹션 제목: “ElevenLabs”사용 가능한 최고의 음성 품질입니다. ElevenLabs는 진정한 개성을 가진 표현력 있고 인간과 유사한 음성을 생성합니다 — 일부 목소리는 오디오북 내레이터처럼, 다른 목소리는 방송인처럼 들립니다. 수십 가지 고유한 목소리 중에서 선택할 수 있습니다. CJK(일본어, 중국어, 한국어) 발음을 포함한 34개 이상의 언어를 지원하며, 아랍어, 힌디어 및 모든 주요 유럽 언어도 지원합니다.
무료 티어는 월 10,000자를 제공합니다(주석이 달린 게임 25개 분량). 유료 플랜은 월 $5/30,000자부터 시작합니다. 설정은 간단합니다: 계정을 만들고, API 키를 복사해서, En Parlant에 붙여넣으면 됩니다.
인터넷 필요. 음성 품질을 중시하는 분들에게 최적입니다.
Google Cloud TTS
섹션 제목: “Google Cloud TTS”품질, 언어 지원, 가성비의 최적 균형입니다. Google의 WaveNet 신경망 음성은 CJK, 아랍어, 힌디어, 벵골어, 필리핀어, 베트남어 및 모든 주요 유럽 언어를 포함한 30개 이상의 언어에서 자연스럽고 또렷하게 들립니다. 무료 티어가 넉넉합니다 — 월 100만 자로 수백 개의 주석 달린 게임을 처리할 수 있습니다.
설정은 약 5분 소요됩니다: Google Cloud 계정을 만들고, Text-to-Speech API를 활성화하고, API 키를 생성합니다. 무료 티어를 초과하지 않는 한 요금이 부과되지 않습니다(체스 주석으로는 초과하기 매우 어렵습니다).
인터넷 필요. 대부분의 사용자에게 최적입니다.
KittenTTS
섹션 제목: “KittenTTS”완전히 자신의 컴퓨터에서 실행되는 고품질 로컬 AI입니다. 약 25MB의 경량 신경망 모델과 8개의 표현력 있는 목소리(남성 4개, 여성 4개)를 사용합니다. 품질이 놀라울 정도로 좋습니다 — 자연스러운 억양, 또렷한 발음, 진정한 표현력을 갖추고 있습니다.
트레이드오프는 하드웨어입니다: KittenTTS는 CPU 추론을 위해 PyTorch를 사용하므로 최신 멀티코어 프로세서가 필요합니다. 8코어 머신에서는 훌륭하게 들리지만, 오래된 노트북에서는 지연이 느껴질 수 있습니다. 현재 영어만 지원합니다.
각 주석이 처음 음성으로 변환될 때 짧은 생성 지연이 있습니다(빠른 CPU에서 1~2초, 느린 하드웨어에서는 더 길어질 수 있습니다). 이후에는 오디오가 메모리에 캐시되어 즉시 재생됩니다 — 이미 들었던 수를 앞뒤로 이동할 때 지연이 전혀 없습니다. 또한 설정에서 전체 게임을 백그라운드로 미리 캐시할 수 있어, 학습을 시작하기 전에 모든 주석이 준비됩니다.
인터넷 불필요. API 키 불필요. 최고의 로컬 품질입니다.
OpenTTS
섹션 제목: “OpenTTS”Docker를 통해 자신의 컴퓨터에서 실행되는 오픈 소스 TTS 서버입니다. 어떤 데이터도 컴퓨터 밖으로 나가지 않습니다. 여러 TTS 엔진(Larynx, Festival, eSpeak, Coqui-TTS)을 번들로 포함하며, 영어만으로도 75개 이상의 목소리를 제공합니다.
트레이드오프는 음성 품질입니다: 이들은 구형 신경망 및 규칙 기반 엔진이므로 출력이 ElevenLabs나 Google보다 더 기계적으로 들립니다. 유럽 언어(영어, 독일어, 프랑스어, 스페인어, 러시아어, 네덜란드어, 스웨덴어, 이탈리아어 등)에서 가장 잘 작동하며 — CJK는 지원하지 않습니다. 솔직히, 로컬 모델을 설정하는 수고를 감수할 거라면 KittenTTS가 더 적은 번거로움으로 더 나은 품질을 제공합니다. OpenTTS에 대한 상당한 수요가 없는 한, 향후 릴리스에서 폐지할 가능성이 높습니다.
인터넷 불필요. API 키 불필요. 다양한 목소리 옵션과 함께 최대한의 프라이버시를 원하는 분들에게 최적입니다.
System TTS
섹션 제목: “System TTS”운영체제에 내장된 음성 합성입니다. 설치할 것도, API 키도, 서버도 필요 없습니다. 선택하기만 하면 바로 사용할 수 있습니다. 음성 품질은 기본적입니다 — OS 수준 TTS 특유의 로봇 같은 톤이 들릴 것입니다 — 하지만 설정 없이 즉시 작동합니다.
Linux에서는 일반적으로 eSpeak 또는 speech-dispatcher이며, macOS에서는 시스템 음성, Windows에서는 SAPI입니다. 언어 지원은 운영체제에 설치된 음성 팩에 전적으로 의존합니다.
인터넷 불필요. 빠른 테스트에 최적입니다.
제공자 비교
섹션 제목: “제공자 비교”| 제공자 | 유형 | 품질 | 설정 | 언어 |
|---|---|---|---|---|
| ElevenLabs | 클라우드 API | 탁월함 | API 키 | 34개 이상 (CJK 포함) |
| Google Cloud | 클라우드 API | 매우 좋음 (WaveNet) | API 키 | 30개 이상 (CJK 포함) |
| KittenTTS | 로컬 신경망 AI | 좋음 | Python + venv | 영어만 |
| OpenTTS | 로컬 Docker | 보통 | Docker | 유럽 언어만 |
| System (OS 네이티브) | OS 내장 | 기본 | 없음 | OS 의존적 |
하드웨어 참고: 로컬 제공자(KittenTTS 및 OpenTTS)는 CPU에서 신경망 추론을 실행합니다. 눈에 띄는 지연 없이 음성을 생성하려면 최신 멀티코어 프로세서(8코어 이상 권장)가 필요합니다. 컴퓨터에서 또 하나의 체스 엔진을 실행하는 것과 비슷하다고 생각하시면 됩니다. 컴퓨터가 오래되었거나 저사양이라면, 클라우드 제공자 중 하나를 사용하세요.
추천 사항
섹션 제목: “추천 사항”가장 풍부한 음성 품질을 원한다면 ElevenLabs로 시작하세요 — 무료 티어만으로도 충분히 체험할 수 있습니다. 품질과 무료 사용량의 최적 균형을 원한다면, Google Cloud가 월 수백 개의 게임을 처리합니다. 클라우드 의존 없는 고품질 로컬 TTS를 원한다면, 최신 CPU가 있는 경우 KittenTTS가 탁월합니다. 설정 없이 바로 테스트하려면 System TTS가 즉시 작동합니다. 다양한 목소리 옵션과 함께 최대한의 프라이버시를 원한다면, OpenTTS가 Docker를 통해 모든 것을 로컬에서 실행합니다.
설정 참조
섹션 제목: “설정 참조”모든 TTS 설정은 설정 > 사운드에 있습니다:
| 설정 | 기능 |
|---|---|
| Text-to-Speech | 모든 TTS 기능의 마스터 켜기/끄기 스위치 |
| Auto-Narrate on Move | 수를 넘길 때 자동으로 주석을 음성으로 재생 |
| TTS Provider | 다섯 가지 제공자 간 전환 |
| TTS Voice | 제공자별 목소리 선택 |
| TTS Language | 내레이션 언어 — 체스 용어가 자동으로 번역됩니다 |
| TTS Volume | 내레이션 볼륨 |
| TTS Speed | 재생 속도 (0.5x ~ 2x) — 오디오를 다시 생성하지 않고 조절 |
| ElevenLabs API Key | ElevenLabs API 키 (ElevenLabs 사용 시에만 표시) |
| Google Cloud API Key | Google Cloud API 키 (Google 사용 시에만 표시) |
| KittenTTS CPU Threads | 추론용 CPU 스레드 수 (0 = 자동 / 모든 코어 사용) |
| TTS Audio Cache | 캐시된 오디오를 삭제하여 다시 생성하도록 강제 |
지원 언어
섹션 제목: “지원 언어”TTS 내레이션은 완전히 번역된 체스 어휘와 함께 다양한 언어를 지원합니다. 다음은 몇 가지 예시입니다:
| 언어 | 체스 예시 |
|---|---|
| English | Knight f3, check. A strong developing move. |
| Francais | Cavalier f3, echec. Un coup de developpement fort. |
| Espanol | Caballo f3, jaque. Un fuerte movimiento. |
| Deutsch | Springer f3, Schach. Ein starker Entwicklungszug. |
| 日本語 | ナイト f3、チェック。強い展開の手。 |
| Русский | Конь f3, шах. Сильный развивающий ход. |
| 中文 | 马 f3,将军。一步控制中心的强力出子。 |
| 한국어 | 나이트 f3, 체크. 중앙을 지배하는 강력한 전개 수. |
모든 체스 용어 — 기물 이름, “체크”, “체크메이트”, “캐슬링”, “잡기”, “훌륭한 수”와 “블런더” 같은 수 품질 주석 — 가 선택된 언어로 음성 변환됩니다. PGN 파일의 코멘트는 작성된 그대로 읽히므로, 듣고 싶은 언어로 게임에 주석을 달아 보세요.
체스 인식 텍스트 전처리
섹션 제목: “체스 인식 텍스트 전처리”TTS 엔진은 단순히 원본 텍스트를 읽는 것이 아닙니다 — 체스 기보를 이해합니다. 텍스트가 음성으로 변환되기 전에, 전처리 단계에서 PGN 기보를 자연스러운 음성으로 변환합니다:
| PGN 표기 | 음성 출력 |
|---|---|
Nf3 | ”Knight f3” |
Bxe6+ | ”Bishop takes e6, check” |
O-O-O | ”castles queenside” |
e8=Q# | ”e8 promotes to Queen, checkmate” |
Rae1 | ”Rook a e1” (동음이의 구분) |
5.Qxd8+ (코멘트 내) | “5, Queen takes d8, check” |
en prise | ”on preez” (프랑스어 발음) |
Ra8 is hanging | ”Rook on a8 is hanging” |
R vs R | ”Rook versus Rook” |
6...Bf5 (수 번호 점) | “6, Bishop f5” (자연스러운 일시정지, “dot” 없음) |
코멘트는 음성 변환 전에 정리됩니다: [%eval], [%cal], [%csl] 태그가 제거됩니다. NAG 기호와 중복되는 선행 품질 단어도 제거됩니다(?? {BLUNDER. The rook hangs}가 “Blunder. Blunder.”로 더듬거리지 않도록).
모든 내레이션은 최초 생성 후 메모리에 캐시됩니다. 게임을 앞뒤로 이동하면 캐시에서 즉시 재생됩니다 — API 호출도, 재생성 지연도 없습니다. 또한 전체 게임 트리를 백그라운드에서 미리 캐시하여 재생 중 일시정지가 전혀 없도록 할 수 있습니다.
캐시는 provider:voiceId:lang:text를 키로 사용하므로, 목소리나 제공자를 변경하면 별도의 캐시 항목이 생성됩니다. 재생 속도를 변경해도 캐시가 무효화되지 않습니다 — 속도는 오디오 요소에 클라이언트 측에서 적용됩니다.
설정의 Clear Audio Cache 버튼을 사용하면 주석 편집 후 강제로 다시 생성할 수 있습니다.
최고의 경험을 위한 팁
섹션 제목: “최고의 경험을 위한 팁”-
Auto-Narrate를 사용하세요. “Auto-Narrate on Move”를 켜고 화살표 키로 게임을 넘기기만 하면 됩니다. 수를 이동할 때마다 해설이 자연스럽게 전달됩니다 — 마치 어깨 너머에 코치가 있는 것처럼요.
-
자신의 게임에 주석을 달아 보세요. TTS는 자신의 게임에 대한 해설을 들을 때 진정한 빛을 발합니다. 게임에 주석을 달고, 내레이션과 함께 한 수씩 넘겨 보세요. 포지션을 바라보면서 “폰을 잡는 것이 매력적으로 보이지만, 킹 사이드 전체가 아직 잠들어 있습니다”라는 말을 듣는 것은 읽는 것과는 다른 차원의 경험입니다.
-
다양한 속도를 시도해 보세요. 꼼꼼한 학습에는 1x를, 빠른 복기에는 1.3x를 선호하는 플레이어도 있습니다. 속도 슬라이더는 추가 API 문자를 소비하지 않고 실시간으로 재생 속도를 조절합니다.
-
스피커 아이콘을 활용하세요. 수 목록의 모든 코멘트에는 작은 스피커 아이콘이 있습니다. 클릭하면 해당 주석만 음성으로 들을 수 있습니다.
-
언어를 전환하여 체스 어휘를 배워 보세요. 제2외국어로 체스를 공부하고 있다면, TTS 언어를 해당 언어로 설정하세요. 듣기만으로 “Cavalier”(나이트), “echec”(체크), “mat”(체크메이트) 같은 용어를 자연스럽게 익힐 수 있습니다.
TTS에 적합한 주석 작성법
섹션 제목: “TTS에 적합한 주석 작성법”이 가이드라인을 따르면 PGN 주석에서 최고의 음성 내레이션을 얻을 수 있습니다.
코멘트 내 SAN 표기
섹션 제목: “코멘트 내 SAN 표기”표준 SAN 기보를 사용하세요. 전처리기가 자동으로 변환합니다:
"After 7.Nf3, White controls e5"→ “After 7, Knight f3, White controls e5”"The Bg5 pins the knight"→ “The Bishop g5 pins the knight”
주석 기호
섹션 제목: “주석 기호”NAG 기호(!, ??, !? 등)는 자동으로 품질 단어를 생성합니다. 코멘트에서 중복하지 마세요:
- 나쁜 예:
?? {BLUNDER. A terrible move...}— TTS가 “Blunder. Blunder. A terrible move”라고 말합니다 - 좋은 예:
?? {A terrible move...}— TTS가 “Blunder. A terrible move”라고 말합니다
수 번호 점
섹션 제목: “수 번호 점”표준 PGN 표기가 작동합니다: 6...Bf5. 전처리기가 “dot dot dot” 대신 자연스러운 일시정지를 위해 점을 쉼표로 변환합니다.
마침표를 이용한 리듬 조절
섹션 제목: “마침표를 이용한 리듬 조절”마침표는 TTS에서 자연스러운 일시정지를 만듭니다. 구별되는 아이디어 사이에 사용하세요:
{Doubled isolated e-pawns. The f-file is ripped open. The position is strategically won.}화살표와 원
섹션 제목: “화살표와 원”[%cal ...]과 [%csl ...] 태그는 오디오에서 자동으로 제거됩니다. 내레이션에 영향을 주지 않고 시각적 주석으로 자유롭게 사용하세요.
오디오 라이선스
섹션 제목: “오디오 라이선스”En Parlant~를 기반으로 개발하는 분들을 위한 재배포 관련 참고사항입니다:
- ElevenLabs — 생성된 오디오에 대한 모든 권리를 보유합니다(ElevenLabs 이용약관, 섹션 c(ii)). 자유롭게 재배포할 수 있습니다.
- Google Cloud — 생성된 오디오에 대한 모든 지적재산권을 보유합니다. 제한 없습니다.
- KittenTTS, OpenTTS, System TTS — 생성된 오디오에 대한 재배포 제한이 없습니다.
이 기능에 대하여
섹션 제목: “이 기능에 대하여”En Croissant는 Francisco Salgueiro가 만든 오픈 소스 체스 학습 도구입니다. Francisco는 진정으로 특별한 것을 만들었습니다 — 무료이고 강력하며 커뮤니티 주도의 체스 학습 플랫폼 — 그리고 누구나 사용하고, 개선하고, 공유할 수 있도록 GPL-3.0 라이선스로 공개했습니다. 이 TTS 기능은 그 관대함 덕분에 존재합니다. 그가 구축한 기반에 감사하며, 이에 기여할 수 있어 자랑스럽게 생각합니다.
TTS 플러그인은 Red Shed의 Darrell이 Claude Code의 도움을 받아 개발했습니다. 다섯 가지 제공자, 다국어 지원, 다양한 언어에 걸친 번역된 체스 어휘, 로컬 AI 추론, 종속성 관리 — 소스부터 구축하고, 직접 테스트하며, 정성을 담아 기여했습니다.
이것이 오픈 소스의 아름다움입니다. 누군가 훌륭한 것을 만듭니다. 다른 누군가가 거기에 더합니다. 모두가 혜택을 받습니다.
연락하기
섹션 제목: “연락하기”TTS가 어떻게 작동하고 있는지 듣고 싶습니다. 의견, 제안, 피드백은 언제나 환영합니다.
- 아직 지원하지 않는 언어가 필요하신가요? 알려주세요 — 새로운 언어를 빠르게 추가할 수 있습니다.
- 버그를 발견하셨나요? 알려주시면 빠르게 수정하겠습니다.
- 다른 TTS 제공자에 대한 아이디어가 있으신가요? 기꺼이 추가하겠습니다.
- 잘 작동한다고 알려주시는 것만으로도 기쁘게 듣겠습니다.
GitHub에서 이슈를 열거나, **darrell@redshed.ai**로 직접 연락해 주세요.