Forum: Digitale Signalverarbeitung / DSP / Machine Learning Audio-Dissonanz erkennen und quantifizieren


von A. S. (rava)


Lesenswert?

Hier laufen ja einige Musiker herum, daher interessiert sich vielleicht 
jemand für meine Idee:


Wie hört ein Mensch ohne absolutes Gehör (so wie ich) die Akkorde eines 
Songs heraus?

Er spielt "=probiert" verschiedene Akkorde, bis er den Richtigen 
gefunden hat. Dass ein Akkord zur aktuellen Stelle in einem laufenden 
Song passt, hört der Mensch ganz schnell. Viel schneller als bei einem 
einzelnen Ton.

Lässt sich so etwas automatisieren?

Das Erzeugen von Akkorden dürfte ganz einfach sein. Dann müssen die 
Akkorde mit einem möglichst geeigneten Synthesizer in Audio umgewandelt 
werden. Auch hier ist der Aufwand überschaubar.
Nun aber:
Wie lassen sich zwei Audioschnipsel harmonisch vergleichen? Wie lässt 
sich Dissonanz und Konsonanz in einem Algorithmus abbilden? Die Gefahr 
besteht, dass der Mensch hier viel mithilfe seiner Erfahrung & 
Erwartungshaltung macht.
Es muss doch was dran sein, dass es für den Menschen (wenigstens für 
mich) viel einfacher ist, einen ganzen Akkord zum Song einzuschätzen, 
als einen einzelnen Ton.


Vor allem in Anbetracht der Tatsache, dass im Song einiges an 
unbrauchbaren Daten enthalten ist (Drums, Melodietöne, Auslassungen) 
wird diese Konsonanzmessung rauschbehaftet sein. Später fragt sich auch, 
wie lange die Songfetzen werden, über die man da mittelt (Größe der 
Fensterung)

von P. M. (o-o)


Lesenswert?

A. S. schrieb:
> Wie lässt
> sich Dissonanz und Konsonanz in einem Algorithmus abbilden?

Das hängt von den Intervallen ab, also dem Verhältnis der Frequenzen 
zwischen den verschiedenen Tönen, die in einem Akkord vorkommen. Die 
Musiktheorie handelt in einem ziemlich mathematischen Konzept (nur 
merken das nicht alle Musiker) ab, was passt und was nicht, sowie welche 
Stimmung ein Akkord ausstrahlt.

Am besten liest du dir mal den Wikipedia-Artikel durch: 
http://de.wikipedia.org/wiki/Intervall_(Musik)

Wie bestimmte Intervalle und Akkorde klingen, wird dadurch 
beschrieben. Warum das so ist, das geht dann wohl tiefer in die 
Psychologie und Neurologie. Für die Musikpraxis spielt es keine Rolle.

von A. S. (rava)


Lesenswert?

Ich muss nochmal neu formulieren.

Ich habe einen Ausschnitt aus einem Musikstück (z.B. ca 500msec) als Mix 
aus Schlagzeug, Rhythmusinstrumenten, Melodieinstrumenten, Gesang, 
Effekten und/oder Störgeräuschen.

Ich gehe davon aus, dass sich der aktuelle Akkord über diese 500msec 
nicht ändert. Dreiklänge sollte man mit dem System schon abbilden 
können. Mehr wäre natürlich toll, aber vermutlich muss man mal mit dem 
Grundton anfangen.

Anstelle, dass ich mithilfe einer Frequenzanalyse im Sinne eines 
absoluten Gehörs alle Töne herausextrahiere (Melodyne scheint das so zu 
machen), möchte ich eher den Weg eines Matchingfilters gehen:

Ich gebe einen Referenzakkord in das Filter (z.B. G-Dur) und erwarte als 
Ausgang ein Qualitätsmaß - also "wie wahrscheinlich ist es, dass dieser 
Ausschnitt in G-Dur ist?".


Wie hilft mit da der Wiki-Artikel weiter?
Der Rauschanteil im Audio ist ja enorm!

