respeakerd is the server application for the microphone array solutions of SEEED, based on librespeaker which combines the audio front-end processing algorithms.
(1) ReSpeaker Core v2
The system running on ReSpeaker v2 should be upgraded to version 20180107 or later, as from that version on, many fixes for PulseAudio configuration has been applied.
You can backup your workspace to the onboard eMMC. If your onboard eMMC isn't formated, format it via fdisk and mount it.
(2) Raspberry Pi
NOTE: The support for Pi is still under development.
raspbian stretch is recommended. You need to install the driver for ReSpeaker Pi Hats, please refer here.
Now we support the following Pi Hats:
- ReSpeaker 6 Mic Array for Raspberry Pi
Secondly you need to add the apt repository of Seeed.
$ echo "deb https://seeed-studio.github.io/pi_repo/ stretch main" | sudo tee /etc/apt/sources.list.d/seeed.list
$ curl https://seeed-studio.github.io/pi_repo/public.key | sudo apt-key add -
$ sudo apt updateAfter the first time you installted the Hat's driver, please do the following configuration.
$ sudo apt install respeakerd-pi-tools
$ sudo respeakerd-pi-tools setup-pulseReboot the Pi to apply the configurations ( for PulseAudio ) before you move to the next step.
ssh to the board, then execute
curl https://raw.githubusercontent.com/respeaker/respeakerd/master/scripts/install_all.sh|bashThis script will install all the dependencies, and write the microphone array type in /etc/respeaker/respeakerd.conf as your selection. The Alexa authorization is needed by the Python client of respeakerd.
In the above step 1.2, a systemd service respeakerd will be installed and started. If everything's right, the respeakerd should be running now. You can inspect the status of the respeakerd service with
sudo journalctl -f -u respeakerdWe have implemented a Python client for respeakerd, this client is also an AVS client. Since all the Python dependencies are already installed by the script in step 1.2, you can simply run the client with
python ~/respeakerd/clients/Python/demo_respeaker_v2_vep_alexa_with_light.pyAnd speak snowboy to trigger the conversation with Alexa.
We have also modified the official AVS Device SDK (C++) to work with respeakerd - https://github.com/respeaker/avs-device-sdk. We will have a separated guide on this.
The following image shows the software stack, and the audio flow. Understanding this will be helpfull to your debugging.
(a) If you ever touched /etc/asound.conf and did some mofidications there, you're recommended to restore this file to its default.
For ReSpeaker Core v2, there's no /etc/asound.conf by default.
For Raspberry Pi, the seeed-voicecard installation script will install a systemd service which restores /etc/asound.conf to its default every boot up. Please make sure you've not disabled the seeed-voicecard service.
$ sudo systemctl list-unit-files | grep seeed
seeed-voicecard.service enabled(b) Check the volume settings for the playback and cpature devices
For ReSpeaker Core v2, if you want to restore the ALSA volume to its default, do as the following
$ sudo alsamixerTune it like this
Then save the configuration permanetly.
$ sudo alsactl storeFor Raspberry Pi, the same thing as /etc/asound.conf will happen. The seeed-voicecard service will restore the mixer configuration every boot, with the configuration file at the following path as the original.
- /etc/voicecard/ac108_asound.state - ReSpeaker 4 Mic Array for Raspberry Pi
- /etc/voicecard/ac108_6mic.state - ReSpeaker Linear 4 Mic Array for Raspberry Pi, ReSpeaker 6 Mic Array for Raspberry Pi
Please note that, if you want to change our default volume configuration, any
alsamixeralsactloperation will be overwritten when the system boots up next time. You need to do as the following.Tune the volume with alsamixer -> Save the mixer configuration to state file via
alsactl store->cp /var/lib/alsa/asound.state /etc/voicecard/ac108_asound.stateif you're using ReSpeaker 4 Mic Array for Raspberry Pi,cp /var/lib/alsa/asound.state /etc/voicecard/ac108_6mic.stateif you're using ReSpeaker Linear 4 Mic Array for Raspberry Pi, ReSpeaker 6 Mic Array for Raspberry Pi, and then reboot the Pi.
respeakerd depends on PulseAudio system. For ReSpeaker Core v2, PulseAudio is included by default in the system image. For Raspberry Pi, PulseAudio will be installed as a dependence of respeakerd when you install respeakerd with apt-get. PulseAudio will detect the microhpne array codec with the udev mechanism. So if you ever touched the configuration of PulseAudio and disabled the module-udev-detect module, please remember to enable it. You can check if udev is enabled in your PulseAudio configuration with
$ pactl list modules|grep -n3 udevIf you can find the following text in the output, udev is enabled.
44-Module #5
45: Name: module-udev-detect
46- Argument:
47- Usage counter: n/a
48- Properties:If you run
$ pactl list sourcesYou will be able to find a source with name
- alsa_input.platform-sound_0.seeed-8ch - ReSpeaker Core v2
- alsa_input.platform-soc_sound.seeed-source - ReSpeaker 4 Mic Array for Raspberry Pi
- alsa_input.platform-soc_sound.seeed-8ch - ReSpeaker Linear 4 Mic Array for Raspberry Pi, ReSpeaker 6 Mic Array for Raspberry Pi
- Developer Manual - More technical details
- Change Log

