从麦克风到整数数组 (C++/Qt) 的示例音频

Sample audio from microphone to array of integers (C++/Qt)

本文关键字:Qt 音频 C++ 麦克风 整数 数组      更新时间:2023-10-16

我正在开发一个应用程序,可以将音频从麦克风录制到整数数组。然后将数组传递给FFT和MFCC。我需要制作大约 n 个样本的帧,我需要将它们重叠 50%(它们不能并排(。所以我需要 3 个缓冲区 - 当第一个缓冲区已满时传递给 FFT。我此刻的应用程序应该记录第二个缓冲区的后半部分和第三个缓冲区的前半部分。FFT 将是单独的线程(我的想法(。

所以我尝试使用 QAudioRecorderQAudioProbe 对音频进行采样。我用processBuffer连接audioBufferProbed信号,在那里我使用buffer.constData<int>().我似乎有效。我了解缓冲区已满时发出audioBufferProbed

我不知道如何将更多缓冲区与一个记录器相关联。或者在第一个缓冲区的一半也开始写入第二个缓冲区。

最简单的方法(因为50%是一个很好的整数(是向Qt索要FFT所需帧大小的一半。您现在在帧 0&1、1&2、2&3 等上运行 FFT。