Skip to content

chanlee/myvoice

Repository files navigation

텍스트 음성 변환 프로그램 (Text-to-Speech)

gTTS(Google Text-to-Speech)를 사용하여 텍스트 파일을 읽어서 MP3 음성 파일을 생성하는 명령형 프로그램입니다.

기능

  • 텍스트 파일을 읽어서 MP3 음성 파일로 변환
  • 다양한 언어 지원 (한국어, 영어, 일본어, 중국어 등)
  • 느린 속도 옵션 지원
  • 다양한 문자 인코딩 지원 (UTF-8, CP949)
  • 자동 출력 디렉터리 생성
  • 상세한 진행 상황 표시

설치

방법 1: requirements.txt 사용 (권장)

# 저장소 클론 또는 파일 다운로드 후
cd myvoice

# Python 가상환경 생성 및 활성화
python -m venv .venv
source .venv/bin/activate  # macOS/Linux
# 또는 .venv\Scripts\activate  # Windows

# 의존성 패키지 일괄 설치
pip install -r requirements.txt

방법 2: 개별 패키지 설치

# 가상환경 활성화
source .venv/bin/activate

# gTTS 패키지 직접 설치
pip install gTTS

방법 3: 최소 의존성으로 설치

# 간소한 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.mp3

명령어 옵션

python text_to_speech.py [입력파일] [출력파일] [옵션들]

위치 인수:
  입력파일         읽을 텍스트 파일 경로
  출력파일         생성할 MP3 파일 경로

선택적 옵션:
  --lang, -l      음성 언어 코드 (기본값: ko)
  --slow, -s      느린 속도로 음성 생성
  --encoding, -e  입력 파일의 문자 인코딩 (기본값: utf-8)
  --help, -h      도움말 표시

지원 언어 코드

언어 코드 언어 코드
한국어 ko 영어 en
일본어 ja 중국어 zh
스페인어 es 프랑스어 fr
독일어 de 이탈리아어 it

사용 예시

1. 한국어 텍스트 음성 변환

python text_to_speech.py sample_korean.txt korean_voice.mp3

2. 영어 텍스트 음성 변환

python text_to_speech.py sample_english.txt english_voice.mp3 --lang en

3. 느린 속도로 변환

python text_to_speech.py sample_korean.txt slow_korean.mp3 --lang ko --slow

4. CP949 인코딩 파일 처리

python text_to_speech.py old_korean_text.txt output.mp3 --encoding cp949

파일 구조

myvoice/
├── 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를 사용합니다:

  1. ⚠️ 공식 지원 없음:

    • Google의 공식 Text-to-Speech 서비스가 아닙니다
    • Google Cloud Text-to-Speech와는 다른 서비스입니다
    • Google의 정책이나 API 변경으로 인해 언제든지 작동이 중단될 수 있습니다
  2. 📊 사용 제한:

    • API 요청당 최대 100자: 긴 텍스트는 자동으로 분할되어 여러 요청으로 처리됩니다
    • Rate Limiting: 과도한 사용 시 일시적으로 차단될 수 있습니다 (명확한 제한값은 공개되지 않음)
    • IP 기반 제한: 동일 IP에서 단시간에 많은 요청 시 제한될 수 있습니다
  3. 🔒 사용 권장 사항:

    • 개인 프로젝트: 학습, 개발, 프로토타입에 적합
    • 소규모 사용: 테스트, 데모, 소량의 음성 생성
    • ⚠️ 상업적 대규모 사용: 권장하지 않음 (Google의 공식 Cloud TTS API 사용 권장)
    • ⚠️ 프로덕션 서비스: 서비스 안정성이 보장되지 않으므로 주의 필요
  4. 🌐 인터넷 연결 필수:

    • 모든 변환은 Google 서버를 통해 처리됩니다
    • 오프라인에서는 작동하지 않습니다
  5. 📝 기타 제한사항:

    • 파일 크기: 긴 텍스트는 큰 MP3 파일을 생성할 수 있습니다
    • 언어 감지: 텍스트와 지정한 언어 코드가 일치해야 자연스러운 음성이 생성됩니다
    • 특수문자: 일부 특수문자나 기호는 음성으로 변환되지 않을 수 있습니다

🚀 대규모/상업적 사용을 위한 대안

프로덕션 환경이나 대규모 상업적 사용이 필요한 경우:

  1. Google Cloud Text-to-Speech API (공식, 유료)

    • 월 100만 자까지 무료, 이후 $4/100만 자
    • 안정적인 서비스 보장
    • 더 많은 음성 옵션 및 커스터마이징
  2. Amazon Polly (AWS, 유료)

  3. Microsoft Azure Speech Services (유료)

  4. ElevenLabs (고품질, 유료)

문제 해결

자주 발생하는 오류

  1. 파일을 찾을 수 없습니다: 입력 파일 경로를 확인하세요.
  2. 인코딩 오류: --encoding 옵션으로 다른 인코딩을 시도해보세요.
  3. 네트워크 오류: 인터넷 연결을 확인하세요.
  4. 권한 오류: 출력 디렉터리에 쓰기 권한이 있는지 확인하세요.

Git 사용하기

프로젝트 버전 관리를 위해 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 라이선스와 호환됩니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors