Contents

Testing USB Microphone on Raspberry Pi

I needed to test the recording quality of USB microphones for attaching it to the voice recognition system.

../../../../images/rpi/testing-web-cam.jpg

Product spec

# (in picture): Maker Product Product Spec Price
1: 共立 MI-305 USBマイク Sensitivity:-67 dBV/pBar,-47dBV/Pascal +/-4dB, Microphone frequency range:100-16kHz 500-1000JPY
2: BUFFALO BSWHD06M (No description about microphone) ~1800JPY
3: Logitech B910 HD Webcam (No description about microphone) ~8000JPY
4: Jabra Jabra Speak 510 UC Microphone frequency range: 150-6.5KHz, Microphone pick up range: Up to 1.5m 23000~JPY
5: JMTek JMTek USB卓上マイク No description. 無指向性コンデンサマイク。see Additional device 2000~JPY

Environment

  • Linux rpi4 6.1.21-v8+
  • OS: “Debian GNU/Linux 11 (bullseye)"(Checked by cat /etc/os-release)

Interfaces

List up microphone(or web cam) devices on USB.

1
lsusb

(output)

1
2
3
4
5
6
7
8
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 0411:0260 BUFFALO INC. (formerly MelCo., Inc.) BUFFALO BSWHD06M USB Camera

Bus 001 Device 009: ID 0b0e:0420 GN Netcom Jabra SPEAK 510
Bus 001 Device 006: ID 046d:0823 Logitech, Inc. HD Webcam B910
Bus 001 Device 007: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

List up devices recognized as microphones.

1
arecord -l

(output)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
**** ハードウェアデバイス CAPTURE のリスト ****
カード 1: U0x46d0x823 [USB Device 0x46d:0x823], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 4: Device [USB PnP Sound Device], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 5: Camera [BUFFALO BSWHD06M USB Camera], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 6: USB [Jabra SPEAK 510 USB], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

The devices in the pictures are recognized as bellow:

# (in picture) Name Card Device
1: 共立 USB PnP Sound Device 4 0
2: BUFFALO BUFFALO BSWHD06M USB Camera 5 0
3: Logitech USB Device 0x46d:0x823 1 0
4: Jabra Jabra SPEAK 510 USB 6 0

Command lines

Set volume

If you want to adjust volume of #1(共立, card:4)to volume 100% by alsamixer,

1
amixer sset Mic 100 -c 4

Record

If you want to record the #1(共立, card:4, device:0)、you can record by;

1
arecord -D plughw:4,0 kyoritsu.wav

Experiment

1. Volume max(100%)

1.1 共立

1
2
3
4
5
6
$ amixer sset Mic 100 -c 4
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 16
  Mono: Capture 16 [100%] [23.81dB] [on]

Note that capture 0-16 means the configuration is binned in 16 steps. If you want to down the volume to 50% for this device, you need to set amixer sset Mic 8 -c 4 in the following step.

1
arecord -D plughw:4,0 kyoritsu_100.wav

1.2 Buffalo

1
2
3
4
5
6
$ amixer sset Mic 100 -c 5
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 88
  Front Left: Capture 88 [100%] [16.00dB] [on]
  Front Right: Capture 88 [100%] [16.00dB] [on]
1
arecord -D plughw:5,0 buffalo_100.wav

1.3 Logitech

1
2
3
4
5
6
$ amixer sset Mic 100 -c 1
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 52
  Mono: Capture 52 [100%] [-19.00dB] [on]
1
arecord -D plughw:1,0 logitech_100.wav

1.4 Jabra

1
2
3
4
5
6
$ amixer sset Mic 100 -c 6
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 7
  Mono: Capture 7 [100%] [9.00dB] [on]
1
arecord -D plughw:6,0 jabra_100.wav

2. Volume moderate(86-88%)

2.1 共立

1
2
3
4
5
6
$ mixer sset Mic 14 -c 4
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 16
  Mono: Capture 14 [88%] [20.83dB] [on]
1
arecord -D plughw:4,0 kyoritsu_88.wav

2.2 Buffalo

1
2
3
4
5
6
7
$ amixer sset Mic 77 -c 5
Simple mixer control 'Mic',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 88
  Front Left: Capture 77 [88%] [13.25dB] [on]
  Front Right: Capture 77 [88%] [13.25dB] [on]
1
arecord -D plughw:5,0 buffalo_88.wav

2.3 Logitech

1
2
3
4
5
6
$ amixer sset Mic 45 -c 1
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 52
  Mono: Capture 45 [87%] [-26.00dB] [on]

2.4 Jabra

1
2
3
4
5
6
$ amixer sset Mic 6 -c 6
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 7
  Mono: Capture 6 [86%] [6.00dB] [on]
1
arecord -D plughw:6,0 jabra_86.wav

3. Volume middle(71-75%)

3.1 共立

1
2
3
4
5
6
$ amixer sset Mic 12 -c 4
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 16
  Mono: Capture 12 [75%] [17.85dB] [on]
1
arecord -D plughw:4,0 kyoritsu_75.wav

3.2 Buffalo

1
2
3
4
5
6
7
$ amixer sset Mic 66 -c 5
Simple mixer control 'Mic',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 88
  Front Left: Capture 66 [75%] [10.50dB] [on]
  Front Right: Capture 66 [75%] [10.50dB] [on]
1
arecord -D plughw:5,0 buffalo_75.wav

3.3 Logitech

1
2
3
4
5
6
$ amixer sset Mic 39 -c 1
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 52
  Mono: Capture 39 [75%] [-32.00dB] [on]
1
arecord -D plughw:1,0 logitech_75.wav

3.4 Jabra

1
2
3
4
5
6
$ amixer sset Mic 5 -c 6
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 7
  Mono: Capture 5 [71%] [3.00dB] [on]
1
arecord -D plughw:6,0 jabra_71.wav

Additional device

I tried additional usb microphone that I bought on Amazon.

../../../../images/rpi/testing-web-cam-add.jpg

lsusb

1
Bus 001 Device 010: ID 0c76:161e JMTek, LLC. USB PnP Audio Device

arecord -l

1
2
3
カード 4: Device [USB PnP Audio Device], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

Experiment

Volume max(100%)

1
2
3
4
5
6
$ amixer sset Mic 496 -c 4
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 496
  Mono: Capture 496 [100%] [31.00dB] [on]
1
arecord -D plughw:4,0 jmtek_100.wav

Volume moderate(88%)

1
2
3
4
5
6
$ amixer sset Mic 434 -c 4
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 496
  Mono: Capture 434 [88%] [27.12dB] [on]
1
arecord -D plughw:4,0 jmtek_88.wav

Volume middle(75%)

1
2
$ amixer sset Mic 372 -c 4

1
arecord -D plughw:4,0 jmtek_75.wav

Result

Recorded audio files

1. Max(100%)

1.1 共立 100%
1.2 Buffalo 100%
1.3 Logitech 100%
1.4 Jabra 100%
1.5 JMTek 100%

2. Moderate(86-88%)

2.1 共立 88%
2.2 Buffalo 88%
2.3 Logitech 87%
2.4 Jabra 86%
2.5 JMTek 88%

3. Middle(71-75%)

3.1 共立 75%
3.2 Buffalo 75%
3.3 Logitech 75%
3.4 Jabra 71%
3.5 JMTek 75%

Outcome

  • 1: Kyoritsu Products is too quiet to use even with the volume set to 100%.
  • 2: Buffalo has some sound quality and volume expected for a 2000 yen class webcam. Stereo microphones might be useful.
  • 3: Logitech is neither good nor bad. Considering the microphone performance and cost (8000 yen class), Buffalo is the better choice.
  • 4: Jabra has almost no noise and works well at low gain. Price (¥23,000 class) and size are the main drawbacks.
  • 5: JMTek has less noise than Logitech and Buffalo webcams, even at moderate (88%). Considering the cost (around 2000 yen~) and its use as a smart speaker, an omnidirectional condenser microphone is considered effective.

Based on the above results, an omnidirectional condenser microphone and a stereo microphone that can pick up sound and is small in size are desirable. Considering its use as a smart speaker, the sensitivity (distance) of the microphone should also be longer. Among the USB microphones tested, JMTek seems to be the best in terms of cost. However, we need to be careful if the same level of performance can be maintained when the microphone is hatched.