PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spracherkennung mit Elechouse VR V3.1



basteluwe
20.03.2016, 09:56
Hallo RP6 Freunde,
nachdem mein RP6 Sprechen gelernt hatte, soll er nun auch Hören können :cool:
Vor einer guten Woche ist aus Fernost das Spracherkennungsmodul eingetroffen. Die Freude war groß, weil die Lieferzeit trotz angekündigten 4-8 Wochen weniger als 3 Wochen betrug.

Hier ein Foto vom Inhalt des Päckchens:
31439

Ein paar Eckdaten:

- Betriebsspannung 5V
- 80 Befehle speicherbar
- 7 Befehle gleichzeitig aktiv
- Ausgabe seriell und über 7 Out-Pins
- Pegeländerung an den Out-Pins programmierbar
- Link zum Manual (http://www.elechouse.com/elechouse/images/product/VR3/VR3_manual.pdf)


Hier ein Foto vom Aufbau auf meinem Robby:
31440

Einzelheiten gibt es wie immer auf meiner Seite (http://www.galepp.com/basteln/vr-3/vr-3.htm).

Einen schönen Sonntag noch,
Uwe

inka
20.03.2016, 10:15
hi Uwe,

gefällt mir, werde ich evtl. bei meinem arduino robby später auch realisieren, momentan warte ich auf den speakjet:

31441

gibt es evtl. schon ein video dazu?

Rabenauge
20.03.2016, 12:02
Echt cool.
Du schreibst auf deiner Seite, dass es dich ärgert, dass man beim Start immer erst den jeweiligen Satz Befehle auswählen muss- ohne jetzt das Manual gelesen zu haben, vermute ich, man kann den Satz (die 7 Befehle) zur Laufzeit ändern. Anders würd es auch wenig Sinn machen, wenn man 80 davon abspeichern kann?
Insofern ist das ein ziemlich cooles Feature.

basteluwe
20.03.2016, 14:32
Hi inka,
sieht cool aus, dein SpeakJet board!

Ein Video für den VR V3.1 ist in Arbeit.

Gruß Uwe

- - - Aktualisiert - - -


Echt cool.
Du schreibst auf deiner Seite, dass es dich ärgert, dass man beim Start immer erst den jeweiligen Satz Befehle auswählen muss- ohne jetzt das Manual gelesen zu haben, vermute ich, man kann den Satz (die 7 Befehle) zur Laufzeit ändern. Anders würd es auch wenig Sinn machen, wenn man 80 davon abspeichern kann?
Insofern ist das ein ziemlich cooles Feature.
Ja, über den seriellen port kann man jederzeit die Kommandos im Arbeitsspeicher ändern. Das kann natürlich ziemlich witzig sein, wenn man im Laufe der "Mission" andere Befehle verwenden kann, je nach Situation. Keine Frage.
Meine Bemerkung bezog sich auf die Situation, das man mit 7 Befehlen auskommt, und die sofort nach Einschalten zur Verfügung haben will.

Gruß Uwe

Rabenauge
20.03.2016, 23:09
Dürfte kein Problem sein.
Hat das Ding nennenswerte Ladezeiten?
Falls nicht kannst du ja die Befehlssätze so schnell wechseln, dass du praktisch "jederzeit" alles zur Verfügung hast....wenn sich das alles womöglich im Milisekundenbereich abspielt, dürft das niemanden stören.

basteluwe
21.03.2016, 08:07
Dürfte kein Problem sein.
Hat das Ding nennenswerte Ladezeiten?
Falls nicht kannst du ja die Befehlssätze so schnell wechseln, dass du praktisch "jederzeit" alles zur Verfügung hast....wenn sich das alles womöglich im Milisekundenbereich abspielt, dürft das niemanden stören.
Im Manual gibt es ja leider praktisch gar keine Angaben, aber ich denke, das sollte ohne Probleme möglich sein.

Uwe

Rabenauge
21.03.2016, 11:31
Da kann man dann ja richtig tolle Sachen mit den 80 Befehlen anstellen, wenn man von einem Befehlssatz weiter verzweigen kann.
Beispiel: Fahre -> wechsel-> zum Wohnzimmer
oder eben Hole->wechsel->Kaffe->wechsel->aus Küche. :rolleyes:
Das gibt beinahe unendliche Möglichkeiten, wenn man die Befehle halbwegs clever auswählt und anordnet.

basteluwe
21.03.2016, 13:11
Das gibt beinahe unendliche Möglichkeiten, wenn man die Befehle halbwegs clever auswählt und anordnet.
Schon wahr! Allerdings sind 1500ms pro Kommando nicht lang. Und die Kommandos sollten sich auch deutlich unterscheiden. Natürlich gilt das nur innerhalb der 7er-Gruppen. Aber als Beispiel: Lights On - Lights Off konnte er bei mir NICHT unterscheiden! Man muß halt clever auswählen :cool:

Ich hatte noch vergessen zu sagen, daß vor dem Laden einer neuen Gruppe der Speicher erst gelöscht werden muß. Sind also zwei Aktionen nötig.

Rabenauge
21.03.2016, 13:34
Zwei Aktionen sind doch für nen Microcontroller nix...das merkt man nicht mal. :)
Was dein Licht angeht: red doch mal deutsch mit dem Burschen: Licht AN und Licht AUS unterscheiden sich im Klang wesentlich mehr.
Vermutlich wird der Klang einfach mehr oder wneiger grob gesamplet.
Wenn du im Vorfeld rausfinden willst, was klappen kann, dann nimm es auf, und schau es dir mal in Audacity oder sowas an, dann sieht du schon, was recht ähnlich klingen könnte.
Im Grunde isses wie bei Hunden: die hören auch nicht soo genau.
Die anderthalb Sekunden reichen doch für ein Wort.
Dann kann man abzweigen, und somit durchaus komplette Kommando-Sätze bilden.
Also ungefähr so: Sampleset 1 enthält nur Hauptbefehle wie "fahre", "schalte" usw. Nachdem das angekommen ist, wird verzweigt auf Set 2 oder 3, und die enthalten dann das nächste Wort, "vorwärts" "Küche" bzw. "Licht an" "Heizung" usw.
Dazu solte dann in jedem Set auch ein "zurück"-Befehl drin sein, falls man sich mal versprochen hat.

basteluwe
21.03.2016, 17:51
Licht AN und Licht AUS unterscheiden sich im Klang wesentlich mehr.
Ich denke, Du täuscht Dich! Wenn man nur AN und Aus betrachtet hast Du recht. Klingt sehr unterschiedlich. Das gilt übrigens auch für ON und OFF!
Das Problem ist, dass LICHT AN und LICHT AUS genau wie LIGHTS ON und LIGHTS OFF zu 80% gleich klingen. Das führend Wort Licht oder Light versaut die Prozente, weil es in beiden Kommandos gleich ist!
AN und AUS genau wie ON und OFF allein machen keine Probleme! ;)

