拆分并重新加入wav文件

时间:2014-09-08 00:04:17

标签: bash wav sox

我试图用一个不支持命令行批量排序的Windows程序编辑大约200个wav文件。因此,最简单的方法似乎是将wavs合并到一个文件中(它们都是短的),然后将它们按照它们编辑后的方式拆分。

Sox会给我一定的长度,当然我已经有了名字。有没有办法说,将目录中的所有wav组合成一个wav文件,同时保留名称,长度以及它们在txt文件中组合的顺序,然后使用txt将它们转换回wavs原来的名字和长度?

编辑:我似乎做错了什么。我先运行这个脚本:

#!/bin/bash
for f in *.wav
do
    dd if=$f of=new_$f bs=1 skip=44
done

然后我将所有原始文件移出文件夹,删除了第一个新文件,然后将第一个原件复制回来。然后我这样做了:

cat *.wav > merged.wav

这给了我一个应该有的大文件,但是当我用媒体播放器打开它时,它只播放第一个文件的部分,然后在播放其他文件之前停止。 / p>

2 个答案:

答案 0 :(得分:0)

不知道你想要的创意。 wav只是二进制数据的标题。只要它们都是相同的格式,样本大小的一切,你可以使用剪切或拆分从所有它们的开始剥离44个字节,保留开头的一个副本,将它们分成1个文件,做你做的想要他们,使用另一个具有相同文件名列表的脚本将其拆分回来。

答案 1 :(得分:0)

Sox可以做到这一点。

假设所有wav文件都在c:\ temp中,则命令为

sox c:\temp\*.wav c:\temp\merged.wav

(该示例适用于Windows,适用于Linux使用linux路径表示法)

为了保留长度和名字,我使用sox来获取长度和 然后从该信息创建cue-file

此提示文件稍后可用于分割音频。