eMeet M0 USB speakerphone

Hello,

after long struggle with Respeaker USB Mic Array v2 and its problems with bad terrible sound output with 48kHz firmware and “cave” sound recording which had impact to speech recognition, I decided to test other options.

I bought eMeet M0 USB speakerphone and both separate audio output and audio input (microphones) are well over Respeaker capabilities. Recording although slightly less sensitive has much more clear sound. Playback has very good sound without any distortion.

But I have problem using this device in duplex mode with AEC. I tested it on my Ubuntu with Pulse Audio under Rhasspy, but it seems when something is played through nothing being recorded. That seems to be strange as device is declared as Linux compatible with duplex and AEC - so I think problem could be in my Alsa setup.

The problem is I do not know what shall I look for. Any hints please? :wink: Shall I try ‘asym’? Something like:

pcm.duplex {
    type asym
    playback.pcm "dmixed"
    capture.pcm "dsnooped"
}

So I added asym pcm infot my asound.conf, but so far no luck - when anything is playing there is no sound recorded… Any hint? :-o

pcm.mix {
type dmix
ipc_key 1024
ipc_perm 0666
slave {
    pcm "hw:0,0"
    period_time 0
    period_size 1024
    buffer_size 4096
#        rate 48000
    rate 44100
#        format S24_3LE
    format S16_LE
}
bindings {
    0 0
#        1 1
}
}


pcm.snoop {
type dsnoop
ipc_key 2048
ipc_perm 0666
slave {
    pcm "hw:0,0"
    channels 1
    period_size 1024
    buffer_size 4096
#        rate 48000
    rate 44100
    format S16_LE
}
bindings {
    0 0
}
}


pcm.asym {
type asym
playback.pcm "plug:mix"
capture.pcm "plug:snoop"
}


pcm.snapcast {
type plug
slave.pcm "snapcast_vol"
ttable {
# Copy both input channels to output channel 0 (Left).
    0.0 1.0
    1.0 1.0
# Send nothing to output channel 1 (Right).
    0.1 0
    1.1 0
}
}


pcm.snapcast_vol {
type softvol
slave.pcm "asym"
control {
    name "Snapcast"
    card 0
}
}


pcm.rhasspy {
type plug
slave.pcm "rhasspy_vol"
}


pcm.rhasspy_vol {
type softvol
slave.pcm "asym"
control {
    name "Rhasspy"
    card 0
}
}


pcm.mic {
type plug
slave.pcm "mic_vol"
}


pcm.mic_vol {
type softvol
slave.pcm "asym"
control {
  name "Mic"
  card 0
}
min_dB -10.0
max_dB 30.0
}

So for others having similar issue. It is not about Alsa. It is about eMeet AEC capabilities. It is actually duplex - recording with simultaneous audio output, but AEC works only with very low audio output volume. When you exceed given threshold AEC will simply remove everything from MIC input. So you will get empty recording. :-o

So case solved but unfortunately without user satisfaction :slight_smile:

P.S.: I am still looking for small speaker phone capable of duplex operation with good audio quality and working AEC. :-o