Vergleichen des "Tons" von Musikinstrumenten in MATLAB

9

Ich versuche einen Weg zu finden, die Ähnlichkeit von kurzen 500-Millisekunden-Aufnahmen mit MATLAB derselben Note zu vergleichen, die auf verschiedenen Instrumenten gespielt wird.

Ausführlich zu diesem speziellen Thema: Ich bin ein Musikstudent, der die Aufgabe hat, den Klang verschiedener moderner Blechblasinstrumente objektiv zu bestimmen, um zu bestimmen, welches Instrument das veraltete "Ophiceide" oder Bass-Keyboard ersetzen sollte. Ich benutzte zuerst einen visuellen Vergleich eines Spektrographen von ihm und 6 anderer Instrumente, aber dieser Ansatz war zu subjektiv.

Ich habe alle Instrumente mit demselben Mikrofon, derselben Ausrüstung, denselben Verstärkungspegeln und denselben Noten aufgenommen. Aus diesem Grund glaube ich, dass die Signale ähnlich genug sind, um MATLAB-Tools zu verwenden.

Ich glaube, dass der Vergleich von fft die genaueste Berechnung ist. Ich habe zuerst eine Freq-Domain-Korrelation versucht und verschiedene Segmente desselben Tons getestet ( eu und eu2 sind Variablen)

%Vor%

Was ist ein Schritt in die richtige Richtung, aber ich sehe das gegenteilige Ergebnis, wenn ich verschiedene Signale vergleiche: (Euphonium- und Ophikleide klingen fast identisch)

%Vor%

Euphonium und Bassklarinette klingen völlig anders, aber das zeigt eine höhere Korrelation

%Vor%

Ich habe eine normalisierte maximale Kreuzkorrelationsgrößenformel ausprobiert, die ich online gefunden habe, aber ich bekomme die gleichen Ergebnisse

%Vor%

Ich erhalte ein ähnliches Ergebnis, wenn ich die anderen Beispiele vergleiche

%Vor%

im Vergleich zu

%Vor%

Euphonium und Bassklarinette (basscl) haben einen völlig anderen Klang und völlig unterschiedliche harmonische Reihen, aber diese Formeln zeigen eine engere Korrelation als Euphonium und Ophicleide, deren Frequenzbänder fast identisch aussehen.

Ich bin besorgt, dass diese Korrelationen die Korrelation der wahren Tonhöhe zeigen (ich spiele die gleiche Note auf allen diesen Instrumenten, aber die Ophicleitide könnte um bis zu 1 Hz verstimmt sein). Es könnte auch für die Phase verantwortlich sein oder sogar totale Amplitude.

kennt jemand eine bessere Methode, um die Anteile der harmonischen Obertöne dieser komplexen Wellenformen zu vergleichen?

oder belle ich den falschen Baum an?

    
Euphman 01.06.2014, 21:32
quelle

2 Antworten

2

In Bezug auf Ihre spezifische Frage ist die Menge, die Sie berechnet haben, im Wesentlichen der Maximalwert der spektralen Kohärenzfunktion. Das Problem ist, dass die spektrale Kohärenz nur ein gutes Maß für die Korrelation zwischen zwei Signalen ist, wenn die Signale statistisch stationär sind. Das heißt, wenn die Wahrscheinlichkeitsverteilung der Frequenzen in den Signalen sich nicht mit der Zeit ändert.

Leider sind Notensignale von Musikinstrumenten wahrscheinlich nicht stationär, weil die wichtigsten Merkmale, die den Unterschied zwischen der Art und Weise, wie die gleiche Note auf verschiedenen Instrumenten zum menschlichen Ohr "klingt", auf Harmonien und Modulationen zurückzuführen sind, die mehr sind als wahrscheinlich Zeit, die über die Dauer der Note variiert.

Anstatt also die spektrale Kohärenz zu verwenden, benötigen Sie eine Frequenzdomäne oder eine Zeit-Frequenz-Domäne-Metrik, die die Ähnlichkeit zwischen den nicht-stationären Teilen der Notenspektren.

An dieser Stelle ist es weniger ein Problem, welches MATLAB zur Auswahl hat (obwohl ein Blick auf dieses Beispiel aus der Signal Processing Toolbox Dokumentation kann Ihnen helfen, wenn Sie diese Toolbox haben). Es ist mehr eine Frage der Erforschung von Signalverarbeitungs- und Merkmalsklassifizierungstechniken. Hier muss man wirklich in die Musikalische Literatur gehen. Hier ist nur ein abstrakter Link - Ich habe keinen Zugriff auf den ACM, aber Sie haben möglicherweise Zugriff darauf deine Universität, wenn du ein Student bist.

Viel Glück bei dem, was nach einem interessanten Problem klingt!

    
paisanco 07.06.2014, 00:11
quelle
1

Ich bin kein Experte in diesem Thema, aber mir sind ein paar Audio-Features bekannt, die bei solchen Problemen helfen können: Linear Predictive Coding (LPC) und Mel-Frequency Cepstral Coefficients (MFCCs).

>

Eine schnelle Suche wird viele Informationen offenbaren. Als Beispiel habe ich dieses und dieses > (hat sie nicht gelesen, aber sie sahen relevant aus).

Das sollte dich beginnen. Abhängig von Ihrem Interesse können Sie in diesem Thema sehr tief gehen. Zum Beispiel, eine Sache ist es, den stationären Zustand der Noten, die von verschiedenen Instrumenten gespielt werden, zu vergleichen, aber mein Verständnis ist, dass der Transient (Attacke) perzeptuell äußerst relevant ist.

Viel Glück!

    
jorgeh 03.06.2014 08:42
quelle

Tags und Links