合并多个wav文件

这篇博客介绍了如何利用sox工具进行音频文件的合并。作者遇到在尝试合并两个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 <span style="font-family: Arial, Helvetica, sans-serif;">(</span>
<span style="font-family: Arial, Helvetica, sans-serif;">set /a new=!old!+1 & </span>
<span style="font-family: Arial, Helvetica, sans-serif;">sox %%A !old!.wav !new!.wav & </span>
<span style="font-family: Arial, Helvetica, sans-serif;">del !old!.wav & </span>
<span style="font-family: Arial, Helvetica, sans-serif;">set /a old=!old!+1 )</span>


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



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值