32 lines
950 B
Python
32 lines
950 B
Python
|
|
"""Contain the resample augmentation model."""
|
||
|
|
import numpy as np
|
||
|
|
|
||
|
|
from mvector.data_utils.audio import AudioSegment
|
||
|
|
|
||
|
|
from mvector.data_utils.augmentor.base import AugmentorBase
|
||
|
|
|
||
|
|
|
||
|
|
class ResampleAugmentor(AugmentorBase):
|
||
|
|
"""重采样的增强模型
|
||
|
|
|
||
|
|
See more info here:
|
||
|
|
https://ccrma.stanford.edu/~jos/resample/index.html
|
||
|
|
|
||
|
|
:param new_sample_rate: New sample rate in Hz.
|
||
|
|
:type new_sample_rate: int
|
||
|
|
"""
|
||
|
|
|
||
|
|
def __init__(self, new_sample_rate: list):
|
||
|
|
self._new_sample_rate = new_sample_rate
|
||
|
|
|
||
|
|
def transform_audio(self, audio_segment: AudioSegment):
|
||
|
|
"""Resamples the input audio to a target sample rate.
|
||
|
|
|
||
|
|
Note that this is an in-place transformation.
|
||
|
|
|
||
|
|
:param audio_segment: Audio segment to add effects to.
|
||
|
|
:type audio_segment: AudioSegment|SpeechSegment
|
||
|
|
"""
|
||
|
|
_new_sample_rate = np.random.choice(self._new_sample_rate)
|
||
|
|
audio_segment.resample(_new_sample_rate)
|