Startseite>Entwickler- und Anwenderplatine für Spracherkennung
Aus Raspberry Pi Geek 08/2018

Entwickler- und Anwenderplatine für Spracherkennung

© Kittipong Jirasukhanont, 123RF

Auf Zuruf

Dr. Udo Seidel

Mit dem bereits Anfang 2017 angekündigten und jetzt endlich verfügbaren Voice offeriert Matrix Labs eine neue Erweiterung, die den Raspberry Pi fit für Sprachsteuerung machen soll.

Die meisten Erweiterungsboards für den Raspberry Pi gehören zu einer von zwei Kategorien: Entweder dienen sie einem ganz speziellen Zweck, wie etwa Kameras, Bildschirmen oder unabhängigen Energiequellen, oder sie bieten eine Reihe von zusätzlichen Schnittstellen und Sensoren.

Anfang 2017 gab das Unternehmen Matrix Labs [1] die Pläne für eine Erweiterung namens Matrix Voice [2] bekannt, die quasi zwischen den beiden genannten Kategorien liegt. Der Hersteller bezeichnet die Platine als Entwicklerplattform für jedermann, der sich für Sprache und Sprachsteuerung interessiert.

Mit Matrix Creator [3] bietet der Hersteller bereits ein Produkt an, das sich als funktionsreiche Entwicklerplattform versteht. Es umfasst unter anderem Sensoren für Temperatur, Luftfeuchte, Luftdruck und Infrarot sowie LEDs und Mikrofone. Dazu kommen noch Kommunikationsmöglichkeiten über WLAN, Bluetooth, Infrarot und NFC.

Schwere Geburt

Für die Finanzierung und den Versand von Matrix Voice griff der Hersteller auf die Hilfe der Crowdfounding-Plattform Indiegogo zurück [4], die auch die anschließende Auslieferung übernimmt.

Wer zum Angebotsstart das Produkt einfach kaufen wollte, schaute erst einmal in die Röhre: Zunächst galt es, das Interesse durch eine kleine Investition zu bekunden. Die Kosten entsprechen dabei im Normalfall dem Kaufpreis des Produkts. Finden sich allerdings nicht genug Interessenten, kommt das Produkt nicht auf den Markt. Auch so kann sich die Auslieferung in die Länge ziehen: Der Autor, der sich im März 2017 mit 55 Euro an der Finanzierung beteiligte, erhielt erst rund ein Jahr später die Platine (Abbildung 1).

Abbildung 1: Vorder- und Rückansicht der Matrix-Voice-Platine ohne den ESP32-Chip.

Abbildung 1: Vorder- und Rückansicht der Matrix-Voice-Platine ohne den ESP32-Chip.

Die Matrix Voice gibt es mit und ohne ESP32-Chip, der Preisunterschied liegt dabei bei etwa 10 US-Dollar. Der Vorteil der 65 US-Dollar teuren ESP-Variante liegt darin, dass sie sich unabhängig vom Raspberry Pi betreiben lässt. Die notwendigen Komponenten für Kommunikation (WLAN, Bluetooth) sowie die Software kommen mit dem Board, Sie benötigen den RasPi dann lediglich für die Ersteinrichtung. Außerdem bringt der ESP32 [5] ein paar zusätzliche Umweltsensoren mit, um beispielsweise Temperatur oder Luftfeuchtigkeit zu messen. Für die Sprachsteuerung als ursprünglichen Fokus spielen diese aber keine Rolle.

Der vorliegende Artikel basiert auf der Matrix-Voice-Variante ohne den ESP32-Chip. Alle genannten Beispiele und Programme eignen sich aber gleichermaßen für alle Mitglieder der Matrix-Familie, einschließlich des Matrix Creator. Details zur Hardware-Ausstattung zeigt der Kasten “Innere Werte”.

Innere Werte

Der kreisrunde Matrix Voice beherbergt nahe der Peripherie sieben gleichmäßig verteilte Audiosensoren, also digitale Mikrofone. Sowohl die Dokumentation als auch die Beispielprogramme referenzieren diese als Mikrofonfeld (Microphone Array). Hinzu kommen 18 LEDs, ebenfalls gleichmäßig am Rand der Oberseite verteilt. Analog zu den Mikrofonen trägt die LED-Gruppe den Codenamen Everloop. Für die ausreichend schnelle Verarbeitung der Audiosignale sorgt ein FPGA. Er bringt laut Hersteller bereits Algorithmen zur Geräuschdämmung, Echokompensation und Positionsbestimmung der Audioquelle mit. Darüber hinaus enthält die Platine 64 Mbit Flash-Speicher und 64 MByte Hauptspeicher, die in der Version ohne ESP-Chip allerdings nur begrenzten Nutzen haben. Sie finden erst in der autarken Benutzung so richtig Anwendung, etwa um Applikationen im Flash-Speicher abzulegen und von dort zu starten. Der ESP32-Chip Tensilica Xtensa Dual-Core 32-Bit LX6 kommuniziert auch per WLAN und Bluetooth.

Aller Anfang …

Neben der Matrix-Voice-Platine benötigt unser Setup einen Raspberry Pi, idealerweise einen der dritten Generation. Optional unterstützt die Platine aber auch den Einsatz der kleineren und älteren Vettern, den RasPi 1 aber nur in der B- oder B+-Variante. Dieser Artikel basiert auf der Verwendung mit einem Raspberry Pi 3.

Softwareseitig wählen Sie zwischen dem Debian-Ableger Raspbian und Android Things, dem Google-Betriebssystem für das Internet der Dinge (siehe Kasten “Googles Alles-Netz”). Zum Einstieg empfiehlt sich eher der Einsatz von Raspbian, dessen Lernkurve beim Verwenden, Anpassen, Administrieren sowie der Analyse von Fehlverhalten deutlich flacher ausfällt als bei Android Things. Die im Netz angebotene Dokumentation zu Beispielprojekten und Anwendungen für das Matrix Voice bezieht sich ebenfalls hauptsächlich auf Raspbian.

Googles Alles-Netz

Schon 2015 stellte Google ein IoT-Betriebssystem namens Brillo vor – mit mäßigem Erfolg. Ende 2016 änderte der Internet-Gigant dessen Namen in Android Things [15], was seine Verwandtschaft zu Familienmitgliedern wie Android TV und Android Auto demonstrieren soll. Ebenso schnell erschließt sich, dass das bekannte Betriebssystem für Smartphones die Grundlage bildet, und somit ein Linux-Kernel mit einer Abstraktionsschicht für die Hardware. Hinzu kommen C/C++-Bibliotheken für systeminterne und zeitkritische Prozesse. Darüber befindet sich eine Java-Laufzeit-Umgebung und einige Google-Dienste. Allerdings bringt das Android der Dinge nur eine Untermenge der Systemanwendungen mit, Funktionen wie das Pflegen von Kalendereinträgen, Kontakte, Medienspeicher oder auch Telefon fehlen. Android Things fokussiert auf das Ausführen einer einzelnen Anwendung, die es beim Hochfahren des Systems als letzten Schritt startet. Für die Entwicklung oder Installation kommt primär Android Studio [16] infrage, dabei erfolgt die Kommunikation mit dem IoT-Gerät über die bekannte Android Debug Bridge [17]. Das Matrix Voice reiht sich ganz natürlich in die Reihe der anderen Erweiterungsplatinen für den Raspberry Pi und Android Things ein, das Betriebssystem erkennt die zusätzlichen Schnittstellen automatisch (Abbildung 2).

Zwischen den Welten

Zum Ansteuern der Platine liefert der Hersteller gleich die passenden Kernel-Space-Treiber mit. Eine weitere Alternative bietet das Matrix Open System, kurz Matrix OS [6]: Es erlaubt den Zugriff auf die Hardware via Javascript. Im Hintergrund greift es dabei auf die Komponenten Matrix Core [7] und Matrix HAL [8] zurück.

Bei Letzterem handelt es sich um eine Sammlung von in C++ geschriebenen Treibern, die den Zugriff auf die verschiedenen Sensoren und Komponenten des Matrix Voice erlauben. Dazu gehören auch Werkzeuge, um den FPGA und den ESP32-Controller zu programmieren. Matrix HAL dient quasi als Fundament für Matrix OS und die Zwischenschicht Matrix Core.

Der Lieferumfang enthält mehrere einfache Beispielprogramme. Manche demonstrieren nur den Zugriff auf eine einzelne Komponente oder einen bestimmten Sensor. Andere gehen einen Schritt weiter und kombinieren verschiedene Daten, so zum Beispiel das Programm ipaddress_demo (Listing 1). Es liest die IP-Adressen aller Netzwerkschnittstellen in alphabetischer Reihenfolge aus, schneidet von der letzten die führenden drei Stellen ab und kodiert die verbliebene Zahl zur Darstellung über die 18 LEDs (Abbildung 2).

Listing 1

 

$ cd matrix-creator-hal/build/demos
$ ./ipaddress_demo
INFO: [/dev/matrixio_regmap] was opened
lo IP Address 127.0.0.1
wlan0 IP Address 192.168.20.49
show last integer: 49
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland