Menu

Echo Cancelling

An incremental dialogue system concurrently listens and speaks. That's how it's supposed to be, but there is one problem: on the most basic level, the ASR does not know whether the TTS is speaking and hence will "tune in" to its own words and listen to itself. What's worse, a polite incremental dialogue system will stop speaking when interrupted (or speak up to keep the turn). This may either lead to the system feeling interrupted all the time (by itself), or speaking louder and louder in a positive feedback loop.

So far, I have relied on users wearing headphones (ideally headsets) which decouple audio out and audio in. However, this does not work well for demos (as nobody can hear the system apart from the user). Linux to the rescue: try

pactl load-module module-echo-cancel aec_method=webrtc
PULSE_PROP="filter.want=echo-cancel" java inpro.apps.SimplReco ...

to enable self-echo-cancellation. Of course, this has some impact on ASR performance and at least on my machine leads to 100% cpu usage, but it reduces the problem a lot!

Posted by Timo Baumann 2016-02-21

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.