Hello, I am using the mic for smart-speaker application.
Microphone is connected to a single board computer via USB. Sound system is connected to 3.5mm audio jack on the microphone for AEC to work. Below is the demonstration of setup:

I have watched your video showing the AEC performance, and it seems very good. I hoped that I will have similar results, but unfortunately microphone recording gets distorted by the signal emitted through speaker more than on your video. When I compared recording of single-channel firmware vs the first-channel of 6-channel firmware(processed for AEC), the quality of the latter is much better. But still it is not sufficient. I need to understand what is wrong with my setup, and why it doesn't work as in your video.
For my application I am using Linux, and this is what I do for audio settings:
pactl load-module module-remap-source master=alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.multichannel-input master_channel_map=front-left channel_map=front-left remix=false
pactl set-default-sink alsa_output.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.analog-stereo
pactl set-default-source alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.multichannel-input.remapped
Through this, I make sure that only the first channel is used for my voice detection application(clear of noise), and that audio output is streamed into the microphone for the filtering purpose.
- Below are various logs from pulse-audio regarding sampling rate and etc. Could you please check if it they are ok for good AEC performance?
- What can I do to improve the noise cancellation?
- May it be that amplifier induces a delay which worsens the filtering? If yes, what would you suggest?
- Which tuning parameters could help?
from pacmd stat:
Default sample spec: s16le 2ch 44100Hz
Default channel map: front-left,front-right
Default sink name: alsa_output.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.ag-stereo
Default source name: alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.ichannel-input.remapped
from pacmd list-sources:
- index: 5
name: <alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.multichannel-input.remapped>
driver: <module-remap-source.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 1000
volume: front-left: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 1.03 ms
max rewind: 0 KiB
sample spec: s16le 1ch 16000Hz
channel map: front-left
used by: 2
linked by: 2
configured latency: 8.69 ms; range is 0.50 .. 2000.00 ms
module: 25
properties:
device.master_device = "alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.multichannel-input"
device.class = "filter"
device.description = "Remapped ReSpeaker 4 Mic Array (UAC1.0) Multichannel"
device.icon_name = "audio-input-microphone"
from pacmd list-sinks:
-
index: 1
name: <alsa_output.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9549
volume: front-left: 55000 / 84% / -4.57 dB, front-right: 55000 / 84% / -4.57 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max request: 0 KiB
max rewind: 0 KiB
monitor source: 2
sample spec: s24le 2ch 16000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
card: 1 <alsa_card.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00>
module: 8
properties:
alsa.resolution_bits = "24"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "ReSpeaker 4 Mic Array (UAC1.0)"
alsa.long_card_name = "SEEED ReSpeaker 4 Mic Array (UAC1.0) at usb-fe3e0000.usb-1, full speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "platform-fe3e0000.usb-usb-0:1:1.0"
sysfs.path = "/devices/platform/fe3e0000.usb/usb4/4-1/4-1:1.0/sound/card0"
udev.id = "usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00"
device.bus = "usb"
device.vendor.id = "2886"
device.vendor.name = "SEEED"
device.product.id = "0018"
device.product.name = "ReSpeaker 4 Mic Array (UAC1.0)"
device.serial = "SEEED_ReSpeaker_4_Mic_Array__UAC1.0_"
device.form_factor = "speaker"
device.string = "front:0"
device.buffering.buffer_size = "192000"
device.buffering.fragment_size = "96000"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Analog Stereo"
device.description = "ReSpeaker 4 Mic Array (UAC1.0) Analog Stereo"
module-udev-detect.discovered = "1"
device.icon_name = "audio-speakers-usb"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
P.S. If you want I can make a video which shows performance on audacity.
Hello, I am using the mic for smart-speaker application.
Microphone is connected to a single board computer via USB. Sound system is connected to 3.5mm audio jack on the microphone for AEC to work. Below is the demonstration of setup:

I have watched your video showing the AEC performance, and it seems very good. I hoped that I will have similar results, but unfortunately microphone recording gets distorted by the signal emitted through speaker more than on your video. When I compared recording of single-channel firmware vs the first-channel of 6-channel firmware(processed for AEC), the quality of the latter is much better. But still it is not sufficient. I need to understand what is wrong with my setup, and why it doesn't work as in your video.
For my application I am using Linux, and this is what I do for audio settings:
Through this, I make sure that only the first channel is used for my voice detection application(clear of noise), and that audio output is streamed into the microphone for the filtering purpose.
from pacmd stat:
from pacmd list-sources:
from pacmd list-sinks:
P.S. If you want I can make a video which shows performance on audacity.