Home
Login

다양한 TTS 엔진을 지원하며 낮은 지연 시간과 고품질 오디오 출력을 제공하는 고급 실시간 텍스트 음성 변환 Python 라이브러리입니다.

MITPython 3.2kKoljaBRealtimeTTS Last Updated: 2025-06-17

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 TTS
  • coqui: 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 지원 설치를 권장합니다.

설치 단계

  1. NVIDIA CUDA Toolkit 설치 (버전 11.8 또는 12.X)
  2. NVIDIA cuDNN 설치
  3. ffmpeg 설치
  4. 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는 안정적이고 효율적인 솔루션을 제공할 수 있습니다.

Star History Chart