I purchased a ReSpeaker to make a Raspberry Pi voice assistant. I am using this tutorial:
https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_2mic.md
However, when I do the test recording using arecord and play it back using aplay, the sound quality is unbearably bad. Where running arecord -L, I get the following output:
null
Discard all samples (playback) or generate zero samples (capture)
sysdefault
Default Audio Device
lavrate
Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
Rate Converter Plugin Using Samplerate Library
speexrate
Rate Converter Plugin Using Speex Resampler
jack
JACK Audio Connection Kit
oss
Open Sound System
pulse
PulseAudio Sound Server
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
default
Playback/recording through the PulseAudio sound server
playback
capture
dmixed
array
usbstream:CARD=vc4hdmi
vc4-hdmi
USB Stream Output
hw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Direct hardware device without any conversions
plughw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Hardware device with all software conversions
sysdefault:CARD=seeed2micvoicec
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Default Audio Device
dsnoop:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Direct sample snooping device
usbstream:CARD=seeed2micvoicec
seeed-2mic-voicecard
USB Stream Output
When I run aplay -L, I get this
null
Discard all samples (playback) or generate zero samples (capture)
sysdefault
Default Audio Device
lavrate
Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
Rate Converter Plugin Using Samplerate Library
speexrate
Rate Converter Plugin Using Speex Resampler
jack
JACK Audio Connection Kit
oss
Open Sound System
pulse
PulseAudio Sound Server
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
default
Playback/recording through the PulseAudio sound server
playback
capture
dmixed
array
hw:CARD=vc4hdmi,DEV=0
vc4-hdmi, MAI PCM i2s-hifi-0
Direct hardware device without any conversions
plughw:CARD=vc4hdmi,DEV=0
vc4-hdmi, MAI PCM i2s-hifi-0
Hardware device with all software conversions
sysdefault:CARD=vc4hdmi
vc4-hdmi, MAI PCM i2s-hifi-0
Default Audio Device
hdmi:CARD=vc4hdmi,DEV=0
vc4-hdmi, MAI PCM i2s-hifi-0
HDMI Audio Output
dmix:CARD=vc4hdmi,DEV=0
vc4-hdmi, MAI PCM i2s-hifi-0
Direct sample mixing device
usbstream:CARD=vc4hdmi
vc4-hdmi
USB Stream Output
hw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Direct hardware device without any conversions
plughw:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Hardware device with all software conversions
sysdefault:CARD=seeed2micvoicec
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Default Audio Device
dmix:CARD=seeed2micvoicec,DEV=0
seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0
Direct sample mixing device
usbstream:CARD=seeed2micvoicec
seeed-2mic-voicecard
USB Stream Output
So I try a 5-second recording, by running this command, it generate the wav file.
arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav
Then when running the command to playback, the audio is very muffled and distorted. I plugged in headphones, and it’s barely understandable, if that, when I play it back using this command:
aplay -D plughw:CARD=seeed2micvoicec,DEV=0 test.wav
It sound like I’m talking into a pillow. Does this indicate that I have a faulty HAT or do I have something configured wrong? I would expect that the audio would need to be clear for OpenWakeWord to actually detect the wake word (it doesn’t - I tried).
I think I can get this project working if I can get the audio to record clearly. Just not sure where to go from here. Anything you guys see room for improvement on? Or that I’m simply doing it plain wrong?
Thanks for any help in advance!
-Scott