ALSA Card for Respeaker 4-Mic Setup

I have respeaker core v2 and maybe my example can help you, since it has similar parameters. I have struggled for a long time and finally have success, the microphone and sound work. It’s best if you read this documentation

You need to check the sound card first with the command

pactl info

The sound card is displayed here and it is selected by default

If you see here Default Sink: will be auto_null, then the PulseAudio service may not be running or a line in /lib/udev/rules.d/90-pulseaudio.rules may not be added

Open 90-pulseaudio.rules

sudo nano /lib/udev/rules.d/90-pulseaudio.rules

and add this line. I recommend adding it at the end. Find for example the line Lenovo

#Seeed Voicecard
ATTR{id}=="seeed8micvoicec",ATTR{number}=="0",ENV{PULSE_PROFILE_SET}="seeed-voicecard.conf"

Let’s run PulseAudio on behalf of the respeaker user, not root

pulseaudio -k && pulseaudio --start

Reloading

sudo reboot

Let’s see if the sound card Default Sink: alsa_output.platform-sound_0.seeed-2ch has appeared

sudo pactl info

If you are using ac108, then download the ready profile here

Rename to asound.conf and place the file in /etc, it should be like /etc/asound.conf.

You can use .asoundrc in the user profile, but this is a bad way to configure ALSA, since these settings work for a specific user, and they are not available for the system, so it is best to use the settings in /etc/asound.conf.

This is what my config looks like, I’ve changed it a bit and my microphone and sound work fine, it also works fine in Rhasspy


# The IPC key of dmix or dsnoop plugin must be unique
# If 555555 or 666666 is used by other processes, use another one

# use samplerate to resample as speexdsp resample is broken
defaults.pcm.rate_converter "samplerate"

pcm.!default {
    type asym
    playback.pcm "speaker"
    capture.pcm "microfone"
}


pcm.microfone {
    type plug
    slave {
        rate 48000
        format S32_LE
        pcm "hw:seeed8micvoicec"
    }
}

pcm.multiapps {
    type plug
    slave.pcm {
        type dsnoop
        slave {
            rate 48000
            format S32_LE
            pcm "hw:seeed8micvoicec"
        }
        ipc_key 666666
    }
}

pcm.speaker(dmix) {
    type plug
    slave {
        pcm {
            type dmix
            ipc_key 555555
            slave {	
                pcm "hw:seeed8micvoicec"
                format S32_LE
                channels 8
            }
            bindings {
                0 0
                1 1
                2 2
                3 3
                4 4
                5 5
                6 6
                7 7
            }
        }
        channels 8
        format S32_LE
        rate 48000
    }
    ttable.0.0 1
    ttable.1.1 1
    ttable.0.2 1
    ttable.1.3 1
    ttable.0.4 1
    ttable.1.5 1
    ttable.0.6 1
    ttable.1.7 1
}

pcm.speaker {
    type plug
    slave {
        pcm "hw:seeed8micvoicec"
        channels 8
        format S32_LE
        rate 48000
    }
    ttable.0.0 1
    ttable.1.1 1
    ttable.0.2 1
    ttable.1.3 1
    ttable.0.4 1
    ttable.1.5 1
    ttable.0.6 1
    ttable.1.7 1
}





In Rhasspy, microfone is specified in the microphone section

And in the audio section, plughw is selected:CARD=seeed8micvoicec,DEV=1