| | |
| | | import collections.abc |
| | | from pathlib import Path |
| | | from typing import Union |
| | | from typing import Optional |
| | | |
| | | import random |
| | | import numpy as np |
| | |
| | | import librosa |
| | | from typeguard import check_argument_types |
| | | |
| | | import torch |
| | | import torchaudio |
| | | |
| | | from funasr.fileio.read_text import read_2column_text |
| | |
| | | always_2d: bool = False, |
| | | normalize: bool = False, |
| | | dest_sample_rate: int = 16000, |
| | | speed_perturb: Optional[list, tuple] = None, |
| | | speed_perturb: Union[list, tuple] = None, |
| | | ): |
| | | assert check_argument_types() |
| | | self.fname = fname |
| | |
| | | speed = random.choice(self.speed_perturb) |
| | | if speed != 1.0: |
| | | array, _ = torchaudio.sox_effects.apply_effects_tensor( |
| | | array, rate, |
| | | torch.tensor(array).view(1, -1), rate, |
| | | [['speed', str(speed)], ['rate', str(rate)]]) |
| | | array = array.view(-1).numpy() |
| | | |
| | | return rate, array |
| | | |