ASV-Subtools Automatic Speaker Verification Toolkit Tutorials

ASV-tools Installation

Install Kaldi

We need to install the kaldi into the work directory.

1
git clone https://github.com/kaldi-asr/kaldi

Training Data

Datasets Downloading

We will use the voxceleb 1 to do the experiment demo.

https://www.robots.ox.ac.uk/~vgg/data/voxceleb/vox1.html

We need to download the dataset from the website.

Front-end files

There are several files that needed to be prerpared, and we need to follow the kaldi way:

1
2
3
wav.scp : utt-id utt-path
utt2spk : utt-id spk-id
spk2utt : spk-id utt-id

We need to use the make_voxceleb1_v2.pl

1
2
3
4
5
6
cd asv-subtools/recipe/voxceleb/prepare
# we need to prepare the preparing files in this way
make_voxceleb1_v2.pl <dataset> <path-to-data-dir>

# Usage: ./make_voxceleb1_v2.pl <path-to-voxceleb1> <dataset> <path-to-data-dir>
# e.g. ./make_voxceleb1_v2.pl /export/voxceleb1 dev data/dev

If we want to have a better shell scripting way like preparing those files, we can just do:

1
2
3
4
5
6
7
8
9
mkdir -p data/voxceleb1_train

# get all the .wav file path, eg. /data/voxceleb1/dev/id1231/...wav
find /data/voxceleb1/dev -name "*.wav" > data/voxceleb1_train/temp.lst

# generate the wav.scp, eg. id1231 data/voxceleb1/dev/id1231/...wav
# 1st. using split to cut "a" text with "/"
# 2st. cut the a[8] value with "." and save into the "b"
awk '{split($0, a, "/"); {split(a[8], b,".")}; print a[6]"-"a[7]"-"b[1], $1}' data/voxceleb1_train/temp.list > data/voxceleb1_train/wav.scp

Now we can filter the files:

1
2
3
subtools/kaldi/utils/fix_data_dir.sh

# this script helps to ensure that the various files in a data dir are correctly sorted and filtered, for example removing utterances that have no features (if feats.scp is present)

ASV-Subtools Automatic Speaker Verification Toolkit Tutorials
http://xiaos.site/2022/08/05/ASV-Subtools-Automatic-Speaker-Verification-Toolkit-Tutorials/
Author
Xiao Zhang
Posted on
August 5, 2022
Licensed under