Files
2024-07-04 11:34:32 +08:00

2.0 KiB

Documentation

  • Class name: SaltAudioBandpassFilter
  • Category: SALT/Audio/Effect
  • Output node: False

SaltAudioBandpassFilter节点将带通滤波器应用于音频输入,允许特定频率范围内的频率通过,同时衰减该范围之外的频率。这个过程对于隔离特定频带或减少噪音非常有用。

Input types

Required

  • audio
    • 待处理的原始音频数据。这个输入对于定义将要进行带通滤波的音频内容至关重要。
    • Comfy dtype: AUDIO
    • Python dtype: bytes
  • low_cutoff_frequency
    • 带通滤波器的低频截止阈值。低于此值的频率将被衰减,有助于隔离所需的频带。
    • Comfy dtype: INT
    • Python dtype: int
  • high_cutoff_frequency
    • 带通滤波器的高频截止阈值。高于此值的频率将被衰减,进一步精细化所需频带的隔离。
    • Comfy dtype: INT
    • Python dtype: int

Output types

  • audio
    • 应用带通滤波器后的处理音频数据,允许指定频率通过,其他频率被衰减。
    • Comfy dtype: AUDIO
    • Python dtype: bytes

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class SaltAudioBandpassFilter:
    @classmethod
    def INPUT_TYPES(cls):
        return {
            "required": {
                "audio": ("AUDIO", ),
                "low_cutoff_frequency": ("INT", {"min": 20, "max": 20000, "default": 300}),
                "high_cutoff_frequency": ("INT", {"min": 20, "max": 20000, "default": 3000}),
            },
        }

    RETURN_TYPES = ("AUDIO",)
    RETURN_NAMES = ("audio",)
    FUNCTION = "apply_bandpass_filter"
    CATEGORY = "SALT/Audio/Effect"

    def apply_bandpass_filter(self, audio, low_cutoff_frequency, high_cutoff_frequency):
        audio_segment = AudioSegment.from_file(io.BytesIO(audio), format="wav")
        filtered_audio = audio_segment.low_pass_filter(high_cutoff_frequency).high_pass_filter(low_cutoff_frequency)
        return (get_buffer(filtered_audio), )