Machine Learning for IoT course at Politecnico di Torino; year 2022/2023
Development of a Deep Learning model to be used in VAD.
The following script preprocesses the audios.
Model training and inference on the test-set can be found here. The model structure, the preprocessing arguments as well as the optimization hyperparameters have been found using a parameter grid search in order to respect the following constraints notebook.
TEST ACCURACY | MEDIAN LATENCY OVER TEST | MEMORY OCCUPATION | |
---|---|---|---|
CONSTRAINT | > .97 | < 8 ms | < 25KB |
RESULT | .99 | 5 ms | 13.2 KB (zip) |
Model optimization has been performed using a combination of width scaling and weight pruning.
The trained model is deployed in the following following VAD script.
When "Go" is detected with probability higher than .95, the battery monitoring should start; wheras, when "Stop" is detected with probability higher than .95, the battery monitoring should stop. In all other cases, any action on the battery monitoring must be performed (either probability less than .95, silence or other words detected).
Battery monitoring: data about the battery status (in percentage) and the plugged power (boolean) are recorded in Redis timeseries.
An MQTT publisher has been developed with the aim of publishing the battery status and percentage of the laptop on the message broker 'mqtt.eclipseprojects.io' at port 1883. The MQTT subscriber instead stores on Redis the obtained time series.
A REST server has been developed according to the specifications present in this file. A REST client has been developed to test the server functionalities.
The pipeline has ben adapted and applied to the Emergency Vehicle Sirens Detection task