![sox は .raw から .wav にバッチ変換します](https://rvso.com/image/1554871/sox%20%E3%81%AF%20.raw%20%E3%81%8B%E3%82%89%20.wav%20%E3%81%AB%E3%83%90%E3%83%83%E3%83%81%E5%A4%89%E6%8F%9B%E3%81%97%E3%81%BE%E3%81%99.png)
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
、実際に存在するかどうか、どのような権限があるのかなどを確認します。
推測するに、ファイル名にスペースが含まれており、ファイル名の最初の部分しか取得されていない可能性があります。解決策: スクリプトで引用符を使用します。
しかし、動作しない理由は他にもある可能性があり、それを見つけるにはファイルを調べる必要があります。エラー メッセージが表示されるのには理由があります。:-)