Lesezeit ca. 9 Min.
arrow_back

Hört, hört!


Logo von Raspberry Pi Geek
Raspberry Pi Geek - epaper ⋅ Ausgabe 4/2022 vom 03.02.2022

Seeed ReSpeaker

Artikelbild für den Artikel "Hört, hört!" aus der Ausgabe 4/2022 von Raspberry Pi Geek. Dieses epaper sofort kaufen oder online lesen mit der Zeitschriften-Flatrate United Kiosk NEWS.

Bildquelle: Raspberry Pi Geek, Ausgabe 4/2022

README

Ob beim Meeting oder zum Steuern des Smart Homes: Ein gutes Mikrofon gehört dazu. Im Homeoffice lässt sich das Mikro ohne Probleme passend ausrichten. Für Konferenzräume oder das Smart Home brauchen Sie ein Gerät, dass in den ganzen Raum hineinhorcht. Von Seeed gibt es dafür einen HAT mit gleich vier Mikrofonen.

Der etwa quadratische ReSpeaker-HAT von Seeed 1 baut in der Breite etwas größer als ein RasPi 2/​3/​4. Der Name suggeriert zwar etwas anderes, aber der ReSpeaker agiert als reines Eingabegerät. Für die Audioausgabe verwenden Sie die herkömmlichen Mittel, etwa HDMI, USB-Audio, analoges Audio oder Bluetooth.

Ein Ring aus 12 Mehrfarb-LEDs (APA102) schmückt die Oberfläche. Vier Mikrofone sitzen jeweils in den Ecken. Deren Reichweite gibt der Hersteller mit 3 Metern an, zentral platziert deckt der HAT also mittelgroße Räume ab. Der an der Unterseite verbaute Soundchip AC108 ...

Weiterlesen
epaper-Einzelheft 9,99€
NEWS Jetzt gratis testen
Bereits gekauft?Anmelden & Lesen
Leseprobe: Abdruck mit freundlicher Genehmigung von Raspberry Pi Geek. Alle Rechte vorbehalten.
Lesen Sie jetzt diesen Artikel und viele weitere spannende Reportagen, Interviews, Hintergrundberichte, Kommentare und mehr aus über 1050 Magazinen und Zeitungen. Mit der Zeitschriften-Flatrate NEWS von United Kiosk können Sie nicht nur in den aktuellen Ausgaben, sondern auch in Sonderheften und im umfassenden Archiv der Titel stöbern und nach Ihren Themen und Interessensgebieten suchen. Neben der großen Auswahl und dem einfachen Zugriff auf das aktuelle Wissen der Welt profitieren Sie unter anderem von diesen fünf Vorteilen:

  • Schwerpunkt auf deutschsprachige Magazine
  • Papier sparen & Umwelt schonen
  • Nur bei uns: Leselisten (wie Playlists)
  • Zertifizierte Sicherheit
  • Freundlicher Service
Erfahren Sie hier mehr über United Kiosk NEWS.

Mehr aus dieser Ausgabe

Titelbild der Ausgabe 4/2022 von Mehr Auswahl in Sicht. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Mehr Auswahl in Sicht
Titelbild der Ausgabe 4/2022 von Security-Berater. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Security-Berater
Titelbild der Ausgabe 4/2022 von Platzwart Mit. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Platzwart Mit
Titelbild der Ausgabe 4/2022 von Bootstick. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Bootstick
Mehr Lesetipps
Blättern im Magazin
Schlanke Lösung
Vorheriger Artikel
Schlanke Lösung
Alles im Lot
Nächster Artikel
Alles im Lot
Mehr Lesetipps

... unterstützt hochqualitative Quad-Channel-I 2 S-Ausgabe und führt über zwei Grove-Buchsen einmal I C und einmal GPIO12/GPIO13 nach außen. Für Letztere bietet sich ein Grove-Doppelschalter zum einfachen Steuern des Rechners an.

