8 changed files with 90 additions and 47 deletions
			
			
		| @ -0,0 +1,7 @@ | |||
| "THE BEER-WARE LICENSE" | |||
| 
 | |||
| Copyright (c) 2018 Apostolof, charaldp, tsakonag | |||
| 
 | |||
| As long as you retain this notice you can do whatever you want with this stuff. | |||
| If we meet some day, and you think this stuff is worth it, you can buy us a | |||
| beer in return. | |||
| @ -0,0 +1,77 @@ | |||
| # Technology of the sound and image, AUTH | |||
| > Speech/Music classification of audio files using machine learning techniques. | |||
| 
 | |||
| ## Clone | |||
| 
 | |||
| Clone this repo to your local machine using git: | |||
| ```bash | |||
| git clone https://github.com/laserscout/THE-Assignment.git | |||
| ``` | |||
| 
 | |||
| ## Dependencies | |||
| 
 | |||
| The way we recommend you run the scripts in this repository, in order to avoid python v.2/3 incompatibilities and/or other uncomfortable code breakage is setting up and using a virtual environment using python's module `venv` (or any other preferred) as described bellow: | |||
| 
 | |||
| ```bash | |||
| cd THE-Assignment/classifier/ | |||
| python3 -m venv myenv | |||
| source myenv/bin/activate | |||
| pip install -U scikit-learn | |||
| pip install --upgrade pandas | |||
| pip install numpy | |||
| pip install seaborn | |||
| pip install scipy | |||
| pip install essentia | |||
| ``` | |||
| 
 | |||
| ## Feature extraction | |||
| 
 | |||
| The file `feature_extraction/feature_extractor` is a python module that uses the open-source library [Essentia](http://essentia.upf.edu/documentation/index.html) to extract audio features from an audio file in the path specified in the first parameter and save the features' values to a json file in the path specified in the second parameter. | |||
| 
 | |||
| The module can be imported or executed as a script using the following command: | |||
| ```bash | |||
| python feature_extractor.py <audio_file_path> <extracted_features_file_path> <audio_file_sample_rate> | |||
| ``` | |||
| 
 | |||
| A python script is also provided for a batch feature extraction. The script can be executed using the following command: | |||
| ```bash | |||
| python batch_feature_extractor.py <audio_files_directory> <feature_files_directory> <audio_files_sample_rate> | |||
| ``` | |||
| 
 | |||
| ## Data preprocessing | |||
| 
 | |||
| The file `preprocessing/data_preprocessing` is a python module that uses the open-source library [scikit-learn](https://scikit-learn.org/stable/) to perform several data preprocessing techniques to the data previously extracted. | |||
| 
 | |||
| The module can be imported or executed as a script using the following command: | |||
| ```bash | |||
| python data_preprocessing.py <music_data_directory> <speech_data_directory> | |||
| ``` | |||
| 
 | |||
| ## Model training | |||
| 
 | |||
| The file `training/model_training` is a python module that uses the open-source library [scikit-learn](https://scikit-learn.org/stable/) to train several different models and one ensembles (Random Forest). | |||
| 
 | |||
| The module can be imported or executed as a script using the following command: | |||
| ```bash | |||
| python model_training.py <dataset_pickle> <model_selection> | |||
| ``` | |||
| 
 | |||
| Where: | |||
|  - *dataset_pickle* is the pandas pickle (.pkl) file of the dataset dataframe saved on the disk. This file is generated by the data_preprocessing module. | |||
|  - *model_selection* is a string denoting which model the script should use. It can be one of svm (SVM model), dtree (Decision tree), nn (Multi-layer Perceptron), bayes (Naive Bayes), rndForest (Random Forest). | |||
| 
 | |||
| ## Pipelines (putting it all together) | |||
| 
 | |||
| An example of how to use all the modules and functions provided can be seen reading the file `pipeline.py`. | |||
| 
 | |||
| ## Support | |||
| 
 | |||
| Reach out to us: | |||
| 
 | |||
| - [apostolof's email](mailto:apotwohd@gmail.com "apotwohd@gmail.com") | |||
| - [christina284's email](mailto:christtk@auth.gr "christtk@auth.gr") | |||
| - [laserscout's email](mailto:frankgou@auth.gr "frankgou@auth.gr") | |||
| 
 | |||
| ## License | |||
| 
 | |||
| [](https://github.com/laserscout/THE-Assignment/blob/master/LICENSE.md) | |||
| @ -1,20 +0,0 @@ | |||
| # Feature extraction | |||
| 
 | |||
| The file `feature_extractor` is a python module that uses the open-source library [Essentia](http://essentia.upf.edu/documentation/index.html) to extract audio features from an audio file in the path specified in the first parameter and save the features' values to a json file in the path specified in the second parameter. | |||
| 
 | |||
| The module can be imported or executed as a script using one of the following commands | |||
| `python feature_extractor.py <audio_file_path> <extracted_features_file_path> <audio_file_sample_rate>` | |||
| or | |||
| `python3 feature_extractor.py <audio_file_path> <extracted_features_file_path> <audio_file_sample_rate>` | |||
| 
 | |||
| A python script is also provided for a batch feature extraction. The script can be executed using one of the following commands: | |||
| `python batch_feature_extractor.py <audio_files_directory> <feature_files_directory> <audio_files_sample_rate>` | |||
| or | |||
| `python3 batch_feature_extractor.py <audio_files_directory> <feature_files_directory> <audio_files_sample_rate>` | |||
| 
 | |||
| **Dependencies:** | |||
| - essentia | |||
| - numpy | |||
| - scipy | |||
| 
 | |||
| All dependencies are available both for python2 and python3 versions and can all be installed using the commands `pip install <package_name>` or `pip3 install <package_name>` for python2 and python3 respectively. | |||
| @ -1,14 +0,0 @@ | |||
| # Data preprocessing | |||
| 
 | |||
| The file `data_preprocessing` is a python module that uses the open-source library [scikit-learn](https://scikit-learn.org/stable/) to perform several data preprocessing techniques to the data previously extracted. | |||
| 
 | |||
| The module can be imported or executed as a script using one of the following commands | |||
| `python data_preprocessing.py <music_data_directory> <speech_data_directory>` | |||
| or | |||
| `python3 data_preprocessing.py <music_data_directory> <speech_data_directory>` | |||
| 
 | |||
| **Dependencies:** | |||
| - scikit-learn | |||
| - numpy | |||
| 
 | |||
| All dependencies are available both for python2 and python3 versions and can all be installed using the commands `pip install <package_name>` or `pip3 install <package_name>` for python2 and python3 respectively. | |||
								
									Binary file not shown.
								
							
						
					| Before Width: | Height: | Size: 320 KiB | 
					Loading…
					
					
				
		Reference in new issue