Uwe

HeXPloreR
21.03.2016, 18:35
Dann schreib doch in einen Befehl LICHT und passend dazu den Befehl AN oder AUS. Dann wird hoffentlich einmal erkannt das es ums Licht geht, und dann was damit passieren soll.

Viele Grüße
Jörg

basteluwe
22.03.2016, 08:24
Dann schreib doch in einen Befehl LICHT und passend dazu den Befehl AN oder AUS. Dann wird hoffentlich einmal erkannt das es ums Licht geht, und dann was damit passieren soll.

Ja na klar geht das, keine Frage.
Mein Hinweis weiter vorn bezog sich nur darauf, bei Einzelkommandos auf gute Unterscheidung zu achten, weiter nichts.

Gruß Uwe

Rabenauge
22.03.2016, 11:05
Das System nimmt das Sample nur _einmal_ auf, oder?
Das kann natürlich dann nicht soo toll funktionieren, ne richtige Spracherkennung "lernt" wirklich. Da spricht man die Kommandos zumindest mehrmals, einfach deshalb, weil es kaum jemand schaffen wird, das selbe Wort mehrmals immer wieder ausreichend gleich auszusprechen.
Wenn ich nur ein einziges Sample hab, muss ich das so lange "grob rechnen" bis es so einigermassen funktioniert, einerseits braucht man ne gewisse Unschärfe (sonst wird nur reagiert, wenn das Kommando ganz genau so klingt wie in der Vorlage), andererseits darf es nicht zu unscharf werden (dann wird auf alles reagiert).
Eventuell kann man da aber was machen.
Kann man Samples auch anders einspielen?
Dann könnte man Audacity als Trainer benutzen: das gewünschte Kommando mehrmals aufnehmen, und die Samples übereinander legen. Kann man evtl. noch weiter bearbeiten um typische Merkmale der Lautfolge etwas raus zu arbeiten.
Das dann einspielen.
Es _könnte_ die Erkennung deutlich verbessern, denn ein 25$-System macht ganz sicher nix anderes als grob die Wellenform zu vergleichen.
Je signifikanter die aber ist, umso einfacher gelingt das, schätze ich.

Wäre nen Versuch wert: du hast ja auch ein Sprachmodul. Das sollte in der Lage sein, ein Kommando jedes Mal _exakt_ zu sprechen. Lern damit mal das Spracherkennungsmodul an und schau, wie da die Trefferquote ist. Sollte eigentlich bei annähernd 100% liegen-wenn nich, wäre wohl nen besseres Mikrofon angesagt.

basteluwe
22.03.2016, 12:16
Das System nimmt das Sample nur _einmal_ auf, oder?

Nein, ganz so "billig" ist es denn doch nicht!:cool:
Es nimmt jedes Kommando mindestens 2x auf, bei Bedarf auch öfter bis es zwei vergleichbare Wellenformen hat. Es signalisiert dann, wenn das Training erfolgreich war. Was ich bisher gesehen habe ist eigentlich akzeptabel in Bezug auf Wiedererkennung der Kommandos, solange sie sich genügend voneinander unterscheiden. Ich vermute ein größeres Problem könnte die akustische Empfindlichkeit bei laufenden Antrieben (Störpegel) oder Umgebungsgeräuschen sein. Das kriege ich aber bald raus.

Gruß Uwe