Recognize beeping sound from a device

Hello, I'm completing my first Arduino project, I need to remotely control my ceiling fan that has 5 fan speeds and a light on/off function, every time it receives a signal from Arduino it emits a beep at a frequency of about 3 kHz and I need my Arduino to recognize it to know if the IR codes sent are correctly received. I've attached an audio file when I turn on and off the light. Someone has an advice about the hardware that I will need? I was thinking to buy an opamp such the LM358 and an electret microphone, it could be suitable? What kind of software approach would be the best if this hardware is suitable for this task? Thanks in advance for the help

Ceiling fan Beep.flac

This sort of question has been asked many times before. Most of the time the answer is "not possible" but some of those threads will have a solution which may work for you. You need to search deeper.

Personally I'd wire direct to the speaker and don't rely on the air transmitting the sound, but that has lots of safety issues with the mains voltage. Everything on the fan control board is capable of killing you.

Can you not rely on the human to mash the control button again, the same way they do for any other IR remote?

I need this to update the status of the ceiling fan on an LCD and to make the code behave differently based on the status and I was looking for an entirely wireless solution to avoid any danger. I was thinking that recognizing only a frequency could be done in some way.

why not IR ?
my TV remove bounces off walls and if it is any way/shape/form of a direct line, it works 99.9% of the time.

IR is simple and available and wireless.

assuming you are pointing to the fan to make it work, your receiver would already be in place.

another though is that the beep does not have to be within audible range of a human (or dog/pet) so you could have a very high volume with a very high frequency, well past the audible range.