현재 안드로이드를 사용하여 전화의 마이크를 통해 특정 오디오 주파수 범위를 재생할 때 감지 할 수있는 코드를 구현하려고합니다.audiorecord를 사용하여 특정 주파수 크기를 검색하는 Android 오디오 FFT
int channel_config = AudioFormat.CHANNEL_CONFIGURATION_MONO;
int format = AudioFormat.ENCODING_PCM_16BIT;
int sampleSize = 8000;
int bufferSize = AudioRecord.getMinBufferSize(sampleSize, channel_config, format);
AudioRecord audioInput = new AudioRecord(AudioSource.MIC, sampleSize, channel_config, format, bufferSize);
오디오 다음에 읽기 : FFT를 수행
이short[] audioBuffer = new short[bufferSize];
audioInput.startRecording();
audioInput.read(audioBuffer, 0, bufferSize);
나는이 지역에있는 약간의 경험을 가지고 내가 붙어 될 곳이다 나는 AudioRecord
클래스를 사용하여 클래스를 설정 한 . 나는이 클래스를 사용하는 것을 시도하고있다 :
FFT in Java 및 Complex class to go with it
내가 다음 값을 보낸다 :이 쉽게 날이 클래스가 작동하기위한 것입니다 방법 오해 될 수
Complex[] fftTempArray = new Complex[bufferSize];
for (int i=0; i<bufferSize; i++)
{
fftTempArray[i] = new Complex(audio[i], 0);
}
Complex[] fftArray = fft(fftTempArray);
을하지만, 반환 된 값은 모든 곳에서 점프하며 침묵 속에서도 일관된 빈도를 나타내지 않습니다. 누구나이 작업을 수행 할 수있는 방법을 알고 있습니까? 아니면 그래픽 표현으로 그려야하는 대신 작은 수의 주파수 범위 만 잡으려고 문제를 복잡하게 만듭니다.
이봐, 당신은 코드의 최종 버전을 게시하시기 바랍니다 수 있을까? thx –