COMO HACER UN CODIGO QUE ME IDENTIFIQUE GENEROS MUSICALES

Hola a todos,de proyecto final me asiganron un codigo en matlab que identifique generos musicales,me podrian ayudar para ver como empezar hacerlo,o si saben de alguna pagina donde pueda ver codigos de matlab ya hechos.
muchas gracias
Debes aprender a programar por tu cuenta. Para llegar a hacer algo parecido, debes hacer uso de las transformadas (Fourier, LaPlace); alguna vez hice un programa en Matlab con un objetivo similar, esas fórmulas fueron una gran ayuda para resolverlo.
 
  • Me gusta
Reacciones: aliricu y serankua
Bueno, es algo mediocre la solicitud, si no le gusta la programacion consejo: "no siga estudiando eso" pensando que se va a tapar de $$. Si quiere digale a Chat GPT que le genere codigo.
 
  • ¡Vaya!
  • Me gusta
Reacciones: Adhmar y aliricu
Debes aprender a programar por tu cuenta. Para llegar a hacer algo parecido, debes hacer uso de las transformadas (Fourier, LaPlace); alguna vez hice un programa en Matlab con un objetivo similar, esas fórmulas fueron una gran ayuda para resolverlo.


Uy eso con que se come 😒

No jodan, debí más bien enfocarme en 2012 cuando me explicaron el OSI en redes y pensé salirme de tanta cosa complicada y meterme a Masoterapia 😒
 
1708257647417.png

implementelo, o también puede usar algunas librerías(yo en lo personal en ese entonces no encontré utiles), sin embargo no incluyen la distinción el grupo de vectores de géneros musicales le toca o implementar alguna forma de segmentarlo (puede ser
1708257833466.png
de forma euclidiana)
 
Me uno a la discusión, Mathlab es muy básico para lo que necesita, es mejor que defina bien lo que quiere porque las transformadas sirven para comprimir archivos:


No suena bien eso de " dónde puedo encontrar el código", bueno la IA puede ser su mejor amigo pero nada que ver con Mathlab.
 
la gracia de esos trabajos es aprender a identificar el problema y las posibles soluciones y ser muy creativo al encontrar la solucion, igual le falta mucha info a lo que dices, me imagino que lo que te piden es analizar la pista, y si, si te da garra hacer ese tipo de trabajos te aconsejo que te replantees si la programación te va hacer feliz, ya en el mundo laboral realmente algunos requerimientos son así.

% Cargar los datos de audio
load('songs.mat'); % songs es una matriz de 1000 x 660000 que contiene los datos de audio de 1000 canciones
load('labels.mat'); % labels es un vector de 1000 x 1 que contiene las etiquetas de los géneros de las canciones

% Dividir los datos en conjuntos de entrenamiento, validación y prueba
[trainData, valData, testData, trainLabels, valLabels, testLabels] = splitData(songs, labels);

% Convertir los datos de audio en espectrogramas
trainSpec = audio2spec(trainData); % trainSpec es una matriz de 100 x 128 x 1292 x 4 que contiene los espectrogramas de las canciones de entrenamiento
valSpec = audio2spec(valData); % valSpec es una matriz de 100 x 128 x 1292 x 4 que contiene los espectrogramas de las canciones de validación
testSpec = audio2spec(testData); % testSpec es una matriz de 100 x 128 x 1292 x 4 que contiene los espectrogramas de las canciones de prueba

% Definir la arquitectura de la red neuronal convolucional
layers = [
imageInputLayer([128 1292 4]) % capa de entrada que acepta imágenes de 128 x 1292 x 4
convolution2dLayer(3,16,'Padding','same') % capa convolucional con 16 filtros de 3 x 3 y relleno
batchNormalizationLayer % capa de normalización por lotes para acelerar el entrenamiento
reluLayer % capa de activación ReLU
maxPooling2dLayer(2,'Stride',2) % capa de agrupación máxima con tamaño de 2 x 2 y paso de 2
convolution2dLayer(3,32,'Padding','same') % capa convolucional con 32 filtros de 3 x 3 y relleno
batchNormalizationLayer % capa de normalización por lotes
reluLayer % capa de activación ReLU
maxPooling2dLayer(2,'Stride',2) % capa de agrupación máxima con tamaño de 2 x 2 y paso de 2
convolution2dLayer(3,64,'Padding','same') % capa convolucional con 64 filtros de 3 x 3 y relleno
batchNormalizationLayer % capa de normalización por lotes
reluLayer % capa de activación ReLU
maxPooling2dLayer(2,'Stride',2) % capa de agrupación máxima con tamaño de 2 x 2 y paso de 2
fullyConnectedLayer(4) % capa totalmente conectada con 4 neuronas de salida
softmaxLayer % capa softmax para calcular las probabilidades de cada clase
classificationLayer % capa de clasificación que calcula la pérdida y el error
];

% Definir las opciones de entrenamiento
options = trainingOptions('sgdm', ... % usar el método de descenso de gradiente estocástico con momento
'MaxEpochs',20, ... % entrenar por 20 épocas
'InitialLearnRate',0.01, ... % usar una tasa de aprendizaje inicial de 0.01
'ValidationData',{valSpec,valLabels}, ... % usar los datos de validación para monitorear el rendimiento
'ValidationFrequency',30, ... % validar cada 30 iteraciones
'Verbose',false, ... % no mostrar el progreso del entrenamiento
'Plots','training-progress'); % mostrar las gráficas del progreso del entrenamiento

% Entrenar la red neuronal convolucional
net = trainNetwork(trainSpec,trainLabels,layers,options); % net es un objeto DAGNetwork que contiene la red entrenada

% Evaluar el rendimiento de la red en el conjunto de prueba
predLabels = classify(net,testSpec); % predLabels es un vector de 100 x 1 que contiene las etiquetas predichas por la red
accuracy = mean(predLabels == testLabels); % accuracy es un escalar que representa la precisión de la red en el conjunto de prueba
disp(['La precisión de la red es: ', num2str(accuracy)]); % mostrar la precisión de la red

Yo hubiera empezado por preguntarle a un asistente, si apenas estas aprendiendo, igual el ejemplo que te da el asistente por lo general no es tan funcional pero es una ayuda por si todavia no sabe como codificar
 
  • Me gusta
Reacciones: samuro
Hola, la verdad no creo que de cero te hayan pedido algo así, entonces creo que debes repasar bastante todo lo que te han enseñado y un montón de bases de que debes tener, Explora lo que dicen los otros laneros, que posiblemente ese sea el camino, y no estoy muy de acuerdo con lo que mencionaron de "replantearse la idea de programar", el tema puede llegar en muchos momentos a ser estresante, pero no quiere decir que con dedicación, esfuerzo y mucha mucha mucha práctica puedas lograr cosas cheveres
 

Los últimos temas