Human listener
Keep the message
Speech remains recognizable and understandable within a strict amplitude budget.
Deep Learning & Applied AI · Sapienza 2026
Fast generative perturbations for breaking Whisper ASR.
Train once, then perturb a new speech waveform in a single forward pass. The result stays understandable to a listener while pushing Whisper far away from the original transcript.
δ ≤ ε
→
Gθ(x)
01 · The idea
NoWhisper turns a slow, sample-specific waveform attack into a reusable generator. It learns the attack once, then produces a bounded perturbation for unseen speech without per-clip optimization.
Human listener
Speech remains recognizable and understandable within a strict amplitude budget.
Whisper ASR
Substitutions and insertions push the decoded text away from the original speech.
02 · Method
Both paths optimize the same idea: increase Whisper’s reference loss while keeping the waveform bounded.
White-box reference
Gradients pass through Whisper’s differentiable frontend for many update steps.
StrongSlow per waveform
Amortized attack
The trained network predicts a complete perturbation in a single evaluation.
ReusableOne forward pass
x_adv = clip(x + Π[-ε, ε](δ), -1, 1)
x_gen = clip(x + ε tanh(Gθ(x)), -1, 1)
The projection and tanh parameterization enforce the same L∞ amplitude budget in both pipelines.
03 · Model
Skip connections preserve local speech structure while dilated residual blocks expand temporal context.
The surprising result
The strongest generator skipped teacher imitation and attacked Whisper’s reference loss directly.
Blocks: Conv1D, GroupNorm, SiLU, dilation, channel projection, and residual paths.
Objective: adversarial reference loss plus waveform regularizers and optional waveform or spectral teacher losses.
J(θ) = -w_adv L_ref(x_gen, y) + R_gen + optional teacher losses
04 · Evidence
The same ε = 0.0075 generator was evaluated on 100 held-out clips per model without retraining.
| Model | WER clean → adversarial | CER clean → adversarial | Success | SNR |
|---|---|---|---|---|
| Small | 0.047 → 3.825 | 0.020 → 3.028 | 99% | 20.79 dB |
| Medium | 0.033 → 2.242 | 0.014 → 1.860 | 98% | 20.79 dB |
| Large-v3 | 0.023 → 2.817 | 0.009 → 2.248 | 96% | 20.79 dB |
At ε = 0.005 the best 20-epoch run reached 2.165 WER at 23.37 dB. Strong masking raised SNR to 23.64 dB but reduced adversarial WER to 0.064.
05 · Run locally
Clone, install the matching PyTorch group, and launch the Gradio interface. No generator training is required.
git clone https://github.com/Reewd/NoWhisper.git
cd NoWhisper
uv sync --group cpu
uv run --group cpu nowhisper-ui
models/generators/resunet1d/latest.pt
Loaded lazily when generator mode is first used.
cpu with cu126 or cu130.Editable reference text appears here before the attack.
06 · Limits & resources
At roughly 20–23 dB SNR, the speech is understandable but the perturbation can still be audible.
The strongest reported masking preserved quality but barely moved WER.
Other ASR families, languages, and over-the-air playback remain future tests.
Learned perceptual objectives, multilingual evaluation, physical playback tests, and adversarial training are the clearest next steps.