Forum: Mikrocontroller und Digitale Elektronik Hardwareauswahl für Smart Speaker


von Max S. (maxxl99)


Lesenswert?

Hi zusammen,

ich würde gerne meine mittlerweile etwas eingestaubten E-Technik 
Kenntnisse mit einem Freizeitprojekt wieder beleben und einen eigenen 
Smart Speaker bauen, den ich via WLAN mit dem Internet verbinden kann.

Bevor ich jedoch aktiv loslegen kann, muss ich mich aber logischerweise 
für die richtigen Hardwarekomponenten bzw. das passende Entwicklerboard 
für meinen Use-Case entscheiden. Da mir auf dem Gebiet der 
Sprachverarbeitung leider sämtliche Erfahrung fehlt, wäre ich dankbar 
für jeden Tipp hinsichtlich meiner Anforderungen an die Hardware.

Insbesondere sind für mich noch folgende Fragen offen:
- Welche Taktfrequenz ist für eine standardmäßige Sprachverarbeitung 
notwendig? Reichen 240MHz auf einer optimierten CPU wie Xtensa LX7 o.Ä.?
- Wieviel RAM und (internen) Flash haltet Ihr für sinnvoll? Neben der 
Firmware sollen auf dem Flash noch einige Sprachbefehle gespeichert 
sein, die z.B. den Anwender bei fehlendem Netzwerk informieren, dass das 
Gerät gerade offline ist.
- Würdet Ihr eher auf einen µC mit integriertem WLAN und BT setzen oder 
dafür ein externes Modul auflöten?

Falls jemandem zufällig ein passendes Entwicklerboard dafür einfällt, 
nehme ich auch den Tipp gerne an! Aktuell hänge ich irgendwo zwischen 
NXP RT1064EVK, ReSpeaker Lite Kit und dem Teensy 4.0.

Tausend Dank für Eure Tipps und Erfahrungswerte vorab!

Beste Grüße
Max

von Frank K. (fchk)


Lesenswert?

Ich würde die Hardware erstmal nach hinten stellen.

Zuerst kommen die Algorithmen, die Du einsetzen willst. Kennst Du die? 
Ist da schon was vorhanden? Ansonsten wäre der erste Schritt, das auf 
einem Linux-PC auszuprobieren. Auf einem normalen PC lässt sich am 
einfachsten entwickeln, und Du musst Dir um die Hardware keine Sorgen 
machen. Die funktioniert garantiert, es gibt alle Treiber etc.

Für den ersten Wurf kannst Du was mit Phython oder Matlab 
zusammenschieben und später dann auf C(++) wechseln.

Wenn Du soweit bist, dann wäre der zweite Schritt sowas wie ein Pi Zero 
W (mit Wifi) oder so. Das Portieren der Software vom PC-Linux 
(vorzugsweise ein Debian) auf das Pi Linux (auch ein Debian) sollte 
relativ einfach sein. So ein Pi Zero W ist jetzt nicht so schnell, aber 
klein und günstig. Wenn Deine Algorithmen zu viel Rechenleistung 
brauchen, dann wirst Du das an dieser Stelle merken und kannst 
optimieren. Wohlgemerkt die Algorithmen optimieren - die Implementation 
kommt erst an zweiter Stelle.

Bei einem Einzelstück könntest Du jetzt aufhören. Bei größeren 
Stückzahlen oder größerem Ehrgeiz könntest Du jetzt den billigsten 
Prozessor wählen, der Deine Algorithmen gerade noch ausführen kann. Und 
erst an dieser Stelle kommt dann die Frage nach der Hardware.

fchk

von Harry L. (mysth)


Lesenswert?


von Εrnst B. (ernst)


Lesenswert?

Max S. schrieb:
> Welche Taktfrequenz ist für eine standardmäßige Sprachverarbeitung
> notwendig?

Kommt darauf an, was du als "standardmäßig" ansiehst.
Aktueller Trend ist ja, da einfach viel (richtig viel) Rechenleistung 
draufzuwerfen.

z.B. mit OpenAI Whisper. Das hat eine gute Erkennung, mit dem Nachteil 
dass es ab und an Sachen (ganze Nebensätze...) halluziniert.

Damit kommt man angeblich (Tiny-Model mit nur einer Sprache) auf einem 
RasPi 4 wohl gerade so auf Echtzeit/Streaming.

von Michael B. (laberkopp)


Lesenswert?

Max S. schrieb:
> Smart Speaker bauen, den ich via WLAN mit dem Internet verbinden kann.

Und was soll dann passieren ?

'Einfach so' kommt aus dem Internet keine Musik.

Entweder du greifst auf bestimmte streaming-Anbieter zu, oder du 
generierst selbst Töne, oder soll der Speaker dir Webseiten vorlesen ?

Das ist die erste Entscheidung, und ganz zum Schluss kommt 'welche 
Taktfrequenz'.

Das ubliche Experimentierboatd fur 'irgendwas mit Internet' ist der rPi.

von Harald K. (kirnbichler)


Lesenswert?

Michael B. schrieb:
> 'Einfach so' kommt aus dem Internet keine Musik.

Das ist aber deutlich einfacher hinzubekommen als die vom Threadstarter 
gewünschte Spracherkennung.

Ein Internetradio lässt sich mit 'nem ESP32 zusammmenklöppeln, das haben 
schon sehr viele gemacht, da muss man noch nicht mal selbst irgendwelche 
Software schreiben.


Eine Heimwanze, die jedes gesprochene Wort mithört und versteht, ist was 
ganz anderes. Warum man sowas haben wollen könnte, ist nochmal ein ganz 
anderes Thema.

Die etablierten Systeme (Alexa & Co.) arbeiten zweischichtig - die im 
Gerät selbst verbaute Spracherkennung kann wenig mehr als das 
"Triggerwort" erkennen, das dann halt "Alexa", "Siri" oder vielleicht 
auch "Hey Arschloch" lautet.

Den Rest der Spracherkennung aber erledigt Software irgendwo in "der 
Cloud".

Daß das komplett indiskutabel ist, müssen wir nicht diskutieren, oder?

Um auch nur ähnlich Funktionalität (minus der Datenausleitung) lokal 
hinzubekommen, ist einiges an Rechenleistung und Programmierkünsten 
erforderlich -- und das ist, vorsichtig formuliert, ein paar Hutnummern 
viel zu groß für ein "Freizeitprojekt" von jemandem, der seine 
"eingestaubten E-Technik-Kenntnisse" wieder beleben möchte.

von Jörg (Gast)


Lesenswert?

Sofern du an einer Homeassistant Lösung interessiert bist, ist die 
Problematik schon gelöst:
Ein ESP32 mit ESP-Home übernimmt die Wakeword Erkennung und streamt das 
Audio dann an einen potenteren HA Server.

https://esphome.io/components/voice_assistant

von Peter D. (peda)


Lesenswert?

Ich denke mal, sowas selber entwickeln zu wollen, ist ein Faß ohne 
Boden.
Man schaut im Internet, wo jemand sowas schon mal gemacht hat, was der 
für eine Hardware benutzt hat und pappt dann nur noch dessen 
Legosteinchen zusammen.
Eingestaubte E-Technik Kenntnisse nützen dabei kaum. Die komplexen 
Platinen wird man eh nicht mehr selber routen können.
Man wird auch nie annähernd den Funktionsumfang von Kaufprodukten 
erreichen.

von Axel S. (a-za-z0-9)


Lesenswert?

Max S. schrieb:
> ich würde gerne meine mittlerweile etwas eingestaubten E-Technik
> Kenntnisse mit einem Freizeitprojekt wieder beleben
...
> Da mir auf dem Gebiet der
> Sprachverarbeitung leider sämtliche Erfahrung fehlt

Kurz gesagt: du hast die idealen Voraussetzungen dafür, eine Alexa 
selber zu bauen. Das einzige was dir noch fe.lt, ist die Taktfrequenz 
für den Prozessor ... oder vielleicht doch nicht?

Ich würde sagen: Fang doch mal damit an, daß du dir die Sachgeschichte 
der Maus ansiehst, die sich um Alexa dreht: 
https://www.wdrmaus.de/filme/sachgeschichten/digitaler_sprachassistent.php5

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Insbesondere sind für mich noch folgende Fragen offen:
> - Welche Taktfrequenz ist für eine standardmäßige Sprachverarbeitung
> notwendig? Reichen 240MHz auf einer optimierten CPU wie Xtensa LX7 o.Ä.?

Also sprachgesteuerte Dialogsysteme wie beispielsweise Abfrage des 
Zugplanes der Bahn per Telefon gab es bereits vor 25 Jahren als 
Taktfrequenzen zwischen 100 und 200 MHz üblich fahren.

"Dragon NaturallySpeaking" war die gängige Consumer-Soft damals, lief 
unter Windows XP und so. 
https://de.wikipedia.org/wiki/Dragon_NaturallySpeaking

