пакетное преобразование sox из .raw в .wav

пакетное преобразование sox из .raw в .wav

Я пытаюсь преобразовать файлы 728 .raw в файлы 16 кГц .wav, но получаю следующую ошибку

sox FAIL форматы: невозможно открыть входной файл `outputdir/rawfile/b95981d1-3aa6-4d10-b755-990915951efc': Такого файла или каталога нет

Я использую скрипт

#!/bin/bash

mkdir -p "outputdir"
for i in rawfile/*.raw; do 
    o=outputdir/${i}
    sox "$i" -r 16000 -e signed ${o%.raw} ${o%.wav}
done

скрипт находится в convert.sh, а файлы raw находятся в папке rawfiles. Структура файла такая

/Оригинал/rawfiles/.rawfiles

и

/Оригинал/convert.sh

У меня есть 728 файлов для конвертации .raw файлов в 16 бит 16 кГц моно wav файлы. Какие изменения мне нужно сделать, чтобы устранить ошибку и конвертировать файлы?

решение1

Сообщение об ошибке гласит: «Невозможно открыть входной файл xxx: такого файла нет», поэтому первым шагом будет перейтисмотретьфайл xxxи посмотрите, существует ли он на самом деле, какие у него разрешения и т. д.

Если бы мне пришлось угадывать: Имя файла содержит пробелы, и вы получили только первую часть имени файла. Решение: Используйте кавычки в скрипте.

Но могут быть и другие причины, по которым это не работает, и способ узнать это — проверить файл. Сообщение об ошибке там не просто так. :-)

Связанный контент