Образец аудио с микрофона в массив целых чисел (C ++ / Qt)

Я занимаюсь разработкой приложения, которое записывает звук с микрофона в целочисленный массив. Затем массив передается в FFT и MFCC. Мне нужно сделать кадры из n сэмплов, и мне нужно, чтобы 50% их перекрывали (они не могут быть рядом). Поэтому мне нужно 3 буфера — когда первый заполнен, передается в FFT. В этот момент приложение должно записывать вторую половину второго буфера и первую половину третьего буфера. БПФ будет отдельной веткой (моя идея).

Поэтому я попытался сэмплировать звук, используя QAudioRecorder а также QAudioProbe, Я подключен audioBufferProbed сигнал с processBuffer и там я использую buffer.constData<int>(), Кажется, это работает. я понял audioBufferProbed испускается, когда буфер заполнен.

Я не знаю, как связать больше буферов с одним рекордером. Или начните запись во второй буфер тоже в половине первого буфера.

0

Решение

Самый простой способ здесь (так как 50% — это хорошее круглое число) — это спросить у Qt фреймы половина размер тех, которые вам нужны для вашего БПФ. Теперь вы запускаете БПФ над кадрами 0&1, 1&2, 2&3 и т. Д.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]