2013-07-24 3 views
2

Я пытаюсь обучить нейронную сеть, используя аудиофайлы, которые первоначально были в формате .SPH. Мне нужно получить целые числа, которые представляют амплитуду звуковых волн для нейронной сети, поэтому я использовал sox для преобразования файлов в формат .wav, вызвав sox infile.SPH outfile.wav remix 1-2 (ремикс для преобразования 2 каналов в 1), а затем попытался использовать [y, Fs, nbits, opts] = wavread('outfile.wav') в matlab, чтобы получить целочисленное представление.получить целочисленное представление .SPH аудиофайлов

Однако бросил Data compression format (CCITT mu-law) is not supported. MATLAB Так что я использовал sox infile.SPH -b 16 -e signed-integer -c 1 outfile.wav , который я думаю, помещает файл волны в линейном формате вместо мю-закону. Но теперь в Matlab появилась еще одна ошибка: Invalid Wave File. Reason: Cannot open file.

Мои аудиофайлы состоят из одно- или двухканальных U-законов с 8000 Гц, и все в 8-битном я думаю (8-битный для одного точно).

  1. Есть ли способ получить целочисленное представление из аудиофайлов с использованием Matlab или любых других программ? Либо u-law, либо линейный штраф, если только не было лучше для обучения нейронной сети. Предпочтительно 8 бит, поскольку исходные файлы находятся в 8-битном формате.

  2. Я действительно не понимаю .SPH. Для несжатых (и игнорировать заголовки) - файлы, хранящие амплитуды (угадайте, это должно как-то)? Могу ли я извлечь номера из этих файлов напрямую, не беспокоясь о волнах? Являются ли сигналы сохранены в последовательном порядке, так что имеет смысл разделить аудиофайлы?

Я новичок в обработке звука в целом, поэтому любые указатели будут оценены!

ответ

0

Вам необходимо четко определить основную задачу: подавать нейронную сеть с помощью векторов или матрицы. Итак, первым шагом будет работа над звуковым файлом (без Matlab!), Чтобы иметь wav-файлы. Второй шаг - установка/тренировка нейронной сети с помощью Matlab.

Я бы попытался распаковать «sph» файлы, а затем преобразовать их в «wav» (например, см. Инструкции here и here).

Наконец, использование sox в окне команды/терминала лучше, чем использование его в консоли matlab.

+0

благодарит за ответ. жаль, что в исходном сообщении (теперь отредактированном, чтобы отразить это) было непонятно, но я преобразовал файлы в формат .wav с помощью sox. теперь я просто пытаюсь извлечь «целые числа» из wav-файлов. Единственный способ, которым я знаю, - загрузить в matlab, но я столкнулся с вышеупомянутыми ошибками при использовании функции waveread. (на самом деле я занимаюсь обучением в java, а не в matlab.) Есть ли способ получить «целые числа», используя sox вместо matlab? благодаря! –

+0

sox in.wav out.dat (.dat содержит «числа») – marsei