Микрофон Android для улавливания определенного тона

StackOverflow https://stackoverflow.com/questions/4843021

Вопрос

Здравствуйте. Мне было интересно, можно ли с помощью класса тон-генератора Android создать тон на одном устройстве и прослушивать этот же тон на другом устройстве.Если возможно, у меня есть еще несколько вопросов.

Принимая во внимание фоновый шум, можно ли слушать только этот конкретный тон?

Будет ли этот процесс затратным?

Могу ли я использовать тон, который будет не слышен для человеческого уха или близок к нему?

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

Большое спасибо, что уделили время, парни и девушки :)

Изменить> Спасибо за добавление тега обработки звука sabastian.Намного лучшее описание.

Это было полезно?

Решение

Да, это потребует много ресурсов ЦП. Путь к этому довольно прост: вам нужен постоянный регистратор, который переводит полученные данные в БПФ (быстрое преобразование Фурье). БПФ в основном делает одно: разбивает звук по шкале частоты / мощности. С этим результатом «фоновый шум очищен» вы можете проверить такие вещи, как «был ли тон с частотой 1000 Гц, играющий по крайней мере 2 секунды» - и действовать соответственно. Здесь есть разумная реализация быстрого преобразования Фурье: http://www.badlogicgames.com/wordpress/? p= 449 БПФ также может использоваться (фактически, используется IS) для обнаружения двухтонального набора (DTMF) - 2 частоты одновременно намного лучше, чем просто использовать одну (поскольку частота ошибок значительно снижается, и вы можете перейти к более короткой продолжительности для отправки тонального сигнала / обнаружение).

"Неслышно" будет невозможно, так как (а) динамик не может воспроизводить такие звуки (б) вы ограничены в частоте дискретизации - так же ограничены как при воспроизведении, так и при записи таких высоких частот.

Естественно наложится "пара футов" (не очень громкий динамик, не очень хороший микрофон).

Другие советы

Обратите внимание на другой вопрос: «Android: необходимо записать вход с микрофона».Я думаю, вы можете изменить это для своей задачи, тогда с помощью звуковых байтов вы можете фильтровать или БПФ.

Надеюсь, это поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top