Help needed for hearing aid project

I’m nearing completion on my open source hearing aid project using the Teensy 4.0, Teensy Audio Shield, 5 watt amp and bone conduction headphones (or earbuds – works with both). I borrowed the Tympan equalizer sketch and started from there. My current sketch includes audiogram input, a function for a self-administered hearing test that saves the results in EEPROM, the ability to tweak the audiogram on the fly, etc. The device, which I’ve named “Sparky”, has a 4 button interface and OLED display so that no smartphone/computer is required to to set the various parameters. Everything is designed to meet the needs of those with limited dexterity and/or vision problems. Once Sparky is initially programmed the user only needs to use a big on/off switch and large handled volume control. The rechargeable battery pack snaps on the back magnetically, so it can be changed-out instantly. The MEMS mics pop into the top of the box, and can be removed and an extension cable used to clip the mics onto you lapel, allowing the box to live in a pocket, belt-clip, etc. Normal configuration is to hang Sparky around your neck with a lanyard and the mics plugged in onboard. Pictures below (bad ones).

I need help on two fronts: First, I want to add a noise reduction function for noisy environments. I’ve had various tries as this and haven’t found anything I like. Ideally the function would sample the background noise and dynamically filter it out, even while speech is being heard. Everything I’ve tried so far has either introduced artifacts or interfered with speech intelligibility. My programming skills are in the novice category, although I’ve found that judicious use of Claude AI makes me more of an expert :).

The other thing I need to figure out has to do with adding Bluetooth for audio purposed only. I currently have Bluetooth working by feeding both the Bluetooth signal and the MEMS mic signal (converted to analog) to the line-in L/R of the Audio Shield. It’s easy enough to unplug the mics while using Bluetooth, and power down the Bluetooth module while using the Mics. I want something more elegant though. As the Audio Shield has but one stereo analog input I’m thinking some sort of audio mixer module, 4in/2out, that can be digitally controlled by the Teensy to achieve a balance between the two signals. This is in the category of “someone must make such a thing but I can’t find it”. Thoughts on this? Alternative solutions?

I’ll have a website up soon with all the details, including a parts list, maker’s guide, free download of software and STL files for 3D printing, etc. Any help is appreciated!!!

inside

1 Like

@robedney
This is amazing! Great work getting things to work out.

  • Our Tympan Library does have some noise reduction algorithms. Have you tried them?
  • We used to use the BC127 Bluetooth radio module, but that is no longer available. It had analog audio in/out, which was nice. Those types of radios are hard to find? I did a quick search on Mouser and some of the ones from Microsoft are not recommended for new designs (NRND). But there are a lot of them that are using I2S and/or PDM for managing digital audio. The ESP32 also has bluetooth audio capability, and there seem to be some low cost breakouts
  • Regarding your desire for a 4in/2out audio system, have your considered Tympan RevF? It runs on a Teensy 4.1, which is almost exactly like the 4.0 you are using. We also have an AIC Shield that adds a second CODEC to get double the audio input and output.

Looking forward to see more details about your amazing work!