#iphone #audio #filtering
#iPhone #Аудио #фильтрация
Вопрос:
Я хочу применить звуковой фильтр к голосу пользователя в iPhone. Фильтр довольно тяжелый, и для получения желаемого качества требуется много звуковых сэмплов. Я не хочу применять фильтр в реальном времени, но я хочу иметь производительность почти в реальном времени. Я бы хотел, чтобы обработка происходила параллельно с записью, когда собраны необходимые сэмплы и когда пользователь останавливает запись, чтобы услышать (через несколько секунд) искаженный звук. Мои вопросы: 1. Какой технологический уровень подходит для этой задачи, например, аудиоустройства? 2. Какие шаги необходимо выполнить? 3. Какие ключевые концепции и методы API следует использовать? 4. Я хочу записать голос пользователя. Какие настройки записи для этого подходят? Если изменение моего фильтра изменяет частоту, должен ли я использовать более широкий диапазон? 5. Как я могу собрать необходимые сэмплы для моего фильтра? Как я могу обработать аудиоданные? Я имею в виду, в зависимости от настроек записи, как упаковываются данные? 6. Как я могу записать окончательную аудиозапись в файл?
Заранее спасибо!
Ответ №1:
Если вы считаете приемлемой задержку более ста миллисекунд, вы можете использовать API очереди звука, который немного проще, чем использование аудиоустройства RemoteIO, как для захвата, так и для воспроизведения звука. Вы можете обработать буферы в своем собственном NSOperationQueue по мере поступления из очереди аудио и либо сохранить обработанные результаты в файл, либо просто сохранить в памяти, если есть место.
К вопросу 4: Если ваш аудиофильтр линейный, то вам не понадобится более широкий частотный диапазон. Если вы выполняете нелинейную фильтрацию, все ставки отменяются.
Комментарии:
1. Спасибо за ваш ответ. Хотя это дает мне некоторые подсказки, у меня нет общей картины процесса в высокоуровневом дизайне. Можете ли вы или кто-нибудь другой ответить на все или более мои пункты в первоначальном вопросе?