gpt4 book ai didi

python - 归一化音频信号

转载 作者:行者123 更新时间:2023-11-28 17:45:29 26 4
gpt4 key购买 nike

我想使用 specgram 将录制的音频(通过麦克风)和处理过的音频(WAV 文件)可靠地转换为 Python 中相同的离散化表示形式.

我的流程如下:

  1. 获取原始样本(从文件中读取或从麦克风流中读取)
  2. 执行一些标准化(???)
  3. 使用窗口执行 FFT 以生成频谱图(绘制频率与时间和振幅峰值)
  4. 离散化音频中的峰值然后记住

基本上,当我进入最后一个离散化过程时,我希望尽可能可靠地为同一首歌曲在频率/时间/振幅空间中得出相同的值。

我的问题是如何解释录制音频和读取 WAV 音频时的音量(即样本振幅)的差异?

我的规范化选项(也许?):

  • 在 FFT 之前将窗口中的所有样本除以均值
  • Detrend FFT 之前窗口中的所有样本
  • 在 FFT 之前将窗口中的所有样本除以最大幅度样本值(对噪声和异常值敏感)
  • 将频谱图中的所有振幅除以平均值

我该如何解决这个问题?我几乎没有信号处理知识或经验。

最佳答案

WAV 文件的频谱和录制的音频永远不会具有完全相同的形状,因为来自麦克风源的音频数据在传输到您的计算机的过程中会受到额外的干扰。这些干扰可以被消除,但这可能比你想做的要多。

就标准化而言,我建议缩放麦克风信号的频谱,使其能量与 WAV 文件的频谱相匹配(其中“能量”是 FFT 系数的平方幅度之和)。

现在,您提到您希望信号的频谱图尽可能相似。由于频谱图是信号频谱随时间变化的曲线图,您可能希望在每个时间间隔尝试重新归一化,而不是在整个音频记录中只归一化一次。

关于python - 归一化音频信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18808750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com