2009-10-27 8 views
9

Ich kenne Computer Vision (Nun, wissen davon), von denen eine Anwendung Bilderkennung sein kann, wie Optical Character Recognition, glaube ich. Etwas, das mich mehr interessiert, ist das "Computer-Hören", das ich gerade gelernt habe, gilt als Digital Signal Processing.Programmatically 'Listening' auf Sound (Signal Processing?)

Was mich an der Signalverarbeitung am meisten interessiert, ist die mögliche Anwendung in der Musik. Ich erinnere mich, dass ich vor einer Weile eine Vorschau einer Anwendung sah (Sorry, vergiss den Namen), die eine Aufnahme von jemandem hören könnte, der eine Gitarre spielt, und sie automatisch über eine Zeitlinie mit den tatsächlichen Noten/Akkorden aufzeichnet wurden gespielt. Mit dem Programm konnte der Benutzer diese verschieben und sogar bearbeiten. Nun, das ist natürlich viel komplizierter, aber beinhaltet es dasselbe? Signalverarbeitung? Ich bin auch an möglichen Anwendungen in Music Visualizern und intelligenten Beleuchtungssystemen interessiert.

Mein Verständnis ist, dass diese Verarbeitung auf einem komprimierten Audioformat wie MP3 nicht die gleichen Ergebnisse wie MIDI liefern wird, die separate Spuren enthält (vielleicht habe ich missverstanden). Wäre ein unkomprimiertes Format wie PCM besser als MP3? Ich weiß nichts über Klangverarbeitung, das ist nur das, was ich aus dem, was ich bisher gelesen habe, folge.

Ich habe bereits gesehen this question, die große Antworten und Links, die viele meiner Fragen abdecken. Die meisten der Links, die ich gefunden habe, sind jedoch theoretisch, und ich bin mir sicher, dass sie alle interessant sind und mein Interesse an dem Thema definitiv lohnenswert ist, aber ich wollte wissen, ob es Bibliotheken gibt, die dies erleichtern können. oder Artikel zu diesem Thema, die auf Informatik/Programmierung ausgerichtet sind, mit vielleicht Beispielcode. Selbst Open-Source-Sound/Musik-Visualizer oder andere Open-Source-Sound-Processing-Code wäre großartig.

Entschuldigung, wenn ich keinen Sinn machte. Wie ich schon sagte, ich weiß nicht wovon ich spreche.

Antwort

13

Die Sache, die mir am meisten über Signalverarbeitung ist die potentielle Anwendung in der Musik interessiert. Ich eine Weile erinnern vor sah ich eine Vorschau einer Anwendung (Sorry, vergessen, den Name)

Vielleicht cubase?

, die zu einer Aufnahme von jemand eine Gitarre spielt hören konnte, und es automatisch mit den aktuellen Noten/Akkorde über eine Zeitliniendiagramm aus, die

Tief vereinfachte gespielt wurden, Wenn Sie eine Note spielen, erzeugen Sie eine periodische Welle mit einer bestimmten Frequenz. Es gibt einen mathematischen Trick (die Fourier-Transformation DFT), der die Welle in das Spektrum umwandelt, das anstatt die Intensität gegen die Zeit zu präsentieren, sie gegen die Frequenz der Welle zeigt. Zum Beispiel würde eine perfekte A-Note von einer Stimmgabel eine oszillierende Welle bei 440 Hz erzeugen. Im Zeitbereich würde dies als Sinuswelle erscheinen. In der Frequenzdomäne erscheint es als einzelne schmale Spitze, die bei 440 Hz zentriert ist.

Jetzt, wenn Sie eine Gitarre spielen, erzeugen Sie keine perfekten Sinuswellen. Trifft man ein A, wird die Grundfrequenz 440 Hz erzeugt, aber auch viele zusätzliche Frequenzen (zB 880, Oktave höher, aber auch viele andere höhere und tiefere Frequenzen), aufgrund der Physik der schwingenden Saite, des Materials und Form der Gitarre etc .. Diese zusätzlichen Frequenzen werden Harmonische genannt, und sie mischen sich mit dem Grundton, um "den Klang der Gitarre" zu erzeugen (was im Musikjargon Timbre genannt wird). Ein anderes Instrument (zB Piano) wird unterschiedliche Obertöne mit dem Grundton mischen, wodurch ein anderes Timbre erzeugt wird.

