Я реализую алгоритм Goertzel в быстрой iOS. Я нашел код для подключения микрофона, но я не совсем уверен, как он работает.Быстрая обработка звука в реальном времени iOS с микрофоном
Для функции Герцеля Я написал функцию, где данные образец, который должен быть обеспечен
GoertzelAlgo(sampleRate:Float, targetFreq:Float, data:[Double]) -> Double
Я хочу, чтобы вызвать эту функцию GoertzelAlgo для каждого образца, заполненный данными микрофона в режиме реального времени, но как делает installtapOnBus работы Я не совсем уверен? Я не уверен, что код внутри installTapOnBus даже выполняется.
let audioEngine = AVAudioEngine()
let inputNode = audioEngine.inputNode
let sampleCount = 2048
let bus = 0
var samplesAsDoubles = Array(count: Int(sampleCount), repeatedValue: CDouble())
let frameLength = UInt32(sampleCount) // This seems to be ignored when passed into the AudioTap, therefore reassign within block.
inputNode.installTapOnBus(0, bufferSize:frameLength, format: inputNode.inputFormatForBus(bus), block: { (
buffer: AVAudioPCMBuffer!,
audioTime : AVAudioTime!) in
// Change incomming buffer size
buffer.frameLength = UInt32(sampleCount)
// Populate array with incomming audio samples
for var i = 0; i < Int(buffer.frameLength); i++
{
samplesAsDoubles[i] = Double(buffer.floatChannelData.memory[i])
}
//Probably the Groeztel function needs to be called from somewhere here
})
Вы начали, посмотрев документацию? Есть ли определенная его часть, о которой вы неясны? https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVAudioNode_Class/index.html – clearlight
Я просмотрел документацию и даже приведенные выше компиляции кода, но я не понимаю, как образцыAsDoubles будут заполняться каждый раз. Мне нужно вызвать функцию Groetzel, как только samplesAsDoubles полностью заполняется данными микрофона. Я новичок в разработке iOS –
Что касается другой документации, которая содержит обзор и примеры использования? Такие, как ... https://developer.apple.com/library/ios/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioEssentials/CoreAudioEssentials.html – clearlight