如何使用sox将.sph文件批量转换为.wav

时间:2013-09-04 18:16:49

标签: batch-file batch-processing sox

我有一个包含许多文件夹的目录,其中包含数百个.SPH文件。我需要将所有.SPH文件转换为.wav格式。我采用了以下代码:

cd %~dp0
mkdir converted
FOR %%A IN (%*) DO sox -t raw -s -2 -r 22050 -c 2 %%A "converted/%%~nA.wav"
pause

但是,它在Windows 7上没有任何作用。当我在一些.SPH文件夹中的CMD上尝试代码时:

  

sox * .SPH output.wav

它将所有* .SPH嵌入到output.wav文件中,这不是我想要的。我需要name1.SPH到name1.wav,name2.SPH到name2.wav

请帮忙。

4 个答案:

答案 0 :(得分:4)

对于Linux,考虑一下:

for f in *.SPH; do sox -t sph "$f" -b 16  -t wav "${f%.*}.wav"; done

答案 1 :(得分:1)

在Windows 7中,我需要提供目标文件的完整路径,即使我以管理员身份运行,mdkir命令也会收到权限错误,因此请预先制作目标目录并删除{ {1}}命令,然后您的SOX命令看起来应该与此类似(根据您要完成的转换或编辑使用您自己的标志):

mkdir

cmd文件不应位于文件所在的文件夹中,它应位于安装SOX的文件夹中,然后将要转换的文件拖到cmd(或bat)文件中。

答案 2 :(得分:0)

for %%a in (*.sph) do sox "%%~a" "%%~na.wav"

答案 3 :(得分:0)

使用内容

在sox目录中创建一个.bat文件
cd %~dp0
for %%a in (*.sph) do sox "%%~a" "%%~na.wav"
pause

选择并将要转换的文件拖放到此.bat文件中,与.sph文件同名的.wav文件将显示在与.sph文件相同的文件夹中。