Whisper is a widely used encoder-decoder model for speech recognition. Its encoder reads an utterance in one parallel pass, but its decoder writes the transcript one token at a time, which dominates inference time. Speculative decoding shortens such loops without changing their output: a small drafter guesses several upcoming tokens, and the original model verifies them all in one forward pass. We present Whisper-Flash, a two-layer drafter built on a property of speech recognition: the words still to be written have already been spoken. It reads Whisper's encoded audio and accepted decoder states and proposes eight tokens in a single forward pass. On the complete LibriSpeech test sets, Whisper-Flash processes 3.16×/2.85× as much audio per second as greedy decoding with identical outputs, and it remains faster at batch sizes up to 96 and under temperature sampling. Ablations show that direct access to the audio matters most.
Figures & tables
Figure 1: Whisper-Flash drafts eight tokens in one pass from Whisper’s acoustic memory and accepted decoder states. The verifier accepts “a cat,” replaces “standing” with “sitting” and discards later guesses; the correction becomes the next anchor. Words stand in for token IDs.
Greedy decoding
Whisper-Flash
Batch
tok/s
audio s/s
tok/s
audio s/s
SG
64 development clips (427.2 s)
1
181.7
51.93
530.8
151.68
2.92
2
266.7
76.22
765.4
218.71
2.87
4
397.8
113.69
1052.0
300.64
2.64
8
554.8
158.54
1270.4
363.04
2.29
Table 1: Throughput by batch size on an H100, timed from waveform to text: generated text tokens (tok/s) and seconds of audio processed per second. SG is the speedup over greedy decoding at the same batch size, whose tokens Whisper-Flash matches at every batch size.
Figure 2: Throughput versus batch size on the 64 development clips of Table 1 , timed from waveform to text.
Engine
Audio s/s ↑
WER (%) ↓
Whisper large-v2 systems
HF greedy
24.72
2.90
HF + length penalty
24.84
2.90
Whisper-Medusa Linear
35.82
5.80
Whisper-Medusa Block
32.14
3.79
Whisper-Medusa Block †
29.70
2.90
Table 2: Released Whisper-Medusa checkpoints and Whisper-Flash on the 64 clips of Table 1 (batch size one, waveform to text). Medusa uses large-v2, Hugging Face Transformers and its official acceptance rule; † is our exact strict-argmax Medusa-Block.
Conditioning
α (%)
τ
Audio s/s
SG
Audio + history
47.37
4.60
157.07
2.81
Without direct audio
16.48
2.23
97.55
1.69
Without target history
30.15
3.29
128.63
2.30
Table 3: Conditioning ablation on 128 development clips, batch size one. The drafters share initialization, data, seed and budget (60.7M/47.5M/52.5M trainable parameters). Each drafter ran in its own job, and SG is relative to greedy decoding timed in that job (55.9/57.7/55.9 audio s/s); all outputs match greedy decoding.
Audio s/s
WER (%)
T
AR
WF
Gain
AR
WF
0
56.26
173.68
3.09
2.24
2.24
0.2
55.06
166.18
3.02
2.21
2.21
0.4
55.22
165.84
3.00
2.14
2.33
0.6
55.34
164.51
2.97
2.35
2.37
0.8
55.49
159.12
2.87
2.77
2.95
Table 4: Temperature sampling on 256 development clips (batch size one, three runs per clip). AR samples autoregressively from the target; gain is Whisper-Flash (WF) over AR.
Appendix figures & tables7 assets
Supplementary material from the paper’s appendix.
Appendix
Batch
HF SDPA
FW core
Greedy
Whisper-Flash
64 development clips
1
19.26
38.33
51.93
151.68
2
26.66
55.72
76.22
218.71
4
36.15
82.02
113.69
300.64
8
47.13
104.71
158.54
363.04
16
55.46
121.77
194.42
403.88
Appendix
Table A1: Audio s/s of all engines by batch size (H100, waveform to text), the data behind Fig. 2 and Table 1 . FW denotes faster-whisper.
Batch
Request or group
Greedy (%)
Whisper-Flash (%)
1
p25 length
12.01
34.19
1
p50 length
8.51
20.94
1
p90 length
4.94
15.30
32
group 0
29.25
50.01
32
group 5
29.60
55.82
96
group 0
30.23
52.04
Appendix
Table A2: Encoder share of request time, from CUDA events that include host submission gaps. Batch one uses representative requests at the 25th, 50th and 90th length percentiles; larger batches use complete groups.
Duration (s)
Utterances
Speedup
[0,5)
2508
2.278
[5,10)
1948
3.045
[10,20)
965
3.807
[20,30)
122
4.024
[30,∞)
16
3.280
Appendix
Table A3: Speedup over greedy decoding on the complete test sets by utterance duration (test-clean and test-other combined, batch size one). Recordings longer than 30 s are decoded as independent 30 s segments.
Layers
Position
α (%)
a
ms
1,914 clips, 6,000 updates
2
Abs.
9.68
0.77
97.4
2
RoPE
31.94
2.56
59.3
train-clean-100, 40,000 updates
2
Abs.
48.12
3.85
47.1
5
Abs.
52.72
4.22
47.8
Appendix
Table A4: Position encoding and depth, trained with matched data, seed and budget; 32 dev-clean clips, batch size one. a is the mean number of accepted candidates per round.
K
ms
SG
α (%)
τ
1
84.74
1.41
92.54
1.89
2
66.37
1.80
87.14
2.67
4
49.94
2.39
74.74
3.85
8
43.77
2.72
54.76
5.17
Appendix
Table A5: Verifying only the first K of the eight proposals of the same drafter; 64 development clips, batch size one, timed from waveform to text.
Continuation
First (%)
α (%)
τ
ms
No continuation
82.02
46.45
4.52
41.53
train-clean-100 only
81.42
46.75
4.54
41.52
LibriSpeech (925.6 h)
87.69
53.95
5.09
38.84
+ TED-LIUM, VoxPopuli
87.24
54.21
5.12
38.77
Appendix
Table A6: Continuing the train-clean-100 drafter for 80,000 updates on different pools, evaluated on 128 dev-other clips at batch size one. “First” is first-candidate acceptance; the last row is the released drafter.
T
α (%)
τ
Gain CI
Δ WER [CI]
0
57.53
5.39
[2.99, 3.19]
0.00 [0.00, 0.00]
0.2
57.20
5.37
[2.93, 3.11]
0.00 [-0.10, +0.09]
0.4
56.48
5.31
[2.91, 3.10]
+0.18 [+0.03, +0.33]
0.6
55.46
5.23
[2.88, 3.06]
+0.01 [-0.15, +0.17]
0.8
51.66
4.94
[2.78, 2.96]
+0.18 [-0.20, +0.59]
1
44.79
4.42
[2.58, 2.77]
-0.28 [-1.25, +0.61]
Appendix
Table A7: Temperature-sampling diagnostics for Table 4 . Gain CI is the 95% interval of the throughput gain over autoregressive sampling; Δ WER is Whisper-Flash minus autoregressive sampling in percentage points, with paired 95% intervals.
Long-form speech recognition with large encoder-decoder models such as Whisper often exhibit hallucinations, repetition loops, and content omissions. These errors can accumulate and be further amplified when the previous segment's transcription is used as decoding context. We propose Whisper-CD, a training-free contrastive decoding framework that contrasts clean-audio logits against negative logits computed from three acoustically motivated perturbations: Gaussian noise injection, silence signal, and audio temporal shift. We aggregate these negatives via the log-sum-exp operator, building a unified multi-negative objective for token-by-token decoding. Across five English long-form benchmarks, Whisper-CD reduces WER by up to 24.3pp on CORAAL and shows 48% faster token generation throughput than beam search. Because Whisper-CD operates purely at inference time, it can be applied as a drop-in replacement to already-deployed Whisper systems without retraining.
Speculative decoding accelerates autoregressive inference by verifying multiple draft tokens in a single target forward pass. However, as the context grows, existing state-of-the-art drafters become increasingly expensive, eroding the very efficiency advantage they are designed to provide. We argue that this scaling is unnecessary. A standalone language model must grow with its prefix because it is solely responsible for every token it produces. A drafter, by contrast, only proposes candidates; the target catches and corrects every error before any token is committed. The drafter's decoding cost can therefore be made entirely independent of the prefix length. We introduce LongSpark, a block-diffusion drafter that achieves this by extracting fixed-size, multiscale views from the target's verification pass, thereby eliminating the need for a growing persistent state. Extensive evaluations demonstrate that LongSpark achieves state-of-the-art end-to-end efficiency across multiple model scales and realistic serving conditions. Notably, it delivers the lowest time-per-output-token on long-context tasks while reducing the drafter's context state by several orders of magnitude.
Speculative decoding speeds up generation by letting a cheap draft propose several tokens that a target model checks in one pass. In the single-model form, the draft is a lightweight module attached to the target rather than a separate model. Applying this design to Automatic Speech Recognition (ASR) introduces an extra problem. The draft can read the whole audio at every step, yet its proposals get worse as it runs on its own. Access is not localization. The accepted text keeps the transcript position explicit, but the draft must also track the changing audio position. In the primary matched comparison, per-step audio access changes the first proposal modestly but roughly doubles later-proposal acceptance. Fixed-width windows show that the audio position explains part of this gap. A correctly placed window recovers continuation, while an equally narrow window at the wrong position reduces it. Late-draft median error reaches 21 frames in the hardest reported condition, while target attention during verification stays within a 2-frame median. We test two ways to reduce this drift. The first reads the audio position from verification attention and uses it to guide the next draft round. It saves time only when the extra accepted tokens offset the readout cost. The second is AnchorDraft, which teaches the draft to track the audio position during training without changing the inference graph. The trained draft improves end-to-end speed at both tested target scales. These results show that ASR self-speculation depends on token prediction, audio-position tracking, and draft cost.