66import numpy as np
77import io
88import soundfile
9- import scikits . samplerate
9+ import resampy
1010from scipy import signal
1111import random
1212import copy
@@ -308,7 +308,7 @@ def normalize_online_bayesian(self,
308308 prior_mean_squared = 10. ** (prior_db / 10. )
309309 prior_sum_of_squares = prior_mean_squared * prior_samples
310310 cumsum_of_squares = np .cumsum (self .samples ** 2 )
311- sample_count = np .arange (len ( self .num_samples ) ) + 1
311+ sample_count = np .arange (self .num_samples ) + 1
312312 if startup_sample_idx > 0 :
313313 cumsum_of_squares [:startup_sample_idx ] = \
314314 cumsum_of_squares [startup_sample_idx ]
@@ -321,21 +321,19 @@ def normalize_online_bayesian(self,
321321 gain_db = target_db - rms_estimate_db
322322 self .gain_db (gain_db )
323323
324- def resample (self , target_sample_rate , quality = 'sinc_medium ' ):
324+ def resample (self , target_sample_rate , filter = 'kaiser_best ' ):
325325 """Resample the audio to a target sample rate.
326326
327327 Note that this is an in-place transformation.
328328
329329 :param target_sample_rate: Target sample rate.
330330 :type target_sample_rate: int
331- :param quality: One of {'sinc_fastest', 'sinc_medium', 'sinc_best'}.
332- Sets resampling speed/quality tradeoff.
333- See http://www.mega-nerd.com/SRC/api_misc.html#Converters
334- :type quality: str
331+ :param filter: The resampling filter to use one of {'kaiser_best',
332+ 'kaiser_fast'}.
333+ :type filter: str
335334 """
336- resample_ratio = target_sample_rate / self ._sample_rate
337- self ._samples = scikits .samplerate .resample (
338- self ._samples , r = resample_ratio , type = quality )
335+ self ._samples = resampy .resample (
336+ self .samples , self .sample_rate , target_sample_rate , filter = filter )
339337 self ._sample_rate = target_sample_rate
340338
341339 def pad_silence (self , duration , sides = 'both' ):
0 commit comments