Home
Login

Eine fortschrittliche Echtzeit-Text-zu-Sprache-Python-Bibliothek, die verschiedene TTS-Engines unterstützt und eine Audioausgabe mit geringer Latenz und hoher Qualität bietet.

MITPython 3.2kKoljaBRealtimeTTS Last Updated: 2025-06-17

RealtimeTTS Projekt – Detaillierte Vorstellung

Projektübersicht

RealtimeTTS ist eine fortschrittliche Echtzeit-Text-zu-Sprache (TTS) Python-Bibliothek, die speziell für Echtzeitanwendungen entwickelt wurde, die eine geringe Latenz und eine hochwertige Audioausgabe erfordern. Die Bibliothek kann Textströme schnell in hochwertige Audioausgaben umwandeln, mit extrem geringer Latenz, was sie ideal für die Erstellung von Sprachassistenten, KI-Dialogsystemen und Barrierefreiheitstools macht.

Projektadresse: https://github.com/KoljaB/RealtimeTTS

Kernfunktionen

1. Verarbeitung mit geringer Latenz

  • Nahezu sofortige Text-zu-Sprache-Konvertierung: Optimierte Verarbeitungsprozesse gewährleisten minimale Latenz.
  • Kompatibel mit LLM-Ausgabe: Kann direkt die Streaming-Ausgabe großer Sprachmodelle verarbeiten.
  • Echtzeit-Stream-Verarbeitung: Unterstützt Echtzeitverarbeitung auf Zeichen- und Satzebene.

2. Hochwertige Audioausgabe

  • Klare und natürliche Sprache: Erzeugt natürlich klingende Sprache, die der menschlichen Sprache nahekommt.
  • Unterstützung verschiedener Audioformate: Unterstützt verschiedene Audioausgabeformate.
  • Konfigurierbare Audioparameter: Anpassbare Parameter wie Abtastrate, Bitrate usw.

3. Unterstützung mehrerer Engines

RealtimeTTS unterstützt verschiedene TTS-Engines und bietet eine große Auswahl:

Cloud-Engines 🌐

  • OpenAIEngine: OpenAI's TTS-Service, bietet 6 hochwertige Stimmen.
  • AzureEngine: Microsoft Azure Sprachdienste, 500.000 kostenlose Zeichen pro Monat.
  • ElevenlabsEngine: Hochwertige Sprachqualität, bietet eine große Auswahl an Stimmen.
  • GTTSEngine: Kostenlose Google Translate TTS, keine GPU erforderlich.
  • EdgeEngine: Kostenloser Microsoft Edge TTS-Service.

Lokale Engines 🏠

  • CoquiEngine: Hochwertige neuronale TTS, unterstützt lokale Verarbeitung und Sprachklonierung.
  • ParlerEngine: Lokale neuronale TTS, geeignet für High-End-GPUs.
  • SystemEngine: Eingebaute System-TTS, schnelle Einrichtung.
  • PiperEngine: Extrem schnelles TTS-System, läuft sogar auf einem Raspberry Pi.
  • StyleTTS2Engine: Stilisierte Sprachsynthese.
  • KokoroEngine: Neue Engine mit Unterstützung für mehrere Sprachen.
  • OrpheusEngine: Neueste hinzugefügte Engine-Option.

4. Mehrsprachige Unterstützung

  • Unterstützt Sprachsynthese in verschiedenen Sprachen.
  • Intelligente Satzsegmentierung und Spracherkennung.
  • Konfigurierbare sprachspezifische Parameter.

5. Robustheit und Zuverlässigkeit

  • Failover-Mechanismus: Automatischer Wechsel zu einer Backup-Engine, wenn ein Problem auftritt.
  • Kontinuierlicher Betrieb gewährleistet: Gewährleistet konsistente Leistung und Zuverlässigkeit für kritische und professionelle Anwendungsfälle.
  • Fehlerbehandlung: Umfassende Fehlerbehandlungs- und Wiederherstellungsmechanismen.

Installationsmethoden

Empfohlene Installation (Vollversion)

pip install -U realtimetts[all]

Benutzerdefinierte Installation

Sie können bestimmte Engine-Unterstützungen nach Bedarf auswählen:

# Nur System-TTS
pip install realtimetts[system]

# Azure-Unterstützung
pip install realtimetts[azure]

# Mehrere Engine-Kombinationen
pip install realtimetts[azure,elevenlabs,openai]

