## 4 Experiments
### Running ConvNets on Low Voltage Devices  
One of the research objectives of our investigation was to discover whether ConvNets could run in situ on low-voltage devices such as Raspberry Pi or Arduino. To achieve this objective, we persisted trained RawConvNet on the sdcard of a Raspberry Pi 3 model B v1.2 computer. The Raspberry Pi was powered with a fully charged Anker Astro E7 26800 mAh portable battery. Two hundred 30-s raw audio samples from BUZZ1 train/test dataset were saved in a local folder on the Raspberry Pi.  
Two experiments were performed on the Raspberry Pi to test the feasibility of in situ audio classification with RawConvNet. In the first experiment, a conjob executed a script in Python 2.7.9 every 15 min. The script would load persisted RawConvNet into memory, load a randomly selected audio sample from the local folder with 200 samples, split the audio sample into overlapping 2-s segments, and then classify each 2-s audio segment with RawConvNet. In the first experiment, the fully charged battery supported audio classification for 40 h during which 162 30-s samples were processed. In other words, it took the system, on average, 13.66 s to process one 30-s audio sample on the Raspberry Pi 3 model B v1.2.  
In the second experiment, we modified the Python script to process a batch of four 30-s audio files once every 60 min. The objective of the second experiment was to estimate whether a batch approach to in situ audio classification would result in better power efficiency because the persisted RawConvNet would be loaded into memory only once per every four 30-s audio samples. In the second experiment, the fully charged Anker battery supported audio classification for 43 h during which 172 30-s audio samples were processed. Thus, it took the system 37.68 s, on average, to classify a batch of four 30-s audio samples, which resulted in 9.42 s per one 30-s audio sample.  
\begin{table}
\begin{tabular}{l c c c c c} \hline \hline \multirow{2}{*}{_True_} & \multicolumn{5}{c}{_Predicted_} \\ \cline{2-6}  & **Bee** & **Noise** & **Cricket** & **Total** & **Validation Accuracy** \\ \hline Bee & 969 & 31 & 0 & 1000 & 96.9\% \\ Noise & 6 & 994 & 0 & 1000 & 99.4\% \\ Cricket & 0 & 67 & 933 & 1000 & 94.8\% \\ Total Accuracy & & & & & 96.53\% \\ \hline \hline \end{tabular}
\end{table}
Table 20: Confusion matrix for RawConvNet with receptive field \(n~{}=~{}80\) on BUZZ2 validation dataset.  
\begin{table}
\begin{tabular}{l c c c c c} \hline \hline \multirow{2}{*}{_True_} & \multicolumn{5}{c}{_Predicted_} \\ \cline{2-6}  & **Bee** & **Noise** & **Cricket** & **Total** & **Validation Accuracy** \\ \hline Bee & 515 & 485 & 0 & 1000 & 51.50\% \\ Noise & 405 & 594 & 1 & 1000 & 59.40\% \\ Cricket & 0 & 53 & 947 & 1000 & 94.70\% \\ Total Accuracy & & & & & 68.53\% \\ \hline \hline \end{tabular}
\end{table}
Table 21: Confusion matrix for logistic regression on BUZZ2 validation dataset.  
\begin{table}
\begin{tabular}{l c c c c c} \hline \hline \multirow{2}{*}{_True_} & \multicolumn{5}{c}{_Predicted_} \\ \cline{2-6}  & **Bee** & **Noise** & **Cricket** & **Total** & **Validation Accuracy** \\ \hline Bee & 544 & 445 & 1 & 1000 & 55.40\% \\ Noise & 182 & 818 & 0 & 1000 & 81.80\% \\ Cricket & 0 & 42 & 958 & 1000 & 95.80\% \\ Total Accuracy & & & & & 77.33\% \\ \hline \hline \end{tabular}
\end{table}
Table 22: Confusion matrix for SpectConvNet on BUZZ2 validation dataset.