: Bearbeitet durch User
von Markus dem heute nicht geholfen wurde (Gast)


Lesenswert?

Hallo,

habe mal einen Geräuscherkenner gecoded, der sollte verschiedene 
Geräusche wie z.B. Musik, Staubsaugen, menschliche Sprache 
auseinanderhalten.


Mein Ansatz war damals so:
Habe von dem jeweiligen Geräusch eine gemittelte FFT erstellt über eine 
Aufnahmedauer von paar Sekunden und habe alle errechneten FFT Punkte 
gespeichert (und nicht nur an bestimmten Frequenzen, sonder eben den 
kompletten Output der FFT.

Wenn du dann erkennen willst, um was für ein Geräusch es sich handelt, 
habe ich dann immer eine Sekunde Audio aufgenommen, eine gemittelte FFT 
über die eine Sekunde berechnet und bin dann jeden einzelnen Wert der 
FFT durchgegangen um mit den vorherigen Aufnahmen zu vergleichen welcher 
Punkt der FFT einem anderen Punkt einer anderer FFT am meisten ähnelt.

Und dann kannst du auch deine Wahrscheinlichkeit daraus berechnen.

Wenn deine FFT z.B. 1024 Punkte hat und 956 Punkte hatten die geringste 
Distanz zur FFT von Geräusch x, dann ist es zur (956/1024)*100 % 
Geräusch x.


Ich hoffe du weißt worauf ich hinaus will... sowas könntest du mal 
probieren.

Den Code darf ich dir leider nicht zusenden :(

von Ich (Gast)


Lesenswert?


von P. M. (o-o)


Lesenswert?

Dann würde ich ganz klar eine FFT machen. Du solltest klare Spitzen bei 
den gespielten Tönen erkennen können. FFT ist recht schnell 
implementiert, dann würde ich mal schauen, wie sauber/unsauber das 
aussieht.

Für Korrelationsverfahren im Zeitbereich müsste man sich auf eine 
absolute Tonhöhe verlassen können, oder man probiert alles durch - dann 
macht man aber implizit schon eine Fourier Transformation, dann kann man 
gleich die FFT nehmen.

A. S. schrieb:
> Wie hilft mit da der Wiki-Artikel weiter?

Als Grundlage, aber wie's scheint, bist du sowieso schon weiter :-)

von Tobias B. (tobiasz80)


Lesenswert?

Als ich mich in die Harmonielehre eingearbeitet habe, da fand ich es 
witzig mir mal die Akkorde in Wolfram Alpha anzuschauen. Ich habe fest 
gestellt, das um einen harmonischen Klang zu erzeugen, die Interferenzen 
der einzelnen Noten sich nicht gegenseitig auslöschen dürfen, so das ein 
gleichmäßiger Ton entsteht.

Hier z.B. ein A-Moll
http://www.wolframalpha.com/input/?i=sin%28x*440%29%2Bsin%28x*523%29%2Bsin%28x*659%29

oder hier ein C-Dur
http://www.wolframalpha.com/input/?i=sin%28x*523%29%2Bsin%28x*659%29%2Bsin%28x*784%29

oder hier, drei verschiedene Oktaven von A
http://www.wolframalpha.com/input/?i=sin%28x*440%29%2Bsin%28x*220%29%2Bsin%28x*110%29

Alle drei Gebilde sind harmonisch.

Hier nun ein disharmonisches Gegenbeispiel: A, As, B
http://www.wolframalpha.com/input/?i=sin%28x*440%29%2Bsin%28x*466%29%2Bsin%28x*494%29

Man sieht wie der Ton anfängt zu wabern. Aber dieses Problem hat man bei 
allen(?) disharmonischen Akkorden, das dort ein Niederfrequentes 
periodisches Muster entsteht.

Das ist natürlich jetzt vollkommen unwissenschaftlich. Aber vielleicht 
reicht es ja für eine Idee ;)

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.