Arducam 8MP IMX219 USB camera and speech recognition

Hi,

Hi all,

I recently purchased an Arducam 8MP IMX219 USB camera (shows as Microdia Webcam Vitade AF, VID 0c45, PID 6366) for use with a NVIDIA Jetson Orin Nano running Ubuntu 22.04.

The camera works great but I’m having trouble with the dual microphones. When I try recording my voice it is extremely soft, not good enough for voice recognition.

What I’ve tried:

  • amixer -c 0 sset Mic 100% — mic is already at 100%, no boost control available

  • Recording at various sample rates (8000, 16000, 44100Hz) — same result

  • Software gain reduction — reduces noise but voice is still inaudible

Question: Is there a way to reduce the hardware capture sensitivity on this camera’s microphones? Are there ALSA mixer controls I’m missing? Has anyone successfully used this camera’s microphones for voice recognition with Python on a Jetson?

Thanks in advance!

2 Likes

Hi Kim,

Very sorry for the delays in getting back to you.

I haven’t found anything in the notes I can verify for that specific webcam mic path, so I’d be cautious about assuming there’s a hidden hardware or driver gain control there.

What you’re describing usually points to one of two things:

  • the camera is exposing only a very limited USB audio control set under ALSA, or
  • the source level is being managed elsewhere in the audio stack and ALSA alone isn’t showing it.

I’d check both ALSA and PipeWire/PulseAudio before blaming the hardware:

# See which capture devices are present
arecord -l

# Dump every ALSA control on the webcam
amixer -c 0 controls
amixer -c 0 contents

# Check desktop audio source controls as well
pactl list sources

If you see controls like Capture, Mic Boost, Auto Gain Control, Input Gain, or similar, those are the ones worth testing. If none of those appear, there may simply not be much exposed to adjust from Linux.

One practical point: built-in webcam microphones are often tuned for very close speech, so they can be pretty underwhelming for voice recognition unless you’re right near the camera.

If you can post the output of these as text:

arecord -l
amixer -c 0 contents
pactl list sources

That should make it much easier to tell whether there’s an adjustable control available or whether an external mic is the better path.

What library were you looking to use for voice recognition? If the sensitivity is still an issue after some initial tests, increasing the raw gain hopefully gets some results.

Liam

You can try to use arecord with manual gain. Then amplify with python.