エコーをキャンセルしようとしていますが、非常に単純な例を使用してもキャンセルできませんでした。フレームサイズ 160 タイル長 100
audioRecord.read(mic,0,mic.length);
audioData = speex.encode(mic,0,mic.length);
speakerData=speex.decode(audioData);
audioTrack.write(speakerData, 0, speakerData.length);
speex.DoAEC(mic,speakerData,outref);
fos.write(outref);
上記のコード例でエコーがキャンセルされなかったのはなぜですか? ファイルを再生すると、エコーは削除されませんでした。
また、次の簡単な例は機能しませんでしたが、まだエコーがあります。
short[] buf=new short[160];
audioRecord.read(buf,0,buf.length);
if(sData==null){
sData=buf;
}
short[] outref=new short[160];
speex.cancelecho(buf,sData,outref);
audioTrack.write(outref, 0, outref.length);
sData=buf;