Преобразование ввода AVAudioRecorder в буфер с плавающей запятой

Заранее приношу извинения за несложность этого вопроса, это мое первое исследование звуковой стороны программирования iOS.

Я использую класс AVAudioRecorder для записи ввода через микрофон, используя следующий словарь настроек.

NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
[settings setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
[settings setValue:[NSNumber numberWithFloat:11025.0] forKey:AVSampleRateKey];
[settings setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey];
[settings setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

Он работает абсолютно нормально, однако проблема возникает, когда я пытаюсь использовать библиотеку echonest-codegen для создания отпечатка пальца, чтобы идентифицировать проигрываемую музыку.

Не волнуйтесь, если вы никогда не использовали его раньше, в основном я должен запустить эту функцию:

Codegen * pCodegen = new Codegen(const float* pcm[], int number_of_samples, int samples_offset);

Где const float * pcm [] - это буфер сэмплов. Мне нужно преобразовать ввод в «буфер с плавающей запятой». Меня указали на документы ExtAudioFile, но они не имеют большого смысла. Может ли кто-нибудь указать мне правильное направление? Я совершенно заблудился!

Большое спасибо!

6
задан Matthias Bauch 9 March 2015 в 06:54
поделиться