我有两个相同事件的录音,长度不同,在不同的时间开始。我想同步它们,时间偏移是已知的。我要实现以下目标:

  • 将第二个时间与时间偏移对齐。
  • 修剪第二个以匹配第一个
  • 的长度
  • 如果没有要修剪的内容,请添加静音以匹配第一个的长度。我找到了修整音频的方法,但是找不到增加静音的解决方案。 NAudio,ffmpeg或Aurio有什么方法可以做到这一点?
  • 最佳答案

    这是一种使用NAudio毫秒级写入静音的方法:

    public static void WriteSilence(WaveFormat waveFormat,
       int silenceMilliSecondLength, WaveFileWriter waveFileWriter)
    {
        int bytesPerMillisecond = waveFormat.AverageBytesPerSecond / 1000;
        //an new all zero byte array will play silence
        var silentBytes = new byte[silenceMilliSecondLength * bytesPerMillisecond];
        waveFileWriter.Write(silentBytes, 0, silentBytes.Length);
        waveFileWriter.Dispose();
    }
    

    07-27 22:00