Чтение файла .wav в Matlab Coder

Я хочу прочитать аудиофайл с помощью matlab coder. Проблема в том, что wavread() не поддерживается, но поскольку это довольно важная часть любого кодирования звука, я думаю, что должен быть другой способ добиться этого? Есть идеи?


person Michael Ward    schedule 29.02.2012    source источник


Ответы (3)


Каков ваш вариант использования? Если вы действительно просто хотите запустить сгенерированный код в MEX-функции в MATLAB, вы можете использовать coder.extrinsic для вызова wavread. Это не будет работать вне среды MATLAB.

Вне среды MATLAB вам потребуется использовать пользовательскую интеграцию кода C.

person Fred smith    schedule 23.05.2012

Формат файла WAV довольно прост и широко документирован, например здесь. Вы можете использовать низкоуровневые функции файлового ввода-вывода, fopen(), fread(), fseek, чтобы прочитать файл, предполагая, что они сами доступны. Это именно то, что wavread() делает внутри - взгляните на источник.

person Max    schedule 29.02.2012
comment
К сожалению, fopen() недоступен в Matlab Coder. В противном случае это был бы самый простой вариант. Кажется, необходима какая-то интеграция с c-кодом, чего я хотел бы избежать, если это возможно. - person Michael Ward; 01.03.2012

fopen() теперь поддерживается, начиная с Matlab 2013a. см. здесь .

person student1    schedule 21.07.2013
comment
Я хотел, чтобы это был комментарий к приведенному выше ответу, но я не смог этого сделать. - person student1; 21.07.2013