Путаница в отношении типа данных, возвращаемых librosa.load и scipy.io.wavfile.read - PullRequest
0 голосов
/ 01 июня 2019

Я новичок в аудиопроцессинге, и мне нужна помощь для моего проекта. Может ли кто-нибудь объяснить мне разницу между типом данных, возвращаемых librosa.load, и scipy.io.wavefile.read? Первый дает массив с плавающей точкой, а второй - целочисленный. И забавно то, что размер возвращаемого массива в обоих случаях различен.

Пожалуйста, дайте некоторое представление об этом. (Вы можете использовать свой собственный аудиофайл для воспроизведения проблемы)

sig, sr = librosa.core.load(filepath, sr=None)
sig[:10]
array([ 0.00262944,  0.00108277, -0.00248273, -0.00865669, -0.0161767 ,
   -0.01958228, -0.01867038, -0.01742653, -0.01652605, -0.01589082],
  dtype=float32)

sr, y = scipy.io.wavfile.read(filepath)
y[:10]
array([  94,  -10, -217, -564, -627, -582, -527, -520, -440, -349],
  dtype=int16)

print(sig.shape)
(7711,)

y.shape
(5595,)

1 Ответ

0 голосов
/ 01 июня 2019

Посмотрите еще раз на строку документации для librosa.core.load.В первых трех предложениях написано:

Load an audio file as a floating point time series.

Audio will be automatically resampled to the given rate (default sr=22050).

To preserve the native sampling rate of the file, use sr=None.

Итак, librosa преобразует данные в число с плавающей запятой и (по умолчанию) преобразует данные в 22050 выборок в секунду.Вы использовали sr=None, поэтому я не знаю, почему длины массивов отличаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...