Значения iOS AudioKit / EZAudio FFT

У меня есть приложение обработки сигналов на основе Web Audio API, и мне нужно перенести его на iOS с помощью платформы AudioKit (на основе EZAudio).

Мне нужен только частотный домен, который содержит числа от 0 до 255 в API веб-аудио.

Но в AudioKit AKFFTTap fftData возвращает мне числа с плавающей запятой от -6 до 6, а иногда и ‹1000.

Вот что я уже пробовал на ios:

инициировать процесс...

let mic = AKMicrophone()
let fftTap = AKFFTTap.init(mic)

запрос ...

return fftTap.fftData

в API веб-аудио: инициализировать...

var analyser = audioContext.createAnalyser();

запрос...

let freqDomain = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(freqDomain);
return freqDomain

Как мне вернуть те же данные?


person Gergely Vízvári    schedule 04.07.2016    source источник


Ответы (1)


В вашем веб-сценарии есть две вещи, которые отличаются от AKFFTap... Во-первых, он возвращает массив размером 256. Вероятно, это означает, что перехватываемый размер буфера составляет 512 выборок. Вы можете решить эту проблему, используя этот пользовательский AKFFTTap:

https://gist.github.com/denisb411/3e832a592ff8b79cca2afdbed432a0d0

Во-вторых, кажется, что способ, которым WebAudio читает двоичный файл сэмплов, отличается. Я предлагаю вам использовать Float32 в Интернете, так как AudioKit использует этот формат. Ссылка на это, чтобы понять больше о.

person denisb411    schedule 19.06.2017