6

我有一个包含许多文件夹的目录,其中包含数百个 .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

4 回答 4

6

对于 Linux,请考虑:

for f in *.SPH; do sox -t sph "$f" -b 16  -t wav "${f%.*}.wav"; done
于 2017-07-23T06:29:00.503 回答
3

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

FOR %%A IN (%*) DO sox  -t raw -e mu-law -c 1 -r 8000 %%A c:\converted\%%~nA.wav

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

于 2013-10-07T18:01:46.117 回答
0
for %%a in (*.sph) do sox "%%~a" "%%~na.wav"
于 2013-09-04T19:35:05.457 回答
0

在您的 sox 目录中创建一个包含内容的 .bat 文件

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

选择要转换的文件并将其拖动到此 .bat 文件中,与 .sph 文件同名的 .wav 文件将出现在与 .sph 文件相同的文件夹中。

于 2014-02-20T03:35:33.753 回答