Also Fachkräfte auf diesem Gebiet bauen dir das heute noch mit einem 
Wald und Wiesen DSP, Spracherkennung ist ein alter Hut.
* https://www.sympalog.de/was-ist-ein-sprachdialogsystem/
* https://www.wolfgang-wahlster.de/wwdata/Alltag/Alltag.html
* https://transcribe.com/de/blog/die-geschichte-der-spracherkennung

: Bearbeitet durch User
von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Harald K. schrieb:
> Um auch nur ähnlich Funktionalität (minus der Datenausleitung) lokal
> hinzubekommen, ist einiges an Rechenleistung und Programmierkünsten
> erforderlich -- und das ist, vorsichtig formuliert, ein paar Hutnummern
> viel zu groß für ein "Freizeitprojekt" von jemandem, der seine
> "eingestaubten E-Technik-Kenntnisse" wieder beleben möchte.

Sehe ich auch so. Mit einem gewöhnlichen Mikrocontroller wird das auf 
keinen Fall was. Dazu sind ganz andere Kaliber nötig. Ich kann mir auch 
kaum vorstellen, dass jemand ein kleines privates Rechenzentrum 
betreiben will, bloß um die Sprachsteuerung zu ermöglichen. Und bevor 
ich so etwas zu Amazon/Google/Microsoft auslagere, müsste mir jemand das 
Gehirn raus blasen.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

>Mit einem gewöhnlichen Mikrocontroller wird das auf keinen Fall was.

Ein Raspi kann hier schon einiges:

https://github.com/petewarden/spchcat

Ich habe es noch nicht probiert, klingt aber "viel versprechend":

https://www.hackster.io/petewarden/recognizing-speech-with-a-raspberry-pi-50b0e6

von 900ss (900ss)


Lesenswert?

Harald K. schrieb:
> Die etablierten Systeme (Alexa & Co.) arbeiten zweischichtig - die im
> Gerät selbst verbaute Spracherkennung kann wenig mehr als das
> "Triggerwort" erkennen, das dann halt "Alexa", "Siri" oder vielleicht
> auch "Hey Arschloch" lautet.
> Den Rest der Spracherkennung aber erledigt Software irgendwo in "der
> Cloud".

Du solltest dein Wissen auffrischen anstatt dir Fäkalwörter einzuprägen 
und wie oben in die Tastatur zu hacken.
Vor ca. 5 Jahren schon gab es ein Open Source Projekt, was auf einem RPi 
lief, Spracherkennung und dann Befehlsausführung sehr gut beherrschte 
OHNE Cloud-Unterstützung. Es lief alles lokal. Z.B. konnte ich meine 
Streaming Boxen dann per Sprache steuern.

Ich hab leider vergessen wie das Projekt hieß. Damals hab ich es nur mal 
testweise aufgebaut weil ich wissen wollte wie gut es funktioniert. Und 
das war beeindruckend, man brauchte nur ein Mikrofon (besser noch ein 
Array) am RPi und man konnte loslegen.

Nachtrag: ich habe nochmal gegraben, ich glaube es war SNIPS. Hier ein 
Bericht von Heise von 2019, der immerhin gleich am Anfang beschreibt, 
das es ohne Cloud auskommt.

https://www.heise.de/ratgeber/Snips-Raspi-Sprachassistent-ganz-ohne-Cloud-4415247.html?seite=all

Scheint inzwischen von Sonos geschluckt worden zu sein. Ob es noch Open 
Source ist, das steht auf einem anderen Blatt.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

900ss
>Scheint inzwischen von Sonos geschluckt worden zu sein. Ob es noch Open
>Source ist, das steht auf einem anderen Blatt.

Irgendwas 7 Jahre altes liegt noch auf GitHub. Da steht zwar Doku, aber 
ein wenig Python-Code ist dabei:

https://github.com/clonemvp/snips-platform-documentation

von Harald K. (kirnbichler)


Lesenswert?

Wie gut eine Sprachsteuerung funktioniert, hängt sehr stark von der 
Erwartungshaltung ab, die man an die Sprachsteuerung und -Erkennung hat.
Und auch von dem, was die Sprachsteuerung erzielen soll.

Der erste Schritt ist überhaupt Sprache zu erkennen und mit 
(hoffentlich) geringer Fehlerrate in Text zu übersetzen.

Die einfachste Variante ist eine, die nur vorgegebene Schlüsselwörter 
kennt. Das ist die von Boimler beschriebene Zugauskunft.

