|
|
Musikerkennung mit DFT oder FFT? |
|
MatzeMeister |
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.06.2010, 18:19
Titel: Musikerkennung mit DFT oder FFT?
|
|
Hallo zusammen
ich bin ein absolute Neuling bei Matlab und versteh grad noch a bisl Bahnhof
UNd zwar hab ich das Problem dass ich eine Musikerkennungsprogramm mit Matlab erstellen soll....
das heißt es müssen um die 20 songs eingelesen werden aus einer Datenbannk und dann wenn das Lied wieder kommt sollte es erkannt werden !?
Bitte helft mir hab echt kein Plan wie ich anfagen soll
_________________
Ne is klar
|
|
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 15.06.2010, 07:27
Titel:
|
|
hallo,
ich hatte mal ein ähnliches Projekt, allerdings spracherkennung, Sprecher mussten einen satz aussprechen und der Sprecher musste erkannt werden.
erstes verfahren war Frequenzanalyse:
ich würde vorschlagen von diesen 20 Lieder machst du FFT. und speicherst sie in einer matrix.
wenn jetzt ein neues lied kommt das du erkennen musst, du machst davon auch FFT und rechnest den LSE( least square error) und zwar mit allen 20 vorlagen die du schon gespeichert hast, und dann vergleichst du diese errors,
und wo der fehler am kleinsten war, das ist das gesuchte Lied.
gruss
|
|
|
MatzeMeister |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2010, 08:46
Titel:
|
|
also ich hab jetzt gradmal des
wie speicher ich dann alle in ner matrix?
_________________
Ne is klar
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 15.06.2010, 09:33
Titel:
|
|
du sagtest du es geht um 20 songs.
und das machst du bestimmt über eine for-schleife ungefähr so:
dein audio_input wird jedes mal überschrieben, aber in data_fft sind dann alle eine ffts gespeichern, ´data_fft(:,1) ist fft(Track1).....usw
|
|
|
MatzeMeister |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2010, 17:51
Titel:
|
|
wenn ich das eingebe dann sagt er mir jedesmal dass er testrack11 nicht lesen kann
audio_input =
test_Track11.wav
??? Error using ==> wavread at 67
Cannot open file.
obwohl es eine wav datei ist und nicht beschädigt sprich ich kann sie anhören
_________________
Ne is klar
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 15.06.2010, 20:18
Titel:
|
|
gab keine probleme beim einlesen von test_Track1 bis 10?
ist der name der datei wirklich test_Track11, achte auf gross und klein Buchstaben..
|
|
|
MatzeMeister |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2010, 20:35
Titel:
|
|
also so gehts aber er zeigt mir nur den letzten plot an!? oder den ersten hat er dann doch nicht alles gespeichert?
wo hab ich denn wieder nen fehler reingehauen
_________________
Ne is klar
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 15.06.2010, 20:42
Titel:
|
|
natürlich zeigt er dir nur den letzten deine variable wird data_fft wird jedes mal überschrieben, füge einen index hinzu data_fft(:,i)... sieh das beispiel dass ich dir vorhin gezeigt habe.
ausserdem finde ich es geschickter beim plot, auch die x-achse anzugeben
sprich deine frequenzachse, aber räume erstmal die aktuellen fehler auf ;)
|
|
|
MatzeMeister |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2010, 20:56
Titel:
|
|
jetzt kommt das problem!?
audio_input =
test_Track1.wav
??? Subscripted assignment dimension mismatch.
heißt dass meine datenmengen sind zu groß
de plotten is eh nur für mich...is noch nicht so wichtig...
wie gesagt will alle einlesen dann zwischen speichern und dann mit einem track vergleichen den ich einles und dann soll er sagen welcher es is!
_________________
Ne is klar
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 15.06.2010, 21:07
Titel:
|
|
hmmm jetzt fällt mir ein, brauchst du für diesen zweck überhaupt fft, du kannst auch im zeitbereich vergleichen, du kannst ein bestimmten interval vergleichen die ersten 100 werte zumbeispiel...
zu deinem problem gerade weiss ich nicht, gerade hats funktioniert oder?
|
|
|
MatzeMeister |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2010, 21:09
Titel:
|
|
muss nicht unbedingt mit fft sein aber dann bin ich überfragt was ich machen soll...
hast du da ne idee?
und soweit ich weiß wird in der digitalen signalverarbeitung nur mit fft´s gearbeitet!?
_________________
Ne is klar
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 15.06.2010, 22:17
Titel:
|
|
probier mal diesen code, musst halt pfad und so ändern:
|
|
|
MatzeMeister |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.06.2010, 05:59
Titel:
|
|
Hey Super funtioniert nicht schlecht nur
haut des vergleichen noch nicht so ganz hin weil er teilweise wenn ich bsp. das Lied 10 auswähle anzeigt dass es Lied neun ist?????
aber ansonsten nicht schlecht
hast du noch ne idee wie man des rauskriegt oder ne bessere trefferwahrscheinlichkeit hat?
_________________
Ne is klar
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 17.06.2010, 08:15
Titel:
|
|
ich glaub ich weiss woran es liegt, wenn man einen song spielen lässt, dann ist in den ersten sekunden nix erst danach fängts an.
und in der if-schleife vergleichen wir die ersten 50 werte, die gefahr ist gross dass bei vielen songs die ersten 50 werte gleich sind.
Lösung: entweder du nimmst mehr werte zum vergleich 1:1000 von mir aus, bis es passt, oder am besten du nimmst werte von der mitte, 500:600 zum beispiel, da ich bezweifle dass die mittleren werte der 20 songs gleich sein können, und spart zeit da wir nur 100 werte gleichen statt 1000 am anfang.
also if schleife ändern
nimm halt mehr werte wenn es nicht reicht...
viel glück
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
MatzeMeister |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 14.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.06.2010, 15:01
Titel:
|
|
ja funktioniert viel besser habs jetzt so weit fertig aber funktioniert halt nur bis zu 10 songs weil dann wieder ne Fehlermeldung kommt ab Lied 11
??? Index exceeds matrix dimensions.
heißt er brauch wahrscheinlich zu viel Speicherplatz
_________________
Ne is klar
|
|
|
|
Gehe zu Seite 1, 2, 3 Weiter
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|