合并超过+;1500个wav文件并再次切片(在PHP中)

合并超过+;1500个wav文件并再次切片(在PHP中),php,wav,consolidation,Php,Wav,Consolidation,因为我想节省大量的工作,所以我尝试创建一个函数来合并每个文件夹的wav文件。 文件夹包含大约100到500个wav文件。 所有wav文件均为立体声、44.100 Hz和24位 有超过1500个丢失的wav文件,无法通过批处理进行编辑,因为我使用的程序(出于其他特定原因)没有批处理选项。 因此,我尝试: ->合并wav文件+0.5s静音,并制作提示列表 ->编辑大文件(在音乐编辑软件中完成) ->按提示列表(无静音)将大文件拆分回其原始文件(精确) 在我看来,最好的方法是删除文件头(保存在提示中)

因为我想节省大量的工作,所以我尝试创建一个函数来合并每个文件夹的wav文件。 文件夹包含大约100到500个wav文件。 所有wav文件均为立体声、44.100 Hz和24位

有超过1500个丢失的wav文件,无法通过批处理进行编辑,因为我使用的程序(出于其他特定原因)没有批处理选项。 因此,我尝试:
->合并wav文件+0.5s静音,并制作提示列表
->编辑大文件(在音乐编辑软件中完成)
->按提示列表(无静音)将大文件拆分回其原始文件(精确)

在我看来,最好的方法是删除文件头(保存在提示中),然后加入字节

到目前为止,我唯一知道的语言是PHP,所以我试图实现的就是PHP。 我发现我缺乏做这件事的技能和知识,我希望有人能帮助我

我试图完成的基本任务是: -制作所有wav文件的数组 -在每个文件(阵列中)后添加0.5秒的静默 -创建最终数组以将文件转换回原始文件 -删除文件头 -创建新的wave文件

一些基本功能:

function wav_scan_dir($directory){  
   $filenames = array();
   $iterator = new DirectoryIterator($directory);
   foreach ($iterator as $fileinfo) {

     if ($fileinfo->isFile() && $fileinfo->getExtension() === "wav") {
       $filenames[$fileinfo->getFilename()] = filesize($directory.$fileinfo->getFilename());
     }
}

    return $filenames;  
}

$directory = dirname(__FILE__)."/WAVES/";
$files = wav_scan_dir($directory);
由于评论额外信息:
文件夹包含:01original.wav、02original.wav、03original.wav。
编辑到
onebigfile.wav=01original.wav+0.5silence,02original.wav,+0.5silence,03original.wav.
编辑后返回(与原始wav文件的大小/长度相同):

01original.wav、02original.wav、03original.wav。

您所有的wave文件的格式和采样率都相同吗?如果没有,就没有办法将它们无损地结合起来。它们的采样率都是44.100赫兹,是24位。我对你的最终目标还是有点困惑。合并wav文件是指将一个或多个wav附加到另一个wav文件的末尾,然后添加沉默?我试图在op中给出更好的解释。好的,在这种情况下,我打算建议这是我自己和另一个人做的。它支持附加wav文件以及混合它们,并具有添加静默的功能。它目前不支持诸如注释数据之类的额外字段,因此如果文件中有任何此类信息,它将丢失这些信息。希望这能有所帮助。如果它看起来有趣,请让我知道,我可以发布一个针对您案例的代码示例。