В настоящее время я занимаюсь аудиозаписью на iPhone и iPad. Здесь я сам сделал основную функцию записи звука, но я не имею ни малейшего представления о том, как записать звук выше определенной частоты, например, выше 17 000 Гц. Так может ли кто-нибудь помочь мне достичь этого? Это действительно помогло бы моей карьере много.Запись звука iPhone iPhone только на определенной частоте
ответ
Я думаю, вам нужно использовать ракурс ускорения, внутри есть API-интерфейс vDSP, который может выполнять FFT (быстрое преобразование Фурье). Он преобразует данные из временной области в частотную область. В соответствии с информацией о размере бункера вы можете извлечь величину/амплитуду после определенного размера бункера.
Я думаю, что это может решить вашу проблему.
Для vDSP вы можете обратиться к aurioTouch 2 с веб-сайта Apple.
Для как FFT работы там, Вы можете обратиться к этому вопросу - Understanding FFT in aurioTouch2
Я надеюсь, что это поможет.
P.S. AurioTouch или AurioTouch 1 не использует API vDSP. Я помню, прежде чем iOS 4 есть функция FFT, которая могла бы делать подобное, но медленнее. Таким образом, вы можете думать, что vDSP доступна только после iOS4.0
Привет, пожалуйста, помогите мне с образцом кода @KenHui – prakashsofts
Вы посмотрели на ** aurio Touch 2 ** образцы выше? –
Я исследовал в интернете я нашел эти две краски ..
Lib, чтобы найти частоту https://github.com/jkells/sc_listener
А пример, используя вышеупомянутую библиотеку https://github.com/jkells/sc_listener_sample
Я надеюсь, что, получив число частот и поставив условие, которое вы можете достичь этого .. надеюсь, что это помогает ...
Использование FFT является вычислительно дорогой и слишком ком plex по сравнению с простыми фильтрами. Если вам действительно не нужно работать в частотной области, вам следует избегать этого.
Вместо этого запустите PCM через фильтр верхних частот. Соответствующая страница wikipedia поможет вам выбрать подходящий фильтр. Если ваш минимальный предел частоты является константой, this page будет генерировать константы для вашего фильтра. В противном случае, это не так сложно динамически генерировать эти константы. Или вы можете использовать the source code для указанной страницы генерации коэффициента фильтра
Для _record_ только выше этой частоты или для пропуска через фильтр для _select_ только выше этой частоты? – sarnold
Ну, вам придется запускать оцифрованный звук через какой-то цифровой фильтр, чтобы отфильтровать более низкие частоты. Но обратите внимание, что 17 кГц - довольно высокая частота. Самая высокая общая частота дискретизации звука (и вероятный предел для iPhone) составляет 44100, что означает, что верхняя частота, которую он может обрабатывать, составляет 22,05 кГц. –