在音频处理中,假设底层库(在我的例子中是 PortAudio)给了我一个二进制文件,它表示从麦克风捕获的几秒钟的音频,当它被捕获时,它使用的采样率为sr
,底层库告诉我这个二进制文件包含nf
帧数,我可以安全地假设二进制文件代表的音频持续时间是nf / sr
秒吗?
换句话说,如果我使用 的采样率sr
,我可以安全地假设我将sr
每秒获得样本吗?硬件会因为某些因素(例如限制功耗等)而丢弃一些样本吗?
在音频处理中,假设底层库(在我的例子中是 PortAudio)给了我一个二进制文件,它表示从麦克风捕获的几秒钟的音频,当它被捕获时,它使用的采样率为sr
,底层库告诉我这个二进制文件包含nf
帧数,我可以安全地假设二进制文件代表的音频持续时间是nf / sr
秒吗?
换句话说,如果我使用 的采样率sr
,我可以安全地假设我将sr
每秒获得样本吗?硬件会因为某些因素(例如限制功耗等)而丢弃一些样本吗?
您假设音频的持续时间是nf / sr
样本是正确的。请注意,这假设您的播放的采样率也是sr
. 情况可能不一定如此。
大多数音频驱动程序支持一组有限的采样输出(44.1 kHz、48 kHz、96 kHz 等)。所以如果说你的播放采样率是psr
那么实际的持续时间将是nf / (psr / sr)
秒。
请注意,大多数音频驱动程序通常不会丢弃会导致不受欢迎的音频点击的样本,而是只是具有更高的延迟以释放计算以用于其他任务。
请注意,PortAudio 并不适用于其常见问题解答中指定的播放或录制文件。