sox は .raw から .wav にバッチ変換します

sox は .raw から .wav にバッチ変換します

728 .raw ファイルを 16khz .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

.raw ファイルを 16 ビット 16khz モノラル wav ファイルに変換するファイルが 728 個あります。エラーを削除してファイルを変換するには、どのような変更を行う必要がありますか?

答え1

エラーメッセージには「入力ファイルを開けませんxxx: そのようなファイルはありません」と表示されるので、最初のステップは見てファイルにアクセスしてxxx、実際に存在するかどうか、どのような権限があるのか​​などを確認します。

推測するに、ファイル名にスペースが含まれており、ファイル名の最初の部分しか取得されていない可能性があります。解決策: スクリプトで引用符を使用します。

しかし、動作しない理由は他にもある可能性があり、それを見つけるにはファイルを調べる必要があります。エラー メッセージが表示されるのには理由があります。:-)

関連情報