© radoma/Shutterstock.com
Ein Blick auf das Alexa Connect Kit

Alexa as a Service


Mit dem Alexa Connect Kit, kurz ACK, möchte Amazon im Spracherkennungsbereich als Plattformanbieter mitspielen. Was kann das ACK und für wen lohnt sich ein Blick darauf?

Wer einem Smarthomesystem bisher Sprachfähigkeiten beibringen wollte, musste entweder als Großunternehmen eine entsprechend teure Enterprise-Lösung einkaufen, oder aber selbst etwas realisieren. Mit PicoVoice und vergleichbaren Tools können entsprechende Fähigkeiten trainiert und auf eigene Anwendungen ausgerichtet werden. In der Praxis braucht man das aber oft gar nicht: Will man häufige Aufgaben wie die Steuerung von Beleuchtung automatisieren, ist man mit einer Einbindung in das Alexa-Ökosystem in vielerlei Hinsicht besser bedient. Erstens hat man so keinen Aufwand mit Serverbetrieb und Co., zweitens profitiert man quasi nebenbei vom bereits vorhandenen Netzwerk mit diversen Alexa-Skills und sonstigen Features der Alexa-Plattform. Drittens erspart man sich den Aufwand mit Übersetzung und Lokalisierung.

Für Amazon ist das ebenfalls sinnvoll, da das Unternehmen auf diese Weise zusätzliche Kunden für seine Plattform gewinnt. Durch diese zusätzlichen Kunden steigt die Reichweite, was als Netzwerkeffekt die Gesamtattraktivität des Ökosystems erhöht.

ACK als Service?

Möchte ein Großunternehmen eine Sprach-Engine lizenzieren, so lohnt sich der Aufwand für Kontrahierung und Co. für alle Beteiligten. Für ein Kleinunternehmen lohnt sich das aus mehreren Gründen nicht: Denken Sie neben den Anwaltskosten auch daran, ob Sie für eine Kleinserie von 100 Stück in fünf Jahren wirklich noch den Aufwand auf sich nehmen möchten, von den Endkunden Kosten einzuheben und diese danach an Amazon weiterzuleiten.

Damit ist die theoretische Raison d’Être der ACK-Plattform erklärt. Ein ACK-Produkt ist in der Theorie ein fertiges Modul, dass ein Entwickler einer Hardwarekleinserie in sein System integriert, analog zu beispielsweise einem Operationsverstärker. Der Hersteller dieses Software-Hardware-Kombinationsprodukts kümmert sich in der Theorie um die Lizenzierung; im Rahmen des Erwerbs des Produkts bekommt Amazon ausreichend Geld, um die Kosten der Bereitstellung der Dienstleistung für die erwartete Lebensdauer des Moduls abzudecken. In der Praxis ist dem übrigens nicht ganz so, was wir im Laufe dieses Artikels näher ansehen wollen.

Von der Hardwarearchitektur

Wichtig ist vor allem, dass auf dem ACK-basierenden Systeme (Abb. 1) prinzipiell und immer Zweikernarchitekturen darstellen. Neben einem Kern, der sich ausschließlich um die Kommunikation mit Amazon kümmert, ist immer eine zweite CPU erforderlich, die für die Interaktion mit der lokalen Peripherie zuständig ist.

hanna_alexa_1.tif_fmt1.jpgAbb. 1: ACK ist immer zweiteilig [1]

Interessant ist in diesem Zusammenhang noch die Aufteilung der Aufgaben: Das ACK-Modul kümmert sich darum, mit dem Server zu kommunizieren. Das inkludiert explizit auch die Datenübertragung, die meist per WLAN erfolgt. Es sei außerdem darauf hingewiesen, dass sich das ACK-Modul nicht um die Audioverarbeitung kümmert. Der Benutzer interagiert über ein gewöhnliches Alexa-Gerät oder über die Alexa-App mit der Peripherie, die sich ihrerseits nur um das Ausführen der Aufgaben kümmert. Wenn Sie mit einer Wake Word Detection oder vergleichbaren Konzepten arbeiten möchten, so sind Sie beim ACK falsch. Bevor wir nun mit der praktischen Umsetzung beginnen, soll noch Erwähnung finden, dass es eine in C gehaltene Standardbibliothek gibt, über die der Benutzermikrocontroller mit der im ACK implementierten Intelligenz kommunizieren kann.

Eine Frage der Zielplattform

Amazon konnte zum Zeitpunkt der Drucklegung dieses Artikels zwei Halbleiterhersteller für sich gewinnen: einerseits MediaTek und andererseits Espressif Systems. Wir wollen in den folgenden Schritten schon deshalb auf Espressif setzen, weil die Hardware bei den üblichen Distributoren leichter erhältlich ist und weniger kostet. In den folgenden Schritten nutzen wir das in Abbildung 2 gezeigte Breakout Board, dass das eigentliche physikalische Modul auf eine Trägerplatine setzt.

hanna_alexa_2.tif_fmt1.jpgAbb. 2: Diese Platine erleichtert die Kommunikation mit Alexa

Aufmerksame Betrachter sehen, dass in der Abbildung auch ein Arduino-Pin-Header zu sehen ist. Das ist nicht falsch. Espressif setzt auf das Arduino-Steckerformat, um Entwicklern das einfachere Anbinden einer Hardware-Payload zu ermöglichen. Da der ESP32 ein reines 3,3-V-System ist, können Sie jedoch nicht jeden beliebigen Arduino anschließen. Wenn Sie beispielsweise einen Arduino Uno verwenden wollten, so würde die 5-V-Signalspannung des AVR die Hardware des ACK-Trägerboards irreparabel beschädigen.

Amazon selbst rät zur Verwendung eines Arduino Zero, der für seinen ARM-Controller ein 3,3-V-System darstellt. Der Autor dieses Artikels hat auch noch eine Limited Edition des heute nicht mehr erhältlichen Zero Pro im Hause stehen. Die beiden Boards sind aber bis auf unterschiedliche Namen und verschiedene Ansteuerung der Pins D2 und D4 identisch, weshalb wir die beiden Platinen im ersten Schritt wie in Abbildung 3 gezeigt miteinander verbinden.

hanna_alexa_3.tif_fmt1.jpgAbb. 3: Arduino unten, ACK oben

Im Rahmen des Versands verbiegen sich die Durchreiche-Pins der ACK-Platine manchmal. Zur Behebung dieses Problems bietet es sich an, eine Seite leicht in den Arduino zu stecken und das ACK-Board dann vorsichtig zu wenden, um die Ausrichtung der Pins zu korrigieren. In jedem Distributionspaket findet sich zudem ein individueller Code, der essenziell zum Modul gehört. Diesen dürfen Sie auf keinen Fall verlieren, weil er für die Provisionierung notwendige und nicht ersetzbare Informationen enthält.

Auf Seiten des Desktops ist vor allem Python erforderlich. Amazon unterstützt nur noch Python 3 in einer Version ab 3.6. In den folgenden Schritten verwendet der Autor die folgende Variante:

tamhan@TAMHAN18:~$ python3 -V Python 3.8.5

Für die Programmierung erster Experimente empfiehlt sich die Verwendung der Arduino IDE. Wichtig ist, dass Sie insbesondere bei der Arbeit mit dem hier verwendeten Zero Pro unbedingt eine Version 1.x der Entwicklungsumgebung verwenden müssen, weil der Zero Pro und seine Kollegen in der Version 2.0 noch nicht unterstützt werden. In den folgenden Schritten kommt die Version Arduino IDE 1.8.13 zum Einsatz. Dafür müssen Sie sie wie folgt installieren:

...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang