Forum: Mikrocontroller und Digitale Elektronik Spracherkennung auf dem uC


von Alexa (Gast)


Lesenswert?

Hey Leute,

kennt von euch jemand eine möglichst kompakte Library für 
Spracherkennung, die man auf einer Cortex-M7 CPU laufen lassen kann?
Audio-Input kommt via PDM Mems Mikrofon.

Es muss natürlich nicht die gleiche Intelligenz wie Alexa oder Siri 
haben, aber einfache Befehle erkennen können um ein paar GPIOs zu 
schalten.

Danke!

Alternativ könnte ich mir tatsächlich auch eine Anbindung an eine 
Cloud-basierte Lösung vorstellen, sodass ich das Audio über eine 
Ethernet-Verbindung tunneln würde. (falls sowas schonmal jemand probiert 
hat)?

von Johannes S. (Gast)


Lesenswert?

hier ist ein Ansatz mit Tensorflow lite:
https://os.mbed.com/docs/mbed-os/v6.12/mbed-os-pelion/machine-learning-with-tensorflow-and-mbed-os.html

aber das ist sicher keine Lib die man mal eben einbindet.

von Rainer V. (a_zip)


Lesenswert?

Johannes S. schrieb:
> aber das ist sicher keine Lib die man mal eben einbindet.

Vor allem sollte man einige Kenntnisse in der Problematik der 
Spracherkennung haben! Und das ist nicht wenig...und wird auch bei 
vorhandener "Bibliothek" keine "sorglos" Applikation werden. Abgesehen 
davon kenne ich erst mal keine Software für den Cortex-M7. Heist aber 
nix...
Gruß Rainer

von Schlaumaier (Gast)


Lesenswert?

Das einzige Projekt in der Richtung das ich kenne ist.

https://www.audeme.com/movi.html

Und sobald ich einen Deutschen Händler finde, werde ich es mir zulegen. 
Aber die USA sind kein Land in den ich gerne bestellen würde. Die 
Versandkosten schlagen mir auch den Magen.

von Rainer V. (a_zip)


Lesenswert?

Alexa schrieb:
> Es muss natürlich nicht die gleiche Intelligenz wie Alexa oder Siri
> haben, aber einfache Befehle erkennen können um ein paar GPIOs zu
> schalten.

Und sicher hast du vermutlich keine Lust, dir zu überlegen, wie du das 
selbst implementieren würdest :-) Zumindest Rohdatenaufbereitung und die 
eigentliche Erkennung sollten als Konzept da sein und vielleicht noch 
das Bewußtsein, dass das eine harte Echtzeit-Aufgabe ist...
Wünsche trotzdem viel Spass. Gruß Rainer

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Google-Suchmuster: speech recognition chips
liefert z.B. ein Nuvoton ISD9160 der als Board unter 20€ kostet.
DigiKey hat ein DemoBoard: ISD-DMK_9160-ND
Und dort ist auch ein Datenblatt verlinkt.

Das zeigt schon mal was auf einem Microcontroller möglich ist.

Weitere Treffer habe ich nicht geschaut, aber vielleicht ist die 
gewünschte Library dabei.

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Bei den Movi-Projekt setzten die eine A13 CPU nur für die 
Audio-Umwandlung und die Sprache ein. Offiziell schafft die 150 Worte, 
es sollen laut Foren bis zu 200 möglich sein.

Da man das Teil aber via Schnittstelle selbst programmieren kann, sollte 
es kein großes Problem sein, via Kombi's auch mehr Freiheit zu 
programmieren.

Das ganze wird dann via Arduino angesteuert. Ich kann mir eine 
Ansteuerung via Beere auch vorstellen. Wenn du was größeres vor hast, 
sollte es möglich sein, die Daten vom Arduino weiterzuleiten.

In meinen Augen ist das Problem aber weniger ein Hardware als eine 
Software frage. Du musst die Sprache in Phoneme zerstückeln, die dann 
erkennen und in der Datenbank nachschauen.  Das Problem dabei ist, das 
jeder Mensch unterschiedlich spricht.

Ich erinnere mich noch an eine Cbit wo die DRAGON-SPEAK vorgestellt 
haben, und die nette Dame mit sehr trainierter Stimme das vorgeführt 
hat. Dabei hat sie erklärt das man den System erst man 2 Std. seine 
Aussprache mitteilen muss und auf meine Frage wie das ist wenn ich 
Abends gefeiert habe, sagte sie das würde die Erkennung um 40-60 % 
vermindern.

Das Problem ist immer noch aktuell, nur haben die Server bei den 
Anbietern genug Power das zu kompensieren unter der Voraussetzung das du 
nur Standard-Sachen redest. Ich weiß bis heute noch nicht wie man bei 
Android einen PUNKT oder einen Absatzschaltung diktiert. ;)

Und wie gesagt, die haben mehr Rechenpower als dein armseliger Chip. Und 
das Movi-System musst du an deine Sprache trainieren.

von Rainer V. (a_zip)


Lesenswert?

