DE112007002014T5 - Rechentechnische Musiktemposchätzung - Google Patents

Rechentechnische Musiktemposchätzung Download PDF

Info

Publication number
DE112007002014T5
DE112007002014T5 DE112007002014T DE112007002014T DE112007002014T5 DE 112007002014 T5 DE112007002014 T5 DE 112007002014T5 DE 112007002014 T DE112007002014 T DE 112007002014T DE 112007002014 T DE112007002014 T DE 112007002014T DE 112007002014 T5 DE112007002014 T5 DE 112007002014T5
Authority
DE
Germany
Prior art keywords
inter
value
strength
time
mission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112007002014T
Other languages
English (en)
Other versions
DE112007002014B4 (de
Inventor
Yu-Yao Palo-Alto Chang
Ramin Palo-Alto Samadani
Tong Palo Alto Zhang
Simon Palo Alto Widdowson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112007002014T5 publication Critical patent/DE112007002014T5/de
Application granted granted Critical
Publication of DE112007002014B4 publication Critical patent/DE112007002014B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/40Rhythm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10KSOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
    • G10K15/00Acoustics not otherwise provided for
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/076Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for extraction of timing, tempo; Beat detection

Abstract

Ein Verfahren zum rechentechnischen Schätzen des Tempos einer Musikauswahl (8), wobei das Verfahren folgende Schritte aufweist:
Auswählen eines Teils der Musikauswahl;
Berechnen (804) eines Spektrogramms (502) für den ausgewählten Teil der Musikauswahl;
Umwandeln (806) des Spektrogramms in einen Satz aus Einsatzstärke/Zeit-Funktionen (716) für einen entsprechenden Satz aus Frequenzbändern (704–707);
Analysieren des Satzes aus Einsatzstärke/Zeit-Funktionen, um eine zuverlässigste Zwischen-Einsatz-Intervalllänge (808, 8100) zu bestimmen, durch Analysieren möglicher Phasen jeder Zwischen-Einsatz-Intervalllänge (906–912) in einem Bereich aus Zwischen-Einsatz-Intervalllängen, was die Analyse von Harmonischen höherer Frequenz umfasst, die jeder Zwischen-Einsatz-Intervalllänge entsprechen; und
Berechnen einer Temposchätzung aus der zuverlässigsten Zwischen-Einsatz-Intervalllänge (812).

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine Signalverarbeitung und Signalcharakterisierung und insbesondere auf ein Verfahren und ein System zum Schätzen eines Tempos für ein Audiosignal, das einem kurzen Abschnitt einer Musikkomposition entspricht.
  • Hintergrund der Erfindung
  • Da sich Verarbeitungsleistung, Datenkapazität und Funktionalität von Personalcomputern und Computersystemen erhöht haben, wurden Personalcomputer, die mit anderen Personalcomputern und Highend-Computersystemen verbunden sind, zu einem Hauptmedium zur Übertragung einer Vielzahl von unterschiedlichen Typen von Informationen und Unterhaltung, einschließlich Musik. Benutzer von Personalcomputern können eine große Anzahl von unterschiedlichen, digital codierten Musikauswahlen aus dem Internet herunterladen, digital codierte Musikauswahlen auf einem Massenspeicherungsgerät speichern, das innerhalb der Personalcomputer liegt oder denselben zugeordnet ist, und die Musikauswahl durch Audio-Playback-Software, Firmware und Hardwarekomponenten wiedergewinnen und abspielen. Personalcomputerbenutzer können live strömende Audioübertragungen von Tausenden von unterschiedlichen Radiostationen und anderen Audiorundsendeentitäten über das Internet empfangen.
  • Da Benutzer begonnen haben, eine große Anzahl von Musikauswahlen anzusammeln, und begonnen haben, ein Bedürfnis zu verspüren, ihre angesammelten Musikauswahlen zu verwalten und zu durchsuchen, haben Software- und Computer-Verkäufer begonnen, verschiedene Softwaretools zu anzubieten, um es Benutzern zu ermöglichen, die gespeicherten Musikauswahlen zu organisieren, zu verwalten und zu durchsuchen. Sowohl für Musikauswahl-Speicherungs- als auch -Browse-Operationen ist es häufig notwendig, Musikauswahlen zu charakterisieren, entweder auf Basis von textcodierten Attributen, die digital codierten Musikauswahlen durch Benutzer oder Musikauswahlanbieter zugeordnet sind, was Titel und Thumbnail- bzw. verkleinerte Beschreibungen umfasst, oder was häufig wünschenswerter ist, durch Analysieren der digital codierten Musikauswahl, um verschiedene Charakteristika der Musikauswahl zu bestimmen. Als ein Beispiel können Benutzer versuchen, Musikauswahlen durch eine Anzahl von Musikparameterwerten zu charakterisieren, um ähnliche Musik innerhalb von bestimmten Verzeichnissen oder Unterverzeichnisbäumen zusammenzustellen, und können Musikparameterwerte in einen Musikauswahlbrowser eingeben, um eine Suche nach bestimmten Musikauswahlen zu schmälern und zu fokussieren. Höherentwickelte Musikauswahl-Suchanwendungen (Browse-Anwendungen) können Musikauswahlcharakterisierungstechniken einsetzen, um ein hochentwickeltes automatisiertes Suchen und Browsen sowohl von lokal gespeicherten als auch entfernt gespeicherten Musikauswahlen zu liefern.
  • Das Tempo einer gespielten oder rundgesendeten Musikauswahl ist ein häufig angetroffener Musikparameter. Hörer können oft einfach und intuitiv ein Tempo oder eine primäre wahrgenommene Geschwindigkeit einer Musikauswahl zuweisen, obwohl die Zuweisung eines Tempos eines Tempos im Allgemeinen nicht unzweideutig ist, und ein gegebener Hörer kann unterschiedliche Tempos zu derselben Musikauswahl zuweisen, die in unterschiedlichen musikalischen Kontexten präsentiert ist. Die primären Geschwindigkeiten oder Tempos in Schlägen pro Minute von einer gegebenen Musikauswahl, die durch eine große Anzahl von Hörern zugewiesen werden, fallen allgemein in eines oder einige einzelne, schmale Bänder. Ferner entsprechen wahrgenommene Tempos im Allge meinen Signalmerkmalen des Audiosignals, das eine Musikauswahl darstellt. Da das Tempo ein allgemein anerkannter und grundlegender Musikparameter ist, haben Computerbenutzer, Softwareverkäufer, Musikanbieter und Musikrundfunksender alle den Bedarf nach effektiven, rechentechnischen Verfahren zum Bestimmen eines Tempowerts für eine gegebene Musikauswahl erkannt, der als ein Parameter zum Organisieren, Speichern, Wiedergewinnen und Suchen nach digital codierten Musikauswahlen verwendet werden kann.
  • Zusammenfassung der Erfindung
  • Verschiedene Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung richten sich auf eine rechentechnische Schätzung eines Tempos für eine digital codierte Musikauswahl. Bei bestimmten Ausführungsbeispielen der vorliegenden Erfindung, die nachfolgend beschrieben werden, wird ein kurzer Abschnitt einer Musikauswahl analysiert, um das Tempo der Musikauswahl zu bestimmen. Der digital codierte Musikauswahlabtastwert (sample) wird rechentechnisch transformiert, um ein Leistungsspektrum zu erzeugen, das dem Abtastwert entspricht, der seinerseits transformiert wird, um eine zweidimensionale Einsatzstärkenmatrix zu erzeugen. Die zweidimensionale Einsatzstärkenmatrix wird dann in einen Satz aus Einsatzstärken/Zeit-Funktionen für jedes eines entsprechenden Satzes aus Frequenzbändern transformiert. Die Einsatzstärken/Zeit-Funktionen werden dann analysiert, um ein zuverlässigstes Einsatzintervall zu finden, das in ein geschätztes Tempo transformiert wird, das durch die Analyse zurückgegeben wird.
  • Kurze Beschreibung der Zeichnungen
  • 1A stellen eine Kombination einer Anzahl von Kompo- bis G nentenaudiosignalen oder Komponentensignalverläufen dar, um einen Audiosignalverlauf zu erzeugen.
  • 2 stellt eine mathematische Technik zum Zersetzen komplexer Signalverläufe in Komponentensignalverlaufsfrequenzen dar.
  • 3 zeigt eine erste Frequenzbereichsskizze, eingetragen in eine dreidimensionale Skizze einer Größe im Hinblick auf Frequenz und Zeit.
  • 4 zeigt eine dreidimensionale Frequenz-, Zeit- und Größen-Skizze mit zwei Säulen aus skizzierten Daten, die mit der Zeitachse zu den Zeiten τ1 und τ2 zusammenfallen.
  • 5 stellt ein Spektrogramm dar, das durch das Verfahren erzeugt wird, das im Hinblick auf 24 beschrieben ist.
  • 6A bis C stellen die erste der zwei Transformationen eines Spektrogramms dar, das bei Verfahrensausführungsbeispielen der vorliegenden Erfindung verwendet wird.
  • 7A bis B stellen eine Berechnung von Einsatzstärke/Zeit- Funktionen für einen Satz aus Frequenzbändern dar.
  • 8 ist ein Flusssteuerungsdiagramm, das ein Temposchätzungs-Verfahrensausführungsbeispiel der vorliegenden Erfindung darstellt.
  • 9A bis D stellen das Konzept von Zwischen-Einsatz-Inter- wallen und -Phasen dar.
  • 10 stellt den Zustandsraum der Suche dar, die durch Schritt 810 in 8 dargestellt ist.
  • 11 stellt eine Auswahl eines Werts einer Spitze D(t, b) innerhalb einer Nachbarschaft von Werten D(t, b) gemäß Ausführungsbeispielen der vorliegenden Erfindung dar.
  • 12 stellt einen Schritt in dem Prozess von dem Berechnen der Zuverlässigkeit durch sukzessives Betrachten jeweiliger Werte D(t, b) von Zwischeneinsatzintervallen entlang der Zeitachse dar.
  • 13 stellt Diskontierung oder Pönalisierung bzw. Bestrafung von einem Zwischeneinsatzintervall basierend auf der Identifikation eines Potentials, einer Frequenz höherer Ordnung oder eines Tempos in dem Zwischeneinsatzintervall dar.
  • Detaillierte Beschreibung der Erfindung
  • Verschiedene Verfahrens- und Systemausführungsbeispiele der vorliegenden Erfindung richten sich auf eine rechentechnische Bestimmung eines geschätzten Tempos für eine digital codierte Musikauswahl. Wie nachfolgend detailliert erörtert wird, wird ein kurzer Abschnitt der Musikauswahl transformiert, um eine Anzahl von Einsatzstärke/Zeit-Funktionen zu erzeugen, die analysiert werden, um ein geschätztes Tempo zu bestimmen. In der nachfolgenden Erörterung werden zuerst Audiosignale erörtert, im Überblick, gefolgt von einer Erörterung der verschiedenen Transformationen, die bei Verfahrensausführungsbeispielen der vorliegenden Erfindung verwendet werden, um Einsatzstärke/Zeit-Funktionen für einen Satz aus Frequenzbändern zu erzeugen. Die Analyse der Einsatzstärke/Zeit-Funktionen wird dann unter Verwendung von sowohl graphischen Darstellungen als auch Flusssteuerungsdiagrammen beschrieben.
  • 1A–G stellen eine Kombination einer Anzahl von Komponentenaudiosignalen oder Komponentensignalverläufen dar, um einen Audiosignalverlauf zu erzeugen. Obwohl die Signalverlaufszusammensetzung, die in 1A–G dargestellt ist, ein spezieller Fall einer allgemeinen Signalverlaufszusammensetzung ist, stellt das Beispiel dar, dass ein im Allgemeinen komplexer Audiosignalverlauf aus einer Anzahl von einfachen Einzelfrequenz-Signalverlaufskomponenten bestehen kann. 1A zeigt einen Abschnitt des ersten von sechs einfachen Komponentensignalverläufen. Ein Audiosignal ist im Wesentlichen eine oszillierende Luftdruckstörung, die sich durch den Raum ausbreitet. Wenn er an einem bestimmten Punkt im Raum über der Zeit betrachtet wird, oszilliert der Luftdruck regelmäßig über einen mittleren Luftdruck. Der Signalverlauf 102 in 1A, eine sinusförmige Welle mit einem Druck, der entlang der vertikalen Achse gezeichnet ist, und einer Zeit, die entlang der horizontalen Achse aufgetragen ist, zeigt graphisch den Luftdruck an einem bestimmten Punkt im Raum als eine Funktion der Zeit. Die Intensität einer Schallwelle ist proportional zu dem Quadrat der Druckamplitude der Schallwelle. Ein ähnlicher Signalverlauf wird auch erhalten durch Messen von Drücken an verschiedenen Punkten im Raum entlang eines geradlinigen Strahls, der aus einer Schallquelle an einem bestimmten Zeitpunkt ausstrahlt. Zurück zu der Signalverlaufsdarstellung des Luftdrucks an einem bestimmten Punkt im Raum für eine Zeitperiode, ist die Distanz zwischen jeglichen zwei Spitzen in dem Signalverlauf, wie z. B. die Distanz 104 zwischen den Spitzen 106 und 108, die Zeit zwischen aufeinanderfolgenden Oszillationen in der Luftdruckstörung. Die Reziproke dieser Zeit ist die Frequenz des Signalverlaufs. Wird der Komponentensignalverlauf, der in 1A gezeigt ist, derart betrachtet, dass er eine Grundfrequenz f aufweist, stellen die Signalverläufe, die in 1B–F gezeigt sind, verschiedene Harmonische höherer Ordnung der Grundfrequenz dar. Harmonische Frequenzen sind ganzzahlige Mehrfache der Grundfrequenz. Somit ist z. B. die Frequenz des Komponentensignalverlaufs, der in 1B gezeigt ist, 2f, zweimal die der Grundfrequenz, die in 1A gezeigt ist, da zwei vollständige Zyklen in dem Komponentensignalverlauf auftreten, der in 1B gezeigt ist, in derselben Zeit, in der ein Zyklus in dem Komponentensignalverlauf mit der Grundfrequenz f auftritt. Die Komponentensignalverläufe der 1C–F haben die Frequenzen 3f, 4f, 5f bzw. 6f. Eine Summierung der sechs Signalverläufe, die in 1A–F gezeigt sind, erzeugt den Audiosignalverlauf 110, der in 1G gezeigt ist. Der Audiosignalverlauf könnte eine einzelne Note darstellen, die auf einem Seiten- oder Blasinstrument gespielt wird. Der Audiosignalverlauf hat eine komplexere Form als die sinusförmigen, Einzelfrequenz-Komponentensignalverläufe, die in 1A–F gezeigt sind. Der Audiosignalverlauf kann jedoch derart betrachtet werden, dass er sich bei der Grundfrequenz f wiederholt und bei höheren Frequenzen regelmäßige Muster zeigt.
  • Signalverläufe, die einer komplexen Musikauswahl entsprechen, wie z. B. einem Lied, das durch eine Band oder ein Orchester gespielt wird, können äußerst komplex sein und aus vielen Hunderten von unterschiedlichen Komponentensignalverläufen bestehen. Wie in dem Beispiel aus 1A–G gezeigt ist, wäre es äußerst schwierig, den Signalverlauf 110, der in 1G gezeigt ist, in die Komponentensignalverläufe zu zersetzen, die in 1A–F gezeigt sind, durch Inspektion oder Intuition. Für die äußerst komplexen Signalverläufe, die gespielte Musikkompositionen darstellen, wäre eine Zersetzung durch Inspektion oder Intuition praktisch unmöglich. Mathematische Techniken wurden entwickelt, um komplexe Signalverläufe in Komponentensignalverlaufsfrequenzen zu zersetzen. 2 stellt eine mathematische Technik zum Zersetzen komplexer Signalverläufe in Komponentensignalverlaufsfrequenzen dar. In 2 ist die Amplitude eines komplexen Signalverlaufs 202 gezeigt, aufgetragen im Hinblick auf Zeit. Dieser Signalverlauf kann mathematisch transformiert werden, unter Verwendung eines Kurzzeit-Fourier-Transformationsverfahrens, um eine Skizze der Größen der Komponentensignalverläufe bei jeder Frequenz innerhalb eines Bereichs von Frequenzen für eine gegebene, kurze Zeitperiode zu erzeugen. 2 zeigt sowohl eine kontinuierliche Kurzzeit-Fourier-Transformation 204:
    Figure 00080001
    bei der
  • τ1
    ein Zeitpunkt ist,
    x(t)
    eine Funktion ist, die einen Signalverlauf beschreibt,
    w(t – τ1)
    eine Zeitfensterfunktion ist,
    ω
    eine ausgewählte Frequenz ist, und
    X(τ1, ω)
    die Größe, Druck oder Energie des Komponentensignalverlaufs des Signalverlaufs x(t) mit der Frequenz ω zu der Zeit τ1 ist.
    als auch eine diskrete 206 Version der Kurzzeit-Fourier-Transformation:
    Figure 00080002
    bei der
    m
    ein ausgewähltes Zeitintervall ist,
    x[n]
    eine diskrete Funktion ist, die einen Signalverlauf beschreibt,
    w[n – m]
    eine Zeitfensterfunktion ist,
    ω
    eine ausgewählte Frequenz ist, und
    X(m, ω)
    die Größe, Druck oder Energie des Komponentensignalverlaufs des Signalverlaufs x[n] mit der Frequenz ω über das Zeitintervall m ist.
  • Die Kurzzeit-Fourier-Transformation ist an ein Fenster in der Zeit angelegt, die um einen bestimmten Zeitpunkt zentriert ist, oder eine Abtastzeit, im Hinblick auf den Zeitbereichssignalverlauf (202 in 2). Zum Beispiel sind die kontinuierliche 204 und diskrete 206 Fourier-Transformation, die in 2 gezeigt sind, an ein kleines Zeitfenster angelegt, das an der Zeit τ1 zentriert ist (oder Zeitintervall m, in dem diskreten Fall) 208, um eine zweidimensionale Frequenzbereichsskizze 210 zu erzeugen, in der die Intensität in Dezibel (dB) entlang der horizontalen Achse 212 aufgetragen ist und die Frequenz entlang der vertikalen Achse 214 aufgetragen ist. Die Frequenzbereichsskizze 210 zeigt die Größe der Komponentenwellen mit Frequenzen über einen Bereich von Frequenzen f0 bis fn–1 an, die zu dem Signalverlauf 202 beitragen. Die kontinuierliche Kurzzeit-Fourier-Transformation 204 wird entsprechend für eine analoge Signalanalyse verwendet, während die diskrete Kurzzeit-Fourier-Transformation 206 entsprechend für digital codierte Signalverläufe verwendet wird. Bei einem Ausführungsbeispiel der vorliegenden Erfindung wird eine schnelle 4096-Punkt-Fourier-Transformation mit einem Hamming-Fenster und 3584-Punkt-Überlappung verwendet, mit einer Eingangsabtastrate von 44.100 Hz, um das Spektrogramm zu erzeugen.
  • Die Frequenzbereichsskizze, die der Zeitbereichszeit τ1 entspricht, kann in eine dreidimensionale Skizze der Größe im Hinblick auf Frequenz und Zeit eingegeben werden. 3 zeigt eine erste Frequenzbereichsskizze, die in eine dreidimensionale Skizze der Größe im Hinblick auf Frequenz und Zeit eingegeben ist. Die zweidimensionale Frequenzbereichsskizze 214, die in 2 gezeigt ist, ist um 90° im Hinblick auf die vertikale Achse der Skizze gedreht, außerhalb der Ebene des Papiers, und parallel in die Frequenzachse 302 an einer Position entlang der Zeitachse 304 eingefügt, die der Zeit τ1 entspricht. Auf ähnliche Weise kann eine nächste zweidimensionale Frequenzbereichsskizze erhalten werden, durch Anwenden der Kurzzeit-Fourier-Transformation an den Signalverlauf (202 in 2) zu der Zeit τ2, und diese zweidimensionale Skizze kann zu der dreidimensionalen Skizze aus 3 hinzugefügt werden, um eine dreidimensionale Skizze mit zwei Säulen zu erzeugen. 4 zeigt eine dreidimensionale Frequenz-, Zeit- und Größen-Skizze mit zwei Säulen aus skizzierten Daten, die an Abtastzeiten τ1 und τ2 positioniert sind. Weiter auf diese Weise kann eine gesamte, dreidimensionale Skizze des Signalverlaufs erzeugt werden, durch sukzessives Anwenden der Kurzzeit-Fourier-Transformation an jedem der regelmäßig beabstandeten Zeitintervalle an den Audiosignalverlauf in dem Zeitbereich.
  • 5 stellt ein Spektrogramm dar, das durch das Verfahren erzeugt wird, das im Hinblick auf 24 beschrieben ist. 5 ist zweidimensional aufgetragen und nicht in der dreidimensionalen Perspektive wie 3 und 4. Das Spektrogramm 502 hat eine horizontale Zeitachse 504 und eine vertikale Frequenzachse 506. Das Spektrogramm enthält eine Spalte aus Intensitätswerten für jede Abtastzeit. Zum Beispiel entspricht die Spalte 508 der zweidimensionalen Frequenzbereichsskizze (214 in 2), die durch die Kurzzeit-Fourier-Transformation erzeugt wird, die an den Signalverlauf (202 in 2) zu der Zeit τ1 (208 in 2) angelegt ist. Jede Zelle in dem Spektrogramm enthält einen Intensitätswert, der der Größe entspricht, der für eine bestimmte Frequenz zu einer bestimmten Zeit berechnet wird. Zum Beispiel enthält die Zelle 510 in 5 einen Intensitätswert p(t1, f10), der der Länge der Zeile 216 in 2 entspricht, berechnet aus dem komplexen Audiosignalverlauf (202 in 2) zu der Zeit τ1. 5 zeigt die Leistungsbezeichnungs-p(tx, fy)-Anmerkungen für zwei zusätzliche Zellen 512 und 514 in dem Spektrogramm 502. Spektrogramme können numerisch in zweidimensionalen Arrays in Computerspeichern codiert sein und werden häufig auf Anzeigevorrichtungen als zweidimensionale Matrizen oder Arrays mit angezeigter Farbcodierung der Zellen, die der Leistung entsprechen, angezeigt.
  • Während das Spektrogramm ein vorteilhaftes Werkzeug zur Analyse der dynamischen Beiträge von Komponentensignalverläufen von unterschiedlichen Frequenzen zu einem Audiosignal ist, betont das Spektrogramm nicht die Intensitätsänderungsraten im Hinblick auf die Zeit. Verschiedene Ausführungsbeispiele der vorliegenden Erfindung setzen zwei zusätzliche Transformationen ein, beginnend mit dem Spektrogramm, um einen Satz aus Einsatzstärke/Zeit-Funktionen für einen entsprechenden Satz aus Frequenzbändern zu erzeugen, aus denen ein Tempo geschätzt werden kann. 6A–C stellen die erste der zwei Transformationen eines Spektrogramms dar, das bei Verfahrensausführungsbeispielen der vorliegenden Erfindung verwendet wird. In 6A–B ist ein kleiner Abschnitt 602 eines Spektrogramms gezeigt. An einem gegebenen Punkt oder einer Zelle innerhalb des Spektrogramms 604, p(t, f), kann eine Einsatzstärke d(t, f) für die Frequenz und die Zeit, die durch den gegebenen Punkt oder die Zelle in dem Spektrogramm 604 dargestellt ist, berechnet werden. Eine vorangehende Intensität pp(t, f) wird als das Maximum von vier Punkten oder Zellen 606609 berechnet, die dem gegebenen Zeitpunkt vorangehen, wie durch den ersten Ausdruck 610 in 6A beschrieben ist: pp(t, f) = max(p(t – 2, f), p(t – 1, f + 1), p(t – 1, f), p(t – 1, f – 1))
  • Eine nächste Intensität np(t, f) wird aus einer einzelnen Zelle 612 berechnet, die der gegebenen Zelle 604 zeitlich folgt, wie in 6A durch den Ausdruck 614 gezeigt ist: np(t, f) = p(t + 1, f)
  • Dann, wie in 6B gezeigt ist, wird der Ausdruck a als der Maximalleistungswert der Zelle entsprechend der nächsten Leistung 612 und der gegebenen Zelle 604 berechnet: α = max(p(t, f), np(t – f))
  • Abschließend wird die Einsatzstärke d(t, f) an dem gegebenen Punkt als die Differenz zwischen a und pp(t, f) berechnet, wie durch den Ausdruck 616 in 6B gezeigt ist: d(t, f) = a – pp(t, f)
  • Ein Einsatzstärkenwert kann für jeden Innenpunkt eines Spektrogramms berechnet werden, um eine zweidimensionale Einsatzstärkenmatrix 618 zu erzeugen, wie in 6C gezeigt ist. Jeder Innenpunkt oder jede Innenzelle innerhalb des fett gezeichneten Rechtecks 620, das die Grenzen der zweidimensionalen Einsatzstärkenmatrix definiert, ist einem Einsatzstärkenwert d(t, f) zugeordnet. Das fett gezeichnete Rechteck ist vorgesehen, um zu zeigen, dass die zweidimensionale Einsatzstärkenmatrix, wenn sie über das Spektrogramm überlagert ist, aus dem sie berechnet wird, bestimmte Randzellen des Spektrogramms weglässt, für die d(t, f) nicht berechnet werden kann.
  • Während die zweidimensionale Einsatzstärkenskizze lokale Intensitätsänderungswerte umfasst, enthalten solche Skizzen allgemein ausreichend Rauschen und lokale Abweichung, dass es schwierig ist, ein Tempo zu erkennen. Daher werden bei einer zweiten Transformation Einsatzstärke/Zeit-Funktionen für diskrete Frequenzbänder berechnet. 7A–B stellen die Berechnung von Einsatzstärke/Zeit-Funktionen für einen Satz aus Frequenzbändern dar. Wie in 7A gezeigt ist, kann die zweidimensionale Einsatzstärkenmatrix 702 in eine Anzahl aus horizontalen Frequenzbändern 704707 partitio niert sein. Bei einem Ausführungsbeispiel der vorliegenden Erfindung werden vier Frequenzbänder verwendet:
    Frequenzband 1: 32,3 Hz bis 1076,6 Hz;
    Frequenzband 2: 1076,6 Hz bis 3229,8 Hz;
    Frequenzband 3: 3229,8 Hz bis 7536,2 Hz; und
    Frequenzband 4: 7536,2 Hz bis 13.995,8 Hz.
  • Die Einsatzstärkewerte in jeder der Zellen innerhalb der vertikalen Spalten der Frequenzbänder, wie z. B. der vertikalen Spalte 708 in dem Frequenzband 705, werden summiert, um einen Einsatzstärkewert D(t, b) für jeden Zeitpunkt t in jedem Frequenzband b zu erzeugen, wie durch den Ausdruck 710 in 7A beschrieben ist. Die Einsatzstärkewerte D(t, b) für jeden Wert von b werden separat gesammelt, um eine diskrete Einsatzstärke/Zeit-Funktion zu erzeugen, dargestellt als ein eindimensionales Array aus Werten D(t), für jedes Frequenzband, wobei eines Skizze 716 für eine derselben in 7B gezeigt ist. Die Einsatzstärke/Zeit-Funktionen für jedes der Frequenzbänder werden dann analysiert, in einem nachfolgend beschriebenen Prozess, um ein geschätztes Tempo für das Audiosignal zu erzeugen.
  • 8 ist ein Flusssteuerungsdiagramm, das ein Temposchätzungs-Verfahrensausführungsbeispiel der vorliegenden Erfindung darstellt. Bei einem ersten Schritt 802 empfängt das Verfahren elektronisch codierte Musik, wie z. B. eine .wav-Datei. Bei Schritt 804 erzeugt das Verfahren ein Spektrogramm für einen kurzen Abschnitt der elektronisch codierten Musik. Bei Schritt 806 transformiert das Verfahren das Spektrogramm in eine zweidimensionale Einsatzstärkematrix, die d(t, f)-Werte enthält, wie oben Bezug nehmend auf 6A–C erörtert wurde. Dann transformiert das Verfahren bei Schritt 808 die zweidimensionale Einsatzstärkematrix in einen Satz aus Einsatzstärke/Zeit-Funktionen für einen entsprechenden Satz aus Frequenzbändern, wie oben Bezug nehmend auf 7A–B erörtert wurde. Bei Schritt 810 bestimmt das Verfahren Zuverlässigkeiten für einen Bereich aus Zwischeneinsatzintervallen innerhalb des Satzes aus Einsatzstärke/Zeit-Funktionen, die bei Schritt 808 erzeugt werden, durch einen Prozess, der nachfolgend beschrieben wird. Abschließend wählt der Prozess bei Schritt 812 ein zuverlässigstes Zwischeneinsatzintervall aus, berechnet ein geschätztes Tempo basierend auf dem zuverlässigsten Zwischeneinsatzintervall und gibt das geschätzte Tempo zurück.
  • Ein Prozess zum Bestimmen von Zuverlässigkeiten für einen Bereich aus Zwischeneinsatzintervallen, dargestellt durch Schritt 810 in 8, wird nachfolgend als eine C++-artige Pseudocodeimplementierung beschrieben. Bevor jedoch die C++-artige Pseudocodeimplementierung einer Zuverlässigkeitsbestimmung und Geschätztes-Tempo-Berechnung erörtert wird, werden zuerst verschiedene Konzepte, die sich auf die Zuverlässigkeitsbestimmung beziehen, Bezug nehmend auf 913 beschrieben, um eine nachfolgende Erörterung der C++-artigen Pseudocodeimplementierung zu erleichtern.
  • 9A–D stellen das Konzept für Zwischeneinsatzintervalle und -Phasen dar. In 9A und 9B–D, die folgenden, ist ein Abschnitt einer Einsatzstärke/Zeit-Funktion für ein bestimmtes Frequenzband 902 angezeigt. Jede Säule in der Skizze der Einsatzstärke/Zeit-Funktion, wie z. B. die erste Säule 904, stellt einen Einsatzstärkewerte D(t, b) zu einer bestimmten Abtastzeit für ein bestimmtes Band dar. Ein Bereich aus Zwischen-Einsatz-Intervalllängen wird bei dem Prozess zum Schätzen eines Tempos berücksichtigt. In 9A werden kurze, vier Säulen breite Zwischeneinsatzintervalle 906912 betrachtet. In 9A umfasst jedes Zwischeneinsatzintervall vier Werte D(t, b) über ein Zeitintervall von 4Δt, wobei Δt gleich der Kurzzeitperiode ist, die einem Abtastpunkt entspricht. Es wird darauf hingewiesen, dass bei einer tatsächlichen Temposchätzung Zwischeneinsatzintervalle im Allgemeinen viel länger sind und eine Einsatzstärke/Zeit-Funktion mehrere Zehntausende oder eine größere Anzahl von D(t, b)- Werten enthalten kann. Die Darstellungen verwenden künstlich kleine Werte zum Zweck der Darstellungsklarheit.
  • Ein Wert D(t, b) in jedem Zwischeneinsatzintervall („IOI"; inter-onset interval) an derselben Position in jedem IOI kann als ein potentieller Einsatzpunkt betrachtet werden, oder als ein Punkt mit einem schnellen Anstieg der Intensität, der einen Takt- bzw. Schlag- oder Tempopunkt innerhalb der Musikauswahl anzeigen kann. Ein Bereich aus IOIs wird bewertet, um ein IOI mit der größten Regelmäßigkeit oder Zuverlässigkeit dahin gehend zu finden, dass es hohe D(t, b)-Werte an der ausgewählten Position D(t, b) innerhalb jedes Intervalls aufweist. Anders ausgedrückt, wenn die Zuverlässigkeit für einen zusammenhängenden Satz aus Intervallen fester Länge hoch ist, stellt das IOI üblicherweise einen Takt oder eine Frequenz innerhalb der Musikauswahl dar. Das zuverlässigste IOI, das durch Analysieren eines Satzes aus Einsatzstärke/Zeit-Funktionen für einen entsprechenden Satz aus Frequenzbändern bestimmt wird, bezieht sich im Allgemeinen auf das geschätzte Tempo. Somit betrachtet die Zuverlässigkeitsanalyse von Schritt 810 in 8 einen Bereich aus IOI-Längen von einer Minimal-IOI-Länge zu einer Maximal-IOI-Länge und bestimmt eine Zuverlässigkeit für jede IOI-Länge.
  • Für jede ausgewählte IOI-Länge muss eine Anzahl von Phasen gleich Eins weniger als die IOI-Länge betrachtet werden, um alle möglichen Einsätze oder Phasen des ausgewählten D(t, b)-Wertes innerhalb jedes Intervalls der ausgewählten Länge im Hinblick auf den Ursprung der Einsatzstärke/Zeit-Funktion zu bewerten. Wenn die erste Säule 904 in 9A die Zeit t0 darstellt, dann können die Intervalle 906912, die in 9 gezeigt sind, derart betrachtet werden, dass sie 4Δt Intervalle darstellen oder vier Spalten breite IOIs mit einer Phase von Null. In den 9B–D ist der Anfang der Intervalle durch sukzessive Positionen entlang der Zeitachse versetzt, um sukzessive Phasen von Δt, 2Δt bzw. 3Δt zu erzeugen. Somit kann man durch Bewerten aller möglichen Phasen oder Startpunkte relativ zu t0 für einen Bereich möglicher IOI-Längen erschöpfend nach zuverlässig auftretenden Takten (Beats) in der Musikauswahl gesucht werden. 10 stellt den Zustandsraum für die Suche dar, gezeigt durch Schritt 810 in 8. In 10 ist die IOI-Länge entlang einer horizontalen Achse 1002 aufgetragen und die Phase ist entlang einer vertikalen Achse 1004 aufgetragen, wobei sowohl die IOI-Länge als auch die Phase in Inkrementen von Δt aufgetragen sind und die Zeitperiode durch jeden Abtastpunkt dargestellt ist. Wie in 10 gezeigt ist, werden alle Intervallgrößen zwischen einer minimalen Intervallgröße 1006 und einer maximalen Intervallgröße 1008 betrachtet, und für jede IOI-Länge werden alle Phasen zwischen Null und Eins weniger als die IOI-Länge betrachtet. Daher ist der Zustandsraum der Suche durch den schraffierten Bereich 1010 dargestellt.
  • Wie oben erörtert wurde, wird ein bestimmter Wert D(t, b) innerhalb jedes IOI an einer bestimmten Position innerhalb jedes IOI zum Bewerten der Zuverlässigkeit des IOI ausgewählt. Anstatt jedoch den D(t, b)-Wert genau an der bestimmten Position auszuwählen, werden D(t, b)-Werte innerhalb einer Nachbarschaft der Position berücksichtigt, und der Wert D(t, b) in der Nachbarschaft der bestimmten Position, die die bestimmte Position umfasst, mit dem Maximalwert wird als der Wert D(t, b) für das IOI ausgewählt. 11 stellt die Auswahl eines Spitzenwerts D(t, b) innerhalb einer Nachbarschaft von Werten D(t, b) gemäß Ausführungsbeispielen der vorliegenden Erfindung dar. In 11 ist der Endwert D(t, b) in jedem IOI, wie z. B. der D(t, b)-Wert 1102, der Anfangskandidaten-D(t, b)-Wert, der ein IOI darstellt. Eine Nachbarschaft R 1104 um den Kandidaten-D(t, b)-Wert wird berücksichtigt, und der Maximal-D(t, b)-Wert innerhalb der Nachbarschaft, in dem in 11 gezeigten Fall der D(t, b)-Wert 1106, wird als der repräsentative D(t, b)-Wert für das IOI ausgewählt.
  • Wie oben erörtert wurde, wird die Zuverlässigkeit für eine bestimmte IOI-Länge für eine bestimmte Phase als die Regelmäßigkeit berechnet, bei der ein hoher D(t, b)-Wert an dem selektiven, repräsentativen D(t, b)-Wert für jedes IOI in einer Einsatzstärke/Zeit-Funktion auftritt. Die Zuverlässigkeit wird berechnet durch sukzessives Berücksichtigen der repräsentativen D(t, b)-Werte der IOIs entlang der Zeitachse. 12 stellt einen Schritt bei dem Prozess des Berechnens der Zuverlässigkeit dar, durch sukzessives Berücksichtigen repräsentativer D(t, b)-Werte von Zwischeneinsatzintervallen entlang der Zeitachse. In 12 wurde ein bestimmter, repräsentativer D(t, b)-Wert 1202 für ein IOI 1204 erreicht. Der nächste repräsentative D(t, b)-Wert 1206 für das nächste IOI 1208 ist gefunden und eine Bestimmung wird darüber getroffen, ob der nächste repräsentative D(t, b)-Wert größer ist als ein Schwellenwert, wie durch den Ausdruck 1210 in 12 angezeigt wird. Wenn ja, wird eine Zuverlässigkeitsmetrik für die IOI-Länge und -Phase inkrementiert, um anzuzeigen, dass ein relativ hoher D(t, b)-Wert in dem nächsten IOI relativ zu dem aktuell betrachteten IOI 1204 gefunden wurde.
  • Während die Zuverlässigkeit, wie sie durch das oben auf 12 Bezug nehmende Verfahren bestimmt wurde, ein Faktor beim Bestimmen eines geschätzten Tempos ist, werden Zuverlässigkeiten für bestimmte IOIs weggelassen, wenn Tempos höherer Ordnung innerhalb eines IOI gefunden werden. 13 stellt das Weglassen oder Bestrafen eines aktuell betrachteten Zwischeneinsatzintervalls basierend auf der Identifikation einer potentiellen Frequenz oder eines Tempos höherer Ordnung in dem Zwischeneinsatzintervall dar. In 13 wird aktuell das IOI 1302 betrachtet. Wie oben erörtert wurde, wird die Größe des D(t, b)-Werts 1304 an der Endposition innerhalb des IOI betrachtet, wenn die Zuverlässigkeit im Hinblick auf den Kandidaten-D(t, b)-Wert 1306 in dem vorangehenden IOI 1308 bestimmt wird. Wenn jedoch wesentliche D(t, b)-Werte bei Harmonischen höherer Ordnung der Frequenz erfasst werden, die durch das IOI dargestellt ist, wie z. B. bei D(t, b)-Werten 13101312, dann kann das aktuell betrachtete IOI bestraft werden. Die Erfassung von harmonischen Frequenzen höherer Ordnung über eine große Anzahl der IOIs während einer Bewertung einer bestimmten IOI-Länge zeigt an, dass ein schnelleres harmonisches Tempo höherer Ordnung in der musikalischen Auswahl vorliegen kann, was das Tempo besser schätzen kann. Somit, wie nachfolgend detaillierter erörtert wird, werden berechnete Zuverlässigkeiten durch Bestrafungen (Penalties) versetzt, wenn harmonische Frequenzen höherer Ordnung erfasst werden.
  • Die nachfolgende, C++-artige Pseudocodeimplementierung der Schritte 810 und 812 in 8 ist gegeben, um ein mögliches Verfahrensausführungsbeispiel der vorliegenden Erfindung zum Schätzen des Tempos aus einem Satz aus Einsatzstärke/Zeit-Funktionen für einen entsprechenden Satz aus Frequenzbändern, hergeleitet aus einer zweidimensionalen Einsatzstärkematrix, detailliert darzustellen.
  • Zuerst wird eine Anzahl von Konstanten angegeben:
    Figure 00180001
    Figure 00190001
  • Diese Konstanten umfassen: (1) maxT, angegeben oben in Zeile 1, die den maximalen Zeitabtastwert oder Zeitindex entlang der Zeitachse darstellt, für Einsatzstärke/Zeit-Funktionen; (2) tDelta, oben angegeben in Zeile 2, die einen numerischen Wert für die Zeitperiode enthält, die durch jeden Abtastwert dargestellt ist; (3) Fs, oben angegeben in Zeile 3, die die Abtastwerte darstellt, die pro Sekunde gesammelt werden; (4) maxBands, angegeben in Zeile 4, die die maximale Anzahl von Frequenzbändern darstellt, in die die anfängliche zweidimensionale Einsatzstärkematrix partitioniert werden kann; (5) numFractionalOnsets, oben angegeben in Zeile 5, die die Anzahl von Positionen darstellt, die harmonischen Frequenzen höherer Ordnung innerhalb jedes IOI entsprechen, die bewertet werden können, um eine Bestrafung für das IOI während der Zuverlässigkeitsbestimmung zu bestimmen; (6) fractionalOnsets, oben angegeben in Zeile 6, ein Array, das den Bruchteil eines IOI enthält, an dem jeder der Teil-Einsätze, der während der Bestrafungsberechnung berücksichtigt wird, innerhalb des IOI angeordnet ist; (7) fractionalCoefficients, oben angegeben in Zeile 7, ein Array aus Koeffizienten, mit denen D(t, b)-Werte, die an den betrachteten Teil-Einsätzen innerhalb eines IOI auftreten, während der Berechnung der Bestrafung für das IOI multipliziert werden; (8) Penalty, oben angegeben in Zeile 8, ein Wert, der von der geschätzten Zuverlässigkeit abgezogen wird, wenn der repräsentative D(t, b)-Wert für ein IOI unter einen Schwellenwert fällt; und (9) g, oben angegeben in Zeile 9, ein Array aus Gewinnwerten, mit denen Zuverlässigkeiten für jedes der betrachteten IOIs in jedem der Frequenzbänder multipliziert werden, um Zuverlässigkeiten für IOIs in bestimmten Frequenzbändern höher zu gewichten als entsprechende Zuverlässigkeiten in anderen Frequenzbändern.
  • Als Nächstes werden zwei Klassen angegeben. Zuerst wird nachfolgend die Klasse „OnsetStrength" (Einsatzstärke) angegeben:
    Figure 00200001
  • Die Klasse „OnsetStrength" stellt eine Einsatzstärke/Zeit-Funktion dar, die einem Frequenzband entspricht, wie oben Bezug nehmend auf 7A–B erörtert wurde. Eine volle Vereinbarung für diese Klasse ist nicht vorgesehen, da sie nur verwendet wird, um D(t, b)-Werte zur Berechnung von Zuverlässigkeiten zu extrahieren. Private Datenelemente umfassen: (1) D t, angegeben oben in Zeile 4, ein Array, das D(t, b)-Werte enthält; (2) sz, oben angegeben in Zeile 5, die Größe von oder Anzahl von D(t, b)-Werten in der Einsatzstärke/Zeit-Funktion; (3) minF, oben angegeben in Zeile 6, die Minimalfrequenz in dem Frequenzband, dargestellt durch eine Instanz der Klasse „OnsetStrength"; und (4) maxF, die Maximalfrequenz, dargestellt durch eine Instanz der Klasse „OnsetStrength". Die Klasse „OnsetStrength" umfasst vier Öffentliche-Funktion-Elemente: (1) den Operator [], oben angegeben in Zeile 10, der den D(t, b)-Wert extrahiert, der einem spezifizierten Index oder einer Abtastwertzahl entspricht, so dass die Instanz der Klasse OnsetStrength als ein eindimensionales Array funkti oniert; (2) drei Funktionen getSize (Größe erhalten), getMaxF (max. Frequenz erhalten) und getMinF (min. Frequenz erhalten), die aktuelle Werte der privaten Datenelemente sz, minF bzw. maxF ausgeben; und (3) einen Konstruktor.
  • Als Nächstes wird die Klasse „TempoEstimator" (Temposchätzer) angegeben:
    Figure 00210001
  • Die Klasse „TempoEstimator" umfasst die folgenden privaten Datenbauglieder: (1) D, oben angegeben in Zeile 4, ein Array aus Instanzen der Klasse „OnsetStrength", das Einsatzstärke/Zeit-Funktionen für einen Satz aus Frequenzbändern darstellt; (2) numBands, oben angegeben in Zeile 5, das die Anzahl von Frequenzbändern und Einsatzstärke/Zeit-Funktionen speichert, die gegenwärtig Funktionen speichert, die gegenwärtig berücksichtigt werden; (3) maxIOI und minIOI, oben angegeben in Zeile 6–7, die maximale IOI-Länge und minimale IOI-Länge, die bei der Zuverlässigkeitsanalyse betrachtet werden soll, entsprechend den Punkten 1008 bzw. 1006 in 10; (4) thresholds, angegeben in Zeile 8, ein Array aus berechneten Schwellen (thresholds), mit denen entsprechende D(t, b)-Werte während der Zuverlässigkeitsanalyse verglichen werden; (5) fractionalTs, angegeben in Zeile 9, die Versätze, in Δt, vom Anfang eines IOI, entsprechend den Bruchteil-Einsätzen, die während der Berechnung einer Bestrafung für das IOI betrachtet werden sollen, basierend auf dem Vorhandensein von Frequenzen höherer Ordnung innerhalb eines gegenwärtig betrachteten IOI; (6) reliabilities (Zuverlässigkeiten), angegeben in Zeile 10, ein zweidimensionales Array, das die berechneten Zuverlässigkeiten für jede IOI-Länge in jedem Frequenzband speichert; (7) finalReliability (letzte Zuverlässigkeit), angegeben in Zeile 11, ein Array, das die End-Zuverlässigkeiten speichert, die durch Summieren der Zuverlässigkeiten berechnet werden, die für jede IOI-Länge in einem Bereich aus IOIs für jedes der Frequenzbänder bestimmt werden; und (8) penalties (Bestrafungen), angegeben in Zeile 12, ein Array, das Bestrafungen speichert, die während der Zuverlässigkeitsanalyse berechnet werden. Die Klasse „TempoEstimator" umfasst die folgenden Private-Funktion-Elemente: (1) findPeak, angegeben in Zeile 14, das den Zeitpunkt der maximalen Spitze in einer Nachbarschaft R identifiziert, wie oben Bezug nehmend auf 11 erörtert wurde; (2) computeThresholds, angegeben in Zeile 15, das Schwellenwerte berechnet, die in dem privaten Datenelement thresholds gespeichert sind; (3) computeFractionalTs, angegeben in Zeile 16, das die Versätze berechnet, bezüglich Zeit, vom Anfang der IOIs einer bestimmten Länge, entsprechend harmonischen Frequenzen höherer Ordnung, die zum Berechnen von Bestrafungen betrachtet werden; (4) nxtReliabilityAndPenalty, angegeben in Zeile 17, das einen nächsten Zuverlässigkeits- und Bestrafungswert für eine bestimmte IOI-Länge, -Phase und -Band berechnet. Die Klasse „TempoEstimator" umfasst die nachfolgenden Öffentliche-Funktion-Elemente: (1) setD, oben angegeben in Zeile 22, das ermöglicht, dass eine Anzahl aus Einsatzstärke/Zeit-Funktionen in eine Instanz der Klasse „TempoEstimator" geladen wird; (2) setMax und setMin, oben angegeben in Zeile 23–24, die ermöglichen, dass die maximale und minimale IOI-Länge, die den Bereich aus IOIs definieren, der bei der Zuverlässigkeitsanalyse betrachtet wird, eingestellt wird; (3) estimateTempo, das das Tempo schätzt, basierend auf den Einsatzstärke/Zeit-Funktionen, die in dem privaten Datenelement D gespeichert sind; und (4) einen Konstruktor.
  • Als Nächstes werden Implementierungen für verschiedene Funktionselemente der Klasse „TempoEstimator" gegeben. Zuerst wird eine Implementierung des Funktionselements „findPeak" (finde Spitze) gegeben:
    Figure 00230001
    Figure 00240001
  • Das Funktionsbauglied „findPeak" empfängt einen Zeitwert und eine Nachbarschaftsgröße als die Parameter t und R sowie eine Referenz auf eine Einsatzstärke/Zeit-Funktion dt, in der die maximale Spitze innerhalb einer Nachbarschaft um einen Zeitpunkt t zu finden ist, wie oben Bezug nehmend auf 11 erörtert wurde. Das Funktionselement „findPeak" berechnet eine Start- und End-Zeit, die den Horizontale-Achse-Punkten entspricht, die die Nachbarschaft begrenzen, in Zeile 9–10, und untersucht dann in der for-Schleife von Zeile 12–19 jeden D(t, b)-Wert innerhalb dieser Nachbarschaft, um einen maximalen D(t, b)-Wert zu bestimmen. Der Index oder Zeitwert, der dem maximalen D(t, b) entspricht, wird in Zeile 20 zurückgegeben.
  • Als Nächstes wird eine Implementierung des Funktionselements „computeThresholds" (Schwelle berechnen) gegeben:
    Figure 00240002
  • Diese Funktion berechnet den durchschnittlichen D(t, b)-Wert für jede Einsatzstärke/Zeit-Funktion und speichert den durchschnittlichen D(t, b)-Wert als Schwellenwert für jede Einsatzstärke/Zeit-Funktion.
  • Als nächstes wird eine Implementierung des Funktionselements "nxtReliabilityAndPenalty" (nächste Zuverlässigkeit und Bestrafung) gegeben:
    Figure 00250001
    Figure 00260001
  • Das Funktionsbauglied „nxtReliabilityAndPenalty" berechnet eine Zuverlässigkeit und Bestrafung für eine spezifizierte IOI-Größe oder -Länge, eine spezifizierte Phase und ein spezifiziertes Frequenzband. Anders ausgedrückt wird diese Routine aufgerufen, um jeden Wert in dem zweidimensionalen privaten Datenelement reliabilities zu berechnen. Die lokalen Variablen valid (gültig) und peak (Spitze), angegeben in Zeile 6–7, werden verwendet, um Zählwerte von IOIs über der Schwelle und Gesamt-IOIs zu akkumulieren, wenn die Einsatzstärke/Zeit-Funktion analysiert wird, um eine Zuverlässigkeit und Bestrafung für die spezifizierte IOI-Größe, -Phase, und das spezifizierte Frequenzband zu berechnen. Die lokale Variable t, angegeben in Zeile 8, ist auf die spezifizierte Phase eingestellt. Die lokale Variable R, angegeben in Zeile 10, ist die Länge der Nachbarschaft, aus der ein repräsentativer D(t, b)-Wert ausgewählt werden soll, wie oben Bezug nehmend auf 11 erörtert wurde.
  • In der while-Schleife der Zeilen 19–38 werden aufeinanderfolgende Gruppen von angrenzenden D(t, b)-Werten der Länge IOI betrachtet. Anders ausgedrückt kann jede Iteration der Schleife betrachtet werden, um ein nächstes IOI entlang der Zeitachse einer aufgetragenen Einsatzstärke/Zeit-Funktion zu analysieren. In Zeile 21 wird der Index des repräsentativen D(t, b)-Werts des nächsten IOI berech net. Die lokale Variable peak wird inkrementiert, in Zeile 22, um anzuzeigen, dass ein weiteres IOI betrachtet wurde. Wenn die Größe des repräsentativen D(t, b)-Werts für das nächste IOI über dem Schwellenwert ist, wie in Zeile 23 bestimmt ist, dann wird die lokale Variable valid inkrementiert, in Zeile 25, um anzuzeigen, dass ein anderer gültiger repräsentativer D(t, b)-Wert erfasst wurde, und dieser D(t, b)-Wert wird zu der lokalen Variablen reliability hinzugefügt, in Zeile 26. Wenn der repräsentative D(t, b)-Wert für das nächste IOI nicht größer ist als der Schwellenwert, dann wird die lokale Variable reliability um den Wert Penalty dekrementiert. Dann, in der for-Schleife der Zeilen 30–35, wird eine Bestrafung basierend auf der Erfassung von Takten (Beats) höherer Ordnung innerhalb des aktuell betrachteten IOI berechnet. Die Bestrafung wird als ein Koeffizient berechnet, mal die D(t, b)-Werte der verschiedenen harmonischen Zwischen-Ordnung-Spitzen innerhalb des IOI, spezifiziert durch die Konstante numFractionalOnsets und das Array FractionalTs. Schließlich wird in Zeile 37 t um die spezifizierte IOI-Länge inkrementiert, IOI, um das nächste IOI zu indexieren, um sich für eine nachfolgende Iteration der while-Schleife der Zeilen 19–38 vorzubereiten. Sowohl die kumulative Zuverlässigkeit als auch Bestrafung für die IOI-Länge, -Phase und das -Band werden durch die Quadratwurzel des Produkts der Inhalte der lokalen Variablen valid und peak normiert, in Zeile 39–41. Bei alternativen Ausführungsbeispielen kann nextT um IOI inkrementiert werden, in Zeile 37, und die nächste Spitze, die gefunden wird durch Aufrufen von findPeak(D[band], nextT + IOI, R) in Zeile 21.
  • Als Nächstes wird eine Implementierung für das Funktionselement „computeFractionalTs" gegeben:
    Figure 00270001
    Figure 00280001
  • Dieses Funktionsbauglied berechnet einfach die Versätze im Hinblick auf Zeit vom Anfang eines IOI einer spezifizierten Länge basierend auf den Bruchteil-Einsätzen, die in dem konstanten Array „fractionalOnsets" gespeichert sind.
  • Schließlich wird eine Implementierung für das Funktionselement „EstimateTempo" (Tempo schätzen) gegeben:
    Figure 00280002
    Figure 00290001
    Figure 00300001
  • Das Funktionsbauglied „EstimateTempo" umfasst lokale Variablen: (1) band, angegeben in Zeile 3, eine Iterationsvariable, die das aktuelle Frequenzband oder die Einsatzstärke/Zeit-Funktion spezifiziert, die betrachtet werden sollen; (2) IOI, angegeben in Zeile 4, die aktuell betrachtete IOI-Länge; (3) IOI2, angegeben in Zeile 5, eine Hälfte der gegenwärtig betrachteten IOI-Länge; (4) Phase, angegeben in Zeile 6, die aktuell betrachtete Phase für die aktuell betrachtete IOI-Länge; (5) reliability, angegeben in Zeile 7, die Zuverlässigkeit, die für ein aktuell betrachtetes Band, eine IOI-Länge und eine Phase berechnet wird; (6) Penalty, die Bestrafung, die für das aktuell betrachtete Band, die IOI-Länge und die Phase berechnet wird; (7) estimate und e, angegeben in Zeile 9–10, die zum Berechnen eines Endtemposchätzwerts verwendet werden.
  • Zuerst wird in Zeile 12 eine Prüfung durchgeführt, um zu sehen, ob ein Satz aus Einsatzstärke/Zeit-Funktionen in die aktuelle Instanz der Klasse „TempoEstimator" eingegeben wurde. Als zweites werden in den Zeilen 13–21 die ver schiedenen lokalen und privaten Datenelemente, die bei der Temposchätzung verwendet werden, initialisiert. Dann werden in Zeile 22 Schwellen für die Zuverlässigkeitsanalyse berechnet. In der for-Schleife der Zeilen 24–41 wird eine Zuverlässigkeit und eine Bestrafung für jede Phase jeder betrachteten IOI-Länge für jedes Frequenzband berechnet. Die größte Zuverlässigkeit und entsprechende Bestrafung, die über alle Phasen für eine aktuell betrachtete IOI-Länge und ein aktuell betrachtetes Frequenzband berechnet wird, wird bestimmt und gespeichert, in Zeile 39, als die Zuverlässigkeit, die für die aktuell betrachtete IOI-Länge und das Frequenzband gefunden wird. Als Nächstes werden in der for-Schleife der Zeilen 43–56 Endzuverlässigkeiten für jede IOI-Länge berechnet, durch Summieren der Zuverlässigkeiten für die IOI-Länge über die Frequenzbänder, wobei jeder Ausdruck mit einem Gewinnfaktor multipliziert wird, der in dem konstanten Array „g" gespeichert ist, um bestimmte Frequenzbänder mehr zu gewichten als andere Frequenzbänder. Wenn eine Zuverlässigkeit, die einem IOI der Hälfte der Länge des aktuell betrachteten IOI entspricht, verfügbar ist, wird die Zuverlässigkeit für das IOI halber Länge mit der Zuverlässigkeit für das aktuell betrachtete IOI bei dieser Berechnung summiert, da es sich empirisch herausgestellt hat, dass ein Schätzwert der Zuverlässigkeit für ein bestimmtes IOI von einem Schätzwert der Zuverlässigkeit eines IOI der Hälfte der Länge der bestimmten IOI-Länge abhängen kann. Die berechneten Zuverlässigkeiten für Zeitpunkte sind in dem Datenelement finalReliability (Endzuverlässigkeit) gespeichert, in Zeile 55. Schließlich findet sich in der for-Schleife der Zeilen 59–66 die insgesamt größte berechnete Zuverlässigkeit für jegliche IOI-Länge durch Durchsuchen des Datenbauglieds finalReliability. Die insgesamt größte berechnete Zuverlässigkeit für jegliche IOI-Länge wird verwendet, in den Zeilen 68–71, um ein geschätztes Tempo in Taktschlägen pro Minute zu berechnen, das in Zeile 71 ausgegeben wird.
  • Obwohl die vorliegende Erfindung im Hinblick auf bestimmte Ausführungsbeispiele beschrieben wurde, ist es nicht beabsichtigt, dass die Erfindung auf diese Ausführungsbeispiele beschränkt wird. Modifikationen innerhalb des Wesens der Erfindung sind für Fachleute auf dem Gebiet offensichtlich. Zum Beispiel kann eine praktisch endlose Anzahl von alternativen Ausführungsbeispielen der vorliegenden Erfindung unter Verwendung unterschiedlicher modularer Anordnungen, Datenstrukturen, Programmiersprachen, Steuerstrukturen und durch Variieren anderer Programmierungs- und Software-Engineering-Parameter erdacht werden. Eine große Vielzahl unterschiedlicher empirischer Werte und Techniken, die bei der oben beschriebenen Implementierung verwendet werden, kann variiert werden, um eine optimale Temposchätzung in einer Vielzahl von unterschiedlichen Umständen für unterschiedliche Arten von Musikauswahlen zu erreichen. Zum Beispiel können unterschiedliche Bruchteil-Einsatz-Koeffizienten (fractional onset coefficient) und Zahlen von Bruchteil-Einsätzen zum Bestimmen von Bestrafungen berücksichtigt werden, basierend auf dem Vorhandensein von harmonischen Frequenzen höherer Ordnung. Spektrogramme, die durch jede einer großen Vielzahl von Techniken unter Verwendung unterschiedlicher Parameter erzeugt werden, die die Techniken kennzeichnen, können eingesetzt werden. Die genauen Werte, um die Zuverlässigkeiten inkrementiert, dekrementiert werden und durch die Bestrafungen während der Analyse berechnet werden, können variiert werden. Die Länge des Abschnitts einer Musikauswahl, die abgetastet wird, um das Spektrogramm zu erzeugen, kann variieren. Einsatzstärken können durch alternative Verfahren berechnet werden und jegliche Anzahl von Frequenzbändern kann als die Basis zum Berechnen der Anzahl von Einsatzstärke/Zeit-Funktionen verwendet werden.
  • Die vorangehende Beschreibung verwendet zu Zwecken der Erklärung eine spezifische Nomenklatur, um ein tiefgreifendes Verständnis der Erfindung zu geben. Ein Fachmann auf dem Gebiet wird jedoch erkennen, dass die spezifischen Details nicht erforderlich sind, um die Erfindung auszuführen. Die vorangehenden Beschreibungen von spezifischen Ausführungsbeispielen der vorliegenden Erfindung werden zum Zweck der Darstellung und Beschreibung gegeben. Sie sollen nicht erschöpfend sein oder die Erfindung auf die genauen offenbarten Formen einschränken. Offensichtlich sind viele Modifikationen und Variationen im Hinblick auf die obigen Lehren möglich. Die Ausführungsbeispiele sind gezeigt und beschrieben, um die Prinzipien der Erfindung und ihre praktische Anwendung bestmöglich zu erklären, um es dadurch anderen Fachleuten auf dem Gebiet zu ermöglichen, die Erfindung und verschiedene Ausführungsbeispiele mit verschiedenen Modifikationen bestmöglich zu verwenden, wie sie für die bestimmte vorgesehene Verwendung geeignet sind. Es wird darauf hingewiesen, dass der Schutzbereich der Erfindung durch die nachfolgenden Ansprüche und ihre Entsprechungen definiert ist:
  • Zusammenfassung der Offenbarung
  • Verschiedene Verfahrens- und System-Ausführungsbeispiele der vorliegenden Erfindung richten sich auf eine rechentechnische Schätzung eines Tempos für eine digital codierte Musikauswahl. Bei bestimmten Ausführungsbeispielen der vorliegenden Erfindung, wie nachfolgend beschrieben, wird ein kurzer Teil einer Musikauswahl analysiert, um das Tempo der Musikauswahl zu bestimmen. Der digital codierte Musikauswahlabtastwert wird rechentechnisch umgewandelt, um ein Leistungsspektrum zu erzeugen, das dem Abtastwert entspricht, das wiederum umgewandelt wird, um eine zweidimensionale Einsatzstärkematrix (618) zu erzeugen. Die zweidimensionale Einsatzstärkematrix wird dann in einen Satz aus Einsatzstärke/Zeit-Funktionen (716) für jedes aus einem entsprechenden Satz aus Frequenzbändern (704707) umgewandelt. Die Einsatzstärke/Zeit-Funktionen werden dann analysiert, um das zuverlässigste Einsatzintervall (808, 8100) zu finden, das in ein geschätztes Tempo umgewandelt wird, das durch die Analyse (812) ausgegeben wird.

Claims (10)

  1. Ein Verfahren zum rechentechnischen Schätzen des Tempos einer Musikauswahl (8), wobei das Verfahren folgende Schritte aufweist: Auswählen eines Teils der Musikauswahl; Berechnen (804) eines Spektrogramms (502) für den ausgewählten Teil der Musikauswahl; Umwandeln (806) des Spektrogramms in einen Satz aus Einsatzstärke/Zeit-Funktionen (716) für einen entsprechenden Satz aus Frequenzbändern (704707); Analysieren des Satzes aus Einsatzstärke/Zeit-Funktionen, um eine zuverlässigste Zwischen-Einsatz-Intervalllänge (808, 8100) zu bestimmen, durch Analysieren möglicher Phasen jeder Zwischen-Einsatz-Intervalllänge (906912) in einem Bereich aus Zwischen-Einsatz-Intervalllängen, was die Analyse von Harmonischen höherer Frequenz umfasst, die jeder Zwischen-Einsatz-Intervalllänge entsprechen; und Berechnen einer Temposchätzung aus der zuverlässigsten Zwischen-Einsatz-Intervalllänge (812).
  2. Das Verfahren gemäß Anspruch 1, bei dem das Umwandeln des Spektrogramms (502) in einen Satz aus Einsatzstärke/Zeit-Funktionen (716) für einen entsprechenden Satz aus Frequenzbändern (704707) ferner folgenden Schritt aufweist: Umwandeln des Spektrogramms (502) in eine zweidimensionale Einsatzstärkematrix (618); Auswählen eines Satzes aus Frequenzbändern; und für jedes Frequenzband Berechnen einer Einsatzstärke/Zeit-Funktion.
  3. Das Verfahren gemäß Anspruch 2, bei dem das Umwandeln des Spektrogramms (502) in eine zweidimensionale Einsatzstärkematrix (618) ferner folgende Schritte aufweist: für jeden Innen-Punkt-Wert p(t, f), der durch eine Abtast-Zeit t und -Frequenz f in dem Spektrogramm indexiert ist, Berechnen eines Einsatzstärkewerts d(t, f) für die Abtast-Zeit t und -Frequenz f, und Integrieren des berechneten Einsatzstärkewerts d(t, f) in die zweidimensionale Einsatzstärkematrixzelle, mit den Indizes t und f; wobei der Einsatzstärkewert d(t, f) für den entsprechenden Spektrogramm-Innen-Punkt-Wert p(t, f) berechnet wird als d(t, f) = max(p(t, f), np(t – f)) – pp(t, f)wobei np(t, f) = p(t + 1, f)wobei das Auswählen eines Satzes aus Frequenzbändern (704707) ferner das Partitionieren eines Bereichs aus Frequenzen umfasst, die in dem Spektrogramm umfasst sind, in eine Anzahl von Frequenzbändern; und wobei das Berechnen einer Einsatzstärke/Zeit-Funktion für ein Frequenzband b ferner folgendes umfasst für jede Abtastzeit ti, das Berechnen eines Einsatzstärkewerts D(ti, b) durch Summieren des Einsatzstärkewerts d(t, f) in der zweidimensionalen Einsatzstärkematrix (618), für die t = ti und f in dem Bereich von Frequenzen ist, die dem Frequenzband b zugeordnet sind.
  4. Das Verfahren gemäß Anspruch 1, bei dem das Analysieren des Satzes aus Einsatzstärke/Zeit-Funktionen (716), um eine zuverlässigste Zwischen-Einsatz-Intervalllänge (906912) zu bestimmen, durch Analysieren möglicher Phasen von jeder Zwischen-Einsatz-Intervalllänge in einem Bereich von Zwischen-Einsatz-Intervalllängen, was die Analyse von Harmonischen höherer Frequenz von jeder Zwischen-Einsatz-Intervalllänge umfasst, ferner folgende Schritte aufweist: für jede Einsatzstärke/Zeit-Funktion, die einem Frequenzband b entspricht, Berechnen einer Zuverlässigkeit für jede mögliche Phase für jede Zwischeneinsatzlänge innerhalb des Bereichs aus Zwischen-Einsatz-Intervalllängen, Summieren der Zuverlässigkeiten, die für jede Zwischen-Einsatz-Intervalllänge berechnet werden, über die Frequenzbänder (704707), um endgültige berechnete Zuverlässigkeiten für jede Zwischen-Einsatz-Intervalllänge zu erzeugen, und Auswählen einer endgültigen, zuverlässigsten Zwischen-Einsatz-Intervalllänge als die Zwischen- Einsatz-Intervalllänge mit der größten endgültigen berechneten Zuverlässigkeit; und wobei das Berechnen einer Temposchätzung aus der zuverlässigsten Zwischen-Einsatz-Intervalllänge ferner das Berechnen eines Tempos aufweist, in Schlägen pro Minute, aus der zuverlässigsten Zwischen-Einsatz-Intervalllänge, in Einheiten aus Abtastpunkten, unter Verwendung einer festen Anzahl von Abtastpunkten, gesammelt pro feste Zeitperiode, um das Spektrogramm (502) zu erzeugen, und unter Verwendung eines Zeitintervalls, das durch jeden Abtastpunkt dargestellt ist.
  5. Das Verfahren gemäß Anspruch 4, bei dem das Berechnen einer Zuverlässigkeit für eine Zwischeneinsatzlänge (906912) mit einer bestimmten Phase ferner folgende Schritte aufweist: Initialisieren einer Zuverlässigkeitsvariable und einer Bestrafungsvariable für die Zwischeneinsatzlänge; beginnend mit einer Abtastzeit, versetzt von dem Ursprung einer Einsatzstärke/Zeit-Funktion (716) um die Phase, und weiter, bis alle Zwischen-Einsatz-Intervalllängen von Abtastpunkten innerhalb der Einsatzstärke/Zeit-Funktion betrachtet wurden Auswählen einer nächsten, aktuell betrachteten Zwischen-Einsatz-Intervalllänge aus Abtastpunkten, Auswählen eines repräsentativen D(t, b)-Werts aus der Einsatzstärke/Zeit-Funktion für die ausgewählte nächste Zwischen-Einsatz-Intervalllänge von Abtastpunkten, wenn der ausgewählte repräsentative D(t, b)-Wert größer ist als ein Schwellenwert, Inkrementieren der Zuverlässigkeitsvariable um einen Wert, wenn eine potentielle Schwebungsfrequenz höherer Ordnung innerhalb der aktuell betrachteten Zwischen-Einsatz-Intervalllänge aus Abtastpunkten erfasst wird: Inkrementieren der Bestrafungsvariable um einen Wert, und wenn der ausgewählte repräsentative D(t, b)-Wert größer ist als ein Schwellenwert; und Berechnen einer Zuverlässigkeit für die Zwischeneinsatzlänge aus den Werten in der Zuverlässigkeitsvariable und der Bestrafungsvariable.
  6. Ein Temposchätzungssystem, das folgende Merkmale aufweist: ein Computersystem, das ein digital codiertes Audiosignal empfangen kann; und ein Softwareprogramm, das ein Tempo für das digital codierte Audiosignal schätzt, durch: Auswählen eines Teils der Musikauswahl; Berechnen (804) eines Spektrogramms (502) für den ausgewählten Teil der Musikauswahl; Umwandeln (806) des Spektrogramms in einen Satz aus Einsatzstärke/Zeit-Funktionen (716) für einen entsprechenden Satz aus Frequenzbändern (704707); Analysieren des Satzes aus Einsatzstärke/Zeit-Funktionen, um eine zuverlässigste Zwischen- Einsatz-Intervalllänge (808, 8100, 906912) zu bestimmen, durch Analysieren möglicher Phasen jeder Zwischen-Einsatz-Intervalllänge (906912) in einem Bereich aus Zwischen-Einsatz-Intervalllängen, was die Analyse von Harmonischen höherer Frequenz umfasst, die jeder Zwischen-Einsatz-Intervalllänge entsprechen; und Berechnen einer Temposchätzung aus der zuverlässigsten Zwischen-Einsatz-Intervalllänge (812).
  7. Das Temposchätzungssystem gemäß Anspruch 6, bei dem das Umwandeln des Spektrogramms (502) in einen Satz aus Einsatzstärke/Zeit-Funktionen (716) für einen entsprechenden Satz aus Frequenzbändern (704707) ferner folgende Schritte aufweist: Umwandeln des Spektrogramms (502) in eine zweidimensionale Einsatzstärkematrix (618); Auswählen eines Satzes aus Frequenzbändern; und für jedes Frequenzband Berechnen einer Einsatzstärke/Zeit-Funktion.
  8. Das Temposchätzungssystem gemäß Anspruch 7, bei dem das Umwandeln des Spektrogramms (502) in eine zweidimensionale Einsatzstärkematrix (618) ferner folgende Schritte aufweist: für jeden Innen-Punkt-Wert p(t, f), der durch eine Abtast-Zeit t und -Frequenz f in dem Spektrogramm indexiert ist, Berechnen eines Einsatzstärkewerts d(t, f) für die Abtast-Zeit t und -Frequenz f, und Integrieren des berechneten Einsatzstärkewerts d(t, f) in die zweidimensionale Einsatzstärkematrixzelle mit den Indizes t und f; wobei der Einsatzstärkewert d(t, f) für den entsprechenden Spektrogramm-Innen-Punkt-Wert p(t, f) berechnet wird als d(t, f) = max(p(t, f), np(t – f)) – pp(t, f)wobei np(t, f) = p(t + 1, f);und pp(t, f) = max(p(t – 2, f), p(t – 1, f + 1), p(t – 1, f), p(t – 1, f – 1));wobei das Berechnen einer Einsatzstärke/Zeit-Funktion für ein Frequenzband b ferner folgendes umfasst für jede Abtastzeit ti, das Berechnen eines Einsatzstärkewerts D(ti, b) durch Summieren des Einsatzstärkewerts d(t, f) in der zweidimensionalen Einsatzstärkematrix, für die t = ti und f in dem Bereich von Frequenzen ist, die dem Frequenzband b zugeordnet sind.
  9. Das Temposchätzungssystem gemäß Anspruch 6, bei dem das Analysieren des Satzes aus Einsatzstärke/Zeit-Funktionen (716), um eine zuverlässigste Zwischen-Einsatz-Intervalllänge (906912) zu bestimmen, durch Analysieren möglicher Phasen von jeder Zwischen-Einsatz-Intervalllänge in einem Bereich von Zwischen-Einsatz-Intervalllängen, was die Analyse von Harmonischen höherer Frequenz von jeder Zwischen-Einsatz-Intervalllänge umfasst, ferner folgende Schritte aufweist: für jede Einsatzstärke/Zeit-Funktion, die einem Frequenzband b entspricht, Berechnen einer Zuverlässigkeit für jede mögliche Phase für jede Zwischeneinsatzlänge innerhalb des Bereichs aus Zwischen-Einsatz-Intervalllängen, Summieren der Zuverlässigkeiten, die für jede Zwischen-Einsatz-Intervalllänge berechnet werden, über die Frequenzbänder (704707), um endgültige berechnete Zuverlässigkeiten für jede Zwischen-Einsatz-Intervalllänge zu erzeugen, und Auswählen einer endgültigen, zuverlässigsten Zwischen-Einsatz-Intervalllänge als die Zwischen-Einsatz-Intervalllänge mit der größten endgültigen berechneten Zuverlässigkeit.
  10. Das Temposchätzungssystem gemäß Anspruch 9, bei dem das Berechnen einer Zuverlässigkeit für eine Zwischeneinsatzlänge (906912) mit einer bestimmten Phase ferner folgende Schritte aufweist: Initialisieren einer Zuverlässigkeitsvariable und einer Bestrafungsvariable für die Zwischeneinsatzlänge; beginnend mit einer Abtastzeit, versetzt von dem Ursprung einer Einsatzstärke/Zeit-Funktion (716) um die Phase, und weiter, bis alle Zwischen-Einsatz-Intervalllängen von Abtastpunkten innerhalb der Einsatzstärke/Zeit-Funktion betrachtet wurden Auswählen einer nächsten, aktuell betrachteten Zwischen-Einsatz-Intervalllänge aus Abtastpunkten, Auswählen eines repräsentativen D(t, b)-Werts aus der Einsatzstärke/Zeit-Funktion für die ausge wählte nächste Zwischen-Einsatz-Intervalllänge von Abtastpunkten, wenn der ausgewählte repräsentative D(t, b)-Wert größer ist als ein Schwellenwert, Inkrementieren der Zuverlässigkeitsvariable um einen Wert, wenn eine potentielle Schwebungsfrequenz höherer Ordnung innerhalb der aktuell betrachteten Zwischen-Einsatz-Intervalllänge aus Abtastpunkten erfasst wird: Inkrementieren der Bestrafungsvariable um einen Wert, und wenn der ausgewählte repräsentative D(t, b)-Wert größer ist als ein Schwellenwert; und Berechnen einer Zuverlässigkeit für die Zwischeneinsatzlänge aus den Werten in der Zuverlässigkeitsvariable und der Bestrafungsvariable.
DE112007002014.8T 2006-09-11 2007-09-11 Verfahren zum rechentechnischen Schätzen des Tempos einer Musikauswahl und Temposchätzungssystem Expired - Fee Related DE112007002014B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/519,545 2006-09-11
US11/519,545 US7645929B2 (en) 2006-09-11 2006-09-11 Computational music-tempo estimation
PCT/US2007/019876 WO2008033433A2 (en) 2006-09-11 2007-09-11 Computational music-tempo estimation

Publications (2)

Publication Number Publication Date
DE112007002014T5 true DE112007002014T5 (de) 2009-07-16
DE112007002014B4 DE112007002014B4 (de) 2014-09-11

Family

ID=39168251

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007002014.8T Expired - Fee Related DE112007002014B4 (de) 2006-09-11 2007-09-11 Verfahren zum rechentechnischen Schätzen des Tempos einer Musikauswahl und Temposchätzungssystem

Country Status (8)

Country Link
US (1) US7645929B2 (de)
JP (1) JP5140676B2 (de)
KR (1) KR100997590B1 (de)
CN (1) CN101512636B (de)
BR (1) BRPI0714490A2 (de)
DE (1) DE112007002014B4 (de)
GB (1) GB2454150B (de)
WO (1) WO2008033433A2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008095190A2 (en) * 2007-02-01 2008-08-07 Museami, Inc. Music transcription
US7838755B2 (en) 2007-02-14 2010-11-23 Museami, Inc. Music-based search engine
US7659471B2 (en) * 2007-03-28 2010-02-09 Nokia Corporation System and method for music data repetition functionality
US8494257B2 (en) * 2008-02-13 2013-07-23 Museami, Inc. Music score deconstruction
JP5008766B2 (ja) * 2008-04-11 2012-08-22 パイオニア株式会社 テンポ検出装置及びテンポ検出プログラム
US8507781B2 (en) * 2009-06-11 2013-08-13 Harman International Industries Canada Limited Rhythm recognition from an audio signal
TWI484473B (zh) * 2009-10-30 2015-05-11 Dolby Int Ab 用於從編碼位元串流擷取音訊訊號之節奏資訊、及估算音訊訊號之知覺顯著節奏的方法及系統
JP5560861B2 (ja) * 2010-04-07 2014-07-30 ヤマハ株式会社 楽曲解析装置
US8586847B2 (en) * 2011-12-02 2013-11-19 The Echo Nest Corporation Musical fingerprinting based on onset intervals
CN102568454B (zh) * 2011-12-13 2015-08-05 北京百度网讯科技有限公司 一种分析音乐bpm的方法和装置
JP5672280B2 (ja) * 2012-08-31 2015-02-18 カシオ計算機株式会社 演奏情報処理装置、演奏情報処理方法及びプログラム
CN105513583B (zh) * 2015-11-25 2019-12-17 福建星网视易信息系统有限公司 一种歌曲节奏的显示方法及其系统
US10305773B2 (en) * 2017-02-15 2019-05-28 Dell Products, L.P. Device identity augmentation
CN107622774B (zh) * 2017-08-09 2018-08-21 金陵科技学院 一种基于匹配追踪的音乐速度谱图生成方法
WO2019156966A1 (en) * 2018-02-08 2019-08-15 Exxonmobil Upstream Research Company Methods of network peer identification and self-organization using unique tonal signatures and wells that use the methods
CN110681074B (zh) * 2019-10-29 2021-06-15 苏州大学 基于双向gru网络的肿瘤呼吸运动预测方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5616876A (en) * 1995-04-19 1997-04-01 Microsoft Corporation System and methods for selecting music on the basis of subjective content
US6316712B1 (en) * 1999-01-25 2001-11-13 Creative Technology Ltd. Method and apparatus for tempo and downbeat detection and alteration of rhythm in a musical segment
US6787689B1 (en) * 1999-04-01 2004-09-07 Industrial Technology Research Institute Computer & Communication Research Laboratories Fast beat counter with stability enhancement
US7022905B1 (en) * 1999-10-18 2006-04-04 Microsoft Corporation Classification of information and use of classifications in searching and retrieval of information
US6225546B1 (en) * 2000-04-05 2001-05-01 International Business Machines Corporation Method and apparatus for music summarization and creation of audio summaries
US6545209B1 (en) * 2000-07-05 2003-04-08 Microsoft Corporation Music content characteristic identification and matching
US6910035B2 (en) * 2000-07-06 2005-06-21 Microsoft Corporation System and methods for providing automatic classification of media entities according to consonance properties
FR2811842B1 (fr) * 2000-07-12 2002-10-31 Thomson Csf Dispositif pour l'analyse de signaux electromagnetiques
US7035873B2 (en) * 2001-08-20 2006-04-25 Microsoft Corporation System and methods for providing adaptive media property classification
US6657117B2 (en) * 2000-07-14 2003-12-02 Microsoft Corporation System and methods for providing automatic classification of media entities according to tempo properties
US6963975B1 (en) * 2000-08-11 2005-11-08 Microsoft Corporation System and method for audio fingerprinting
US7065416B2 (en) * 2001-08-29 2006-06-20 Microsoft Corporation System and methods for providing automatic classification of media entities according to melodic movement properties
US7532943B2 (en) * 2001-08-21 2009-05-12 Microsoft Corporation System and methods for providing automatic classification of media entities according to sonic properties
US6323412B1 (en) * 2000-08-03 2001-11-27 Mediadome, Inc. Method and apparatus for real time tempo detection
US7031980B2 (en) * 2000-11-02 2006-04-18 Hewlett-Packard Development Company, L.P. Music similarity function based on signal analysis
US6856923B2 (en) * 2000-12-05 2005-02-15 Amusetec Co., Ltd. Method for analyzing music using sounds instruments
DE10164686B4 (de) * 2001-01-13 2007-05-31 Native Instruments Software Synthesis Gmbh Automatische Erkennung und Anpassung von Tempo und Phase von Musikstücken und darauf aufbauender interaktiver Musik-Abspieler
EP1244093B1 (de) * 2001-03-22 2010-10-06 Panasonic Corporation Schallmerkmalermittlungsgerät, Schalldatenregistrierungsgerät, Schalldatenwiederauffindungsgerät und Verfahren und Programme zum Einsatz derselben
TWI228704B (en) * 2001-03-23 2005-03-01 Yamaha Corp Music sound synthesis with waveform caching by prediction
US6518492B2 (en) * 2001-04-13 2003-02-11 Magix Entertainment Products, Gmbh System and method of BPM determination
DE10123366C1 (de) * 2001-05-14 2002-08-08 Fraunhofer Ges Forschung Vorrichtung zum Analysieren eines Audiosignals hinsichtlich von Rhythmusinformationen
US6850787B2 (en) * 2001-06-29 2005-02-01 Masimo Laboratories, Inc. Signal component processor
US20030014419A1 (en) * 2001-07-10 2003-01-16 Clapper Edward O. Compilation of fractional media clips
US7295977B2 (en) * 2001-08-27 2007-11-13 Nec Laboratories America, Inc. Extracting classifying data in music from an audio bitstream
US6915009B2 (en) * 2001-09-07 2005-07-05 Fuji Xerox Co., Ltd. Systems and methods for the automatic segmentation and clustering of ordered information
CA2359771A1 (en) * 2001-10-22 2003-04-22 Dspfactory Ltd. Low-resource real-time audio synthesis system and method
US6995309B2 (en) * 2001-12-06 2006-02-07 Hewlett-Packard Development Company, L.P. System and method for music identification
US20030135377A1 (en) * 2002-01-11 2003-07-17 Shai Kurianski Method for detecting frequency in an audio signal
US20030205124A1 (en) * 2002-05-01 2003-11-06 Foote Jonathan T. Method and system for retrieving and sequencing music by rhythmic similarity
DE10223735B4 (de) * 2002-05-28 2005-05-25 Red Chip Company Ltd. Verfahren und Vorrichtung zum Ermitteln von Rhythmuseinheiten in einem Musikstück
US7081579B2 (en) * 2002-10-03 2006-07-25 Polyphonic Human Media Interface, S.L. Method and system for music recommendation
EP1431956A1 (de) * 2002-12-17 2004-06-23 Sony France S.A. Verfahren und Vorrichtung zur Erzeugung einer Funktion um den globalen charakteristischen Wert eines Signalinhalts zu gewinnen
US7091409B2 (en) * 2003-02-14 2006-08-15 University Of Rochester Music feature extraction using wavelet coefficient histograms
JP3982443B2 (ja) * 2003-03-31 2007-09-26 ソニー株式会社 テンポ解析装置およびテンポ解析方法
FR2856817A1 (fr) * 2003-06-25 2004-12-31 France Telecom Procede de traitement d'une sequence sonore, telle qu'un morceau musical
US7148415B2 (en) * 2004-03-19 2006-12-12 Apple Computer, Inc. Method and apparatus for evaluating and correcting rhythm in audio data
US7026536B2 (en) * 2004-03-25 2006-04-11 Microsoft Corporation Beat analysis of musical signals
US7022907B2 (en) * 2004-03-25 2006-04-04 Microsoft Corporation Automatic music mood detection
JP2005292207A (ja) * 2004-03-31 2005-10-20 Ulead Systems Inc 音楽分析の方法
JP4940588B2 (ja) * 2005-07-27 2012-05-30 ソニー株式会社 ビート抽出装置および方法、音楽同期画像表示装置および方法、テンポ値検出装置および方法、リズムトラッキング装置および方法、音楽同期表示装置および方法
US7516074B2 (en) * 2005-09-01 2009-04-07 Auditude, Inc. Extraction and matching of characteristic fingerprints from audio signals
US8572088B2 (en) * 2005-10-21 2013-10-29 Microsoft Corporation Automated rich presentation of a semantic topic
JP2009514017A (ja) * 2005-10-25 2009-04-02 オンボード リサーチ コーポレーション タイミング訓練の方法及びシステム
US7396990B2 (en) * 2005-12-09 2008-07-08 Microsoft Corporation Automatic music mood detection
KR101215937B1 (ko) * 2006-02-07 2012-12-27 엘지전자 주식회사 IOI 카운트(inter onset intervalcount) 기반 템포 추정 방법 및 이를 위한 템포 추정장치

Also Published As

Publication number Publication date
GB0903438D0 (en) 2009-04-08
CN101512636B (zh) 2013-03-27
KR20090075798A (ko) 2009-07-09
WO2008033433A2 (en) 2008-03-20
JP2010503043A (ja) 2010-01-28
WO2008033433A3 (en) 2008-09-25
BRPI0714490A2 (pt) 2013-04-24
GB2454150B (en) 2011-10-12
KR100997590B1 (ko) 2010-11-30
GB2454150A (en) 2009-04-29
JP5140676B2 (ja) 2013-02-06
US20080060505A1 (en) 2008-03-13
US7645929B2 (en) 2010-01-12
DE112007002014B4 (de) 2014-09-11
CN101512636A (zh) 2009-08-19

Similar Documents

Publication Publication Date Title
DE112007002014B4 (de) Verfahren zum rechentechnischen Schätzen des Tempos einer Musikauswahl und Temposchätzungssystem
EP1371055B1 (de) Vorrichtung zum analysieren eines audiosignals hinsichtlich von rhythmusinformationen des audiosignals unter verwendung einer autokorrelationsfunktion
DE102004049457B3 (de) Verfahren und Vorrichtung zur Extraktion einer einem Audiosignal zu Grunde liegenden Melodie
DE60018886T2 (de) Adaptive Wavelet-Extraktion für die Spracherkennung
DE3306730C2 (de)
DE60221927T2 (de) Vorrichtung und Programm zur Schallcodierung
DE69725670T2 (de) Hochgenaue Zeit-Frequenz-Signalanalyse mit niedriger Verzerrung unter Verwendung gedrehter Fensterspektrogramme
DE10232916A1 (de) Vorrichtung und Verfahren zum Charakterisieren eines Informationssignals
DE2825110A1 (de) Verfahren zur erkennung kontinuierlicher sprachsignale
DE10123366C1 (de) Vorrichtung zum Analysieren eines Audiosignals hinsichtlich von Rhythmusinformationen
DE102014118075B4 (de) Audio und Video synchronisierendes Wahrnehmungsmodell
WO2006039995A1 (de) Verfahren und vorrichtung zur harmonischen aufbereitung einer melodielinie
DE60031812T2 (de) Vorrichtung und Verfahren zur Klangsynthesierung
WO2006039992A1 (de) Extraktion einer einem audiosignal zu grunde liegenden melodie
DE102004028694B3 (de) Vorrichtung und Verfahren zum Umsetzen eines Informationssignals in eine Spektraldarstellung mit variabler Auflösung
DE102004028693B4 (de) Vorrichtung und Verfahren zum Bestimmen eines Akkordtyps, der einem Testsignal zugrunde liegt
DE2500720A1 (de) Elektronisches musikinstrument
DE3417568C2 (de)
DE19962764B4 (de) Verfahren zum Abstimmen eines Filters mit mehreren gekoppelten Resonatoren
EP1175668B1 (de) Vorrichtung zur signalberechnung und -erzeugung, insbesondere zur digitalen klangsynthese
DE102004033867B4 (de) Verfahren und Vorrichtung zur rhythmischen Aufbereitung von Audiosignalen
DE112017001277B4 (de) Tonsignalverarbeitungsverfahren und Tonsignalverarbeitungsvorrichtung
EP1743324B1 (de) Vorrichtung und verfahren zum analysieren eines informationssignals
DE102021207339B3 (de) Verfahren und Vorrichtung zur Analyse eines Zeitsignals mit periodischen Signalanteilen sowie Computerprogrammprodukt und Computerprogramm
WO2005122137A1 (de) Vorrichtung und verfahren zum bestimmen eines einem audiosignal zugrunde liegenden frequenzrasters

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee