gTTS(Google Text-to-Speech)를 사용하여 텍스트 파일을 읽어서 MP3 음성 파일을 생성하는 명령형 프로그램입니다.
- 텍스트 파일을 읽어서 MP3 음성 파일로 변환
- 다양한 언어 지원 (한국어, 영어, 일본어, 중국어 등)
- 느린 속도 옵션 지원
- 다양한 문자 인코딩 지원 (UTF-8, CP949)
- 자동 출력 디렉터리 생성
- 상세한 진행 상황 표시
# 저장소 클론 또는 파일 다운로드 후
cd myvoice
# Python 가상환경 생성 및 활성화
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# 또는 .venv\Scripts\activate # Windows
# 의존성 패키지 일괄 설치
pip install -r requirements.txt# 가상환경 활성화
source .venv/bin/activate
# gTTS 패키지 직접 설치
pip install gTTS# 간소한 requirements 파일 사용
pip install -r requirements-simple.txt# 한국어 음성 생성 (기본)
python text_to_speech.py sample_korean.txt output_korean.mp3
# 영어 음성 생성
python text_to_speech.py sample_english.txt output_english.mp3 --lang en
# 느린 속도로 음성 생성
python text_to_speech.py sample_korean.txt output_slow.mp3 --slow
# 하위 디렉터리에 저장
python text_to_speech.py sample_korean.txt voices/korean_voice.mp3python text_to_speech.py [입력파일] [출력파일] [옵션들]
위치 인수:
입력파일 읽을 텍스트 파일 경로
출력파일 생성할 MP3 파일 경로
선택적 옵션:
--lang, -l 음성 언어 코드 (기본값: ko)
--slow, -s 느린 속도로 음성 생성
--encoding, -e 입력 파일의 문자 인코딩 (기본값: utf-8)
--help, -h 도움말 표시| 언어 | 코드 | 언어 | 코드 |
|---|---|---|---|
| 한국어 | ko | 영어 | en |
| 일본어 | ja | 중국어 | zh |
| 스페인어 | es | 프랑스어 | fr |
| 독일어 | de | 이탈리아어 | it |
python text_to_speech.py sample_korean.txt korean_voice.mp3python text_to_speech.py sample_english.txt english_voice.mp3 --lang enpython text_to_speech.py sample_korean.txt slow_korean.mp3 --lang ko --slowpython text_to_speech.py old_korean_text.txt output.mp3 --encoding cp949myvoice/
├── text_to_speech.py # 메인 프로그램
├── requirements.txt # 의존성 패키지 (상세)
├── requirements-simple.txt # 의존성 패키지 (간소)
├── install.sh # 자동 설치 스크립트
├── LICENSE.md # MIT 라이선스 및 서드파티 라이선스
├── README.md # 이 문서
├── .gitignore # Git 제외 파일 목록
├── sample_korean.txt # 한국어 테스트 샘플
├── sample_english.txt # 영어 테스트 샘플
├── .venv/ # Python 가상환경 (자동 생성, Git 제외)
└── *.mp3 # 생성된 음성 파일들 (Git 제외)
gTTS는 완전 무료입니다!
- ✅ 비용 없음: API 키 불필요, 과금 없음
- ✅ 무제한: 공식적인 사용량 제한 없음
- ✅ 추가 비용 없음: 설치 및 사용에 따른 숨겨진 비용 없음
gTTS는 Google Translate의 비공식(undocumented) API를 사용합니다:
-
⚠️ 공식 지원 없음:- Google의 공식 Text-to-Speech 서비스가 아닙니다
- Google Cloud Text-to-Speech와는 다른 서비스입니다
- Google의 정책이나 API 변경으로 인해 언제든지 작동이 중단될 수 있습니다
-
📊 사용 제한:
- API 요청당 최대 100자: 긴 텍스트는 자동으로 분할되어 여러 요청으로 처리됩니다
- Rate Limiting: 과도한 사용 시 일시적으로 차단될 수 있습니다 (명확한 제한값은 공개되지 않음)
- IP 기반 제한: 동일 IP에서 단시간에 많은 요청 시 제한될 수 있습니다
-
🔒 사용 권장 사항:
- ✅ 개인 프로젝트: 학습, 개발, 프로토타입에 적합
- ✅ 소규모 사용: 테스트, 데모, 소량의 음성 생성
⚠️ 상업적 대규모 사용: 권장하지 않음 (Google의 공식 Cloud TTS API 사용 권장)⚠️ 프로덕션 서비스: 서비스 안정성이 보장되지 않으므로 주의 필요
-
🌐 인터넷 연결 필수:
- 모든 변환은 Google 서버를 통해 처리됩니다
- 오프라인에서는 작동하지 않습니다
-
📝 기타 제한사항:
- 파일 크기: 긴 텍스트는 큰 MP3 파일을 생성할 수 있습니다
- 언어 감지: 텍스트와 지정한 언어 코드가 일치해야 자연스러운 음성이 생성됩니다
- 특수문자: 일부 특수문자나 기호는 음성으로 변환되지 않을 수 있습니다
프로덕션 환경이나 대규모 상업적 사용이 필요한 경우:
-
Google Cloud Text-to-Speech API (공식, 유료)
- 월 100만 자까지 무료, 이후 $4/100만 자
- 안정적인 서비스 보장
- 더 많은 음성 옵션 및 커스터마이징
-
Amazon Polly (AWS, 유료)
-
ElevenLabs (고품질, 유료)
- 파일을 찾을 수 없습니다: 입력 파일 경로를 확인하세요.
- 인코딩 오류:
--encoding옵션으로 다른 인코딩을 시도해보세요. - 네트워크 오류: 인터넷 연결을 확인하세요.
- 권한 오류: 출력 디렉터리에 쓰기 권한이 있는지 확인하세요.
프로젝트 버전 관리를 위해 Git을 사용할 수 있습니다:
# Git 저장소 초기화 (이미 완료됨)
git init
# .gitignore 확인 (MP3 파일과 .venv는 자동으로 제외됨)
cat .gitignore
# 현재 상태 확인
git status
# 파일 추가 및 커밋
git add .
git commit -m "Initial commit: Text-to-Speech program"
# GitHub에 업로드 (선택사항)
git remote add origin https://github.com/your-username/myvoice.git
git branch -M main
git push -u origin main.gitignore에 포함된 항목:
*.mp3- 생성된 모든 음성 파일.venv/- Python 가상환경__pycache__/- Python 캐시 파일.DS_Store- macOS 시스템 파일- 기타 IDE 설정 및 임시 파일
python text_to_speech.py --help이 프로젝트는 MIT License로 배포됩니다. 자세한 내용은 LICENSE.md 파일을 참조하세요.
- ✅ 상업적 사용 가능
- ✅ 소스 코드 수정 가능
- ✅ 배포 및 재배포 가능
- ✅ 개인 사용 가능
⚠️ 저작권 및 라이선스 표시 필수⚠️ 무보증 제공
이 프로젝트는 다음 오픈소스 라이브러리를 사용합니다:
- gTTS: MIT License
- requests: Apache License 2.0
- click: BSD-3-Clause License
- certifi: Mozilla Public License 2.0
- urllib3: MIT License
- charset-normalizer: MIT License
- idna: BSD-3-Clause License
모든 의존성 라이브러리는 허용적(permissive) 오픈소스 라이선스를 사용하며 MIT 라이선스와 호환됩니다.