Мне нужно проанализировать био акустические звуковые файлы с помощью matlab. В конце концов я хочу найти аномалии в аудио. Именно по этой причине мне нужно найти способ представления звука таким образом, чтобы я мог извлекать и сравнивать функции. Я имею дело с mp3-файлами до 150 мб. Эти файлы слишком велики для чтения в MATLAB в его памяти. Поэтому я хочу использовать функцию memmapfile(). Я использовал следующий код и небольшой mp3-файл, чтобы узнать, как он работает.Читать и представлять mp3-файлы с использованием memmapfile в matlab
[testR, ~] = audioread('test.mp3');
testM = memmapfile('test.mp3');
disp(testM.Data);
disp(testR);
Фактические значения testM.Data и testR различны. Audioread() возвращает матрицу 7483391 x 2 и memmapfile() матрицу 4113874 x 1. Я не совсем уверен, как работает memmapfile(), я ожидал, что это будет равно друг другу. Есть ли способ читать mp3-файлы в том же формате, что и audioread(), используя memmapfile()? И что действительно возвращает memmapfile в случае аудиофайла? Может быть, он также применим в векторном формате в случае обнаружения аномалий?
Заранее благодарен!
ПРИМЕЧАНИЕ: Исходные файлы были в формате WAV IMA ADPCM с размерами от 1,5 до 2,5 ГБ. Поскольку Matlab не может работать с этим форматом и размером файлов, я преобразовал их в 8-битные mp3-файлы.
Вы правы, memmapfile - неправильное решение. Я решил прочитать файлы в кусках. Это прекрасно работает! – pevadi