Rein technisch unterstützt der HAT alle RasPi-Varianten mit der großen Pin-Leiste, also auch den Pi Zero. Für den gibt es alternativ einen von den Dimensionen besser passenden HAT, der allerdings nur zwei Mikrofone mitbringt, dafür aber einen zusätzlichen Soundchip samt JST- Anschluss für Lautsprecher bietet. Der kleine HAT kostet 9,90 Euro, der große 24,50 Euro. Sie können beide beim deutschen Distributor BerryBase beziehen. Neben diesen HAT-Lösungen bietet Seeed auch noch diverse andere Mikrofonplatinen an, die sich per Kabel an den RasPi anschließen lassen und teilweise noch mehr Mikrofone integrieren.

In den folgenden Abschnitten geht es um die Installation und den Betrieb des ReSpeakers. Wir wollen vor allem wissen, wie viel Rechenpower der HAT benötigt und welcher RasPi sich dafür anbietet. Mit dem Zero 2W gibt es ja inzwischen eine günstige kleine Lösung mit viel CPU-Leistung, aber hier könnte der Speicher nicht ausreichen.

Installation

Seeed verkauft nicht nur Hardware, sondern pflegt auch ein gutes Wiki für seine Produkte. Außerdem gibt es Github-Repositories mit Beispielcode, was den Einstieg erleichtert. Dort finden sich auch alle notwendigen Informationen für den ReSpeaker .

Für ein intelligentes Mikrofon genügt im Prinzip ein Pi OS Lite im Headless-Betrieb. Trotzdem gibt es gute Gründe, die ersten Experimente mit einem Pi-OS-Desktop-System zu starten, vor allem, weil hier die Audioausgabe über den Bildschirm per HDMI problemlos funktioniert. Grundlage dieses Artikel ist die „Buster“-Version vom Mai 2021. Für die nachfolgenden Tests sollten Sie das Audioausgabegerät vorab via Raspi-config korrekt einrichten.

Mit den Befehlen aus Listing 1 richten Sie die Treibersoftware ein. Das Installationskommando aktualisiert bei Bedarf den Kernel und lädt die Kernel-Header sowie ein paar andere Tools herunter. Anschließend kompiliert es den Treiber, der im Quellcode vorliegt. Steht tatsächlich ein Kernel-Update an (wie im Test beim verwendeten „Buster“-Release), fordert die Software zu einem Neustart auf. Dann gilt es, die Befehle aus den Zeilen 4 und 5 nach dem Booten zu wiederholen. Am Schluss der Prozedur aktiviert ein weiterer Neustart den HAT.

Das Installationsverfahren setzt Seeed fast vorbildlich um. So verwendet es DKMS (Dynamic Kernel Module Support), das im Idealfall automatisch bei einem neuen Kernel die Module wieder auf den aktuellen Stand bringt. Allerdings erweist sich DKMS als etwas zu intelligent, denn es installiert die Treiber nur für den aktuellen Kernel. Bei einem Wechsel von einem RasPi 2/​3/​4 zum Pi Zero steht daher eine Neuinstallation an, beim Wechsel zurück ebenfalls. In der Praxis sollte das aber keine Rolle spielen.

Erfahrungsgemäß bedeutet ein Treiber im Quellcode nicht, dass bei einem Wechsel des Kernels durch die Foundation der Treiber sofort für den neuen Kernel funktioniert. Hier bietet es sich an, das System erst nach einiger Zeit und nach eingehenden Tests auf den aktuellen Stand zu bringen.

Nach der Treiberinstallation steht der HAT als 4-Kanal-Aufnahmegerät bereit. Spätestens jetzt sollten Sie den RasPi herunterfahren, um den HAT aufzustecken. Da der HAT kein Hotplugging erlaubt, müssen Sie den Mini-Rechner dazu auf alle Fälle vom Strom trennen.

Weitere Infos und interessante Links

www.raspi-geek.de/qr/46786

Zur Kontrolle starten Sie auf der Kommandozeile den Befehl arecord ‐L 2 2 . Die lange Liste an Einträgen müssen Sie nicht im Detail verstehen. Es genügt, wenn der Eintrag ac10x sowie die Seeed-Soundkarte als sysdefault auftauchen.

Funktionstest

Der Befehl arecord gibt nicht nur vorhandene Soundkarten aus, sondern nimmt außerdem auf. Aufnahme und Abspielen erledigen Sie mit den Befehlen aus Listing 2. Ein reiner Test der Installation erfordert keine Sox-Installation, die Vierkanalaufnahme klingt dann aber sehr dumpf. Erst nach dem Herunterrechnen auf zwei Kanäle (Zeile 3) gibt Aplay die Aufnahme sauber aus.

Dieser Test funktioniert auch problemlos auf einem Raspberry-Pi-Lite-System. Etwas komfortabler funktioniert das Ganze aber auf einem Desktop. Dazu installieren Sie die Anwendung Audacity über das gleichnamige Paket. Dabei handelt es sich um eine schlanke, aber trotzdem mächtige und mehrkanalfähige Aufnahme- und Mischpultanwendung.

In Audacity konfigurieren Sie zuerst das Ausgabegerät, üblicherweise bcm2835 alsa: – (hw:0:0), sowie das Aufnahme-Device (ac108). Dann starten Sie die Aufnahme über den roten Aufnahmeknopf in der Leiste unterhalb des Menüs. Über die anderen Buttons pausieren oder stoppen Sie die Aufnahme. Sobald die Aufnahme startet, sehen Sie im Hauptfenster die Aufnahmepegel der vier Kanäle 3 3 . Über das Dateimenü lässt sich die Aufnahme in verschiedenen Formaten speichern, wobei Audacity den WAV-Export nur im Monoformat beherrscht und die Aufnahme herunterrechnet.

Das ReSpeaker-Wiki beschreibt darüber hinaus die Konfiguration zur Steuerung der LEDs, die Sie via SPI anschließen. Nach der Konfiguration in der /boot/config.txt oder mittels Raspi-config sprechen Sie die Lichter über Python an. Ein passendes Beispiel findet sich im ReSpeaker-Repo auf Github unter interfaces/pixels.py. Weitere Beispiele demonstrieren die Aufnahme mit unterschiedlicher Kanalanzahl oder die Integration mit Alexa beziehungsweise dem Google Home Assistant.

Dieser grundlegende Funktionstest schließt das Setup ab. Jetzt geht es um den sinnvollen Einsatz des ReSpeakers. Als normales Mikrofon, etwa für Textdiktate, kauft niemand diesen HAT.

Ortung

Der Einsatz von vier Mikrofonen auf dem HAT erlaubt das Orten der Klangquelle. So etwas benötigt beispielsweise ein Roboter zur Ausrichtung oder eine Kamera in einem Videosystem, um auf den Sprecher zu fokussieren. Dafür gibt es die Open-Source-Bibliothek ODAS (Open Embedded Audition System) und die GUI-Anwendung ODAS Studio.

Das Wiki von Seeed beschreibt den Eigenbau von ODAS sowie das Einrichten von ODAS Studio und verlinkt auf das dazugehörige Github-Repo. Vor allem Letzteres erweist sich als schwierig, denn ODAS Studio benötigt eine aktuelle Node.js-Version, und die finden Sie in den RasPi-OS-Repos nicht. Falls Sie ODAS ausprobieren wollen, sollten Sie also etwas Zeit für Forschungsarbeit einplanen.

Spracheingabe

Etwas weniger kompliziert als der sehr spezielle Anwendungsfall Klangortung klappt die Spracheingabe, die dank Alexa, Google oder Siri viele Anwender schon aus dem Alltag kennen. Nicht jeder schätzt diesen „Familienzuwachs“, vor allem diejenigen nicht, die großen Wert auf Privatsphäre legen. Es gibt aber Offline-Alternativen zu den großen Playern.

Im Wiki zum ReSpeaker findet sich ein Beispiel, dass auf einer Software von der Firma Picovoice basiert und das Steuern der LEDs erlaubt. Picovoice bietet eine Reihe von Vorteilen: Zum einen lässt es sich offline betreiben, zum anderen erhalten Entwickler kostenfreien Zugriff auf die Entwicklungsumgebung. Die Sprachmodelle verfallen im Entwicklungsmodus allerdings nach 30 Tagen; danach gilt es, einen individuellen Preis auszuhandeln. Deshalb eignet sich Picovoice nicht für Maker.

