tôi có một loạt các dữ liệu âm thanh tôi đi qua một đầu đọc:Làm thế nào tôi có thể nhận được dữ liệu tần số từ PCM sử dụng FFT
recorder.read(audioData,0,bufferSize);
Các instantiation như sau:
AudioRecord recorder;
short[] audioData;
int bufferSize;
int samplerate = 8000;
//get the buffer size to use with this audio record
bufferSize = AudioRecord.getMinBufferSize(samplerate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT)*3;
//instantiate the AudioRecorder
recorder = new AudioRecord(AudioSource.MIC,samplerate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT,bufferSize);
recording = true; //variable to use start or stop recording
audioData = new short [bufferSize]; //short array that pcm data is put into.
Tôi có một FFT lớp tôi đã tìm thấy trực tuyến và một lớp học phức tạp để đi với nó. Tôi đã thử hai ngày tìm kiếm trực tuyến ở mọi nơi nhưng không thể tìm ra cách lặp qua các giá trị được lưu trữ trong audioData
và chuyển nó đến FFT.
Đây là lớp FFT Tôi đang sử dụng: http://www.cs.princeton.edu/introcs/97data/FFT.java và đây là lớp phức tạp để đi với nó: http://introcs.cs.princeton.edu/java/97data/Complex.java.html
Tôi đã thử điều này, bằng cách sử dụng một phương pháp không qua, tôi có phải vượt qua dữ liệu tôi nhận được ra khỏi phương pháp này để FFT? –