load('audio_features.mat', 'X_train', 'X_test', 'y_train', 'y_test');
    x_traincnn = num2cell(X_train, 2);
    y_traincnn = categorical(y_train.'); 
    x_testcnn = num2cell(X_test, 2);
    y_testcnn = categorical(y_test.'); 
    x_traincnn = cellfun(@(x) x', x_traincnn, 'UniformOutput', false);
    x_testcnn = cellfun(@(x) x', x_testcnn, 'UniformOutput', false);
    numClasses = numel(categories(y_train));
        sequenceInputLayer(numFeatures)
        convolution1dLayer(filterSize,numFilters,Padding="causal")
        convolution1dLayer(filterSize,2*numFilters,Padding="causal")
        globalAveragePooling1dLayer
        fullyConnectedLayer(numClasses)
    options = trainingOptions("adam", ...
        InitialLearnRate=0.01, ...
        SequencePaddingDirection="left", ...
        ValidationData={x_testcnn,y_testcnn}, ...
        Plots="training-progress", ...
    net = trainNetwork(x_traincnn, y_traincnn, layers, options);
    YPred = classify(net,x_testcnn, ...
        SequencePaddingDirection="left");
    acc = mean(YPred == y_testcnn);
    disp(["Accuracy: ", acc]);
    confMat = confusionmat(y_testcnn, YPred);
    confusionchart(y_testcnn,YPred);