Skip to content

vllm_omni.diffusion.models.soulx_singer.modules.preprocess.segmenter

Rule-based vocal segmentation from F0 contour (no neural net).

logger module-attribute

logger = init_logger(__name__)

VocalSegmentConfig dataclass

end_ms class-attribute instance-attribute

end_ms: int = 200

hop_ms class-attribute instance-attribute

hop_ms: int = 20

lookahead_ms class-attribute instance-attribute

lookahead_ms: int = 100

lookback_ms class-attribute instance-attribute

lookback_ms: int = 200

max_len_ms class-attribute instance-attribute

max_len_ms: int = 20000

min_len_ms class-attribute instance-attribute

min_len_ms: int = 1000

postpad_ms class-attribute instance-attribute

postpad_ms: int = 120

prepad_ms class-attribute instance-attribute

prepad_ms: int = 80

short_seg_merge_gap_ms class-attribute instance-attribute

short_seg_merge_gap_ms: int = 8000

small_gap_ms class-attribute instance-attribute

small_gap_ms: int = 500

smooth_ms class-attribute instance-attribute

smooth_ms: int = 200

start_ms class-attribute instance-attribute

start_ms: int = 120

VocalSegmenter

Bases: Module, SupportAudioInput, SupportsComponentDiscovery

config instance-attribute

config = config or VocalSegmentConfig()

support_audio_input class-attribute

support_audio_input: bool = True

verbose instance-attribute

verbose = verbose

forward

forward(
    audio: ndarray,
    sample_rate: int,
    f0: ndarray,
    *,
    base_name: str = "vocal",
    origin_wav_fn: str = "",
    verbose: bool | None = None,
) -> list[dict]