← All case studies

Real-time Noise Cancellation on FPGA

A defence client needed clear audio in noisy environments — not in a lab notebook, but running on rugged embedded hardware in the field, in real time.

Embedded machine learning Python · C++ · C# · Xilinx Vitis Lemey.AI · 2024

Engineering record. Delivered by Jonathan Lam, Lamalo’s lead engineer, as a software developer and AI consultant at Lemey.AI (Ottawa / Montreal), before the studio was founded. The client is not named for confidentiality.

Workload
Real-time audio ML
Target
FPGA + MicroBlaze
Acceleration
Xilinx Vitis
Result
Field-deployable

The challenge

Machine learning for audio is easy to demo on a laptop and hard to ship on embedded hardware. The system had to enhance speech in real time on an FPGA whose processor — a MicroBlaze soft-core CPU — lives inside the chip’s own logic fabric, with tight limits on memory, power and timing. And because it was going into the field, it had to be repeatable and robust, not a one-off build.

From prototype to hardware

  1. 1 · PrototypePython

    Machine-learning algorithms for audio enhancement, tested quickly.

  2. 2 · ImplementC++ / C#

    Production implementation built in Visual Studio on a host PC.

  3. 3 · Cross-compileMicroBlaze

    Deployed to the soft-core CPU inside the FPGA fabric.

  4. 4 · AccelerateXilinx Vitis

    Heavy work moved into FPGA hardware for real-time speed.

How it was done

  • Algorithms first, in Python, where ideas are cheap to try and easy to measure.
  • A clean path to embedded: the chosen approach was re-implemented in C++ and C#, then cross-compiled for the MicroBlaze target.
  • Hardware acceleration with Xilinx Vitis, so the parts that needed to be fast ran in the FPGA fabric rather than on the small CPU.
  • Git-driven CI/CD for every build, so what was tested was exactly what shipped to hardware.

The outcome

A fully functional noise-cancellation system, designed, deployed and robust enough for field use. The lesson we carry into every AI project: a model is only finished when it runs reliably where people actually need it.

What this means for your project

Most of our AI work today is web and mobile, not FPGAs — but the discipline is the same. We prototype fast, measure honestly, and only call it done when it works in production, within its budget. Talk to us about AI →