-
Die
vorliegende Erfindung bezieht sich auf die Extraktion einer einem
Audiosignal zu Grunde liegenden Melodie. Eine solche Extraktion
kann beispielsweise verwendet werden, um eine transkribierte Darstellung bzw.
Notendarstellung einer Melodie zu erhalten, die einem monophonen
oder polyphonen Audiosignal zu Grunde liegt, das auch in einer analogen
Form oder in einer digitalen, abgetasteten Form vorliegen kann.
Melodieextraktionen ermöglichen
somit beispielsweise die Erzeugung von Klingeltönen für Mobiltelefone aus jedwedem
Audiosignal, wie z.B. Gesang, Vorsummen, Vorpfeifen oder dergleichen.
-
Schon
seit einigen Jahren dienen Signaltöne von Mobiltelefonen nicht
mehr nur alleine der Signalisierung eines Anrufes. Vielmehr wurden
dieselben mit wachsenden melodischen Fähigkeiten der mobilen Geräte zu einem
Unterhaltungsfaktor und unter Jugendlichen zu einem Statussymbol.
-
Frühere Mobiltelefone
boten zum Teil die Möglichkeit,
monophone Klingeltöne
am Gerät
selber zu komponieren. Dies war jedoch kompliziert und für musikalisch
wenig vorgebildete Benutzer oft frustrierend und vom Ergebnis her
betrachtet unbefriedigend. Daher ist diese Möglichkeit bzw. Funktionalität aus neueren
Telefonen weitgehend verschwunden.
-
Insbesondere
moderne Telefone, die mehrstimmige Signalisierungsmelodien bzw.
Klingeltöne
zulassen, bieten eine solche Fülle
an Kombinationen, dass eine eigenständige Komposition einer Melodie
auf einem solchen Mobilgerät
kaum noch möglich
ist. Allenfalls lassen sich vorgefertigte Melodie- und Begleitmuster
neu kombinieren, um so in einem beschränkten Maße eigenständige Klingeltöne zu ermöglichen.
-
Eine
solche Kombinierbarkeit vorgefertigter Melodie- und Begleitmuster
ist beispielsweise in dem Telefon Sony-Ericsson T610 implementiert.
Darüber
hinaus ist der Benutzer jedoch auf das Zukaufen kommerziell erhältlicher,
vorgefertigter Klingeltöne
angewiesen.
-
Wünschenswert
wäre es,
dem Benutzer eine intuitiv bedienbare Schnittstelle zur Erstellung
einer eigenen Signalisierungsmelodie zur Verfügung stellen zu können, die
keine große
musikalische Bildung voraussetzt, aber trotzdem zur Umsetzung eigener
polyphoner Melodien geeignet ist.
-
In
den meisten Keyboards besteht heutzutage eine als sogenannte Begleitautomatik
bezeichnete Funktionalität,
eine Melodie bei Vorgabe der zu verwendenden Akkorde automatisch
zu begleiten. Ganz abgesehen davon, dass solche Keyboards keine
Möglichkeit
liefern, über
eine Schnittstelle zu einem Computer die mit einer Begleitung versehene
Melodie an einen Computer zu übertragen
und dort in ein geeignetes Handy-Format
umzuwandeln zu lassen, um dieselben als Klingeltöne in ein Mobiltelefon verwenden
zu können, scheidet
die Verwendung eines Keyboards zur Erzeugung eigener polyphoner
Signalisierungsmelodien für Mobiltelefone
für die
meisten Benutzer aus, da dieselben nicht in der Lage sind, dieses
Musikinstrument zu bedienen.
-
In
der
DE 102004010878 .1
mit dem Titel „Vorrichtung
und Verfahren zum Liefern einer Signalisierungs-Melodie", deren Anmelderin
gleich der Anmelderin der vorliegenden Anmeldung ist, und die am
5. März 2004
beim Deutschen Patent- und Markenamt hinterlegt worden ist, wird
ein Verfahren beschrieben, mit dem sich mit Hilfe eines Java-Applets
und einer Server-Software monophone und polyphone Klingeltöne generieren und
auf ein Mobilgerät
versenden lassen. Die dort vorgeschlagenen Vorgehensweisen zur Extraktion
der Melodie aus Audiosignalen sind aber sehr fehleranfällig oder
nur begrenzt einsetzbar. Unter anderem wird dort vorgeschlagen,
dadurch zu einer Melodie eines Audiosignals zu gelangen, dass charakteristische
Merkmale aus dem Audiosignal extrahiert werden, um dieselben mit
entsprechenden Merkmalen vorgespeicherter Melodien zu vergleichen,
und dann als die erzeugte Melodie diejenige unter den vorgespeicherten
auszuwählen, bei
der sich die beste Übereinstimmung
ergibt. Dieser Lösungsansatz
schränkt
jedoch die Melodieerkennung inhärent
auf den vorgespeicherten Satz von Melodien ein.
-
Die
DE 102004033867.1 mit
dem Titel „Verfahren
und Vorrichtung zur rhythmischen Aufbereitung von Audiosignalen" und die
DE 102004033829.9 mit
dem Titel „Verfahren
und Vorrichtung zur Erzeugung einer polyphonen Melodie", die am selben Tag,
beim Deutschen Patent- und Markenamt hinterlegt worden sind, beschäftigen sich
ebenfalls mit der Erzeugung von Melodien aus Audiosignalen, gehen
aber nicht näher
auf die eigentliche Melodieerkennung ein, sondern eher auf den sich
daran anschließenden
Prozess der Ableitung einer Begleitung aus der Melodie zusammen
mit einer rhythmischen und harmonieabhängigen Aufbereitung der Melodie.
-
Mit
Möglichkeiten
der Melodieerkennung beschäftigt
sich beispielsweise Bello, J.P., Towards the Automated Analysis
of Simple Polyphonic Music: A Knowledge-based Approach, University
of London, Diss., Januar 2003, werden verschiedene Arten der Anfangszeitpunkterkennung
von Noten beschrieben, die entweder auf der lokalen Energie im Zeitsignal
oder auf einer Analyse in der Frequenzdomäne basieren. Darüber hinaus werden
verschiedene Verfahren zur Melodielinienerkennung beschrieben. Das
Gemeinsame an diesen Vorgehensweisen ist, dass dieselben darin kompliziert
sind, dass die schließlich
erhaltene Melodie über
Umwege dadurch erhalten wird, dass zunächst in der Zeit-/Spektraldarstellung
des Audiosignals mehrere Trajektorien verarbeitet bzw. verfolgt
werden, und dass erst unter diesen Trajektorien schließlich die
Auswahl der Melodielinie bzw. der Melodie getroffen wird.
-
Auch
in Martin, K.D., A Blackboard System for Automatic Transcription
of Simple Polyphonic Music, M.I.T Media Laboratory Perceptual Computing
Section Technical Report No. 385, 1996, wird eine Möglichkeit zur
automatischen Transkription beschrieben, wobei diese ebenfalls auf
der Auswertung mehrerer harmonischer Spuren in einer Zeit-/Frequenzdarstellung
des Audiosignals bzw. dem Spektrogramm des Audiosignals beruht.
-
In
Klapuri, A.P.: Signal Processing Methods for the Automatic Transcription
of Music, Tampere University of Technology, Summary Diss., Dezember
2003, und Klapuri, A.P., Signal Processing Methods for the Automatic
Transcription of Music, Tampere University of Technology, Diss.,
Dezember 2003, A.P. Klapuri, „Number
Theoretical Means of Resolving a Mixture of several Harmonic Sounds". In Proceedings
European Signal Processing Conference, Rhodos, Griechenland, 1998,
A.P. Klapuri, „Sound
Onset Detection by Applying Psychoacoustic Knowledge", in Proceedings
IEEE International Conference on Acoustics, Speech, and Signal Processing,
Phoenix, Arizona, 1999, A.P. Klapuri, „Multipitch Estimation and
sound separation by the Spectral Smoothness Principle", in Proceedings
IEEE International Conference on Acoustics, Speech, and Signal Processing,
Salt Lake City, Utah, 2001, Klapuri A.P. und Astola J.T., „Efficient
Calculation of a Physiologically-motivated Representation for Sound", in Proceedings
14th IEEE International Conference on Digital Signal Processing,
Santorin, Griechenland, 2002, A.P. Klapuri, „Multiple Fundamental Frequency
Estimation based on Harmonicity and Spectral Smoothness", IEEE Trans. Speech
and Audio Proc., 11(6), S. 804-816, 2003, Klapuri A.P., Eronen A.J.
und Astola J.T., „Automatic
Estimation of the Meter of Acoustic Musical Signals", Tempere University
of Technology, Institute of Signal Processing, Report 1-2004, Tampere,
Finnland, 2004, ISSN: 1459-4595, ISBN: 952-15-1149-4, werden verschiedene
Verfahren rund um die automatische Transkription von Musik beschrieben.
-
Im
Rahmen der Grundlagenforschung zu dem Themengebiet Extraktion einer
Hauptmelodie als einem Spezialfall der polyphonen Transkription
ist ferner Baumann, U.: Ein Verfahren zur Erkennung und Trennung multipler
akustischer Objekte, Diss., Lehrstuhl für Mensch-Maschine-Kommunikation,
Technische Universität München, 1995,
hervorzuheben.
-
Die
oben genannten unterschiedlichen Ansätze zur Melodieerkennung bzw.
automatischen Transkription stellen meist besondere Anforderungen
an das Eingangssignal. Sie lassen beispielsweise nur Klaviermusik
zu oder nur eine bestimmte Anzahl von Instrumenten oder schließen perkussive
Instrumente aus oder dergleichen.
-
Den
bisher praktikabelsten Ansatz für
aktuelle moderne und populäre
Musik stellt das Vorgehen von Goto dar, wie es beispielsweise in
Goto, M.: A Robust Predominant-FO Estimation Method for Real-time
Detection of Melody and Bass Lines in CD Recordings, Proc. IEEE
International Conference on Acoustics, Speech and Signal Processing,
pp.II- 757-760, Juni 2000, beschrieben wird. Ziel bei diesem Verfahren
ist das Extrahieren einer dominanten Melodie- und Basslinie, wobei
der Umweg zur Linienfindung wieder über das Auswählen unter
mehreren Trajektorien stattfindet, nämlich unter Verwendung sogenannter „Agents". Das Verfahren ist
damit aufwendig.
-
Mit
der Melodiedetektion beschäftigt
sich auch Paiva R.P. u. a.: A Methodology for Detection of Melody in
Polyphonic Musical Signals, 116-te AES Convention, Berlin, Mai 2004.
Auch dort wird vorgeschlagen, den Weg einer Trajektorienverfolgung
in der Zeit-/Spektraldarstellung einzuschlagen. Das Dokument beschäftigt sich
zudem mit der Segmentierung der einzelnen Trajektorien, bis dieselben
zu einer Notenfolge nachverarbeitet werden.
-
Wünschenswert
wäre es,
ein Verfahren zur Melodieextraktion bzw. automatischen Transkription
zu besitzen, das robuster und für
eine breitere Vielzahl von verschiedenen Audiosignalen zuverlässig funktioniert. Ein
solches robustes System könnte
zu einer hohen Zeit- und Kostenersparnis bei „Query by Huming"-Systemen, d.h. bei
Systemen, bei denen es einem Benutzer möglich ist, Lieder durch Vorsummen
in einer Datenbank zu finden, liefern, da eine automatische Transkription
für die
Referenzdateien der Systemdatenbank möglich wäre. Eine robust funktionierende
Transkription könnte
natürlich
auch Einsatz als Aufnahmefrontend finden. Ferner wäre es möglich, eine
automatische Transkription als Ergänzung zu einem Audio-ID-System
zu verwenden, also einem System, das Audiodateien an einem in ihnen
enthaltenen Fingerabdruck erkennt, da bei Nichterkennung durch das
Audio-ID-System,
wie z.B. auf Grund eines fehlenden Fingerabdrucks, die automatische
Transkription alternativ verwendet werden könnte, um eine eingehende Audiodatei
auszuwerten.
-
Eine
stabil funktionierende automatische Transkription würde ferner
eine Herstellung von Ähnlichkeitsbeziehungen
im Zusammenhang mit anderen musikalischen Merkmalen, wie z.B. Tonart,
Harmonie und Rhythmus, wie z.B. für eine „recomandation-engine" bzw. „Vorschlagsmaschine" liefern. In der
Musikwissenschaft könnte
eine stabile automatische Transkription neue Ansichten schaffen
und zur Neuüberprüfung von Urteilen
zu älterer
Musik führen.
Auch zur Wahrung des Urheberrechts durch objektiven Vergleich von
Musikstücken
könnte
eine automatische Transkription, die in ihrer Anwendung stabil ist,
verwendet werden.
-
Zusammenfassend
ausgedrückt
ist die Anwendung der Melodieerkennung bzw. Autotranskription nicht
auf die eingangs erwähnte
Generierung von Klingeltönen
für Mobiltelefone
eingeschränkt,
sondern kann ganz allgemein als Hilfestellung für Musiker und musikalisch Interessierte
dienen.
-
Die
Aufgabe der vorliegenden Erfindung besteht deshalb darin, ein Verfahren
und eine Vorrichtung zum harmonischen Aufbereitung eines Melodieliniesegmentes
zu schaffen, so dass ein stabileres bzw. für eine breitere Vielzahl von Audiosignalen
korrekt arbeitendes Schema zur Melodieerkennung ermöglicht wird.
-
Diese
Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren
gemäß Anspruch
36 gelöst.
-
Die
Erkenntnis der vorliegenden Erfindung besteht darin, dass die Melodieextraktion
oder automatische Transkription deutlich stabiler gestaltet bzw.
das Transkriptionsergebnis verbessert werden kann, wenn an den sich
ergebenden Segmenten bzw. Trajektorien einer aus einem Spektrogramm
eines Audiosignals gewonnen Melodielinie ein Harmoniemapping bzw.
eine Harmonieabbildung derart durchgeführt wird, dass ein zu einem
Bezugssegment in Zeitrichtung direkt benachbartes Nachfolgersegment
virtuell um Oktav-, Quint- und/oder Terzstufen in Frequenzrichtung
verschoben wird, um zu untersuchen, ob unter den entstehenden Oktav-,
Quint- und/oder
Terzlinien eine ist, die eine vorbestimmte Bedingung erfüllt, wie
z.B. dass Zeit-/Spektraldarstellung entlang dieser Linie ein Minimum
aufeist, das um einen bestimmten Faktor größer als ein Minimum ist, das
sie entlang der Bezugssegmentlinie aufweist, und, falls eine solche
Linie existiert, diese ausgewählt wird
und die Verschiebung des Nachfolgersegmentes tatsächlich durchgeführt wird.
Auf diese Weise können Fehler
bei der Melodielinienbestimmung wieder behoben werden. Umgekehrt
kann durch geeignete Auswahl von vorbestimmten Bedingungen für die Oktav-,
Quint- und/oder Terzlinien, die direkte Nachbarschaft und weitere
mögliche
Bedingungen eine fehlerhafte Verschiebung vermieden werden.
-
Gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung findet bei der Melodielinienermittlung
die Annahme genügend
Berücksichtigung,
dass die Hauptmelodie derjenige Anteil eines Musikstückes ist,
den der Mensch am lautesten und prägnantesten wahrnimmt. Dies
aufgreifend wird nämlich
bei der Ermittlung der Melodie des Audiosignals zunächst eine
Melodielinie, die sich durch die Zeit-/Spektraldarstellung erstreckt,
ermittelt, und zwar dadurch, dass jedem Zeitabschnitt bzw. Frame – in eindeutiger
Weise – genau
eine Spektralkomponente bzw. ein Frequenzbin der Zeit-/Spektraldarstellung
zugewiesen wird, nämlich gemäß einem
speziellen Ausführungsbeispiel
diejenige, die zu dem Schallergebnis mit der maximalen Intensität an diesem
Frame führt.
-
Gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung wird der obigen musikwissenschaftlichen
Aussage, dass die Hauptmelodie derjenige Anteil eines Musikstückes ist,
den der Mensch am lautesten und prägnantesten wahrnimmt, gleich
in zweifacher Hinsicht Rechnung getragen. Nach diesem Ausführungsbeispiel
wird nämlich
die Zeit-/Spektraldarstellung
bzw. das Spektrogramm eines interessierenden Audiosignals unter
Verwendung der Kurven gleicher Lautstärke, die die menschliche Lautstärkewahrnehmung
wiederspiegeln, skaliert, um auf der Basis der sich ergebenden wahrnehmungsbezogenen
Zeit-/Spektraldarstellung
die Melodie des Audiosignals zu ermitteln. Genauer ausgedrückt wird
gemäß diesem
Ausführungsbeispiel
das Spektrogramm des Audiosignals zunächst logarithmiert, so dass
die logarithmierten Spektralwerte den Schalldruckpegel anzeigen.
Anschließend
werden die logarithmierten Spektralwerte des logarithmierten Spektrogramms
abhängig
von ihrem jeweiligen Wert und der Spektralkomponente, zu der sie
gehören, auf
wahrnehmungsbezogene Spektralwerte abgebildet. Dabei werden Funktionen
verwendet, die die Kurven gleicher Lautstärke als Schalldruck in Abhängigkeit
von Spektralkomponenten bzw. in Abhängigkeit von der Frequenz darstellen
und unterschiedlichen Lautstärken
zugewiesen sind. Das wahrnehmungsbezogene Spektrum wird wiederum
delogarithmiert, um aus dem Ergebnis ein Zeit/Klangspektrum zu erzeugen,
indem pro Frame für
vorbestimmte Spektralkomponenten Summen aus delogarithmierten wahrnehmungsbezogenen Spektralwerten
gebildet werden. Diese Summen umfassen den delogarithmierten wahrnehmungsbezogenen Spektralwert
an der jeweiligen Spektralkomponente sowie die delogarithmierten wahrnehmungsbezogenen Spektralwerte
an denjenigen Spektralkomponenten, die zu der jeweiligen Spektralkomponente
einen Oberton bilden. Das so erhaltene Zeit/Klangspektrum stellt
eine Version der Zeit/Spektraldarstellung dar, die aus derselben
hergeleitet wird.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockschaltbild einer Vorrichtung zur Erzeugung einer polyphonen
Melodie;
-
2 ein
Flussdiagramm zur Veranschaulichung der Funktionsweise der Extraktionseinrichtung
der Vorrichtung von 1;
-
3 ein
detaillierteres Flussdiagramm zur Veranschaulichung der Funktionsweise
der Extraktionseinrichtung der Vorrichtung von 1 für den Fall
eines polyphonen Audioeingangssignals;
-
4 ein
exemplarisches Beispiel für
eine Zeit-/Spektraldarstellung
bzw. ein Spektrogramm eines Audiosignals, wie es bei der Frequenzanalyse
in 3 entstehen könnte;
-
5 ein
logarithmiertes Spektrogramm, wie es sich nach der Logarithmierung
in 3 ergibt;
-
6 ein
Diagramm mit den Kurven gleicher Lautstärke, wie sie der Bewertung
des Spektrums in 3 zu Grunde liegen;
-
7 einen
Graphen eines Audiosignals, wie es vor der eigentlichen Logarithmierung
in 3 verwendet wird, um einen Bezugswert für die Logarithmierung
zu erhalten;
-
8 ein
wahrnehmungsbezogenes Spektrogramm, wie es nach der Bewertung des
Spektrogramms von 5 in 3 erhalten
wird;
-
9 die
sich aus dem wahrnehmungsbezogenen Spektrum von 8 durch
die Melodielinienermittlung von 3 ergebende
Melodielinie bzw. -funktion eingezeichnet in der Zeit-/Spektraldomäne;
-
10 ein
Flussdiagramm zur Veranschaulichung der allgemeinen Segmentierung
von 3;
-
11 eine schematische Darstellung eines exemplarischen
Melodielinienverlaufs in der Zeit-/Spektraldomäne;
-
12 eine schematische Darstellung eines Ausschnitts
aus der Melodielinienverlaufsdarstellung von 11 zur
Veranschaulichung der Wirkweise der Filterung in der allgemeinen
Segmentierung von 10;
-
13 der Melodielinienverlauf von 9 nach
der Frequenzbereichseingrenzung in der allgemeinen Segmentierung
von 10;
-
14 eine schematische Zeichnung, in der ein Ausschnitt
aus einer Melodielinie gezeigt ist, zur Veranschaulichung der Wirkweise
des vorletzten Schritts in der allgemeinen Segmentierung von 10;
-
15 eine schematische Zeichnung eines Ausschnitts
aus einer Melodienlinie zur Veranschaulichung der Wirkweise der
Segmenteinteilung in der allgemeinen Segmentierung von 10;
-
16 ein Flussdiagramm zur Veranschaulichung der
Lückenschließung in 3;
-
17 eine schematische Zeichnung zur Veranschaulichung
der Vorgehensweise beim Setzen des variablen Halbtonvektors in 3;
-
18 eine schematische Zeichnung zur Veranschaulichung
der Lückenschließung nach 16;
-
19 ein Flussdiagramm zur Veranschaulichung des
Harmoniemappings bzw. der Harmonieabbildung in 3;
-
20 eine schematische Darstellung eines Ausschnitts
aus dem Melodielinienverlauf zur Veranschaulichung der Wirkweise
des Harmoniemappings nach 19;
-
21 ein Flussdiagramm zur Veranschaulichung der
Vibratorerkennung und des Vibratorausgleichs in 3;
-
22 eine schematische Darstellung eines Segmentverlaufs
zur Veranschaulichung der Vorgehensweise nach 21;
-
23 eine schematische Darstellung eines Ausschnitts
aus dem Melodielinienverlauf zur Veranschaulichung der Vorgehensweise
bei der statistischen Korrektur in 3;
-
24 ein Flussdiagramm zur Veranschaulichung der
Vorgehensweise bei der Onset-Erkennung und -Korrektur in 3;
-
25 einen Graphen, der eine exemplarische Filterübertragungsfunktion
zur Verwendung bei der Onset-Erkennung nach 24 zeigt;
-
26 einen schematischen Verlauf eines zweiwegegleichgerichteten
gefilterten Audiosignals sowie der Hüllkurve desselben, wie sie
zur Onset-Erkennung
und -Korrektur in 24 verwendet werden;
-
27 ein Flussdiagramm zur Veranschaulichung der
Funktionsweise der Extraktionseinrichtung aus 1 für den Fall
monophoner Audioeingangssignale;
-
28 ein Flussdiagramm zur Veranschaulichung der
Tontrennung in 27;
-
29 eine schematische Darstellung eines Ausschnitts
aus dem Amplitudenverlauf des Spektrogramms eines Audiosignals entlang
eines Segments zur Veranschaulichung der Funktionsweise der Tontrennung
nach 28;
-
30a und b schematische Darstellungen eines Ausschnitts
aus dem Amplitudenverlauf des Spektrogramms eines Audiosignals entlang
eines Segments zur Veranschaulichung der Funktionsweise der Tontrennung
nach 28;
-
31 ein Flussdiagramm zur Veranschaulichung der
Tonglättung
in 27;
-
32 eine schematische Darstellung eines Segments
aus dem Melodielinienverlauf zur Veranschaulichung der Vorgehensweise
der Tonglättung
nach 31;
-
33 ein Flussdiagramm zur Veranschaulichung der
Offset-Erkennung
und -Korrektur in 27;
-
34 eine schematische Darstellung eines Ausschnitts
aus einem zweiwegegleichgerichteten gefilterten Audiosignals und
dessen Interpolation zur Veranschaulichung der Vorgehensweise nach 33; und
-
35 ein Ausschnitt aus einem zweiwegegleichgerichteten
gefilterten Audiosignals und dessen Interpolation für den Fall
einer potentiellen Segmentverlängerung.
-
Bezug
nehmend auf die nachfolgende Figurenbeschreibung wird darauf hingewiesen,
dass dort die vorliegende Erfindung lediglich exemplarisch anhand
eines speziellen Anwendungsfalles beschrieben wird, nämlich der
Erzeugung einer polyphonen Klingelmelodie aus einem Audiosignal.
Explizit wird an dieser Stelle jedoch darauf hingewiesen, dass die
vorliegende Erfindung natürlich
nicht auf diesen Anwendungsfall beschränkt ist, sondern dass eine
erfindungsgemäße Melodieextraktion
bzw. automatische Transkription auch anderswo Einsatz finden kann,
wie z.B. zur Erleichterung der Suche in einer Datenbank, der bloßen Erkennung von
Musikstücken,
der Ermöglichung
der Wahrung des Urheberrechts durch objektiven Vergleich von Musikstücken oder
dergleichen, oder eben zur bloßen
Transkription von Audiosignalen, um das Transkriptionsergebnis einem
Musiker gegenüber
anzeigen zu können.
-
1 zeigt
ein Ausführungsbeispiel
für eine
Vorrichtung zur Erzeugung einer polyphonen Melodie aus einem Audiosignal,
das eine gewünschte
Melodie enthält.
Anders ausgedrückt
zeigt 1 eine Vorrichtung zur rhythmischen und harmonischen
Aufbereitung und Neuinstrumentierung eines eine Melodie darstellenden Audiosignals
und zum ergänzen
der entstehenden Melodie um eine geeignete Begleitung.
-
Die
Vorrichtung von 1, die allgemein mit 300 angezeigt
ist, umfasst einen Eingang 302 zum Empfang des Audiosignals.
In dem vorliegenden Fall wird exemplarisch davon ausgegangen, dass
die Vorrichtung 300 bzw. der Eingang 302 das Audiosignal
in einer Zeitabtastungsdarstellung, wie z.B. als WAV-Datei, erwartet.
Das Audiosignal könnte
am Eingang 302 allerdings auch in anderer Form vorliegen,
wie z.B. in einer unkomprimierten oder komprimierten Form oder in
einer Frequenzbanddarstellung. Die Vorrichtung 300 umfasst ferner
einen Ausgang 304 zur Ausgabe einer polyphonen Melodie
in jedwedem Format, wobei in dem vorliegenden Fall exemplarisch
von einer Ausgabe der polyphonen Melodie im MIDI-Format ausgegangen
wird (MIDI = musical instrument digital interface). Zwischen den
Eingang 302 und den Ausgang 304 sind eine Extraktionseinrichtung 304,
eine Rhythmuseinrichtung 306, eine Tonarteinrichtung 308,
eine Harmonieeinrichtung 310 und eine Syntheseeinrichtung 312 in
dieser Reihenfolge in Reihe geschaltet. Ferner umfasst die Einrichtung 300 einen
Melodiespeicher 314. Ein Ausgang der Tonartarteinrichtung 308 ist
nicht nur mit einem Eingang der nachfolgenden Harmonieeinrichtung 310 verbunden,
sondern ferner mit einem Eingang des Melodiespeichers 314.
Dementsprechend ist der Eingang der Harmonieeinrichtung 310 nicht
nur mit dem Ausgang der in Verarbeitungsrichtung vorher angeordneten
Tonarteinrichtung 308 sondern auch mit einem Ausgang des
Melodiespeichers 314. Ein weiterer Eingang des Melodiespeichers 314 ist
dazu vorgesehen, eine Bereitstellungs-Identifikationsnummer ID zu
empfangen. Ein weiterer Eingang der Syntheseeinrichtung 312 ist
dazu ausgelegt, eine Stilinformation zu empfangen. Die Bedeutung
der Stilinformation und der Bereitstellungs-Identifikationsnummer geht aus der folgenden
Funktionsbeschreibung hervor. Extraktianseinrichtung 304 und Rhythmuseinrichtung 306 bilden
zusammen eine Rhythmus-Aufbereitungseinrichtung 316.
-
Nachdem
im Vorhergehenden der Aufbau der Vorrichtung 300 von 1 beschrieben
worden ist, wird im folgenden ihre Funktionsweise beschrieben.
-
Die
Extraktionseinrichtung 304 ist dazu ausgebildet, das am
Eingang 302 empfangene Audiosignal einer Notenextraktion
bzw. -erkennung zu unterziehen, um aus dem Audiosignal eine Notenfolge
zu erhalten. Die Notenfolge 318, die die Extraktionseinrichtung 304 an
die Rhythmuseinrichtung 306 weiterleitet, liegt bei dem
vorliegenden Ausführungsbeispiel
in einer Form vor, bei der für
jede Note n ein Notenanfangszeitpunkt tn, der
den Ton- bzw. Notenanfang beispielsweise in Sekunden angibt, eine
Ton- bzw. Notendauer τn, die die Notendauer der Note beispielsweise
in Sekunden angibt, eine quantisierte Noten- bzw. Tonhöhe, d.h.,
C, Fis oder dergleichen, beispielsweise als MIDI-Note, eine Lautstärke Ln der
Note und eine exakte Frequenz fn des Tons bzw.
der Note in der Notenfolge enthalten ist, wobei n einen Index für die jeweilige
Note in der Notenfolge darstellen soll, der mit der Reihenfolge
der aufeinanderfolgenden Noten zunimmt bzw. die Position der jeweiligen Note
in der Notenfolge angibt.
-
Die
Melodieerkennung bzw. Autotranskription, die durch die Einrichtung 304 zur
Generierung der Notenfolge 318 durchgeführt wird, wird später Bezug
nehmend auf die 2 – 35 näher erläutert.
-
Die
Notenfolge 318 stellt immer noch die Melodie dar, wie sie
auch durch das Audiosignal 302 dargestellt wurde. Die Notenfolge 318 wird
nun der Rhythmuseinrichtung 306 zugeführt. Die Rhythmuseinrichtung 306 ist
ausgebildet, um die zugeführte
Notenfolge zu analysieren, um eine Taktlänge, einen Auftakt, d.h. ein Taktraster,
für die
Notenfolge zu bestimmen und dabei die einzelnen Noten der Notenfolge
geeigneten Takt-quantifizierten Längen, wie z.B. ganzen, halben,
Viertel-, Achtelnoten usw., für
den bestimmten Takt zuzuordnen und die Notenanfänge der Noten an das Taktraster
anzupassen. Die Notenfolge, die die Rhythmuseinrichtung 306 ausgibt,
stellt somit eine rhythmisch aufbereitete Notenfolge 324 dar.
-
An
der rhythmisch aufbereiteten Notenfolge 324 führt die
Tonarteinrichtung 308 eine Tonartbestimmung und ggf. eine
Tonartkorrektur durch. Genauer ausgedrückt bestimmt die Einrichtung 308 basierend
auf der Notenfolge 324 eine Haupttonart bzw. Tonart der
durch die Notenfolge 324 bzw. das Audiosignal 302 repräsentierten
Benutzermelodie inklusive des Tongeschlechtes, d.h. Dur oder Moll,
des beispielsweise gesungenen Stückes.
Danach erkennt dieselbe an dieser Stelle ferner tonleiterfremde
Töne bzw.
Noten in der Notenfolge 114 und korrigiert dieselben, um
zu einem harmonisch klingenden Endergebnis zu kommen, nämlich einer
rhythmisch aufbereiteten und tonart-korrigierten Notenfolge 700,
die an die Harmonieeinrichtung 310 weitergeleitet wird
und eine Tonart-korrigierte
Form der von dem Benutzer gewünschten
Melodie darstellt.
-
Die
Funktionsweise der Einrichtung 324 hinsichtlich der Tonartbestimmung
kann auf verschiedene Weisen ausgeführt sein. Die Tonartbestimmung
kann beispielsweise auf die in dem Artikel Krumhansl, Carol L.:
Cognitive Foundations of Musical Pitch, Oxford University Press,
1990, oder die in dem Artikel Temperley, David: The cognition of
basical musical structures. The MIT Press, 2001, beschriebene Weise
stattfinden.
-
Die
Harmonieeinrichtung 310 ist dazu ausgebildet, die Notenfolge 700 von
der Einrichtung 308 zu empfangen und für die Melodie, die durch diese
Notenfolge 700 repräsentiert
wird, eine passende Begleitung zu finden. Dazu agiert bzw. wirkt
die Einrichtung 310 taktweise. Insbesondere wirkt die Einrichtung 310 an
jedem Takt, wie er durch das durch die Rhythmuseinrichtung 306 festgelegte
Taktraster bestimmt ist, derart, dass sie eine Statistik über die
in dem jeweiligen Takt vorkommenden Töne bzw. Tonhöhen der
Noten Tn erstellt. Die Statistik der vorkommenden
Töne wird
dann mit den möglichen
Akkorden der Tonleiter der Haupttonart verglichen, wie sie von der
Tonarteinrichtung 308 bestimmt worden ist. Die Einrichtung 310 wählt unter
den möglichen
Akkorden dann insbesondere denjenigen Akkord aus, dessen Töne am besten
mit den Tönen übereinstimmen,
die sich in dem jeweiligen Takt befinden, wie es durch Statistik
angezeigt wird. Auf diese Weise bestimmt die Einrichtung 310 für jeden
Takt denjenigen Akkord, der am besten zu den beispielsweise eingesungenen
Tönen bzw.
Noten in dem jeweiligen Takt passt. Mit anderen Worten ausgedrückt, ordnet
die Einrichtung 310 den durch die Einrichtung 306 gefundenen
Takten Akkordstufen der Grundtonart in Abhängigkeit des Tongeschlechtes
zu, so dass sich eine Akkordprogression über den Verlauf der Melodie
bildet. Am Ausgang der Einrichtung 310 gibt dieselbe folglich
neben der rhythmisch aufbereiteten und Tonart-korrigierten Notenfolge inklusive
NL ferner für
jeden Takt eine Akkordstufenangabe an die Syntheseeinrichtung 312 aus.
-
Die
Syntheseeinrichtung 312 benutzt zur Durchführung der
Synthese, d.h. zur künstlichen
Erzeugung der sich schließlich
ergebenden polyphonen Melodie, eine Stilinformation, die von einem
Benutzer eingegeben werden kann, wie es durch den Fall 702 angezeigt
ist. Beispielsweise kann ein Benutzer durch die Stilinformation
aus vier verschiedenen Stilen bzw. Musikrichtungen auswählen, in
denen die polyphone Melodie generiert werden kann, nämlich Pop,
Techno, Latin oder Reggae. Zu jedem dieser Stile ist entweder eine
oder sind mehrere Begleitpatterns in der Syntheseeinrichtung 312 hinterlegt.
Zur Erzeugung der Begleitung verwendet nun die Syntheseeinrichtung 312 das
bzw. die durch die Stilinformation 702 angezeigte(n) Begleitmuster.
Zur Erzeugung der Begleitung hängt
die Syntheseeinrichtung 312 die Begleitmuster pro Takt
aneinander. Handelt es sich bei dem durch die Einrichtung 310 bestimmten
Akkord zu einem Takt um die Akkordversion, in der ein Begleitmuster
bereits vorliegt, so wählt
die Syntheseeinrichtung 312 für diesen Takt für die Begleitung
einfach das entsprechende Begleitmuster zu dem aktuellen Stil aus.
Ist jedoch für
einen bestimmten Takt, der durch die Einrichtung 310 bestimmte
Akkord nicht derjenige, in welchem ein Begleitmuster in der Einrichtung 312 hinterlegt
ist, so verschiebt die Syntheseeinrichtung 312 die Noten
des Begleitpatterns um die entsprechende Halbtonzahl bzw. ändert die
Terz und ändert
die Sext und Quinte um einen Halbton im Falle eines anderen Tongeschlechtes,
nämlich
durch Verschiebung um einen Halbton nach oben im Fall von einem
Dur-Akkord umgekehrt im Fall eines Moll-Akkords.
-
Ferner
instrumentiert die Syntheseeinrichtung 312 die durch die
Notenfolge 700, die von der Harmonieeinrichtung 310 an
die Syntheseeinrichtung 312 weitergeleitet wird, repräsentierte
Melodie, um eine Hauptmelodie zu erhalten und kombiniert anschließend Begleitung
und Hauptmelodie zu einer polyphonen Melodie, die sie vorliegend
exemplarisch in Form einer MIDI-Datei am Ausgang 304 ausgibt.
-
Die
Tonarteinrichtung 308 ist ferner dazu ausgebildet, die
Notenfolge 700 im Melodiespeicher 314 unter einer
Bereitstellungsidentifikationsnummer zu speichern. Ist der Benutzer
mit dem Ergebnis der polyphonen Melodie am Ausgang 304 unzufrieden,
kann er die Bereitstellungsidentifikationsnummer zusammen mit einer neuen
Stilinformation neu in die Vorrichtung von 1 eingeben,
woraufhin der Melodiespeicher 314 die unter der Bereitstellungsidentifikationsnummer
gespeicherte Folge 700 an die Harmonieeinrichtung 310 weiterleitet, die
daraufhin – wie
im Vorhergehenden beschrieben – die
Akkorde bestimmt, woraufhin die Syntheseeinrichtung 312 unter
Verwendung der neuen Stilinformation abhängig von den Akkorden eine
neue Begleitung und abhängig
von der Notenfolge 700 eine neue Hauptmelodie erzeugt und
zu einer neuen polyphonen Melodie am Ausgang 304 zusammenfügt.
-
Im
folgenden wird nun anhand der 2 – 35 die
Funktionsweise der Extraktionseinrichtung 304 beschrieben.
Dabei wird zunächst
Bezug nehmend auf die 2 – 26 die
Vorgehensweise bei der Melodieerkennung für den Fall polyphoner Audiosignale 302 am
Eingang der Einrichtung 304 beschrieben.
-
2 zeigt
zunächst
die grobe Vorgehensweise bei der Melodieextraktion bzw. Autotranskription. Ausgangspunkt
ist das Einlesen bzw. die Eingabe der Audiodatei in einem Schritt 750,
die, wie es im vorhergehenden beschrieben wurde, als WAV-Datei vorliegen
kann. Daraufhin führt
die Einrichtung 304 in einem Schritt 752 eine
Frequenzanalyse an der Audiodatei durch, um hierdurch eine Zeit-/Frequenzdarstellung
bzw. ein Spektrogramm des in der Datei enthaltenen Audiosignals
bereitzustellen. Insbesondere umfasst der Schritt 752 eine
Zerlegung des Audiosignals in Frequenzbänder. Dabei wird das Audiosignal
im Rahmen einer Fensterung in vorzugsweise sich zeitlich überlappende
Zeitabschnitte unterteilt, die dann jeweils spektral zerlegt werden,
um für
jeden Zeitabschnitt bzw. jedes Frame einen Spektralwert für jeden
aus einem Satz von Spektralkomponenten zu erhalten. Der Satz von
Spektralkomponenten hängt
von der Wahl der der Frequenzanalyse 752 zu Grunde liegenden
Transformation ab, wobei ein spezielles Ausführungsbeispiel hierfür im folgenden
Bezug nehmend auf 4 erläutert wird.
-
Nach
dem Schritt 752 ermittelt die Einrichtung 304 ein
gewichtetes Amplitudenspektrum bzw. ein wahrnehmungsbezogenes Spektrogramm
in einem Schritt 754. Die genaue Vorgehensweise zur Ermittlung des
wahrnehmungsbezogenen Spektrogramms wird im folgenden Bezug nehmend
die 3 – 8 näher erläutert. Das
Ergebnis des Schrittes 754 ist eine Umskalierung des aus
der Frequenzanalyse 752 erhaltenen Spektrogramms unter
Verwendung der Kurven gleicher Lautstärke, die das menschliche Wahrnehmungsempfinden
widerspiegeln, um das Spektrogramm an das menschliche Wahrnehmungsempfinden
anzupassen.
-
Die
sich an den Schritt 754 anschließende Verarbeitung 756 verwendet
unter anderem das aus Schritt 754 erhaltene wahrnehmungsbezogene
Spektrogramm, um schließlich
die Melodie des Ausgangssignals in Form einer in Notensegmente gegliederten
Melodielinie zu erhalten, d.h. in einer Form, bei der Gruppen von aufeinanderfolgenden
Frames untereinander jeweils die gleiche Tonhöhe zugewiesen ist, wobei diese
Gruppen zeitlich über
ein oder mehrere Frames hinweg voneinander beabstandet sind, sich
also nicht überlappen und
somit Notensegmenten einer monophonen Melodie entsprechen.
-
In 2 ist
die Verarbeitung 756 in drei Teilschritte 758, 760 und 762 zergliedert.
In dem ersten Teilschritt wird das wahrnehmungsbezogene Spektrogramm
herangezogen, um aus demselben eine Zeit-/Grundfrequenzdarstellung
zu erhalten, und diese Zeit-/Grundfrequenzdarstellung wiederum dazu
zu verwenden, eine Melodielinie derart zu ermitteln, dass jedem
Frame auf eindeutige Weise genau eine Spektralkomponente bzw. ein
Frequenzbin zugeordnet wird. Die Zeit-/Grundfrequenzdarstellung berücksichtigt
die Aufteilung von Klängen
in Partialtöne
dadurch, dass zunächst
das wahrnehmungsbezogene Spektrogramm aus Schritt 754 delogarithmiert
wird, um für
jedes Frame und für
jedes Frequenzbin eine Aufsummierung über die delogarithmierten wahrnehmungsbezogenen
Spektralwerte an diesem Frequenzbin und an den Frequenzbins, die
Obertöne
zu dem jeweiligen Frequenzbin darstellen, durchzuführen. Das
Ergebnis ist ein Klangspektrum pro Frame. Aus diesem Klangspektrum
wird die Ermittlung der Melodielinie durchgeführt, indem für jedes
Frame derjenige Grundton bzw. diejenige Frequenz bzw. dasjenige
Frequenzbin ausgewählt
wird, bei dem das Klangspektrum sein Maximum aufweist. Das Ergebnis
von Schritt 758 ist damit quasi eine Melodielinienfunktion,
die jedem Frame eindeutig genau ein Frequenzbin zuweist. Diese Melodielinienfunktion
definiert wiederum einen Melodielinienverlauf in der Zeit-/Frequenzdomäne bzw.
einer zweidimensionalen Melodiematrix, die durch die möglichen
Spekralkomponenten bzw. Bins auf der einen Seite und die möglichen
Frames auf der anderen Seite aufgespannt wird.
-
Die
nachfolgenden Teilschritte 760 und 762 sind dazu
vorgesehen, um die durchgehende Melodielinie zu segmentieren, um
somit einzelne Noten zu ergeben. In 2 ist die
Segmentierung in zwei Teilschritte 760 und 762 aufgegliedert,
je nachdem ob die Segmentierung in Eingangsfrequenzauflösung stattfindet,
d.h. in Frequenzbinauflösung,
oder ob die Segmentierung in Halbtonauflösung stattfindet, d.h. nach
Quantisierung der Frequenzen auf Halbtonfrequenzen.
-
Das
Ergebnis der Verarbeitung 756 wird in Schritt 764 verarbeitet,
um aus den Melodieliniensegmenten eine Folge von Noten zu erzeugen,
wobei jeder Note ein Notenanfangszeitpunkt, eine Notendauer, eine quantisierte
Tonhöhe,
eine exakte Tonhöhe
usw. zugewiesen ist.
-
Nachdem
nun im vorhergehenden Bezug nehmend auf 2 die Funktionsweise
der Extraktionseinrichtung 304 von 1 eher allgemein
beschrieben worden ist, wird im folgenden Bezug nehmend auf 3 die
Funktionsweise derselben für
den Fall detaillierter beschrieben, dass die durch die Audiodatei
am Eingang 302 repräsentierte
Musik polyphonen Ursprungs ist. Die Unterscheidung zwischen polyphonen
und monophonen Audiosignalen rührt
aus der Beobachtung her, dass monophone Audiosignale häufig von
musikalisch weniger geübten
Personen stammen und deshalb musikalische Unzulänglichkeiten aufweisen, die
eine etwas andere Vorgehensweise im Hinblick auf die Segmentierung
erfordern.
-
In
den ersten beiden Schritten 750 und 752 stimmt 3 mit 2 überein,
d.h. es wird zunächst
ein Audiosignal bereitgestellt 750 und dieses dann einer
Frequenzanalyse 752 unterzogen. Gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung liegt die WAV-Datei beispielsweise in
einem Format vor, da die einzelnen Audioabtastwerte mit einer Abtastfrequenz
von 16 kHz abgetastet sind. Die einzelnen Abtastwerte liegen dabei
beispielsweise in einem 16-Bit-Format
vor. Ferner wird im folgenden exemplarisch davon ausgegangen, dass
das Audiosignal als Mono-Datei vorliegt.
-
Die
Frequenzanalyse 752 kann dann beispielsweise mittels einer
Warped-Filterbank und einer FFT (Fast Fourier Transformation) durchgeführt werden.
Insbesondere wird bei der Frequenzanalyse 752 die Folge von
Audiowerten zunächst
mit einer Fensterlänge
von 512 Abtastwerten gefenstert, wobei mit einer Hopsize von 128
Abtastwerten gearbeitet wird, d.h. die Fensterung alle 128 Abtastwerte
wiederholt wird. Zusammen mit der Abtastrate von 16 kHz und der
Quantisierungsauflösung
von 16 Bit stellen diese Parameter einen guten Kompromiss zwischen
Zeit und Frequenzauflösung
dar. Bei diesen exemplarischen Einstellungen entspricht ein Zeitabschnitt
bzw. ein Frame einer Dauer von 8 Millisekunden.
-
Die
Warped-Filterbank wird gemäß einem
speziellen Ausführungsbeispiel
für den
Frequenzbereich bis ca. 1.550 Hz verwendet. Dies ist notwendig,
um für
tiefe Frequenzen eine ausreichend gute Auflösung zu erzielen. Für eine gute
Halbtonauflösung
sollten genügend
Frequenzbänder
zur Verfügung
stehen. Bei einem Lambdawert ab –0,85 bei 16 kHz Abtastrate
entsprechen auf einer Frequenz von 100 Hz etwa zwei bis vier Frequenzbänder einem
Halbton. Für
kleine Frequenzen kann jedes Frequenzband einem Halbton zugeordnet werden.
Für den
Frequenzbereich bis 8 kHz wird dann die FFT verwendet. Die Frequenzauflösung der
FFT ist ab etwa 1.550 Hz ausreichend für eine gute Halbtonrepräsentation.
Hier entsprechen ca. zwei bis sechs Frequenzbänder einem Halbton.
-
Bei
der oben exemplarisch beschriebenen Implementierung ist das Einschwingverhalten
der Warped Filterbank zu beachten. Vorzugsweise wird deshalb eine
zeitliche Synchronisation bei der Kombination der beiden Transformationen
vorgenommen. Die ersten 16 Frames der Filterbankausgabe werden beispielsweise verworfen,
ebenso wie die letzten 16 Frames des Ausgangsspektrums FFT nicht
beachtet werden. Bei geeigneter Auslegung ist das Amplitudenniveau
bei Filterbank und FFT identisch und bedarf keiner Anpassung.
-
4 zeigt
exemplarisch ein Amplitudenspektrum bzw. eine Zeit-/Frequenzdarstellung
bzw. ein Spektrogramm eines Audiosignals, wie es durch das vorhergehende
Ausführungsbeispiel
einer Kombination einer Warped Filterbank und einer FFT erhalten
wurde. Entlang der horizontalen Achse in 4 ist die
Zeit t in Sekunden s abgetragen, während entlang der vertikalen
Achse die Frequenz f in Hz verläuft.
Die Höhe
der einzelnen Spektralwerte ist grauskaliert. Anders ausgedrückt ist
also die Zeit-/Frequenzdarstellung eines Audiosignals ein zweidimensionales
Feld, das durch die möglichen
Frequenzbins bzw. Spektralkomponenten auf der einen Seite (vertikale
Achse) und die Zeitabschnitte bzw. Frames auf der anderen Seite
(horizontale Achse) aufgespannt wird, wobei jeder Position dieses
Feldes an einem bestimmten Tupel aus Frame und Frequenzbin ein Spektralwert
bzw. eine Amplitude zugeordnet ist.
-
Gemäß einem
speziellen Ausführungsbeispiel
werden die Amplituden in dem Spektrum von 4 im Rahmen
der Frequenzanalyse 752 noch nachverarbeitet, da die Amplituden,
die von der Warped Filterbank berechnet werden, für die anschließende Verarbeitung
manchmal nicht exakt genug sein könnten. Die Frequenzen, die
nicht genau auf der Mittenfrequenz eines Frequenzbandes liegen,
besitzen einen niedrigeren Amplitudenwert als Frequenzen, die genau
der Mittenfrequenz eines Frequenzbandes entsprechen. Zusätzlich entsteht
im Ausgangsspektrum der Warped Filterbank ein Übersprechen auf benachbarte
Frequenzbänder,
die auch als Bins bzw. als Frequenzbins bezeichnet werden.
-
Zur
Korrektur der fehlerhaften Amplituden kann der Effekt des Übersprechens
ausgenutzt werden. Von diesem Fehler sind maximal zwei angrenzende
Frequenzbänder
in jeder Richtung betroffen. Gemäß einem Ausführungsbeispiel
werden deshalb in dem Spektrogramm von 4 innerhalb
jedes Frames die Amplituden benachbarter Bins zu dem Amplitudenwert
eines mittleren Bins addiert, und dies für alle Bins. Da die Gefahr besteht,
dass falsche Amplitudenwerte berechnet werden, wenn in einem Musiksignal
zwei Tonfrequenzen besonders nahe beieinander liegen, und so Phantomfrequenzen
erzeugt werden, die größere Werte
als die beiden ursprünglichen
Sinusanteile besitzen, werden gemäß einem bevorzugten Ausführungsbeispiel
nur die Amplitudenwerte der direkt angrenzenden Nachbarbins zur
Amplitude des ursprünglichen
Signalanteils hinzuaddiert.
-
Dies
stellt einen Kompromiss zwischen Genauigkeit und dem Auftreten von
Seiteneffekten dar, die durch die Addition der direkt benachbarten
Bins entstehen. Trotz der geringeren Genauigkeit der Amplitudenwerte
ist dieser Kompromiss im Zusammenhang mit der Melodieextraktion
akzeptabel, da die Änderung
des berechneten Amplitudenwertes bei der Addition von drei oder
fünf Frequenzbändern vernachlässigt werden kann.
Im Gegensatz dazu fällt
das Entstehen von Phantomfrequenzen viel höher ins Gewicht. Das Erzeugen von
Phantomfrequenzen erhöht
sich mit der Anzahl der gleichzeitig auftretenden Klänge in einem
Musikstück. Bei
der Suche nach der Melodielinie kann dies zu falschen Ergebnissen
führen.
Die Berechnung der exakten Amplituden wird vorzugsweise sowohl für die Warped
Filterbank als auch für
die FFT durchgeführt,
damit das Musiksignal anschließend über das
gesamte Frequenzspektrum hinweg durch ein Amplitudenniveau repräsentiert
wird.
-
Das
obige Ausführungsbeispiel
für eine
Signalanalyse aus einer Kombination einer Warped Filterbank und
einer FFT ermöglicht
eine gehörgerechte
Frequenzauflösung
und das Vorhandensein ausreichender Frequenzbins pro Halbton. Für nähere Details
zur Implementierung wird auf die Diplomarbeit von Claas Derboven mit
dem Titel „Implementierung
und Untersuchung eines Verfahrens zur Erkennung von Klangobjekten
aus polyphonen Audiosignalen",
entstanden an der Technischen Universität Ilmenau im Jahr 2003, und
die Diplomarbeit von Olaf Schleusing mit dem Titel „Untersuchung
von Frequenzbereichstransformationen zur Metadatenextraktion aus
Audiosignalen",
entstanden an der Technischen Universität Ilmenau im Jahr 2002, verwiesen.
-
Wie
im vorhergehenden erwähnt
ist das Analyseergebnis der Frequenzanalyse
752 eine Matrix
bzw. ein Feld aus Spektralwerten. Diese Spektralwerte stellen die
Lautstärke
durch die Amplitude dar. Die menschliche Lautstärkewahrnehmung besitzt jedoch
eine logarithmische Einteilung. Es ist somit sinnvoll, das Amplitudenspektrum
an diese Einteilung anzupassen. Dies geschieht in einer sich an
den Schritt
752 anschließenden Logarithmierung
770.
Bei der Logarithmierung
770 werden alle Spektralwerte auf
das Niveau des Schalldruckpegels logarithmiert, was der logarithmischen
Lautstärkewahrnehmung
des Menschen entspricht. Genauer ausgedrückt wird bei der Logarithmierung
770 zu
dem Spektralwert p in dem Spektrogramm, wie es von der Frequenzanalyse
752 erhalten
wird, p auf einen Schalldruckpegelwert bzw. einen logarithmierten
Spektralwert L abgebildet durch
-
p0 gibt hierbei den Bezugsschalldruck an,
d.h. den Lautstärkepegel,
der den kleinsten wahrnehmbaren Schalldruck bei 1.000 Hz besitzt.
-
Im
Rahmen der Logarithmierung 770 muss dieser Bezugswert erst
ermittelt werden. Während
in der analogen Signalanalyse als Bezugwert der kleinste wahrnehmbare
Schalldruck p0 verwendet wird, lässt sich diese
Gesetzmäßigkeit
auf die digitale Signalverarbeitung nicht ohne weiteres übertragen.
Zur Ermittlung des Bezugswertes wird gemäß einem Ausführungsbeispiel
deshalb hierzu ein Probeaudiosignal verwendet, wie es in 7 veranschaulicht
ist. 7 zeigt das Probeaudiosignal 772 über die
Zeit t, wobei in Y-Richtung die Amplitude A in den kleinsten darstellbaren
Digitaleinheiten aufgetragen ist. Wie es zu sehen ist, liegt das
Probeaudiosignal bzw. Referenzsignal 772 mit einem Amplitudenwert
von einem LSB bzw. mit dem kleinsten darstellbaren digitalen Wert
vor. Anders ausgedrückt
oszilliert die Amplitude des Referenzsignals 772 lediglich
um ein Bit. Die Frequenz des Referenzsignals 772 entspricht
der Frequenz der höchsten
Sensitivität
der menschlichen Hörschwelle.
Andere Ermittlungen für
den Bezugswert können
jedoch von Fall zu Fall vorteilhafter sein.
-
In 5 ist
exemplarisch das Ergebnis der Logarithmierung 770 des Spektrogramms
von 4 dargestellt. Sollte sich auf Grund der Logarithmierung
ein Teil des logarithmierten Spektrogramms in dem negativen Wertebereich
befinden, werden diese negativen Spektral- bzw. Amplitudenwerte
zur Vermeidung von nicht-sinnvollen Ergebnissen in der weiteren
Verarbeitung auf 0 dB gesetzt, um über den gesamten Frequenzbereich
positive Ergebnisse zu erhalten. Lediglich vorsichtshalber wird
darauf hingewiesen, dass in 5 die logarithmierten
Spektralwerte auf dieselbe Weise wie in 4 dargestellt
sind, d.h. angeordnet in einer durch die Zeit t und die Frequenz
f aufgespannte Matrix und je nach Wert grauskaliert, nämlich um
so dunkler je größer der
jeweilige Spektralwert.
-
Die
Lautstärkebewertung
des Menschen ist frequenzabhängig.
Deshalb muss das logarithmierte Spektrum, wie es sich aus der Logarithmierung 770 ergibt,
in einem nachfolgenden Schritt 772 bewertet werden, um
eine Anpassung an diese frequenzabhängige Bewertung des Menschen
zu erfahren. Hierzu werden die Kurven gleicher Lautstärke 774 verwendet.
Die Bewertung 772 ist insbesondere deshalb notwendig, um die
unterschiedliche Amplitudenbewertung der musikalischen Klänge über die
Frequenzskala hinweg der menschlichen Wahrnehmung anzupassen, da
gemäß der menschlichen
Wahrnehmung die Amplitudenwerte tiefer Frequenzen eine geringere
Bewertung als Amplituden höherer
Frequenzen erfahren.
-
Für die Kurven 774 gleicher
Lautstärke
wurde vorliegend exemplarisch die Kurvencharakteristik aus DIN 45630
Blatt 2, Deutsches Institut für Normung e.V., Grundlagen
der Schallmessung, Normalkurven gleicher Lautstärke, 1967, verwendet. Der Graphenverlauf
ist in 6 gezeigt ist. Wie es aus 6 ersichtlich
ist, sind die Kurven gleicher Lautstärke 774 jeweils unterschiedlichen
Lautstärkepegeln,
die in Phon angegeben sind, zugeordnet. Insbesondere stellen diese
Kurven 774 Funktionen dar, die jeder Frequenz einen Schalldruckpegel
in dB derart zuordnen, dass alle Schalldruckpegel, die sich auf
der jeweiligen Kurve befinden, dem selben Lautstärkepegel der jeweiligen Kurve
entsprechen.
-
Bevorzugterweise
liegen die Kurven gleicher Lautstärke
774 in der Einrichtung
204 in
analytischer Form vor, wobei es natürlich auch möglich wäre, eine
Nachschlagtabelle vorzusehen, die jedem Paar von Frequenzbin und
Schalldruckpegelquantisierungswert einen Lautstärkepegelwert zuordnet. Für die Lautstärkekurve
mit dem niedrigsten Lautstärkepegel
könnte
beispielsweise die Formel
verwendet
werden. Zwischen diesem Kurvenverlauf und der Hörschwelle unter DIN-Norm sind
allerdings Abweichungen im tief- und hochfrequenten Wertbereich
vorhanden. Zur Anpassung können
die Funktionsparameter der Ruhe-Hörschwelle nach der obigen Gleichung
verändert
werden, um den Verlauf der niedrigsten Lautstärkekurve der oben genannten
DIN-Norm von
6 zu entsprechen. Danach wird
diese Kurve vertikal in Richtung höherer Lautstärkepegel
in Abständen
von 10 dB verschoben und die Funktionsparameter an die jeweilige
Charakteristik der Funktionsgraphen
774 angepasst. Die
Zwischenwerte werden in 1-dB-Schritten durch lineare Interpolation
ermittelt. Vorzugsweise kann die Funktion mit dem höchsten Wertebereich
einen Pegel von 100 dB bewerten. Dies ist ausreichend, da eine Wortbreite
von 16 Bit einem Dynamikbereich von 98 dB entspricht.
-
Basierend
auf den Kurven 774 gleicher Lautstärke bildet die Einrichtung 304 in
dem Schritt 772 jeden logarithmierten Spektralwert, d.h.
jeden Wert in dem Array von 5, abhängig von
der Frequenz f bzw. dem Frequenzbin, zu dem er gehört, und
seinem Wert, der den Schalldruckpegel repräsentiert, auf einen wahrnehmungsbezogenen
Spektralwert ab, der den Lautstärkepegel
repräsentiert.
-
Das
Ergebnis dieser Vorgehensweise für
den Fall des logarithmierten Spektrums von 5 ist in 8 gezeigt.
Wie es zu erkennen ist, besitzen in dem Spektrogramm von 8 tiefe
Frequenzen keine besonders große
Bedeutung mehr. Höhere
Frequenzen und deren Obertöne
werden durch diese Bewertung stärker
hervorgehoben. Dies entspricht auch der menschlichen Wahrnehmung
zur Bewertung der Lautstärke
für unterschiedliche
Frequenzen.
-
Die
vorbeschriebenen Schritte 770 – 774 stellen mögliche Teilschritte
des Schritts 754 aus 2 dar.
-
Das
Verfahren von 3 fährt nach Bewertung 772 des
Spektrums in einem Schritt 776 mit einer Grundfrequenzbestimmung
bzw. mit der Berechnung der Gesamtintensität jedes Klanges in dem Audiosignal fort.
Hierzu werden in Schritt 776 die Intensitäten jeden
Grundtones und der zugehörigen
Harmonischen aufaddiert. Aus physikalischer Sicht besteht ein Klang
aus einem Grundton unter den dazugehörigen Partialtönen. Dabei
sind die Partialtöne
ganzzahlige Vielfache der Grundfrequenz eines Klanges. Die Partial-
oder Obertöne werden
auch als Harmonische bezeichnet. Um nun für jeden Grundton die Intensität desselben
und die jeweils zugehörigen
Harmonischen aufzusummieren, wird in Schritt 776 auf ein
harmonisches Raster 778 zurückgegriffen, um für jeden
möglichen
Grundton, d.h. jedes Frequenzbin, nach Oberton bzw. Obertöne zu suchen,
die ein ganzzahliges Vielfaches des jeweiligen Grundtons sind. Zu
einem bestimmten Frequenzbin als einem Grundton werden somit weitere
Frequenzbins, die einem ganzzahligen Vielfachen des Frequenzbins
des Grundtons entsprechen, als Obertonfrequenzen zugeordnet.
-
In
Schritt 776 werden nun für alle möglichen Grundtonfrequenzen
die Intensitäten
im Spektrogramm des Audiosignals an dem jeweiligen Grundton sowie
seinen Obertönen
aufaddiert. Dabei wird jedoch eine Gewichtung der einzelnen Intensitätswerte
durchgeführt,
da auf Grund mehrerer gleichzeitig auftretender Klänge in einem
Musikstück
die Möglichkeit
besteht, dass der Grundton eines Klanges von einem Oberton eines
anderen Klanges mit einem tieferfrequenten Grundton verdeckt wird.
Ebenfalls können
auch Obertöne
eines Klanges durch Obertöne
eines anderen Klanges verdeckt sein.
-
Um
dennoch die zusammengehörigen
Töne eines
Klanges zu ermitteln, wird in Schritt 776 ein Tonmodell
verwendet, das auf dem Prinzip des Modells von Mosataka Goto basiert
und an die spektrale Auflösung der
Frequenzanalyse 752 angepasst ist, wobei das Tonmodell
von Goto in Goto, M.: A Robust Predominant-FO Estimation Method
for Real-time Detection of Melody and Bass Lines, in CD Recordings,
Proc. IEEE International Conference on Acoustics, Speech and Signal
Processing, Istanbul, Türkei,
2000, beschrieben ist.
-
Ausgehend
von der möglichen
Grundfrequenz eines Klanges werden durch das harmonische Raster 778 für jedes
Frequenzband bzw. Frequenzbin die dazugehörigen Obertonfrequenzen zugeordnet.
Gemäß einem
bevorzugten Ausführungsbeispiel
wird nach Obertönen
für Grundfrequenzen
in lediglich einem bestimmten Frequenzbinbereich gesucht, wie z.B.
von 80 Hz – 4.100
Hz, und Harmonische lediglich bis zur 15. Ordnung berücksichtigt.
Dabei können
die Obertöne
unterschiedlicher Klänge
dem Tonmodell von mehreren Grundfrequenzen zugeordnet sein. Durch
diesen Effekt kann das Amplitudenverhältnis eines gesuchten Klanges
erheblich verändert
werden. Um diesen Effekt abzuschwächen, werden die Amplituden
der Partialtöne
mit einem halbierten Gaussfilter bewertet. Der Grundton erhält dabei
die höchste
Wertigkeit. Alle folgenden Partialtöne erhalten entsprechend ihrer
Ordnung eine geringere Gewichtung, wobei die Gewichtung beispielsweise mit
steigender Ordnung Gauss-förmig
abfällt.
Somit besitzt eine Obertonamplitude eines anderen Klanges, die den
eigentlichen Oberton verdeckt, keine besondere Auswirkung auf das
Gesamtergebnis einer gesuchten Stimme. Da die Frequenzauflösung des
Spektrums für
höhere
Frequenzen geringer wird, existiert nicht für jeden Oberton höherer Ordnung
ein Bin mit der entsprechenden Frequenz. Auf Grund des Übersprechens
auf die angrenzenden Bins der Frequenzumgebung des gesuchten Obertons
kann mittels eines Gaussfilters über die
nächstliegenden
Frequenzbänder
die Amplitude des gesuchten Obertons relativ gut nachgebildet werden. Obertonfrequenzen
bzw. die Intensitäten
an denselben müssen
deshalb nicht in Einheiten von Frequenzbins bestimmt werden, sondern
es kann auch eine Interpolation verwendet werden, um den Intensitätswert an
der Obertonfrequenz genau zu ermitteln.
-
Die
Summation über
die Intensitätswerte
wird jedoch nicht unmittelbar an dem wahrnehmungsbezogenen Spektrum
aus Schritt 772 durchgeführt. Vielmehr wird zunächst in
dem Schritt 776 das wahrnehmungsbezogene Spektrum von 8 zunächst unter
Zuhilfenahme des Bezugswertes aus Schritt 770 delogarithmiert.
Das Ergebnis ist ein delogarithmiertes wahrnehmungsbezogenes Spektrum,
d.h. ein Array aus delogarithmierten wahrnehmungsbezogenen Spektralwerten
zu jedem Tupel aus Frequenzbin und Frame. Innerhalb dieses delogarithmierten
wahrnehmungsbezogenen Spektrums werden für jeden möglichen Grundton der Spektralwert
des Grundtons und die gegebenenfalls interpolierten Spektralwerte
unter Zuhilfenahme des harmonisches Rasters 778 der zugehörigen Harmonischen
aufaddiert, was für
den Frequenzbereich aller möglichen
Grundtonfrequenzen einen Klangintensitätswert ergibt, und dies für jedes
Frame – im
vorhergehenden Beispiel lediglich innerhalb des Bereichs von 80
bis 4.000 Hz. Anders ausgedrückt
ist das Ergebnis des Schrittes 776 ein Klang-Spektrogramm, wobei
der Schritt 776 selbst einer Pegeladdition innerhalb des
Spektrogramms des Audiosignals entspricht. Das Ergebnis des Schrittes 776 wird
beispielsweise in einer neuen Matrix eingetragen, die für jedes
Frequenzbin innerhalb des Frequenzbereichs möglicher Grundtonfrequenzen
eine Zeile und für
jedes Frame eine Spalte aufweist, wobei in jedem Matrixelement,
d.h. an jeder Kreuzung aus Spalte und Zeile, das Ergebnis der Aufsummation
für das
entsprechende Frequenzbin als Grundton eingetragen wird.
-
Als
nächstes
erfolgt in einem Schritt 780 eine vorläufige Ermittlung einer potentiellen
Melodielinie. Die Melodielinie entspricht einer Funktion über die
Zeit, nämlich
einer Funktion, die jedem Frame eindeutig genau ein Frequenzband
bzw. ein Frequenzbin zuordnet. Anders ausgedrückt definiert die in Schritt 780 ermittelte Melodielinie
eine Spur entlang des Definitionsbereiches des Klang-Spektrogramms
bzw. der Matrix aus Schritt 776, wobei die Spur entlang
der Frequenzachse nie überlappt
bzw. doppeldeutig ist.
-
Die
Ermittlung wird in Schritt 780 derart durchgeführt, dass
für jedes
Frame über
den gesamten Frequenzbereich des Klang-Spektrogramms die Maximal-Amplitude
ermittelt wird, d.h. der größte Summationswert.
Das Ergebnis, d.h. die Melodielinie, entspricht weitestgehend dem
grundsätzlichen
Verlauf der Melodie des dem Audiosignal 302 zu Grunde liegenden
Musiktitels.
-
Die
Bewertung des Spektrogramms mit den Kurven gleicher Lautstärke in Schritt 772 und
die Suche nach dem Schallergebnis mit der maximalen Intensität in Schritt 780 tragen
der musikwissenschaftlichen Aussage Rechnung, dass die Hauptmelodie
derjenige Anteil eines Musiktitels ist, den der Mensch am lautesten und
prägnantesten
wahrnimmt.
-
Die
vorbeschriebenen Schritte 776 – 780 stellen mögliche Teilschritte
des Schritts 758 aus 2 dar.
-
In
der potentiellen Melodielinie aus Schritt 780 befinden
sich Segmente, die nicht zur Melodie gehören. In Melodiepausen oder
zwischen Melodienoten werden dominante Segmente, wie z.B. aus dem
Bassverlauf oder andere Begleitinstrumente gefunden. Diese Melodiepausen
müssen
durch die späteren
Schritte in 3 beseitigt werden. Außerdem entstehen
kurze, einzelne Elemente, die keinem Bereich des Titels zugeordnet werden
können.
Sie werden beispielsweise mittels eines 3 × 3-Mittelwertfilters entfernt,
wie es im folgenden noch beschrieben werden wird.
-
Nach
der Ermittlung der potentiellen Melodielinie in Schritt 780 wird
in einem Schritt 782 zunächst eine allgemeine Segmentierung 782 durchgeführt, welche
dafür sorgt,
dass Teile der potentiellen Melodielinie beseitigt werden, die prima
facie nicht zur tatsächlichen
Melodielinie gehören
können.
In 9 ist beispielsweise das Ergebnis der Melodielinienermittlung
von Schritt 780 exemplarisch für den Fall des wahrnehmungsbezogenen
Spektrums von 8 gezeigt. 9 zeigt
die Melodielinie aufgetragen über
die Zeit t bzw. über
die Abfolge von Frames entlang der x-Achse, wobei entlang der y-Achse
die Frequenz f bzw. die Frequenzbins angezeigt sind. Anders ausgedrückt ist
in 9 die Melodielinie aus Schritt 780 in
Form eines binären
Bildarrays dargestellt, das im folgenden auch manchmal als Melodiematrix
bezeichnet wird und eine Zeile für
jedes Frequenzbin und eine Spalte für jedes Frame aufweist. Alle
Punkte des Arrays, an denen sich die Melodielinie nicht befindet,
weisen einen Wert von 0 auf bzw. sind weiß, während die Punkte des Arrays,
an denen sich die Melodielinie befindet, einen Wert von 1 aufweisen
bzw. schwarz sind. Diese Punkte befinden sich folglich an Tupeln
aus Frequenzbin und Frame, die einander durch die Melodielinienfunktion
aus Schritt 780 einander zugeordnet sind.
-
An
der Melodielinie von 9, die in 9 mit
dem Bezugszeichen 784 versehen ist, arbeitet nun der Schritt 782 der
allgemeinen Segmentierung, für
den ein mögliche
Implementierung Bezug nehmend auf 10 näher erläutert wird.
-
Die
allgemeine Segmentierung 782 beginnt in einem Schritt 786 mit
der Filterung der Melodielinie 784 im Frequenz-/Zeitbereich in einer
Darstellung, in der die Melodielinie 784 wie in 9 gezeigt
als binäre
Spur in einem Array eingezeichnet ist, das durch die Frequenzbins
auf der einen und die Frames auf der anderen Seite aufgespannt wird.
Das Pixelarray von 9 sei beispielsweise ein x-mal-y-Pixel-Array, wobei x der
Anzahl an Frames und y der Anzahl an Frequenzbins entsprechen.
-
Der
Schritt 786 ist nun dazu vorgesehen, kleinere Ausreißer bzw.
Artefakte in der Melodielinie zu entfernen. 11 zeigt
exemplarisch in schematischer Form einen möglichen Verlauf einer Melodielinie 784 in einer
Darstellung gemäß 9.
Wie es zu sehen ist, zeigt das Pixel-Array Bereiche 788,
in welchen sich vereinzelt schwarze Pixelelemente befinden, die
Abschnitten der potentiellen Melodielinie 784 entsprechen,
die auf Grund ihrer zeitlichen Kürze
bestimmt nicht zur tatsächlichen
Melodie gehören
und deshalb entfernt werden sollten.
-
In
Schritt 786 wird deshalb aus dem Pixel-Array von 9 bzw. 11, in welchem die Melodielinie binär dargestellt
ist, zunächst
ein zweites Pixel-Array erzeugt, indem für jedes Pixel ein Wert eingetragen
wird, der der Summation der Binärwerte
an dem entsprechenden Pixel sowie der zu diesem Pixel benachbarten
Pixel entspricht. Hierzu sei auf 12a Bezug
genommen. Dort ist ein exemplarischer Ausschnitt aus dem Verlauf
einer Melodielinie in dem Binärbild
von 9 oder 11 dargestellt.
Der exemplarische Ausschnitt von 12a umfasst
fünf Zeilen,
die verschiedenen Frequenzbins 1-5 entsprechen, und fünf Spalten
A-E, die unterschiedlichen benachbarten Frames entsprechen. Der
Verlauf der Melodielinie ist in 12a dadurch
versinnbildlicht, dass die entsprechenden Pixelelemente, die Teile
der Melodielinie darstellen, schraffiert sind. Gemäß dem Ausführungsbeispiel
von 12a wird also durch die Melodielinie
dem Frame B das Frequenzbin 4, dem Frame C das Frequenzbin 3 usw.
zugeordnet. Dem Frame A wird durch die Melodielinie natürlich auch ein
Frequenzbin zugeordnet, dieses befindet sich jedoch nicht unter
den fünf
Frequenzbins aus dem Ausschnitt von 12a.
-
Bei
der Filterung in Schritt 786 wird nun zunächst – wie bereits
erwähnt – für jedes
Pixel 790 der Binärwert
desselben sowie der Binärwert
der benachbarten Pixel summiert. Dies ist beispielsweise in 12a exemplarisch für das Pixel 792 veranschaulicht,
in welche Figur bei 794 ein Quadrat eingezeichnet ist,
das die zu dem Pixel 792 benachbarten Pixel sowie das Pixel 792 selbst
umgibt. Für
das Pixel 792 ergäbe
sich folglich ein Summenwert von 2, da sich in dem Bereich 794 um
das Pixel 792 lediglich 2 Pixel befinden, die der Melodielinie
angehören,
nämlich
das Pixel 792 selbst sowie das Pixel C3, d.h. an dem Frame
C und dem Bin 3. Diese Summation wird durch Verschiebung
des Bereichs 794 für
alle weiteren Pixel wiederholt, wodurch sich ein zweites Pixelbild
ergibt, im folgenden auch manchmal als Zwischenmatrix bezeichnet.
-
Dieses
zweite Pixelbild wird dann einer pixelweisen Abbildung unterzogen,
wobei in dem Pixelbild alle Summenwerte von 0 oder 1 auf Null und
alle Summenwerte größer oder
gleich 2 auf Eins abgebildet werden. Das Ergebnis dieser Abbildung
ist für
den exemplarischen Fall von 12a in 12a mit Zahlen von „0" und „1" in den einzelnen Pixeln 790 dargestellt.
Wie es zu erkennen ist, führt
die Kombination aus 3 × 3-Summation und
anschließender
Abbildung auf „0" und „1" mittels des Schwellwertes 2 dazu,
dass die Melodienlinie „verschmiert". Die Kombination
wirkt quasi als Tiefpassfilter, was unerwünscht wäre. Deshalb wird im Rahmen
des Schrittes 786 das erste Pixelbild, d.h. das aus 9 bzw. 11, bzw. in 12a das
Pixelbild, das durch die schraffierten Pixel veranschaulicht wird,
mit dem zweiten Pixel-Array, d.h. demjenigen, das in 12a durch die Nullen und Einsen veranschaulicht
ist, multipliziert. Diese Multiplikation verhindert eine Tiefpassfilterung der
Melodielinie durch die Filterung 786 und stellt zudem die
Eindeutigkeit der Zuordnung von Frequenzbins zu Frames weiterhin
sicher.
-
Das
Ergebnis der Multiplikation für
den Ausschnitt aus 12a ist, dass die
Filterung 786 nichts an der Melodielinie ändert. Dies
ist an dieser Stelle auch erwünscht,
da die Melodielinie ja offensichtlich zusammenhängend in diesem Bereich ist
und die Filterung aus Schritt 786 ja lediglich zur Beseitigung
von Ausreißern bzw.
Artefakten 788 gedacht ist.
-
12b zeigt deshalb zur Veranschaulichung
der Wirkweise der Filterung 786 einen weiteren exemplarischen
Ausschnitt aus der Melodiematrix von 9 bzw. 11. Wie es dort zu erkennen ist, führt die Kombination
aus Summenbildung und Schwellenwertabbildung zu einer Zwischenmatrix,
bei der zwei vereinzelte Pixel P4 und R2 einen binären Wert
von 0 erhalten, obwohl an diesen Pixelpositionen die Melodiematrix einen
binären
Wert von 1 aufweist, wie es durch die Schraffur in 12b zu
erkennen ist, die veranschaulichen soll, dass sich an diesen Pixelpositionen
die Melodielinie befindet. Diese vereinzelten „Ausreißer" der Melodielinie werden deshalb durch
die Filterung in Schritt 786 nach der Multiplikation entfernt.
-
Nach
dem Schritt 786 folgt im Rahmen der allgemeinen Segmentierung 782 ein
Schritt 796, in welchem Teile der Melodielinie 784 dadurch
entfernt werden, dass diejenigen Teile der Melodielinie vernachlässigt werden,
die sich nicht innerhalb eines vorbestimmten Frequenzbereichs befinden.
Anders ausgedrückt,
wird in dem Schritt 796 der Wertebereich der Melodielinienfunktion
aus Schritt 780 auf den vorbestimmten Frequenzbereich eingeschränkt. Wiederum
anders ausgedrückt
werden in Schritt 796 alle Pixel der Melodiematrix von 9 bzw. 11 auf Null gesetzt, die sich außerhalb
des vorbestimmten Frequenzbereichs befinden. In dem Fall einer polyphonen
Analyse, wie sie vorliegend angenommen wird, reicht ein Frequenzbereich
beispielsweise von 100 – 200
bis 1.000 – 1.100
Hz und vorzugsweise von 150 bis 1.050 Hz. In dem Fall einer monophonen
Analyse, wie sie bezugnehmend auf die 27 ff,
angenommen wird, reicht ein Frequenzbereich beispielsweise von 50 – 150 bis
1.000 – 1.100
Hz und vorzugsweise von 80 bis 1.050 Hz. Die Begrenzung des Frequenzbereichs
auf diese Bandbreite trägt
der Beobachtung Rechnung, dass Melodien bei populärer Musik
meist durch Gesang repräsentiert
werden, der sich in diesem Frequenzbereich befindet ebenso wie die menschliche
Sprache.
-
Zur
Veranschaulichung von Schritt 796 ist in 9 exemplarisch
ein Frequenzbereich von 150 bis 1.050 Hz durch eine untere Grenzfrequenzlinie 798 und
eine obere Grenzfrequenzlinie 800 angezeigt. 13 zeigt die durch den Schritt 786 gefilterte
und durch den Schritt 796 geclipte Melodielinie, die zur
Unterscheidung in 13 mit dem Bezugszeichen 802 versehen
ist.
-
Nach
dem Schritt 796 erfolgt in einem Schritt 804 eine
Entfernung von Abschnitten der Melodielinie 802 mit zu
kleiner Amplitude, wobei die Extraktionseinrichtung 304 hierbei
auf das logarithmische Spektrum aus 5 von Schritt 770 zurückgreift.
Genauer ausgedrückt
schlägt
die Extraktionseinrichtung 304 für jedes Tupel aus Frequenzbin
und Frame, durch welches die Melodielinie 802 verläuft, in
dem logarithmierten Spektrum von 5 nach dem
entsprechenden logarithmierten Spektralwert nach, und stellt fest,
ob der entsprechende logarithmierte Spektralwert weniger als ein
vorbestimmter Prozentsatz der Maximalamplitude bzw. des maximalen
logarithmierten Spektralwertes in dem logarithmierten Spektrum von 5 beträgt. In dem
Fall polyphoner Analyse beträgt
dieser Prozentsatz vorzugsweise zwischen 50 und 70% und vorzugsweise
60%, während
bei monophoner Analyse dieser Prozentsatz vorzugsweise zwischen
20 und 40% liegt und vorzugsweise 30% beträgt. Teile der Melodielinie 802,
für die
dies der Fall ist, werden vernachlässigt. Diese Vorgehensweise
trägt dem
Umstand Rechnung, dass eine Melodie normalerweise immer annähernd die
gleiche Lautstärke
besitzt, bzw. dass plötzliche
extreme Lautstärkeschwankungen
kaum zu erwarten sind. Anders ausgedrückt werden also in Schritt 804 alle
Pixel der Melodiematrix von 9 bzw. 17 auf
Null gesetzt, an denen die logarithmierten Spektralwerte weniger
als der vorbestimmte Prozentsatz des maximalen logarithmierten Spektralwertes
betragen.
-
Auf
den Schritt 804 folgt in einem Schritt 806 eine
Aussonderung derjenigen Abschnitte der verbleibenden Melodielinie,
an denen sich der Verlauf der Melodielinie in Frequenzrichtung sprunghaft ändert, um
nur kurz einen halbwegs gleichmäßigen Melodieverlauf
aufzuweisen. Um dies zu erläutern,
sei Bezug auf 14 genommen, die einen Ausschnitt
aus der Melodiematrix über
A-M aufeinanderfolgende Frames hinweg zeigt, wobei die Frames spaltenweise
angeordnet sind, während
die Frequenz entlang der Spaltenrichtung von unten nach oben zunimmt.
Die Frequenzbinauflösung
ist in 14 der Übersichtlichkeit halber nicht
gezeigt.
-
Die
Melodielinie, wie sie sich aus Schritt 804 ergeben hat,
ist in 14 exemplarisch mit dem Bezugszeichen 808 angegeben.
Wie es zu sehen ist, bleibt die Melodienlinie 808 in den
Frames A-D konstant auf einem Frequenzbin, um dann zwischen den
Frames D und E einen Frequenzsprung zu zeigen, der größer als ein
Halbtonabstand HT ist. Zwischen den Frames E und H bleibt dann die
Melodielinie 808 wieder konstant auf einem Frequenzbin,
um daraufhin von Frame H auf Frame I um wieder mehr als einen Halbtonabstand
HT abzufallen. Ein solcher Frequenzsprung, der größer als
einen Halbtonabstand HT ist, tritt auch zwischen den Frames J und
K auf. Von da an bleibt die Melodielinie 808 zwischen den
Frames J und M wieder konstant auf einem Frequenzbin.
-
Zur
Durchführung
der Schritte 806 scannt die Einrichtung 304 nun
die Melodielinie frameweise von beispielsweise vorne nach hinten
durch. Dabei prüft
die Einrichtung 304 für
jedes Frame, ob zwischen diesem Frame und dem nachfolgenden Frame
ein Frequenzsprung größer dem
Halbtonabstand HT stattfindet. Falls dies der Fall ist, markiert
die Einrichtung 304 diese Frames. In 14 ist das Ergebnis dieser Markierung exemplarisch
dadurch veranschaulicht, dass die entsprechenden Frames mit einem
Kreis umringt sind, hier die Frames D, H und J. In einem zweiten
Schritt prüft
nun die Einrichtung 304, zwischen welchen der markierten Frames
weniger als eine vorbestimmte Anzahl von Frames angeordnet sind,
wobei in dem vorliegenden Fall die vorbestimmte Anzahl vorzugsweise
drei beträgt.
Insgesamt werden hierdurch Abschnitte der Melodielinie 808 herausgesucht,
an denen dieselbe zwischen unmittelbar aufeinanderfolgenden Frames
weniger als ein Halbton springt aber dabei weniger als vier Frameelemente
lang sind. Zwischen den Frames D und H liegen in dem vorliegenden
exemplarischen Fall drei Frames. Dies bedeutet nichts anderes, als
dass über
die Frames E – H
hinweg die Melodielinie 808 nicht um mehr als einen Halbton
springt. Zwischen den markierten Frames H und J jedoch befindet
sich lediglich ein Frame. Dies bedeutet nichts anderes, als dass
in dem Bereich der Frames I und J die Melodielinie 808 sowohl
nach vorne als auch nach hinten in Zeitrichtung um mehr als ein Halbton
springt. Dieser Abschnitt der Melodielinie 808, nämlich im
Bereich der Frames I und J, wird deshalb bei der folgenden Verarbeitung
der Melodielinie vernachlässigt.
In der aktuellen Melodiematrix wird deshalb an den Frame I und J
das entsprechende Melodielinienelement auf Null gesetzt, d.h. es
wird weiß.
Dieser Ausschluss kann also höchstens
drei aufeinanderfolgende Frames umfassen, was 24 ms entspricht.
Töne kürzer als
30 ms kommen in der heutigen Musik aber nur selten vor, so dass
der Ausschluss nach Schritt 806 nicht zu einer Verschlechterung
des Transkriptionsergebnisses führt.
-
Nach
dem Schritt 806 schreitet die Verarbeitung im Rahmen der
allgemeinen Segmentierung 782 zu Schritt 810 fort,
wo die Einrichtung 304 die verbleibenden Reste der einstigen
potentiellen Melodielinie aus Schritt 780 in eine Folge
von Segmenten einteilt. Bei der Einteilung in Segmente werden alle
Elemente in der Melodiematrix zu einem Segment bzw. einer Trajektorie
zusammengefasst, welche direkt benachbart sind. Um dies zu veranschaulichen,
zeigt 15 einen Ausschnitt aus der
Melodielinie 812, wie sie sich nach dem Schritt 806 ergibt.
In 15 sind nur die einzelnen Matrixelemente 814 aus
der Melodiematrix gezeigt, entlang derer die Melodielinie 812 verläuft. Um
zu prüfen,
welche Matrixelemente 814 zu einem Segment zusammenzufassen
sind, scannt die Einrichtung 304 beispielsweise dieselben
auf die folgende Weise durch. Zunächst prüft die Einrichtung 304,
ob für
ein erstes Frame die Melodiematrix überhaupt ein markiertes Matrixelement 814 aufweist.
Falls nicht, schreitet die Einrichtung 304 zum nächsten Matrixelement
fort und prüft
abermals das nächste
Frame auf das Vorhandensein eines entsprechenden Matrixelementes.
Anderenfalls, d.h. falls ein Matrixelement, das Teil der Melodielinie 812 ist,
vorhanden ist, prüft
die Einrichtung 304 das nächste Frame auf das Vorhandensein
eines Matrixelementes, das Teil der Melodielinie 812 ist.
Falls dies der Fall ist, prüft
die Einrichtung 304 ferner, ob dieses Matrixelement direkt
benachbart zu dem Matrixelement des vorhergehenden Frames ist. Direkt
benachbart ist ein Matrixelement zu einem anderen, falls dieselben
in Zeilenrichtung direkt aneinandergrenzen, oder falls dieselben
diagonal Ecke an Ecke liegen. Liegt eine Nachbarschaftsbeziehung vor,
so führt
die Einrichtung 304 die Überprüfung auf das Vorhandensein
einer Nachbarschaftsbeziehung auch für das nächste Frame durch. Anderenfalls,
d.h. bei Nicht-Vorliegen einer Nachbarschaftsbeziehung, endet ein aktuell
erkanntes Segment an dem vorhergehenden Frame, und ein neues Segment
beginnt an dem aktuellen Frame.
-
Der
in 15 gezeigte Ausschnitt aus der Melodielinie 812 stellt
ein unvollständiges
Segment dar, bei dem alle Matrixelemente 814, die Teil
der Melodielinie sind bzw. entlang derer dieselbe verläuft, zueinander unmittelbar
benachbart sind.
-
Die
auf diese Weise gefundenen Segmente werden durchnumeriert, so dass
sich eine Folge von Segmenten ergibt.
-
Das
Ergebnis der allgemeinen Segmentierung 782 ist folglich
eine Folge von Melodiesegmenten, wobei jedes Melodiesegment eine
Folge von unmittelbar benachbarten Frames abdeckt. Innerhalb jedes
Segments springt die Melodielinie von Frame zu Frame um höchstens
eine vorbestimmte Anzahl von Frequenzbins, im vorhergehenden Ausführungsbeispiel
um höchstens
ein Frequenzbin.
-
Nach
der allgemeinen Segmentierung 782 fährt die Einrichtung 304 mit
der Melodieextraktion bei Schritt 816 fort. Der Schritt 816 dient
der Lückenschließung zwischen
benachbarten Segmenten, um den Fall zu adressieren, dass aufgrund
beispielsweise perkussiver Ereignisse bei der Melodielinienermittlung
in Schritt 780 versehentlich andere Klanganteile erkannt
und bei der allgemeinen Segmentierung 782 herausgefiltert worden
sind. Die Lückenschließung 816 wird
Bezug nehmend auf 16 näher erläutert werden, wobei die Lückenschließung 816 auf
einen Halbtonvektor zurückgreift,
der in einem Schritt 818 ermittelt wird, wobei die Ermittlung
des Halbtonvektors Bezug nehmend auf 17 näher erläutert werden
wird.
-
Da
die Lückenschließung 816 auf
den Halbtonvektor zurückgreift,
wird im folgenden zunächst
Bezug nehmend auf 17 die Ermittlung des variablen
Halbtonvektors erläutert. 17 zeigt die sich aus der allgemeinen Segmentierung 782 ergebende
lückenhafte
Melodielinie 812 in in die Melodiematrix eingetragener Form.
Bei der Ermittlung des Halbtonvektors in Schritt 818 stellt
nun die Einrichtung 304 fest, welche Frequenzbins die Melodielinie 812 durchläuft und
wie oft bzw. in wie viel Frames. Das Ergebnis dieser Vorgehensweise, die
mit dem Fall 820 veranschaulicht ist, ist ein Histogramm 822,
das für
jedes Frequenzbin f die Häufigkeit angibt,
mit welcher dasselbe von der Melodielinie 812 durchlaufen
wird bzw. wie viele Matrixelemente der Melodiematrix, die Teil der
Melodielinie 812 sind, an dem jeweiligen Frequenzbin angeordnet
sind. Aus diesem Histogramm 822 bestimmt dann die Einrichtung 304 in
einem Schritt 824 dasjenige Frequenzbin mit der maximalen
Häufigkeit.
Dieses ist in 17 mit einem Pfeil 826 angezeigt.
Ausgehend von diesem Frequenzbin 826 der Frequenz f0 bestimmt dann die Einrichtung 304 einen
Vektor von Frequenzen fi, die zueinander
und vor allem zu der Frequenz f0 einen Frequenzabstand
aufweisen, die einem ganzzahligen Vielfachen einer Halbtonlänge HT entspricht.
Die Frequenzen im Halbtonvektor werden im folgenden als Halbtonfrequenzen
bezeichnet werden. Manchmal wird im folgenden auch auf Halbtongrenzfrequenzen
Bezug genommen. Diese befinden sich genau zwischen benachbarten
Halbtonfrequenzen, d.h. genau zentriert hierzu. Ein Halbtonabstand
ist wie in der Musik üblich
als 21/12 der Nutzungsfrequenz f0 definiert. Durch die Bestimmung des Halbtonvektors
in Schritt 818 kann die Frequenzachse f, entlang der die
Frequenzbins aufgetragen sind, in Halbtonbereiche 828 untergliedert
werden, die sich von Halbtongrenzfrequenz zur benachbarter Halbtongrenzfrequenz
erstrecken.
-
Auf
dieser Einteilung der Frequenzachse f in Halbtonbereiche basiert
die Lückenschließung, die
im folgenden Bezug nehmend auf 16 erläutert wird.
Wie bereits erwähnt
wird in der Lückenschließung 816 versucht,
Lücken
zwischen benachbarten Segmenten der Melodielinie 812 zu
schließen,
die sich ungewollt bei der Melodielinienerkennung 780 bzw.
der allgemeinen Segmentierung 782 ergaben, wie es oben
beschrieben wurde. Die Lückenschließung wird
segmentweise durchgeführt.
Für ein
aktuelles Bezugssegment wird im Rahmen der Lückenschließung 816 zunächst in
einem Schritt 830 bestimmt, ob die Lücke zwischen dem Bezugssegment
und dem nachfolgenden Segment weniger als eine vorbestimmte Anzahl
von p Frames beträgt. 18 zeigt exemplarisch einen Ausschnitt aus der
Melodiematrix mit einem Ausschnitt aus der Melodielinie 812.
In dem exemplarisch betrachteten Fall weist die Melodielinie 812 eine
Lücke 832 zwischen
zwei Segmenten 812a und 812b auf, von denen das
Segment 812a das vorerwähnte
Bezugssegment sei. Wie es zu erkennen ist, beträgt die Lücke in dem exemplarischen Fall
von 18 sechs Frames.
-
In
dem vorliegenden exemplarischen Fall mit den oben angegebenen bevorzugten
Abtastfrequenzen usw. beträgt
p vorzugsweise 4. In dem vorliegenden Fall ist die Lücke 832 also
nicht kleiner als vier Frames, woraufhin die Verarbeitung mit Schritt 834 fortfährt, um
zu überprüfen, ob
die Lücke 832 kleiner
gleich q Frames groß ist,
wobei q vorzugsweise 15 beträgt.
Dies ist vorliegend der Fall, weshalb die Verarbeitung bei Schritt 836 fortfährt, wo überprüft wird,
ob die einander zugewandten Segmentenden des Bezugssegments 812a und
des Nachfolgersegments 812b, d.h. das Ende des Segments 812a und
der Anfang des Nachfolgersegments 812b, in einem gleichen
oder in zueinander angrenzenden Halbtonbereichen liegen. In 18 ist zur Veranschaulichung des Sachverhaltes
die Frequenzachse f in Halbtonbereiche untergliedert, wie sie in Schritt 818 ermittelt
worden sind. Wie es zu erkennen ist, liegen in dem Fall von 18 die einander zugewandten Segmentenden der Segmente 812a und 812b in
einem und demselben Halbtonbereich 838.
-
Für diesen
Fall der positiven Überprüfung in
Schritt 836 fährt
die Verarbeitung im Rahmen der Lückenschließung bei
Schritt 840 fort, wo überprüft wird,
welcher Amplitudenunterschied in dem wahrnehmungsbezogenen Spektrum
aus Schritt 772 an den Positionen des Endes des Bezugssegments 812a und
des Beginns des Nachfolgersegments 812b herrscht. Anders
ausgedrückt
schlägt
die Einrichtung 304 in Schritt 840 in dem wahrnehmungsbezogenen
Spektrum aus Schritt 772 die jeweiligen wahrnehmungsbezogenen
Spektralwerte an den Positionen des Endes des Segments 812a und
des Anfangs des Segments 812b nach und ermittelt den Absolutwert
der Differenz der beiden Spektralwerte. Ferner stellt die Einrichtung 304 in
Schritt 840 fest, ob der Unterschied größer als ein vorbestimmter Schwellenwert
r ist, wobei derselbe vorzugsweise 20-40% und vorzugsweise 30% des
wahrnehmungsbezogenen Spektralwertes an dem Ende des Bezugssegmentes 812a beträgt.
-
Liefert
die Ermittlung in Schritt 840 ein positives Ergebnis, so
schreitet die Lückenschließung mit Schritt 842 fort.
Dort ermittelt die Einrichtung 304 eine Lückenschließungslinie 844 in
der Melodiematrix, die das Ende des Bezugssegmentes 812a und
den Anfang des Nachfolgersegmentes 812b direkt verbindet.
Die Lückenschließungslinie
ist vorzugsweise geradlinig, wie es auch in 18 gezeigt
ist. Genauer ausgedrückt ist
die Verbindungslinie 844 eine Funktion über die Frames, über welche
hinweg sich die Lücke 832 erstreckt, wobei
die Funktion jedem dieser Frames ein Frequenzbin zuordnet, so dass
sich in der Melodiematrix eine gewünschte Verbindungslinie 844 ergibt.
-
Entlang
dieser Verbindungslinie ermittelt dann die Einrichtung 304 die
entsprechenden wahrnehmungsbezogenen Spektralwerte aus dem wahrnehmungsbezogenen
Spektrum aus Schritt 772, indem dieselbe an den entsprechenden
Tupeln aus Frequenzbin und Frame der Lückenschließungslinie 844 in
dem wahrnehmungsbezogenen Spektrum nachschlägt. Über diese wahrnehmungsbezogenen
Spektralwerte entlang der Lückenschließungslinie
ermittelt die Einrichtung 304 den Mittelwert und vergleicht
denselben im Rahmen des Schrittes 842 mit den entsprechenden
Mittelwerten der wahrnehmungsbezogenen Spektralwerte entlang des
Bezugssegmentes 812a und des Nachfolgersegmentes 812b.
Ergeben beide Vergleiche, dass der Mittelwert für die Lückenschließungslinie größer oder
gleich dem Mittelwert des Bezugs- bzw. Nachfolgersegments 812a bzw.
b ist, so wird die Lücke 832 in
einem Schritt 846 geschlossen, und zwar indem in der Melodiematrix die
Lückenschließungslinie 844 eingetragen
wird bzw. die entsprechenden Matrixelemente derselben auf 1 gesetzt
werden. Gleichzeitig wird in Schritt 846 die Liste von
Segmenten verändert,
um die Segmente 812a und 812b zu einem gemeinsamen
Segment zu vereinigen, woraufhin die Lückenschließung für das Bezugssegment und das
Nachfolgersegment beendet ist.
-
Eine
Lückenschließung entlang
der Lückenschließungslinie 844 erfolgt
auch, wenn sich in Schritt 830 ergibt, dass die Lücke 832 kleiner
als 4 Frames lang ist. In diesem Fall wird in einem Schritt 848 die
Lücke 832 geschlossen,
und zwar wie in dem Fall von Schritt 846 entlang einer
direkten und vorzugsweise geradlinigen Lückenschließungslinie 844, die
die einander zugewandten Enden der Segmente 812a – 812b verbindet,
woraufhin die Lückenschließung für die beiden
Segmente beendet ist und mit dem nachfolgenden Segment fortfährt, so
weit ein solches vorhanden ist. Obwohl dies in 16 nicht gezeigt ist, wird die Lückenschließung in Schritt 848 noch
von einer Bedingung abhängig
gemacht werden, die derjenigen von Schritt 836 entspricht, d.h.
davon, dass die beiden einander zugewandten Segmentenden in dem
gleichen oder benachbarten Halbtonbereichen liegen.
-
Führt einer
der Schritte 834, 836, 840 oder 842 zu
einem negativen Überprüfungsergebnis,
so endet die Lückenschließung für das Bezugssegment 812a und
wird für
das Nachfolgersegment 812b erneut durchgeführt.
-
Das
Ergebnis der Lückenschließung 816 ist
also eine möglicherweise
verkürzte
Liste von Segmenten bzw. eine Melodielinie, die in der Melodiematrix
an manchen Stellen gegebenenfalls Lückenschließungslinien aufweist. Wie sich
aus der vorhergehenden Erörterung
ergab, wird bei einer Lücke
kleiner 4 Frames eine Verbindung zwischen benachbarten Segmenten
im gleichen oder angrenzenden Halbtonbereich immer hergestellt.
-
Auf
die Lückenschließung 816 folgt
ein Harmoniemapping bzw. eine Harmonieabbildung 850, die
dazu vorgesehen ist, Fehler in der Melodielinie zu beseitigen, die
dadurch entstanden sind, dass bei der Ermittlung der potentiellen
Melodielinie 780 fälschlicherweise
der falsche Grundton eines Klanges bestimmt worden ist. Insbesondere
arbeitet das Harmoniemapping 850 segmentweise, um einzelne
Segmente der sich nach der Lückenschließung 816 ergebenden
Melodielinie um eine Oktave, Quinte oder große Terz zu verschieben, wie
es im folgenden noch näher
beschrieben wird. Wie es die folgende Beschreibung zeigen wird,
sind die Bedingungen hierfür
streng, um nicht fälschlicherweise
ein Segment falsch in der Frequenz zu verschieben. Das Harmoniemapping 850 wird
im folgenden detaillierter Bezug nehmend auf 19 und 20 beschrieben.
-
Wie
bereits erwähnt
wird das Harmoniemapping 850 segmentweise durchgeführt. 20 zeigt exemplarisch einen Ausschnitt aus der
Melodielinie, wie sie sich nach der Lückenschließung 816 ergeben hat.
Diese Melodielinie ist in 20 mit
dem Bezugszeichen 852 versehen, wobei in dem Ausschnitt
von 20 drei Segmente aus der Melodielinie 852 zu
sehen sind, nämlich
die Segmente 852a-c. Die Darstellung der Melodielinie erfolgt
wieder als Spur in der Melodiematrix, wobei jedoch wieder daran
erinnert wird, dass die Melodielinie 852 eine Funktion
ist, die einzelnen – mittlerweile
nicht mehr allen – Frames
eindeutig ein Frequenzbin zuordnet, so dass sich die in 20 gezeigten Spuren ergeben.
-
Das
sich zwischen den Segmenten 852a und 852c befindliche
Segment 852b scheint aus dem Melodielinienverlauf, wie
er sich durch die Segmente 852a und 852c ergeben
würde,
herausgeschnitten zu sein. Insbesondere schließt sich in dem vorliegenden
Fall exemplarisch das Segment 852b ohne Frame-Lücke an das Bezugssegment 852a an,
wie es durch eine gestrichelte Linie 854 angedeutet ist.
Ebenso soll exemplarisch der durch das Segment 852b abgedeckte
Zeitbereich unmittelbar an den durch das Segment 852c abgedeckten
Zeitbereich angrenzen, wie es durch eine gestrichelte Linie 856 angedeutet
ist.
-
In 20 sind nun in der Melodiematrix bzw. in der Zeit-/Frequenzdarstellung
weitere gestrichelte, strichpunktierte und strichpunkt-punktierte
Linien gezeigt, die sich auch aus einer Parallelverschiebung des Segmentes 852b entlang
der Frequenzachse f ergeben. Insbesondere ist eine Strich-Punkt- Linie 858 um
vier Halbtöne,
d.h. um eine große
Terz, zu dem Segment 852b zu höheren Frequenzen hin verschoben.
Eine gestrichelte Linie 858b ist um zwölf Halbtöne von Frequenzrichtung f nach
unten verschoben, d.h. um eine Oktav. Zu dieser Linie sind wieder
eine Terzlinie 858c strichpunktiert und eine Quintlinie 858d als Strich-Punkt-Punkt-Linie, d.h.
eine um sieben Halbtöne
zu höheren
Frequenzen hin relativ zu der Linie 858b verschobene Linie,
dargestellt.
-
Wie
es 20 zu entnehmen ist, scheint das Segment 852b im
Rahmen der Melodienlinienermittlung 780 fälschlicherweise
ermittelt worden zu sein, da sich dieselbe bei Verschiebung um eine
Oktav nach unten weniger sprunghaft zwischen die benachbarten Segmente 852a und 852c einfügen würde. Aufgabe
des Harmoniemappings 850 besteht deshalb darin zu überprüfen, ob
eine Verschiebung an solchen „Ausreißern" stattfinden soll
oder nicht, da solche Frequenzsprünge in einer Melodie seltener
vorkommen.
-
Das
Harmoniemapping 850 beginnt mit der Ermittlung einer Melodieschwerpunktlinie
mittels eines Mittelwertfilters in einem Schritt 860. Insbesondere
umfasst der Schritt 860 die Berechnung eines gleitenden
Mittelwertes des Melodieverlaufs 852 mit einer bestimmten
Anzahl von Frames über
die Segmente in Zeitrichtung t, wobei die Fensterlänge beispielsweise
80 – 120
und vorzugsweise 100 Frames bei oben exemplarisch genannter Framelänge von
8ms beträgt,
d.h. entsprechend andere Anzahl an Frames bei einer anderen Framelänge. Genauer
ausgedrückt
wird zur Bestimmung der Melodieschwerpunktlinie ein Fenster der
Länge 100 Frames
frameweise entlang der Zeitachse t verschoben. Dabei werden alle
Frequenzbins, die Frames innerhalb des Filterfensters durch die
Melodielinie 852 zugeordnet sind, gemittelt und dieser
Mittelwert für
das Frame in der Mitte des Filterfensters eingetragen, wodurch sich
nach Wiederholung für
aufeinanderfolge Frames in dem Fall von 20 eine
Melodieschwerpunktlinie 862 ergibt, eine Funktion, die
den einzelnen Frames eindeutig eine Frequenz zuordnet. Die Melodieschwerpunktlinie 862 kann
sich über
den gesamten Zeitbereich des Audiosignals erstrecken, in welchem
Fall das Filterfenster an dem Anfang und dem Ende des Stückes entsprechend „gestaucht" werden muss, oder
nur über
einen Bereich, der von dem Anfang und dem Ende des Audiostückes um
die Hälfte
der Filterfensterbreite beabstandet ist.
-
In
einem darauffolgenden Schritt 864 überprüft die Einrichtung 304,
ob das Bezugssegment 852a entlang der Zeitachse t direkt
an das Nachfolgesegment 852b angrenzt. Ist dies nicht der
Fall, wird die Verarbeitung mit dem nachfolgenden Segment als Bezugssegment
erneut durchgeführt
(866).
-
In
dem vorliegenden Fall von 20 führt jedoch
die Überprüfung in
Schritt 864 zu einem positiven Ergebnis, woraufhin die
Verarbeitung mit Schritt 868 fortfährt. In Schritt 868 wird
das Nachfolgesegment 852b virtuell verschoben, um die Oktav-,
Quint- und/oder Terz-Linien 858a-d zu erhalten. Die Auswahl
von großer Terz,
Quinte und Oktav ist bei Pop-Musik vorteilhaft, da dort meist ein
Dur-Akkord verwendet wird, bei dem der höchste und der niedrigste Ton
eines Akkords einen Abstand einer großen Terz plus einer kleinen
Terz also einer Quinte aufweisen. Alternativ ist obiges Vorgehen
natürlich
auch bei Molltonarten anwendbar, bei denen Akkorde von kleiner Terz
und dann großer
Terz auftreten.
-
In
einem Schritt 870 schlägt
dann die Einrichtung 304 in dem Spektrum bewertet mit Kurven
gleicher Lautstärke
bzw. dem wahrnehmungsbezogenen Spektrum aus Schritt 772 nach,
um den minimalen wahrnehmungsbezogenen Spektralwert jeweils entlang
des Bezugssegmentes 852a und der Oktav-, Quint- und/oder Terz-Linie 858a-d
zu erhalten. In dem exemplarischen Fall von 20 ergeben
sich folglich fünf
Minimalwerte.
-
Diese
Minimalwerte werden bei dem nachfolgenden Schritt 872 dazu
verwendet, um unter den Oktav-, Quint- und/oder Terz-Verschiebungslinien 858a-d
eine oder keine auszuwählen,
und zwar abhängig
davon, ob der für
die jeweilige Oktav-, Quint- und/oder
Terz-Linie ermittelte Minimalwert einen vorbestimmten Bezug zum Minimalwert
des Bezugssegmentes aufweist. Insbesondere wird eine Oktavlinie 858b unter
den Linien 858a – 858d ausgewählt, falls
der Minimalwert um höchstens
30% kleiner als der Minimalwert für das Bezugssegment 852a ist.
Eine Quintlinie 858d wird ausgewählt, falls der für sie ermittelte
Minimalwert um höchstens
2,5% kleiner als der Minimalwert des Bezugssegmentes 852a ist.
Eine der Terzlinien 858c wird verwendet, falls der entsprechende
Minimalwert für
diese Linie um mindestens 10% größer als
der Minimalwert für
das Bezugssegment 852a ist.
-
Die
oben erwähnten
Werte, die als Kriterien zur Auswahl aus den Linien 858a – 858b herangezogen wurden,
können
natürlich
variiert werden, wiewohl dieselben für Pop-Musik-Stücke sehr
gute Ergebnisse lieferten. Ebenfalls ist es nicht unbedingt notwendig,
die Minimalwerte für
das Bezugssegment bzw. die einzelnen Linien 858a-d zu ermitteln,
sondern es könnten
beispielsweise auch die einzelnen Mittelwerte herangezogen werden.
Der Vorteil an der Unterschiedlichkeit der Kriterien für die einzelnen
Linien besteht darin, dass hierdurch einer Wahrscheinlichkeit Rechnung
getragen werden kann, dass bei der Melodielinienermittlung 780 fälschlicherweise
ein Oktav-, Quint- bzw. Terz-Sprung aufgetreten ist, bzw. dass ein
solcher Sprung in der Melodie tatsächlich gewünscht war.
-
In
einem nachfolgenden Schritt 874 verschiebt die Einrichtung 304 das
Segment 852b auf die ausgewählte Linie 858a – 858d,
sofern eine solche in Schritt 872 ausgewählt wurde,
vorausgesetzt, dass die Verschiebung in die Richtung der Melodieschwerpunktlinie 862 zeigt,
und zwar von dem Nachfolgesegment 852b aus gesehen. In
dem exemplarischen Fall von 20 wäre letztere
Bedingung erfüllt,
solange in Schritt 872 nicht die Terzlinie 858a ausgewählt würde.
-
Nach
dem Harmoniemapping 850 erfolgt in einem Schritt 876 eine
Vibratoerkennung und ein Vibratoausgleich, dessen Funktionsweise
Bezug nehmend auf die 21 und 27 näher erläutert wird.
-
Der
Schritt 876 wird segmentweise für jedes Segment 878 in
der Melodielinie durchgeführt,
wie sie sich nach dem Harmoniemapping 850 ergibt. In 22 ist ein exemplarisches Segment 878 vergrößert dargestellt,
und zwar in einer Darstellung bei der die waagrechte Achse der Zeitachse
und die senkrechte Achse der Frequenzachse entspricht, wie es auch
in den vorhergehenden Figuren der Fall war. In einem ersten Schritt 880 wird
nun im Rahmen der Vibratoerkennung 876 das Bezugssegment 878 zunächst auf
lokale Extrema hin untersucht. Hierbei wird wieder daran erinnert,
dass ja die Melodielinienfunktion und somit auch der dem interessierenden
Segment entsprechende Teil derselben die Frames über dieses Segment hinweg eindeutig
auf Frequenzbins abbildet, um das Segment 888 zu bilden.
Diese Segmentfunktion wird auf lokale Extrema hin untersucht. Anders
ausgedrückt
wird in Schritt 880 das Bezugssegment 878 auf
diejenigen Stellen hin untersucht, wo dasselbe entlang der Zeitachse
im Hinblick auf die Frequenzrichtung lokale Extremalstellen aufweist, also
Stellen, an denen die Steigung der Melodielinienfunktion Null beträgt. Diese
Stellen sind in 22 exemplarisch mit senkrechten
Strichen 882 angedeutet.
-
In
einem nachfolgenden Schritt 884 wird überprüft, ob die Extremastellen 882 derart
angeordnet sind, dass in Zeitrichtung benachbarte lokale Extremalstellen 882 an
Frequenzbins angeordnet sind, die einen Frequenzabstand aufweisen,
der größer oder
kleiner gleich einer vorbestimmten Anzahl von Bins, nämlich beispielsweise
15 bis 25 vorzugsweise aber 22 Bins bei bezugnehmend auf 4 beschriebener
Implementierung der Frequenzanalyse bzw. einer Anzahl von Bins pro
Halbtonbereich von etwa 2 bis 6, ist. In 22 ist mit
einem Doppelpfeil 886 exemplarisch die Länge von
22 Frequenzbins dargestellt. Wie es zu erkennen ist, erfüllen die
Extremalstellen 882 das Kriterium 884.
-
In
einem darauffolgenden Schritt 888 überprüft die Einrichtung 304,
ob zwischen den benachbarten Extremalstellen 882 der zeitliche
Abstand immer kleiner gleich einer vorbestimmten Anzahl von Zeitframes
ist, wobei die vorbestimmte Anzahl beispielsweise 21 beträgt.
-
Fällt die Überprüfung in
Schritt 888 positiv aus, wie es in dem Beispiel von 22 der Fall ist, was an dem Doppelpfeil 890 erkennbar
ist, der der Länge
von 21 Frames entsprechen soll, wird in einem Schritt 892 überprüft, ob die
Anzahl der Extrema 882 größer oder gleich einer vorbestimmten
Anzahl ist, die in dem vorliegenden Fall vorzugsweise 5 beträgt. In dem
Beispiel von 22 ist dies gegeben. Fällt also
auch die Überprüfung in
Schritt 892 positiv aus, wird in einem darauffolgenden
Schritt 894 das Bezugssegment 878 bzw. das erkannte
Vibrato durch dessen Mittelwert ersetzt. Das Ergebnis des Schrittes 894 ist
in 22 bei 896 angezeigt. Genauer ausgedrückt wird
in Schritt 894 das Bezugssegment 878 auf der aktuellen
Melodielinie entfernt und durch ein Bezugssegment 896 ersetzt,
das sich über
dieselben Frames wie das Bezugssegment 878 erstreckt jedoch
entlang eines konstanten Frequenzbins verläuft, das den Mittelwert der
Frequenzbins entspricht, durch die das ersetzte Bezugssegment 878 verlief.
Fällt das
Ergebnis einer der Überprüfungen 884, 888 und 892 negativ
aus, so endet die Vibratoerkennung bzw. – ausgleich für das betreffende
Bezugssegment.
-
Anders
ausgedrückt,
führt die
Vibratoerkennung und der Vibratoausgleich gemäß 21 eine
Vibratoerkennung durch schrittweise Merkmalsextraktion durch, bei
welcher nach lokalen Extrema, nämlich
lokalen Minima und Maxima, gesucht wird, mit einer Einschränkung über die
Anzahl der zulässigen
Frequenzbins der Modulation und einer Einschränkung im zeitlichen Abstand
der Extrema, wobei als ein Vibrato nur eine Gruppe von mindestens
5 Extrema angesehen wird. Ein erkanntes Vibrato wird dann in der
Melodiematrix durch dessen Mittelwert ersetzt.
-
Nach
der Vibratoerkennung in Schritt 876 wird in Schritt 898 eine
statistische Korrektur durchgeführt, die
ebenfalls der Beobachtung Rechnung trägt, dass in einer Melodie kurze
und extreme Tonhöhenschwankungen
nicht zu erwarten sind. Die statistische Korrektur nach 898 wird
Bezug nehmend auf 23 näher erläutert. 23 zeigt
exemplarisch einen Ausschnitt aus einer Melodielinie 900,
wie sie sich nach der Vibratoerkennung 876 ergeben mag.
Wieder ist der Verlauf der Melodielinie 900 in der Melodiematrix
eingetragen dargestellt, die von der Frequenzachse f und der Zeitachse
t aufgespannt wird. In der statistischen Korrektur 898 wird
zunächst ähnlich dem
Schritt 860 bei dem Harmoniemapping eine Melodieschwerpunktlinie
für die
Melodielinie 900 bestimmt. Zur Bestimmung wird wie in dem
Fall von Schritt 860 ein Fenster 902 vorbestimmter zeitlicher
Länge,
wie z.B. von ebenfalls 100 Frames Länge, entlang der Zeitachse
t frameweise verschoben, um Frame für Frame einen Mittelwert der
Frequenzbins zu berechnen, die die Melodielinie 900 innerhalb
des Fensters 902 durchläuft,
wobei der Mittelwert dem Frame in der Mitte des Fensters 902 als
Frequenzbin zugeordnet wird, wodurch sich ein Punkt 904 der
zu bestimmenden Melodieschwerpunktlinie ergibt. Die sich so ergebende
Melodieschwerpunktlinie ist in 23 mit
dem Bezugszeichen 906 angezeigt.
-
Daraufhin
wird ein zweites Fenster, das in 23 nicht
gezeigt ist, entlang der Zeitachse t frameweise verschoben, das
beispielsweise eine Fensterlänge
von 170 Frames aufweist. Pro Frame wird hierbei die Standardabweichung
der Melodielinie 900 zur Melodieschwerpunktlinie 906 bestimmt.
Die sich ergebende Standardabweichung für jedes Frame wird mit 2 multipliziert
und um 1 Bin ergänzt.
Dieser Wert wird dann für
jedes Frame zum jeweiligen Frequenzbin, das die Melodieschwerpunktlinie 906 an
diesem Frame durchläuft,
hinzuaddiert und hiervon abgezogen, um eine obere und eine untere
Standardabweichungslinie 908a und 908b zu erhalten.
Die beiden Standardabweichungslinien 908a und 908b definieren
einen zugelassenen Bereich 910 zwischen denselben. Im Rahmen
der statistischen Korrektur 898 werden nun alle Segmente
der Melodielinie 900 entfernt, die vollständig außerhalb
des Zulassungsbereichs 910 liegen. Das Ergebnis der statistischen Korrektur 898 ist
folglich eine Reduzierung der Anzahl von Segmenten.
-
Auf
den Schritt 898 folgt ein Halbtonmapping 912.
Das Halbtonmapping wird frameweise durchgeführt, wobei hierzu auf den Halbtonvektor
auf Schritt 818 zurückgegriffen
wird, der die Halbtonfrequenzen definiert. Das Halbtonmapping 912 funktioniert
derart, dass für
jedes Frame, an welchem die Melodielinie, die sich aus Schritt 898 ergeben
hat, vorhanden ist, überprüft wird,
in welchem der Halbtonbereiche das Frequenzbin liegt, in welchem
die Melodielinie das jeweilige Frame durchläuft bzw, auf welches Frequenzbin
die Melodielinienfunktion das jeweilige Frame abbildet. Die Melodielinie
wird dann derart geändert,
dass in dem jeweiligen Frame die Melodielinie auf denjenigen Frequenzwert
geändert
wird, der der Halbtonfrequenz des Halbtonbereiches entspricht, in
welchem das Frequenzbin lag, durch das die Melodielinie verlief.
-
Anstatt
der frameweisen Halbtonabbildung bzw. Quantisierung kann auch eine
segmentweise Halbtonquantisierung durchgeführt werden, beispielsweise
indem auf die vorhergehende beschriebene Weise lediglich der Frequenzmittelwert
pro Segment einem der Halbtonbereiche und damit der entsprechenden
Halbtonbereichsfrequenz zugeordnet wird, die dann über die
gesamte zeitliche Länge
des entsprechenden Segmentes hinweg als die Frequenz verwendet wird.
-
Die
Schritte 782, 816, 818, 850, 876, 898 und 912 stellen
entsprechen folglich dem Schritt 760 in 2.
-
Auf
das Halbtonmapping 912 hin wird eine pro Segment stattfindende
Onseterkennung und -korrektur in Schritt 914 durchgeführt. Diese
wird Bezug nehmend auf die 24 – 26 näher erläutert.
-
Ziel
der Onseterkennung und -korrektur 914 ist es, die einzelnen
Segmente der sich durch das Halbtonmapping 912 ergebenen
Melodielinie, die mehr und mehr den einzelnen Noten der gesuchten
Melodie entsprechen, hinsichtlich ihrer Anfangszeitpunkte zu korrigieren
bzw. zu präzisieren.
Hierzu wird wieder auf das eingehende bzw. in Schritt 750 bereitgestellte
Audiosignal 302 zurückgegriffen,
wie es im folgenden näher
beschrieben werden wird.
-
In
einem Schritt 916 wird zunächst das Audiosignal 302 mit
einem Bandpassfilter gefiltert, der der Halbtonfrequenz, auf die
das jeweilige Bezugssegment in Schritt 912 quantisiert
worden ist, entspricht bzw. mit einem Bandpassfilter, das Grenzfrequenzen
aufweist, zwischen denen die quantisierte Halbtonfrequenz des jeweiligen
Segmentes liegt. Vorzugsweise wird das Bandpassfilter als ein solches
verwendet, das Grenzfrequenzen aufweist, die den Halbtongrenzfrequenzen
fu und fo des Halbtonbereiches
entsprechen, in welchem sich das betrachtete Segment befindet. Noch
weiter vorzugsweise wird als das Bandpassfilter ein IIR-Bandpassfilter
mit dem zu dem jeweiligen Halbtonbereich zugehörigen Grenzfrequenzen fu und fo als Filtergrenzfrequenzen
gefiltert oder mit einem Butterworth-Bandpass-Filter, dessen Übertragungsfunktion
in 25 gezeigt ist.
-
Anschließend erfolgt
in einem Schritt 918 eine Zweiwegegleichrichtung des in
Schritt 916 gefilterten Audiosignals, woraufhin in einem
Schritt 920 das in Schritt 918 erhaltene Zeitsignal
interpoliert und das interpolierte Zeitsignal mit einem Hammingfenster
gefaltet wird, wodurch eine Hüllkurve
des zweiwegegleichgerichteten bzw. des gefilterten Audiosignals
ermittelt wird.
-
Die
Schritt 916 – 920 werden
Bezug nehmend auf 26 noch einmal veranschaulicht. 26 zeigt mit Bezugszeichen 922 das zweiwegegleichgerichtete
Audiosignal, wie es sich nach Schritt 918 ergibt, und zwar
in einem Graphen, bei dem horizontal die Zeit t in virtuellen Einheiten
und vertikal die Amplitude des Audiosignals A in virtuellen Einheiten
aufgetragen ist. Ferner ist in dem Graphen die Hüllkurve 924 gezeigt,
die sich in Schritt 920 ergibt.
-
Die
Schritte 916 – 920 stellen
lediglich eine Möglichkeit
zur Erzeugung der Hüllkurve 924 dar
und können
natürlich
variiert werden. Jedenfalls werden Hüllkurven 924 für das Audiosignal
für all
diejenigen Halbtonfrequenzen bzw. Halbtonbereiche erzeugt, in welchen
Segmente bzw. Notensegmente der aktuellen Melodielinie angeordnet
sind. Für
jede solche Hüllkurve 924 werden
dann die folgenden Schritte von 24 ausgeführt.
-
Zunächst werden
in einem Schritt 926 potentielle Anfangszeitpunkte ermittelt,
und zwar als die Orte lokal maximalen Anstiegs der Hüllkurve 924.
Mit anderen Worten werden Wendepunkte in der Hüllkurve 924 in Schritt 926 bestimmt.
Die Zeitpunkte der Wendepunkte in dem Fall von 26 sind mit senkrechten Strichen 928 veranschaulicht.
-
Zur
folgenden Auswertung der ermittelten potentiellen Anfangszeitpunkte
bzw. potentiellen Anstiege wird ein Downsampling auf die Zeitauflösung der
Vorverarbeitung durchgeführt,
ggf. im Rahmen des Schrittes 926, was in 24 nicht gezeigt ist. Es wird darauf hingewiesen,
dass in Schritt 926 nicht alle potentiellen Anfangszeitpunkte
bzw. alle Wendepunkte ermittelt werden müssen. Auch ist es nicht notwendig,
dass alle bestimmten bzw. ermittelten potentiellen Anfangszeitpunkte
der nachfolgenden Verarbeitung zugeführt werden müssen. Vielmehr
ist es möglich,
lediglich diejenigen Wendepunkte als potentielle Anfangszeitpunkte
zu ermitteln bzw. weiter zu verarbeiten, die in zeitlicher Nähe vor oder
in einem Zeitbereich angeordnet sind, der einem der Segmente der
Melodielinie entspricht, die in dem Halbtonbereich angeordnet ist,
das der Ermittlung der Hüllkurve 924 zugrunde
lag.
-
In
einem Schritt 928 wird nun überprüft, ob für einen potentiellen Anfangszeitpunkt
gilt, dass derselbe vor dem Segmentanfang des demselben entsprechenden
Segmentes liegt. Ist dies der Fall, fährt die Verarbeitung bei Schritt 930 fort.
Andernfalls jedoch, d.h. wenn der potentielle Anfangszeitpunkt hinter
dem existierenden Segmentanfang ist, wird Schritt 928 für einen
nächsten
potentiellen Anfangszeitpunkt wiederholt oder Schritt 926 für eine nächste Hüllkurve,
die für
einen anderen Halbtonbereich ermittelt worden ist, oder die segmentweise
durchgeführte
Onseterkennung und -korrektur wird für ein nächstes Segment durchgeführt.
-
In
Schritt 930 wird überprüft, ob der
potentielle Anfangszeitpunkt mehr als x Frames vor dem Anfang des
entsprechenden Segmentes liegt, wobei x beispielsweise zwischen
8 und 12 einschließlich
ist und vorzugsweise 10 beträgt
bei einer Framelänge
von 8ms, wobei die Werte für
andere Framelängen
entsprechend zu ändern
wären.
Ist dies nicht der Fall, d.h. liegt der potentielle Anfangszeitpunkt
bzw. der ermittelte Anfangszeitpunkt bis 10 Frames vor dem interessierenden
Segment, wird in einem Schritt 932 die Lücke zwischen
dem potentiellen Anfangszeitpunkt und dem bisherigen Segmentanfang
geschlossen bzw. der bisherige Segmentanfang auf den potentiellen
Anfangszeitpunkt korrigiert. Dabei wird ggf. das Vorgängersegment
entsprechend verkürzt
bzw. dessen Segmentende auf das Frame vor dem potentiellen Anfangszeitpunkt
geändert.
Anders ausgedrückt
umfasst der Schritt 932 eine Verlängerung des Bezugssegmentes
nach vorne bis zu dem potentiellen Anfangszeitpunkt und eine eventuelle
Verkürzung
der Länge
des Vorgängersegmentes
am Ende desselben, um eine Überlappung
der beiden Segmente zu vermeiden.
-
Ergibt
jedoch die Überprüfung in
Schritt 930, dass der potentielle Anfangszeitpunkt näher als
x Frames vor dem Anfang des entsprechenden Segmentes liegt, wird
in einem Schritt 934 überprüft, ob der
Schritt 934 für
diesen potentiellen Anfangszeitpunkt das erste Mal durchlaufen wird.
Ist dies nicht der Fall, so endet hier die Verarbeitung für diesen
potentiellen Anfangszeitpunkt und das betreffende Segment und die
Verarbeitung der Onseterkennung führt in Schritt 928 für einen
weiteren potentiellen Anfangszeitpunkt oder in Schritt 926 für eine weitere
Hüllkurve
fort.
-
Anderenfalls
jedoch wird in einem Schritt 936 der bisherige Segmentanfang
des interessierenden Segmentes virtuell nach vorne verschoben. Dabei
werden die wahrnehmungsbezogenen Spektralwerte im wahrnehmungsbezogenen
Spektrum nachgeschlagen, die sich an dem virtuell verschobenen Segmentanfangszeitpunkten
befinden. Überschreitet
der Abfall dieser wahrnehmungsbezogenen Spektralwerte im wahrnehmungsbezogenen
Spektrum einen gewissen Wert, so wird das Frame, an dem diese Überschreitung
stattgefunden hat, vorläufig
als Segmentanfang des Bezugssegmentes verwendet und der Schritt 930 noch
einmal wiederholt. Liegt dann der potentielle Anfangszeitpunkt nicht
mehr mehr als x Frames vor dem in Schritt 936 ermittelten
Anfang des entsprechenden Segmentes, wird die Lücke in Schritt 932 ebenfalls
geschlossen, wie es im vorhergehenden beschrieben worden ist.
-
Der
Effekt der Onseterkennung und -korrektur 914 besteht folglich
darin, dass einzelne Segmente in der aktuellen Melodielinie in ihrer
zeitlichen Ausdehnung verändert
werden, nämlich
nach vorne verlängert bzw.
hinten verkürzt
werden.
-
An
den Schritt 914 schließt
sich dann eine Längensegmentierung 938 an.
Bei der Längensegmentierung 938 werden
alle Segmente der Melodielinie, die ja jetzt aufgrund des Halbtonmappings 912 in
der Melodiematrix als waagrechte Linien erscheinen, die auf Halbtonfrequenzen
liegen, durchgescannt, und diejenigen Segmente aus der Melodielinie entfernt,
die kleiner als eine vorbestimmte Länge sind. Beispielsweise werden Segmente
entfernt, die weniger als 10 – 14
Frames lang und vorzugsweise 12 Frames und weniger lang sind – wiederum
bei obiger Annahme einer Framelänge
von 8ms oder entsprechender Anpassung der Anzahlen an Frames. 12
Frames entsprechen bei 8 Millisekunden Zeitauflösung bzw. Framelänge 96 Millisekunden,
was weniger als etwa 1/64 Note ist.
-
Die
Schritte 914 und 938 entsprechen folglich dem
Schritt 762 aus 2.
-
Die
in Schritt 938 gehaltene Melodielinie besteht dann aus
einer etwas verringerten Anzahl von Segmenten, die über eine
gewisse Anzahl aufeinanderfolgender Frames hinweg ein und dieselbe
Halbtonfrequenz aufweisen. Diese Segmente sind eindeutig Notensegmenten
zuordenbar. Diese Melodielinie wird dann in einen Schritt 940,
der dem vorbeschriebenen Schritt 764 von 2 entspricht,
in eine Notendarstellung umgewandelt bzw. in eine Midi-Datei. Insbesondere
wird jedes Segment, das sich nach der Längensegmentierung 938 noch
in der Melodielinie befindet, untersucht, um das erste Frame in
dem jeweiligen Segment zu finden. Dieses Frame bestimmt dann den
Notenanfangszeitpunkt der diesem Segment entsprechenden Note. Für die Note
wird dann die Notenlänge
aus der Anzahl an Frames ermittelt, über die sich das entsprechende
Segment erstreckt. Die quantisierte Tonhöhe der Note ergibt sich aus
der Halbtonfrequenz, die ja in jedem Segment aufgrund des Schrittes 912 konstant
ist.
-
Die
MIDI-Ausgabe 914 durch die Einrichtung 304 ergibt
dann die Notenfolge, basierend auf welcher die Rhythmuseinrichtung 306 die
im vorhergehenden beschriebenen Operationen durchführt.
-
Die
vorhergehende Beschreibung Bezug nehmend auf die 3 – 26 bezog
sich auf die Melodieerkennung in der Einrichtung 304 für den Fall
polyphoner Audiostücke 302.
Ist jedoch bekannt, dass die Audiosignale 302 monophonen
Typs sind, wie es beispielsweise in dem Fall des Vorsummens bzw.
Vorpfeifens zur Generierung von Klingeltönen, wie es im vorhergehenden
beschrieben worden ist, der Fall ist, kann eine gegenüber der
Vorgehensweise von 3 leicht veränderte Vorgehensweise insofern
bevorzugt sein, als durch sie Fehler vermieden werden können, die
sich bei der Vorgehensweise von 3 aufgrund
von musikalischen Unzulänglichkeiten
in dem Ursprungsaudiosignal 302 ergeben können.
-
27 zeigt die alternative Funktionsweise der Einrichtung 304,
die für
monophone Audiosignale gegenüber
der Vorgehensweise von 3 zu bevorzugen ist, jedoch
grundsätzlich
auch für
polyphone Audiosignale anwendbar wäre.
-
Bis
zu dem Schritt 782 stimmt die Vorgehensweise nach 27 mit derjenigen von 3 überein, weshalb
für diese
Schritte auch dieselben Bezugszeichen wie in dem Fall von 3 verwendet
werden.
-
Anders
als bei der Vorgehensweise nach 3 wird nach
dem Schritt 782 in der Vorgehensweise nach 27 eine Tontrennung in Schritt 950 durchgeführt. Der
Grund für
die Durchführung
der Tontrennung in Schritt 950, die Bezug nehmend auf 28 noch näher
erläutert
wird, kann Bezug nehmend auf 29 veranschaulicht
werden, die für
einen Ausschnitt aus dem Frequenz-/Zeit-Raum des Spektrogramms des
Audiosignals die Beschaffenheit des Spektrogramms, wie es sich nach
der Frequenzanalyse 752 ergibt, für ein vorbestimmtes Segment 952 der
Melodielinie, wie sie sich nach der allgemeinen Segmentierung 782 ergibt, als
Grundton und für
deren Obertöne
veranschaulicht. Anders ausgedrückt
ist in 29 das exemplarische Segment 952 entlang
der Frequenzrichtung f um ganzzahlige Vielfache der jeweiligen Frequenz
verschoben worden, um Obertonlinien zu bestimmen. 29 zeigt nun nur diejenigen Teile des Bezugssegmentes 952 und
entsprechenden Obertonlinien 954a – g, an denen das Spektrogramm
aus Schritt 752 Spektralwerte aufweist, die einem exemplarischen
Wert überschreiten.
-
Wie
es zu erkennen ist, ist die Amplitude des Grundtons des in der allgemeinen
Segmentierung 782 erhaltenen Bezugsegmentes 952 durchgängig oberhalb
des exemplarischen Wertes. Lediglich die darüber angeordneten Obertone zeigen
eine Unterbrechung in etwa in der Mitte des Segmentes an. Die Durchgängigkeit des
Grundtones hat dafür
gesorgt, dass das Segment bei der allgemeinen Segmentierung 782 nicht
in zwei Noten zerfiel, obwohl wahrscheinlich in etwa der Mitte des
Segmentes 952 eine Notengrenze existiert. Fehler dieser
Art treten vornehmlich nur bei monophoner Musik auf, weshalb die
Tontrennung nur in dem Fall von 27 durchgeführt wird.
-
Im
folgenden wird nun die Tontrennung 950 Bezug nehmend auf 28, 29 und 30a,
b näher erläutert. Die
Tontrennung beginnt bei Schritt 958 ausgehend von der in
Schritt 782 erhaltenen Melodielinie mit der Suche nach
demjenigen Oberton bzw. denjenigen Obertonlinien 954a – 954g,
entlang derer das durch die Frequenzanalyse 752 erhaltene
Spektrogramm den Amplitudenverlauf mit der größten Dynamik aufweist. 30a zeigt in einem Graphen, bei dem die x-Achse einer Zeitachse
t und die y-Achse der Amplitude bzw. dem Wert des Spektrogramms
entspricht, exemplarisch einen solchen Amplitudenverlauf 960 für eine der Obertonlinien 954a – 954g.
Die Dynamik für
den Amplitudenverlauf 960 wird aus der Differenz zwischen
dem maximalen Spektralwert des Verlaufs 960 und dem Minimalwert
innerhalb des Verlaufs 960 bestimmt. 30a wird exemplarisch dem Amplitudenverlauf des
Spektrogramms entlang derjenigen Obertonlinie 450a – 450g darstellen,
die die größte Dynamik
unter all diesen Amplitudenverläufen
aufweist. Bei Schritt 958 werden vorzugsweise nur die Obertöne von 4.
bis 15. Ordnung berücksichtigt.
-
In
einem folgenden Schritt 962 werden daraufhin in dem Amplitudenverlauf
mit der größten Dynamik diejenigen
Stellen, an denen ein lokales Amplitudenminimum einen vorbestimmten
Schwellenwert unterschreitet, als potentielle Trennungsstellen identifiziert.
Dies wird in 30b veranschaulicht. In dem
exemplarischen Fall von 30a bzw.
b unterschreitet lediglich das absolute Minimum 964, das
natürlich
auch ein lokales Minimum darstellt, den Schwellwert, der in 30b exemplarisch mit der gestrichelten Linie 966 veranschaulicht wird.
In 30b gibt es folglich lediglich
eine potentielle Trennungsstelle, nämlich den Zeitpunkt bzw. das
Frame, an welchem das Minimum 964 angeordnet ist.
-
In
einem Schritt 968 werden dann unter den gegebenenfalls
mehreren Trennungsstellen diejenigen aussortiert, die in einem Grenzbereich 970 um
den Segmentanfang 972 oder in einem Grenzbereich 974 um das
Segmentende 976 liegen. Für die verbleibenden potentiellen
Trennungsstellen wird in einem Schritt 978 die Differenz
zwischen dem Amplitudenminimum an dem Minimum 964 und dem
Mittelwert der Amplituden der zu dem Minimum 964 benachbarten
lokalen Maxima 980 bzw. 982 in dem Amplitudenverlauf 960 gebildet.
Die Differenz ist in 30b mit
einem Doppelpfeil 984 veranschaulicht.
-
In
einem darauffolgenden Schritt 986 wird überprüft, ob die Differenz 984 größer als
ein vorbestimmter Schwellwert ist. Ist dies nicht der Fall, endet
die Tontrennung für
diese potentielle Trennungsstelle und ggf. für das betrachtete Segment 960.
Anderenfalls wird in einem Schritt 988 das Bezugssegment
an der potentiellen Trennungsstelle bzw. dem Minimum 964 in
zwei Segmente getrennt, wobei sich das eine von dem Segmentanfang 972 bis
zu dem Frame des Minimums 964 erstreckt, und das andere
zwischen dem Frame des Minimums 964 bzw. des nachfolgenden
Frames und dem Segmentende 976. Die Liste von Segmenten
wird entsprechend erweitert. Eine andere Möglichkeit der Trennung 988 besteht
darin, eine Lücke
zwischen den beiden neu entstehenden Segmenten vorzusehen. Beispielsweise
in dem Bereich, in dem sich der Amplitudenverlauf 960 unterhalb
des Schwellwerts befindet – in 30b also beispielsweise über den Zeitbereich 990 hinweg.
-
Ein
weiteres Problem, das vornehmlich bei monophoner Musik auftritt,
besteht darin, dass die einzelnen Noten Frequenzschwankungen unterworfen
sind, die eine anschließende
Segmentierung erschweren. Deshalb wird anschließend an die Tontrennung 950 in
Schritt 992 eine Tonglättung
durchgeführt,
die Bezug nehmend auf 31 und 32 näher erläutert wird.
-
32 zeigt in starker Vergrößerung schematisch ein Segment 994,
wie es sich in der Melodielinie befindet, die sich auf die Tontrennung 950 hin
ergibt. Die Darstellung in 32 ist
derart, dass in 32 für jedes Tupel aus Frequenzbin
und Frame, das durch das Segment 994 durchlaufen wird,
eine Ziffer an dem entsprechenden Tupel vorgesehen ist. Die Vergabe
der Ziffer wird im folgenden Bezug nehmend auf 31 noch näher
erläutert.
Wie es zu erkennen ist, schwankt das Segment 994 in dem
exemplarischen Fall von 32 über 4 Frequenzbins
hinweg und erstreckt sich über
27 Frames.
-
Der
Sinn der Tonglättung
besteht nun darin, unter den Frequenzbins, zwischen denen das Segment 994 hin
und her schwankt, dasjenige auszuwählen, das dem Segment 994 konstant
für alle
Frames zugeordnet werden soll.
-
Die
Tonglättung
beginnt in einem Schritt 996 mit der Initialisierung einer
Zählervariablen
i auf 1. In einem darauffolgenden Schritt 998 wird ein
Zählerwert
z auf 1 initialisiert. Die Zählervariable
i hat die Bedeutung der Nummerierung der Frames des Segmentes 994 von
links nach rechts in 32. Die Zählervariable z hat die Bedeutung
eines Zählers,
der zählt, über wie
viel aufeinanderfolgende Frames das Segment 994 sich in ein
und demselben Frequenzbin befindet. In 32 sind
bereits zur Erleichterung des Verständnisses der folgenden Schritte
der Wert für
z für die
einzelnen Frames in Form der Ziffern angezeigt, die den Verlauf
des Segments 994 in 32 darstellen.
-
In
einem Schritt 1000 wird nun der Zählerwert z zu einer Summe für das Frequenzbin
des i-ten Frames des Segments akkumuliert. Für jedes Frequenzbin, in welchem
das Segment 994 hin und her schwankt, existiert eine Summe
bzw. ein Akkumulationswert. Der Zählerwert könnte dabei gemäß einem
variierenden Ausführungsbeispiel
gewichtet werden, wie z.B. mit einem Faktor f(i), wobei f(i) eine
mit i stetig ansteigende Funktion sei, um somit die aufzusummierenden
Anteile am Schluss eines Segments, da also die Stimme beispielsweise
schon besser auf den Ton eingestimmt ist, verglichen zum Einschwingvorgang
zu Beginn einer Note stärker
zu gewichten. Unterhalb der waagerechten Zeitachse ist in eckigen
Klammern in 32 ein Beispiel für eine solche
Funktion f(i) gezeigt, wobei in 32 i
entlang der Zeit zunimmt und angibt, die wievielte Position ein
bestimmtes Frame unter den Frames des betrachteten Segmentes einnimmt,
und aufeinanderfolgende Werte, die die exemplarisch gezeigte Funktion
für aufeinaderfolgende
Abschnitte einnimmt, die wiederum mit kleinen senkrechten Strichen
entlang der Zeitachse angedeutet sind, mit Zahlen in diesen eckigen
Klammern gezeigt sind. Wie es zu sehen ist, nimmt die exemplarische
Gewichtungsfunktion mit i von 1 bis 2,2 zu.
-
In
einem Schritt 1002 wird überprüft, ob das i-te Frame das letzte
Frame des Segmentes 994 ist. Ist dies nicht der Fall, wird
in einem Schritt 1004 die Zählervariable i inkrementiert,
d.h. es wird zum nächsten
Frame übergegangen.
In einem darauffolgenden Schritt 1006 wird überprüft, ob sich
das Segment 994 in dem aktuellen Frame, d.h. dem i-ten
Frame in dem gleichen Frequenzbin befindet, wie es sich in dem (i-1)-ten Frame befand.
Ist dies der Fall, wird in einem Schritt 1008 die Zählervariable
z inkrementiert, woraufhin die Verarbeitung wieder bei Schritt 1000 fortfährt. Befindet
sich das Segment 994 jedoch in dem i-ten Frame und dem (i-1)-ten
Frame nicht in dem gleichen Frequenzbin, so fährt die Verarbeitung mit der
Initialisierung der Zählervariablen
z auf 1 in Schritt 998 fort.
-
Wird
in Schritt 1002 schließlich
festgestellt, dass i-te Frame das letzte Frame des Segments 994 ist, so
ergibt sich für
jedes Frequenzbin, in welchem sich das Segment 994 befindet,
eine Summe, die in 32 bei 1010 dargestellt
sind.
-
In
einem Schritt 1012 wird auf die Feststellung des letzten
Frames in Schritt 1002 hin dasjenige Frequenzbin ausgewählt, für das die
akkumulierte Summe 1010 am größten ist. In dem exemplarischen
Fall von 32 ist dies das zweitniedrigste
Frequenzbin unter den vier Frequenzbins, in welchen sich das Segment 994 befindet.
In einem Schritt 1014 wird dann das Bezugssegment 994 geglättet, indem
es durch ein Segment vertauscht wird, bei dem jedem der Frames,
an dem sich das Segment 994 befand, das ausgewählte Frequenzbin
zugewiesen wird. Die Tonglättung
aus 31 wird segmentweise für alle Segmente
wiederholt.
-
Die
Tonglättung
dient folglich anders ausgedrückt
dazu, das Einsingen und Ansingen von Tönen ausgehend von tieferen
oder höheren
Frequenzen auszugleichen, und bewerkstelligt dies durch Ermittlung
eines Wertes über
den zeitlichen Verlauf eines Tones, welcher der Frequenz des eingeschwungenen
Tones entspricht. Für
die Ermittlung des Frequenzwertes werden vom schwingenden Signal
alle Elemente eines Frequenzbandes hochgezählt, wonach alle hochgezählten Elemente
eines Frequenzbandes, die sich an dem Notensegment befinden, aufaddiert
werden. Dann wird der Ton über
die Zeit des Notensegmentes im Frequenzband mit der größten Summe
eingetragen.
-
Nach
der Tonglättung 992 wird
daraufhin eine statistische Korrektur 916 durchgeführt, wobei
die Durchführung
der statistischen Korrektur derjenigen aus 3, nämlich insbesondere
dem Schritt 898 entspricht. An die statistische Korrektur 1016 schließt sich
ein Halbtonmapping 1018 an, das dem Halbtonmapping 912 aus 3 entspricht
und ebenfalls einen Halbtonvektor verwendet, der bei einer Halbtonvektorermittlung 1020 ermittelt
wird, die derjenigen aus Fig. bei 818 entspricht.
-
Die
Schritte 950, 992, 1016, 1018 und 1020 entsprechen
folglich dem Schritt 760 aus 2.
-
An
das Halbtonmapping 1018 schließt sich eine Onseterkennung 1022 an,
die im wesentlichen derjenigen von 3, nämlich Schritt 914,
entspricht. Lediglich wird vorzugsweise in Schritt 932 verhindert,
dass Lücken
wieder geschlossen werden, bzw. durch die Tontrennung 950 aufgedrängte Segmente
wieder geschlossen werden.
-
An
die Onseterkennung 1022 schließt sich eine Offseterkennung
und -korrektur 1024 an, die im folgenden Bezug nehmend
auf 33 – 35 näher erläutert wird.
Im Gegensatz zur Onseterkennung dient die Offseterkennung und -korrektur
der Korrektur der Notenendenzeitpunkte. Die Offseterkennung 1024 dient dazu,
das Nachhallen monophoner Musikstücke zu unterbinden.
-
In
einem dem Schritt 916 ähnelnden
Schritt 1026 wird zunächst
das Audiosignal mit einem der Halbtonfrequenz des Bezugssegments
entsprechenden Bandpassfilter gefiltert, worauf in einem dem Schritt 918 entsprechenden
Schritt 1028 das gefilterte Audiosignal zweiwegegleichgerichtet
wird. Ferner wird in Schritt 1028 noch eine Interpretation
des gleichgerichteten Zeitsignals durchgeführt. Diese Vorgehensweise ist
für den
Fall der Offseterkennung und – korrektur
ausreichend, um annähernd
eine Hüllkurve
zu bestimmen, wodurch der kompliziertere Schritt 920 der
Onseterkennung wegfallen kann.
-
34 zeigt in einem Graphen bei dem entlang der
x-Achse die Zeit t in virtuellen Einheiten und entlang der y-Achse
der Amplitude A in virtuellen Einheiten aufgetragen ist, das interpolierte
Zeitsignal beispielsweise mit einem Bezugszeichen 1030 und
zum Vergleich hierzu die Hüllkurve,
wie sie bei der Onseterkennung in Schritt 920 bestimmt
wird, mit einem Bezugszeichen 1032.
-
In
einem Schritt 1034 wird nun in dem einem Bezugsegment entsprechenden
Zeitabschnitt 1036 ein Maximum 1040 des interpolierten
Zeitsignals 1030 bestimmt, und zwar insbesondere der Wert
des interpolierten Zeitsignals 1030 an dem Maximum 1040.
In einem Schritt 1042 wird daraufhin ein potentielles Notenendzeitpunkt
als derjenige Zeitpunkt bestimmt, bei dem das gleichgerichtete Audiosignal
zeitlich nach dem Maximum 1040 auf einen vorbestimmten
Prozentsatz des Werts an dem Maximum 1040 abgefallen ist,
wobei der Prozentsatz in Schritt 1042 vorzugsweise 15%
beträgt.
Das potentielle Notenende ist in 34 mit
einer gestrichelten Linie 1044 veranschaulicht.
-
In
einem darauffolgenden Schritt 1046 wird daraufhin überprüft, ob das
potentielle Notenende 1044 zeitlich hinter dem Segmentende 1048 liegt.
Ist dies nicht der Fall, wie es in 34 exemplarisch
gezeigt ist, so wird das Bezugssegment von dem Zeitbereich 1036 verkürzt, um
an dem potentiellen Notenende 1044 zu enden. Liegt jedoch
das Notenende zeitlich vor dem Segmentende, wie es exemplarisch
in 35 gezeigt ist, so wird in einem Schritt 1050 überprüft, ob der
zeitliche Abstand zwischen potentiellem Notenende 1044 und Segmentende 1048 weniger
als ein vorbestimmter Prozentsatz der aktuellen Segmentlänge a entspricht,
wobei der vorbestimmte Prozentsatz in Schritt 1050 vorzugsweise
25% ist. Fällt
das Ergebnis der Überprüfung 1050 positiv
aus, findet eine Verlängerung 1051 des
Bezugssegments von der Länge
a statt, um nunmehr an dem potentiellen Notenende 1044 zu
enden. Um eine Überlappung
mit dem anschließenden
Segment zu verhindern, kann der Schritt 1051 jedoch auch
von einer drohenden Überlappung
anhängig
sein, um in diesem Fall nicht durchgeführt zu werden, oder eben nur
bis zum Anfang des Nachfolgersegmentes, ggf. mit einem bestimmten
Abstand zu demselben.
-
Fällt die Überprüfung in
Schritt 1050 jedoch negativ aus, erfolgt keine Offsetkorrektur
und der Schritt 1034 und die folgenden Schritte werden
für ein
anderes Bezugssegment gleicher Halbtonfrequenz wiederholt, oder
es wird mit dem Schritt 1026 für andere Halbtonfrequenzen
fortgefahren.
-
Nach
der Offseterkennung 1024 wird in Schritt 1052 eine
dem Schritt 938 aus 3 entsprechende Längen-Segmentierung 1052 durchgeführt, woraufhin
eine MIDI-Ausgabe 1054 folgt, die dem Schritt 940 aus 3 entspricht.
Dem Schritt 762 aus 2 entsprechen
die Schritte 1022, 1024 und 1052.
-
Bezug
nehmend auf die vorhergehende Beschreibung der 3 – 35 wird
noch auf folgendes hingewiesen. Die zwei dort vorgestellten alternativen
Vorgehensweisen zur Melodieextraktion umfassen verschiedene Aspekte,
die nicht alle gleichzeitig in einer wirksamen Vorgehensweise zur
Melodieextraktion enthalten sein müssen. Zunächst wird darauf hingewiesen,
dass grundsätzlich
die Schritte 770 – 774 auch
miteinander kombiniert werden könnten,
indem die Spektralwerte des Spektrogramms aus der Frequenzanalyse 752 mittels
lediglich eines einzigen Nachschlags in einer Nachschlagtabelle
in die wahrnehmungsbezogenen Spektralwerte umgewandelt werden.
-
Grundsätzlich wäre es natürlich auch
möglich,
die Schritte 770 – 774 oder
lediglich die Schritte 772 und 774 wegzulassen,
was jedoch zu einer Verschlechterung der Melodielinienermittlung
in Schritt 780 und damit zu einer Verschlechterung des
Gesamtergebnisses des Melodieextraktionsverfahrens im gesamten führen dürfte.
-
Bei
der Grundfrequenzbestimmung 776 wurde ein Tonmodell von
Goto verwendet. Andere Tonmodelle bzw. andere Gewichtungen der Obertonanteile
wären jedoch
ebenfalls möglich
und könnten
beispielsweise an den Ursprung bzw. die Herkunft des Audiosignals
angepasst werden, soweit dieser bzw. diese bekannt ist, wie z.B.
wenn bei dem Ausführungsbeispiel
der Klingeltongenerierung der Benutzer auf ein Vorsummen festgelegt wird.
-
Im
Hinblick auf die Ermittlung der potentiellen Melodielinie in Schritt 780 wird
darauf hingewiesen, dass dort zwar der oben genannten musikwissenschaftlichen
Aussage gemäß für jedes
Frame nur die Grundfrequenz des lautesten Klanganteils ausgewählt worden
war, dass es aber ferner möglich
ist, die Auswahl nicht nur auf eine eindeutige Auswahl des größten Anteils
für jedes
Frame einzuschränken.
Ebenso wie es beispielsweise bei Paiva der Fall ist, könnte die
Ermittlung der potentiellen Melodielinie 780 das zuordnen
mehrerer Frequenzbins zu ein und demselben Frame aufweise. Anschließend könnte ein
Auffinden mehrerer Trajektorien durchgeführt werden. Das bedeutet das
zulassen einer Auswahl mehrerer Grundfrequenzen bzw. mehrerer Klänge für jedes
Frame. Die anschließende
Segmentierung müsste
dann natürlich
allerdings zum Teil anders durchgeführt werden und insbesondere
wäre die
anschließende
Segmentierung etwas aufwendiger, da mehrere Trajektorien bzw. Segmente
zu berücksichtigen
und aufzufinden wären.
Umgekehrt könnten
in diesem Fall einige der oben erwähnten Schritte oder Teilschritte
bei der Segmentierung auch für
diesen Fall der Ermittlung von Trajektorien, die sich zeitlich überlappen
können, übernommen
werden. Insbesondere die Schritte 786, 796 und 804 aus
der allgemeinen Segmentierung könnten
ohne weiteres auch auf diesen Fall übertragen werden. Der Schritt 806 könnte auf
den Fall, dass die Melodielinie aus sich zeitlich überlappenden
Trajektorien besteht, übertragen
werden, wenn dieser Schritt nach der Identifizierung der Trajektorien
stattfände.
Die Identifizierung von Trajektorien könnte ähnlich dem Schritt 810 stattfinden,
wobei jedoch Modifikationen dahingehend vorgenommen werden müssten, dass
auch mehrere Trajektorien, die sich zeitlich überlappen, verfolgt werden
können.
Auch die Lückenschließung könnte auf ähnliche
Weise für
solche Trajektorien durchgeführt werden,
zwischen denen zeitlich keine Lücke
besteht. Auch das Harmoniemapping könnte zwischen zwei zeitlich
direkt aufeinanderfolgenden Trajektorien durchgeführt werden.
Die Vibratoerkennung bzw. der Vibratoausgleich könnte ohne weiteres auf eine
einzelne Trajektorie ebenso angewendet werden wie auf die vorhergehenden
erwähnten
sich nicht überlappenden
Melodieliniensegmente. Auch die Onseterkennung und -korrektur könnte ebenfalls
bei Trajektorien angewendet werden. Selbiges gilt für die Tontrennung
und die Tonglättung sowie
die Offseterkennung und -korrektur sowie für die statistische Korrektur
und die Längensegmentierung. Das
Zulassen der zeitlichen Überlappung
von Trajektorien der Melodielinie bei der Ermittlung in Schritt 780 machte
es jedoch zumindest erforderlich, dass vor der eigentlichen Notenfolgenausgabe
die zeitliche Überlappung
von Trajektorien irgendwann einmal beseitigt werden muss. Der Vorteil
der Ermittlung der potentiellen Melodielinie auf die im vorhergehende
beschriebene Art und Weise Bezug nehmend auf 3 und 27 besteht
darin, dass die Anzahl der zu untersuchenden Segmente nach der allgemeinen
Segmentierung im vorhinein auf das wesentlichste begrenzt wird,
und dass auch die Melodielinieermittlung selbst in Schritt 780 äußerst einfach
ist und dennoch zu einem guten Melodieextraktion bzw. Notenfolgengenerierung
bzw. Transkription führt.
-
Die
im vorhergehenden beschriebene Implementierung der allgemeinen Segmentierung
muss nicht alle Teilschritte 786, 796, 804 und 806 aufweisen,
sondern kann auch eine Auswahl aus denselben umfassen.
-
Bei
der Lückenschließung wurde
in den Schritten 840 und 842 das wahrnehmungsbezogene
Spektrum verwendet. Grundsätzlich
ist es jedoch möglich,
in diesen Schritten auch das logarithmierte Spektrum oder das unmittelbar
aus der Frequenzanalyse erhaltene Spektrogramm zu verwenden, wobei
jedoch die Verwendung des wahrnehmungsbezogenen Spektrums in diesen
Schritten das beste Ergebnis im Hinblick auf die Melodieextraktion
ergeben hat. Ähnliches
gilt für
den Schritt 870 aus dem Harmoniemapping.
-
Hinsichtlich
des Harmoniemappings wird darauf hingewiesen, dass es dort vorgesehen
sein könnte, bei
der Verschiebung 868 des Nachfolgesegmentes die Verschiebung
gleich nur in Richtung der Melodieschwerpunktslinie vorzunehmen,
so dass die zweite Bedingung in Schritt 874 weggelassen
werden könnte. Bezug
nehmend auf den Schritt 872 wird darauf hingewiesen, dass
eine Eindeutigkeit unter der Auswahl der verschiedenen Oktav-, Quint-
und/oder Terz-Linien dadurch erzielt werden könnte, dass unter denselben
eine Prioritätsrangliste
erzeugt wird, wie z.B. Oktavlinie vor Quintlinie vor Terzlinie und
unter Linien gleicher Linienart (Oktav-, Quint- oder Terzlinie)
die, die näher
an der ursprünglichen
Position des Nachfolgersegmentes liegt.
-
Hinsichtlich
der Onseterkennung und der Offseterkennung wird darauf hingewiesen,
dass die Ermittlung der Hüllkurve
bzw. des bei der Offseterkennung stattdessen verwendeten interpolierten
Zeitsignals auch anders durchgeführt
werden könnte.
Wesentlich ist lediglich, dass bei der Onset- und Offseterkennung
zurück auf
das Audiosignal zurückgegriffen
wird, das mit einem Bandpassfilter mit einer Durchlasscharakteristik
um die jeweilige Halbtonfrequenz herum gefiltert wird, um an dem
Anstieg der Hüllkurve
des so entstehenden gefilterten Signals den Notenanfangszeitpunkt
bzw. anhand dem Abfall der Hüllkurve
den Notenendzeitpunkt zu erkennen.
-
Hinsichtlich
der Flussdiagramme unter den 8-41 wird darauf hingewiesen, dass dieselben
die Arbeitsweise der Melodieextraktionseinrichtung 304 zeigen,
und dass jeder der in diesen Flussdiagrammen durch einen Block dargestellten
Schritte in einer entsprechenden Teileinrichtung der Einrichtung 304 implementiert
sein kann. Die Implementierung der einzelnen Schritte kann dabei
in Hardware, als ASIC-Schaltungsteil,
oder in Software, als Unterroutine, realisiert sein. Insbesondere
zeigen in diesen Figuren die in den Blöcken eingeschrieben Erläuterungen
grob an, auf welchen Vorgang sich der jeweilige Schritt bezieht,
der dem jeweiligen Block entspricht, während die Pfeile zwischen den
Blöcken
die Reihenfolge der Schritte bei Betrieb der Einrichtung 304 veranschaulichen.
-
Insbesondere
wird darauf hingewiesen, dass abhängig von den Gegebenheiten
das erfindungsgemäße Schema
auch in Software implementiert sein kann. Die Implementation kann
auf einem digitalen Speichermedium, insbesondere einer Diskette
oder einer CD mit elektronisch auslesbaren Steuersignalen erfolgen,
die so mit einem programmierbaren Computersystem zusammenwirken
können,
dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht
die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem
maschinenlesbaren Träger
gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens,
wenn das Computerprogrammprodukt auf einem Rechner abläuft. In
anderen Worten ausgedrückt kann
die Erfindung somit als ein Computerprogramm mit einem Programmcode
zur Durchführung
des Verfahrens realisiert werden, wenn das Computerprogramm auf
einem Computer abläuft.