Wolfram Language

Töne erkennen, um ein Signal zu rekonstruieren

Die Tonhöhe eines Audiosignals kann durch klassische Signalverarbeitungsprozesse oder Algorithmen erkannt bzw. aufgezeichnet und dann zur Analyse, Klassifizierung oder Rekonstruktion eines Signals genutzt werden. In diesem Beispiel wird die eingebaute Funktion PitchRecognize verwendet, um ein Signal auf Grundlage der erkannten Töne anzunähern.

Wir beginnen mit einer Aufnahme einer Bach-Fuge.

Zeichnen Sie die Höhe des Signals mit einer netzwerkbasierten Methode auf.

Definieren Sie eine Funktion, die mit der Eigenschaft "SoundNotePitch" der Funktion PitchRecognize Töne erkennt, die fehlenden Werte löscht, die Töne auf entsprechende Notenwerte aufteilt und schließlich ein Sound-Objekt mit der rekonstruierten Melodie ausgibt.

Verwenden Sie die Funktion, um ein Sound-Objekt der Originalaufnahme zu rekonstruieren.

Da die Information zu den Tönen, die von PitchRecognize berechnet wurde, komplett symbolisch ist, können Sie die Melodie mit Instrumenten, die Ihnen in der Funktion SoundNote zur Verfügung stehen, rekonstruieren.

Erzwingen Sie mit PitchRecognize die Rückgabe diskretisierter Frequenzen.

Übergeben Sie die Zeireihe an AudioGenerator, um die Oszillatorenfrequenz zu überprüfen.

Verbessern Sie die Annäherung, indem Sie die Amplitudendaten des Originalsignals miteinbeziehen. Mit AudioLocalMeasurements können Sie die Maximalwerte des Audioelements feststellen.

Vergleichen Sie das Spektrogramm mit dem Original.

Generieren Sie zum Spaß eine tonale Antwort auf den ersten Teil des Themas. Transponieren Sie die Sequenz eine Quint höher, den ersten Ton aber nur eine Quart höher.

Generieren Sie die Melodie nochmal.

Verwandte Beispiele

en es fr ja ko pt-br zh