Verfügbare Installationsoptionen

  • all: Vollständige Installation, unterstützt alle Engines.
  • system: Lokale System-TTS (pyttsx3).
  • azure: Azure Sprachdienste-Unterstützung.
  • elevenlabs: ElevenLabs API-Integration.
  • openai: OpenAI TTS-Service.
  • gtts: Google Text-zu-Sprache.
  • edge: Microsoft Edge TTS.
  • coqui: Coqui TTS-Engine.
  • minimal: Nur Kernpaket (für die Entwicklung benutzerdefinierter Engines).

Kernkomponenten

1. Textstromverarbeitung

  • Satzerkennung: Unterstützt NLTK- und Stanza-Tokenizer.
  • Intelligente Segmentierung: Segmentiert Text basierend auf Satzzeichen und Sprachregeln.
  • Stream-Verarbeitung: Unterstützt Zeicheniteratoren und Generatoren.

2. Audiostream-Verwaltung

  • Asynchrone Wiedergabe: Die Methode play_async() unterstützt die nicht-blockierende Wiedergabe.
  • Synchrone Wiedergabe: Die Methode play() wird für die blockierende Wiedergabe verwendet.
  • Stream-Steuerung: Unterstützt Pausen-, Fortsetzungs- und Stopp-Operationen.

3. Callback-System

Bietet umfangreiche Callback-Funktionen zur Überwachung und Steuerung:

  • on_text_stream_start(): Wird beim Start des Textstroms ausgelöst.
  • on_text_stream_stop(): Wird beim Ende des Textstroms ausgelöst.
  • on_audio_stream_start(): Wird beim Start der Audiowiedergabe ausgelöst.
  • on_audio_stream_stop(): Wird beim Ende der Audiowiedergabe ausgelöst.
  • on_character(): Wird bei der Verarbeitung jedes Zeichens ausgelöst.
  • on_word(): Zeitsynchronisation auf Wortebene (unterstützt Azure- und Kokoro-Engines).

Grundlegende Anwendungsbeispiele

Einfache Verwendung

from RealtimeTTS import TextToAudioStream, SystemEngine

# Erstellen Sie Engine und Stream
engine = SystemEngine()
stream = TextToAudioStream(engine)

# Geben Sie Text ein und spielen Sie ihn ab
stream.feed("Hello world! How are you today?")
stream.play_async()

Streaming-Textverarbeitung

# Verarbeitung von Zeichenketten
stream.feed("Hello, this is a sentence.")

# Verarbeitung von Generatoren (geeignet für LLM-Ausgabe)
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)

# Verarbeitung von Zeicheniteratoren
char_iterator = iter("Streaming this character by character.")
stream.feed(char_iterator)

Wiedergabesteuerung

# Asynchrone Wiedergabe
stream.play_async()
while stream.is_playing():
    time.sleep(0.1)

# Synchrone Wiedergabe
stream.play()

# Steuerungsoperationen
stream.pause()   # Pause
stream.resume()  # Fortsetzen
stream.stop()    # Stoppen

Erweiterte Konfiguration

TextToAudioStream Parameter

stream = TextToAudioStream(
    engine=engine,                    # TTS-Engine
    on_text_stream_start=callback,    # Callback beim Start des Textstroms
    on_audio_stream_start=callback,   # Callback beim Start des Audiostroms
    output_device_index=None,         # Audioausgabegerät
    tokenizer="nltk",                # Tokenizer-Auswahl
    language="en",                   # Sprachcode
    muted=False,                     # Stummgeschaltet
    level=logging.WARNING            # Protokollierungsstufe
)

Wiedergabeparameter

stream.play(
    fast_sentence_fragment=True,      # Schnelle Satzfragmentverarbeitung
    buffer_threshold_seconds=0.0,     # Pufferschwelle
    minimum_sentence_length=10,       # Minimale Satzlänge
    log_synthesized_text=False,       # Synthetisierten Text protokollieren
    reset_generated_text=True,        # Generierten Text zurücksetzen
    output_wavfile=None,             # In WAV-Datei speichern
    on_sentence_synthesized=callback, # Callback nach Satzsynthese
    before_sentence_synthesized=callback, # Callback vor Satzsynthese
    on_audio_chunk=callback          # Callback für Audio-Chunk bereit
)

Engine-Spezifische Konfiguration

OpenAI-Engine

from RealtimeTTS import OpenAIEngine

engine = OpenAIEngine(
    api_key="your-api-key",  # Oder Umgebungsvariable OPENAI_API_KEY setzen
    voice="alloy",           # Optional: alloy, echo, fable, onyx, nova, shimmer
    model="tts-1"           # Oder tts-1-hd
)

Azure-Engine

from RealtimeTTS import AzureEngine

