KoljaB/RealtimeTTSView GitHub Homepage for Latest Official Releases
다양한 TTS 엔진을 지원하며 낮은 지연 시간과 고품질 오디오 출력을 제공하는 고급 실시간 텍스트 음성 변환 Python 라이브러리입니다.
MITPythonRealtimeTTSKoljaB 3.4k Last Updated: July 22, 2025
RealtimeTTS 프로젝트 상세 소개
프로젝트 개요
RealtimeTTS는 낮은 지연 시간과 고품질 오디오 출력이 필요한 실시간 애플리케이션을 위해 설계된 고급 실시간 텍스트 음성 변환(TTS) Python 라이브러리입니다. 이 라이브러리는 텍스트 스트림을 매우 낮은 지연 시간으로 고품질 오디오 출력으로 빠르게 변환할 수 있어 음성 비서, AI 대화 시스템 및 접근성 도구를 구축하는 데 이상적입니다.
프로젝트 주소: https://github.com/KoljaB/RealtimeTTS
핵심 기능
1. 낮은 지연 시간 처리
- 거의 즉각적인 텍스트 음성 변환: 최적화된 처리 흐름으로 최소 지연 시간 보장
- LLM 출력 호환: 대규모 언어 모델의 스트리밍 출력을 직접 처리 가능
- 실시간 스트림 처리: 문자 단위 및 문장 단위의 실시간 처리 지원
2. 고품질 오디오 출력
- 명확하고 자연스러운 음성: 사람의 자연스러운 음성에 가까운 음성 생성
- 다양한 오디오 형식 지원: 다양한 오디오 출력 형식 지원
- 구성 가능한 오디오 파라미터: 샘플링 속도, 비트 전송률 등 파라미터 조정 가능
3. 다중 엔진 지원
RealtimeTTS는 다양한 TTS 엔진을 지원하여 풍부한 선택지를 제공합니다.
클라우드 엔진 🌐
- OpenAIEngine: OpenAI의 TTS 서비스, 6가지 고품질 음성 제공
- AzureEngine: Microsoft Azure 음성 서비스, 매월 50만 무료 문자 제공
- ElevenlabsEngine: 고급 음성 품질, 풍부한 음성 옵션 제공
- GTTSEngine: 무료 Google 번역 TTS, GPU 불필요
- EdgeEngine: Microsoft Edge 무료 TTS 서비스
로컬 엔진 🏠
- CoquiEngine: 고품질 신경 TTS, 로컬 처리 및 음성 복제 지원
- ParlerEngine: 로컬 신경 TTS, 고급 GPU에 적합
- SystemEngine: 내장 시스템 TTS, 빠른 설정
- PiperEngine: 매우 빠른 TTS 시스템, 라즈베리 파이에서도 실행 가능
- StyleTTS2Engine: 스타일화된 음성 합성
- KokoroEngine: 다국어 지원의 새로운 엔진
- OrpheusEngine: 최신 추가 엔진 옵션
4. 다국어 지원
- 다양한 언어의 음성 합성 지원
- 지능적인 문장 분할 및 언어 감지
- 구성 가능한 언어 특정 파라미터
5. 견고성 및 신뢰성
- 장애 조치 메커니즘: 엔진에 문제가 발생하면 자동으로 백업 엔진으로 전환
- 지속적인 실행 보장: 중요하고 전문적인 사용 사례에 대한 일관된 성능 및 신뢰성 보장
- 오류 처리: 완벽한 오류 처리 및 복구 메커니즘
설치 방법
권장 설치 (전체 버전)
pip install -U realtimetts[all]
사용자 정의 설치
필요에 따라 특정 엔진 지원을 선택할 수 있습니다.
# 시스템 TTS만
pip install realtimetts[system]
# Azure 지원
pip install realtimetts[azure]
# 다중 엔진 조합
pip install realtimetts[azure,elevenlabs,openai]
사용 가능한 설치 옵션
all
: 전체 설치, 모든 엔진 지원system
: 로컬 시스템 TTS (pyttsx3)azure
: Azure 음성 서비스 지원elevenlabs
: ElevenLabs API 통합openai
: OpenAI TTS 서비스gtts
: Google 텍스트 음성 변환edge
: Microsoft Edge TTScoqui
: Coqui TTS 엔진minimal
: 핵심 패키지만 (사용자 정의 엔진 개발용)
핵심 구성 요소
1. 텍스트 스트림 처리
- 문장 경계 감지: NLTK 및 Stanza 토크나이저 지원
- 지능적인 분할: 구두점 및 언어 규칙에 따라 텍스트 분할
- 스트리밍 처리: 문자 반복자 및 생성기 지원
2. 오디오 스트림 관리
- 비동기 재생:
play_async()
메서드는 비차단 재생 지원 - 동기 재생:
play()
메서드는 차단식 재생에 사용 - 스트림 제어: 일시 중지, 재개, 중지 작업 지원
3. 콜백 시스템
모니터링 및 제어를 위한 풍부한 콜백 함수 제공:
on_text_stream_start()
: 텍스트 스트림 시작 시 트리거on_text_stream_stop()
: 텍스트 스트림 종료 시 트리거on_audio_stream_start()
: 오디오 재생 시작 시 트리거on_audio_stream_stop()
: 오디오 재생 종료 시 트리거on_character()
: 각 문자 처리 시 트리거on_word()
: 단어 수준의 시간 동기화 (Azure 및 Kokoro 엔진 지원)
기본 사용법 예제
간단한 사용
from RealtimeTTS import TextToAudioStream, SystemEngine
# 엔진 및 스트림 생성
engine = SystemEngine()
stream = TextToAudioStream(engine)
# 텍스트 입력 및 재생
stream.feed("Hello world! How are you today?")
stream.play_async()
스트리밍 텍스트 처리
# 문자열 처리
stream.feed("Hello, this is a sentence.")
# 생성기 처리 (LLM 출력에 적합)
def write(prompt: str):
for chunk in openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
stream=True
):
if (text_chunk := chunk["choices"][0]["delta"].get("content")) is not None:
yield text_chunk
text_stream = write("A three-sentence relaxing speech.")
stream.feed(text_stream)
# 문자 반복자 처리
char_iterator = iter("Streaming this character by character.")
stream.feed(char_iterator)
재생 제어
# 비동기 재생
stream.play_async()
while stream.is_playing():
time.sleep(0.1)
# 동기 재생
stream.play()
# 제어 작업
stream.pause() # 일시 중지
stream.resume() # 재개
stream.stop() # 중지
고급 구성
TextToAudioStream 파라미터
stream = TextToAudioStream(
engine=engine, # TTS 엔진
on_text_stream_start=callback, # 텍스트 스트림 시작 콜백
on_audio_stream_start=callback, # 오디오 스트림 시작 콜백
output_device_index=None, # 오디오 출력 장치
tokenizer="nltk", # 토크나이저 선택
language="en", # 언어 코드
muted=False, # 음소거 여부
level=logging.WARNING # 로그 수준
)
재생 파라미터
stream.play(
fast_sentence_fragment=True, # 빠른 문장 조각 처리
buffer_threshold_seconds=0.0, # 버퍼 임계값
minimum_sentence_length=10, # 최소 문장 길이
log_synthesized_text=False, # 합성된 텍스트 기록
reset_generated_text=True, # 생성된 텍스트 재설정
output_wavfile=None, # WAV 파일로 저장
on_sentence_synthesized=callback, # 문장 합성 완료 콜백
before_sentence_synthesized=callback, # 문장 합성 전 콜백
on_audio_chunk=callback # 오디오 청크 준비 콜백
)
엔진 특정 구성
OpenAI 엔진
from RealtimeTTS import OpenAIEngine
engine = OpenAIEngine(
api_key="your-api-key", # 또는 환경 변수 OPENAI_API_KEY 설정
voice="alloy", # 선택 사항: alloy, echo, fable, onyx, nova, shimmer
model="tts-1" # 또는 tts-1-hd
)
Azure 엔진
from RealtimeTTS import AzureEngine
engine = AzureEngine(
speech_key="your-speech-key", # 또는 환경 변수 AZURE_SPEECH_KEY 설정
service_region="your-region", # 예: "eastus"
voice_name="en-US-AriaNeural" # Azure 음성 이름
)
Coqui 엔진 (음성 복제)
from RealtimeTTS import CoquiEngine
engine = CoquiEngine(
voice="path/to/voice/sample.wav", # 음성 복제 소스 파일
language="en" # 언어 코드
)
테스트 파일
프로젝트는 풍부한 테스트 예제를 제공합니다.
simple_test.py
: 기본 "Hello World" 데모complex_test.py
: 전체 기능 데모coqui_test.py
: 로컬 Coqui TTS 엔진 테스트translator.py
: 실시간 다국어 번역 (설치 필요:openai realtimetts
)openai_voice_interface.py
: 음성 활성화된 OpenAI API 인터페이스advanced_talk.py
: 고급 대화 시스템minimalistic_talkbot.py
: 20줄 코드의 간단한 챗봇test_callbacks.py
: 콜백 기능 및 지연 시간 테스트
CUDA 지원
더 나은 성능, 특히 로컬 신경 엔진 사용 시 CUDA 지원 설치를 권장합니다.
설치 단계
- NVIDIA CUDA Toolkit 설치 (버전 11.8 또는 12.X)
- NVIDIA cuDNN 설치
- ffmpeg 설치
- CUDA를 지원하는 PyTorch 설치:
# CUDA 11.8
pip install torch==2.5.1+cu118 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118
# CUDA 12.X
pip install torch==2.5.1+cu121 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121
활용 시나리오
1. AI 비서 및 챗봇
- 실시간 사용자 쿼리 응답
- 자연스러운 대화 경험
- 다국어 지원
2. 접근성 도구
- 화면 판독기
- 시각 장애 보조
- 학습 보조 도구
3. 콘텐츠 제작
- 팟캐스트 제작
- 오디오북
- 교육 콘텐츠
4. 고객 서비스
- 자동 고객 서비스 시스템
- 전화 로봇
- 실시간 번역 서비스
5. 게임 및 엔터테인먼트
- 게임 내 음성
- 가상 캐릭터 더빙
- 인터랙티브 엔터테인먼트 애플리케이션
프로젝트 생태계
RealtimeTTS는 더 큰 생태계의 일부입니다.
- RealtimeSTT: 함께 제공되는 음성 텍스트 변환 라이브러리, 결합하여 완전한 실시간 오디오 처리 시스템 생성 가능
- Linguflex: 원본 프로젝트, 강력한 오픈 소스 AI 비서
- LocalAIVoiceChat: Zephyr 7B 모델 기반의 로컬 AI 음성 대화 시스템
라이선스 정보
프로젝트 자체는 오픈 소스이지만 각 엔진의 라이선스 제한에 유의해야 합니다.
- 오픈 소스 엔진: SystemEngine, GTTSEngine (MIT 라이선스)
- 상업적 제한 엔진: CoquiEngine, ElevenlabsEngine, AzureEngine (비상업적 사용 무료)
- 유료 서비스: OpenAI는 API 키 및 유료 플랜 필요
시스템 요구 사항
- Python 버전: >= 3.9, < 3.13
- 운영 체제: Windows, macOS, Linux
- 종속성: PyAudio, pyttsx3, pydub 등
- GPU 지원: 로컬 신경 엔진에 NVIDIA 그래픽 카드 권장
요약
RealtimeTTS는 고품질, 낮은 지연 시간의 음성 합성이 필요한 최신 애플리케이션에 적합한 강력하고 잘 설계된 실시간 텍스트 음성 변환 라이브러리입니다. 다중 엔진 지원, 강력한 오류 처리 메커니즘 및 풍부한 구성 옵션은 전문적인 수준의 음성 애플리케이션을 구축하는 데 이상적인 선택입니다. 개인 프로젝트이든 엔터프라이즈급 애플리케이션이든 RealtimeTTS는 안정적이고 효율적인 솔루션을 제공할 수 있습니다.