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