Tone2 - true high-end quality audio software. Tone2 synthesizers are the cutting edge in what is possible in today´s contemporary music making.

Probabilistische Ähnlichkeitssuche für Audiosequenzen zur Unterstützung von Query-by-Humming Anwendungen

Diplomarbeit bearbeitet von Dipl. Inf. Univ. Markus F. Feil
Ludwig-Maximilians-Universität München, Institut für Informatik, Lehr- und Forschungseinheit für Datenbanksysteme

Download the complete text as PDF file with images

Copyrighted by Markus Feil, www.tone2.com , www.byte4.com

This text may not be distributed without the written permission of the Author.



Abstrakt


Eine Query-by-Humming Anwendung ist ein System, das einer gesummten Melodie die ähnlichsten Lieder aus einer Menge von Liedern, die in einer Datenbank gespeichert sind, zuordnet.

Im Rahmen dieser Diplomarbeit werden verschiedene neue Algorithmen für die einzelnen Module eines QbH Systems entwickelt und verglichen. Ein Hauptfokus liegt auf der automatisierten Erkennung von Noten.

Wissenschaftliche Fortschritte konnten dabei in folgenden Bereichen erreicht werden:

Für die Vorverarbeitung wurde ein Filter entwickelt, das die Notenerkennungsrate für gesummtes Audiomaterial bei männlichen Sängern um 39% steigert.

Für die Grundfrequenzsuche wurde die AKF+COMB Transformation zur Erzeugung von „Grundfrequenz Spektrogrammen“ entwickelt. Im Gegensatz zum klassischen, Fourier-basierten Spektrogramm wird hier eine lineare Zeitreihe nicht nach Sinusschwingungen, sondern nach beliebig geformten Zyklizitäten durchsucht. Durch die AKF+COMB Methode konnte die Grundfrequenzerkennungsrate der Autokorrelation für gesummtes Material um 28% gesteigert werden. Der Algorithmus erreicht in Kombination mit dem Filter aus der Vorverarbeitung eine Notenerkennungsrate von 98%.

Es konnte ein Algorithmus auf Basis der Autokorrelation gefunden werden, der die automatisierte Takterkennung bei synthetischen Audiomaterial effizient löst. Dabei wird ein Algorithmus vorgestellt, der auf einer linearen Zeitreihe die Phasenlage und Amplitude einer beliebigen Frequenz in linearer Laufzeit berechnet.

Für die automatisierte Melodieerkennung wird ein Algorithmus vorgestellt, der zuverlässig kontinuierliche Grundfrequenzverläufe in diskrete Notenwerte quantisiert.

Für den Melodievergleich konnte eine Distanztabelle gefunden werden, welche die Erkennungsqualität steigert.

Es wurde ein QbH System entwickelt, das den Titel von Melodien automatisiert erkennen kann.



Motivation:

Query by Humming Anwednungen sollen ein altbekanntes Problem lösen: Der Sänger hat eine Melodie im Kopf, aber kennt dabei den Interpreten und den Titel des Liedes nicht. Durch das QbH Systems können Musiktitel auf Grundlage gesungener Melodien automatisiert erkannt werden.
 
Im ersten Schritt wird die Melodie wird eine Melodie in ein Mikrophon gesummt. Der Gesang wird digitalisiert und in eine Folge von Noten umgewandelt. Die Melodie wird dann mit Hilfe eines Verfahrens zum Melodievergleich mit allen in einer Datenbank gespeicherten Melodien verglichen und ein Ähnlichkeitswert berechnet. Die zur gesungenen Eingabe ähnlichsten Melodien werden in Form einer sortierten Liste ausgegeben.



Aufgabenstellung:

In diesem Projekt sollen verschiedene Methoden zur Verbesserung von Query-by-Humming Systemen entwickelt werden. Der Schwerpunkt der Arbeit liegt auf der automatisierten Erkennung von Melodien. Die zu entwickelnden Methoden sollen eine hohe Effektivität und Robustheit aufweisen. Eventuell ist es sinnvoll, auf Methoden und Werkzeuge zurückzugreifen, die bereits am Lehrstuhl entwickelt wurden.



Inhaltsverzeichnis
1  Einleitung1
2  Gesamtkonzept2
3  Aufnahme4
3.1  Die Wahl des richtigen Mikrophons4
3.2  Sampling4
3.3  Dateiformat5
3.4  Import von gesummten Melodien5
4  Vorverabreitung6
4.1  Abstrakt6
4.2  Problemstellung6
4.3  Vorverarbeitung von gesummten Melodien7
  4.3.1 Evaluierung des Filters11
4.4  Vorverarbeitung von gesungenen Melodien13
5  Grundfrequenzextraktion14
5.1  Abstrakt14
5.2  Problemstellung14
5.3  Grundfrequenzsuche mit Hilfe der Fourier Transformation16
5.3.1  Erstellung eines Spektrogramms mit Hilfe der Fourier Transformation16
5.3.2  Logarithmieren des Spektrogramms17
5.3.3  Durchsuchen des Spektrums nach kammartigen Strukturen17
5.3.4  Die Wahl der Kreuzkorrelationsfunktion19
5.3.5  Faltung20
5.3.6  Komplexität20
5.3.7  Schwächen der Methodik20
5.4  Grundfrequenzsuche mit dem AKF+COMB Algorithmus22
5.4.1  Spektrale Eigenschaften des zu suchenden Signals22
5.4.2  Die Wahl eines Testsignals 25
5.4.3  Der AKF+ Algorithmus - die verbesserte Autokorrelation26
5.4.4  Vorverarbeitung26
5.4.5  Autokorrelation27
5.4.6  Autokorrelation mit Fensterung28
5.4.7  Autokorrelation mit Fensterung und Offsetkorrektur (AKF+)28
5.4.8  Komplexität und Optimierung der AKF+30
5.4.9  Autokorrelation mit Fensterung, Offsetkorrektur und Kammfilterung (AKF+COMB)30
5.4.10  Vergleich zwischen AKF und AKF+COMB Spektrogrammen33
5.4.11  Komplexität und Echtzeitfähigkeit36
5.4.12  Evaluierung 36
6  Automatisierte Rhythmuserkennung38
6.1  Abstrakt38
6.2  Problemstellung38
6.3  Rhythmuserkennung auf FFT Basis39
6.3.1  Schwächen der Methodik40
6.4  Takterkennung auf Basis der Autokorrelation41
6.4.1  Bestimmung der Taktgeschwindigkeit41
6.4.2  Bestimmung des Taktzeitpunkts43
6.4.3  Komplexität44
6.4.4  Anwendung in der Praxis44
7  Melodieextraktion48
7.1  Abstrakt48
7.2  Die Auswirkung der Unschärferelation48
7.3  Unsichere Noten49
7.4  Rasterung50
7.5  Logarithmierung der Wahrscheinlichkeiten51
7.6  Die richtige Wahl des k-Wertes 52
7.7  Export52
7.8  Weitere Verbesserungsmöglichkeiten52
8  Datenbank53
8.1  Abstrakt53
8.2  Midi53
8.3  Import von Midi Daten54
8.3.1  Realisierung54
9  Melodievergleich56
9.1  Abstrakt56
9.2  Problemstellung56
9.3  Timestretching 57
9.4  Ähnlichkeitsberechnung57
9.5  Matchingalgorithmen58
9.6  Binäres Matching59
9.6.1  Abstrakt59
9.6.2  Funktionsweise59
9.6.3  Komplexität59
9.6.4  Schwächen der Methodik60
9.7  Matching mit Ableitungsfunktion60
9.7.1  Abstrakt60
9.7.2  Funktionsweise60
9.7.3  Komplexität61
9.7.4  Schwächen der Methodik61
9.8  Matching mit gewichteter Distanzfunktion62
9.8.1  Abstrakt62
9.8.2  Funktionsweise62
9.8.3  Distanztabelle63
9.8.4  Komplexität65
9.8.5  Schwächen der Methodik66
9.9  Vergleich der Matchingalgorithmen66
9.9.1  Binäres Matching66
9.9.2  Matching mit Ableitungsfunktion67
9.9.3  Matching mit gewichteter Distanzfunktion67
10  Sortierung und Ranking68
10.1  Abstrakt68
10.2  Funktionsweise68
11  „Hummel“ - eine praktische Umsetzung eines QbH Systems69
11.1  Probleme bei der Implementierung von QbH Systemen in der Praxis70
12  Zusammenfassung71
13  Ausblick72
14  Glossar73
15  Inhaltsverzeichnis der beigelegten CD76
16  Literaturverzeichnis77

Einleitung


Alltägliche Dinge, die einem Menschen trivial erscheinen, stellen bisweilen für Maschinen eine große Herausforderung dar.
Das automatisierte Erkennen von Melodien ist eine dieser Herausforderungen, die bis heute noch nicht zufriedenstellend gelöst wurden.


Query by Humming (QbH) liefert die Lösung für ein altbekanntes Problem: Man hat eine Melodie im Kopf, kann jedoch keinen Interpreten oder Titel zuordnen. Mit Hilfe des Melodieerkennungssystems QbH können Musiktitel auf Grundlage gesungener oder anderer monophoner Melodien identifiziert werden.
Die Software analysiert dann die melodischen und rhythmischen Eigenschaften der digitalisierten Melodie und durchsucht eine Datenbank nach möglichen Stücken, aus denen die Melodie stammen könnte.


Die Erforschung und Entwicklung von Query-by-Humming Systemen ist ein interdisziplinäres Gebiet.


Es erfordert Fachkenntnisse in folgenden Bereichen:
 
Medieninformatik
Digitale Signalverarbeitung
Hardwarenahe Programmierung
Phonetik
Musiktheorie
Statistik
Effiziente Algorithmen
Datenbanken



Gesamtkonzept


Im Umfang dieser Diplomarbeit sollten einzelne Module zur Unterstützung von QbH Systemen entwickelt werden. Diese lassen sich zwar separat implementieren, aber um deren Leistungsfähigkeit hinsichtlich der Erkennungsrate sinnvoll testen zu können, ist es nötig, ein komplettes System zu betrachten.
Daher musste, bis auf das Sampling Modul, ein komplettes, experimentelles QbH System mit dem Projektnamen „Hummel“ implementiert werden. Ein Hauptfokus dieser Diplomarbeit liegt auf der automatisierten Erkennung von Noten. Die Notendetektion beeinflusst die Erkennungsqualität von QbH Systemen stark, da sie die Basisdaten für die weiteren Verarbeitungsmodule liefert.

Im folgenden werden die einzelnen Module und die dafür neu entwickelten Algorithmen beschrieben.

Das QbH System „Hummel“ lässt sich grob in diese Module zerteilen:

Vorverarbeitung
Grundfrequenzerkennung
Rhythmuserkennung
Melodieextraktion
Melodievergleich
Sortierung und Ausgabe


Abbildung 2.1: Gesamtkonzept des Query-by-Humming Systems „Hummel“
Aufnahme

Die Qualität der Aufnahme ist von entscheidender Bedeutung. Hierbei können eine große Anzahl von Störungen auftreten: Rauschen, Hintergrundgeräusche, Reflexionen, Rückkoppelungen, Verzerrungen, Übersteuern, nicht-Linearität des Frequenzgangs und Atemgeräusche.


Die Wahl des richtigen Mikrophons

Bereits die Wahl des richtigen Mikrophons hat deutliche Auswirkungen auf die spätere Erkennungsqualität. Ziel ist es hierbei, die Störgeräusche so gering wie möglich zu halten und die größtmögliche Linearität in der Aufnahme zu erreichen.

Bei den Versuchen erreichten wir gute Ergebnisse mit Headset- und Popschirmmikrophonen.
Atem- und Popgeräusche bei der Aufnahme verschlechtern vor allem die später erfolgende Rhythmuserkennung.
Nichlinearitäten im Frequenzgang können zu Oktavfehlern in der Grundfrequenzerkennung führen. Hier kann ein Equalizer helfen, die Mängel im Frequenzgang auszugleichen.


Sampling

Die Person summt eine etwa 10 Sekunden lange Melodie in das Mikrophon. Dabei wird die akustische Schallenergie in elektrische Spannung gewandelt. Die elektrische Spannung wird anschließend mit einem DA-Wandler in diskrete Zahlenwerte gewandelt (Sampling).

Die Abtastung muss mit mindestens 44kHz erfolgen, um alle für das menschliche Ohr hörbaren Frequenzen in der Messung zu erfassen. Eine saubere Umrechnung auf niedrigere Abtastraten zu Optimierungszwecken kann gegebenenfalls später erfolgen. Eine gängige Bit-Tiefe für das Sampling beträgt 16 Bit. Sie sollte nicht niedriger gewählt werden, weil sonst schwer filterbares Quantisierungsrauschen auftritt. Da das Signal aus dem Kehlkopf, einer einzelnen Schallquelle entstammt, reicht ein mono Recording aus (1 Kanal).




Dateiformat

Als Dateiformat zur Speicherung der gesummten Melodie eignet sich die WAV-Datei, weil sie von einem Großteil der am Markt erhältlichen Audiosoftware unterstützt wird, keine rechtlichen Probleme bestehen und sie sehr etabliert und gut dokumentiert ist. In unserem System wurde in 16 Bit Datentiefe mit einer Abtastrate von 44Khz in verlustfreier PCM mono Codierung gespeichert. Zur Speicherung von einer 10 Sekunden langen Melodie sind 900 kByte nötig.

Verlustbehaftete Codierung kann die Extraktionsqualität in der Weiterverarbeitung negativ beeinflussen.


Import von gesummten Melodien

Der Import der gesummten Melodie kann theoretisch aus jedem beliebigen samplingbasierten Dateiformat erfolgen. Da der Import nur einmalig pro Suche erfolgt, spielt die Performance  und Komplexität hier eine untergeordnete Rolle.
Beim Importieren ist die Abtastrate, die Kanalzahl und Bittiefe auf ein einheitliches Zielformat umzurechnen.

In unserem System erfolgt eine Umwandlung auf ein 44kHz mono Format mit 32 Bit float Datentyp. Das float Format eignet sich gut für die digitale Signalverarbeitung, weil es nicht anfällig für Overflows ist und einen sehr großen Wertebereich mit ausreichender Genauigkeit erfasst.
Bei der Umrechnung der Abtastrate ist darauf zu achten, dass das Shannonsche Abtasttheorem nicht verletzt wird, also keine Aliasing-Artefakte auftreten. Um die größtmögliche Qualität zu erzielen, kann das Signal für das Resampling mit einem steilen, bandbreitenbegrenzten FIR Filter vorgefiltert werden.
Um die Weiterverarbeitung zu erleichtern, wird der Pegel beim Import auf +/- 1 normiert. +1 entspricht dem maximalen erreichbaren positiven Signalpegel und -1 dem maximalen negativen Signalpegel. Zur Normierung des Signals wird das gesamte Signal nach dem Absolutwert des maximalen Ausschlags durchsucht. Alle Werte werden dann durch diesen Maximalwert dividiert.
Beim Import von Stereodaten wird der Mittelwert aus linkem und rechtem Kanal gebildet.



Vorverabreitung

Abstrakt

Für die Vorverarbeitung wurde ein Filter zur spektralen Einebnung entwickelt, das die Frequenzantwort von gesummten Material glättet. Dadurch steigert sich die Notenerkennungsrate bei männlichen Sängern um 39%.


Problemstellung

Im Vorverarbeitungsschritt sollen möglichst viele Störgeräusche aus dem Signal entfernt werden. Nur die, für die Weiterverarbeitung relevanten Informationen sollen erhalten bleiben.

„Es bietet sich an, den Analyseprozess in verschiedene Stufen zu unterteilen. In den einzelnen Stufen wird a priori Wissen für die jeweilige Verarbeitung auf einem bestimmten Abstraktionsgrad genutzt. Die erste Stufe benutzt bekannte Algorithmen der Signalverarbeitung, z. B. zur Filterung des Signals. Die zweite Stufe führt eine syntaktische Analyse durch.“ [WIL 03]

In der Vorverarbeitung kann die Hinzunahme von Weltwissen helfen, die Datenqualiät zu verbessern:

Die Information, ob die Melodie gesummt oder gesungen ist
Das Geschlecht des Sängers
Den maximalen Grundfrequenzbereich der menschlichen Stimme
Information über Messfehler in der Frequenzantwort und Linearität des Mikrophons und der Hardware
Wissen über die musikalische Kompetenz des Sängers


„Ein wesentliches Problem der GFB ist die Empfindlichkeit gegenüber stark ausgeprägten ersten Formanten, wenn diese mit der 2. oder 3. Teilschwingung zusammenfallen. Diesem Problem kann man am ehesten durch das Verfahren der spektralen Einebnung entgegenwirken.“ [Hes 05]

Unser Sprechapparat wird durch das Quelle-Filter Modell ausreichend genau modelliert. Dabei dient die Glottis (Stimmritze im Kehlkopf) als Schallquelle. Durch die Formung des Rachenraumes wird die Frequenzantwort dieser Schallquelle verändert.




Vorverarbeitung von gesummten Melodien

Beim Summen ist die Formung des Rachenraumes und somit auch die Frequenzantwort (Formantfrequenzen) statisch. Es wird ein stimmhafter Laut oder kein Laut gebildet.
Die starke Formantfärbung beim Summen beeinflusst die Qualität der Grundfrequenzextraktion negativ. Bei 200 Hz verstärkt der erste Formant (F1) das Signal um bis zu 10dB mit einer Bandbreite von 50Hz. Bei der Grundfrequenzextraktion führt dies häufig zu Oktavfehlern. Es wird daher nicht die Grundfrequenz, sondern die doppelte Grundfrequenz erfasst, was der ersten harmonischen Oberschwingung entspricht. Bei 1000Hz ist das Spektrum mit einer Bandbreite von 200Hz um 6dB eingedellt. Bei 2kHz wird das Signal um 10dB mit einer Bandbreite von 800Hz angehoben. Die Ermittlung dieser Werte erfolgte dadurch, dass von drei männlichen und weiblichen Sängern ein Sweep von 400Hz bis 90Hz gesungen wurde. Anschließend wurde die spektrale Energieverteilung visualisiert und analysiert. 



Abbildung 4.1: Spektrum eines männlichen Summers bei F0=103Hz; X-Achse: Frequenz (0-20kHz), Y-Achse: Pegel in dB


Die Daten des ermittelten Frequenzgangs wurden in einen Equalizer einprogrammiert. Ein Dirac-Impuls wurde hindurch geschickt und die Impulsantwort aufgezeichnet.


Abbildung 4.2: Impulsantwort des Antiformant-Filters; X-Achse: Zeit (0-0,003Sek), Y-Achse: Pegel


Die Impulsantwort konnte nun als FIR Filterkoefizienten verwendet werden. In „Hummel“ wird ein FIR Filter der Ordnung 1303 verwendet. Aus dem Bild ist erkennbar, dass die Koefizienten nicht symmetrisch sind und wir einen IIR Equalizier verwendet haben. Nicht symmetrische Koeffizienten führen zu frequenzabhängigen Phasenverschiebungen. Ein phasenneutrales Filter kann zu einer zusätzlichen Verbesserung der späteren Extraktionsqualität führen. Ein symmetrisches FIR Filter hoher Ordnung ließ sich mit Signal Processing Toolbox der verwendeten Matlab Version aufgrund von Programmfehlern nicht erzeugen. 


Die Differenzengleichung für die Filterantwort lautet für ein System m-ter Ordnung im Zeitbereich:

Die dabei auftretenden Faktoren h(i) stellen die Filterkoeffizienten dar.


Vereinfachte Implementierung des FIR Filters in o(n²):

for (int i=0;i<numSamples;i++)
{
float sum=0;
for (int j=0;j<FilterOrdnung;j++)
{
long ofs= i+j;
sum += sample[ofs] * filterKoefizient[j];
}
sampleNew[i]=sum;
}
Für die folgenden Abbildungen wurde von einer Versuchsperson ein 8 Sekunden langer „Sweep“ gesummt. Die Versuchsperson musste mit dem höchsten Ton, den sie singen konnte, beginnen und dann die Grundfrequenz kontinuierlich bis zum tiefsten Ton, den sie singen konnte, verringern. 


Abbildung 4.3: Grundfrequenzsuche ohne Filter
Oben: Audiosignal eines gesummten, männlichen „Sweeps“ (400-100 Hz); X-Achse: Zeit (0-8 Sek.); Y-Achse: Amplitude
Unten: Notenextraktion aus dem AKF+COMB Spektrogramm für k=1; X-Achse: Zeit (0-8 Sek.); Y-Achse: Note


In der zweiten Hälfte des oberen Bildes wird die Grundfrequenz aufgrund der Frequenzanhebung des ersten Formanten falsch erkannt (blaue Linie). Es wird die doppelte Frequenz erkannt.

„Die Autokorrelationsfunktion wiederum ist bei der GFB gegen Rauschen sehr unempfindlich, gegenüber dominanten Formanten jedoch recht empfindlich.“ [Hes 05-2]


Abbildung 4.4: Grundfrequenzsuche mit vorgeschaltetem „Antihumm-Filter“ zur spektralen Glättung
Oben: Audiosignal eines gesummten, männlichen „Sweeps“ (400-100 Hz); X-Achse: Zeit (0-8 Sek.); Y-Achse: Amplitude
Unten: Notenextraktion aus dem AKF+COMB Spektrogramm für k=1; X-Achse: Zeit (0-8 Sek.); Y-Achse: Note


Durch die spektrale Glättung des „Antihumm-Filters“ konnten die Frequenzverdopplungsfehler behoben werden. Die blaue Linie folgt nun korrekt dem kontinuierlichen Grundfrequenzverlauf.



4.3.1 Evaluierung des Filters

Verschiedene Sänger haben eine Melodie in das Mikrofon gesummt. Aus den aufgenommenen Audiodaten wurden die Grundfrequenz mithilfe der AKF+COMB Methode bestimmt. Anschließend wurde eine Rhythmusextraktion mit der Autokorrelationsmethode durchgeführt. Die aus der Melodieextraktion gewonnenen Noten-Daten für k=1 wurden in eine Midi Datei exportiert und in einen Midi-Sequencer geladen. Die Zahl der „korrekt erkannten Noten“ wurde dann manuell gezählt und ausgewertet.
Die hier ermittelten Werte lassen sich grob auf die meisten autokorrelationsbasierten Algorithmen zur Zyklizitätssuche übertragen. Sie lassen sich jedoch nicht auf Cepstrum-Verfahren übertragen, da diese gegenüber spektralen Einbeulungen weniger empfindlich sind.



Durchschnittliche Verbesserung
39%

Tabelle 4.2: Notenerkennung mit und ohne Filter bei männlichen Sängern
 
Durch die spektrale Glättung mit dem „Anti-humm Filter“ konnte die Notenerkennungsrate für männliche Sänger um 39% gesteigert werden.
Das Filter hat fast keinen Einfluss auf die Erkennungsrate von weiblichen Sängern. Aufgrund der höheren mittleren Grundfrequenz treten Frequenzverdopplungsfehler bei weiblichen Sängern weniger häufig auf. 



Vorverarbeitung von gesungenen Melodien

Beim Singen verändert sich die Form des Rachenraumes und die Frequenzantwort kontinuierlich. Es werden stimmhafte Vokale, stimmlose Konsonaten, stimmhafte Konsonanten oder keine Laute erzeugt.

Die Grundfrequenzextraktion von Gesungenem ist technisch schwieriger, so dass hier keine Annahme über die Form des Vokaltraktes gemacht werden kann. Bei stimmlosen Lauten kann keine Grundfrequenz extrahiert werden. Die störenden Formanten lassen sich hier mit einer weißen Filterung entfernen. Dabei wird der Frequenzgang durch adaptives Equalizing so verändert, dass die Energie statistisch über das Spektrum über einen geringen Bereich gleich verteilt ist.
Eine weitere Verbesserungsmöglichkeit für die Datenqualität besteht darin, das Signal mit 60Hz Hochpass zu filtern, weil die menschliche Stimme in der Regel keine Grundfrequenz darunter enthält und somit potentielle Störgeräusche gedämpft werden.


Grundfrequenzextraktion

Abstrakt

Bei der Grundfrequenzextraktion wird für jeden Zeitpunkt einer linearen Zeitreihe die wahrscheinlichste Zyklizität gesucht.
Für die Grundfrequenzsuche wurde die AKF+COMB Transformation zur Erzeugung von „Grundfrequenz Spektrogrammen“ entwickelt. Im Gegensatz zum klassischen, Fourier-basierten Spektrogramm wird hier eine lineare Zeitreihe nicht nach Sinusschwingungen, sondern nach beliebig geformten Zyklizitäten durchsucht. Der Algorithmus zeichnet sich durch eine um 27% höhere Erkennungsrate für Noten als die Autokorrelation aus. Der AKF+COMB Algorithmus erkennt in 98% der Fälle die Noten korrekt.
Die AKF+COMB Transformation ist ein neues Verfahren und steht in Konkurrenz zu anderen Methoden wie die Wavelet Transformation [Cha 99] [Pop 02] [Wu 00], die diskrete Fourier Transformation (DFT) [Agr 93], Singulärwertzerlegung (SVD) [Kor 97] und zur Piecewise Aggregate Approximation (PAA) [Yi 00].
Das Grundfrequenzerkennungsproblem für Query-by-Humming Anwendungen wurde durch die AKF+COMB Transformation gelöst.


Problemstellung

„Auf den ersten Blick sieht die Aufgabe einfach aus. Man muss lediglich die Grundfrequenz (oder -periodendauer) eines quasiperiodischen Signals bestimmen. Wenn es sich jedoch um Sprachsignale handelt, ist die Annahme der Quasiperiodizität oft weit von der Realität entfernt.“ [Hes 05]

Die automatisierte Grundfrequenzerkennung in unsauberen Signalen ist ein bis heute noch aktuelles Forschungsthema, das immer noch nicht zufriedenstellend gelöst wurde.

„Bis heute ist, trotz der Vielfalt existierender Verfahren, keines bekannt, welches gleichzeitig die verschiedensten Anforderungen wie Sprecherunabhängigkeit (bei der Spracherkennung und -codierung), Robustheit gegenüber Hintergrundstörern, geringen Bedarf an komplizierten Rechenoperationen bei Echtzeitanwendungen und Genauigkeit der Grundfrequenzanalyse (GFA) erfüllen kann.“ [Hes 83].




Mögliche Anwendungsgebiete für Grundfrequenz-Algorithmen:

Phonetik, Computerlinguistik: Grundfrequenzextraktion für Sprachdaten
Finanzmathematik: Analyse von Aktienkursen
Medizin: Pulsmessung, EKG
Geophysik: Auswertung von Seismogrammen
Codierungstheorie: Analyse von Bitströmen
Allgemein: Visualisierung und Suche von periodischen, auch nicht-Sinus förmigen Zyklizitäten im Spektrum


Bei der Grundfrequenzerkennung handelt es sich um die Suche nach Periodizitäten auf linearen Zeitreihen.
Es gibt Algorithmen im Frequenzbereich und Zeitbereich und hybride Ansätze. Die erfolgreichsten Ansätze sind die Cepstral Methode und Autokorrelation.

„Fast jeder Analysealgorithmus zur Ton-Analyse basiert auf einer Grundfrequenzbestimmung. Diese muss unter Umständen sehr exakt sein, weil von ihr die weiteren Analyseergebnisse abhängen.“ [Med 91]

Im folgenden werden zwei neue Methoden zur Grundfrequenzanalyse vorgestellt.

Grundfrequenzsuche mit Hilfe der Fourier Transformation

Die verschiedenen Grundfrequenzen von zyklischen Wellenformen werden vom Ohr als „Tonhöhe“ wahrgenommen. Niedrige Grundfrequenzen entsprechen dabei „tiefen Tönen“ und hohe Grundfrequenzen „hohen Tönen“. Ein „Ton“ besteht jedoch nicht nur aus dem Grundton, sondern auch aus einer Vielzahl von harmonischen Obertönen. Die Obertöne sind eine Reihe von ganzzahlig vielfachen Frequenzen der Grundfrequenz (F0).
Die Obertöne wirken bei der Suche nach Zyklizitäten störend, weil es auf unsauberen Daten häufig vorkommt, dass deren Amplitude größer ist als die der Grundfrequenz. Die naive Suche nach einem Maximum im Spektrum ist nicht zuverlässig genug.
Daher liegt es nahe, die Daten nicht nur nach einer einzelnen Frequenz, sondern nach einer Gruppe von Frequenzen zu durchsuchen.
Im folgenden soll ein neuer Algorithmus auf FFT Basis zur Suche nach Zyklizitäten auf linearen Zeitreihen vorgestellt werden.


Die Grundfrequenzanalyse auf FFT Basis lässt sich in drei Teilschritte zerlegen:

Erstellung eines Spektrogramms mit Hilfe der Fourier Transformation
Logarithmieren im Frequenzbereich
Durchsuchen des Spektrums nach kammartigen Strukturen durch Kreuzkorrelation
 

Erstellung eines Spektrogramms mit Hilfe der Fourier Transformation

Die lineare Zeitreihe wird per FFT in ein 2 dimensionales Bild (Spektrogramm) transformiert. Da bei einer Abtastrate von 44 kHz nach Frequenzen bis 40 Hz gesucht werden soll, wird eine Fenstergröße von 2048 Samples verwendet. Es wird ein Kaiserfenster mit beta 5 und 50% overlap verwendet. Die X-Achse des Spekogramms entpricht dem Zeitverlauf, die Y-Achse der Frequenz. Der Helligkeitswert bei (X,Y) entspricht dem Pegel der Frequenz Y zum Zeitpunkt X.
Die Fouriertransformation liefert für jede Frequenz einen Real- und einen Imaginärteil. Der Pegel für jede Frequenz berechnet sich aus der euklidischen Distanz aus Real- und Imaginärteil. Die Phasenlage für die jeweilige Frequenz berechnet sich aus dem Arcustangens des Quotienten von Real und Imaginärteil.

Bereits an dieser Stelle geht bei allen FFT basierten Suchmethoden Information verloren, da die Phaseninformation nicht in die weiteren Berechnungsschritte mit einfließt.


Logarithmieren des Spektrogramms

Die Fourier Transformation löst tiefe Frequenzen sehr ungenau und hohe Frequenzen sehr detailliert auf. Durch das Logarithmieren des Spektrogramms im Frequenzbereich soll eine Gleichverteilung der Energie pro Oktave erreicht werden. Eine Oktave entspricht genau einer Verdoppelung der Frequenz. Darüber hinaus ist ein Logarithmieren für den später erfolgenden Arbeitsschritt nötig. Da in der europäischen Musik 12 Halbtöne pro Oktave verwendet werden, wird die Frequenz ausgehend von 65 Hz (C4) exponentiell mit dem Faktor 1.0594 erhöht (1.0594^12=2). Die einzelnen Punkte des Quellbildes mit exponentiell wachsendem Y-Wert und linearer Interpolation abgetastet und so ein logarithmiertes Zielbild erzeugt. Um im hohen Frequenzbereich Aliasing zu vermeiden, wird 20x oversampling verwendet.

Abbildung 5.1: Logarithmiertes Spektrogramm („The Power of Love – Huey Lewis & The News“); X-Achse=Zeit (0-10 Sek), Y-Achse=Frequenz (40-5 kHz)


Durchsuchen des Spektrums nach kammartigen Strukturen

Nach dem Fourier Theorem lässt sich jede beliebige zyklische Wellenform als Summe von Sinuswellen zusammensetzen. Das Spektrum des Sägezahns lässt sich ausdrücken durch die Fourierreihe:


Dieses Wissen über die Struktur der Reihe kann helfen, die Suche zu verbessern. Die Amplituden der einzelnen Sinusschwingungen können in einen Suchalgorithmus mit einprogrammiert werden. Auf diese Weise ist es möglich, ein Spektrum gezielt nach bestimmten zyklischen Wellenformen wie Sägezahn oder Rechteck zu durchsuchen. Die Suche nach derartigen Strukturen kann in der Praxis durch eine zusätzliche Kreuzkorrelation des Spektrums der zu durchsuchenden Daten mit dem Spektrum der Wellenform realisiert werden.

„Die direkte Bestimmung der Grundfrequenz F0 aus dem ersten Maximum des Leistungsspektrums erweist sich als unzuverlässig. Vorzugsweise wird deswegen die harmonische Struktur des Signals bzw. des Spektrums untersucht. Dies erfolgt beispielsweise mit Hilfe der spektralen Kompression; hierbei wird die Grundfrequenz als der größte gemeinsame Teiler der Frequenzen aller Harmonischen berechnet. Das Leistungsspektrum wird entlang der Frequenzachse im Verhältnis 1:2, 1:3 usw. affin gepresst und anschließend auf das ursprüngliche Spektrum aufaddiert. Durch den kohärenten Beitrag aller höheren Harmonischen ergibt sich hierbei ein kräftiges Maximum bei der Frequenz F0.“ [Sch 68]


Abbildung 5.2: Sägezahnspektrum bei F0=65Hz; X-Achse=Frequenz (0-10kHz), Y-Achse=Pegel in dB




Die Wahl der Kreuzkorrelationsfunktion

„Im allgemeinen Fall erlaubt die Kreuzkorrelationsfunktion KKF Aussagen über die Ähnlichkeit eines Signals g(n) zu einem um die Zeit t verschobenen Signal v(n+t). Sie ist definiert als:

wobei die Zahlenfolgen g(n) und v(n) diskrete (digitalisierte) Signale im Zeitbereich sind.“
[Res 99]

Abbildung 5.3 zeigt eine mögliche Kreuzkorrelationsfunktion, um ein Spektrum gezielt nach Sägezahnschwingungen zu durchsuchen:

f (x) = 1 / (x * x / 200 + 1) * cos( (1,05946^x - 1) * 2 * Pi)

Das Maximum bei x=0 entspricht der Grundfrequenz. Das zweite Maximum entspricht der ersten Oberschwingung. Würde man das Spektrum nach einem Rechteck absuchen, müsste das zweite Maximum erst bei der zweiten Oberschwingung definiert werden, da das Rechteck nur aus ganzzahlig ungeradzahligen Sinuswellen besteht. 



Abbildung 5.3: Kreuzkorrelationsfunktion für sägezahnartige Wellenformen; X-Achse: Frequenz; Y-Achse: Amplitude;



Faltung

Das logarithmierte Spektrogramm von Abbildung 5.1 wird in Y-Richtung mit der Kreuzkorrelationsfunktion gefaltet.

Der Algorithmus zur Faltung des Spektrogramms mit der Kreuzkorrelationsfunktion lautet (vereinfacht):

for (int x=0;x<bildBreite;x++)
{
for (int y=0;y<bildHoehe;y++)
{
float sum=0;
for (int i=0;i<bildHoehe;i++)
{
sum += Spektrogramm[x][i] * Kreuzkorrelationsfunktion[y-i+c];
}
GefaltetesBild[x][y] = sum;
}
}

Die lokalen Maxima im gefalteten Spektrogramm sollten nun die Grundfrequenzen der im Bild vorkommenden Sägezahnspektren zeigen...


Komplexität

Die Komplexitätsklasse zum Erzeugen des Spektrogramms auf Basis der FFT ist o(x*n*log n), wobei x der Zahl der durchzuführenden Transformationen ist und n der Fenstergröße entspricht.
Die Komplexitätsklasse für das Logarithmieren des Spektrogramms ist o(x*y*v), wobei x der Bildbreite, y der Bildhöhe und v dem Oversamplingfaktor entspricht.
Die Komplexitätsklasse für den Korrelationsalgorithmus ist entsprechend den drei verschachtelten for-Schleifen o(x*y*i), wobei x der Bildbreite, y der Bildhöhe und i der Länge der Kreuzkorrelationsfunktion entspricht.


Schwächen der Methodik

Das folgende Bild zeigt ein mit der Kreuzkorrelationsfunktion gefaltetetes logarithmiertes Spektrogramm. Die Faltung mit der Kreuzkorrelationsfunktion hat nicht, wie erwartet, zu einer Vereinfachung der Entropie des Bildes geführt. Es sind gegenüber dem Spektrogramm zusätzliche horizontale Linien erkennbar.
Als Quellmaterial für das Bild wurde bewusst ein spektral komplexes Musikstück gewählt. Der gezeigte Ausschnitt enthält zeitgleich durch Formanten geprägte Vokale, stimmlose Konsonanten, Rhythmusinstrumente, Naturinstrumente und synthetische Klänge.
Als Kreuzkorrelationsfunktion wurde das Spektrum einer Sägezahnwelle gewählt. In der Praxis enthalten jedoch lediglich die Vokale und die synthetischen Klänge im Musikstück zum Sägezahn ähnliche Spektren.



Abbildung 5.4: Mit Kreuzkorrelationsfunktion gefaltetes Spektrogramm („The Power of Love – Huey Lewis & The News“); X-Achse: Zeit (45-55 Sek), Y-Achse: Frequenz (40-5 kHz)


Die Anwendung der Kreuzkorrelation auf dem logarithmierten FFT Spektrum hat nicht zu einer Verringerung der Entropie im Bild geführt.

Die fourierbasierte Grundfrequenzsuche mit Kreuzkorrelationsfunktion liefert nur dann sinnvolle Ergebnisse, wenn der spektrale Inhalt der zu suchenden Wellenform exakt bekannt ist.
Eine für den spektralen Inhalt ungeeignet gewählte Kreuzkorrelationsfunktion verschlechtert das Suchergebnis.

Bei Sprache ist durch die individuelle Sprecherphysiognomie und den Formveränderungen im Vokaltrakt die Frequenzantwort nicht statisch. Eine genaue Annahme über die spektrale Zusammensetzung des Signals kann somit nicht gemacht werden.

„Die Unterschiede in der Periodizität rühren von verschiedenen Faktoren der Sprachbildung. Zum einen ist die Wellenform die durch die Stimmbänder erzeugt wird, keine reine Impulsfolge. Da neben der Periodizität auch die genaue Struktur des Signals variiert, ist die Erkennung relevanter Amplituden-Maxima mit Schwierigkeiten verbunden. Zum anderen wird durch den Vokaltrakt das ursprüngliche Stimmbandsignal derart verformt, dass eine eindeutige Darstellung der Grundfrequenz problematisch wird.“ (Jürgen Bock, Algorithmen zur Tonhöhenerkennung und Vergleich verschiedener Implementerungen, 2004)

Für Query-by-Humming Anwendungen ist daher die in diesem Kapitel beschriebene Methodik nicht gut geeignet. Es wird ein Algorithmus benötigt, der eine lineare Zeitreihe nach Zyklizitäten durchsucht, dabei jedoch keine Annahme über deren spektrale Zusammensetzung machen muss.

Grundfrequenzsuche mit dem AKF+COMB Algorithmus

Im folgenden wird die AKF+COMB Methode vorgestellt („verbesserte Autokorrelation mit Kamm“).
AKF+COMB ist ein leistungsfähiger Algorithmus, der in Grundzügen auf der Autokorrelation basiert und Vorteile gegenüber den existierenden Verfahren aufweist.

Im Gegensatz zum klassischen, Fourier-basierten Spektrogramm wird beim AKF+COMB Algorithmus eine lineare Zeitreihe nicht nach Sinusschwingungen, sondern nach beliebigen zyklischen Wellenformen durchsucht.

Der AKF+COMB Algorithmus lässt sich in zwei Teilschritte zerlegen:

1)Einer verbesserten Autokorrelation, die die Daten in Abhängigkeit von der Verschiebung auf Selbstähnlichkeit untersucht (AKF+)
2)Einer Kreuzkorrelation mit einer Kammfunktion, die n-fach Maximas eliminiert (COMB)


Im Folgenden wird die Funktionsweise der AKF+COMB schrittweise veranschaulicht.


Spektrale Eigenschaften des zu suchenden Signals

Der Sägezahn enthält eine harmonische Struktur, die der menschlichen Stimme ähnlich ist.



Abbildung 5.5: Sägezahnschwingung bei 65Hz, Abtastrate 44kHz; 2 Zyklen




Das vorher gezeigte Bild zeigt eine Sägezahnschwingung im Zeitbereich. Abbildung 5.6 visualisiert das zugehörige Spektrum im Frequenzbereich. Abbildung 5.7 zeigt das Spektrum der selben Funktion bei der doppelten Grundfrequenz.



Abbildung 5.6: Sägezahnspektrum bei F0: 65Hz; X-Achse: Frequenz (0-10kHz), Y-Achse: Pegel in dB



Abbildung 5.7: Sägezahnspektrum bei F0: 130Hz; X-Achse: Frequenz (0-20kHz), Y-Achse: Pegel in dB


Es fällt auf, dass die beiden Spektren einander sehr ähnlich sind. Sie haben gemeinsame Maxima bei allen geradzahligen, ganzzahlig n-fachen von 65 Hz (65*2 Hz, 65*4 Hz,...). Die ungeradzahligen, ganzzahlig n-fachen (65 Hz, 65*3 Hz, 65*5 Hz,...) fehlen im zweiten Bild.
Bei der Suche nach der Grundfrequenz kann die hohe spektrale Ähnlichkeit zu Frequenzverdopplungs- und Frequenzhalbierungsfehlern führen.




„Der Grundfrequenzbereich der menschlichen Stimme liegt zwischen 50 - 300 Hz und ist vom Sprecher abhängig. Für das zugehörige Spektrum wird festgestellt, daß es zu den hohen Frequenzen hin um ca. 6 dB pro Oktave abnimmt... Da die Grundfrequenz der menschlichen Stimme im niederfrequenten Bereich des Spektrums liegt, sind hohe Frequenzen bei der Analyse des Sprachsignals nicht erwünscht. In den hohen Frequenzen sind jedoch harmonische Anteile der Grundfrequenz enthalten. Diese harmonischen Anteile der Grundfrequenz finden sich in den Maxima wieder..." [Boc 04]

Im Gegensatz zum exakt definierten und sauberen Sägezahnspektrum hat man es bei der menschlichen Stimme jedoch mit einem sehr unsauberen Signal zu tun. Der Frequenzgang weist deutliche Ausdellungen bei den Formantfrequenzen auf. Abbildung 5.8 zeigt das Spektrum eines „Problemsignals“. Dort ist die Frequenz des ersten Formanten (210 Hz) der Grundfrequenz (103 Hz) sehr nahe. Ein naiv implementierter Suchalgorithmus, der nur nach dem spektralen Energiemaximum sucht, würde hier 206 Hz erkennen.


Abbildung 5.8: Spektrum eines männlichen Summers bei F0=103Hz; X-Achse: Frequenz (0-20kHz), Y-Achse: Pegel in dB


Durch das Antiformant-Filter, das bereits im Vorverarbeitungsschritt vorgestellt wurde, können die Ausdellungen im Frequenzgang grob ausgeglichen werden. Frequenzverdopplungs- und Frequenzhalbierungsfehler können aber aufgrund von Stimmindividualitäten jedoch immer noch auftreten. Um die Frequenzsuche robuster zu machen, ist daher ein Nachverarbeitungsschritt nötig (COMB).



Die Wahl eines Testsignals

Als Testsignal für die Bilder im folgenden Beispiel wurden von einem Signalgenerator nacheinander für eine Dauer von jeweils 0.2 Sekunden die Frequenzen 65 Hz, 73 Hz, 82 Hz, 87 Hz, ..., 260 Hz erzeugt. Die Frequenzfolge entspricht der Tonleiter C4, D4, E4, F4, G4, A4, B4, C5, ... C6. Als Trägerwellenform diente ein Sägezahn.



Abbildung 5.9: Tonleiter in der Sequencersoftware; X-Achse: Zeit (0-2,6 Sek), Y-Achse: Tonhöhe



Abbildung 5.10: Tonleiter als Zeitreihe; X-Achse: Zeit (0-2,6 Sek), Y-Achse: Pegel

Zur Analyse und Weiterverarbeitung können die später extrahierten Grundfrequenzen in „Hummel“ in eine WAV Datei resynthetisiert werden.




Der AKF+ Algorithmus - die verbesserte Autokorrelation

Def.: Autokorrelation

„Die Autokorrelation ist ein Begriff aus der Statistik und der Signalverarbeitung.
Im statistischen Modell geht man von einer geordneten Folge von Zufallsvariablen aus. Vergleicht man die Folge mit sich selbst, so spricht man von Autokorrelation. Da jede unverschobene Folge mit sich selbst am ähnlichsten ist, hat die Autokorrelation für die unverschobenen Folgen den höchsten Wert. Wenn zwischen den Gliedern der Folge eine Beziehung besteht, die mehr als zufällig ist, hat auch die Korrelation der ursprünglichen Folge mit der verschobenen Folge in der Regel einen Wert, der signifikant von Null abweicht. ... In der Signalverarbeitung spricht man von Autokorrelation, wenn die kontinuierliche oder zeitdiskrete Funktion (z. B. ein- oder mehrdimensionale Funktion über die Zeit oder den Ort) mit sich selbst korreliert wird. Beispielsweise x(t) mit x(t+Verschiebung). ...“ [WIK 08-2]


Vorverarbeitung

Das Ergebnis der Autokorrelation kann durch eine Hochpassfilterung der Zeitreihe verbessert werden. In der Theorie sollte dabei die cutoff Frequenz eines unendlich steilflankigen Filters dabei genau der Wellenlänge der längsten vorkommenden Korrelationsverschiebung entsprechen.
In der Praxis eignen sich dazu gut phasenneutrale FIR Filter. Da sich ein unendlich steilflankiges Filter nicht realisieren lässt, wird die cutoff etwas tiefer angesetzt.

Durch die Hochpassfilterung werden irrelevante und die Messung verschlechternde Informationen wie niederfrequente Störsignale oder eine Verschiebung der Funktion entlang der Y-Achse ausgeblendet.

„Die Autokorrelationsfunktion wiederum ist bei der GFB gegen Rauschen sehr unempfindlich, gegenüber Formanten jedoch recht empfindlich.“ [Hes 05]

Durch das im vorherigen Kapitel vorgestellte Anti-Formant Filter für gesummte Signale wird dieser Störeinfluss stark abgeschwächt.



Autokorrelation

Bei Abbildung 5.11 wird eine 'klassische' Autokorrelation mit der Sägezahntonleiter als Testsignal durchgeführt. Die Verschiebung wird logarithmisch skaliert, so dass genau 12 Zeilen einer Frequenzverdoppelung oder Wellenlängenhalbierung entsprechen. Die logarithmische Skala ist hier nicht nur der Performance dienlich, sondern auch für einen später erfolgenden Rechenschritt nötig. Die unterste Zeile ist die längste gemessene Verschiebung mit 1500 Abtastwerten, die oberste Zeile entspricht der kürzesten mit 30 Abtastwerten. Anhand der Zeilenhöhe kann die Grundfrequenz des entsprechenden Halbtons abgelesen werden. Die 'Helligkeiten' der Korrelationswerte werden im folgenden immer mit der Fenstergröße normiert.

Abbildung 5.11: Autokorrelierte Tonleiter; X-Achse: Zeit (0-2,6 Sek); Y-Achse: Verschiebung (1500-30 Samples bei 44kHz); 1 Zyklus Fenstergröße; Rechteck Fenster


Das oben gezeigte Bild ist einem Spektrogramm ähnlich. Die Helligkeiten der Pixel im Bild entsprechen den Wahrscheinlichkeiten für das Auftreten der logarithmisch skalierten Grundfrequenz Y in Abhängigkeit von der Zeit X. Die oberste der horizontalen Linien entspricht der realen zu suchenden Grundfrequenz. Dieses Bild der 'klassischen' Autokorrelation weist jedoch drei Arten von Artefakten auf:

Bei sehr kurzen Verschiebungen und langen 'realen' Wellenlägen ist die Zeitreihe sich selbst häufig ähnlich. Dies lässt sich auf dem Bild an den Zackenmustern am oberen Rand erkennen.
Bei Verschiebungsdistanzen, die dem ganzzahlig vielfachen der Grundfrequenz entsprechen, treten auch Korrelationsmaxima auf. Diese sind als zusätzliche horizontale Linien unterhalb der Grundfrequenz zu sehen.
In Abhängigkeit von der Wellenlänge erscheint das Bild verschoben. Die Startzeitpunkte der horizontal aufeinander 'gestapelten' Linien sind nicht identisch.



Autokorrelation mit Fensterung

Um das Bild unten zu erzeugen, werden die Abtastwerte bei der Faltung mit einem Kaiserfenster (beta=5) gewichtet. Werte im Mittelpunkt werden dadurch stärker gewichtet als Werte nahe am Randbereich. Eine Fenstergröße von nur einem Zyklus ist bei Hinzunahme einer Fensterfunktion nicht mehr sinnvoll, da zu starke Seitenbandeffekte ähnlich einer Amplitudenmodulation auftreten. Es werden für die folgenden Bilder immer n-fach ganzzahlig Vielfache der zu untersuchenden Wellenlänge als Fenstergröße gewählt.

„Zur Periodenbestimmung sind mindestens zwei aufeinanderfolgende Perioden des Signals nötig“. [Med 91]

Wie bei der Verallgemeinerung der Heisenbergschen Unschärferelation gilt hier:
Je größer die Zahl der Zyklen gewählt wird, desto genauer kann die Frequenz aufgelöst werden. Dabei sinkt jedoch die Schärfe der Zeitauflösung. Für die Grundfrequenzanalyse bei Sprachdaten liefern 6 Zyklen mit Kaiser beta 3 den besten Kompromiss aus Zeitauflösung, Performance und Frequenzauflösung.

Abbildung 5.12: Autokorrelierte Tonleiter; X-Achse: Zeit (0-2,6 Sek); Y-Achse: Verschiebung (1500-30 Samples bei 44kHz); 4 Zyklen mit Kaiser-Fenster; ohne Offsetkorrektur

Autokorrelation mit Fensterung und Offsetkorrektur (AKF+)

