Я пытаюсь обучить нейронную сеть, используя аудиофайлы, которые первоначально были в формате .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-битный для одного точно).
Есть ли способ получить целочисленное представление из аудиофайлов с использованием Matlab или любых других программ? Либо u-law, либо линейный штраф, если только не было лучше для обучения нейронной сети. Предпочтительно 8 бит, поскольку исходные файлы находятся в 8-битном формате.
Я действительно не понимаю .SPH. Для несжатых (и игнорировать заголовки) - файлы, хранящие амплитуды (угадайте, это должно как-то)? Могу ли я извлечь номера из этих файлов напрямую, не беспокоясь о волнах? Являются ли сигналы сохранены в последовательном порядке, так что имеет смысл разделить аудиофайлы?
Я новичок в обработке звука в целом, поэтому любые указатели будут оценены!
благодарит за ответ. жаль, что в исходном сообщении (теперь отредактированном, чтобы отразить это) было непонятно, но я преобразовал файлы в формат .wav с помощью sox. теперь я просто пытаюсь извлечь «целые числа» из wav-файлов. Единственный способ, которым я знаю, - загрузить в matlab, но я столкнулся с вышеупомянутыми ошибками при использовании функции waveread. (на самом деле я занимаюсь обучением в java, а не в matlab.) Есть ли способ получить «целые числа», используя sox вместо matlab? благодаря! –
sox in.wav out.dat (.dat содержит «числа») – marsei