.. 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_stt:
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**
.. raw:: html
.. code-block::
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:
* :ref:`install_all_modules` — Installieren Sie die Module ``robot-hat``,
``vilib``, ``picrawler`` und führen Sie dann das Skript ``i2samp.sh`` aus.
**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.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?**
#. Importieren des STT-Moduls
.. code-block:: python
from robot_hat.stt import STT
Die ``STT``-Klasse ist Teil des ``robot_hat``-Pakets. Sie übernimmt die
gesamte Low-Level-Audioaufnahme und Sprachverarbeitung.
#. Festlegen der Sprache
.. code-block:: python
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.
#. Erstellen der STT-Instanz
.. code-block:: python
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.
#. Die Hörschleife
.. code-block:: python
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.
#. Sauberes Beenden
.. code-block:: python
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.