Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Probleme nach dem Kauf 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 Zugang zu neuen Produktankündigungen und Sneak Peeks.

  • Sonderrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!

1. TTS mit Espeak und Pico2Wave

In dieser Lektion verwenden wir zwei integrierte Text-to-Speech-Engines (TTS) auf dem Raspberry Pi — Espeak und Pico2Wave — um den Fusion HAT+ sprechen zu lassen.

Diese beiden Engines sind einfach zu verwenden und laufen vollständig offline, klingen jedoch deutlich unterschiedlich:

  • Espeak: sehr leichtgewichtig und schnell, aber die Stimme klingt eher robotisch. Geschwindigkeit, Tonhöhe und Lautstärke lassen sich anpassen.

  • Pico2Wave: erzeugt eine weichere und natürlichere Stimme als Espeak, bietet jedoch weniger Konfigurationsmöglichkeiten.

Sie werden den Unterschied sowohl in der Sprachqualität als auch in den Funktionen hören.


1. Espeak testen

Espeak ist eine leichtgewichtige TTS-Engine, die bereits im Raspberry Pi OS enthalten ist. Die Stimme klingt zwar robotisch, ist jedoch sehr gut konfigurierbar: Sie können Lautstärke, Tonhöhe, Geschwindigkeit und mehr anpassen.

Programm ausführen

cd ~/ai-lab-kit/llm
sudo python3 tts_espeak.py
  • Sie sollten hören, wie der Fusion HAT+ sagt: „Hello! I’m Espeak TTS.“

  • Versuchen Sie, die Parameter im Code zu verändern, um zu sehen, wie amp, speed, gap und pitch den Klang beeinflussen.

Code

from fusion_hat.tts import Espeak

# Create Espeak TTS instance
tts = Espeak()
# Set amplitude 0-200, default 100
tts.set_amp(200)
# Set speed 80-260, default 150
tts.set_speed(150)
# Set gap 0-200, default 1
tts.set_gap(1)
# Set pitch 0-99, default 80
tts.set_pitch(80)

tts.say("Hello! I’m Espeak TTS.")

Code-Erklärung:

  • tts.set_amp() — Steuert die Lautstärke (0–200).

  • tts.set_speed() — Passt die Sprechgeschwindigkeit an (80–260).

  • tts.set_gap() — Legt den Abstand zwischen Wörtern fest (0–200).

  • tts.set_pitch() — Legt die Tonhöhe fest (0–99).

  • tts.say() — Wandelt Text in Sprache um und gibt ihn wieder.

💡 Tipp: Versuchen Sie, Tonhöhe und Geschwindigkeit zu erhöhen, um den Roboter fröhlicher klingen zu lassen, oder sie zu senken, um eine ernstere Stimme zu erzeugen.


2. Pico2Wave testen

Pico2Wave erzeugt im Vergleich zu Espeak eine natürlichere und menschenähnlichere Stimme. Es ist sehr einfach zu verwenden, aber weniger flexibel — Sie können nur die Sprache ändern, nicht jedoch Tonhöhe, Geschwindigkeit oder Lautstärke. Dadurch eignet sich Pico2Wave hervorragend, wenn Sie eine klare und flüssige Sprachausgabe ohne viele Einstellungen benötigen.

Programm ausführen

cd ~/ai-lab-kit/llm
sudo python3 tts_pico2wave.py
  • Sie sollten hören, wie der Fusion HAT+ sagt: „Hello! I’m Pico2Wave TTS.“

  • Versuchen Sie, die Sprache zu ändern (zum Beispiel es-ES für Spanisch) und hören Sie, wie sich die Stimme verändert.

Code

from fusion_hat.tts import Pico2Wave

# Create Pico2Wave TTS instance
tts = Pico2Wave()

# Set the language
tts.set_lang('en-US')  # en-US, en-GB, de-DE, es-ES, fr-FR, it-IT

# Quick hello (sanity check)
tts.say("Hello! I'm Pico2Wave TTS.")

Code explanation:

  • tts.set_lang() — Legt die Ausgabesprache für die Sprachsynthese fest.

    • en-US (Standard)

    • en-GB

    • de-DE

    • es-ES

    • fr-FR

    • it-IT

  • tts.say() — Wandelt den Text in Sprache um und spielt ihn sofort ab.


Troubleshooting

  • Kein Ton beim Ausführen von Espeak oder Pico2Wave

    • Prüfen Sie, ob Lautsprecher oder Kopfhörer angeschlossen sind und die Lautstärke nicht stummgeschaltet ist.

    • Führen Sie einen kurzen Test im Terminal aus:

      espeak "Hello world"
      pico2wave -w test.wav "Hello world" && aplay test.wav
      

    Wenn Sie nichts hören, liegt das Problem an der Audioausgabe und nicht am Python-Code.

  • Die Espeak-Stimme klingt zu schnell oder zu robotisch

    • Versuchen Sie, die Parameter im Code anzupassen:

      tts.set_speed(120)   # langsamer
      tts.set_pitch(60)    # andere Tonhöhe
      
  • Permission denied beim Ausführen des Codes

    • Versuchen Sie, das Programm mit sudo auszuführen:

      sudo python3 test_tts_espeak.py
      

Comparison: Espeak vs Pico2Wave

Feature

Espeak

Pico2Wave

Voice quality

Robotisch, synthetisch

Natürlicher, menschenähnlicher

Languages

Standardmäßig Englisch

Weniger, aber gängige Sprachen

Adjustable

Ja (Geschwindigkeit, Tonhöhe usw.)

Nein (nur Sprache)

Performance

Sehr schnell, leichtgewichtig

Etwas langsamer, schwerer