我在目录中有多个 .aiff 格式的文件,我想使用 SoX 将它们转换为 .wav。我试过 this 上的代码网站,如下
theFiles = `/Users/me/RainbowAiff/*.aiff`;
for eachFile in $theFiles; do v1=${eachFile%*.aiff};
oldFile="$v1.aiff"; newFile = "$v1.wav";
echo oldFile $oldFile; echo newFile $newFile; sox $oldFile $newFile; done
和this网站,如下
for i in `/Users/me/RainbowAiff/ *.aiff`; do echo -e "$i"; sox $i $i.wav; echo -e "$i.wav"; done;
但我在这两种情况下都收到一条错误消息,提示“无法执行二进制文件”。此错误的来源可能是什么?
最佳答案
不兼容的二进制文件导致此错误,see this question .
如果 file sox
和 uname -a
命令的输出表明二进制文件与您的操作系统(即 x86 与 ARM)之间存在差异,您需要为 SoX 找到正确的二进制文件。虽然自 2015 年以来没有 SoX 版本,但检查 this和 this找到与您的系统兼容的版本。
这个问题也和sox的文件属性有关。为了赋予它可执行属性,只需转到 sox 所在的文件夹并运行 chmod +x sox
命令(您首先需要 root 访问权限)。
关于audio - 在 SoX 中将 .aiff 转换为 .wav,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46656383/