/ / echo cancellation शुद्ध java के साथ android - java, android, android-ndk, aec, echo-canationation

शुद्ध जावा - जावा, एंड्रॉइड, एंड्रॉइड-एनएनडीके, एईसी, इको-रद्दीकरण के साथ इको रद्दीकरण एंड्रॉइड

मैं आवाज रिकॉर्ड और 16bit pcm में तुल्यकालिक खेलते हैंएपीआई स्तर 11 में बफर और शुद्ध जावा का उपयोग करें प्रतिध्वनि रद्द करने के लिए मैंने कई तरह से कोशिश की जैसे कि एंड्रॉइड के साथ jni में webrtc ndk लेकिन किसी भी विचार के लिए मेरे लिए असफल।

AudioRecord  recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO,  AudioFormat.ENCODING_PCM_16BIT, audioBufferSize);
AudioTrack player = new AudioTrack(AudioManager.STREAM_MUSIC, SAMPLE_RATE, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, audioBufferSize, AudioTrack.MODE_STREAM);

recorder.startRecording();
player.play();

short [] buffer = new short[1024];
short [] buffer_tmp = new short[1024];
MobileAec aec = new MobileAec();

while (at_isRun)
{
recorder.read(buffer, 0, buffer.length);
aec.doAEC(buffer, buffer_tmp)// set AEC to reference of buffer.
player.write(buffer, 0, buffer.length);

for(int i=0; i<buffer.length; i++)
buffer_tmp[i] = buffer[i];
}

उत्तर:

उत्तर № 1 के लिए -1

यह स्पष्ट नहीं है कि आपके आवेदन का उद्देश्य क्या है। रिकॉर्डिंग ऑडियो और वे तुरंत इसे वापस प्रस्तुत करते हैं, जिसके परिणामस्वरूप एईसी पर नाटकीय प्रभाव पड़ेगा। आप इसके बारे में थोड़ा और पढ़ सकते हैं हाउलिंग और एईसी। कृपया अपने प्रोजेक्ट के उद्देश्य के बारे में विस्तार से बताएं और वास्तव में आप क्या हासिल करने की कोशिश कर रहे हैं।