.m4a 文件的频谱图

spectrogram of an .m4a file

解决我的main problem, I have recorded some .m4a audio files (sample)。我想先得到这样的频谱图:


由 Audacity 生成。

来自 我可以导入文件:

from pydub import AudioSegment
seg = AudioSegment.from_file("voice.m4a")
print("Information:")
print("Channels:", seg.channels)
print("Bits per sample:", seg.sample_width * 8)
print("Sampling frequency:", seg.frame_rate)
print("Length:", seg.duration_seconds, "seconds")

我知道这些频谱图绘制函数:

其中有很多示例 。但我不知道之间的步骤。如果你能帮助我知道我应该如何得到上面的情节,我将不胜感激。它不一定是 PyBud。任何其他库(甚至其他语言,只要它是自由软件!)也可以。提前感谢您的支持。

P.S. 下一步将像 here 一样实时分析环境噪声。因此,在这方面的任何帮助也将不胜感激。

这是直接来自 documentation 的示例(请参阅第 10 页):

# Example for plotting a spectrogram using this function
import audiosegment
import matplotlib.pyplot as plt
#...
seg = audiosegment.from_file("voice.m4a")
freqs, times, amplitudes = seg.spectrogram(window_length_s=0.03, overlap=0.5)
amplitudes = 10 * np.log10(amplitudes + 1e-9)
# Plot
plt.pcolormesh(times, freqs, amplitudes)
plt.xlabel("Time in Seconds")
plt.ylabel("Frequency in Hz")
plt.show()
  • 您需要安装 [AudioSegment 库](例如 pip install AudioSegment
  • 还需要安装 FFmpeg 库。在 Windows 上可以使用 Chocolatey:choco install ffmpeg