Tonerkennung

OP #2322587
Lesenswert?

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.
Gast #2322605
Lesenswert?

> 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.
OP #2322642
Lesenswert?

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...
OP #2322684
Lesenswert?

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 :(
Gast #2322689
Lesenswert?

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".
OP #2322691
Lesenswert?

@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.
#2322718
Lesenswert?

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.
Gast #2322813
Lesenswert?

>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?
#2322816
Lesenswert?

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
#2322828
Lesenswert?

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
OP #2323031
Lesenswert?

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.
#2323358
Lesenswert?

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.

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