Was DSP-Programme tun, ist eine DFT auf das eintretende Signal durchzuführen. Mit zusätzlichen Tricks finden sie die Grundtöne und die Obertöne, und je nachdem, was sie finden, leiten sie die von Ihnen gespielte Note ab. Dies muss schnell geschehen, da Sie die Note beim Live-Spiel finden und spezielle Tricks auslösen können. Zum Beispiel könnten Sie eine A-Note auf der Gitarre schlagen, die DSP versteht, dass es ein A ist und sie durch das A eines Klaviers ersetzt, also erhalten Sie von den Lautsprechern den Klang eines Klaviers.

Mit dem Programm kann der Benutzer konnte auf diese bewegen und sogar zu bearbeiten. Nun, offensichtlich ist das eine Menge komplizierter, aber beteiligt es die gleiche Sache? Signalverarbeitung? Ich bin auch interessiert an möglichen Anwendungen in Music Visualizern und intelligente Beleuchtungssysteme.

Ja. Sobald Sie im Frequenzbereich sind, wird es sehr einfach. Zum Beispiel könnten Sie ein bestimmtes Licht entsprechend den Stimmfrequenzen und ein anderes Licht mit der Bassdrum aufleuchten lassen.

Mein Verständnis ist, dass auf einem komprimierten Audio-Format diese Verarbeitung zu tun wie MP3 wird nicht die gleichen Ergebnisse als MIDI ergeben, die separaten Spuren enthält (Vielleicht ich falsch verstanden).

Sie sind zwei verschiedene Dinge. MP3 ist ein komprimiertes Format einer Schallwelle. Grundsätzlich braucht es, was die Lautsprecher steuert und komprimiert. Die Idee ist die gleiche: DFT, dann Entfernen von Dingen, die man kaum hören kann (zum Beispiel wird eine hohe Tonhöhe, die direkt nach einem hochintensiven Klang kommt, weniger wahrscheinlich gehört, so dass sie entfernt wird).

MIDI auf der anderen Seite ist eine Rolle von Ereignissen (Sie wissen, wie die Klaviere im fernen Westen, mit dem Rollenpapier Scroll). Die Datei enthält keine Musik. Es enthält Anweisungen für einen MIDI-Player, um bestimmte Noten zu bestimmten Zeiten mit bestimmten Instrumenten zu spielen. Die Qualität der "Instrumentenbank" ist unter anderem, was einen schlechten MIDI-Player (der wie ein Kinderspiel klingt) von einem guten MIDI-Player unterscheidet (der für Blasinstrumente, insbesondere für Klaviere und Geigen, realistisch klingt muss ein realistisches hören).

Es dauert von MIDI zu MP3, Sie führen nur durch einen MIDI-Player. Andersherum ist eine ganz andere Geschichte, und viel komplexer, und hier kommt DSP ins Spiel, wie Sie gesagt haben.

Es ist wie ein fisk Tank zu kochen. Du bekommst eine Fischsuppe. Aber um von der Fischsuppe zurück zum Aquarium zu kommen, ist es viel schwieriger.

Würde ein unkomprimiertes Format wie PCM besser als MP3?

PCM ist eine Technik, um ein analoges Signal in ein digitales Signal umzuwandeln. Ihre Frage hat also ein grundlegendes Missverständnis, dass es kein PCM-Format gibt (das RAW-Format ist knapp, es gibt im Grunde nur grobe Daten). Wenn Sie fragen, ob ein unkomprimiertes WAV (das PCM-Daten enthält) besser ist als MP3, dann ja, aber die Frage ist manchmal, wie viel das für das menschliche Ohr wirklich wichtiger ist und wieviel Nachbearbeitung Sie an diesen Daten vornehmen müssen.

wissen, ob es irgendwelche bestehenden Bibliotheken gibt, die dies erleichtern können, oder Artikel zu diesem Thema im Zusammenhang die Wissenschaft/Programmierung, mit vielleicht Beispielcode in Richtung Computer-ausgerichtet. Auch Open Source Sound/Musik-Visualizer oder andere Open-Source-Sound-Processing-Code wäre toll.

