Librosa.resample() выполняет повторную выборку с более низкой скоростью, чем это необходимо

#python-3.x #machine-learning #keras #librosa #audio-processing

Вопрос:

Я выполняю некоторую предварительную обработку звука для обучения модели ML.
Все аудиофайлы набора данных:

РИФФ (литтл-эндианские) данные, ВОЛНОВОЙ звук, Microsoft PCM, 16 бит, моно 16000 Гц.

Я использую следующий фрагмент кода для повторной выборки набора данных до 8000 Гц:

 samples, sample_rate = librosa.load(filename, sr = 16000)
samples = librosa.resample(samples, sample_rate, 8000)
 

затем я использую следующий фрагмент для изменения формы новых образцов:

samples.reshape(1,8000,1)

но по какой-то причине я продолжаю получать следующую ошибку: Ошибка ValueError: не удается преобразовать массив размером 4000 в форму (1,8000,1), но размер отличается от файла к файлу, но всегда меньше 8000 Гц (желаемая частота дискретизации).

Я дважды проверил исходную частоту дискретизации, и она составила 16000 Гц, я также попытался загрузить файлы с частотой дискретизации 8000, но мне не повезло.

Комментарии:

1. Почему ты так меняешься? Если ваши входные файлы не всегда содержат 16000 образцов, то этот код совершенно неверен

2. @JonNordby Вы совершенно правы, я использовал набор данных, который нашел в Интернете, и код, написанный специально для этого набора данных, я обнаружил, что в исходном коде автор отфильтровал файлы, длина которых не превышает 16000 образцов, вы можете сказать, что это ошибка новичков, я не отфильтровал их. Спасибо.