← Selected work

Home & household · Deep systems · Open source

Echo Show 8 AEC shim

The low-level audio work that makes an old Echo Show a good listener again — clean “barge-in” so it can speak over its own playback and still hear you.

deep systems MIT C/C++ · Android NDK

§ What it is

An acoustic echo cancellation (AEC) shim for a 1st-gen Amazon Echo Show 8 running LineageOS. It gives an always-on assistant clean barge-in — the ability to be interrupted mid-sentence — with no app changes and no ROM patch. It’s the hardware enabler under Anamanti, and it fits how I like to work — bringing hardware you already own back to life instead of buying new.

§ The trick

The shim is a native library LD_PRELOADed into the audio HAL, interposing the tinyalsa calls. It exploits a hardware quirk — the device’s capture stream carries a sample-aligned loopback of what the speaker is playing, alongside the microphones. That gives a perfect far-end reference for cancellation. I deliberately use Speex linear-only echo cancellation, which preserves the talker during double-talk rather than a stronger path that “eats” the speaker.

Root, supervised, and fully reversible — install and uninstall are just scripts.

§ How it’s built

A native C/C++ library built with the Android NDK for 32-bit armv7, vendoring SpeexDSP. Shell scripts handle the adb build, install, and uninstall. MIT-licensed.

C / C++Android NDKtinyalsa SpeexDSPLineageOS