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

2.5 KiB

Documentation

  • Class name: SaltAudioFade
  • Category: SALT/Audio/Process
  • Output node: False

SaltAudioFade节点用于对音频片段应用淡入或淡出效果,从而增强其听觉过渡。这个过程涉及从音频片段的指定点开始,在特定的持续时间内逐渐增加或减少音量。

Input types

Required

  • audio
    • 需要应用淡变效果的原始音频数据。这个参数对于定义将要进行淡变处理的音频片段至关重要。
    • Comfy dtype: AUDIO
    • Python dtype: bytes
  • fade_type
    • 指定要应用的淡变效果类型:'in'表示淡入效果(音量逐渐增加),'out'表示淡出效果(音量逐渐减小)。这个选择直接影响音频片段的听觉过渡。
    • Comfy dtype: COMBO[STRING]
    • Python dtype: str
  • fade_duration
    • 淡变效果发生的持续时间,以秒为单位。这决定了音量过渡完成所需的时间。
    • Comfy dtype: FLOAT
    • Python dtype: float

Optional

  • fade_start
    • 淡变效果在音频片段中的起始点,以秒为单位。这个可选参数允许精确控制淡变开始的时间。
    • Comfy dtype: FLOAT
    • Python dtype: float

Output types

  • audio
    • 应用了淡入或淡出效果的修改后的音频数据,增强了音频片段的听觉体验。
    • Comfy dtype: AUDIO
    • Python dtype: bytes

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class SaltAudioFade:
    @classmethod
    def INPUT_TYPES(cls):
        return {
            "required": {
                "audio": ("AUDIO", ),
                "fade_type": (["in", "out"],),
                "fade_duration": ("FLOAT", {"min": 0.01}),
            },
            "optional": {
                "fade_start": ("FLOAT", {"default": 0, "min": 0}),
            },
        }

    RETURN_TYPES = ("AUDIO", )
    RETURN_NAMES = ("audio", )
    FUNCTION = "apply_fade"
    CATEGORY = "SALT/Audio/Process"

    def apply_fade(self, audio, fade_type, fade_duration, fade_start=0):
        audio_segment = AudioSegment.from_file(io.BytesIO(audio), format="wav")

        start_ms = int(fade_start * 1000)
        duration_ms = int(fade_duration * 1000)

        before_fade = audio_segment[:start_ms]
        during_and_after_fade = audio_segment[start_ms:]

        if fade_type == "in":
            faded_part = during_and_after_fade.fade_in(duration_ms)
        else:
            faded_part = during_and_after_fade.fade_out(duration_ms)

        output = before_fade + faded_part

        return(get_buffer(output), )