我有一个包含原始PCM字节流的文件。有没有一种方法可以仅从文件本身中找出采样率和位深度?某种分析仪或类似的东西;我只想避免尝试通过随机设置播放流来猜测属性。
最佳答案
假设输入是合理的,则可以通过找到高频噪声最小的可能性来推断位深度/编码。
除非存在可以检测到的预期频率的噪声成分(例如,对电源线嗡嗡声的某些研究),或者给定记录器的声学特性(例如,麦克风直径上的干扰),否则采样率可能会很棘手。或将影响噪声频谱的 shell 。许多来源还可能使用一致的硬件采样率,并在需要其他采样率时将其转换,这可能会留下伪像。但是对于未指定硬件的良好录制,这确实是一个挑战。
另一个相关的挑战是以两倍的采样率将交错的立体声与单声道区分开。这变得棘手,因为在低频时,您期望两个通道中的内容相同,而在高频时,您会期望相位差。但是,即使在单声道音轨中,您也不会期望低频分量在连续采样之间发生很大变化,而您会期望高频分量这样做。一种想法可能是在高频下寻找可能的左右之间的延迟(或高级)相关性。另一个可能是要查看连续低频分量之间的相位差是否包含两个单独的单调间隔的交错序列,而这两个之间(立体声)或单个均匀间隔的单调序列(单声道)之间的差异无关。