2011-01-30 3 views
5

안녕하세요, 안드로이드 톤 생성기 클래스를 사용하면 한 장치에서 톤을 생성하고 다른 장치에서이 동일한 톤을들을 수 있는지 궁금합니다. 이것이 가능한 경우 몇 가지 다른 질문이 있습니다.안드로이드 마이크 특정 톤을 데리러

backround noise를 고려하면이 특정 톤만을들을 수 있습니까?

이 프로세스는 리소스를 많이 사용합니까?

인간의 귀에 들리지 않거나 가까이있는 소리를 들려 줄 수 있습니까?

마지막으로 발신 장치에서 몇 피트 만 들려오는 소리를 사용할 수 있습니까?

감사 yer의 시간 남자와 여자 : 오디오 처리 태그 sabastian를 추가

편집> 감사합니다 대단히. 훨씬 나은 discription.

답변

4

CPU 집약적입니다. 그렇습니다. 방법은 매우 간단합니다. 수신 된 데이터를 FFT (고속 푸리에 변환)에 저장하는 영구 레코더가 필요합니다. FFT는 기본적으로 오디오를 주파수/파워 스케일로 분할합니다. 이 "백그라운드 노이즈가 제거 된"결과로 "적어도 2 초 동안 1000Hz로 재생되는 톤이 있었습니까?"와 같은 내용을 확인할 수 있습니다. 여기에는 합리적인 속도의 FFT 구현이 있습니다 : http://www.badlogicgames.com/wordpress/?p=449 DTFT (이중 톤 다이얼링) 탐지를 위해 FFT를 사용할 수도 있습니다 (실제로는 사용됨) - 동시에 두 주파수를 사용하는 것보다 훨씬 낫습니다 (오류율 저하 현저하게 톤 전송/감지를 위해 더 짧은 지속 시간으로 갈 수 있습니다).

(a) 스피커에서 이러한 사운드를 생성 할 수 없기 때문에 (b) 샘플링 속도가 제한되어 있으므로 고주파를 생성하고 녹음하는 데 제한이 있습니다. "들리지 않음"은 불가능합니다.

"피트 커플"이 자연스럽게 부과됩니다 (별로 시끄러운 스피커가 아니라 아주 좋은 마이크).

+0

희망이 도움 http://stackoverflow.com/questions/4720512/android-2-3-visualizer-trouble- understanding-getfft – Oliver

+0

사람들은 yer 응답에 대해 대단히 감사합니다. 적어도 지금은 끝낼 수 있습니다. 임은 여전히 ​​작업 순서에 매우 혼란 스럽습니다. 누군가가 그 일을 어떻게하는지 알면 기회가 있을지도 모릅니다. 단계의 순서를 보여주는 몇 줄의 psudocode를 작성할 수 있습니다. yer 도움을 주셔서 감사합니다 – Keith

+0

이것은 "2 라인 의사 코드", 미안되지 않습니다. 당신이 원하는 것은 특별 요구 사항이있는 아주 특별한 것 (솔직히, 정말 복잡하게되는 것)입니다. 그래서 어떤 "의사 코드"는 당신에게 도움이되지 않을 것입니다. "무엇을해야할 것인가 (주문)"명령을 내리는 데 문제가 있다면, 결국 이런 종류의 코드를 쓸 준비가되어 있지 않습니다. – Oliver

2

다른 질문이 있으시면 "Android: Need to record mic input"을보십시오. 나는 당신이 당신의 작업을 위해 그것을 수정할 수 있다고 생각하고, 필터링이나 FFT를 할 수있는 사운드 바이트로 생각한다.

가, 체크 아웃 안드로이드 2.3에 대한 작업, 시스템에 이미 FFT 될 것 같다 경우가