Я занимаюсь разработкой приложения, которое записывает звук с микрофона в целочисленный массив. Затем массив передается в FFT и MFCC. Мне нужно сделать кадры из n сэмплов, и мне нужно, чтобы 50% их перекрывали (они не могут быть рядом). Поэтому мне нужно 3 буфера — когда первый заполнен, передается в FFT. В этот момент приложение должно записывать вторую половину второго буфера и первую половину третьего буфера. БПФ будет отдельной веткой (моя идея).
Поэтому я попытался сэмплировать звук, используя QAudioRecorder
а также QAudioProbe
, Я подключен audioBufferProbed
сигнал с processBuffer
и там я использую buffer.constData<int>()
, Кажется, это работает. я понял audioBufferProbed
испускается, когда буфер заполнен.
Я не знаю, как связать больше буферов с одним рекордером. Или начните запись во второй буфер тоже в половине первого буфера.
Самый простой способ здесь (так как 50% — это хорошее круглое число) — это спросить у Qt фреймы половина размер тех, которые вам нужны для вашего БПФ. Теперь вы запускаете БПФ над кадрами 0&1, 1&2, 2&3 и т. Д.
Других решений пока нет …