如何用c++绘制音频文件的振幅

How to plot the amplitude of audio file with c++?

本文关键字:文件 音频 何用 c++ 绘制      更新时间:2023-10-16

我正在尝试创建一个程序,使用Qt (c++),它可以绘制振幅信号(绘图像audacity但动态波形),当我播放音频文件(.wav, .mp3)使用QAudiooutputQIODevice

我所做的:
QAudioouput我可以播放任何音频文件,用qwtplot我可以在2D中绘制任何信号,在这种情况下,x轴将是时间,y轴将是振幅。

现在,我的问题是如何得到每一秒(时间)的振幅?

正常的、未压缩的音频表示只是其振幅作为时间的函数。.wav文件通常是未压缩的,所以单声道.WAV文件真的是最简单的音频文件:只是一个头跟着一系列振幅。

请注意,数字音频具有采样率。例如,32 kHz采样率意味着你的WAV文件每秒有32000个振幅。如果只有一个,你就听不见了!(& lt; 20 Hz)。你可以在Audacity中看到这一点;你可以把波形放大一点