ASVspoof Database Interface

ASVspoof Protocols

ASVspoof database provides three protocols:

* CM - protocol for presentation attack detection (PAD) experiments. It's short for countermeasure.
* ASV - protocol for automatic speaker verification (ASV) experiments.
* AS - protocol that was used in Automatic Speaker Verification Spoofing and Countermeasures Challenge (ASVspoof 2015) with anonymized Test set samples.

All these protocols are supported by bob.db.asvspoof DB interface for Bob.

Getting the data

The original data and the description of protocols can be downloaded directly from ASVspoof.

Using this interface

Once the interface package is installed, SQL database file need to be downloaded using the following command:

$ bob_dbmanage.py asvspoof download

This interface can be used to directly query and access the database protocols and samples, or/and in verification bob.bio. and PAD bob.pad. frameworks of Bob toolkit.

The database filelist can be queried via the following command line:

$ bob_dbmanage.py asvspoof dumplist --help

To use the database in verification experiments within bob.bio. framework, a bob.bio.database entry point need to be defined in the setup.py file of the package that would run these experiments as so, as follows:

'bob.bio.database': [
    'asvspoof             = bob.path.to.config.file:database',
]

The config file (other ways to defined the database are also available in Bob, please see database API documentation) would then initialize the database with the path to the directory where the actual database sample are located, as follows:

import bob.bio.base
asvspoof_input_dir = "PATH_TO_DATA"
database = bob.bio.base.database.ASVspoofBioDatabase(
    protocol = 'ASV',
    original_directory=asvspoof_input_dir,
    original_extension=".wav",
    training_depends_on_protocol=True,
)

Similarly, for PAD experiments, an entry point bob.pad.database should be defined in setup.py and bob.pad.db.ASVspoofPadDatabase should be defined in the config file.

Specifying bob.bio.database and/or bob.pad.database entry points ensures that the verification and/or PAD frameworks can find and use the database.