Alexa schrieb:
> kennt von euch jemand eine möglichst kompakte Library für
> Spracherkennung, die man auf einer Cortex-M7 CPU laufen lassen kann?

Also das ist mir wie immer jetzt zu wenig an Angaben. Es macht schon 
einen kleinen Unterschied, ob du für dein Wohnzimmer etwas 
Konfortableres als den lausige Klatschschalter, "Licht ein, Licht aus" 
haben möchtest oder ob du mit dem gesprochenen Begriff eine Suchmaschine 
antriggern möchtest. Es geht - wie gesagt - sehr schnell in Richtung 
harter Echtzeit, denn du möchtest wahrscheinlich nicht 5 sek oder länger 
warten, wenn du z.B. "Stop" ausgeführt haben willst! Oder bei einem 
Abfragewunsch das beliebte "habe ihren Wunsch nicht verstanden, bitte 
wiederholen" quasi in Echtzeitschleife endlos ausführen möchtest.
Gruß Rainer

von No Y. (noy)


Lesenswert?

Wenn es was professionelles sein darf:
https://www.voiceinterconnect.de/de/

von c-hater (Gast)


Lesenswert?

Schlaumaier schrieb:

> Das Problem dabei ist, das
> jeder Mensch unterschiedlich spricht.

Genau.

Mit Training für einen Sprecher kann man Spacherkennung für einige 
Wörter sogar auf sehr kleinen µC implementieren, sogar auf welchen in 
der Größenordnung etwa eines Tiny85.

Aber eine Spracherkennung für beliebige Sprecher, das ist eine ganz 
andere Dimension, selbst wenn es nur um einige wenige Schlüsselwörter 
geht und nicht noch um eine semantische Analyse des Gesagten.

von Stefan F. (Gast)


Lesenswert?

Selbst bei diesem Alexa Lautsprecher funktioniert die Spracherkennung 
schlecht. Es wurde bekannt, dass er viel zu häufig aktiviert wird, 
obwohl niemand das Kommando gegeben hat.

von Rainer V. (a_zip)


Lesenswert?

Alexa schrieb:
> kennt von euch jemand eine möglichst kompakte Library für
> Spracherkennung, die man auf einer Cortex-M7 CPU laufen lassen kann?

Scheint wohl einer der Stammtischfragen zu sein, bei denen das nächste 
Bier wichtiger ist...ich antworte jetzt mal einfach mit Nein. Würde mich 
wundern, wenn jemand mit einen Ja käme, ohne die üblichen Mutmassungen 
und Selbstdarstellungen, die so eine Frage immer nach sich zieht! Also 
was willste machen...Alexa...
Gruß Rainer

von Johannes S. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Ich erinnere mich noch an eine Cbit wo die DRAGON-SPEAK vorgestellt
> haben,

Das wurde mal mit OS/2 Warp ausgeliefert und sollte da ein Zugpferd 
sein. Es hatte auch den Anspruch ein Diktiersystem zu sein, also 
beliebige Texte erkennen zu können. Aber richtig praxistauglich war es 
durch zu hohe Fehlerrate nicht und es hat die damals aktuellen 486er 
ganz schön lahmgelegt.

In PKW sind die Systeme aber schon recht gut, vor min. 12 Jahren hatte 
BMW schon einen Sprachassistenten der Kommandos ganz gut versteht. Auch 
Zahlen zur Telefonnummerneingabe, auch wenn die in zusammhängenden 
Blöcken gesprochen werden.
Da sitzt man nah am Mikrofon und hat wenig Umgebungsgeräusche. Für eine 
Alexa ist es da schon schwieriger, bei 2 m Abstand und sehr Variablem 
Satzbau.

Stefan ⛄ F. schrieb:
> Selbst bei diesem Alexa Lautsprecher funktioniert die Spracherkennung
> schlecht.

das ist zwar nur das Aktivierungswort, aber wenn das zu unempfindlich 
ist, dann macht das ja auch keine Freude.

Alexa benutze ich mit ioBroker, da können dann beliebige Geräte 
gesteuert werden, auch Selbstbau Aktoren über eigene Schnittstellen. 
Aber das ist dann auch wieder die fette Cloud Lösung.

von Schlaumaier (Gast)


Lesenswert?

Naja, Google hat auch eine OFFLINE-Spracherkennung. Funktioniert 
halbwegs brauchbar, ABER die erkennbaren Worte sind sehr begrenzt und 
von der Phonetik her sehr unterschiedlich und deshalb einfach zu 
erkennen.

Ist m.M.n. das selbe Verfahren wie das Movi-Zeug. Die greifen da ja 
teilweise auch auf offenen Libs zu.

Fakt ist aber. Die ganze Technik ist kompliziert. Wir brauchen noch 20 
Jahre bevor es wie bei der Enterprice funktioniert. Und selbst das ist 
ein ONLINE-System. ;)

von Michael D. (nospam2000)


Lesenswert?

Schlaumaier schrieb:
> Und sobald ich einen Deutschen Händler finde, werde ich es mir zulegen.
> Aber die USA sind kein Land in den ich gerne bestellen würde. Die
> Versandkosten schlagen mir auch den Magen.

