Sprachausgabe mit dem Arduino

Neben dem Display wäre es doch ganz nett eine akustische Ausgabe zu haben. Für den Arduino bieten sich mehrere Möglichkeiten an:

– die Sprachsynthese auf dem Arduino selbst
– die Wiedergabe von vorgefertigten Sounddateien von einem externen Player

Die Sprachsynthese
Als externe Hardware wird lediglich ein NF Verstärker benötigt. Aus ein paar Bauteilen einen solchen zusammen zu löten war nicht schwer. Es hat dann auch direkt funktioniert. Ein zusätzlicher Filter macht Sinn, wie im Schematic zur Hardware angegeben.

Das Ergebnis
Im Ergebnis funktioniert es ganz gut. Man muß mit dem ‚Pitch‘ etwas herumspielen, um eine einigermaßen verständliche Ausgabe zu hören. Manchmal ist auch die Wahl der ausgegebenen Worte hilfreich. Eine gute Hilfe dazu ist bei der Bibliothek das Beispiel „SpeakSerial“.
Ohne RC Filter: Der Sound ist sehr synthetisch und krächzend.
Mit RC Filter, Grenzfrequenz ca. 1kHz: Immer noch sehr synthetisch, aber etwas klarer und nicht mehr krächzend.

Die Wiedergabe von einem externen Player
Hierfür benutze ich einen kleinen externen MP3 Player, der vom Arduino angesteuert wird.

Die Vorbereitungen
Bevor das funktionieren kann, sind einige Vorbereitungen nötig. Als erstes sind da erst einmal die Dateien selbst. Ich nehme einfach die Ausgaben für den MQTT Subscriber mit dem vierzeiligen Display.
Damit lege ich die Namen nach folgender Liste fest: Der Ordner mp3 enthält die Sounddateien für die Soundausgaben
Datei 0001 „ein“
Datei 0002 „eins“
Datei 0003 „zwei“
Datei 0004 „drei“
Datei 0005 „vier“
Datei 0006 „fünf“
Datei 0007 „sechs“
Datei 0008 „sieben“
Datei 0009 „sieb“
Datei 0010 „acht“
Datei 0011 „neun“
Datei 0012 „zehn“
Datei 0013 „elf“
Datei 0014 „zwölf“
Datei 0015 „und“
Datei 0016 „zwanzig“
Datei 0017 „dreißig“
Datei 0018 „vierzig“
Datei 0019 „fünfzig“
Datei 0020 „sechzig“
Datei 0021 „siebzig“
Datei 0022 „achtzig“
Datei 0023 „neunzig“
Datei 0024 „Die zuletzt eingelesenen Werte“
Datei 0025 „Die Temperatur beträgt“
Datei 0026 „plus“
Datei 0027 „minus“
Datei 0028 „Grad Celsius“
Datei 0029 „Die relative Luftfeuchtigkeit beträgt“
Datei 0030 „Prozent“

Die Aufnahme der Sounddateien
Ein Mikrofon steht mir nicht zur Verfügung, also erstelle ich die Sounddateien über eine „Text To Speech Applikation“, die die Ausgabe auch abspeichern kann. Aus den vielen Applikationen, siehe die Liste unten, wähle ich ‚Balabolka‘ aus und erstelle die Sounddateien damit im Format mp3.

Die Wiedergabe auf dem Player
Hier gab es einige Schwierigkeiten zu lösen. Im Anschlussschema wird ein 1 KiloOhm Widerstand angegeben als Anpassung für die 3.3 Volt am Player. Hier habe ich etwas anders angeschlossen: Den Player direkt mit 5V Spannungsversorgung, und die serielle Übertragung mit einem Levelshifter. Damit ist dann auch die serielle Übertragung zurück zum Arduino auf dem richtigen Level. Dann gab es noch ein Problem mit der Formatierung der 16 Gb SDHC Speicherkarte. Mache ich das unter Win10 mit FAT32 kann das Modul die Karte nicht lesen. Erst als ich die Speicherkarte in meiner Fotokamera formatiert habe, hat es dann geklappt: Die ersten Testausgaben mit dem abgewandelten Beispielprogramm kommen aus dem Lautsprecher. Die LED am Player leuchtet übrigens nur während der Soundausgabe. Und die seriellen Anschlüsse werden natürlich über Kreuz angeschlossen: RX Board an TX Player und TX Board an RX Player.

Das Ergebnis
Die Soundausgabe funktioniert ausgezeichnet. Die Worte sind klar zu verstehen. Jetzt muss nur noch der Busy Pin genutzt werden, um die einzelnen Dateien lückenlos nacheinander auszugeben.

P.S.
Das ausgearbeitete Projekt hat einen eigenen Artikel bekommen.

Links

Hardware für die Sprachsynthese
http://www.instructables.com/id/Arduino-TTS-Text-to-Speech-/

Software für die Sprachsynthese
https://github.com/jscrane/TTS

DFPlayer mini Datenblatt
http://www.picaxe.com/docs/spe033.pdf

Sprachdateien unter Windows erzeugen
https://www.howtogeek.com/125305/the-best-text-to-speech-tts-software-programs-and-online-tools/

Balabolka
http://balabolka.site/de/balabolka.htm

MQTT Subscriber LCD 4×20 Zeichen

Bibliothek für den Arduino
https://www.arduinolibraries.info/libraries/df-player-mini-mp3-by-makuna

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.