Обработка звука для iPhone. Какой слой использовать

#iphone #audio #filtering

#iPhone #Аудио #фильтрация

Вопрос:

Я хочу применить звуковой фильтр к голосу пользователя в iPhone. Фильтр довольно тяжелый, и для получения желаемого качества требуется много звуковых сэмплов. Я не хочу применять фильтр в реальном времени, но я хочу иметь производительность почти в реальном времени. Я бы хотел, чтобы обработка происходила параллельно с записью, когда собраны необходимые сэмплы и когда пользователь останавливает запись, чтобы услышать (через несколько секунд) искаженный звук. Мои вопросы: 1. Какой технологический уровень подходит для этой задачи, например, аудиоустройства? 2. Какие шаги необходимо выполнить? 3. Какие ключевые концепции и методы API следует использовать? 4. Я хочу записать голос пользователя. Какие настройки записи для этого подходят? Если изменение моего фильтра изменяет частоту, должен ли я использовать более широкий диапазон? 5. Как я могу собрать необходимые сэмплы для моего фильтра? Как я могу обработать аудиоданные? Я имею в виду, в зависимости от настроек записи, как упаковываются данные? 6. Как я могу записать окончательную аудиозапись в файл?

Заранее спасибо!

Ответ №1:

Если вы считаете приемлемой задержку более ста миллисекунд, вы можете использовать API очереди звука, который немного проще, чем использование аудиоустройства RemoteIO, как для захвата, так и для воспроизведения звука. Вы можете обработать буферы в своем собственном NSOperationQueue по мере поступления из очереди аудио и либо сохранить обработанные результаты в файл, либо просто сохранить в памяти, если есть место.

К вопросу 4: Если ваш аудиофильтр линейный, то вам не понадобится более широкий частотный диапазон. Если вы выполняете нелинейную фильтрацию, все ставки отменяются.

Комментарии:

1. Спасибо за ваш ответ. Хотя это дает мне некоторые подсказки, у меня нет общей картины процесса в высокоуровневом дизайне. Можете ли вы или кто-нибудь другой ответить на все или более мои пункты в первоначальном вопросе?