Für Linux stehen diverse Open-Source- Lösungen zur Wahl. Über Jasper veröffentlichten wir schon vor Jahren einen Artikel . Damals waren die RasPi-Versionen 1 und 2 aktuell und das Bauen der notwendigen Software dauerte auf einem Raspberry Pi der ersten Generation geschlagene acht Stunden. Größtes Manko von Jasper und anderen Lösungen war und ist ein fehlendes deutsches Sprachmodell.

Beim relativ neuen Projekt Vosk verhält es sich anders, denn es gibt viele Sprachmodelle dafür. Da das Projekt explizit den RasPi unterstützt, liegt ein Test des Programms im Zusammenhang mit dem ReSpeaker nahe. Ein großer Vorteil von Vosk besteht in der einfachen Installation (Listing 3). Laut Dokumentation macht die 64-Bit-Version für den RasPi mit Pip Probleme, es gibt aber einen Workaround. Für Vosk gibt es auch einen Sprachserver, den Sie am einfachsten über Docker starten. Die auf der Vosk-Homepage genannten Hardwareanforderungen machen den Server aber für einen RasPi uninteressant.

Vosk testen

Nach der Installation von Vosk brauchen Sie noch ein Sprachmodell sowie Programmbeispiele. Beides holen die Befehle aus Listing 4 auf den Rechner. Neben dem kleinen Modell (Zeile 3) mit 45 MByte, das die Vosk-Maintainer für Android und den Raspberry Pi empfehlen, gibt es noch das große deutsche Modell vosk‐model‐de‐0.21 mit fast 2 GByte Umfang.

Als ein Teil der Beispiele dient die Datei test.wav (Zeile 6). Allerdings eignet sie sich für uns nicht, denn der Sprecher liest eine Reihe von Zahlen auf Englisch vor. Mit dem deutschen Vokabular kommt dabei nur Dadaismus heraus. Eine eigene Testdatei erstellt das Kommando aus Zeile 7. Vosk benötigt 16-KHz-PCM (16 Bit, mono) und reizt damit den vollen Leistungsumfang des ReSpeakers nicht aus.

Der Umweg über eine Datei ist allerdings gar nicht notwendig, denn der Aufruf in Zeile 8 liest direkt vom Device Nummer 1, in unserem Konstrukt der ReSpeaker. Im Zweifelsfall rufen Sie das Programm mit der Option ‐‐list‐devices auf. Das Umleiten aller Ausgaben via Grep aus Zeile 8 filtert dabei diverse Log-Meldungen und Zwischenergebnisse heraus. Bei Problemen sollten Sie das Filtern weglassen und die Meldungen nach Fehlern durchsuchen.

Anwendungstest

Jetzt einfach mit dem Befehl aus Zeile 8 loszudiktieren funktioniert aber dennoch nicht. Zum einen kennt das Vokabular nur Kleinbuchstaben; der Aufwand einer nachträglichen Korrektur wäre also extrem hoch. Zum anderen hört Vosk sehr genau hin. Wer wie die meisten Menschen „sexundzwanzig“ sagt, muss sich nicht wundern, wenn Vosk „sex und zwanzig“ erkennt. Stark dialektgefärbtes Sprechen senkt die Treffgenauigkeit darüber hinaus noch weiter.

Bei Anwendungen mit eingeschränktem Vokabular brilliert Vosk dagegen. Für das Webradio des Autors funktioniert inzwischen auch die Sprachsteuerung mit Kommandos wie „an“, „aus“, „lauter“, „leiser“, „Kanalwechsel“ und so weiter. Der dafür notwendige Code für diese Steuerung bleibt dabei überraschend klein (Listing 5).

Zuerst fragen die Zeilen 3 bis 5 das Eingabegerät/​Mikro ab und erzeugen das Sprachmodell. Zeile 7 generiert das Objekt für die Sprachverarbeitung. Vosk basiert auf Kaldi, und das Programm übergibt das Model, die Sampling-Rate des Mikrofons und eine Wortliste an das Objekt. Die Wortliste kommt aus einer Python-Map, die Phrasen auf APIs abbildet, etwa "an" ‐> "radio_on()".

In einer Endlosschleife liest das Programm dann die Audiodaten per Mikrofon und übergibt sie an Kaldi (Zeile 12). Die Methode liefert TRUE zurück, wenn sie ein Wort beziehungsweise eine Phrase aus der Liste von Zeile 7 findet. Die Zeile 14 prüft dann, ob die gefundenen Worte eine gültige Kombination darstellen. Falls ja, verarbeitet das Programm den Befehl.

