以5秒的间隔连接波文件

本文关键字:连接 文件 5秒 | 更新日期: 2023-09-27 18:13:38

我有一系列具有单独单词的波文件,每个波文件持续大约1秒。我想用c#将它们以5秒的间隔连接到一个大文件中。这样我就不必把这个大文件放进声音编辑器,并记录每个单词的开始时间。

我知道如何使用NAudio和WaveFileWriter.write连接文件。是否有一种方法可以在一定时间内插入沉默,或者在文件的某一点上实际附加一个文件?我知道有一种情况,我写入的文件是11秒长,我想在15秒内写入下一个文件。

如果能让事情更容易的话,我愿意先转换成mp3格式。事实上,大波文件最终会被转换成mp3。如果更有意义的话,我也愿意使用其他工具。

非常感谢你的帮助,

Jon

以5秒的间隔连接波文件

当使用NAudio框架时,你可以访问阅读器来计算你需要写多少字节的静默

int bytesPerMillisecond = reader.WaveFormat.AverageBytesPerSecond / 1000;

然后,您可以写入所需的静默字节数,以达到下一个5秒的倍数。我假设你可以全写0,即使这样会导致没有声音,这可能听起来很假。

因此,一个更好的解决方案可能是创建一个5s的沉默波,并在其中的一个部分进行复制。关于如何写出一定长度的波,请参考下面的示例:

http://mark-dot-net.blogspot.com/2009/09/trimming-wav-file-using-naudio.html

我可能没有正确理解这个问题,但如果我这样做可能对你有用。听起来,你应该能够用录音机记录一个你想要的任何长度的"无声文件"(1秒,1/2秒)。然后,您可以使用NAudio将它的尽可能多的副本连接起来,以提供单词之间所需的静默量。换句话说,假设你有1/2秒的沉默。您可以构建word1.wav + silence.wav + silence.wav + word2.wav,以便在word1和word2之间保持一秒的静默。静默文件的长度取决于单词之间需要的精确度,您只需在应用程序中部署此静默文件即可。