Im obigen Bild sind die Zackenmuster am oberen Rand durch die mit dem Kaiserfenster gewichtete Korrelation über vier Grundfrequenzzyklen verschwunden. Das Selbstähnlichkeitsproblem bei sehr kurzen Verschiebungen wurde dadurch gelöst.
Es treten aber immer noch Mehrfachmaximas und 'windschief' gestapelte Linien auf. Um die Linien wieder rechtwinklig anzuordnen, müssen die Startzeitpunkte in Abhängigkeit von der Suchfrequenz korrigiert werden. Die Offsets werden genau um die halbe Fenstergröße nach vorne verschoben. Die beiden Fenster, die korreliert werden, liegen dadurch zeitlich symmetrisch vor und hinter dem Messpunkt.
Abbildung 5.13: Autokorrelierte Tonleiter; X-Achse: Zeit (0-2,6 Sek); Y-Achse: Verschiebung (1500-30 Samples bei 44kHz); 8 Zyklen mit Kaiser-Fenster; mit Offsetkorrektur



Der Algorithmus für die Erzeugung eines AKF+ Spektrogramms lautet (vereinfacht):


fr = startfrequenz;
expfact = 1.05946;
//Bild zeilenweise aufbauen
for (int y=0;y<bildHöhe;y++)
{
//Korrelation über 6 Zyklen
int numZykl = 6;
//Exponentiell wachsende Analysefrequenz
fr *= expfact;
//Korrelationsverzögerung in Samples
long del = (long)(samplerate / fr);
//Gesamtzahl der zu korrellierende Samples
long nums = (long)(samplerate / fr)*numZykl;
//Offsetausgleich für Symmetrie
ofs = (long)((samplerate / frStart)*numZykl/2-nums/2);
//Erzeuge Kaiserfenster der Länge nums mit beta=3
kaiserWin(winfunc,nums,3);
for (long x=0;x<bildBreite;x++)
{
float sum = 0;
//Mit Fensterfunktion gewichtete Autokorrelation über mehrere Zyklen
for (int i=0;i<nums;i++)
{
float a = sample[ofs+del+i];
float b = sample[ofs+i];
sum += (a*b)*winfunc[i];
}
//Normieren
sum /= (bildHöhe);
sum /= nums;
//Erzeuge Bild
im[x][y] = sum;
//50% overlap
ofs += winsiz/2;
}
}

Komplexität und Optimierung der AKF+

Die Komplexitätsklasse der AKF+ ist o(n³). Der Rechenaufwand für lange Zyklizitäten ist größer als der für kurze, da immer über eine feste Anzahl von Zyklen korreliert wird. Die Zahl der zu korrelierenden Samples verdoppelt sich alle n Frequenzanalyseschritte, weil eine logarithmische Skalierung im Frequenzbereich gewählt wurde. Daher bietet sich die Anwendung einer Multiskalenstrategie an. Es wird alle n Schritte die Abtastrate halbiert, so dass kleine Verschiebungen mit hoher und große Verschiebungen mit niedriger Abtastrate berechnet werden. Zur Vermeidung von Aliasing, muss vorher ein resampling mit FIR Halbbandfiltern auf dem Analysesignal durchgeführt werden. Die Komplexitätsklasse lässt sich so auf o(n²*log(n)) verringern.



Autokorrelation mit Fensterung, Offsetkorrektur und Kammfilterung (AKF+COMB)

Wie in Abbildung 5.13 zu sehen ist, hat die negative Offsetkorrektur das Verschiebungsproblem der Autokorrelationsfunktion gelöst.
Es sind immer noch mehrfach-Maxima erkennbar. Sie treten bei spektral statischen Messdaten immer bei der Verschiebung um das genau ganzzahlig n-fache (2x, 3x, 4x, ..., Nx) der Wellenlänge der zu suchenden Grundfrequenz auf. In Abbildung 5.13 sind dies alle Linien, die sich unterhalb der obersten befinden. Da für die Autokorrelation eine logarithmische Frequenzaufteilung gewählt wurde, sind die Abstände der Linien zueinander und deren charakteristische Muster von der Form her immer gleich.

„Es ist daher sinnvoll, auch Zeitbedingungen abzufragen und beispielsweise eine Stützstelle q auch nach ihrem Verhalten gegenüber der Nachbarschaft zu überprüfen.“ [Hes 05]

Das unten gezeigte Bild veranschaulicht das n-fach Maxima Problem im Zeitbereich. Die gelbe Wellenform ist nicht nur der blauen mit der Distanz w ähnlich, sondern auch der grünen mit der Distanz 2*w und der weißen mit 3*w.


Abbildung 5.14: n-fach Maxima Problem der Autokorrelation im Zeitbereich; X-Achse: Zeit; Y-Achse: Amplitude

Die oberste der horizontalen Linien in Abbildung 5.15 entspricht der realen zu suchenden Grundfrequenz. Da die zu untersuchenden Zeitreihen jedoch in der Praxis eine Vielzahl an Störsignalen enthalten, reicht es hier nicht aus, das oberste Maximum auszuwählen. Der Algorithmus soll robust sein. Daher liegt es nahe, das Bild nach einer kammartigen Struktur zu durchsuchen, die auch die Information über die Mehrfachmaximas berücksichtigt. Es wird ein charakteristisches Muster in einem Bild gesucht.

Der rote Streifen im folgenden Bild ist das n-fach Maxima Muster, nach dem gesucht wird. Da eine logarithmische Frequenzaufteilung für die Autokorrelation gewählt wurde, bleibt die charakteristische Form unabhängig von der Grundfrequenz nahezu erhalten. Das Muster wird im folgenden näherungsweise als verschiebungsinvariant zur Y-Achse angenommen.

Abbildung 5.15: Verschiebungsinvariantes n-fach Maxima Muster


Die Helligkeiten der Pixel im Bild oben entsprechen den Wahrscheinlichkeiten für das Auftreten der logarithmisch skalierten Grundfrequenz Y in Abhängigkeit von der Zeit X. Stellt man die „Helligkeitsverteilung“ der roten Linie als Funktionswert einer Funktion dar, enthält man folgendes Bild:


Abbildung 5.16: n-fach Maxima Muster für f (x) = cos( (1,05946^x - 1) * 2 * Pi); X-Achse: Verschiebung; Y-Achse: Amplitude


Das Maximum bei x=0 entspricht der Grundfrequenz und das zweite Maximum bei x=12 der genau doppelten Wellenlänge (Oktave).
Der Faktor 1,05946 in der Formel entspricht der zwölften Wurzel aus zwei. Die Zahl zwölf ergibt sich für unsere Anwendung aus der logarithmischen Einteilung nach Halbtönen in der Musik. Je nach Bedarf lassen sich hier auch beliebig andere Skalierungen wählen.
Bei der Funktion fällt auf, dass sie auch negative Werte annimmt. Dadurch werden auch negative Werte der Autokorrelationsfunktion als zusätzliche Informationsquelle mit einbezogen.
Da nur ein beschränkt großer Messbereich vorliegt, sollen Informationen im Randbereich der n-fach Maxima Funktion weniger stark gewichtet werden, als Informationen im Zentrum. Dazu wird die Funktion mit einer Fensterfunktion multipliziert.



Abbildung 5.17: Gefenstertes n-fach Maxima Muster; X-Achse: Verschiebung; Y-Achse: Amplitude


Abbildung 5.15 soll nun nach Strukturen, die der roten Linie entsprechen, durchsucht werden. Dazu wird die Kreuzkorrelation verwendet. Das Bild wird pixelweise in Y-Richtung mit der Impulsantwort der Funktion des n-fach Maxima Musters gefaltet.

Abbildung 5.16: AKF+COMB; X-Achse: Zeit (0-2,6 Sek); Y-Achse: Verschiebung (1500-30 Samples bei 44kHz); 4 Zyklen mit Kaiser-Fenster;




Der Algorithmus für die COMB Kammfilterung der AKF+ Spektrogramms lautet (vereinfacht):


for (int x=0;x<bildBreite;x++)
{
for (long y=0;y<bildHoehe;y++)
{
float sum=0;
for (int i=0;i<bildHoehe;i++)
sum += ungefaltetesBild[x][i]*crosscorrelfunc[y-i+c];
gefaltetesBild[x][y] = sum;
}
}


Vergleich zwischen AKF und AKF+COMB Spektrogrammen

„Die Kurzzeittransformation soll alle Informationen zur Periodizität eines Signals in einem Messintervall auf einen einzigen Spitzenwert abbilden.“ [Hes 02]

In den unten gezeigten Bildern zum Vergleich von AKF und AKF+COMB ist deutlich eine Verringerung der Entropie zu erkennen. Im hohen Frequenzbereich tendiert die AKF zu vertikalen Linienmustern. Im tiefen Frequenzbereich sind horizontale Kammstrukturen erkennbar. Beide Artefakte treten bei der AKF+COMB nicht mehr auf.



Abbildung 5.17: AKF; 10 Sekunden Ausschnitt aus „Bomfunk MC's: i know“



Abbildung 5.18: AKF+COMB; 10 Sekunden Ausschnitt aus „Bomfunk MC's: i know“

Abbildung 5.19: AKF; 10 Sekunden Ausschnitt aus „Huey Lweis & The News: The power of love“


Abbildung 5.20: AKF+COMB; 10 Sekunden Ausschnitt aus „Huey Lweis & The News: The power of love“


Abbildung 5.21: AKF; Sägezahn mit 65 Hz, 73 Hz, 82 Hz, 87 Hz, ..., 260 Hz

Abbildung 5.22: AKF+COMB; Sägezahn mit 65 Hz, 73 Hz, 82 Hz, 87 Hz, ..., 260 Hz

Abbildung 5.23: AKF; „Fuchs du hast die Gans gestohlen“, gesummt mit Antiformantfilter



Abbildung 5.24: AKF+COMB; „Fuchs du hast die Gans gestohlen“, gesummt mit Antiformantfilter


Der AKF+COMB Algorithmus kann zum Erzeugen von „Grundfrequenz Spektrogrammen“ verwendet werden. Im Gegensatz zum klassischen, Fourier-basierten Spektrogramm wird beim AKF+COMB Algorithmus eine lineare Zeitreihe nicht nach Sinusschwingungen, sondern nach beliebig geformten Zyklizitäten durchsucht.
Die Helligkeit h=f(x,y) im „Grundfrequenz Spektrogramm“ entspricht der Wahrscheinlichkeit p für das Auftreten einer Zyklizität mit der Grundfrequenz y zum Zeitpunkt x.



Komplexität und Echtzeitfähigkeit

Die Komplexität lässt sich durch die Anwendung der FFT bei der Faltung mit der Impulsantwort von o(n³) auf o(n²*log(n)) verringern.

Der AKF+COMB Algorithmus ist echtzeitfähig, da sich das Spektrogramm auch spaltenweise aufbauen lässt. Die Verarbeitung kann auch auf einem Teilausschnitt der linearen Zeitreihe erfolgen.
Die Verarbeitungslatenz L in Samples entspricht genau:

L = Abtastrate / Ft * NZ

Ft entspricht dabei der tiefsten zu Analysierenden Grundfrequenz. NZ entspricht der Zahl der Zyklen, über die korreliert wird.
In der Praxis liegt die Latenz bei der Analyse von Audiodaten bei 60 ms. Die Analyse von Audiodaten lässt sich auf einem modernen Prozessor mit 3 GFlops in Echtzeit durchführen.
In "Hummel" dauert die Analyse eines 10 Sekunden langen Ausschnittes auf einem 2,2 Ghz Intel Prozessor mit einem Kern etwa 5 Sekunden.


Evaluierung

Verschiedene Sänger haben eine Melodie in das Mikrofon gesummt. Das Spektrum wurde mit dem in Kapitel 4 vorgestellten Filter geglättet. Aus den aufgenommenen Audiodaten wurden die Grundfrequenz mithilfe der AKF+COMB oder der Autokorrelationsmethode bestimmt. Anschließend wurden die Rhythmusextraktion und die Melodieextraktion durchgeführt. Die gewonnenen Noten-Daten für k=1 wurden dann manuell gezählt und ausgewertet.

Die klassische Autokorrelation hat in 71% der Fälle die gesummten Noten korrekt erkannt. Es wurde häufig die halbe Grundfrequenz oder die minimal zulässige verschobene Folge detektiert.
Der AKF+COMB Algorithmus hat in 98% der Fälle die Noten korrekt erkannt.
Das Grundfrequenzerkennungsproblem für Query-by-Humming Anwendungen wurde gelöst.



Erkennungsrate

71%
98%

Tabelle 5.1: Vergleich - Notenerkennung mit AKF+COMB oder Autokorrelation

Automatisierte Rhythmuserkennung

Abstrakt

Die automatisierte Rhythmuserkennung findet die Taktgeschwindigkeit und den Startzeitpunkt einer gesummten Melodie.
Es wurde ein Modul entwickelt, das die Taktgeschwindigkeit und den Startzeitpunkt eines Taktes findet. Die Methodik funktioniert bei synthetischen Melodien zuverlässig, versagt jedoch bei gesungenem Material.
Es wird ein Algorithmus vorgestellt, der auf einer linearen Zeitreihe die Phasenlage und Amplitude einer beliebigen Frequenz in linearer Laufzeit berechnet.

Durch die automatische Takterkennung kann auf das Dynamic Time Warping im Matching Modul verzichtet werden und der Ähnlichkeitsvergleich effizienter gelöst werden. [Maz 01], [Jan 01], [Zhu 01]

Die automatisierte Segmentierung von gesummten Melodien ist eine sehr anspruchsvolle Aufgabe. [Tol 00]

Problemstellung

Existierende Query-by-Humming Systeme geben dem Sänger mit einem Metronom einen Rhythmus vor. Der Summer muss dann passend zum Takt die Melodie singen. Die Grundfrequenz des Gesangs wird anschließend im Takt zu den Noten quantisiert. Dadurch muss für das QbH System keine Rhythmuserkennung implementiert werden.
Diese Methodik hat jedoch Nachteile:

Das Metronom ist ein zusätzliches Audiosignal, das die Gesangsaufnahme stören kann.

Die Geschwindigkeit von Liedern ist unterschiedlich. Der Sänger muss die BPM Rate am Metronom vor dem Singen einstellen. BPM Raten richtig einzuschätzen gelingt aber nur erfahrenen Musikern.

Für die Einstellung des Metronoms ist neben dem Microphon zusätzliche Eingabehardware nötig.

Es werden in diesem Abschnitt zwei Algorithmen vorgestellt, die den Rhythmus von Gesang erkennen.

Was das menschliche Ohr als Gesangs- oder Sprechrhythmus wahrnimmt, sind zyklisch wiederkehrende Energiemaxima im Spektrum. Die automatisierte Rhythmuserkennung ist die Suche nach Zyklizität in der Energieverteilung einer linearen Zeitreihe.
Rhythmuserkennung auf FFT Basis

Im folgenden wird ein Algorithmus zur Rhythmuserkennung auf FFT Basis vorgestellt. Er wurde ursprünglich zur Extraktion von beat-Features für MPEG7 Datenbanken entwickelt und wird in der aktuellen Version des QbH Systems aus Gründen der Performance und Präzision nicht mehr verwendet. Daher wird hier die Funktionsweise nur kurz erläutert.

Zum Erzeugen des Spektrogramms wird eine FFT (Abtastrate 44,1 kHz, Fenstergröße 1024 Samples, Kaiserfenster mit beta 5, 50% overlap) auf dem Audiosignal durchgeführt. Da die FFT Frequenzen unterschiedlich genau auflöst, wird das Spektrum im Frequenzbereich mit 20-fach oversampling logarithmiert. 6 Zeilen im logarithmierten Bild entsprechen einer Frequenzverdoppelung.


Abbildung 6.1:
Oben: Logarithmiertes FFT Spektrogramm zu „Fuchs, du hast die Gans gestohlen“; X-Achste:Zeit (0-9 Sekunden), Y-Achse: Frequenz (50-14000 Hz)
Unten: Zugehöriges Histogramm über die Autokorrelation des FFT Spektrogramms; X-Achse: Verschiebung in Pixeln; Y-Achse: 2. Ableitung der Häufigkeitsverteilung


Anschließend wird eine Autokorrelation des logarithmierten FFT Spektrogramms in Richtung der X-Achse durchgeführt. Aus den Daten der Autokorrelation lässt sich ein Histogramm über die Häufigkeitsverteilung der Energiemaxima in Abhängigkeit von deren zeitlichen Verschiebung erstellen. Um die Maxima im Histogramm besser erkennbar zu machen, wird die zweite Ableitung gebildet. Im obigen Bild vom abgeleiteten Histogramm entspricht das erste Maximum der Verschiebung um 0 und das zweite Maximum der gesuchten BPM Rate.



Schwächen der Methodik

Die Komplexität für die Autokorrelation des Spektrogramms ist o(n³).

