提交 bfa4dd98 编写于 作者: chrisxu2014's avatar chrisxu2014

add audio augmentation

上级 3d4aba57
...@@ -88,7 +88,7 @@ class AudioSegment(object): ...@@ -88,7 +88,7 @@ class AudioSegment(object):
:rtype: AudioSegment :rtype: AudioSegment
:raises ValueError: If the number of segments is zero, or if the :raises ValueError: If the number of segments is zero, or if the
sample_rate of any two segments does not match. sample_rate of any two segments does not match.
:raises TypeError: If every item in segments is not Audiosegment :raises TypeError: If every item in segments is not AudioSegment
instance. instance.
""" """
# Perform basic sanity-checks. # Perform basic sanity-checks.
...@@ -296,7 +296,7 @@ class AudioSegment(object): ...@@ -296,7 +296,7 @@ class AudioSegment(object):
:type prior_db: float :type prior_db: float
:param prior_samples: Prior strength in number of samples. :param prior_samples: Prior strength in number of samples.
:type prior_samples: float :type prior_samples: float
:param startup_delay: Default 0.0 s. If provided, this function will :param startup_delay: Default 0.0s. If provided, this function will
accrue statistics for the first startup_delay accrue statistics for the first startup_delay
seconds before applying online normalization. seconds before applying online normalization.
:type startup_delay: float :type startup_delay: float
...@@ -401,7 +401,7 @@ class AudioSegment(object): ...@@ -401,7 +401,7 @@ class AudioSegment(object):
self.subsegment(start_time, start_time + subsegment_length) self.subsegment(start_time, start_time + subsegment_length)
def convolve(self, impulse_segment, allow_resample=False): def convolve(self, impulse_segment, allow_resample=False):
"""Convolve this audio segment with the given filter. """Convolve this audio segment with the given impulse_segment.
Note that this is an in-place transformation. Note that this is an in-place transformation.
......
...@@ -75,11 +75,11 @@ class SpeechSegment(AudioSegment): ...@@ -75,11 +75,11 @@ class SpeechSegment(AudioSegment):
:rtype: SpeechSegment :rtype: SpeechSegment
:raises ValueError: If the number of segments is zero, or if the :raises ValueError: If the number of segments is zero, or if the
sample_rate of any two segments does not match. sample_rate of any two segments does not match.
:raises TypeError: If every item in segments is not Audiosegment :raises TypeError: If every item in segments is not SpeechSegment
instance. instance.
""" """
if len(segments) == 0: if len(segments) == 0:
raise ValueError("No audio segments are given to concatenate.") raise ValueError("No speech segments are given to concatenate.")
sample_rate = segments[0]._sample_rate sample_rate = segments[0]._sample_rate
transcripts = "" transcripts = ""
for seg in segments: for seg in segments:
...@@ -116,7 +116,7 @@ class SpeechSegment(AudioSegment): ...@@ -116,7 +116,7 @@ class SpeechSegment(AudioSegment):
:rtype: SpeechSegment :rtype: SpeechSegment
""" """
audio = Audiosegment.slice_from_file(filepath, start, end) audio = Audiosegment.slice_from_file(filepath, start, end)
return cls(audio.samples, audio.sample_rate, transcripts) return cls(audio.samples, audio.sample_rate, transcript)
@classmethod @classmethod
def make_silence(cls, duration, sample_rate): def make_silence(cls, duration, sample_rate):
...@@ -128,7 +128,7 @@ class SpeechSegment(AudioSegment): ...@@ -128,7 +128,7 @@ class SpeechSegment(AudioSegment):
:param sample_rate: Sample rate. :param sample_rate: Sample rate.
:type sample_rate: float :type sample_rate: float
:return: Silence of the given duration. :return: Silence of the given duration.
:rtype: AudioSegment :rtype: SpeechSegment
""" """
audio = AudioSegment.make_silence(duration, sample_rate) audio = AudioSegment.make_silence(duration, sample_rate)
return cls(audio.samples, audio.sample_rate, "") return cls(audio.samples, audio.sample_rate, "")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册