【问题标题】:Sample audio from microphone to array of integers (C++/Qt)从麦克风采样音频到整数数组(C++/Qt)
【发布时间】:2017-03-16 11:14:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ qt audio sampling


    【解决方案1】:

    这里最简单的方法(因为 50% 是一个不错的整数)是向 Qt 询问 FFT 所需帧大小的 一半。您现在可以在 0&1、1&2、2&3 等帧上运行 FFT。

    【讨论】:

      猜你喜欢
      • 2015-10-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 2023-02-18
      相关资源
      最近更新 更多