Bei der Autokorrelation geht die Phaseninformation verloren. Der Algorithmus kann somit zwar die Taktgeschwindigkeit bestimmen, er kann aber nicht den Zeitpunkt erkennen, wann der Takt beginnt.

Bei wenigen Analysedaten wird die Histogramm-Methode zunehmend ungenau. 
Takterkennung auf Basis der Autokorrelation

Der Algorithmus zur automatisierten Takterkennung soll folgende Eigenschaften erfüllen:

Zuverlässige Erkennung der BPM Rate (Frequenz)
Erkennen des Startzeitpunktes eines Taktes (Phaseninformation)
Robustheit
Gute Performance

In der vorhergehenden Suche nach der Grundfrequenz wurde bereits ein AKF+COMB Spektrogramm erstellt. Es liegt nahe, dieses existierende Spektrogramm für die Takterkennung wieder zu verwenden.


Bestimmung der Taktgeschwindigkeit

Im ersten Schritt werden die Energien der im AKF+COMB Spektrogramm enthaltenen Grundfrequenzen in Y-Richtung aufsummiert. Dadurch wird aus dem zweidimensionalen Bild eine eindimensionale Zeitreihe (im Bild unten rot eingefärbt).
Eine andere geeignete Methodik zum Erstellen einer Zeitreihe über die Gesamtenergieverteilung ist die spektrale Leistungsdichte (PSD = power spectral density).
Eine FFT eignet sich zur Suche nach Zyklizität auf der Funktion über die Gesamtenergie des Spektrums weniger, da die Länge der Zeitreihe von der Dauer der gesungenen Melodie abhängt und nur ein kleiner Frequenzbereich untersucht werden soll.



Abbildung 6.2:
Oben: AKF+COMB Spektrogramm; „Fuchs, du hast die Gans gestohlen“; X-Achse: Zeit (0-8 Sek.); Y-Achse: Grundfrequenz (40 – 2500 Hz);
Unten: „Energie des Spektrums“; X-Achse: Zeit (0-8 Sek.); Y-Achse: Energie



Der Beginn und das Ende von Noten sind signifikante Rhythmusmerkmale in einem Lied. Daher wird im zweiten Schritt die Zeitreihe über die Energie des Spektrums differenziert. Durch das Differenzieren wird erreicht, dass die Startzeitpunkte von Noten mit positiven Werten (Energie steigt) und die Endzeitpunkte von Noten mit negativen Werten (Energie fällt) bewertet werden. Allgemein erhalten Änderungen in der Energieverteilung durch das Differenzieren eine höhere Gewichtung.
Die differenzierte Energieverteilung wird nun nach Zyklizität durchsucht. Da die Melodien von Liedern nicht beliebig schnell oder langsam gesungen werden, kann der Suchbereich auf 90-180 BPM (1,5 - 3 Hz) beschränkt werden. Die starke Beschränkung des Suchbereichs ermöglicht eine sehr effiziente Implementierung.
Es wird eine normierte Autokorrelation auf dem beschränkten Suchbereich durchgeführt. Das Ergebnis der Autokorrelation ist eine Funktion, die Aussagen über die Häufigkeitsverteilung der im Lied vorkommenden Taktgeschwindigkeiten ermöglicht.




Abbildung 6.3: Autokorrelation der differenzierten Gesamtenergie; Analysedaten: „Fuchs, du hast die Gans gestohlen“


Die gesuchte Taktgeschwindigkeit entspricht dem Maximum der Autokorrelationsfunktion der differenzierten Gesamtenergie.

Bei den oben analysierten Daten wird dies bei etwa 125 BPM erreicht.


Der Algorithmus der Autokorrelation zur Bestimmung der Taktgeschwindigkeit lautet (vereinfacht):

//Für alle Verschiebungen
for (int xdelt=delaymin;xdelt<=delaymax;xdelt++)
{
float sum=0;
for (int x=0;x<xMax;x++)
sum+=ener[x]*ener[x+xdelt];
//Normieren
sum /= xMax;
beatHist[xdelt]= sum;
}

Bestimmung des Taktzeitpunkts

Durch die AKF konnte die Taktgeschwindigkeit (Frequenz) bestimmt werden. Die Phaseninformation ging aber durch die Anwendung der AKF verloren. Um die Gesangsmelodie zu einem späteren Zeitpunkt vernünftig quantisieren zu können, muss aber auch der Zeitpunkt bekannt sein, zu dem der erste Takt beginnt.
Die Frequenz ist also bereits bekannt, die Phase wird noch gesucht. Durch das Wissen über die Frequenz kann die Komplexität des folgenden Rechenschritts stark vereinfacht werden. Anstatt eine komplette DFT durchzuführen, kann man sich hier auf die Analyse eines einziges spektralen Bandes mit der BPM Rate als Frequenz beschränken.
Wie bei der Fourier Transformation wird hier das Signal mit dem Sinus und dem Cosinus gefaltet. Mithilfe der Arcustangensfunktion kann aus dem Quotienten der komplexen Summen die Phase errechnet werden. Da durch die vorhergehende Differenzierung des Signals eine Phasenverschiebung um 90° erfolgt ist, muss für den Anwendungsfall der Takterkennung Pi/2 von der Phase subtrahiert werden.
Der Pegel (Radius) errechnet sich aus der euklidischen Distanz der komplexen Summen.

Der Algorithmus berechnet die Phasenlage und Amplitude einer einzelnen, beliebigen Frequenz auf einer beliebig langen linearen Zeitreihe in o(n).


Er lautet (vereinfacht und verallgemeinert):

float sinsum=0;
float cossum=0;
for (int t=0;t<laenge;t++)
{
float ph = 2 * Pi * (float)(t) * freq;
sinsum += sin(ph) * sample[t];
cossum += cos(ph) * sample[t];
}
float phase = atan2(sinsum,cossum);
float ampl = sqrt(sinsum*sinsum + cossum*cossum);




Abbildung 6.4: Automatisierte Takterkennung in „Hummel“; Grün: Startzeitpunkte des Taktes
Oben: AKF+COMB Spektrogramm; „Fuchs, du hast die Gans gestohlen“; X-Achse: Zeit (0-8 Sek.); Y-Achse: Grundfrequenz (40 – 2500 Hz);
Unten, rot: „Energie des Spektrums“; X-Achse: Zeit (0-8 Sek.); Y-Achse: Energie


Im oberen Bild wird nochmals die komplette, automatisierte Takterkennung gezeigt:

Aus dem schwarzen AKF+COMB Spektrogramm wird die rote Energieverteilungsfunktion erzeugt.
Die Energieverteilungsfunktion wird durch Autokorrelation auf Zyklizität durchsucht und die Taktgeschwindigkeit bestimmt (Distanz der grünen Linien zueinander).
Mithilfe der Frequenzinformation werden die Startzeitpunkte der Takte (grüne Linien) errechnet.


Komplexität

Die Komplexität für die Bestimmung der Taktgeschwindigkeit auf einer PSD Zeitreihe ist o(n*m), wobei n der Länge der Zeitreihe und m der Zahl der zu untersuchenden Verschiebungen entspricht. In der Regel gilt n>>m.
Die Komplexität für die Bestimmung der Taktzeitpunkte auf Basis der vorangehenden Berechnung ist o(n), wobei n der Länge der Zeitreihe entspricht.

Anwendung in der Praxis

Der Algorithmus auf Basis der Autokorrelation hat die Problemstellung einer automatisierten Takterkennung für percussive Rhythmen und synthetische Klänge gelöst. Er hat sich in der praktischen Anwendung als performant, zuverlässig und robust erwiesen.
Bei gesungenem Material treten Probleme auf. Popgeräusche bei der Aufnahme können aufgrund der hohen spektralen Energie die Takterkennung aus dem Takt werfen. Daher ist die Verwendung von Headset- oder „Plopschutzmicrophonen“ empfehlenswert.
Je länger eine gesungene Passage ist, umso wahrscheinlicher wird es, dass ein Sänger aus dem Takt gerät und seine Geschwindigkeit erhöht oder verlangsamt. Da für QbH Systeme nur kurze Passagen mit einer Länge von wenigen Sekunden gesungen werden, ist dies vernachlässigbar.


Versuchsaufbau:

Ein Metronomsignal mit verschiedenen Taktgeschwindigkeiten wurde aufgezeichnet. Über einen Kopfhörer wurde den Versuchspersonen das Taktsignal vorgespielt. Die Versuschspersonen mussten passend zur Taktgeschwindigkeit mehrere zufällige Melodien in ein Mikrophon summen. Das Signal wurde aufgezeichnet und mit der automatischen Takterkennung auf Basis des AKF+COMB Spektrogramms ausgewertet.


Tabelle 6.1: Automatische Takterkennung bei gesummten Melodien


Das Ergebnis war nicht zufriedenstellend. In nur vier Fällen wurde die Geschwindigkeit mit einer Toleranz von 10% „richtig“ erkannt (grün). In zwei Fällen wurde genau die halbe Geschwindigkeit gefunden (blau).
Die Methode die Energien der im AKF+COMB Spektrogramm enthaltenen Grundfrequenzen in Y-Richtung aufzusummieren, ist für die Rhythmuserkennung von gesummtem Material ungeeignet. Die Verwendung der Kurzzeitenergie könnte hier bessere Ergebnisse liefern.


Versuchsaufbau:

Von verschiedenen, im Handel erhältlichen, „Sample CDs“ wurden kurze Gesangspassagen mit fest definierten Taktgeschwindigkeiten ausgewählt und mit der automatischen Takterkennung auf Basis des AKF+COMB Spektrogramms ausgewertet.


Tabelle 6.2: Automatische Takterkennung bei gesungenen Melodien


Auch bei Gesang versagt die Methode. Frikative stören hier die Takterkennung zusätzlich.


Versuchsaufbau:

Von verschiedenen, im Handel erhältlichen, „Sample CDs“ wurden kurze synthetische Rhythmuspassagen mit fest definierten Taktgeschwindigkeiten ausgewählt und mit der automatischen Takterkennung auf Basis des AKF+COMB Spektrogramms ausgewertet.


Tabelle 6.3: Automatische Takterkennung bei synthetischen Melodien


Bei synthetischen Klängen funktioniert die Methode zuverlässig. In einigen Fällen (blau) wurden genau zwei Drittel der gesuchten Geschwindigkeit detektiert. Die Untersuchung der Daten zeigte, dass in diesen Testsignalen besonders viele punktierte Noten existierten. Das „Punktierungsproblem“ kann durch den Einsatz der in Kapitel 5 vorgestellten Kamm-Methode minimiert werden. Um die Robustheit gegenüber punktierten Noten zu steigern, müssen in die Bewertung der Autokorrelationsfunktion auch sekundär-Maxima bei der 1,5-fachen Verschiebung mit einfließen.

Aus Gründen des Umfangs dieser Diplomarbeit kann hier nicht mehr weiter auf die Takterkennung auf Basis der Kurzzeitenergie und die detailierte Lösung des „Punktierungsproblems“ eingegangen werden.
Melodieextraktion

Abstrakt

In der Melodieextraktion wird für den Zeitpunkt jeder Viertelnote eine Liste mit k gewichteten Noten extrahiert.
Für die automatisierte Melodieerkennung wird ein Algorithmus vorgestellt, der zuverlässig kontinuierliche Grundfrequenzverläufe in diskrete Notenwerte quantisiert.

„Eine gute Notenerkennung ist ausschlaggebend für die Erkennungsqualität von QbH Systemen.“ [Tol 00]

Die Auswirkung der Unschärferelation

Die Helligkeit im AKF+COMB Spektrogramm entspricht der Wahrscheinlichkeit für das Auftreten einer Grundfrequenz y zum Zeitpunkt x.
Wenn man das Bild unten genau betrachtet, ist eine Unschärfe sowohl im Zeitbereich, als auch im Frequenzbereich erkennbar. Die Unschärfe im Zeitbereich ist vernachlässigbar, da die Melodie später auf ein im Verhältnis dazu sehr grobes Raster quantisiert werden wird. Die Unschärfe im Frequenzbereich ist für die späteren Berechnungen nicht vernachlässigbar.



Abbildung 7.1: AKF+COMB Spektrogramm; Grundfrequenzverlauf von „Fuchs du hast die Gans gestohlen“; X-Achse: Zeit (0-8 Sek.); Y-Achse: Grundfrequenz (40 – 2500 Hz);


Die Unschärfe im Frequenzbereich entsteht durch:

Grundfrequenzschwankungen in der menschlichen Stimme
Falsch gesungene Töne
Die AKF+COMB Transformation


Bei der AKF+COMB kann eine größere Schärfe im Frequenzbereich erzielt werden, indem die Autokorrelation über eine größere Anzahl von Zyklen durchgeführt wird.
Wie bei der Verallgemeinerung der Heisenbergschen Unschärferelation gilt hier: Je größer die Zahl der Zyklen gewählt wird, desto genauer kann die Frequenz aufgelöst werden, jedoch sinkt die Schärfe der Zeitauflösung. In der Praxis hat aber eine Faltung über mehr als 6 Zyklen bei der Grundfrequenzanalyse von Sprachdaten zu keiner Verbesserung der Extraktionsqualität geführt, sondern lediglich die Performance verschlechtert.



Anzahl der Zyklen

Erkennungsqualität Melodie 1 in %
Erkennungsqualität Melodie 2 in %
Erkennungsqualität Melodie 3 in %
Durchschnitt in %


Tablelle 7.1: Extraktionsqualität für gesungene Melodien in Abhängigkeit von der Anzahl der Autokorrelationszyklen (Kaiser-Fenster mit beta=5)

Unsichere Noten

Der Grundfrequenzverlauf der gesummten Melodie muss von einer nahezu kontinuierlichen Funktion (Bild 43) in eine diskrete quantisiert werden. Pro Takteinheit werden die k wahrscheinlichsten Noten mit einer Gewichtung extrahiert. Durch das Betrachten von mehr als einer Note zu jedem Zeitpunkt wird die Extraktionsqualität verbessert.
Durch diese Methodik wird erreicht, dass Schwankungen in der Grundfrequenz („leicht falsch gesungene Töne“) auch noch brauchbare Informationen für die Suche beitragen.
Bei sehr tiefen Stimmen mit hohem Energieanteil in der ersten Harmonischen ist sich der Algorithmus zur Grundfrequenzsuche nicht immer sicher. Im unteren Bild ist beim ersten Ton auch Energie bei der doppelten Frequenz. Dies ist an den zwei übereinander liegenden, horizontalen Linien erkennbar.
Da die Muskeln unserer Sprachorgane träge sind und sich die bewegten Massen nicht beliebig schnell bewegen können, kann die Grundfrequenz der menschlichen Stimme nicht sprunghaft von Note zu Note verändert werden. Stattdessen ergibt sich ein kontinuierlicher, von Note zu Note gleitender Verlauf. Besonders deutlich wird das im rechten Drittel des unteren Bildes. Dieser An- und Abglitt kann die Suchergebnisse verschlechtern, weil die Mittelwerte der Grundfrequenzen im quantisierten Raster nach oben erhöht oder unten erniedrigt werden. Das kann zu einer „leicht falsch gesungenen Note“ führen. Durch die „k-wahrscheinlichsten Noten Methode“ wird auch hier noch versucht, mehr brauchbare Information zu extrahieren.  


Rasterung

Im Modul der Takterkennung auf Basis der Autokorrelation ist der Startzeitpunkt (Phase) und die Taktgeschwindigkeit (Frequenz) bereits bestimmt worden. Anhand dieser Werte wird das Quantisierungsraster angelegt. Jede Rastereinheit entspricht später genau einer Viertelnote. Innerhalb jeder Rastereinheit werden die k wahrscheinlichsten Noten anhand der gewichteten Grundfrequenzen ermittelt. Dazu werden die Wahrscheinlichkeiten jeder Grundfrequenz mit einem Hammingfenster multipliziert und aufsummiert. Durch die Fensterung wird erreicht, dass den Grundfrequenzen nahe am Mittelpunkt eine größere Bedeutung zukommt, als denen im Randbereich. Wenn viele Unsauberkeiten im Randbereich vorkommen, wird eine Verbesserung der Extraktionsqualität erreicht.



Abbildung 7.2: Gerastertes AKF+COMB Spektrogramm; Grundfrequenzverlauf von „Fuchs, du hast die Gans gestohlen“; X-Achse: Zeit (0-8 Sek.); Y-Achse: Grundfrequenz (40 – 2500 Hz);


Für jeden Vierteltakt sind nun alle Wahrscheinlichkeiten für die Existenzen der Noten Y gegeben, jedoch werden aus Optimierungsgründen nur die k wahrscheinlichsten Noten für die Weiterverarbeitung verwendet. Um die k wahrscheinlichsten Noten zu bestimmen, werden alle Noten in jedem Vierteltakt nach ihrer Wahrscheinlichkeit sortiert und die k besten selektiert.




