In this challenge problem, you will write a computer program to classify environmental sounds using audio signals. Your program will consist of a Matlab function ¡°c = envclass(x,fs)¡±. For each signal ¡°x¡±, your program will return an integer number ¡°c¡± indicating the environmental sound class. Please use the provided wrapper file. Your envclass.m function can read from a .mat file which you provide and which contains the extracted summary features from the training set which you can use in classification.
You will design your algorithm based on data from the environmental sound classification database provided in Gauchospace. Please use the following class labels – rain – 0, waves – 1, fire – 2, crickets – 3 , birds -4.
Given an input audio signal x to be classified, your approach may proceed in two steps:
Step 1: Extract Summary Features from x. You will do this by first (1a) performing a block-based analysis of x to extract a variety short time features F_i, where i indexes the block, and then (1b) by computing summary statistics for each feature type. For example, if one of your features is Energy_i your summary feature F may be F=mean(Energy_i), i.e. the average energy between all blocks. This yields one number per feature. You will
Step 2: Make a preliminary determination of which summary features are best for classifying the sounds by choosing different pairs of summary features (e.g. F and G) and, for a set of labelled examples, plotting (F,G). Color each point according to the class c of the sound. Repeat for each sound signal in a subset of the data. Chose features that seem to group similar classes in different areas of the feature space. (See lecture 12 slides for an example)
Step 2: Determine the class c of the signal x from the summary features via a classifier. Use a k-Nearest Neighbors approach as described in lecture 12.