Der reale Code gerät etwas komplexer, was aber nicht an Vosk liegt. Ein spezielles Kommandowort versetzt das Programm in den Kommandomodus und verhindert so, dass die Software jeglichen aufgeschnappten Text als Befehl interpretiert. Via LED signalisiert das Programm dann die Aktivierung des Mikros. Den gesamten Code gibt es im Repository zum Pi-Webradio . Der sehr generisch gehaltene Code lässt sich mit wenig Aufwand für eigene Projekte abwandeln.

Performance

Zum Schluss werfen wir einen Blick auf die Performance. Für den reinen Betrieb des HATs und seiner Aufnahmefunktion genügt auch ein Pi Zero, die Datenrate für vier Kanäle mit 16K-Samples überlastet selbst den kleinsten aus der Familie nicht. Unsere Messungen ergaben eine CPU-Last von rund 10 Prozent und eine etwa gleich hohe Speicherauslastung. Das liegt nicht wesentlich über den Werten eines unbelasteten Systems.

Performance

Das Weiterverarbeiten der Audiodaten erfordert aber mehr Rechenleistung, als sie der Pi Zero bereitstellt. Das gilt auch beim speziell für den Zero gedachten kleineren HAT. Konsequenterweise läuft Vosk nicht auf dem Zero mit seiner Armv6l-Architektur. Mit dem Zero 2 steht aber eine Alternative zur Verfügung, mit der sich ein noch kompakteres intelligentes Mikrofon bauen lässt, sofern Sie eins der seltenen Exemplare ergattern.

Wir testeten das kleine Kraftpaket mit dem WM8960-Audio-HAT von Waveshare . Er bringt in etwa die gleiche Ausstattung mit wie der 2-Mic-HAT von Seeed – beide verwenden dabei den gleichen Soundchip und verbauen zwei Mikrofone 4 .

Dem WM8960 fehlen zwar die APA102- LEDs, aber dafür führt er alle Pins heraus und die Audioausgabe unterstützt Stereo. Als intelligentes Mikro funktioniert der HAT mit dem Zero 2 perfekt. Einzig das optische Feedback fehlt, aber dank der herausgeführten Pins fällt das Nachrüsten der LEDs nicht schwer, zum Beispiel mit Pimoronis Blinkt! .

Fazit

Seeed bietet mit dem ReSpeaker einen preislich interessanten Mikrofon-HAT, der sich perfekt für die Offline-Sprachautomation in kleineren Projekten mittels Vosk eignet. Für die reine Aufnahmefunktion gibt es günstigere Lösungen, aber die verbauten LEDs bringen spürbar mehr Pep.

Das recht junge Projekt Vosk überzeugt durch seinen Funktionsumfang. Mit einer Zeile installiert und mit weniger als 30 Zeilen Code integriert, das macht Vosk STT (Speech to Text) alltagstauglich – dank seiner vielen Sprachmodelle nicht nur für Englisch. Der Einsatz im Pi-Webradio-Projekt des Autors zeigt aber auch Grenzen auf. So fehlt im Sprachmodell der MDR (Mitteldeutsche Rundfunk), während Vosk SR 2 oder Ö 1 problemlos verarbeitet. Die Modelle lassen sich aber erweitern, entsprechende Hinweise gibt es auf den Projektseiten und in den Github-Issues dazu.

Vom Mikrofon bis zu einem digitalen Assistenten ist es allerdings ein langer Weg, denn nach dem Umwandeln von Sprache in Text folgt mit der Textinterpretation der weitaus schwierigere Teil. Ohne den massiven Einsatz von Rechenleistung in der Cloud lässt sich das nicht umsetzen. Die großen Player bieten ihre Systeme mittels API an, aber die Nutzung geht dabei schnell ins Geld. Wer solch einen Assistenten also wirklich braucht, muss in den sauren Apfel beißen und einen Mithörer akzeptieren.

(tle/jlu)

Dateien zum Artikel herunterladen unter

www.raspi-geek.de/dl/46786