Skip to content

aau-es-ml/adversarial_speech_filterbank_defence

Repository files navigation

Adversarial Speech Filterbank Defence

Can you distinguish these two samples?

sample1.mov
sample2.mov
Sample 1 Sample 2
wav wav

And if we let you know, a deep speech recongizer would classify one of these samples as "Open all doors"?

This work strives to detect these adversarial attacks by employing the underutilised power of cepstral coefficients computed using designed filter-banks and especially inverse filter-banks as shown in our article.

To get started trying to run our experiments yourself, just follow the steps below.

Usage

install requirements from pip install -r requirements.txt

One go

run python run_all.py

Manually

Firstly

- Download the required dataset, no official hosting is available.

- Setup dataset paths in path_config.py, under the ./config path of this project 

- use Robust Voice Activity Detection (Speech/Silence) on the raw dataset to split dataset into speech and silence parts; asc_split_speech.py

- asc_noise_augmentation.py

Then 
1. asc_cepstral_features.py
2. asc_train.py
3. asc_test.py
4. asc_extract_csv.py
5. asc_plot_agg.py

Citations

Christian Heider Nielsen and Zheng-Hua Tan, "Leveraging Domain Features for Detecting Adversarial Attacks Against Deep Speech Recognition in Noise," IEEE Open Journal of Signal Processing, vol. 4, pp. 179-187, 2023.

Dataset is available here.