Forum: Mikrocontroller und Digitale Elektronik Tonfolge Erkennung mit Mega8


von dani (Gast)


Lesenswert?

Hallo,

ich habe folgende Idee:

Mikrofon -> ad-Wandler z.B. Mega8

Ein Schaltvorgang soll nur ausgelöst werden, wenn eine bestimmte 
Tonfolge abgespielt wird. Z.b. Melodie einer Türklingel.
Ich habe schon im Forum gesucht aber nichts in dieser Richtung gefunden.

Ich dachte daran die Eingansbandbreite mittels Filter zu begrenzen, die 
Spannung AD zu wandeln und anschließend den zeitlichen VErlauf 
abzuspeichern.

Bei anliegen einer Tonfolge diese auch sampeln und mit der 
abgespeicherten vergleichen.

Hat von euch schonmal jemand etwas in dieser Richtung gemacht?

Gruß Dani

von musik (Gast)


Lesenswert?

nee, aber wenn Du einen Ton sicher anhand der Frequenz / Nulldurchgänge 
erkennst, sind mehrere (nach dem Erkennen auf den nächsten warten) nur 
noch eine Fleißübung. Wenn Die Türklingel nicht polyphon ist und wenn es 
nicht allzu laut ist, sollte es möglich sein.

von Niels H. (monarch35)


Lesenswert?

> Hat von euch schonmal jemand etwas in dieser Richtung gemacht?

Wenn es sich um ein Einstiegsprojekt handelt, ist das vieleicht ein 
bisschen Hochgegriffen. Um was für eine Art Melodie handelt es sich 
denn? Einstimmig oder Mehrstimmig?

Das vergleichen von Samples halte ich für inpraktikabel zumal der mega8 
garnicht soviel Speicherplatz zur Verfügung stellt, um sowas zu 
realisieren.

Bei einem einstimmigen Gong würde ich einfach die Anzahl der 
(virtuellen) Nulldurchgänge der Samples pro Sekunde messen und hierbei 
versuchen auf eine bestimmte Kombination zu erkennen.

von dani (Gast)


Lesenswert?

Es soll nicht unbedingt ein Einstiegsprojekt sein. Ich habe schon 
Erfahrung mit den AVRs, aber bis jetzt noch nicht mit Sampling o.ä. 
gearbeitet.

Die Türklingel ist mehrstimmig was das Ganze sicher etwas komplizierter 
macht. Daher die Idee, die Samplings zu vergleichen. Die Länge der 
Melodie und der Frequenzumfang und damit der Speicherplatzbedarf ist 
überschaubar.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

dani wrote:

> Ein Schaltvorgang soll nur ausgelöst werden, wenn eine bestimmte
> Tonfolge abgespielt wird. Z.b. Melodie einer Türklingel.


Hoerst Du so schlecht? ;)
Scherz beiseite warum koppelst Du das nicht direkt an die Tuerklingel, 
das waere wohl das einfachste. Mit einer komischen Erkennung, die 
versagen oder blind gehen kann und darueber hinaus noch ziemlich 
kompliziert ist wuerde ich da nicht unbedingt anfangen an Deiner Stelle.

Michael

von dani (Gast)


Lesenswert?

Es soll die Grundlage für andere Projekte sein.

Es gab vor vielen Jahren z.B. einen Schlüsselanhänger der aufs Pfeifen 
reagiert hat. Schön wäre so ein Gerät das aber nur bei einer bestimmten 
Melodie reagiert. Denkbar wäre auch die Auswertung eines 
Handyklingeltons, so das ein Schaltvorgang nur bei einem bestimmten 
Klingelton ausgelöst wird ...

von Gast (Gast)


Lesenswert?

Im letzen Elektor Sonderheft 'Mikrocontroller-Special 1' war so ein 
Thema drin.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Vielleicht ist das dann ja was fuer Dich:
Beitrag "[V] Spracherkennungsmodul von Sensory"

von Kai F. (kai-) Benutzerseite


Lesenswert?

ich habe in nächster Zeit etwas ähnliches vor
Dabei soll ein AVR (wahrscheinlich ATmega128) über ein Mikrofon Musik 
registrieren und grob filtern können, was heißt, dass er im Idealfall 
Musikstile anhand der Häufigkeit der einzelnen Frequenzen bestimmen 
kann.
Dafür werde ich aber wohl noch so etwas wie einen kleinen Spektrum 
Analyser vorschalten müssen, weil der AVR das wohl schlecht selbst 
auseinanderrechnen kann.
Ich weiß nicht ob das möglich ist, aber vielleicht würde dir das für 
dein Projekt reichen

von volkstrottel (Gast)


Lesenswert?

das mit dem zerlegen in frequenzen kann n avr schon
wenn man  ihm das richtig beibiegt.
hab gerade sowas ähnliches gemacht.

Mikrofon->Vorverstärker->ATMega32 ADC->FFT->DMX512->Laser/Dimmer/Gobo

War n ziemliches getüftel, geht aber.

die fft konnte maximal 7khz bis eben 0hz in 32 stufen zerlegen.
war ganz ok. gebremst hat halt das dmx ziemlich, daher
konnte ich nur 44 mal pro sekunde das ding durchziehen

von eProfi (Gast)


Lesenswert?

Das Auswerten der Nulldurchgänge (Signal am Oszi betrachten: hat mit 
Sinus recht wenig zu tun, es sind viele überlagerte Schwingungen) oder 
das Aufzeichnen der Samples (viel zu wenig Speicher) bringt Dich 
überhaupt nicht weiter.

Du musst in Richtung Filtern / FFT gehen.
Stichworte für die Suche: Götzelfilter, Tonfolge, ZVEI, DTMF
http://www.mikrocontroller.net/search?query=tonfolge&forums%5B%5D=1&forums%5B%5D=19&forums%5B%5D=9&forums%5B%5D=10&forums%5B%5D=2&forums%5B%5D=4&forums%5B%5D=3&forums%5B%5D=6&forums%5B%5D=17&forums%5B%5D=11&forums%5B%5D=8&forums%5B%5D=14&forums%5B%5D=12&forums%5B%5D=7&forums%5B%5D=5&forums%5B%5D=18&forums%5B%5D=15&forums%5B%5D=13&forums%5B%5D=16&max_age=-&sort_by_date=0

Hatten wir alles schon x-mal (deshalb bitte vor einer Frage suchen!):
z.B.
Beitrag "Audio-Signale Auswerten"
Beitrag "Stimm / Gesangsanalyse"
Beitrag "5 tonfolge zu rs232 wandlen"

von Niels H. (monarch35)


Lesenswert?

eProfi wrote:
> Das Auswerten der Nulldurchgänge (Signal am Oszi betrachten: hat mit
> Sinus recht wenig zu tun, es sind viele überlagerte Schwingungen) oder

Ich bezweifele stark, daß bei einem einstimmigen einfachen Tongenerator 
viele überlagerte Schwingungen rauskommen. Demnach könnte das Zählen von 
Nulldurchgängen pro Sekunde sehr wohl etwas bringen. Allerdings muss ich 
zugeben, daß ich hier eine elektrische Ankopplung wesentlich Sinnvoller 
halte.

Erwähnte Schlüsselanhänger funktionieren übrigens mit einem einfachen 
LC-Schwingkreis als filter. Da steckt also keine grossartige 
Melodieerkennung hinter.

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.