合并多个wav文件

还是用到了sox这个工具,下载地址:

https://sourceforge.net/projects/sox/files/sox/14.4.1/

合并两个wav文件的命令:

sox 1.wav 2.wav combined.wav


由于我有一个名为16k的文件夹下有一系列的wav文件需要合并成单个的wav文件,所以我希望通过批处理来完成这件事情。
需要注意的是,我试过写成:
sox 1.wav 2.wav 2.wav

我原本是希望用这个命令拼接1.wav和2.wav两个文件并用新的合并文件覆盖原来的2.wav文件,但是这样写并不能达到目的,最后生成的新的2.wav文件里面实际上是两个1.wav文件的拼接。

那么如果换成下面的形式:

sox 1.wav 2.wav 1.wav

会出现sox WARN wav: Premature EOF on .wav input file的警告,最后1.wav和2.wav文件都会变成2.wav文件的内容。

所以最后的批处理语句为:

setlocal enabledelayedexpansion
set /a old=1
move /-y 16k\0.wav 0.wav & 
for %%A in (16k\*.wav) do (
set /a new=!old!+1 & 
sox %%A !old!.wav !new!.wav & 
del !old!.wav & 
set /a old=!old!+1 )


上述批处理过程主要完成的步骤:
1. 将需要合并的wav文件夹中的一个文件剪切出来并重命名为第一个合并文件。
2. 遍历wav文件夹中剩下的文件,每一个文件都和上一个合并文件合并成一个新的文件,然后删除上一个合并文件,以此往复。



你可能感兴趣的:(合并多个wav文件)