안드로이드 개발 질문/답변
(글 수 45,052)
외부 스피커에서 가청주파수보다 높은(사람귀에는 안들리는) 소리를 쏘면
그것을 백그라운드로 항상 듣고있다가 특정 액션을 하는 앱을 만들려고 합니다.
예를들어 A라는 가게를 지나가다가 갑자기 앱이 소리를 인식하여 사용자에게 A가게 광고를 보여주는 그런 액션을 하는
앱을 만들고 싶습니다
이미 LG, SK등 대기업에서 개발 완료한것으로하는데
안드로이드 앱에서 어떤 기술이 필요한지 감이 잘 안옵니다.
찾아도 레퍼런스가 잘안나오는데,
안드로이드 자체에서 개발 가능할까요?
외부라이브러리 어떤것들을 추가해야하는지 참고할만한 링크 있으시면 알려주시면 감사하겠습니다




방법은 간단합니다.
먼저 AudioRecord 로 항시 PCM 자료를 수집합니다.
그리고 DFT 돌려서 특정 주파수를 파악 합니다.
특별한 라이브러리나 기술이 필요하지는 않습니다.
인간의 가청 주파수를 보통 20~20,000Hz 로 잡습니다.
그런데 일반적인 마이크의 감도는 능력은 16,000Hz 까지입니다.
그 이상이 되면 감도가 급변합니다.
게다가 일반적인 안드로이드 기기의 샘플링속도가 최대 48,000sample/sec 입니다. 최대 44K 짜리도 있습니다.
니이퀘스트(Nyquist) 이론에 따라 인식 하고자 하는 주파수의 2배 이상으로 샘플링하면 되니까 최대 24,000Hz 까지 인식 가능합니다만,
실제로 DFT 돌리려면 주파수의 4배 샘플링은 해야 값이 잘 나옵니다.