# Microsoft Edge TTS — 한국어 테스트 환경 MeloTTS 의 빌드 의존성(MeCab, Rust, fugashi, mecab-python3, tokenizers)이 계속 깨질 때 사용할 수 있는 **즉시 실행 가능한 대안**. 내부적으로 Microsoft Edge 브라우저의 "소리내어 읽기" 가 쓰는 Azure Neural Voice 엔드포인트를 호출합니다(공식 SDK 가 아닌 커뮤니티 라이브러리 `edge-tts`). ## 왜 이걸 먼저 테스트해보는 게 좋은가 | 항목 | MeloTTS-Korean | Edge TTS | | --- | --- | --- | | 설치 시간 | 5~15분 + 모델 가중치 수백 MB | 30초, 의존성 4개 | | 네이티브 빌드 | MeCab + Rust + PyTorch | 없음 | | Python 버전 | 3.10/3.11 강제 | 3.9+ 어디서나 | | 자연스러움(한국어) | 좋음 | Azure Neural 그대로, 매우 자연 | | 비용 | 무료(MIT) | 무료(비공식 Edge 엔드포인트) | | 지연 | 첫 호출 후 ms 단위 | 200~500ms 정도(네트워크) | | 보이스 수 | 1 (KR) | 9 (남/여/시니어/다국어) | | 안정성 위험 | 자가호스팅 = 본인 책임 | MS 가 정책 바꾸면 끊길 수 있음 | 테스트 우선순위로는 **Edge TTS 를 먼저 들어보고**, 마음에 들면 그대로 채택, "오프라인/내부망/완전 자체 호스팅" 요구가 있으면 MeloTTS Docker 로 진행하는 흐름을 권합니다. ## 설치 & 실행 ```bash # 1. 가상환경 python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate # 2. 의존성 (30초) pip install --upgrade pip pip install -r requirements.txt # 3. 서버 python server.py # 포트 변경: PORT=8001 python server.py (기본 7861) ``` 브라우저: `http://localhost:7861` > MeloTTS 테스트(`melo-test/`, 포트 7860)와 동시에 띄울 수 있도록 기본 포트가 다릅니다. ## API ```http POST /tts Content-Type: application/json { "text": "안녕하세요.", "voice": "ko-KR-SunHiNeural", "rate": "+0%", "pitch": "+0Hz" } ``` 응답: `audio/mpeg` (MP3). 헤더 `X-Synth-Ms` 에 합성 ms. ```http GET /voices ``` 응답: 한국어 보이스 목록(JSON). ## 사용 가능한 한국어 보이스 - `ko-KR-SunHiNeural` — 여, 차분 (디폴트) - `ko-KR-InJoonNeural` — 남, 표준 - `ko-KR-BongJinNeural` — 남, 중후 - `ko-KR-GookMinNeural` — 남, 친근 - `ko-KR-HyunsuMultilingualNeural` — 남, 다국어 - `ko-KR-JiMinNeural` — 여, 밝음 - `ko-KR-SeoHyeonNeural` — 여, 차분 - `ko-KR-SoonBokNeural` — 여, 시니어 여성 - `ko-KR-YuJinNeural` — 여, 표준 ## 주의 - `edge-tts` 는 비공식 라이브러리입니다. Microsoft 가 엔드포인트를 바꾸면 끊깁니다(과거 수년간은 안정적이었음). - 운영 안정성/SLA 가 필요하면 Azure Cognitive Services(유료)로 같은 보이스를 정식 사용할 수 있습니다 — 코드 거의 동일. - 봇에 붙일 때 디스코드 메시지 전체를 다 보내면 텍스트가 외부 서비스에 흘러갑니다. 사내·민감 채널엔 부적합. ## 디스코드 봇 연동 (테스트 성공 후) `src/utils/tts/Edge.ts` 를 추가하고 `src/classes/TTSClient.ts` 의 import 교체. `textToSpeech(text): Promise` 시그니처는 `Chzzk.ts` / `Google.ts` 와 동일하게. ## 참고 - edge-tts (Python): https://github.com/rany2/edge-tts - Azure Neural Voices 목록: https://learn.microsoft.com/azure/ai-services/speech-service/language-support