我已经阅读了很多关于堆栈溢出的问题,这些问题表明要混合音频,你只需将字节帧添加到一起(并确保在必要时剪辑)。但是,如果我想说音频与另一个音频混合有一些偏移,我该怎么办?例如,我希望在第一个音频达到第5个音频时将第二个音频混合到第一个音频中。
任何帮助将不胜感激!
答案 0 :(得分:0)
通常,在计算机上处理音频时,您将使用PCM样本的格式在时域中处理音频。也就是说,每秒多次,将测量该时间点的压力水平量化为数量。如果您正在使用CD质量的音频,则每秒4418个样本是采样率。该数字通常被量化为16位整数。 (-32,767至32,768)。 (其他采样率,位深度和量化都在那里并经常使用,这只是一个例子。)
如果要混合两个相同采样率的音频流,可以简单地将每个样本的值加在一起。如果你想一想,如果你听到两个来源的声音,他们的压力水平会以同样的方式相互影响。有时他们会互相取消,有时他们会互相补充。你提到剪辑......你可以这样做,但你会在混合中引入失真。当声音太大而无法量化时,它会被限制在可量化范围的最大值和最小值,从而导致听到咔嗒声,砰砰声和质量差的声音。如果你想避免这个问题,你可以将每一个的水平降低一半,保证即使两个流都达到最大水平,它们也会在适当的范围内。
现在,您的问题是将音频与偏移混合。它绝对没有什么不同。如果你想开始混合5秒,那么5 * 44,100 = 220500
,意味着将一个流的样本零对齐到另一个流的样本220500
并混合。