Die nächste Variante muss auf die Sprecherstimme trainiert werden, so 
etwas haben Diktiersysteme wie "Dragon" umgesetzt.

Anspruchsvoller sind sprecherunabhängige Systeme.

Damit ist der Drops aber immer noch nicht gelutscht, denn der erkannte 
Text muss nun auch noch verstanden werden. Wenn ein ganz eindeutiger 
fest vorgegebener Satzbau verwendet wird, ist das leicht, wenn aber frei 
gesprochener Text verstanden werden soll, ist ganz erheblicher Aufwand 
nötig. Dieser Aufwand ist es aber, der Systeme wie Alexa, Siri & Co. so 
erfolgreich machen.

900ss schrieb:
> Du solltest dein Wissen auffrischen anstatt dir Fäkalwörter einzuprägen
> und wie oben in die Tastatur zu hacken.

Nichts von Deinem Gefasel widerspricht in irgendeiner Weise dem, was ich 
geschrieben habe.

Wenn Deine Religion Dir eine klare Ausdrucksweise verbietet, so ist das 
Dein persönliches Problem, ich werde wegen solcher selbst zugefügter 
geistiger Erkrankungen meine Ausdrucksweise nicht ändern.

von 900ss (900ss)


Lesenswert?

Harald K. schrieb:
> Nichts von Deinem Gefasel widerspricht in irgendeiner Weise dem, was ich
> geschrieben habe.

Doch, du hast erwähnt, dass alles in die Cloud geschickt wird, um es in 
Befehle zu übersetzen, was mit SNIPE nicht(!) der Fall ist. Das scheinst 
du nicht genügend informiert gewesen zu sein.

Harald K. schrieb:
> Wenn Deine Religion Dir eine klare Ausdrucksweise verbietet, so ist das
> Dein persönliches Problem, ich werde wegen solcher selbst zugefügter
> geistiger Erkrankungen meine Ausdrucksweise nicht ändern.

Oh je, armer Wicht.

von Frank O. (frank_o)


Lesenswert?

900ss schrieb:
> Oh je, armer Wicht.

Muss doch nicht sein.

Ist wirklich ein interessantes Thema. Macht das bitte nicht kaputt!

von Harald K. (kirnbichler)


Lesenswert?

900ss schrieb:
> Doch, du hast erwähnt, dass alles in die Cloud geschickt wird, um es in
> Befehle zu übersetzen, was mit SNIPE nicht(!) der Fall ist.

Ja, mit diesem einen, weltweit von allen genutztem Beispiel, die völlig 
irrelevanten Alexa, Siri & Co. machen das alle nicht, aber die nutzt ja 
auch keiner.

Wie schlägt sich denn "Snipe/Snips" im Sprachverständnis in Relation zu 
den anderen Varianten?

Kann man dem tatsächlich so etwas zuraunen wie "Hey (900ss), mach mal 
schöne Musik an!" oder "Hey (900ss), regnets morgen in Regensburg?"

900ss schrieb:
> Oh je, armer Wicht.

Wenn Du wegen einer Beispielformulierung derartig abgehst, was soll ich 
da sonst antworten?

von Obelix X. (obelix)


Lesenswert?


von Harald K. (kirnbichler)


Lesenswert?

Obelix X. schrieb:
> Nur mal so nebenbei :

Und? ChatGpt in der Cloud, na super.

von 900ss (900ss)


Lesenswert?

Harald K. schrieb:
> Kann man dem tatsächlich so etwas zuraunen wie "Hey (900ss), mach mal
> schöne Musik an!" oder "Hey (900ss), regnets morgen in Regensburg?"

Es hat ausreichend gut Sprache/Befehle verstanden ohne langem 
Stimmtraining und ohne etwas n mal zu wiederholen.

Harald K. schrieb:
> Wenn Du wegen einer Beispielformulierung derartig abgehst, was soll ich
> da sonst antworten?

Ich verstehe, dass dir dazu nichts einfällt.

von Harald K. (kirnbichler)


Lesenswert?

900ss schrieb:
> Es hat ausreichend gut Sprache/Befehle verstanden ohne langem
> Stimmtraining und ohne etwas n mal zu wiederholen.

Nun steht also anekdotische Wahrnehmung den real existierenden 
cloudbasierten Systemen gegenüber.


900ss schrieb:
> Ich verstehe, dass dir dazu nichts einfällt.

Du musst da irgendeine merkwürdige Fixierung haben. Wurde Dir als Kind 
der Mund mit Seife ausgewaschen? Verprügel Deine Eltern.

