Extraktion einer einem Audiosignal zu Grunde liegenden Melodie
Beschreibung
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 Mobil- telefonen 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 Rbereinstimmung 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 Harmonie 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 Harmoniσity 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 Aufnahmefronten-d 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 stabileres bzw. für eine breitere Vielzahl von Audiosignalen korrekt arbeitendes Schema zur Melodieerkennung zu schaffen.
- -
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 33 gelöst.
Die Erkenntnis der vorliegenden Erfindung besteht darin, dass die Melodieextraktion oder automatische Transkription deutlich stabiler und gegebenenfalls sogar unaufwendiger gestaltet werden kann, wenn die Annahme genügend Berücksichtigung findet, dass die Hauptmelodie derjenige Anteil eines Musikstückes ist, den der Mensch am lautesten und prägnantesten wahrnimmt. Dies aufgreifend wird gemäß der vorliegenden Erfindung 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
_ _
Spektrograirans 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:
Fig. 1 ein Blockschaltbild einer Vorrichtung zur Erzeugung einer polyphonen Melodie;
Fig. 2 ein Flussdiagramm zur Veranschaulichung der Funktionsweise der Extraktionseinrichtung der Vorrichtung von Fig. 1;
Fig. 3 ein detaillierteres Flussdiagramm zur Veranschaulichung der Funktionsweise der Extraktionseinrichtung der Vorrichtung von Fig. 1 für den Fall eines polyphonen Audioeingangssignals;
Fig. 4 ein exemplarisches Beispiel für eine Zeit- /Spektraldarstellung bzw. ein Spektrogramm eines
- -
Audiosignals, wie es bei der Frequenzanalyse in Fig. 3 entstehen könnte;
Fig. 5 ein logarithmiertes Spektrogramm, wie es sich nach der Logarithmierung in Fig. 3 ergibt;
Fig. 6 ein Diagramm mit den Kurven gleicher Lautstärke, wie sie der Bewertung des Spektrums in Fig. 3 zu
Grunde liegen;
Fig. 7 einen Graphen eines Audiosignals, wie es vor der eigentlichen Logarithmierung in Fig. 3 verwendet wird, um einen Bezugswert für die Logarithmierung zu erhalten;
Fig. 8 ein wahrnehmungsbezogenes Spektrogramm, wie es nach der Bewertung des Spektrogramms von Fig. 5 in Fig.
3 erhalten wird;
Fig. 9 die sich aus dem wahrnehmungsbezogenen Spektrum von Fig. 8 durch die Melodielinienermittlung von Fig. 3 ergebende Melodielinie bzw. -funktion eingezeichnet in der Zeit-/Spektraldomäne;
Fig. 10 ein Flussdiagramm zur Veranschaulichung der allgemeinen Segmentierung von Fig. 3;
Fig. 11 eine schematische Darstellung eines exemplarischen
Melodielinienverlaufs in der Zeit-/Spektraldomäne;
Fig. 12 eine schematische Darstellung eines Ausschnitts aus der Melodielinienverlaufsdarstellung von Fig. 11 zur Veranschaulichung der Wirkweise der Filterung in der allgemeinen Segmentierung von Fig. 10;
Fig. 13 der Melodielinienverlauf von Fig. 9 nach der Frequenzbereichseingrenzung in der allgemeinen Segmentierung von Fig. 10;
- -
Fig. 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 Fig.
10;
Fig. 15 eine schematische Zeichnung eines Ausschnitts aus einer Melodienlinie zur Veranschaulichung der Wirkweise der Segmenteinteilung in der allgemeinen
Segmentierung von Fig. 10;
Fig. 16 ein Flussdiagramm zur Veranschaulichung der
Lückenschließung in Fig. 3;
Fig. 17 eine schematische Zeichnung zur Veranschaulichung der Vorgehensweise beim Setzen des variablen
Halbtonvektors in Fig. 3;
Fig. 18 eine schematische Zeichnung zur Veranschaulichung der Lückenschließung nach Fig. 16;
Fig. 19 ein Flussdiagramm zur Veranschaulichung des Harmoniemappings bzw. der Harmonieabbildung in Fig. 3;
Fig. 20 eine schematische Darstellung eines Ausschnitts aus dem Melodielinienverlauf zur Veranschaulichung der Wirkweise des Harmoniemappings nach Fig. 19;
Fig. 21 ein Flussdiagramm zur Veranschaulichung der Vibratorerkennung und des Vibratorausgleichs in Fig. 3;
Fig. 22 eine schematische Darstellung eines Segmentverlaufs zur Veranschaulichung der Vorgehensweise nach Fig. 21;
- -
Fig. 23 eine schematische Darstellung eines Ausschnitts aus dem Melodielinienverlauf zur Veranschaulichung der Vorgehensweise bei der statistischen Korrektur in Fig. 3;
Fig. 24 ein Flussdiagramm zur Veranschaulichung der Vorgehensweise bei der Onset-Erkennung und - Korrektur in Fig. 3;
Fig. 25 einen Graphen, der eine exemplarische Filterübertragungsfunktion zur Verwendung bei der Onset-Erkennung nach Fig. 24 zeigt;
Fig. 26 einen schematischen Verlauf eines zweiwege- gleichgerichteten gefilterten Audiosignals sowie der Hüllkurve desselben, wie sie zur Onset- Erkennung und -Korrektur in Fig. 24 verwendet werden;
Fig. 27 ein Flussdiagramm zur Veranschaulichung der Funktionsweise der Extraktionseinrichtung aus Fig. 1 für den Fall monophoner Audioeingangssignale;
Fig. 28 ein Flussdiagramm zur Veranschaulichung der Tontrennung in Fig. 27;
Fig. 29 eine schematische Darstellung eines Ausschnitts aus dem Amplitudenverlauf des Spektrogramms eines
Audiosignals entlang eines Segments zur Veranschaulichung der Funktionsweise der
Tontrennung nach Fig. 28;
Fig. 30a und b schematische Darstellungen eines Ausschnitts aus dem Amplitudenverlauf des Spektrogramms eines Audiosignals entlang eines Segments zur
Veranschaulichung der Funktionsweise der
Tontrennung nach Fig. 28;
- -
Fig. 31 ein Flussdiagramm zur Veranschaulichung der Tonglättung in Fig. 27;
Fig. 32 eine schematische Darstellung eines Segments aus dem Melodielinienverlauf zur Veranschaulichung der
Vorgehensweise der Tonglättung nach Fig. 31;
Fig. 33 ein Flussdiagramm zur Veranschaulichung der Offset-
Erkennung und -Korrektur in Fig. 27;
Fig. 34 eine schematische Darstellung eines Ausschnitts aus einem zweiwegegleichgerichteten gefilterten
Audiosignals und dessen Interpolation zur
Veranschaulichung der Vorgehensweise nach Fig. 33; und
Fig. 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.
- -
Fig. 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 Fig. 1 veine 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 Fig. 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. Extraktionseinrichtung 304 und Rhythmuseinrichtung 306 bilden zusammen eine Rhythmus- Aufbereitungseinrichtung 316.
Nachdem im Vorhergehenden der Aufbau der Vorrichtung 300 von Fig. 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 Fig. 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 Fig. 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 Fig. 2 - 35 die Funktionsweise der Extraktionseinrichtung 304 beschrieben. Dabei wird zunächst Bezug nehmend auf die Fig. 2- - 26 die Vorgehensweise bei der Melodieerkennung für den Fall polyphoner Audiosignale 302 am Eingang der Einrichtung 304 beschrieben.
Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 2 die Funktionsweise der Extraktionseinrichtung 304 von Fig. 1 eher allgemein beschrieben worden ist, wird im folgenden Bezug nehmend auf Fig. 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 Fig. 3 mit Fig. 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.
Fig. 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 Fig. 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 Fig. 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 Rbersprechens 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 Fig. 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
L [dB] = 20 Log(^)
Po
Po 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 Fig. 7 veranschaulicht ist. Fig. 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 Fig. 5 ist exemplarisch das Ergebnis der Logarithmierung 770 des Spektrogramms von Fig. 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 Fig. 5 die logarithmierten Spektralwerte auf dieselbe Weise wie in Fig. 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 Fig. 6 gezeigt ist. Wie es aus Fig. 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
(2)
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 Fig. 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 Fig. 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 Fig. 5 ist in Fig. 8 gezeigt. Wie es zu erkennen ist, besitzen in dem Spektrogramm von Fig. 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 Fig. 2 dar.
Das Verfahren von Fig. 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 Obe-rton 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
J U
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 Sbersprechens 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 Fig. 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 Fig. 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 Fig. 3 beseitigt werden. Außerdem entstehen kurze, einzelne Elemente, die keinem Bereich des Titels zugeordnet werden können. Sie werden beispielsweise mittels eines 3x3-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 Fig. 9 ist beispielsweise das Ergebnis der Melodielinienermittlung von Schritt 780 exemplarisch für den Fall des wahrnehmungsbezogenen Spektrums von Fig. 8 gezeigt. Fig. 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 Fig. 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 Fig. 9, die in Fig. 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 Fig. 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 Fig. 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 Fig. 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. Fig. 11 zeigt exemplarisch in schematischer Form einen möglichen Verlauf einer Melodielinie 784 in einer Darstellung gemäß Fig. 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 Fig. 9 bzw. Fig. 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 Fig. 12a Bezug genommen. Dort ist ein exemplarischer Ausschnitt aus dem Verlauf einer Melodielinie in dem Binärbild von Fig. 9 oder Fig. 11 dargestellt. Der exemplarische Ausschnitt von Fig. 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 Fig. 12a dadurch versinnbildlicht, dass die entsprechenden Pixelelemente, die Teile der Melodielinie darstellen, schraffiert sind. Gemäß dem Ausführungsbeispiel von Fig. 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 Fig. 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 Fig. 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 Fig. 12a in Fig. 12a mit Zahlen von „0" und „1" in den einzelnen Pixeln 790 dargestellt. Wie es zu erkennen ist, führt die Kombination aus 3x3-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 Fig. 9 bzw. Fig. 11, bzw. in Fig. 12a das Pixelbild, das durch die schraffierten Pixel veranschaulicht wird, mit dem zweiten Pixel-Array, d.h. demjenigen, das in Fig. 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 Fig. 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.
Fig. 12b zeigt deshalb zur Veranschaulichung der Wirkweise der Filterung 786 einen weiteren exemplarischen Ausschnitt aus der Melodiematrix von Fig. 9 bzw. Fig. 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 Fig. 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 Fig. 9 bzw. Fig. 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 Fig. 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 Fig. 9 exemplarisch ein Frequenzbereich von 150 bis 1.050 Hz durch eine untere Grenzfrequenzlinie 798 und eine obere Grenzfrequenzlinie 800 angezeigt. Fig. 13 zeigt die durch den Schritt 786 gefilterte und durch den Schritt 796 geclipte Melodielinie, die zur Unterscheidung in Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 14 der Übersichtlichkeit halber nicht gezeigt.
Die Melodielinie, wie sie sich aus Schritt 804 ergeben hat, ist in Fig. 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 Fig. 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 Fig. 15 einen Ausschnitt aus der Melodielinie 812, wie sie sich nach dem Schritt 806 ergibt. In Fig. 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 Rberprü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 Fig. 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 Fig. 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 Fig. 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 Fig. 17 die Ermittlung des variablen Halbtonvektors erläutert. Fig. 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 Fig. 17 mit einem Pfeil 826 angezeigt. Ausgehend von diesem Frequenzbin 826 der Frequenz fo bestimmt dann die Einrichtung 304 einen Vektor von Frequenzen fi, die zueinander und vor allem zu der Frequenz fo 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 fo 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 Halbtongrenz- frequenz erstrecken.
Auf dieser Einteilung der Frequenzachse f in Halbtonbereiche basiert die Lückenschließung, die im folgenden Bezug nehmend auf Fig. 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. Fig. 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 Fig. 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 Fig. 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 Fig. 18 die einander zugewandten Segmentenden der Segmente 812a und 812b in einem und demselben Halbtonbereich 838.
Für diesen Fall der positiven 8'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 Fig. 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. 3'ber diese wahrnehmungsbezogenen Spektralwerte entlang der Lücken¬ schließ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 Fig. 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 Rberprü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 Fig. 19 und Fig. 20 beschrieben.
Wie bereits erwähnt wird das Harmoniemapping 850 segmentweise durchgeführt. Fig. 20 zeigt exemplarisch einen Ausschnitt aus der Melodielinie, wie sie sich nach der Lückenschließung 816 ergeben hat. Diese Melodielinie ist in Fig. 20 mit dem Bezugszeichen 852 versehen, wobei in dem Ausschnitt von Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 Extremalsteilen aufweist, also Stellen, an denen die Steigung der Melodielinienfunktion Null beträgt. Diese Stellen sind in Fig. 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 Extremalsteilen 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 Fig. 4 beschriebener Implementierung der Frequenzanalyse bzw. einer Anzahl von Bins pro Halbtonbereich von etwa 2 bis 6, ist. In Fig. 22 ist mit einem Doppelpfeil 886 exemplarisch die Länge von 22 Frequenzbins dargestellt. Wie es zu erkennen ist, erfüllen die Extremaisteilen 882 das Kriterium 884.
In einem darauffolgenden Schritt 888 überprüft die Einrichtung 304, ob zwischen den benachbarten Extremaisteilen 882 der zeitliche Abstand immer kleiner gleich einer vorbestimmten Anzahl von Zeitframes ist, wobei die vorbestimmte Anzahl beispielsweise 21 beträgt.
Fällt die 3'berprüfung in Schritt 888 positiv aus, wie es in dem Beispiel von Fig. 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 Fig. 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 Fig. 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 Fiberprü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äß Fig. 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 Fig. 23 näher erläutert. Fig. 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 Fig. 23 mit dem Bezugszeichen 906 angezeigt.
Daraufhin wird ein zweites Fenster, das in Fig. 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 Fig. 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 Fig. 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 f0 als Filtergrenzfrequenzen gefiltert oder mit einem Butterworth-Bandpass-Filter, dessen Rbertragungsfunktion in Fig. 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 Fig. 26 noch einmal veranschaulicht. Fig. 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 Fig. 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 Fig. 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 Fig. 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 Rberlappung 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. Bberschreitet 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 Fig. 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 Fig. 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 Fig. 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 Fig. 3 leicht veränderte Vorgehensweise insofern bevorzugt sein, als durch sie Fehler vermieden werden können, die sich bei der Vorgehensweise von Fig. 3 aufgrund von musikalischen Unzulänglichkeiten in dem Ursprungsaudiosignal 302 ergeben können.
Fig. 27 zeigt die alternative Funktionsweise der Einrichtung
304, die für monophone Audiosignale gegenüber der
Vorgehensweise von Fig. 3 zu bevorzugen ist, jedoch grundsätzlich auch für polyphone Audiosignale anwendbar wäre.
Bis zu dem Schritt 782 stimmt die Vorgehensweise nach Fig. 27 mit derjenigen von Fig. 3 überein, weshalb für diese Schritte auch dieselben Bezugszeichen wie in dem Fall von Fig. 3 verwendet werden.
Anders als bei der Vorgehensweise nach Fig.. 3 wird nach dem Schritt 782 in der Vorgehensweise nach Fig. 27 eine
-
Tontrennung in Schritt 950 durchgeführt. Der Grund für die Durchführung der Tontrennung in Schritt 950, die Bezug nehmend auf Fig. 28 noch näher erläutert wird, kann Bezug nehmend auf Fig. 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 Fig. 29 das exemplarische Segment 952 entlang der Frequenzrichtung f um ganzzahlige Vielfache der jeweiligen Frequenz verschoben worden, um Obertonlinien zu bestimmen. Fig. 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 Fig. 27 durchgeführt wird.
Im folgenden wird nun die Tontrennung 950 Bezug nehmend auf Fig. 28, Fig. 29 und Fig. 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. Fig. 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. Fig. 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 Fig. 30b veranschaulicht. In dem exemplarischen Fall von Fig. 30a bzw. b unterschreitet lediglich das absolute Minimum 964, das natürlich auch ein lokales Minimum darstellt, den Schwellwert, der in Fig. 30b exemplarisch mit der gestrichelten Linie 966 veranschaulicht wird. In Fig. 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 Fig. 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 Fig. 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 Fig. 31 und 32 näher erläutert wird.
Fig. 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 Fig. 32 ist derart, dass in Fig. 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 Fig. 31 noch näher erläutert. Wie es zu erkennen ist, schwankt das Segment 994 in dem exemplarischen Fall von Fig. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 32 ein Beispiel für eine solche Funktion f(i) gezeigt, wobei in Fig. 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- l)-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-l)-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 Fig. 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 Fig. 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 Fig. 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ößt-en Summe eingetragen.
Nach der Tonglättung 992 wird daraufhin eine statistische Korrektur 916 durchgeführt, wobei die Durchführung der statistischen Korrektur derjenigen aus Fig. 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 Fig. 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 Fig. 2.
An das Halbtonmapping 1018 schließt sich eine Onseterkennung 1022 an, die im wesentlichen derjenigen von Fig. 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 Fig. 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.
Fig. 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 Fig. 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 Fig. 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 Fig. 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 Sberlappung 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 Fig. 3 entsprechende Längen-Segmentierung
1052 durchgeführt, woraufhin eine MIDI-Ausgabe 1054 folgt, die dem Schritt 940 aus Fig. 3 entspricht. Dem Schritt 762 aus Fig. 2 entsprechen die Schritte 1022, 1024 und 1052.
Bezug nehmend auf die vorhergehende Beschreibung der Fig. 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 Melodielinien¬ ermittlung 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 8'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 Fig. 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 Figuren 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.