sox FAIL форматы: не могу открыть входной файл '* .wav': неверный аргумент

4526
Jota

Я пытаюсь ознакомиться с sox для выполнения некоторых задач обработки аудио. В конечном счете, я хочу взять все мои файлы WAV и извлечь только один канал и сохранить их, в идеале с измененным именем (например, input 55_55.wav станет left_55_55.wav). Хорошо, сейчас, хотя я просто пробую некоторые базовые вещи и сталкиваюсь с проблемами.

Например, просмотр продолжительности всего одного файла работает нормально:

sox --i -D 55_55.wav 10.840000 

Но попытка выполнить команду для всех файлов .wav в каталоге не удалась:

sox --i -D *.wav sox FAIL formats: can't open input file '*.wav': Invalid argument 

Что здесь не так?

Я пробовал несколько вариантов (например, ./*.wavи изменение относительного местоположения *.wav), но не смог решить его. Я надеюсь выяснить, как сделать что-то с каждым файлом .wav для достижения моей цели, и кажется, что использование *.wavдля ввода может быть правильным подходом, но это не так хорошо работает. Какие-нибудь мысли?

Я думал, что-то вроде следующей лжи сработает, чтобы извлечь один канал из каждого файла и сохранить этот один канал с измененным именем, но, похоже, я был слишком обнадеживающим:

sox *.wav -c 1 left*.wav remix 1 0 sox FAIL formats: can't open output file `left*.wav`: Invalid argument 
0
`sox --i -D * .wav` работает здесь, вы находитесь в правильном каталоге? Что говорит эхо * .wav? Thor 10 лет назад 0
Чтобы извлечь левый канал из нескольких файлов и сохранить его отдельно, вам необходимо использовать цикл, например `for wavfile in * .wav; do sox "$ wavfile" "left_ $ wavfile" remix 1; done`. Thor 10 лет назад 1
Я почти уверен, что нахожусь в правильном каталоге. `ls` возвращает все ожидаемые файлы, я могу использовать команду для отдельных файлов, и текст перед`> `является правильным каталогом. Jota 10 лет назад 0
Итак, ваша проблема в том, что `* .wav` не раскрывается, в какой оболочке вы запускаете это? Попробуйте запустить цикл в оболочке bash. Thor 10 лет назад 0
Извините, я заблуждаюсь, что вы запускаете это в другой оболочке. cmd.exe также поддерживает циклы for, см., например, [этот веб-сайт] (http://www.robvanderwoude.com/for.php). Примерно так должно работать: `для% wavfile в (* .wav) сделайте sox% wavfile left_% wavfile remix 1`. Thor 10 лет назад 1

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