import os from typing import Dict, List, Optional, Union import braceexpand import torch import webdataset as wd from nemo.collections.asr.parts.preprocessing.segment import available_formats as valid_sf_formats from nemo.collections.common.parts.preprocessing import collections from nemo.core.classes import Dataset, IterableDataset from nemo.core.neural_types import AudioSignal, LabelsType, LengthsType, NeuralType, RegressionValuesType from nemo.utils import logging # List of valid file formats (prioritized by order of importance) VALID_FILE_FORMATS = ';'.join(['wav', 'mp3', 'flac'] + [fmt.lower() for fmt in valid_sf_formats.keys()]) def repeat_signal(signal, sig_len, required_length): """repeat signal to make short signal to have required_length Args: signal (FloatTensor): input signal sig_len (LongTensor): length of input signal required_length(float) : length of generated signal Returns: signal (FloatTensor): generated signal of required_length by repeating itself. """ repeat = int(required_length // sig_len) rem = int(required_length % sig_len) sub = signal[-rem:] if rem > 0 else torch.tensor([]) rep_sig = torch.cat(repeat * [signal])
import io import os from typing import Dict, List, Optional, Union import braceexpand import torch import webdataset as wd from nemo.collections.asr.parts.preprocessing.segment import available_formats as valid_sf_formats from nemo.collections.common.parts.preprocessing import collections from nemo.core.classes import Dataset, IterableDataset from nemo.core.neural_types import AudioSignal, LabelsType, LengthsType, NeuralType, RegressionValuesType from nemo.utils import logging # List of valid file formats (prioritized by order of importance) VALID_FILE_FORMATS = ';'.join(['wav', 'mp3', 'flac'] + [fmt.lower() for fmt in valid_sf_formats.keys()]) def repeat_signal(signal, sig_len, required_length): """repeat signal to make short signal to have required_length Args: signal (FloatTensor): input signal sig_len (LongTensor): length of input signal required_length(float) : length of generated signal Returns: signal (FloatTensor): generated signal of required_length by repeating itself. """ repeat = int(required_length // sig_len) rem = int(required_length % sig_len) sub = signal[-rem:] if rem > 0 else torch.tensor([]) rep_sig = torch.cat(repeat * [signal])