Microphone problem

I am thinking of making a telepresence/security robot with a camera, microphone and speakers using “robot hat v4” but there is no built-in microphone on the card. So I couldn’t find a solution for the microphone. There is not much space for a microphone on the chassis of the robot I will make. So I want to use a very small microphone if possible.

I bought one of those crappy USB mini microphones from Aliexpress but it records the sound very, very low. I guess all these mini microphones are the same, right? Is there another alternative?

The microphone I bought seems to be USB 1.1, not USB 2.0.

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M
|__ Port 1: Dev 5, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M
|__ Port 3: Dev 4, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 3: Dev 4, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 3: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M

The value that should be 480M appears as 12M.

Another attempt was with the i2s microphone but I was not successful. I connected the inmp441 mems microphone to the i2s line used by the “robot hat” and changed the overlay to googlevoicehat-soundcard but I could not get sound from the microphone. I want to be able to use the microphone and the speaker at the same time. If you can help me with anything I can do, I would be very grateful.

I’m unable to verify the specifications of your INMP441 MEMS microphone or confirm whether the device and its circuit connections are functioning properly. However, since you have a USB microphone available, you can certainly use that instead.

Regarding the low volume recording issue, you can amplify the audio through software processing. Here are two approaches:

Using SoX command-line tool:
sox input.wav output_10.wav gain 10
Python programming solution:
You can implement audio amplification using our Python utility:

Required installations:
sudo apt install sox
sudo pip3 install -U sox --break-system-packages

I purchased 2 different mini usb microphones for my rpi4.

Neither was particularly sensitive to sounds.

I had to increase the amplification on both to maximum using alsamixer.

One of the microphones also had AGC, which made the default sensitivity always too low. I had to disable the AGC, again via alsamixer.

Hi! I tried the in-box mic and had the same issue. I connected my blue yeti mic via usb to the pidog and that works good. Too good, sometimes it picks up audio I didn’t say, so I started muting the mic unless I wanted to speak to pidog.
I can’t remember how I switched from one mic to the other in ssh (I run pidog off my macbook using command terminal), but if you use VNC viewer you can remote access a desktop environment on a laptop. From there, just click on sound and select the usb mic. :slight_smile:

Correct. In the Bookworm system, click the ‘Sound’ icon in the top-right corner of the desktop and select the corresponding microphone device from the options.

After some effort I managed to connect and power up the i2s microphone. I soldered the i2s microphone to raspberry pins 12, 35 and 38 on the robot hat. In config.txt I only enabled the googlevoicehat-soundcard overlay.

At first there was still very little sound. For this I created the asoundrc configuration found in an adafruit article Raspberry Pi Wiring & Test | Adafruit I2S MEMS Microphone Breakout | Adafruit Learning System.

And voila! The i2s microphone and speaker work perfectly!

Hope you have fun.Any further help,please feel free to contact.