.. note:: Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauche gemeinsam mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein. **Warum beitreten?** - **Expertenunterstützung**: Lösen Sie nach dem Kauf auftretende Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams. - **Lernen & Teilen**: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern. - **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugriff auf neue Produktankündigungen und exklusive Einblicke. - **Spezielle Rabatte**: Profitieren Sie von exklusiven Rabatten auf unsere neuesten Produkte. - **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Verlosungen und Feiertagsaktionen teil. 👉 Bereit, mit uns zu entdecken und zu kreieren? Klicken Sie auf [|link_sf_facebook|] und treten Sie noch heute bei! .. _py_tts: 16. TTS (Text-to-Speech) ============================================== Dieses Beispiel zeigt, wie das TTS-Modul (Text-to-Speech) verwendet wird, um PiCrawler sprechen zu lassen. Es unterstützt zwei Engines: **Piper** (hochwertiges neuronales TTS) und **Espeak** (leichtgewichtiges klassisches TTS). Geben Sie einen beliebigen Text ein und der Roboter liest ihn laut vor. **Code ausführen** .. raw:: html .. code-block:: cd ~/picrawler/examples sudo python3 16_tts.py Nach dem Start des Programms werden der Engine-Typ und das Modell angezeigt. Geben Sie einen beliebigen Satz ein und drücken Sie **Enter** — der Roboter spricht ihn. Geben Sie ``quit`` ein, um das Programm zu beenden, oder drücken Sie **Strg+C**. **Code** .. note:: Sie können den folgenden Code **Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen**. Navigieren Sie dazu zum Quellcode-Pfad wie ``picrawler\examples``. Nach dem Ändern des Codes können Sie ihn direkt ausführen, um das Ergebnis zu sehen. .. raw:: html .. code-block:: python #!/usr/bin/env python3 from robot_hat.tts import Piper, Espeak # Text-to-Speech-Demo mit dem robot_hat TTS-Modul # Strg+C zum Beenden # Setzen Sie USE_PIPER=True für hochwertiges neuronales TTS (Piper), False für Espeak USE_PIPER = True # Piper-Modell: "en_US-ryan-low" (Englisch), "zh_CN-huayan-x_low" (Chinesisch) # Für Deutsch: "de_DE-thorsten-medium" siehe |link_piper_voice| TTS_MODEL = "en_US-ryan-low" def main(): print("=== PiCrawler Text-to-Speech Demo ===") if USE_PIPER: print(f"Engine: Piper ({TTS_MODEL})") tts = Piper(model=TTS_MODEL) else: print("Engine: Espeak") tts = Espeak() print("Text zum Sprechen eingeben, oder 'quit' zum Beenden") print() try: while True: text = input("Text zum Sprechen: ").strip() if text.lower() == 'quit': break if text: print(f"Spreche: {text}") tts.say(text) except KeyboardInterrupt: print("\nBeenden...") if __name__ == "__main__": main() **Wie funktioniert es?** #. Zwei verfügbare TTS-Engines .. code-block:: python from robot_hat.tts import Piper, Espeak Das ``robot_hat``-Paket bietet zwei TTS-Engines: - **Piper**: Eine neuronale netzwerkbasierte Engine, die natürliche, hochwertige Sprache erzeugt. Benötigt eine Sprachmodell-Datei. - **Espeak**: Eine leichtgewichtige, regelbasierte Engine, die mit minimalen Ressourcen läuft. #. Auswahl von Engine und Modell .. code-block:: python USE_PIPER = True TTS_MODEL = "en_US-ryan-low" Setzen Sie ``USE_PIPER`` auf ``True`` für Piper oder ``False`` für Espeak. Bei Verwendung von Piper wählt ``TTS_MODEL`` die Stimme aus. Gängige Modelle: - ``"en_US-ryan-low"`` — Amerikanisch-englische Männerstimme - ``"zh_CN-huayan-x_low"`` — Chinesische Frauenstimme - ``"de_DE-thorsten-medium"`` — Deutsche Männerstimme (siehe |link_piper_voice|) #. Erstellen der TTS-Instanz .. code-block:: python if USE_PIPER: tts = Piper(model=TTS_MODEL) else: tts = Espeak() Je nach ``USE_PIPER``-Flag wird die entsprechende Engine instanziiert. Beide Engines teilen dieselbe ``say()``-Schnittstelle, sodass ein Wechsel der Engine keine weiteren Codeänderungen erfordert. #. Die Eingabeschleife .. code-block:: python while True: text = input("Text zum Sprechen: ").strip() if text.lower() == 'quit': break if text: print(f"Spreche: {text}") tts.say(text) Das Programm fordert Sie zur Texteingabe auf: - Geben Sie einen beliebigen Satz ein und drücken Sie **Enter**, um den Roboter sprechen zu lassen. - Geben Sie ``quit`` ein, um die Schleife zu beenden. - Drücken Sie jederzeit **Strg+C**, um zu unterbrechen. #. Vergleich mit STT Diese Lektion ist die Ergänzung zu :ref:`py_stt`. Zusammen bilden STT (Spracherkennung) und TTS (Sprachsynthese) die Ein- und Ausgabehälften einer Sprachschnittstelle für PiCrawler.