Как говорит Дейв, класс AudioRecord - самый простой способ. Часто я расширяю AsyncTask, который реализует AudioRecord для чтения аудиобуфера и перемещения буфера обратно в поток пользовательского интерфейса для визуализации (при необходимости).
Что касается фильтрации звука, Android не предоставляет никаких встроенных способов сделать это. Вы могли бы отфильтровать определенные частоты, взяв преобразование Фурье сэмплированного звука и затем извлекая интересующие частоты.
Если вы хотите получить более подробную информацию о фильтрации, вам, вероятно, следует опубликовать новый вопрос SO или вики о быстром преобразовании Фурье (FFT). Вы также можете заглянуть в JTransforms , отличную библиотеку FFT с открытым исходным кодом, которая прекрасно работает на Android.