  In recent years, many innovative solutions for recording and viewing sounds
from a stethoscope have become available. However, to fully utilize such
devices, there is a need for an automated approach for detecting abnormal lung
sounds, which is better than the existing methods that typically have been
developed and evaluated using a small and non-diverse dataset.
  We propose a machine learning based approach for detecting crackles in lung
sounds recorded using a stethoscope in a large health survey. Our method is
trained and evaluated using 209 files with crackles classified by expert
listeners. Our analysis pipeline is based on features extracted from small
windows in audio files. We evaluated several feature extraction methods and
classifiers. We evaluated the pipeline using a training set of 175 crackle
windows and 208 normal windows. We did 100 cycles of cross validation where we
shuffled training sets between cycles. For all the division between training
and evaluation was 70%-30%.
  We found and evaluated a 5-dimenstional vector with four features from the
time domain and one from the spectrum domain. We evaluated several classifiers
and found SVM with a Radial Basis Function Kernel to perform best. Our approach
had a precision of 86% and recall of 84% for classifying a crackle in a window,
which is more accurate than found in studies of health personnel. The
low-dimensional feature vector makes the SVM very fast. The model can be
trained on a regular computer in 1.44 seconds, and 319 crackles can be
classified in 1.08 seconds.
  Our approach detects and visualizes individual crackles in recorded audio
files. It is accurate, fast, and has low resource requirements. It can be used
to train health personnel or as part of a smartphone application for Bluetooth
stethoscopes.
