Ошибка SoX при объединении нескольких аудио файлов

367
user02103012

Я пытаюсь объединить папку, полную файлов WAV с командой sox *.wav combined.wavи получаю эту ошибку:

sox formats: no handler for detected file type `inode/x-empty; charset=binary' 

Я погуглил ошибку и не могу найти решения. Может кто-нибудь описать, как исправить эту ошибку, или какие флаги добавить soxпри выполнении команды? Благодарю. Вот файлы wav, которые я пытаюсь объединить:

10-51-52-0025.raw.wav 11-06-29-0030.raw.wav 11-16-29-0536.raw.wav 10-52-52-0062.raw.wav 11-07-29-0085.raw.wav 11-17-29-0749.raw.wav 10-58-28-0559.raw.wav 11-08-29-0135.raw.wav 11-18-29-0812.raw.wav 10-59-28-0655.raw.wav 11-09-29-0192.raw.wav 11-19-29-0909.raw.wav 11-00-28-0696.raw.wav 11-10-29-0242.raw.wav 11-27-07-0658.raw.wav 11-01-28-0744.raw.wav 11-11-29-0298.raw.wav 11-28-07-0731.raw.wav 11-02-28-0828.raw.wav 11-12-29-0348.raw.wav 11-29-07-0779.raw.wav 11-03-28-0876.raw.wav 11-13-29-0432.raw.wav 11-30-07-0834.raw.wav 11-04-28-0941.raw.wav 11-14-29-0483.raw.wav 11-05-28-0989.raw.wav 11-15-29-0508.raw.wav 
0

2 ответа на вопрос

0
Ipor Sircer

Лучше тебе использовать ffmpeg.

ffmpeg -f concat -i <(printf "file '$PWD/%s'\n" ./*.wav) -c copy output.wav 

https://trac.ffmpeg.org/wiki/Concatenate

0
qubodup

С http://sox.sourceforge.net/sox.html :

Чтобы определить формат входного файла, SoX будет использовать в порядке приоритета и в соответствии с данными или доступными:

  1. Параметры формата командной строки.
  2. Содержимое заголовка файла.
  3. Расширение имени файла.

Так что, если вы уверены, что файлы имеют формат WAVE, вы можете попробовать добавить -t wav:

sox -t wav *.wav combined.wav 

Если файлы на самом деле имеют формат необработанного файла или в них отсутствует информация, такая как разрядность ( -b) и скорость ( -r), вам необходимо будет также указать эти параметры. Более подробная информация о том, что в Конвертировании RAW аудиоданных в WAV с помощью сценариев .

Похожие вопросы