Bemerkung
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 [hier] und treten Sie noch heute bei!
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
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
Bemerkung
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.
#!/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
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
USE_PIPER = True TTS_MODEL = "en_US-ryan-low"
Setzen Sie
USE_PIPERaufTruefür Piper oderFalsefür Espeak. Bei Verwendung von Piper wähltTTS_MODELdie 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 Piper Voices)
Erstellen der TTS-Instanz
if USE_PIPER: tts = Piper(model=TTS_MODEL) else: tts = Espeak()
Je nach
USE_PIPER-Flag wird die entsprechende Engine instanziiert. Beide Engines teilen dieselbesay()-Schnittstelle, sodass ein Wechsel der Engine keine weiteren Codeänderungen erfordert.Die Eingabeschleife
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
quitein, um die Schleife zu beenden.Drücken Sie jederzeit Strg+C, um zu unterbrechen.
Vergleich mit STT
Diese Lektion ist die Ergänzung zu 15. STT (Speech-to-Text). Zusammen bilden STT (Spracherkennung) und TTS (Sprachsynthese) die Ein- und Ausgabehälften einer Sprachschnittstelle für PiCrawler.