Source code for voicebox.effects.tail

__all__ = ["Tail"]

from dataclasses import dataclass

import numpy as np

from voicebox.audio import Audio
from voicebox.effects.effect import Effect


[docs] @dataclass class Tail(Effect): """ Adds ``seconds`` of silence to the end of the audio. This is useful for adding space between audio clips, or for allowing time-based effects (e.g. reverb) to decay naturally instead of being abruptly cut off. """ seconds: float = 1.0
[docs] def apply(self, audio: Audio) -> Audio: samples = round(self.seconds * audio.sample_rate) tail = np.zeros(samples, dtype=audio.signal.dtype) audio.signal = np.concatenate([audio.signal, tail]) return audio