von 900ss (900ss)


Lesenswert?

Harald K. schrieb:
> Nun steht also anekdotische Wahrnehmung den real existierenden
> cloudbasierten Systemen gegenüber.

Ich hab es getestet und kann eigene Erfahrungen berichten. Damit war/ist 
das System wohl real existent. Wie meine Erfahrungen gedeutet werden, 
liegt beim Leser. Ich war zufrieden und fand es beeindruckend gut.

Welche Erfahrungen hast du mit nicht-cloudbasierten Lösungen gemacht und 
welche Systeme waren das? Berichte gerne von deinen Erfahrungen falls es 
welche gibt außer "hören/sagen".

von Axel S. (a-za-z0-9)


Lesenswert?

900ss schrieb:
> Harald K. schrieb:

Könnt ihr euren Kleinkrieg nicht per Mail austragen? Ihr seid ohnehin 
offtopic. Der TE wollte ja was selber schreiben. Wenn er nur irgendwas 
installieren wöllte, dann würden die Hardwareanfordungen ja feststehen.

von 900ss (900ss)


Lesenswert?

Axel S. schrieb:
> Ihr seid ohnehin offtopic

Ich dachte, ich hatte einen interessanten Vorschlag gemacht, mal nach 
SNIPE zu schauen. Zumal es eben ohne Cloud ausgekommen ist, als ich es 
testete.
Mir ging es danach darum, die von HK angezweifelte Qualität 
geradezurücken.
Dass das in Zweifel stellen von Fäkalsprache gleich so wüste 
Beschimpfungen auslöst.... schulterzuck..

von Christoph M. (mchris)


Lesenswert?

900ss schrieb:
>Ich dachte, ich hatte einen interessanten Vorschlag gemacht, mal nach SNIPE zu 
schauen.

Das fand ich recht nützlich.

> wüste Beschimpfungen auslöst.... schulterzuck..
Hier vielleicht ein guter Satz aus den Management Lehrgängen, der sehr 
hilfreich im Umgang mit dem MC-Netz ist:
"Wenn dir ein Affe einen Baum hin stellt, musst du nicht rauf klettern"

von 900ss (900ss)


Lesenswert?

Axel S. schrieb:
> Der TE wollte ja was selber schreiben
Ich vermute stark, dass das ohne eine gewisse Basis (SDK) und viel 
Erfahrung in dem Gebiet kaum möglich ist.

Aber hier: Gerade mit einer Suchmaschine entdeckt. Da kann man 
vielleicht drauf aufbauen.

Espressif bietet ein Framework für das Thema:
https://github.com/espressif/esp-sr

Zitat:
"Espressif's speech command recognition model MultiNet is specially 
designed to provide a flexible off-line speech command recognition 
model. With this model, you can easily add your own speech commands, 
eliminating the need to train model again."

Arbeitet scheinbar auch offline. Wie gut es funktioniert, weiß ich 
natürlich nicht. Das mag derjenige, den es interessiert, selber 
herausfinden.

Hätte nicht gedacht, dass das mit einem solchen Board ESP32-S3 bzw 
ESP32-P4 überhaupt möglich ist. Wenn ich meinen Tisch nicht voller 
Analogelektronik hätte, würde ich es selber auch mal testen und 
herausfinden wir gut es funktioniert.

Christoph M. schrieb:
> "Wenn dir ein Affe einen Baum hin stellt, musst du nicht rauf klettern"

:)) Stimmt im Prinzip. Aber manchmal... ;)

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

900ss schrieb
>Espressif bietet ein Framework für das Thema:
>https://github.com/espressif/esp-sr

Uberi scheint auch relativ aktuell zu sein:

https://github.com/Uberi/speech_recognition

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Hier vielleicht ein guter Satz aus den Management Lehrgängen, der sehr
> hilfreich im Umgang mit dem MC-Netz ist:
> "Wenn dir ein Affe einen Baum hin stellt, musst du nicht rauf klettern"

Ein weiters Indiz für die Dämlichkeit mancher Managment-Lehrgänge.
Ok, manche Manager warten heute noch still und unbewegt unter jedem 
Schattenspender, das ihnen die Frucht vom Baum ohne eigenes Zutun von 
allein in den Schoß fällt ... SCNR

* https://github.com/voice-engine/smart_speaker_from_scratch
* 
https://3reality.com/product/smart-speaker-development-kit/?srsltid=AfmBOorxHxYwvI5SjhEXcRx1u4ugPljNOtYQHMJ0OKjOiQnAqUx-My8z

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.