6bc3fd6443
Pure PyTorch SelVA source for SelvaModelLoader/FeatureExtractor/Sampler nodes. Imports rewritten from selva.* to selva_core.*. mel_converter.py: replaced librosa.filters.mel with pure-numpy implementation to avoid librosa→numba→NumPy version incompatibility in some ComfyUI environments. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
772 B
Python
21 lines
772 B
Python
import torch
|
|
|
|
|
|
def generate_multiple_segments(
|
|
x: torch.Tensor,
|
|
segment_size: int,
|
|
step_size: int,
|
|
) -> torch.Tensor:
|
|
# x: (B, T, ...)
|
|
b, t, *rest = x.shape
|
|
assert t >= segment_size, f'The length of the input tensor {t} is less than the segment size {segment_size}.'
|
|
assert segment_size > step_size, f'The segment size {segment_size} should be greater than the step size {step_size}.'
|
|
# partition the tensor into segments
|
|
num_segments = (t - segment_size) // step_size + 1
|
|
segments = []
|
|
for i in range(num_segments):
|
|
segments.append(x[:, i * step_size:i * step_size + segment_size])
|
|
x = torch.stack(segments, dim=1)
|
|
|
|
return x # (B, S, T, ...)
|