I’m trying to have a decent configuration for the Playstation Eye. I’m using pulseaudio filters for echo cancellation, noise reduction, voice detection, high frequency filter-out, beamforming (using the 4 mics in the array to help single out the voice from the noise).
Setting up the AEC filters:
pactl load-module module-echo-cancel use_master_format=1 aec_method='webrtc' aec_args='"analog_gain_control=0 digital_gain_control=1 noise_suppression=1 high_pass_filter=1 voice_detection=1 beamforming=1 mic_geometry=-0.03,0,0,-0.01,0,0,0.01,0,0,0.03,0,0"'
Default source (audio input) for pulseaudio
pacmd set-default-source alsa_input.usb-OmniVision_Technologies__Inc._USB_Camera-B4.09.24.1-01.multichannel-input.echo-cancel
Improve the audio volume by 350% (I’m still trying to find a good value):
pactl set-source-volume alsa_input.usb-OmniVision_Technologies__Inc._USB_Camera-B4.09.24.1-01.multichannel-input.echo-cancel 350%
Finally, configure Rhasspy 2.4.20 to use arecord (instead of pyaudio):
"microphone": { "system": "arecord", "arecord": { "device": "pulse", "chunk_size": 960 }
When I use parecord to get a sound file, it works very well:
parecord --channels=1 --format=s16le --rate=16000 -d alsa_input.usb-OmniVision_Technologies__Inc._USB_Camera-B4.09.24.1-01.multichannel-input.echo-cancel test.wav
My system: Raspberry Pi4, 4GB with Debian 64-bit (AArch64), original Raspberry Pi4 64-bit kernel.
Well, the wakeword part if not good (I don’t know if the STT is any better), but standalone recording seem to be good.
What are your setups? Are they working (better than mine, at least)?