Du kannst mal bei mouser.de schauen. Die versenden aus USA, aber ab 
50Euro (netto) fallen keine Versandkosten an. Das spezielle Board konnte 
ich dort nicht finden, aber das liegt auch an dem ungünstigen 
Suchbegriff "MOVI" für den es 426 Treffer gibt.

Die Preise dort sind immer Nettopreise, d.h. die Mehrwertsteuer musst du 
noch dazurechnen.

   Michael

von Jason (Gast)


Lesenswert?

Schlaumaier schrieb:

> Naja, Google hat auch eine OFFLINE-Spracherkennung.

Google? Hat nicht mein Vertrauen.

von Johannes S. (Gast)


Lesenswert?

Jason schrieb:
> Google? Hat nicht mein Vertrauen.

aber sowieso schon alle deine Daten...

von funky (Gast)


Lesenswert?

https://github.com/espressif/esp-sr

Nix für den Cortex aber für den ESP32.

Evtl gibt es da Hinweise. Man scheint eigene Wörter anlegen zu können. 
Hab es noch nicht asuprobiert und weiß nicht wie gut das funktioniert

In der c't wurde vor langer Zeit mal Snips vorgestellt. Das war ein 
Cloudservice der mit eigenen Kommandos angelernt werden konnte. Aber 
keine Ahnung ob es das noch gibt.

von pegel (Gast)


Lesenswert?


von Schlaumaier (Gast)


Lesenswert?

Michael D. schrieb:
> as spezielle Board konnte
> ich dort nicht finden, aber das liegt auch an dem ungünstigen
> Suchbegriff "MOVI" für den es 426 Treffer gibt

Ich vermute eher das es deshalb ist, weil es ein Crowdfunding Modul ist. 
Und von der Entwicklergruppe selbst vertrieben wird.

von zrtzzrz (Gast)


Lesenswert?

NXP hatte vor kurzem was veröffentlicht

https://www.nxp.com/design/designs/nxp-edgeready-mcu-based-solution-for-local-voice-control:MCU-LOCAL-VOICE

ansonst gab es mal die google API ..
das konnte sogar ein Atmel mit ENC
leider glaube nicht mehr kostenlos

NXP hatte mit den LPCs mal eine demo auf der eine Malaspina lib lief
eine hand voll vordefinierter worte ging da schon recht gut


nuja ansonst die amazon API nutzen ...

von Jason (Gast)


Lesenswert?

Johannes S. schrieb:
> Jason schrieb:
>> Google? Hat nicht mein Vertrauen.
>
> aber sowieso schon alle deine Daten...

Da ich Google nicht verwende und alle Seiten, die mit Google verbunden 
sind, von uMatrix & uBlock Origin blockieren lasse, ist die Frage woher 
Google meine Daten hat und vor allem welche?

von Johannes S. (Gast)


Lesenswert?

Na dann Glückwunsch.

von Peter K. (Gast)


Lesenswert?

" die mit Google verbunden
sind, von uMatrix & uBlock Origin blockieren lasse"

LOL, mehr gibt es dazu wohl nicht zu sagen...

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

funky schrieb:
> In der c't wurde vor langer Zeit mal Snips vorgestellt. Das war ein
> Cloudservice der mit eigenen Kommandos angelernt werden konnte. Aber
> keine Ahnung ob es das noch gibt.

Vor zwei Jahren von Sonos aufgekauft und vom Markt genommen.

von No Y. (noy)


Lesenswert?

No Y. schrieb:
> Wenn es was professionelles sein darf:
> https://www.voiceinterconnect.de/de/



Hat keiner meinen Beitrag gelesen?? Was spricht hier dagegen?

von Stefan F. (Gast)


Lesenswert?

No Y. schrieb:
> Hat keiner meinen Beitrag gelesen?? Was spricht hier dagegen?

Alexa beteiligt sich die ganz Zeit nicht an ihrer eigenen Diskussion. 
Beschwere dich bei ihr, nur sie kann etwas zu deinem Vorschlag sagen. 
Alle anderen wissen schließlich nicht, ob es für sie "etwas 
professionelles" sein darf.

von Rainer V. (a_zip)


Lesenswert?

Alexa schrieb:
> Alexa

...ist vermutlich eine KI, die mal testen will, wie sehr ihr die 
Bleichgesichter schon auf den Pelz rücken könnten :-)
Gruß Rainer

von c-hater (Gast)


Lesenswert?

Rainer V. schrieb:

> ...ist vermutlich eine KI, die mal testen will, wie sehr ihr die
> Bleichgesichter schon auf den Pelz rücken könnten :-)

Wohl eher: klassischer Traffic-Troll. Der Seitenbetreiber liebt die...

von Fred (Gast)


Lesenswert?

In edge impulse ist das schnell zusammengeklickt. Nur Rohdaten musst du 
halt sammeln oder irgendwo finden. Sollte dann laufen aber die frage ist 
halt mit wieviel Verzögerung auf einem MCU. M7 kann zwar relativ mächtig 
sein ...

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.