2014-05-14 4 views
3

나는 마이크를 사용하여 소리를 들어야하는 애플 리케이션을 개발해야한다. 그리고 화재 경보 음이 감지 될 때마다 앱은 화재 경보가 있음을 사용자에게 알려야합니다. 이를 위해 나는 가능한 두 가지 해결책을 고민 중입니다안드로이드 어떻게 화재 경보기 소리를 감지하는

1 :) Speech To Text 인식기를 사용하여 연기 경보 음을 텍스트로 변환하고 그 텍스트를 저장하십시오. 그리고 다음에 연기 경고음이 수신 될 때마다 동일한 Speech To Text 인식기가 해당 텍스트로 변환하고 해당 텍스트가 저장된 텍스트와 일치하면 나는 그것이 경보 음이라고 가정합니다.

2 :) 경보 음을 저장하고 파형을 비교하여 녹음 된 음파를 저장 음과 일치시킵니다. 이것은 내가이 분야의 전문가가 아니기 때문에 나의 가정 일뿐입니다.

지금까지 나는이 사운드 매칭 기법이 audio fingerprinting에 의해 수행되었음을 알았습니다. 즉, 각 오디오마다 고유 한 지문이 있고 두 개의 오디오 지문을 일치시킬 수 있다면 동일한 것으로 간주됩니다.

이 들어

나는 최근에 다음 링크

http://www.royvanrijn.com/blog/2010/06/creating-shazam-in-java/

http://masl.cis.gvsu.edu/2012/01/25/android-echoprint/

여전히 모든를 파악하려고 내 문제의 해결책이다에 더 가까운 것 같다

https://code.google.com/p/musicg/

하지만 하나를 발견했다 당신의 모든 도움이 널리 인정 될 것입니다.

답변

1

경고를 문장/단어로 인식하지 않으므로 음성 텍스트를 사용하지 않을 것을 제안합니다.

내가 제안하는 바는 DFTFFT입니다.

여기 DFT에 대한 약간 못 생기는 예가 images(2d dft)입니다. 알고리즘 자체가 매우 쉽지만 DFT의 경우 매우 느리다는 것을 알 수 있습니다. 1d (소리)에 대해서는 충분히 빠를 것입니다.

사운드 데이터를 가져 와서 DFT/FFT를 실행하면 신호의 주파수가 표시됩니다. 어쩌면 높은 범위의 주파수가 알람을 감지 할 정도로 강력한지 확인할 수 있습니다.

귀하의 경우에는 몇 초의 프로세스 주파수와 같은 다른 가능성도 확인하고 대략적인 알람 빈도와 일치하는지 확인하십시오.

Good reading about FFT and what's behind it.

+0

덕분에 답장을, 당신의지도를 통해 이동합니다. 그래서 저는 그것을 처음부터 구현하고 모든 원리를 알아야합니다. 이미 구현 된 타사 도구가 없습니까? 즉 음파에서 DFT/FFT를 실행합니다. 이것의 주된 이유는 수학에서별로 좋지 않다는 것입니다. – laaptu

+0

라이브러리가 많아서 DSP (Digital Signal Processing) 라이브러리를 찾는다. 또한 수학을 두려워한다면 - FFT에 관한이 기사와 장면 뒤에서하는 일을 읽으십시오 : http://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/ –

+0

도움을 주셔서 감사합니다. Google에 최대한 빨리 알려주고 해결책을 찾으면 기꺼이 여기에 게시 할 것입니다. – laaptu