A Machine Learning project for the Data Science Lab: process and methods class, Age Estimation using both tabular and raw audio features. Developed in collaboration with my colleague Daniele Famà, this repository demonstrates the end-to-end process of data loading, feature extraction, preprocessing, and model training with advanced AI regression techniques.
- AI Techniques: Utilizes CatBoost, Random Forest, and other ML algorithms for robust regression.
- Audio Feature Extraction: Gathers spectral, Mel-spectrogram, and time-domain statistics (skew, kurtosis, etc.) to capture essential speech cues.
- Tabular Feature Engineering: Cleans and preprocesses demographic and acoustic-linguistic data (outlier detection, scaling, encoding).
- Model Selection & Tuning: Employs dimensionality reduction (e.g., LDA) and hyperparameter search for optimal performance.
- Result: Achieved competitive RMSE scores on the public leaderboard, showing effectiveness of the combined approach.
For a detailed description of the methods, refer to the accompanying report.
- Clone this repository:
git clone https://github.com/AndreaLolli2912/DSL-Age-Estimation.git cd DSL-Age-Estimation
- Install dependencies:
pip install -r requirements.txt
DSL-Age-Estimation
├── catboost_info
├── data
│ ├── audios_development
│ ├── audio_evaluation
│ ├── development.csv
│ └── evaluation.csv
├── figs
├── submissions
├── utils
│ └── audio_extraction.py
├── audio_features_preprocessing.ipynb
├── main.ipynb
├── report_figures.ipynb
├── Fama_Lolli_Age_Regression.pdf
├── README.md
└── requirements.txt
data
: Place all provided.csv
files and audio folders here.utils/audio_extraction.py
: Extracts raw audio features (adjust lowcut, highcut, top_db as needed).audio_features_preprocessing.ipynb
: Converts raw audio features into tabular format (statistical summaries).main.ipynb
: Runs the entire pipeline (EDA, model training, evaluation).
-
Extract Raw Audio Features
python main/utils/audio_extraction.py
Adjust cleaning parameters (e.g.,
lowcut
,highcut
,top_db
) as desired. -
Preprocess Features
Open and runaudio_features_preprocessing.ipynb
to produce summarized data in.h5
or.csv
formats. -
Run the Model Pipeline
Usemain.ipynb
to orchestrate data loading, EDA, and model training with CatBoost/Random Forest.
- Developed by @AndreaLolli2912 in collaboration with @danielefam.
- For full technical details, please refer to our report.
Feel free to open issues or submit pull requests for improvements.