Wie du eine Sprachausgabe am BBC micro:bit programmieren kannst, zeige ich dir hier in einfachen Schritten.

Dabei ist die Sprachqualität natürlich etwas eingeschränkt aber es funktioniert schon recht gut.
Was wird benötigt?
Wir benötigen dazu folgende Bauelemente:
- 1x BBC micro:bit
- 1x Erweiterungskarte (für den BBC micro:bit)
- 2x Breadboardkabel, 10 cm, männlich – weiblich
Nun gibt es zwei Arten wie wir die Sprachausgabe uns anhören können, einmal mit einem einfachen Piezo Buzzer oder mit einer aktiv Box.
Aufbau mit dem Piezo Buzzer
Möchte man die Schaltung mit einem Piezo Buzzer aufbauen, so benötigt man neben die oben genannten Bauteile nur noch zusätzlich einen Piezo Buzzer (im nachfolgenden nur als Buzzer bezeichnet).

Einen Buzzer kann man bei ebay.de* schon für ca. 3 € erwerben. (Eine große Preisersparnis kann man mit 5er oder 10er-Packungen erhalten.)
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Der Nachteil bei einem Piezo Buzzer ist, dass dieser sehr leise ist, jedoch ist dieser deutlich günstiger und kleiner.
Video
In diesem kurzen Video möchte ich aufzeigen, wie die Sprachausgabe auf einem Piezo Buzzer klingt.
Aufbau mit einer aktiv Box
Wer etwas mehr Qualität haben möchte, der nutzt eine aktiv Box. Diese gibt es schon für wenige Euros im Discounter. Ich nutze für dieses Tutorial die Computerboxen „Logitech Z213 2.1„.
Um an dem 3,5 Klinkenstecker die Pins 1 und 2 anzuschließen benötigen wir zusätzlich noch 2 Krokodilklemmen, diese gibt es für ca. 6 € in einer 10er-Packung auf ebay.de zu kaufen.

Mit diesen „Klammern“ können wir nun die beiden Pins 0 & 1 an den 3,5 Klinkenstecker anschließen.
Dazu greifen wir zunächst die Pins von der Erweiterungskarte mit Breadboardkabeln ab und klemmen an diese ein Ende von unseren Krokodilklemmen. Das andere Ende der Krokodilklemmen, klemmen wir an den 3,5 Klinkenstecker, hier müssen wir die Spitze und das Ende verbinden.

Wenn wir alles angeschlossen haben dann sollte unser Aufbau ungefähr so aussehen:

Video
Man hört in dem Video einen deutlichen Unterschied zum einfachen Piezo Buzzer.
Programmieren der Sprachausgabe am BBC micro:bit
Nachdem ich jetzt gezeigt habe, welche 2 Möglichkeiten es gibt die Schaltung aufzubauen. Müssen wir natürlich zunächst einmal den BBC micro:bit programmieren.
Neben der Bibliothek „microbit“, welche die Basisfunktionen für den Mikrocontroller liefert, benötigen wir zusätzlich für unsere Sprachausgabe die Bibliothek „speech“.
Jetzt können wir in unserer Endlosschleife mit der Funktion „speech.say“ einen einfachen englischen Text ausgeben.
Es werden bisher nur englische Wörter / Sätze unterstützt.
Nach der Sprachausgabe habe ich eine kleine Pause von 2sek. Eingefügt.
# Bibliothek mit den Funktionen für den BBC micro:bit from microbit import * # Bibliothek mit den Funktionen für die Sprachausgabe import speech while True: # den Text ausgeben speech.say("This is a simple Test.") # eine kleine Pause von 2 sek. sleep(2000)
manipulieren der Sprachausgabe
Die Sprachausgabe erfolgt wie bereits erwähnt in englischer Sprache, was man jedoch manipulieren kann, ist die Geschwindigkeit, die Höhe und die sowie wie diese klingt. Die Klangfarbe lässt sich mit zwei Parametern beeinflussen, jeweils ob man mehr dumpf spricht (wie eine Bauchrednerpuppe) oder sehr aufgeregt.
speed
Die Geschwindigkeit mit welcher der Text wiedergegeben wird. Der minimale Wert von „0“ ist die schnellste Geschwindigkeit und der maximale Wert von „255“ ist der schnellste.
Bei einer Wahl von der Geschwindigkeit hört man nur ein kleines Piepen somit bewegt sich meine Auswahl irgendwo in der Mitte.
pitch
Die Höhe der Stimme bestimmt man mit dem Parameter „pitch“. Der minimale Wert von „0“ ist sehr hoch und der maximale Wert von „255“ sehr tief.
throat
Mit dem Parameter „throat“ wird bestimmt wie relaxed oder angespannt die Stimme klingen soll. Der minimale Wert von „0“ klingt sehr entspannt und der maximale Wert von „255“ klingt sehr angespannt.
mouth
Der Parameter „mouth“ manipuliert die Stimme in der Form das beim minimalen Wert von „0“ diese sehr dumpf klingt und beim maximalen Wert von „255“ sehr offen.
Beispiel
Hier nun ein kleines Beispiel mit dem allseits bekannten Text „Hello World!“.
Wenn der Benutzer auf den Button „A“ klickt, dann wird die Funktion „saySomething“ aufgerufen. In dieser Funktion wird nun unser Text als Sprache ausgegeben.
# Bibliothek mit den den Funktionen für den micro:bit from microbit import * # Bibliothek für die Sprachausgabe import speech # Funktion um einen Text als Sprache auszugeben. def saySomething(): speech.say("Hello World!", speed=85, pitch=120, throat=125, mouth=150) # Endlosschleife while True: # Wenn der Button "A" gedrückt wird dann mache... if button_a.is_pressed(): # Funktion aufrufen saySomething()
Für dieses Beispiel wurde am Ende der Endlosschleife kein „sleep“ eingebaut, da diese Funktion eine kleine Pause bewirkt, könnte der Mikrocontroller sonst den Status (Button gedrückt) des Buttons „A“ verpassen bzw. erst etwas später anfangen den Text auszugeben.
Fazit – BBC micro:bit Sprachausgabe
Mit der Bibliothek „speech“ und einem Aktivlautsprecher kann man sich einfache Texte ausgeben und dem BBC micro:bit etwas „leben“ einhauchen.
Eine ausführliche Dokumentation zu dieser Bibliothek findest du unter https://microbit-micropython.readthedocs.io/en/latest/tutorials/speech.html.
Auf der Webseite wird jedoch hervorgehoben das die Bibliothek „speech“ sich z.Zt. (stand 03.032019) sich im AlphaCode Status befindet, d.h. es wird weiter an dieser Entwickelt, aber der aktuelle Stand ist „gut genug“ um veröffentlicht zu werden.