Инвертировать звук через микрофон - PullRequest
0 голосов
/ 17 ноября 2011

Я пытаюсь инвертировать звуковые волны, поступающие через микрофон моего iPhone, прежде чем они попадут в наушники, но я не могу найти функцию для этого.Есть идеи?

Ответы [ 3 ]

3 голосов
/ 17 ноября 2011

Для этого нет встроенной аудиофункции. Потенциально вы можете использовать векторное масштабирование vDSP со шкалой -1, если у вас уже есть вектор выборок.

Обратите внимание, что люди обычно не могут слышать разницу между звуком и инвертированным звуком. Что касается возможных отмен, фазовая задержка звука в iPhone и фазовая характеристика наушников не указаны или даже обязательно постоянны.

1 голос
/ 17 ноября 2011

Инвертировать сигнал легко, если у вас есть доступ к аудиобуферу.Для иллюстрации:

void invert_audio_buffer(t_audio_sample* const output,
                         const t_audio_sample* const input,
                         const size_t count) {
  for (size_t i = 0; i < count; ++i) {
    output[i] = -input[i];
  }
}

(где t_audio_sample - тип выборки с плавающей запятой или целое число)

0 голосов
/ 10 декабря 2011

звучит так, как будто вам нужно читать на удаленном аудиоустройстве. это позволяет вам извлекать буфер, поступающий из микрофона, опционально обрабатывать его и выплевывать через динамики. посмотрите на обратный вызов рендеринга AurioTouch для получения синтаксиса о том, как извлекать данные из микрофона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...