Spracherkennung auf dem uC

Gast #6742574
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)?
#6743034
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
#6743046
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
(Firma: Golden Delicious Computers) #6743051
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.
Gast #6743063
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.
#6743082
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
Gast #6743095
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.
#6743163
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
Gast #6743170
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.
Gast #6743177
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. ;)
#6743432
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
Gast #6743525
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.
Gast #6743950
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.
Gast #6748260
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 ...
Gast #6748670
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.
Gast #6748938
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 ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren