开发者

What's the proper way to structure an AEC (Acoustic Echo Cancellation) filter for JMF?

开发者 https://www.devze.com 2023-03-19 19:38 出处:网络
I\'m working on connecting the Speex Library to JMF for the purpose of doing Voice Activity Detection/Noise reduction, and also for Acoustic Echo Cancellation.(I may adopt the codec at some point in t

I'm working on connecting the Speex Library to JMF for the purpose of doing Voice Activity Detection/Noise reduction, and also for Acoustic Echo Cancellation. (I may adopt the codec at some point in the future, but that's not the primary purpose of this particular integration)

The former is relatively simple, one input signal, one output signal, same format, no problem. I'll code this as a javax.media.Effect.

The latter filter is the more complex, and I was wondering what the appropriate approach here is to doing this.

JMF has an Effect class that I will implement for both of these, but AEC also requires the playb开发者_运维技巧ack signal as an input, not just the microphone input. This is interesting to feed into the effect plugin, as it will either need to be a data sink, or have a second effect interface just for processing the speaker signal.

class AECFilter {
  javax.media.Effect getRecordingFilter();  // Does AEC
  javax.media.Effect getPlaybackFilter();   // Samples the playback audio only
}

Is there a better way to do this, or is this how the AEC filter needs to be coded?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号