我希望使用specgram将录制的音频(通过麦克风)和处理过的音频(WAV文件)可靠地转换为Python中相同的离散化表示形式。
我的流程如下:
基本上,当我到达最后一个离散化过程时,我希望尽可能可靠地在同一首歌的频率/时间/幅度空间中得到相同的值。
我的问题是如何计算录音和WAV读取音频的音量(即样本的幅度)不同?
我的标准化选项(可能?):
我该如何解决这个问题?我几乎没有信号处理知识或经验。
答案 0 :(得分:2)
WAV文件和录制的音频的光谱永远不会具有完全相同的形状,因为来自麦克风源的音频数据在到达您的计算机的过程中会受到额外的干扰。这些干扰可以平衡,但这可能比你想做的更多。
就归一化而言,我建议缩放麦克风信号的频谱,使其能量与WAV文件频谱的能量相匹配(其中“能量”是FFT系数的平方幅度之和)。
现在,您提到您希望信号的频谱图尽可能相似。由于频谱图是信号频谱随时间变化的曲线图,您可能希望尝试在每个时间间隔重新规范化,而不是在整个音频记录中进行一次归一化。