{"record":{"id":"bbf5c1d43ed15ec7","repo":"huggingface/transformers","slug":"cannot-use-log-mel-option-log-mel-with-power","errorCode":null,"errorMessage":"Cannot use log_mel option '{log_mel}' with power {power}","messagePattern":"Cannot use log_mel option '(.+?)' with power (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/transformers/audio_utils.py","lineNumber":1011,"sourceCode":"        spectrogram = np.abs(spectrogram, dtype=np.float64) ** power\n\n    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,","sourceCodeStart":993,"sourceCodeEnd":1029,"githubUrl":"https://github.com/huggingface/transformers/blob/a597f974857b3d92939971296bc0deb93d33d780/src/transformers/audio_utils.py#L993-L1029","documentation":"Thrown by `spectrogram` when `log_mel=\"dB\"` but `power` is neither 1.0 nor 2.0. The dB conversion delegates to `amplitude_to_db` for power==1.0 and `power_to_db` for power==2.0; any other exponent (e.g. 1.5, 3.0) has no defined dB reference, so it is rejected at the log-mel stage.","triggerScenarios":"Calling `spectrogram(..., power=1.5, mel_filters=..., log_mel=\"dB\")` or any non-{1.0, 2.0} power combined with log_mel=\"dB\". Feature extractors that expose both power and log_mel in config can produce this pair.","commonSituations":"Custom processors experimenting with fractional spectrogram exponents; porting Whisper-style dB logs while keeping an exotic power value; configs edited so power no longer matches the 1.0/2.0 convention.","solutions":["Use power=2.0 (power spectrogram, standard for log-mel) or power=1.0 (magnitude) when log_mel=\"dB\"","If you need a non-standard power, use log_mel=\"log\" or \"log10\" instead of \"dB\"","Check the processor config for the power/log_mel pair"],"exampleFix":"// before\nspec = spectrogram(waveform, window, 400, 160, power=1.5, 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":"if log_mel == \"dB\":\n    if power not in (1.0, 2.0):\n        raise ValueError(f\"log_mel='dB' requires power 1.0 or 2.0, got {power}\")\nspec = spectrogram(waveform, window, frame_length, hop_length, power=power, mel_filters=mel, log_mel=log_mel)","typeGuard":"def db_log_mel_supported(power: float, log_mel) -> bool:\n    return log_mel != \"dB\" or power in (1.0, 2.0)","tryCatchPattern":"try:\n    spec = spectrogram(..., power=power, mel_filters=mel, log_mel=\"dB\")\nexcept ValueError as e:\n    if \"Cannot use log_mel option\" in str(e):\n        spec = spectrogram(..., power=2.0, mel_filters=mel, log_mel=\"dB\")\n    else:\n        raise","preventionTips":["Standardize on power=2.0 + log_mel='dB' for log-mel features","Use 'log'/'log10' if you need non-standard exponents","Validate the (power, log_mel) pair when loading configs"],"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"}