Der Algorithmus zur Quantisierung und Berechnung der Wahrscheinlichkeiten von Noten lautet (vereinfacht):

//Für jede Viertelnote
for (long bar=0;bar<numbars;bar++)
{
//summiere im Takt
for (long y=0;y<bildHoehe;y++)
{
sum[y]=0;
for (long x=0;x<Taktlaenge;x++)
{
float p = bild[x + bar * Taktlaenge + Taktstart][y];
//Hamming Fenster +90°
sum[y] += ( 0.04 + 0.46 * sin( x / Taktlaenge * Pi ) ) * p;
}
}
...



Logarithmierung der Wahrscheinlichkeiten

Eine logarithmische Gewichtung der Wahrscheinlichkeiten führte zu einer Verbesserung der Erkennungsrate.

„Ein Nebeneffekt der Logarithmierung ist die Anpassung an die menschliche Wahrnehmung der Frequenzamplituden“. [Wes 04]



Abbildung 7.3: Notenextraktion aus dem AKF+COMB Spektrogramm; „Fuchs, du hast die Gans gestohlen“; X-Achse: Zeit (0-8 Sek.); Y-Achse: Grundfrequenz (40 – 2500 Hz);
Oben: Vertikale Linie blau: Note k=1; Vertikale Line Grün: Note k=2; Vertikale Line Rot: Note k=3
Unten, grau: X-Achse: Zeit (0-8 Sek.); Y-Achse: Logarithmierte Gewichtung der Note k=1

Die richtige Wahl des k-Wertes

Die Selektierung und Weiterverarbeitung der 5 wahrscheinlichsten Noten hat in der Praxis zu den besten Erkennungsraten geführt. Aus diesem Wert lässt sich erkennen, dass ein durchschnittlich begabter Sänger häufig um bis zu +-2 Halbtöne um die Referenztonhöhe schwankt. Größere Werte haben zu einer Verschlechterung geführt. Die Verschlechterung ist damit zu erklären, dass bei einer zu großzügig gewählten Betrachtung der Tonhöhe zu viele Lieder in der Datenbank der gesungenen Melodie ähnlich sind.


Anzahl der extrahierten Noten pro Takt (k)

Erkennungsrate Melodie 1, Sänger 1 in %
Erkennungsrate Melodie 2, Sänger 2 in %
Erkennungsrate Melodie 3, Sänger 3 in %
Durchschnitt in %

Tablelle 7.2: Erkennungsrate für gesungene Melodien in Abhängigkeit von der Anzahl der extrahierten Noten bei logarithmischer Gewichtung

Export

In „Hummel“ kann die extrahierte Melodie dann zur Weiterverarbeitung und Analyse in der Software von Drittherstellern ins Midi Format gespeichert werden. Die Gewichtungen der einzelnen Noten werden auf einen Wertbereich von 0-127 normiert und als „velocity“ (=Lautstärke) gespeichert.

Weitere Verbesserungsmöglichkeiten

Die europäische Musik hat zwar 12 Noten, jedoch werden davon nur 7 genutzt (Tonarten). Dadurch ließe sich das Pitchtracking gröber rastern und der Suchraum verkleinern. Die aktuellen QbH Systeme nutzen diese Eigenschaft nicht aus.
Verallgemeinert lassen sich durch das zusätzliche Weltwissen über Tonarten detailierte Annahmen über die Wahrscheinlichkeiten einzelner Noten in den Melodien machen. Für Dateien in der Midi Datenbank lässt sich die Tonart relativ leicht bestimmen, bei schlecht gesungenen Melodien wird diese Aufgabe anspruchsvoller.
Datenbank

Abstrakt

„Midi“ ist ein Datenbankformat, das sich gut für QbH Systeme eignet. Um gute Suchergebnisse zu erzielen, sollten alle Lieder in der Datenbank per Hand vorselektiert und vorbearbeitet werden. Der Implementierungsaufwand einer zuverlässigen Importfunktion für Midi Dateien ist hoch.

Midi

Def.: MIDI
„(engl.: musical instrument digital interface ... = „Digitale Schnittstelle für Musikinstrumente“) ist ein Datenübertragungs-Protokoll zum Zwecke der Übermittlung, Aufzeichnung und Wiedergabe von musikalischen Steuerinformationen zwischen Instrumenten oder Computern. ..“ [WIK 08]

In „Hummel“ wurde als Dateiformat für die Liederdatenbank das Midi Format gewählt.

Vorteile:

Seit 1983 definierter Standard
Geringer Speicherplatzbedarf
Flexibilität
Verfügbarkeit einer Vielzahl von Liedern im Netz
Schnelle, maschinenfreundliche Verarbeitung
Hervorragende Soft-und Hardwareunterstützung

Nachteile:

Herstellerspezifische Eigenheiten
Komplexer Import
Format ist für den Menschen nicht lesbar
Melodien werden von den Autoren oft unnötig mit zusätzlichen Noten „ausgeschmückt“ und müssen nachbearbeitet werden


Für das Testsystem wurde eine Datenbank von 100 bekannten Kinderliedern erstellt. Kinderlieder sind häufig Volksgut und frei von Urheberrechten. Im Midi-Quellformat sind in „Hummel“ pro Lied durchschnittlich 3,2 kB Speicherplatz nötig.

Um gute Suchergebnisse zu erzielen, sollten alle Lieder in der Datenbank per Hand vorselektiert und vorbearbeitet werden. Nur die Hauptmelodie sollte gespeichert werden. Akkorde, Rhythmusinstrumente und ausschmückende Nebenmelodien sind für die Suche irrelevant. Sie vergrößern den Suchraum und verschlechtern somit das Suchergebnis und die Performance. Bei professionellen Systemen sollte daher der personelle Aufwand für die Aufbereitung der Datenbank per Hand mit berücksichtigt werden.
Durch die manuelle Vorverarbeitung benötigt eine einminütige, einstimmige Hauptmelodie mit einer Auflösung von halben Noten im Rohformat nur noch etwa 200 Bytes an Speicherplatz.

Im Rahmen einer Diplomarbeit ist eine komplette, manuelle Vorberarbeitung einer großen Datenbank nicht machbar. Daher wurden für „Hummel“ die verwendeten Lieder nur vorgehört und vorselektiert. Der größere Suchraum musste für das experimentelle System in Kauf genommen werden.

Import von Midi Daten

Das Midi Format ist sehr flexibel und komplex. Besonders herstellerspezifische Eigenheiten machen die Implementierung der Importfunktion aufwendig. Auf technische Details der Implementierung soll daher hier nicht eingegangen werden.

Realisierung

Die Importfunktion lädt eine beliebige Midi Datei ein. Aus dem Header wird die Geschwindigkeit (BPM Rate) extrahiert. Entsprechend der BPM Rate wird das Lied in Viertelnoten rasterisiert. Note-On/Off Events definieren den Beginn und das Ende der einzelnen Noten. Die Hauptmelodie ist häufig im ersten oder zweiten Track zu finden, daher wird nach der Nummer des niedrigsten Tracks gesucht. Nur die Noten der Hauptmelodie werden für die weitere Suche verwendet. Velocity Daten und sonstige Events werden beim Import von Midi Liedern ignoriert, da sie in der Praxis keine für die Suche relevante Information beinhalten.
Nach dem Import steht zur Weiterverarbeitung die Information über die Geschwindigkeit, die Information über die Länge des Liedes und eine Matrix aus Noten zur Verfügung. Die Notenmatrix ist in Viertelnoten gerastert und definiert für jeden Zeitpunkt X eine Menge von Noten mit der Tonhöhe Y. Ist die Mächtigkeit der Menge zum Zeitpunkt X gleich Null, existiert zum gegebenen Zeitpunkt gerade keine Note. Es herrscht also gerade Ruhe.



Abbildung 8.1: Polyphone Notenmatrix zu „Die Gedanken sind frei“ in der Sequencersoftware Orion; X-Achse: Zeit (25-140 Sek.); Y-Achse: Tonhöhe (G4-E6)


Um die Weiterverarbeitung zu beschleunigen, kann es bei sehr großen Datenbanken sinnvoll sein, die Notenmatrizen in einem Rohformat zu speichern. Somit entfällt ein Teil des komplexen Midi Imports. Darüber hinaus kann die Robustheit des Programms verbessert werden, da potentielle Buffer overflows, für die das Midi Format aufgrund des komplexen Formats prädestiniert ist, vermieden werden können.
Die Speicherung in Form von Listen, die alle zum Zeitpunkt X gespielten Noten definieren, verkleinert den Speicherplatzbedarf gegenüber von Matrizen etwa um den Faktor 50 (128 Midi Noten, durchschnittlich 2 Noten pro Zeiteinheit + Listenlänge).



Melodievergleich

Abstrakt

Im Vergleichsmodul wird die gesummte Melodie mit allen Melodien in der Datenbank verglichen.
Es konnte kein Algorithmus gefunden werden, der den Melodievergleich effizient löst und zugleich eine hohe Erkennungsrate hat.
Für den Melodievergleich konnte eine Distanztabelle gefunden werden, welche die Erkennungsqualität steigert.

Problemstellung

Bei Gesungenem handelt es sich um sehr unsaubere Daten. Nur sehr selten entsprechen die Noten in der gesummten Melodie genau den Noten in der Midi-Datenbank.
Im Vergleichsmodul wird die gesummte Melodie mit allen Melodien in der Datenbank verglichen. Anhand der Vergleichswerte sollen die ähnlichsten Lieder zum Gesungenen gefunden werden.

Jeder paarweise Vergleich zwischen der gesummten Melodie und einer Melodie aus der Datenbank liefert einen Score. Je höher der Score ist, desto ähnlicher sind sich die beiden.
Der Score ist ein relatives Maß. Er ist abhängig von der gesummten Melodie, allen Melodien in der Datenbank und den Parametern von fast allen Algorithmen in QbH System. Er liefert nur die Aussage darüber, dass das Gesummte G der Midi Datei A ähnlicher ist, als der Midi Datei B. Anhand des Scores können später die Lieder der Ähnlichkeit nach sortiert werden. Lieder mit einem hohen Score entsprechen mit höherer Wahrscheinlichkeit dem gesuchten Lied als Lieder mit niedrigem Score.

Werden alle Scores einer größeren Datenbank zu einer gesummten Melodie berechnet, so lässt sich aus dem Quotienten von Summe und Gesamtzahl der Elemente der Datenbank ein Mittelwert errechnen. Ein reiner Zufallstreffer in der Suche erreicht im Durchschnitt genau diesen Mittelwert.
Der durchschnittliche Score ist folglich auch ein relatives Maß. Er ist abhängig von der gesummten Melodie, allen Melodien in der Datenbank und den Parametern von allen Modulen in QbH System.
Wie beim „Signal to Noise Ratio“ gilt: Je weiter sich der Score einer Anfrage vom Durchschnitts-Score distanziert, desto signifikanter ist das Suchergebnis zu werten.


Timestretching

In einem Vorverabeitungsschritt wird die gesummte Melodie mit den Faktoren 1, 2, 3 und 4 gestreckt. Durch das Strecken mit Skalierungsfaktoren 1 und 4 wird erreicht, dass auch halb und doppelt so schnell gesungene Melodien erfasst werden. Der Faktor 3 fängt potentielle Quantisierungsfehler bei der Rhythmuserkennung von stark punktierten Rhythmen ab. Da die Streckung um Faktor 3 und 4 weniger wahrscheinlich ist, werden dort Scores um den Faktor 0.5 verringert.
Jedes Lied in der Datenbank wird mit der gesummten Melodie viermal in unterschiedlicher Skalierung und Gewichtung verglichen.


Ähnlichkeitsberechnung

Das Modul zur Ähnlichkeitsberechnung vergleicht eine gestreckte Gesangsmelodie mit einer Melodie aus der Midi-Datenbank. Für eine Datenbank von n Liedern, wird aufgrund des Timestrechings N*4 mal ein Score berechnet.
Ein Algorithmus vergleicht eine zweidimensionale Noten-Matrix, die aus den Midi Daten erzeugt wurde mit den einzeln gewichteten, k wahrscheinlichsten Noten aus der Melodieextraktion. Die Funktion liefert einen Score, einen Startzeitpunkt und einen Transponierungsfaktor zurück.


Bei der Ähnlichkeitsberechnung ist folgendes zu berücksichtigen:

Die gesummte Melodie ist an einer beliebigen Stelle in der Melodie der Midi Datei zu finden (Verschiebung in der Zeit; X-Achse)
Die gesummte Melodie kann in einer beliebigen Tonart sein (Verschiebung in der Y-Achse)
Die gesummte Melodie ist meist nur ein kurzer Ausschnitt der Midi Melodie in der Datenbank
Die gesummte Melodie enthält fast immer Fehler und kann unvollständig sein
Die Melodie in der Datenbank kann Fehler enthalten
In der gesummten Melodie werden pro Takt k gewichtete, verschiedene Noten gegeben
Die Melodie in der Midi-Datenbank kann polyphon sein. Es können mehrere Noten gleichzeitig gespielt werden.
Die gesuchte Melodie ist häufig am Anfang von Liedern in der Datenbank zu finden
Technisch bedingte Frequenzverdopplungs- und Frequenzhalbierungfehler sollen beim Matching weniger bestraft werden
„Leicht falsch gesungene Noten“ sollen toleriert werden
Zu einem Zeitpunkt können keine oder beliebig viele Noten in beliebiger Lautstärke spielen

Der relative Score kann mit verschiedenen Matching Methoden errechnet werden. Unter Matching versteht man die Korrelation zusammengehöriger Passpunkte.

Beim Vergleich von zwei polyphonen Melodien, wird der Punkt gesucht, an dem zwei zweidimensionale Notenmatrizen so gegeneinander verschoben sind, dass sie einander am ähnlichsten sind. Die Notenmatrizen können sowohl in X-Richtung (Zeitpunkt), als auch in Y-Richtung (Tonhöhe) verschoben werden. 

Die Verschiebung in der Tönhöhe wird in der Musik als Transponieren von Tonarten bezeichnet. Die Notenwerte ändern sich dabei, die Halbtonschritte der Intervalle zueinander bleiben dabei erhalten. Zwei Melodien, die eine identische Abfolge von Intervallen und identische Rhythmen haben, sind unabhängig von ihrer Tonart für das QbH System als „identisch“ zu sehen. Diese Anforderung ergibt sich daraus, dass ein Großteil der Menschen Tonhöhen nur relativ unterscheiden kann. Sie können vorgespielte Töne nach der Tonhöhe ordnen und Intervallfolgen rhythmisiert wiedergeben. Die Wahl der Tonhöhe beim Singen ergibt sich meist willkürlich und ist stark abhängig von der Physiognomie des Vocaltrakts eines Sängers.

Ein QbH System muss Melodien unabhängig von ihrer Tonhöhe vergleichen können.

Bei einer Suchanfrage kann nicht davon ausgegangen werden, dass die ersten Noten im Gesungenen auch den ersten Noten in den Melodien in der Datenbank entsprechen. In der Praxis singen die Benutzer meist die Melodie eines Refrains. Der Refrain kann sowohl am Anfang als auch in der Mitte eines Liedes zu finden sein. Der Zeitpunkt des Refrains ist
somit undefiniert.

Ein QbH System muss Melodien unabhängig vom Zeitpunkt vergleichen können.


Matchingalgorithmen

Ein Matchingalgorithmus wird verwendet, um den Zeitpunkt und die Tonhöhenverschiebung zwischen zwei Notenmatrizen zu finden, bei denen sie einander maximal ähnlich sind. Darüber hinaus berechnet er einen Score, der als Ähnlichkeitsmaß für spätere Berechnungen dient.

Für „Hummel“ wurden 3 Matchingalgorithmen implementiert. Sie unterscheiden sich in Komplexität, Implementierungsaufwand und Erkennungsrate:

Binäres Matching
Matching mit Ableitungsfunktion
Matching mit gewichteter Distanzfunktion

Binäres Matching

Abstrakt

Das binäre Matching ist eine einfache Variante, um zwei polyphone Melodien miteinander zu vergleichen.

Funktionsweise

Zunächst wird die Polyphonie zu jedem Zeitpunkt in den Melodien bestimmt. Es wird gezählt, wie viele Noten zu jedem Zeitpunkt gleichzeitig spielen. Spielen zu einem Zeitpunkt sehr viele Noten gleichzeitig, so wird später mit geringerer Gewichtung bestraft, als bei nur einer Note. Die Polyphonie-Werte werden in einem Array für die spätere Weiterverarbeitung und Optimierung gespeichert.
Die Werte X und Y sind unbekannt. Nun werden die beiden zweidimensionalen Matrizen punktweise in X und Y Richtung so gegeneinander verschoben, dass der Score maximal ist. Der Vergleich von zwei Liedern liefert also einen Score, einen X-Wert und einen Y-Wert zurück. Der maximal-Score zwischen den beiden Liedern ist als Maß dafür zu sehen, wie ähnlich die gesummte Melodie an der zu ihr ähnlichsten Stelle in der Melodie aus der Datenbank ist. Der X-Wert beschreibt den Zeitpunkt in der Melodie in der Datenbank und der Y-Wert beschreibt die ideale Transponierung.
Zur Erstellung eines Scores zur Verschiebung X/Y wird der Score zunächst auf 0 gesetzt. Dann wird die erste Matrix mit der Verschiebung um X/Y punktweise mit der zweiten verglichen. Wenn zwei Noten übereinander liegen, wird der Score „belohnt“. Existiert an der Stelle nur eine von zwei Noten, wird der Score mit einem geringerem Wert „bestraft“. Existieren an der zu untersuchenden Stelle in beiden Melodien keine Noten, bleibt der Score gleich. Je größer der Score ist, desto mehr Noten überlappen sich.
An einer Stelle bei der Verschiebung um X/Y ist der Score maximal. Dieser maximal- Score, dessen Zeitpunkt und dessen ideale Transponierung werden von der Funktion zurückgeliefert und für die Weiterverarbeitung verwendet.

Komplexität

Da die naive Implementierung mit zwei sich gegeneinander verschiebenden zweidimensionalen Matrizen eine quartische Komplexität hat und zu einem Zeitpunkt nur eine geringe Anzahl von Noten gleichzeitig spielen, sollte mindestens eine der beiden Melodien als Liste implementiert sein. Die Liste speichert zu jedem Zeitpunkt alle gespielten Noten. Dadurch kann die Komplexitätsklasse auf o(l*n³) verringert werden, wobei l der durchschnittlichen Anzahl von gleichzeitig gespielten Noten in der Listenmelodie entspricht.
Durch minimum bounding box Verfahren lässt sich der Suchraum noch zusätzlich verkleinern.
Schwächen der Methodik

Der Algorithmus belohnt oder bestraft, unabhängig von der Distanz und der musikalischen Ähnlichkeit von Noten. So unterscheidet er beispielsweise nicht, ob sich zwei Noten nur um einen Halbton oder um eine große Distanz unterscheiden.
Aufgrund dessen und der hohen Komplexität wird der Algorithmus in der aktuellen Version von „Hummel“ nicht mehr verwendet.


Matching mit Ableitungsfunktion
Abstrakt

Durch das Verwenden der Ableitungsfunktion kann die Komplexitätsklasse des Matchings auf o(n²) verringert werden.


Funktionsweise

Die Problematik der hohen Komplexität für das im vorangehenden vorgestellte Binäre Matching beruht darin, dass zwei, um beliebige Werte in X und Y Richtung verschobene Matrizen verglichen werden.
Wenn man vorraussetzt, dass jede der beiden Melodiematrizen zu jedem Zeitpunkt genau eine Note enthält, kann man die Matrize als lineare Zeitreihe darstellen. Der Wert Y zum Zeitpunkt X entspricht dann der Tonhöhe der Note. So müssen nur noch zwei, um die Zeit X und die Transpositionskonstante Y verschobene lineare Zeitreihen verglichen werden.

Sei g eine beliebige Funktion und Y konstant, dann gilt:

f'( C ) = 0
f'( g + Y ) = f'( g )

Veranschaulicht bedeutet das, dass zwei identische, nur in der Y-Achse verschobene Funktionen die selbe Ableitung haben.
Diese Eigenschaft der Ableitungsfunktion kann verwendet werden, um die unbekannte Transpositionskonstante Y los zu werden. Anstatt den Ähnlichkeitsvergleich auf den beiden, um die Zeit X und die Konstante Y verschobenen Zeitreihen durchzuführen, wird der Ähnlichkeitsvergleich zwischen den Ableitungen der um die unbekannte X verschobenen Zeitreihen berechnet. Durch das Verwenden des Ableitungstricks kann so die Komplexitätsklasse des Matchings auf o(n²) verringert werden.

Im ersten Schritt werden die Lücken in den Melodien, an denen keine Note spielt, mit dem Wert der letzten gespielten Note aufgefüllt. Es kann immer nur genau eine Note pro Zeitpunkt spielen. Anschließend werden die Funktionen der beiden Melodien differenziert.
Zur Berechnung eines Scores mit der Verschiebung X, wird der Score zunächst auf 0 gesetzt. Dann wird die erste abgeleitete Zeitreihe mit der Verschiebung um X punktweise mit der zweiten verglichen. Wenn die Werte nahe beieinander liegen, wird der Score um einen bestimmten Wert in Abhängikeit von der Distanz erhöht. Je näher die Distanz, desto höher ist der Wert.
An einer Stelle bei der Verschiebung um X, ist der Score maximal. Dieser maximal-Score und der Zeitpunkt X werden von der Funktion zurückgeliefert und für die Weiterverarbeitung verwendet.

Komplexität

Die Komplexitätsklasse für das Vergleichen von zwei um die Unbekannte X verschobenen Zeitreihen ist o(n²).

Schwächen der Methodik

In der Praxis hat sich gezeigt, dass sich das Matching mit Ableitungsfunktionen für den Vergleich von Melodien nicht gut eignet.

Ein einzelner Fehler in der Ableitungsfunktion hat, musikalisch betrachtet, gravierende Auswirkungen auf die Melodik.
Das Ableiten verzerrt die Semantik vom Ähnlichkeitsmaß Score stark. Nach dem Ableiten wird beispielsweise ein konstant gehaltener Ton und eine Tonleiter als ähnlich gewertet, da deren Ableitungen sich nur um +-1 unterscheiden. Tieffrequente Differenzen zwischen den zu vergleichenden Sequenzen gehen in der Bewertungsfunktion verloren. 
Die Qualität der zu vergleichenden Daten ist zu unsauber für die Methodik.
In der Praxis enthalten die Notensequenzen viele „Löcher“, an denen keine Note spielt. Die Werte in der Ableitungsfunktion sind hier undefiniert.
Die Methode kann kein polyphones Material vergleichen. Sowohl die k möglichen gewichteten Grundfrequenzen als auch die Midi Sequenzen sind oft polyphon.

Da das Matching mit der Ableitungsfunktion, verglichen mit den beiden anderen Verfahren, die schlechtesten Ergebnisse liefert, wird der Algorithmus in „Hummel“ nicht mehr verwendet.
Möglicherweise führt die Verwendung eines steileren Hochpassfilters bessere Ergebnisse als die Verwendung des Differenzgliedes (Ableitung), das über das gesamte Spektrum eine Flankensteilheit von 6dB pro Oktave aufweist. So lässt sich zumindest die Verzerrung der Semantik des Ähnlichkeitsmaßes auf einen bestimmten Frequenzbereich beschränken.
Matching mit gewichteter Distanzfunktion
Abstrakt

Das Matching mit Distanzfunktion liefert von den drei Algorithmen die besten Ergebnisse. Die Wahl der Distanztabelle hängt von den Fähigkeiten eines Sängers und dem verwendeten Grundfrequenzalgorithmus ab.

Funktionsweise

Zuerst wird die Polyphonie zu jedem Zeitpunkt in den Melodien bestimmt. Es wird gezählt, wie viele Noten zu jedem Zeitpunkt gleichzeitig spielen. Spielen zu einem Zeitpunkt sehr viele Noten gleichzeitig, so wird später mit geringerer Gewichtung bestraft, als bei nur einer Note. Die Polyphonie-Werte werden in einem Array gespeichert.
Es werden die beiden zweidimensionalen Matrizen punktweise in X und Y Richtung so gegeneinander verschoben, dass der Score maximal ist. Der Vergleich von zwei Liedern liefert einen Score, einen X-Wert und einen Y-Wert. Der X-Wert beschreibt den Zeitpunkt in der Melodie in der Datenbank und der Y-Wert beschreibt die ideale Transponierung.
Der Score wird zunächst auf 0 gesetzt. Dann werden die Tonhöhen in Abhängigkeit von der Verschiebung um X/Y verglichen. Eine Distanztabelle ordnet jeder Notendifferenz einen Wert zu. Existiert zum gegebenen Zeitpunkt eine Midi-Note, so wird der Score um den Wert der Distanztabelle, gewichtet mit dem Konfidenzwert aus der Grundfrequenzextraktion, erhöht. Existiert in der Midi-Melodie keine Note, so wird der Score mit einem geringeren konstanten Wert, gewichtet mit dem Konfidenzwert aus der Grundfrequenzextraktion, erniedrigt.
Bei der Suche nach Kinderliedern erhalten Melodien, die in den ersten 20 Sekunden erkannt werden, einen kleinen Bonus. In der Praxis konnte nämlich bei diesem Material häufig beobachtet werden, dass die Probanden nicht den Refrain, sondern den Beginn des Liedes gesungen haben.
An einer Stelle, bei der Verschiebung um X/Y, ist der Score maximal. Dieser maximal- Score, dessen Zeitpunkt und dessen ideale Transponierung werden von der Funktion zurückgeliefert und für die Weiterverarbeitung verwendet.



Distanztabelle

Die Distanztabelle ermöglicht es, die Fehler in Abhängigkeit von der Notendifferenz zu werten. In der Musik ist der Aufbau dieser Tabelle nicht linear, sondern ergibt sich aus den Ähnlichkeiten von ganzzahligen Frequenzverhältnissen zwischen Intervallen. So sind sich beispielsweise zwei Töne mit einer Distanz von 12 Noten (Oktave) und dem Frequenzverhältnis 1:2 ähnlicher als zwei Töne mit einer Distanz von 6 Noten (Tritonus) und dem Frequenzverhältnis 729:512.
Die Praxis hat gezeigt, dass Menschen die Grundfrequenz häufig nur mit einer Genauigkeit von 15% (+-2 Halbtöne) treffen. Der Algorithmus muss also tolerant gegenüber „leicht falsch“ gesungenen Noten sein. Der Zielfrequenz nahe gelegene Noten werden von der Distanztabelle mit leicht geringerer Gewichtung toleriert.

Gegenüber dem binären Matching, das exakt gesungene Noten erfordert, konnte die Erkennungsqualität durch das Anwenden einer Distanztabelle um 20% gesteigert werden.



Tabelle 9.1: Vergleich von verschiedenen Distanzfunktionen
Die „Erkennungsqualität“ EQ ist hier definiert als Quotient aus dem erreichten Score und dem durchschnittlichen Score aus allen Liedern in der Datenbank.
Wie beim „Signal to Noise Ratio“ gilt: Je weiter sich der Wert von 1 distanziert, desto besser ist das Suchergebnis. Für die Messung wurde eine Datenbank von 100 Kinderliedern verwendet. Zur Grundfrequenzextraktion diente der AKF+COMB Algorithmus mit k=5.
Bei fast allen Distanztabellen wurde die gesungene Melodie an erster Stelle gefunden. Eine Evaluierung nach Ranking war daher nicht sinnvoll und würde eine größere Datenbank und eine größere Zahl an Versuchen erfordern. Dies war aufgrund der beschränken Rechenkapazität und des hohen Zeitaufwands im Rahmen der Diplomarbeit nicht möglich.

Die Wahl der Distanztabelle hängt von den Fähigkeiten eines Sängers und dem verwendeten Grundfrequenzalgorithmus ab.

Ein guter Sänger trifft die Grundfrequenz einer Note mit einer höheren Genauigkeit als ein schlechter. Die Distanztabellen für schlechte Sänger enthalten daher auch noch bei den Distanzen +-1, +-2 und +-3 eine positive Gewichtung.
Einen Extremfall stellt das bereits vorgestellte binäre Matching dar. Hier werden nur exakt richtige Noten toleriert. Da der verwendete AKF+COMB Algorithmus um F0 herum für k>1 relativ breit streut, wurden auch hier noch gute Ergebnisse erzielt.

Die verschiedenen Grundfrequenzextraktionsalgorithmen sind unterschiedlich anfällig gegenüber Frequenzvervielfachungs- und Frequenzteilungsfehlern und erfordern eine individuelle Anpassung der Distanzfunktion.
Beim AKF+COMB treten in der Praxis manchmal Frequenzverdopplungsfehler auf. Deshalb berücksichtigen manche der oben gezeigten Distanzfunktionen Ähnlichkeiten um d=12 (Oktave).
Die klassiche Autokorrelation ist anfällig gegenüber Frequenzteilungsfehlern, da oft Zyklizitäten mit der 2-fachen, 3-fachen und X-fachen Wellenlänge erkannt werden.
Cepstrumbasierte Grundfrequenzextraktionsalgorithmen sind anfällig gegenüber Frequenzvervielfachungsfehlern. Hier werden aufgrund der Pegelanhebung des ersten Formanten um 200Hz manchmal Zyklizitäten mit der 2-fachen, 3-fachen und X-fachen Frequenz gefunden.

Komplexität

Da die naive Implementierung mit zwei sich gegeneinander verschiebenden zweidimensionalen Matrizen eine quartische Komplexität hat und zu einem Zeitpunkt nur eine geringe Anzahl von Noten gleichzeitig spielen, sollte mindestens eine der beiden Melodien als Liste implementiert sein. Die Liste speichert zu jedem Zeitpunkt alle gespielten Noten. Dadurch kann die Komplexitätsklasse auf o(l*n³) verringert werden, wobei l der durchschnittlichen Anzahl von gleichzeitig gespielten Noten in der Listenmelodie entspricht.
Durch minimum bounding box Verfahren lässt sich der Suchraum möglicherweise noch zusätzlich verkleinern.
Schwächen der Methodik

Die hohe Komplexität macht die Ähnlichkeitsberechnung sehr teuer. Der Algorithmus ist nur bedingt robust gegen fehlende oder überschüssige Elemente in den Melodien.


Vergleich der Matchingalgorithmen

Jeder der untersuchten Algorithmen bietet sowohl Vor- als auch Nachteile. Eine effiziente Lösung mit guten Suchergebnissen konnte für den Vergleich von Melodien nicht gefunden werden. Deshalb bleibt das Matching der Flaschenhals bei der Ähnlichkeitssuche.
Das Matching mit gewichteter Distanzfunktion liefert in „Hummel“ die besten Ergebnisse.


Binäres Matching

Vorteile:

Einfach zu implementieren
Kann polyphones Material vergleichen

Nachteile:

Performance
Intolerant gegenüber geringen Grundfrequenzfehlern

Ausblick und Verbesserungsmöglichkeiten

Durch die Verwendung von Dynamic Time Warping könnte der Algorithmus robuster gegenüber von Rhythmusfehlern werden. [Ber 94]



Matching mit Ableitungsfunktion

Vorteile:

Performance

Nachteile:

Kann nur monophones Material vergleichen
Das Ableiten verzerrt die Semantik vom Ähnlichkeitsmaß
Schlechte Suchergebnisse
Wenig geeignet für den Vergleich von Melodien

Ausblick und Verbesserungsmöglichkeiten

Die Verwendung eines steileren Hochpassfilters anstatt der Ableitungsfunktion könnte zu einer Verbesserung der Suchergebnisse führen. Die Verzerrung der Semantik des Ähnlichkeitsmaßes würde so auf einen kleineren Frequenzbereich beschränkt werden.
Ein Algorithmus, der automatisiert den Grundton aus Akkorden extrahiert, kann den Algorithmus auch für die Analyse von polyphonem Material brauchbar machen.
Durch die Verwendung von Dynamic Time Warping könnte der Algorithmus robuster gegenüber von Rhythmusfehlern werden.



Matching mit gewichteter Distanzfunktion

Vorteile:

Kann polyphones Material vergleichen
Gute Suchergebnisse
Distanzfunktion kann Schwächen im Grundfrequenzextraktionsalgorithmus mit berücksichtigen

Nachteile:

Performance

Ausblick und Verbesserungsmöglichkeiten

Durch die Verwendung von Dynamic Time Warping könnte der Algorithmus robuster gegenüber von Rhythmusfehlern werden. [Yun 02]




Sortierung und Ranking

Abstrakt

Im Ranking Modul werden die Lieder nach Priorität gefiltert und sortiert. Es wird eine Liste, der zur gesummten Melodie ähnlichsten Lieder, ausgeben.

Funktionsweise

Im Matching Modul wurde die gesummte Melodie mit allen Liedern aus der Datenbank verglichen. Jeder Vergleich lieferte einen Score zurück. Je höher der Score ist, desto ähnlicher sind sich die beiden Melodien.

Der Score ist ein relatives Maß und liefert nur die Aussage darüber, dass das Gesummte der Midi Datei A ähnlicher ist, als der Midi Datei B.
Aus dem Quotienten der Gesamtsumme aller Scores und der Anzahl der Lieder in der Datenbank kann man einen durchschnittlichen Score errechnen. Dieser Mittelwert variiert von Anfrage zu Anfrage und hängt stark von den Audiodaten der gesummten Melodie ab. Der Score einer Anfrage lässt sich in Relation zu dem Mittelwert aller Anfragen setzen. Je weiter dieser vom Mittelwert abweicht, desto mehr unterscheidet sich die Anfrage von einem Zufallstreffer. Diese Abweichung vom Mittelwert kann wie das „Signal to Noise Ratio“ (SNR) verstanden werden. Bei einer hohen positiven Abweichung vom Mittelwert ist sich das System mit seiner Aussage sehr sicher. Ein Wert von 1 entspricht einem reinem Zufallstreffer. Lieder, deren SNR unterhalb von 1 liegt, schließt das System als potentielle Kandidaten aus.
Falls keine feste Anzahl von besten Liedern zurückgegeben werden soll, kann das SNR als Schwellwert benutzt werden. So kann es sinnvoll sein, alle Lieder mit einem SNR größer als 2 zurück zu liefern.

Die Lieder werden dann anhand ihres Scores sortiert. Die k besten Treffer von der Gesamtmenge aus n Kandidaten werden zurückgeliefert.

Ist k konstant und k<<n:
Sind nur die k besten Treffer aus n Liedern interessant, kann die Menge von k+1 bis n unsortiert bleiben und der Algorithmus dementsprechend optimiert werden.

Ist k variabel und wird ein SNR als Schwellwert benutzt:
Die Liste aus allen Scores kann vorgefiltert werden. Nur die Kandidaten, deren SNR über dem Schwellwert liegt, müssen sortiert werden.

Nach der Sortierung bekommt der Benutzer eine Liste von möglichen Titeln ausgegeben. Das Lied, das das QbH System für am ähnlichsten zur gesummten Melodie hält, führt diese Liste an.
„Hummel“ - eine praktische Umsetzung eines QbH Systems

Eine wichtige Messgröße für ein Query-by-Humming System ist die Erkennungsrate. Ein gutes System findet mit großer Wahrscheinlichkeit das „richtige“ Lied zur gesummten Melodie.
Ursprünglich sollten im Umfang dieser Diplomarbeit lediglich einzelne Module zur Unterstützung von QbH Systemen entwickelt werden. Einzelne Module lassen sich zwar separat implementieren, aber um deren Leistungsfähigkeit hinsichtlich der Erkennungsrate sinnvoll testen zu können, ist es nötig, das komplette System zu betrachten.
Daher wurde mit hohem Aufwand ein bis auf das Sampling Modul komplettes, experimentelles QbH System implementiert. Aufgrund der hohen Ansprüche an Performance und Flexibilität wurde C++ als Programmiersprache gewählt. Als Entwicklungsumgebung diente „Visual Studio 2008“. „Hummel“ ist eine Win32 Anwendung und umfasst die Gesangsmelodieanalyse, die Rhythmusanalyse, eine Musikdatenbank im Midi Format, den Import von verschiedenen Dateiformaten, den Export in verschiedene Dateiformate, die Visualisierung der Analysedaten, die Ähnlichkeitssuche auf der Datenbank und die Sortierung nach Ranking.
Die Quelltexte zum System umfassen insgesamt über 5000 Zeilen an Code.



Abbildung 11.1: Screenshot des experimentellen QbH Systems „Hummel“


Probleme bei der Implementierung von QbH Systemen in der Praxis

Das Verändern nur eines einzigen Parameters in den Algorithmen von QbH Systemen kann das Gesamtverhalten des Systems gravierend verändern. Zusammen mit der Gegebenheit, dass alle Ähnlichkeitsmaße relativ zueinander stehen, wird die Evaluierung und das Feintuning von Parametern sehr schwierig.
Es kann oft nur grob untersucht werden, ob die Veränderung eines Parameters eine Verbesserung oder Verschlechterung mit sich bringt. Es aber auch möglich das Verhalten zu beobachten, wenn einzelne Module weggelassen oder gegen andere ersetzt werden.
Erschwerend für die Evaluierung kommt hinzu, dass eine Suchanfrage auf einer Datenbank mit 100 Liedern in „Hummel“ trotz hardwarenaher Implementierung mehrere Minuten dauert. Eine effiziente Lösung des Matchingproblems mit hoher Erkennungsrate konnte im Rahmen dieser Diplomarbeit nicht gefunden werden.
Bei den Recodings zeigte sich, dass die Versuchspersonen die Melodien eines Liedes häufig korrekt singen konnten. Sie hatten jedoch oft Probleme, die gleiche Melodie zu summen. Es waren oft mehrere Aufnahmen nötig, bis das Klangmaterial den Qualitätskriterien entsprach.


Zusammenfassung

Im Umfang dieser Diplomarbeit wurden viele neue Ideen implementiert. Einige Ansätze konnten signifikante Vorteile gegenüber existierenden Methoden erzielen.

Für die Vorverarbeitung wurde ein Filter zur spektralen Einebnung entwickelt, das die Notenerkennungsrate für gesummtes Audiomaterial bei männlichen Sängern um 39% steigert.

Für die Grundfrequenzsuche wurde die AKF+COMB Transformation zur Erzeugung von „Grundfrequenz Spektrogrammen“ entwickelt. Der Algorithmus erreicht in Kombination mit dem Filter aus der Vorverarbeitung eine Notenerkennungsrate von 98%. Das Grundfrequenzerkennungsproblem von Query-by-Humming Anwendungen konnte gelöst werden. Der Anwendungsbereich der Transformation ist nicht nur auf QbH Anwendungen beschränkt. Er könnte auch wertvolle Erkenntnisse bei der Analyse von Aktienkursen, bei der Auswertung von Seismogrammen und bei der Analyse von Spektren in der digitalen Funktechnologie liefern. Die Transformation ist eine allgemeine Methode zur Visualisierung und Suche von periodischen, auch nicht sinusförmigen Zyklizitäten im Spektrum.

Es konnte ein Algorithmus auf Basis der Autokorrelation gefunden werden, der die automatisierte Takterkennung bei synthetischen Audiomaterial effizient löst.

Für die automatisierte Melodieerkennung wurde ein Algorithmus vorgestellt, der
kontinuierliche Grundfrequenzverläufe in diskrete Notenwerte quantisiert.

Für den Melodievergleich konnte eine Distanztabelle gefunden werden, welche die Erkennungsrate steigert. Die Distanztabelle hilft, dass auch falsch gesungene Noten für die Suche verwendet werden können.

Es wurde ein experimentelles QbH System entwickelt, das den Titel von Melodien automatisiert erkennen kann.

Das System umfasst:

Den Im- und Export von WAV Dateien
Eine große Anzahl von Testsignalen
Die Vorverarbeitungsroutinen
Das Erkennen von Grundfrequenzverläufen
Die Rhythmusextraktion
Die Melodieerkennung
Den Im- und Export von Midi Dateien
Die Resynthese von Spektrogrammen
Eine Midi Datenbank
Mehrere Matchingalgorithmen zur Ähnlichkeitssuche


Ausblick

Um das QbH System zu einem marktreifen Produkt zu entwickeln, müssen in einigen Modulen noch weitere Verbesserungen vorgenommen werden.

Die Robustheit der automatisierten Takterkennung gegenüber von gesungenem Material sollte verbessert werden. Dazu ist eine alternative Extraktionsmethode der Kurzzeitenergie nötig. Das AKF+COMB Spektrogramm hat nur bei synthetischen Klängen gute Ergebnisse erzielt.

Es wird ein Matching Algorithmus benötigt, der den Melodievergleich effizient löst und zugleich eine hohe Erkennungsrate hat. Dadurch wäre die Suche auf großen Datenbanken und eine genauere Evaluierung der Leistungsfähigkeit des QbH Systems möglich.

Für den automatisierten Import von polyphonen Midi Dateien aus der Datenbank wäre eine Akkordauflösung auf den Grundton hilfreich. Dadurch könnte die zweidimensionale Midi-Matrix in eine eindimensionale Zeitreihe aus Noten gewandelt werden. Die Komplexität des Matchings lässt sich dadurch möglicherweise verringern.

Bis QbH Systeme erfolgreich kommerziell eingesetzt werden können, sind noch einige Probleme zu lösen:

„...it is a very challenging task.“ [Lie 01], (Microsoft research)




Glossar


Begriff
Bedeutung
Abtastrate
Samplingrate, Samplerate
Frequenz, mit der ein Signal pro Zeitintervall abgetastet wird
Akkord
Das gleichzeitige Erklingen mehrerer unterschiedlicher Töne in der Musik
AKF
Autokorrelationsfunktion
Array
k-dimensionale Datenstruktur aus der Informatik
Bandpass
Filter, das in einem Signalweg nur die Signale eines bestimmten Frequenzbandes durchlässt und die restlichen Frequenzbereiche sperrt bzw. deutlich abschwächt
BPM
Beats per minute, Taktgeschwindigkeit
dB
Dezibel, logarithmische Pegeleinheit
DFT
Diskrete Fouriertransformation
Distanzfunktion
Funktion, die je zwei Elementen eines Raums einen Wert zuordnet, der als Abstand der beiden Elemente voneinander aufgefasst werden kann
DSP
Digitale Signalverarbeitung
Speicherung, Übermittlung und Transformation von Information im Sinne der Informationstheorie in Form von digitalen, zeitdiskreten Signalen
Faltung
Mathematischer Operator, der für zwei Funktionen f und g eine dritte Funktion liefert
Fensterfunktion
Die Fensterfunktion legt fest, mit welcher Gewichtung die bei der Abtastung eines Signals gewonnenen Abtastwerte innerhalb eines Ausschnittes (Fenster) in nachfolgende Berechnungen eingehen
FFT
Fast Fourier Transform
Filter
Elektrische Schaltung, die bestimmte Frequenzen aus einem Signalspektrum abschwächt


Begriff
Bedeutung
FIR
Filtertyp, Finite Impulse Response, endliche Impulsantwort
Frame
Signalausschnitt bei der Blockverarbeitung
Frequenzbereich
Spektrum eines über die Zeit wechselnden Vorganges
Grundfrequenz
Grundschwingung, Grundton, F0, fundamental frequency
GFB
Grundfrequenzbestimmung
Halbton
Intervall mit dem Frequenzverhältnis 1:1,059
Hochpass
Filter, die nur Frequenzen oberhalb ihrer Grenzfrequenz ungeschwächt passieren lassen und tiefere Frequenzen dämpfen.
Intervall
Höhenunterschied zwischen zwei Tönen
IIR
Infinite Impulse Response, unendlich lange Impulsantwort
KKF
Kreuzkorrelationsfunktion
MIDI
Musical Instruments Digital Interface
Oktave
Note mit der doppelten Grundfrequenz
QbH
query by humming
Oberton
Frequenzen, die ganzzahligen Vielfachen der Grundfrequenz entsprechen
Quantisierung
Größe in einem System, in dem sie nur diskrete Werte annehmen kann
Rauschen
Überlagerung mehrerer Schwingungen mit unterschiedlicher Amplitude und Frequenz
Resynthese
Ein ursprüngliches Signal wird aus den Einzelschwingungen wieder zusammengesetzt
Signalverarbeitung
Bearbeitungsschritte, die das Ziel haben, Informationen aus einem Signal zu extrahieren oder Informationen für die Übertragung von einer Informationsquelle zu einem Informationsverbraucher vorzubereiten.

Begriff
Bedeutung
Spektrum
Frequenzspektrum, Spektralverteilung
Gesamtheit der Frequenzen, die von einem schwingenden System erzeugt werden bzw. in einem Signal enthalten sind
Spektrogramm
Darstellung des zeitlichen Verlaufes des Spektrums eines Signals
Tiefpass
Filter, die Signalanteile mit Frequenzen unterhalb ihrer Grenzfrequenz annähernd ungeschwächt passieren lassen, Anteile mit höheren Frequenzen dagegen abschwächen.
SNR
Signal-to-noise ratio
Sequencer
Software zum Editieren von Midi Dateien
WAV
Dateiformat für Audiosignale
Inhaltsverzeichnis der beigelegten CD


Verzeichnis
Inhalt
Texte
Elektronische Version der Diplomarbeit als OpenOffice Writer Dokument und PDF Datei
Vortrag
Elektronische Version des Vortrags zur Diplomarbeit als OpenOffice Writer Dokument und PDF Datei
Quelltexte
Sourcecodes zum experimentellen QbH System „Hummel“ als Visual Studio C++ 2008 Express Projekt;
Beim Compilieren ist auf die korrekte Verzeichnisstruktur zu achten.
Bilder
Bilddateien zur Diplomarbeit
Projektarbeit
Elektronische Version der vorangehenden Projektarbeit mit Peter Kunath als OpenOffice Writer Dokument und PDF Datei
Midi Datenbank
Musikdatenbank mit 107 Kinderliedern im Midi Format
Rhythmuserkennung
44 Testsignale zur Rhythmuserkennung im WAV Format
Grundfrequenzerkennung
49 Testsignale zur Grundfrequenzerkennung im WAV Format


Literaturverzeichnis


[Agr 93]R. Agrawal, C. Faloutsos, A.N. Swami: „Efficient Similarityy Search In Sequence Databases“, Proceedings of the 4th Conference of Foundations of Data Organisation and Algorithms (FODO), Springer Verlag, Chicago Illinois, Seiten 69-84, 1993


[Ber 94]D. Berndt, J. Clifford: „Using dynamic time warping to find patterns in time series“, Advances in Knowledge Discovery and Data Mining, Seiten 229-248, AAAI/MIT, 1994


[Boc 04] Jürgen Bock: „Algorithmen zur Tonhöhenerkennung und Vergleich verschiedener Implementerungen“, 2004.


[Cha 99]K.-P. Chan, A. W. -C. Fu: „Efficient time series matching by wavelets“, Proceedings of the 15th Inetrnational Conference on Data Engineering, Sydney, Australia, Seiten 126-133, 1999


[Hes 83] Wolfgang Hess: „Pitch Determination of Speech Signals“, Springer-Verlag, 1983.


[Hes 05] Wolfgang Hess: „Sprachsignalverarbeitung“, Kap 4.1, 2005.


[Jan 01]J.-S. R. Jang, H.-R. Lee: „Hierarchical filtering method for content-based music retrieval via acustic input“, Proceedings of the ninth ACM international conference on Multimedia, Seiten 401-410, ACM Press, 2001


[Kor 97]F. Korn, H. V. Jagadish, C. Faloutsos: „Efficiently supporting ad hoc queries in large datasets of time sequences“, SIGMOD International Conference on Management of Data, Tucson Arizona USA, Seiten 289-300, 1997


[Lie 01] Lie Lu: „A new approach to query by hummung in music retrieval“, 2001.


[Maz 01]D. Mazzoni, R.B. Dannenberg: „Melody matching directly from audio“, 2nd Annual International Symposium on Music Information Retrieval, Bloomington Indiana USA, 2001

[Med 91] Medan, Chazan, Yair: „Grundfrequenzbestimmung“,1991.


[Pop 02]I. Popivanov, R. J. Miller: „Similarity search over time series data using wavelets“, ICDE, 2002


[Res 99] Eckhard Bernd Reschke: „Implementierung eines Algorithmus zur robusten Analyse der Sprachgrundfrequenz“,1999.


[Sch 68] Schroeder M.R.: „Period histogram and product spectrum: new methods for fundamental-frequencymeasurement, Journ. Acoust. Soc. Am. 43, 819-834


[Tol 00]T. Tolonen, M. Karjalainen: „A computational efficient multi-pitch analysis model.“, IEEE Transactions on Speech and Audio Processing, 2000


[Wes 04] Helge Wessels: „Audio Information Retrieval“, 2004.


[WIK 08]Wikipedia:
http://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface,
11.11.2008

[WIK 08-2]Wikipedia:
http://de.wiki pedia.org/wiki/Autokorrelation
10.10.2008

[WIL 03] Arne van Wilgen: „Tonhöhenbestimmung für Verfahren der Melodieerkennung im Standard MPEG-7“, 2003.


[Wu 00]Y.-L. Wu, D. Agrawal, A.E. Abbadi: „A comparison of dft and dwt based similarity serach in time-series databases“, Proceedings of the 9th International Conference on Information and Knowledge Management, 2000


[Yi 00]B.-K. Yi, C. Faltoutsos: „Fast time sequence indexing for arbitrary lp norms“, VLDB 2000, Proceedings of 26th International Conference on Very Large Data Bases, Cairo Egypt, 2000


[Yun 02]Yunyue Zhu, Dennis Shasha: „Query by Humming: a Time Series Database Approach“, 2002, Seiten 1-7


[Zhu 01]Y. Zhu, M.S. Kankenhalli, C. Xu: „Pitch tracking and melody slope matching for song retrieval“, Advances in Multimedia Information Processing – PCM 2001, Second IEEE Pacific Rim Conference on Multimedia, Bejing China, Seiten 24-26, 2001