Wenn Sie wie Python, take a look at this page

Sorry, wenn ich machen keinen Sinn nicht. Wie ich schon sagte, ich weiß nicht wovon ich spreche.

Ich auch nicht, aber ich spielte ein bisschen damit.

+0

Ich glaube, du Timbre meine, nicht –

+2

In italienischen Timbro es ist timbro und Musiker nutzen die italienische Schreibweise ziemlich oft. Festsetzung. –

+0

Interessant, danke. –

6

Mein Verständnis ist, dass auf einem komprimierten Audio-Format wie MP3 diese Verarbeitung zu tun pflegt die gleichen Ergebnisse liefern wie MIDI, die einzelne Titel enthält (möglicherweise falsch verstanden I).

MIDI speichert im Wesentlichen Instrumenteninformationen und Musiknoten. Auch andere Effekte (Lautstärke, Pitch Bend, Vibrato, Attackrate usw.)

Nicht wirklich digitale Signalverarbeitung.

Würde ein unkomprimiertes Format wie PCM besser als MP3?

Vielleicht etwas; Es hängt von der Anwendung ab. MP3 reduziert die Präzision der Frequenzen, die Menschen nicht empfindlich sind. Wenn Sie Visualisierungen machen wollen, dann ist MP3 wahrscheinlich in Ordnung.

Aber wenn Sie sagen wollen, welche Art von Instrument spielt in einer Aufnahme, dann könnte es nützliche Informationen in den Frequenzen versteckt, die Menschen nicht empfindlich sind.

Ich denke, The Scientist and Engineer's Guide to Digital Signal Processing ist eine große Referenz für Programmierer.Kapitel 8 erklärt die diskrete Fourier-Transformation (die in der MP3-Verarbeitung und an vielen anderen Stellen verwendet wird, um die Komponentenfrequenzen einer Welle zu trennen).

Ich habe es verwendet, um ein grafisches Programm zu erstellen, mit dem Sie eine Welle mit der Maus zeichnen können, dann angewendet die DFT und lassen Sie auswählen, wie viele Frequenzen enthalten sind. Es war eine großartige Übung.

0

Ich denke, Sie müssen genau definieren, was Sie suchen und was Sie versuchen zu tun.Wenn Sie mehr über DSP, MIDI oder PCM erfahren möchten, dann gibt es viele Informationen über Wikipedia und Referenzen.

Es gibt viele Anwendungen für Audiobearbeitung. Was Sie in Ihrer Frage beschrieben haben, ist, was jeden Tag in jedem digitalen Aufnahmestudio (das heutzutage fast alle Studios ausmachen würde) stattfindet.

Wenn Sie etwas DSP gegen zB einen Gitarrensound spielen möchten, dann sollten Sie idealerweise eine Aufnahme der Gitarre selbst haben (anstatt einer gemischten Spur mit Schlagzeug oder Gesang). Es sollte ganz offensichtlich sein, dass Sie bessere Ergebnisse erhalten, wenn Sie ein diskretes Signal ohne zusätzliches Rauschen analysieren, als wenn Sie ein Signal analysieren, das ein signifikantes Maß an "Rauschen" enthält. Also, eine Multitrack-Aufnahme wäre besser als 'ein MP3'.

Typische MP3 enthält linke und rechte Kanäle (Tracks), so dass es technisch Multitrack ist. Wenn Musik aufgenommen wird (professionell, zumindest), werden unterschiedliche Signale auf verschiedenen Spuren aufgezeichnet, genau so, dass sie zu einem späteren Zeitpunkt diskret bearbeitet und bearbeitet werden können.

Was möchten Sie dann mit den Sounds machen?

Wie andere Antworten darauf hingewiesen haben, bezieht sich dies nicht auf MIDI überhaupt.

1

Ich erinnere mich vor einer Weile sah ich eine Vorschau einer Anwendung (Sorry, vergaß den Namen), die eine Aufnahme von jemandem Gitarre spielen hören könnte, und es automatisch über eine Zeitlinie mit dem tatsächlichen Graphen Noten/Akkorde, die gespielt wurden.

Sie könnten auch von Melodyne denken: http://www.celemony.com/cms/

Obwohl Vari-Audio in neuerer Version von Cubase ist ziemlich ähnlich. :)