{"record":{"id":"9758809b90e8bd67","repo":"huggingface/transformers","slug":"unknown-log-mel-option-log-mel","errorCode":null,"errorMessage":"Unknown log_mel option: {log_mel}","messagePattern":"Unknown log_mel option: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/transformers/audio_utils.py","lineNumber":1013,"sourceCode":"    spectrogram = spectrogram.T\n\n    if mel_filters is not None:\n        spectrogram = np.maximum(mel_floor, np.dot(mel_filters.T, spectrogram))\n\n    if power is not None and log_mel is not None:\n        if log_mel == \"log\":\n            spectrogram = np.log(spectrogram)\n        elif log_mel == \"log10\":\n            spectrogram = np.log10(spectrogram)\n        elif log_mel == \"dB\":\n            if power == 1.0:\n                spectrogram = amplitude_to_db(spectrogram, reference, min_value, db_range)\n            elif power == 2.0:\n                spectrogram = power_to_db(spectrogram, reference, min_value, db_range)\n            else:\n                raise ValueError(f\"Cannot use log_mel option '{log_mel}' with power {power}\")\n        else:\n            raise ValueError(f\"Unknown log_mel option: {log_mel}\")\n\n        spectrogram = np.asarray(spectrogram, dtype)\n\n    return spectrogram\n\n\ndef spectrogram_batch(\n    waveform_list: list[np.ndarray],\n    window: np.ndarray,\n    frame_length: int,\n    hop_length: int,\n    fft_length: int | None = None,\n    power: float | None = 1.0,\n    center: bool = True,\n    pad_mode: str = \"reflect\",\n    onesided: bool = True,\n    dither: float = 0.0,\n    preemphasis: float | None = None,","sourceCodeStart":995,"sourceCodeEnd":1031,"githubUrl":"https://github.com/huggingface/transformers/blob/a597f974857b3d92939971296bc0deb93d33d780/src/transformers/audio_utils.py#L995-L1031","documentation":"Thrown by `spectrogram` when `log_mel` is not one of \"log\", \"log10\", or \"dB\" while `power` is not None. The log_mel parameter selects the post-processing applied to the mel spectrogram; an unrecognized string cannot be applied, so the function raises after the spectrogram has been computed but before returning.","triggerScenarios":"Calling `spectrogram(..., log_mel=\"ln\")`, `log_mel=\"dBFS\"`, `log_mel=\"Log\"` (capitalized), or any typo, together with a non-None power. Feature-extractor configs that carry a log-mel mode string hit this if the vocabulary differs.","commonSituations":"Porting mode names from librosa/torchaudio (e.g. \"log_mels\", \"db\"); casing or abbreviation mistakes in JSON configs; values copied from another model's preprocessor config.","solutions":["Use exactly one of \"log\", \"log10\", or \"dB\"","Set log_mel=None if you want the raw (mel) spectrogram without log compression","Fix the config/preprocessor override that supplies the invalid string"],"exampleFix":"// before\nspec = spectrogram(waveform, window, 400, 160, power=2.0, mel_filters=mel, log_mel=\"db\")  # ValueError\n\n// after\nspec = spectrogram(waveform, window, 400, 160, power=2.0, mel_filters=mel, log_mel=\"dB\")","handlingStrategy":"validation","validationCode":"VALID_LOG_MEL = {None, \"log\", \"log10\", \"dB\"}\nif log_mel not in VALID_LOG_MEL:\n    raise ValueError(f\"log_mel must be one of {sorted(v for v in VALID_LOG_MEL if v)}, got {log_mel!r}\")\nspec = spectrogram(waveform, window, frame_length, hop_length, power=2.0, mel_filters=mel, log_mel=log_mel)","typeGuard":"def is_valid_log_mel(v) -> bool:\n    return v is None or v in {\"log\", \"log10\", \"dB\"}","tryCatchPattern":"try:\n    spec = spectrogram(..., log_mel=log_mel)\nexcept ValueError as e:\n    if \"Unknown log_mel option\" in str(e):\n        spec = spectrogram(..., log_mel=\"log\")\n    else:\n        raise","preventionTips":["Match the pretrained model's log_mel string exactly (case-sensitive)","Map other toolkits' names ('db'->'dB', 'ln'->'log') when porting","Set log_mel=None when no log compression is wanted"],"tags":["audio","mel-spectrogram","argument-validation"],"backgroundTag":null,"analyzedSha":"a597f974857b3d92939971296bc0deb93d33d780","analyzedAt":"2026-08-14T18:24:08.354Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}