engine = AzureEngine(
    speech_key="your-speech-key",    # Oder Umgebungsvariable AZURE_SPEECH_KEY setzen
    service_region="your-region",    # Zum Beispiel: "eastus"
    voice_name="en-US-AriaNeural"   # Azure Sprachname
)

Coqui-Engine (Sprachklonierung)

from RealtimeTTS import CoquiEngine

engine = CoquiEngine(
    voice="path/to/voice/sample.wav",  # Sprachklonierungs-Quelldatei
    language="en"                      # Sprachcode
)

Testdateien

Das Projekt bietet umfangreiche Testbeispiele:

  • simple_test.py: Grundlegende "Hello World"-Demo.
  • complex_test.py: Vollständige Funktionsdemo.
  • coqui_test.py: Lokaler Coqui TTS-Engine-Test.
  • translator.py: Echtzeit-Mehrsprachübersetzung (erfordert die Installation von openai realtimetts).
  • openai_voice_interface.py: Sprachaktivierte OpenAI API-Schnittstelle.
  • advanced_talk.py: Fortgeschrittenes Dialogsystem.
  • minimalistic_talkbot.py: Einfacher Chatbot in 20 Zeilen Code.
  • test_callbacks.py: Callback-Funktionen und Latenztests.

CUDA-Unterstützung

Für eine bessere Leistung, insbesondere bei Verwendung lokaler neuronaler Engines, wird die Installation von CUDA-Unterstützung empfohlen:

Installationsschritte

  1. Installieren Sie das NVIDIA CUDA Toolkit (Version 11.8 oder 12.X).
  2. Installieren Sie NVIDIA cuDNN.
  3. Installieren Sie ffmpeg.
  4. Installieren Sie PyTorch mit CUDA-Unterstützung:
# 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

Anwendungsbereiche

1. KI-Assistenten und Chatbots

  • Echtzeit-Reaktion auf Benutzeranfragen.
  • Natürliche Dialogerfahrung.
  • Mehrsprachige Unterstützung.

2. Barrierefreiheitstools

  • Bildschirmleseprogramme.
  • Visuelle Hilfsmittel.
  • Lernhilfen.

3. Inhaltserstellung

  • Podcast-Produktion.
  • Hörbücher.
  • Bildungsinhalte.

4. Kundenservice

  • Automatisierte Kundendienstsysteme.
  • Telefonroboter.
  • Echtzeit-Übersetzungsdienste.

5. Spiele und Unterhaltung

  • In-Game-Sprache.
  • Virtuelle Charakter-Synchronisation.
  • Interaktive Unterhaltungsanwendungen.

Projekt-Ökosystem

RealtimeTTS ist Teil eines größeren Ökosystems:

  • RealtimeSTT: Passende Speech-to-Text-Bibliothek, die in Kombination ein vollständiges Echtzeit-Audioverarbeitungssystem erstellt.
  • Linguflex: Ursprüngliches Projekt, ein leistungsstarker Open-Source-KI-Assistent.
  • LocalAIVoiceChat: Lokales KI-Sprachdialogsystem basierend auf dem Zephyr 7B-Modell.

Lizenzinformationen

Das Projekt selbst ist Open Source, aber es ist wichtig, die Lizenzbeschränkungen der einzelnen Engines zu beachten:

  • Open-Source-Engines: SystemEngine, GTTSEngine (MIT-Lizenz).
  • Engines mit kommerziellen Einschränkungen: CoquiEngine, ElevenlabsEngine, AzureEngine (kostenlos für nicht-kommerzielle Nutzung).
  • Bezahlte Dienste: OpenAI erfordert einen API-Schlüssel und einen kostenpflichtigen Plan.

Systemanforderungen

  • Python-Version: >= 3.9, < 3.13
  • Betriebssystem: Windows, macOS, Linux
  • Abhängigkeiten: PyAudio, pyttsx3, pydub usw.
  • GPU-Unterstützung: NVIDIA-Grafikkarte für lokale neuronale Engines empfohlen.

Zusammenfassung

RealtimeTTS ist eine leistungsstarke und gut gestaltete Echtzeit-Text-zu-Sprache-Bibliothek, die sich für moderne Anwendungen eignet, die eine hochwertige Sprachsynthese mit geringer Latenz erfordern. Die Unterstützung mehrerer Engines, die robusten Fehlerbehandlungsmechanismen und die umfangreichen Konfigurationsoptionen machen sie zu einer idealen Wahl für die Erstellung professioneller Sprachanwendungen. Ob für persönliche Projekte oder Unternehmensanwendungen, RealtimeTTS bietet eine zuverlässige und effiziente Lösung.

Star History Chart