Sum-product networks (SPNs) with Gaussian leaves are used as speaker models for automatic speaker identification (ASI) [1]. An example of an SPN with univariate Gaussian leaves is shown in Figure 1. Marginalisation and bounded marginalisation, as proposed by Cook et al., are used to significantly increase the robustness of the SPN speaker models to noise. To identify the reliable spectral components for marginalisation, an a priori SNR estimator is used.
Figure 1: SPN speaker model with univariate Gaussian leaves. |
git clone https://github.com/anicolson/SPN-ASI.git
cd SPN-ASI
virtualenv --system-site-packages -p python3 ~/venv/SPN-ASI
source ~/venv/SPN-Spk-Rec/bin/activate
pip install -r requirements.txt
TIMIT corpus for clean speech:
The clean speech of the speakers included in the TIMIT corpus are used to train the ASI system. The path to the TIMIT corpus is set in config.sh
. If there is an issue with SPHERE .wav files, please use the following script.
Noisy speech and a priori SNR estimates:
The noisy speech and a priori SNR estimates used for testing the ASI system can be obtained from: http://dx.doi.org/10.21227/nbec-q510. Please see the Deep Xi repository if you require outputs from an a priori SNR estimator. The paths to the noisy speech and a priori SNR estimates are set in config.sh
.
Training:
./run.sh TRAIN 1
Identification:
./run.sh IDENTIFICATION 1 MARG 1 BOUNDS 1
MARG
is the flag for the marginalisation, and BOUNDS
specifies whether bounds are to be used with marginalisation.
Please cite the following: