import numpy as np
# Compat
from nnmnkwii.preprocessing import adjust_frame_length # noqa
from nnmnkwii.preprocessing import delta_features # noqa
from nnmnkwii.preprocessing import meanstd # noqa
from nnmnkwii.preprocessing import meanvar # noqa
from nnmnkwii.preprocessing import minmax # noqa
from nnmnkwii.preprocessing import minmax_scale # noqa
from nnmnkwii.preprocessing import remove_zeros_frames # noqa
from nnmnkwii.preprocessing import scale # noqa
from nnmnkwii.preprocessing import trim_zeros_frames # noqa
apply_delta_windows = delta_features
from .files import * # noqa
[docs]def apply_each2d_trim(func2d, X, *args, **kwargs):
"""Apply function for each trimmed 2d slice.
Args:
func2d (Function): Function applied multiple times for each 2d slice.
X (numpy.ndarray): Input 3d array of shape (``N x T x D``)
Returns:
numpy.ndarray: Output array (``N x T x D'``)
"""
assert X.ndim == 3
N, T, _ = X.shape
x = trim_zeros_frames(X[0])
y = func2d(x, *args, **kwargs)
assert y.ndim == 2
_, D = y.shape
Y = np.zeros((N, T, D))
for idx in range(N):
x = trim_zeros_frames(X[idx])
y = func2d(x, *args, **kwargs)
Y[idx][: len(y)] = y
return Y
[docs]def apply_each2d_padded(func2d, X, lengths, *args, **kwargs):
"""Apply function for each padded 2d slice.
Args:
func2d (Function): Function applied multiple times for each 2d slice.
X (numpy.ndarray): Input 3d array of shape (``N x T x D``)
lengths (array_like): Lengths for each 2d slice
Returns:
numpy.ndarray: Output array (``N x T x D'``)
"""
assert X.ndim == 3
N, T, _ = X.shape
y = func2d(X[0][: lengths[0]], *args, **kwargs)
assert y.ndim == 2
_, D = y.shape
Y = np.zeros((N, T, D))
Y[0][: len(y)] = y
for idx in range(1, N):
y = func2d(X[idx][: lengths[idx]], *args, **kwargs)
Y[idx][: len(y)] = y
return Y