πŸ“˜ Project Title A BP Neural Network Model with Adaptive Feature Extraction for Music Emotion Recognition in Online Music Appreciation ________________________________________ πŸ“„ Overview This project presents an emotion recognition model based on Backpropagation (BP) neural networks, designed for application in online music appreciation systems. It aims to analyze the emotional impact of music on students and enhance e-learning experiences by classifying music emotions based on extracted audio features and established psychological models (Hevner and Thayer). ________________________________________ 🧠 Key Features β€’ Adaptive Feature Extraction: Automatically extracts significant audio features from music pieces, such as tempo, pitch, rhythm, and timbre. β€’ Emotion Models: Integrates psychological emotion models (Hevner’s adjective clusters and Thayer’s arousal/valence dimensions). β€’ Neural Network-based Classification: Uses a BP neural network for supervised emotion classification. β€’ Dataset: A curated dataset of 500 pre-labeled audio samples is used for training and testing. ________________________________________ πŸ“ Project Structure . β”œβ”€β”€ data/ β”‚ β”œβ”€β”€ train/ # 324 training audio samples β”‚ β”œβ”€β”€ test/ # 176 testing audio samples β”‚ └── labels.csv # Emotion labels and metadata β”œβ”€β”€ feature_extraction.py # Extracts audio features (MFCCs, tempo, etc.) β”œβ”€β”€ preprocess.py # Data normalization and formatting β”œβ”€β”€ model.py # Defines and trains the BP neural network β”œβ”€β”€ predict.py # Loads model and predicts emotions on test data β”œβ”€β”€ evaluation.py # Evaluation metrics and visualization β”œβ”€β”€ requirements.txt # Dependencies └── README.md # Project documentation ________________________________________ πŸ› οΈ Requirements Install the required dependencies using: pip install -r requirements.txt Required Libraries: β€’ numpy β€’ pandas β€’ librosa β€’ scikit-learn β€’ tensorflow or keras (for neural network) β€’ matplotlib ________________________________________ πŸš€ How to Run Step 1: Prepare the Dataset Place your labeled training and testing audio files in the data/train/ and data/test/ directories, respectively. Ensure labels.csv contains mappings between filenames and emotion categories. Step 2: Feature Extraction python feature_extraction.py This step extracts key features (e.g., MFCCs, spectral features) and stores them in a feature matrix. Step 3: Preprocess Data python preprocess.py Normalizes and reshapes the data for input into the neural network. Step 4: Train the Model python model.py This script builds and trains the BP neural network using the training dataset. Step 5: Run Predictions python predict.py Performs emotion recognition on the test set and outputs predicted labels. Step 6: Evaluate Performance python evaluation.py Displays classification accuracy, confusion matrix, and visual reports. ________________________________________ πŸ“Š Results The model achieves high classification accuracy across common emotion categories (e.g., Happy, Sad, Calm, Angry). Based on the test set of 176 samples, it demonstrates robust generalization with low error rates. ________________________________________