Hallo, ich möchte einen Atmel AVR per Sprache steuern. Es geht mir nur um ca. 3 bis 5 Kommandos, deshalb muss das nicht großartig genau funktionieren. Habe schon von einem Bausatz bei Conrad gelesen, aber der kostet ca. 50€ was ich für meine Zwecke nicht ausgeben wollte. Wie könnte ich soetwas möglichst günstig umsetzen? Vielen Dank im vorraus.
> Wie könnte ich soetwas möglichst günstig umsetzen?
Gebrauchtes veraltetes Handy welches bereits eine Sprachwahl erlaubt
anschliessen.
Denn alles was einfacher ist ist Murks.
Primitive Software zählt Nulldurchgänge der Mikrophonspannung und leitet
daraus das gesprochene Wort ab. Du kannst dir vorstellen, wie oft das
danebenhaut.
Microchip hat da was: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023596 hans
Habe wohl etwas zu wenig verraten: Der Mikrocontroller soll zB die Wörter "An", "Links" und "Rechts" erkennen. Alternativ wäre es für mich auch ok, wenn er bestimmte Töne erkennt (kennt man ja von diesen Adaptern, die angehen wenn man klatscht). Eine "Worterkennung" (mehr als 5 Wörter muss er wirklich nicht können) wäre natürlich am schönsten. @hans: Das wäre wohl passend. Ist aber laut Beschreibung nur für PICs nutzbar @hp-freund: Sehr informativ. Alledings habe ich leider keine Mathematik studiert... Wenn ich jetzt nen Mikro per ADC auslese, könnte das ja schon reichen um ein Wort zu erkennen?! Nur die Frage ist eben wie sich dann zB das Wort "links" und das Wort "rechts" unterscheiden... Oder eben wie die Adapter mit: einmal klatschen=links zweimal klatschen=rechts Aber mit Wörtern wär das schon klasse...
@ Michael N. Brauchst auch nicht extra studieren. Der Codevision Quellcode für den ATMega32 ist dabei :-)
>Wenn ich jetzt nen Mikro per ADC auslese, könnte das ja schon reichen um >ein Wort zu erkennen?! Tut es aber nicht. Da fehlt noch einiges an Software dahinter. Vergiss den Quatsch.
Ich kann 5 verschiedene Pfeiftöne und würde 8mal pfeifen pro Kommando --> das gibt 390625 verschieden Kommandos. Ist also schon wesentlich mehr als ich bräuchte :) Ne Spaß beiseite. Pfeifen kann ich seitdem ich eine Spange hab nixmehr... Mit der Lösung wird das also nix^^ @hp-freund: Ah stimmt habs eben auch gefunden. Ist mir für so spät in der Nacht aber etwas zu viel englisch. Das guck ich morgen mal durch. Aber das scheint ja wirklich nicht so einfach zu sein. Jedes der Wörter hat er am Anfang 4000mal gesagt^^ Wenn man an den kompletten Code kommt sag ich lieber auch "left" und "right" statt den deutschen Befehlen. Ist allerdings fraglich ob ich das hinbekomme, da ich soetwas komplexes noch nie gemacht habe :(
Das Conrad ding gab es auch mal beim Pollin für 9 €. Das beste an dem Teil war "Erst TASTE Drücken dan Warten bis das ding gesagt hat "say a word." dan sagte man das wort und mit bischen glück hat es das Ding auch kpiert".
@skriptkiddy: Würde das ganze schon am liebsten per Mikrocontroller lösen. Mit HTK für Linux wäre es wahrscheinlich ganz gut machbar, allerdings wäre es mir das Linux nicht wert (nicht falsch verstehen, aber wenn das mitm Mikrocontroller läuft möchte ich das womöglich mehrmals in ähnlicher Ausführung bauen. Und da möchte ich nicht immer ein Linux-Board benötigen) @??: Also vorher möchte ich eigentlich keine Taste drücken. Das soll so ein riesiges Spiel werden (Tetris, Ping Pong, oder sowas), welches man eben per Sprache steuern können soll.
Ich hab sowas ähnliches vor gefühlten 100 Jahren mit der Fourier-Analyse gemacht. Aber vielleicht ist das gar nicht mehr Stand der Technik und es gibt schon was besseres.
Braucht es da nicht eine zweidimensionale Analyse, also den Fourrierverlauf über die Zeit?
Vegiss nicht, dass sich alle Menschen anders anhören und vor allem ist jedes Sprachsample anders, auch wenn das vom selben Sprecher stammt und die selben Worte wiedergibt. Hidden Markov Modelle sind State of the Art und das Mittel der Wahl für Sracherkennung. Auf nem AVR wirst du aber sicher damit nicht losgehen können. Schafft er sicher nicht. Und wenn du das wirklich als Bare-Metal-App realisieren willst, dann brauchst du sicher richtig Ahnung vorn der Materie der Spracherkennung. Ein Kommilitone hat mit ATK (nen Framework für HTK) und ner gehörten Vorlesung zu Spracherkennung ca. nen Monat gebraucht bis er das erste Erfolgserlebnis hatte. Also stell dir das mal nicht so einfach vor. Gruß Skriptkiddy.
Wie wärs mit sowas: http://hackedgadgets.com/2011/08/27/vowel-voice-decoder-system/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+HackedGadgets+%28Hacked+Gadgets%29
Ich weiß ja nicht wie gut du mit Elektronik vertraut bist, aber so funzts sicher nicht: GND ---- MIC ---- µC-Pin -> ADC Da wirst du noch eine kleine Verstärkerschaltung brauchen! julian
Marek N. schrieb: > Wie wärs mit sowas: > http://hackedgadgets.com/2011/08/27/vowel-voice-de... "We have 5 vowels in our database" <genannt im Video> Die können also 5 ganze Vokale damit erkennen. Und "AH" zu erkennen hat zwei Versuche gebraucht. Wow. Mit rechts, links,[...] wirds damit also nichts. Gruß Skriptkiddy
Michael N. schrieb: > Das soll so ein riesiges Spiel werden (Tetris, Ping Pong, oder sowas), > welches man eben per Sprache steuern können soll. Also lustig wird auf jeden fall wenn du's mit Vokalen steuerst: "AAAOOOUUAAIAEEE" - "Hast du dir wegetan?"
>Würde das ganze schon am liebsten per Mikrocontroller lösen. So, für die Volldeppen: Wie lange brauchst du um ein "Links" zu sampeln? Sagen wir eine Sekunde. Samplerate 4kHz. Bei 8 Bit pro Sample bedeutet das 4kB RAM. Deine Spracherkennung mit AVR kannst du dir sonst wohin stecken. Es geht nicht. >(nicht falsch verstehen, aber wenn das >mitm Mikrocontroller läuft möchte ich das womöglich mehrmals in >ähnlicher Ausführung bauen. Und da möchte ich nicht immer ein >Linux-Board benötigen) Das wirst du aber brauchen. Und nur mal so am Rande: Weder Linux noch Windows haben eine Spracherkennnung. Wenn es also ganz einfach wäre, warum ist das noch nicht realisiert in den gängigen Distributionen?
holger schrieb: > warum ist das noch nicht > realisiert in den gängigen Distributionen? Windows hat so etwas - allerdings ist das so universell ausgelegt, dass es nicht reproduzierbar funktioniert. holger schrieb: > Wenn es also ganz einfach wäre, warum ist das noch nicht > realisiert in den gängigen Distributionen? HTK und ATK sind nicht unter GPL. PS. Mäßige doch mal bitte in Zukunft deinen Ton. ;) Gruß Skriptkiddy
>Mäßige doch mal bitte in Zukunft deinen Ton. ;)
Warum soll man den Leuten nicht deutlich sagen dass sie
voll daneben liegen? Warum lange dummes Zeug rumlabern?
holger schrieb: >>Mäßige doch mal bitte in Zukunft deinen Ton. ;) > > Warum soll man den Leuten nicht deutlich sagen dass sie > voll daneben liegen? Warum lange dummes Zeug rumlabern? Ganz einfach. Es ist nicht fair gegenüber Leuten, die nicht soviel Ahnung haben wie du. Man kann auch durch Argumente Überzeugen und muss nicht runterputzen. Ich würde auch nicht so behandelt werden wollen. Du etwa? Schon Konfuzius sagte: "Was du nicht willst, das man dir tu, das füge auch keinem Anderen zu. Und der Mann hatte recht. Findest du nicht? holger schrieb: > Warum lange dummes Zeug rumlabern? Willst du damit sagen meine Kommentare wären Bullshit? Gruß Skriptkiddy
holger schrieb: > Weder Linux noch Windows haben eine Spracherkennnung. > Wenn es also ganz einfach wäre, warum ist das noch nicht > realisiert in den gängigen Distributionen? Windows hat das schon: http://www.youtube.com/watch?v=-0kDcUEDfmY
Also in Windows funktioniert die Spracherkennung doch wirklich gut. Mit Linux habe ich da allerdings keine Erfahrung. Mein Blackberry zB beherrscht das auch super. Wäre mal interessant wie das bei dieser Musik-Erkennungs-App funktioniert (gibts ja für Android, IPhone und sonstwas alles) Aus den Wörtern links und rechts könnte man sich ja überlegen ob man nur versucht "li" und "re" zu erkennen. Mir ist bewusst, dass das ganze nicht so einfach ist. Allerdings wird es doch wohl möglich sein 2 verschiedene Worte auseinanderzuhalten. (ist ja kein Problem wenn das Ding "rechts" erkennt obwohl ich "Fenster" gesagt habe. So genau muss es ja nicht sein) Ich denke das beste dürfte wirklich der fertige Code für das Ferngesteuerte Auto sein. Werde mir den Code mal anschauen. Dürfte sich ja passend umbauen lassen. Als Alternative bleibt mir nur (falls es nicht klappt) der Bau einer Fernsteuerung. (bzw. die Nutzung einer schon bestehenden FB) Was mir dazu auch noch einfällt wäre ein Nintendo DS. Er erkennt auch ob man ins Mikro bläst oder nicht. Ich habe das mal mit Störgeräuschen getestet und das Ding erkennt tatsächlich nur das richtige blasen.
Michael N. schrieb: > Aus den Wörtern links und rechts könnte man sich ja überlegen ob man nur > versucht "li" und "re" zu erkennen. Wenn du dich mit deinem Vorhaben mal nicht übernimmst. Aber wie heißt es so schön: "Versuch macht kluch". Gruß Skriptkiddy
Ich finde auch, dass man Leute nicht davon abhalten sollte sich an Themen heranzuwagen, die schon auf den ersten Blick, eigentlich zu Hoch für sie scheinen. Ich glaube auch es sind jetzt schon genug Informationen hier zusammengetragen um loszulegen dieses Thema zu studieren: Mikro + Verstärkerschaltung AD-Wandlung und Speicherung (SD-RAM vielleicht) und nu kommt der Part der schwierig wird: FFT oder die Fast Walsh Transformation (wie im Vowel recognition Artikel) die Dame in dem Artikel musste zum Samplen noch eine Taste drücken (da lag bestimmt auch ihr Problem mit dem ersten Versuch)... das könnte man ja durch eine extra schaltung erledigen. Und es muss ja nicht immer auf einem µC laufen ... man kann das Problem ja auch auf mehrere aufteilen. und hier folgt nur leider auch die Ansage für den Threadersteller... Das alles musst du selbst lernen, erarbeiten und herstellen. wenn das alles zuviel ist ... muss man die Problemstellung überdenken: da ist dann die Frage ob es um Sprach oder Akkustik-Steuerung geht. Ob Geräusche da sind oder nicht lässt sich viel einfacher feststellen. und zwischen "go go" und "stop" besteht auch eine gute Unterscheidungsmöglichkeit.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.