将音频文件拆分为重叠块

问题描述 投票:0回答:1

这似乎更像是一个数学问题。

音频文件的长度为L秒。我们想把它分成相等长度的c秒。每个下一个块应该具有ø秒与前一个块的重叠。

我们可以分割这个文件多少块(N)?剩余的最后一个块r有多长时间(如果整个文件不能以这种方式划分而没有余数)?


例1:

L = 12s,c = 4s,ø = 1s。

结果:长度c的块数是N = 3,剩余的最后块长度r = 3s

Simple image to illustrate this example


没有重叠找到块的数量,其余部分就像N = L / sr = L % s一样容易。但是我不能用重叠来提出这个问题的公式或代码。任何帮助,将不胜感激。谢谢。

math audio split overlap chunks
1个回答
0
投票

N块给出了长度:

Len = N * (C - F) + F

因此,要获得未切割块的数量,我们应该划分:

K = (L - F) / (C - F)     

最后一个块长度(如果非零)是

if ((L - F) % (C - F) > 0)    
        LastLen = L - K * (C - F)        

例子:

 L = 12  C = 4  F = 1
 K = (12 - 1) / (4 - 1) = 3
 (12 - 1) % (4 - 1) > 0, so
     LastLen = 12 - 3 * 3 = 3

 L = 8  C = 5  F = 2
 K = (8 - 2) / (5 - 2) = 2
 (8 - 2) % (5 - 2)  =  0, so
     LastLen = 0
© www.soinside.com 2019 - 2024. All rights reserved.