Senior engineering project to prevent hearing loss in children

Hello,

My name is Ryan Kennedy and as part of my senior engineering class my partner and I have been tasked with the creation of a device that can prevent hearing loss in children (10-18). In our research and efforts, we came to the conclusion that a nice pair of earbuds would be appealing enough to this age group or their parents if they also functioned to block loud/damaging sounds that these teenagers would be exposed to on a regular basis. We are already well into this process and are constructing our first functioning prototype of a device like this.

My question for this post is not regarding how to block the sound, but rather if it is possible to properly code an Arduino controller to take a microphone input, reduce the volume of that input to a non-dangerous level (85 decibels at the highest), and play that reduced sound through the driver that powers the earbuds. I'm going to refer to this process as active listening from now on to make it simpler.

For reference, I have a years worth of experience with wiring, and very basic coding and soldering experience.

If this active listening, or a process similar in function, is possible, what specific Arduino controller would be the best to use? Hardware compatibility would need to be a microphone input, speaker output and potentially a Bluetooth connection, while the software would need to be able to communicate with mp3 devices, use a switch to change the device's volume, and of course function with the active listening.

Please let me know if you have any questions about the design and thank you guys in advance!

Are you familiar with the Here Active Listening earbuds? You should look up what they did. I got a pair from the kickstarter campaign, but I still haven't had time to play with them.

I have taken a look at those, yes. I think their design of active listening is similar to how I would like this to work, but the overall design of the headphones is aimed at safety of the person's hearing, using heavier protection from loud outside and completely preventing the sound from reaching a volume louder than 85db.

Also, we've come pretty far in the project to turn back now, I would like to get some form of functioning prototype working before giving up on this idea.

Thanks for the quick response!

Yeah - Here was working more along the lines of letting you modify the sound you're hearing to for entertainment and artistic effect (eg, turn off the screaming kid and traffic, and turn up the guitar) than as a safety tool.

Rather than using a microcontroller, I'd try an analog approach.... I'm pretty sure noise canceling headphones are analog.

For example, you can use the "loudness" of signal from a microphone (and preamp) as the control voltage (inverted) for a voltage controlled amplifier (VCA).* You could also use a digitally controlled amplifier (DCA) with an ADC (analog-to-digital converter) and you can do that without a programmable microcontroller.

would need to be a microphone input, speaker output and potentially a Bluetooth connection, while the software would need to be able to communicate with mp3 devices, use a switch to change the device's volume, and of course function with the active listening.

Blutooth and "software communication" with a variety of unknown devices could be extremely complicated. I think it would more practical to stick your device inline between the device's headphone output and the earbuds and "condition" the analog signal.

  • Technically, that's dynamic compression where you reduce the dynamic range (or dynamic contrast) by making loud sounds quieter and/or by making quiet sounds louder.

Compression is most-often used in audio production for the opposite of what you want... It's used to get that modern "constantly-loud" sound. But, the way they do it is to limit or push-down the audio peaks, and then boost everything with "makeup gain" for a recording with a higher overall-average level.

I'm pretty sure noise canceling headphones are analog.

And I'm certain that the good ones use DSP.

Such a device could never maintain the quality of normal hearing. They would go in the trash bin after the first day. But for a school project, okay. The Arduino is underpowered for audio processing, so could only replicate analog envelope processing, similar to Dolby.

DVDdoug:
Rather than using a microcontroller, I'd try an analog approach.... I'm pretty sure noise canceling headphones are analog.

For example, you can use the "loudness" of signal from a microphone (and preamp) as the control voltage (inverted) for a voltage controlled amplifier (VCA).* You could also use a digitally controlled amplifier (DCA) with an ADC (analog-to-digital converter) and you can do that without a programmable microcontroller.
Blutooth and "software communication" with a variety of unknown devices could be extremely complicated. I think it would more practical to stick your device inline between the device's headphone output and the earbuds and "condition" the analog signal.

  • Technically, that's dynamic compression where you reduce the dynamic range (or dynamic contrast) by making loud sounds quieter and/or by making quiet sounds louder.

Compression is most-often used in audio production for the opposite of what you want... It's used to get that modern "constantly-loud" sound. But, the way they do it is to limit or push-down the audio peaks, and then boost everything with "makeup gain" for a recording with a higher overall-average level.

Sorry I'm a bit late on feedback, I've had work and other school related activities to do.

I think I understand the general idea of what you are saying here, using an analog type processor (such as a DSP) to lower the voltage on the signal, thus lowering the overall volume. I'm not going to lie and say I know how to implement a solution like this though. This may be growing further away from the arduino based system and thus not relevant to this forum, but I would appreciate if you could offer guidance on what all the required parts of a system like this would be and how to configure/setup(edit from program)* a chip like the DSP.

Thanks again for the responses!

How to program a DSP

aarg:
Such a device could never maintain the quality of normal hearing. They would go in the trash bin after the first day.

Roger that.

Thank you all for your helpful responses! I think I'm going to browse for a different forum that would deal specifically with the DSP and its programming to help me through the specific problems we encounter, as well as any programming help on the raspberry pi we want to use as a hub. I will likely link back the first post to this thread to help anyone else get an idea of where I am and can inform this thread of where I end up browsing if you guys still want to help out.