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!

15. STT (Speech-to-Text)

Dieses Beispiel zeigt, wie das STT-Modul (Speech-to-Text) auf dem PiCrawler verwendet wird. Der Roboter hört über das eingebaute Mikrofon auf Ihre Stimme und wandelt sie in Echtzeit in Text um.

Code ausführen

cd ~/picrawler/examples
sudo python3 15_stt.py

Nach dem Start des Programms sehen Sie die Spracheinstellung und eine Eingabeaufforderung. Der Roboter beginnt zuzuhören — sprechen Sie in das Mikrofon und der erkannte Text wird im Terminal ausgegeben.

Wenn keine Sprache erkannt wird, erscheint (no speech detected). Drücken Sie Strg+C zum Beenden.

Bevor Sie beginnen

Stellen Sie sicher, dass Sie Folgendes abgeschlossen haben:

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.stt import STT

# Sprachsteuerungs-Demo mit dem STT-Modul von sunfounder_voice_assistant
# Strg+C zum Beenden

# Sprache konfigurieren: "en-us", "zh-cn", etc.
LANGUAGE = "en-us"

def main():
    print("=== PiCrawler Speech-to-Text Demo ===")
    print(f"Sprache: {LANGUAGE}")
    print("Strg+C zum Beenden")
    print()

    stt = STT(language=LANGUAGE)

    try:
        while True:
            print("Höre zu... (jetzt sprechen)")
            text = stt.listen()
            if text:
                print(f">>> {text}")
            else:
                print("(keine Sprache erkannt)")
    except KeyboardInterrupt:
        print("\nBeenden...")

if __name__ == "__main__":
    main()

Wie funktioniert es?

  1. Importieren des STT-Moduls

    from robot_hat.stt import STT
    

    Die STT-Klasse ist Teil des robot_hat-Pakets. Sie übernimmt die gesamte Low-Level-Audioaufnahme und Sprachverarbeitung.

  2. Festlegen der Sprache

    LANGUAGE = "en-us"
    

    Die LANGUAGE-Variable konfiguriert die Erkennungssprache. Sie können sie je nach Bedarf in andere unterstützte Codes wie "zh-cn" (Chinesisch) oder "de-de" (Deutsch) ändern.

  3. Erstellen der STT-Instanz

    stt = STT(language=LANGUAGE)
    

    Dies erstellt ein STT-Objekt, das für die gewählte Sprache konfiguriert ist. Das Objekt initialisiert das Mikrofon und die Spracherkennungs-Engine.

  4. Die Hörschleife

    while True:
        print("Höre zu... (jetzt sprechen)")
        text = stt.listen()
        if text:
            print(f">>> {text}")
        else:
            print("(keine Sprache erkannt)")
    

    Das Programm läuft in einer Endlosschleife, wobei jede Iteration:

    • Den Benutzer zum Sprechen auffordert.

    • stt.listen() aufruft, das blockiert, bis Sprache erkannt und verarbeitet wird.

    • Den erkannten Text als String zurückgibt, oder None / leer, wenn nichts verstanden wurde.

    • Das Ergebnis im Terminal ausgibt.

  5. Sauberes Beenden

    except KeyboardInterrupt:
        print("\nBeenden...")
    

    Strg+C löst einen KeyboardInterrupt aus, der abgefangen wird, um eine Beenden-Nachricht auszugeben und das Programm sauber zu beenden.