Automated Methods for the Detection of Heart Murmurs in Phonocardiography Recordings

Alexis Dorier, Shaun Davidson, Sotirakis Charalampos, Mauricio Villarroel Montoya
University of Oxford


Phonocardiography (PCG) is a non-invasive method to record cardiac acoustic vibrations by auscultation at the cardiac region on the chest wall. It is a cost-effective diagnostic technique aimed at the recognition of pathological sounds and murmurs and their relation to malfunctioning heart structures to diagnose numerous heart conditions. However, the auscultation process is dependent upon the observer’s acuity of hearing, sense of timing and subjective appreciation of tonal quality of complex transient sound noises. In recent years, computer-assisted decision-support methods have been implemented to help clinicians to identify heart murmurs, however, there is no consensus on the adequate methods to use and no ground-truth datasets have been released to evaluate and compare the various proposed methods. To develop our proposed methods, we used the CirCor DigiScope dataset released in the context of the PhysioNet 2022 challenge. The dataset consists of 3,163 PCG recordings from 942 patients between the ages of 0 and 30 years old. It includes 695 healthy subjects, 179 subjects presenting heart murmurs, and 68 subjects with an unknown diagnosis. We first pre processed the PCG recordings using a 3rd-order Butterworth Infinite Impulse Response (IIR) band-pass filter, with cut-off frequencies of 25Hz and 400Hz respectively. The dataset was augmented with speed and pitch variations, leading to a total of 28,467 recordings. We then extracted Hybrid Constant-Q Transform (HCQT) features. The HCQT features were then used as inputs to a 5-convolutional layer ConvNet model. The model was trained by dividing the dataset in a 0.8/0.2 training/validation sets ratio using a stratified splitting strategy to classify each recording as normal, abnormal or unknown.

Our proposed model obtained a 97% classification accuracy in the 3-class (present/absent/unknown murmur) using the validation dataset.