我正在尝试为教育目的编写一个音频指纹库。它基于 用于音乐识别的计算机视觉 。我有几个与论文内容有关的问题。
我知道两个字节代表一个样本,所以我编写了这个类来从 pcm 文件中提取样本。我想知道这是否正确(对不起,如果它太明显:))。
class FingerPrint: def __init__(self, pcmFile): self.pcmFile = pcmFile self.samples = [] self.init() def init(self): # Current samples currentSamples = [] # Read pcm file with open(self.pcmFile, 'rb') as f: byte = f.read(2) while byte != '': self.samples.append(byte) byte = f.read(2) fp = FingerPrint('output.pcm')
如果上面的代码没问题,那么根据书,接下来要做的就是用低通滤波器对信号进行卷积,并每 8 个样本进行一次。我不明白这些以及为什么必须这样做,如果有人可以帮助我理解,那就太棒了(如果可能的话,用代码)