4

我有 2 个 wav 文件,我想将它们与两个音轨连接成一个文件。

是否有任何用于该任务的 api 或 .NET 中的一些内置命令,我可以以某种天才的方式使用这些命令来使该任务成为可能?

非常感谢您的帮助。:)

4

4 回答 4

2

如果我没记错的话,您可以将第二个文件中的字节附加到第一个文件的末尾。如果有任何标题数据,您需要排除它(请参阅此处

请注意,您可能会听到两个剪辑之间的咔嗒声或爆裂声,因为不会有混合。您可能可以通过淡化(逐渐将最后几毫秒的值降低到中心值)来解决这个问题。

于 2008-12-04T14:48:36.670 回答
2

如果您只需要这样做一次,那么最好的选择是使用一些专门用于该任务的软件。PraatAudacity会这样做(加入或合并两条轨道)。

Praat 也可以编写脚本,因此可以编写 Praat 脚本,然后从 .Net 应用程序中调用 Praat 和脚本。

于 2008-12-04T19:56:31.103 回答
-1

直接的方法是解释 wav 文件头,提取样本并将两个文件中的样本交织到一个新的样本流中,然后将其写入新的 wav 文件。您还可以逐个样本添加两个源 wav 文件的样本值,以将两个文件“混合”到一个轨道中。wav 文件格式并没有那么复杂,所以编写这段代码应该不会太难。此外,还有很多开源项目包含读写 wav 文件的代码。请注意,由于两个源 wav 文件具有不同的采样率,事情会变得有些棘手。检查以获取 wav 格式的描述。

于 2008-12-04T19:43:20.553 回答
-1

是的,您可以将第二个 wav 的数据(不包括其标题)附加为 sais Jon B,但您还必须修改第一个文件的标题以指示新长度,否则某些音频播放器将在第一个结束时停止部分。

对于动态连接,由于您不知道开头总 wav 的大小,您可以在第一个文件的标题上放置一个假长度,例如放置 10 小时的持续时间。

然后音频播放器应该等到您附加每个数据。它至少适用于ffmpeg

于 2016-05-12T12:35:44.657 回答