If the ReSpeaker HAT is not detected as an audio device:
-
Check hardware connections:
- Ensure the HAT is properly seated on the GPIO pins
- Verify the HAT has its own power supply connected
- Check that the case isn't putting pressure on the HAT
-
Reboot required:
- After adding device tree overlays, a reboot is mandatory
- Run:
sudo reboot
Problem: No sound or very quiet audio output
Solution - Adjust Playback Volume:
# Open alsamixer for volume adjustment
alsamixerRecommended Playback Settings:
- Press F6 to select output device
- Select 'seeed2micvoicec' from the device list
- Set PCM to 100% (use arrow keys or mouse wheel)
- Set Line DAC to 100% (use arrow keys or mouse wheel)
- Press ESC to exit
Problem: Microphone not working or recording too quiet/loud
Solution - Adjust Recording Volume:
# Open alsamixer for recording volume adjustment
alsamixerRecommended Recording Settings:
- Press F6 to select input device
- Select 'seeed2micvoicec' from the device list
- Press F4 to filter capture settings
- Set Capture (PGA) to 30% (recommended - avoid going too high to prevent clipping)
- Press ESC to exit
Check available audio devices:
# List playback devices
aplay -l
# List recording devices
arecord -lExpected output for ReSpeaker HAT:
card 2: seeed2micvoicec [seeed2micvoicec], device 0: ...
If device not found:
- Ensure you've rebooted after adding device tree overlays
- Check
/boot/firmware/config.txtcontains:[all] # ReSpeaker HAT dtoverlay=respeaker-2mic-v2_0-overlay dtoverlay=i2s-mmap dtparam=spi=on
Poor Voice Command Recognition:
Problem: Voice commands are not being recognized accurately or consistently
Symptoms:
- Commands are misinterpreted or not understood
- System responds to unintended phrases
- Recognition works inconsistently
- Background noise interferes with command detection
Troubleshooting Steps:
-
Adjust Audio Preprocessing Settings:
- Review and modify preprocessing parameters in your configuration file
- Experiment with different noise reduction and gain settings
- Fine-tune voice activity detection thresholds
See config.md for more details.
-
Enable Audio Logging for Analysis:
- Enable audio_logs_path in your configuration. This will record all voice commands for quality review
- Review recorded audio files to assess command clarity
- Check for background noise, speech volume, and pronunciation issues
- Identify patterns in failed recognition attempts
See config.md for more details.
-
Use Development Tools for Recognition Analysis:
# Run development tools to analyze recognition patterns make dev-tools- Examine what phrases the system is actually recognizing
- Compare expected vs. actual transcriptions
- Identify common recognition errors and patterns
-
Disable Speech2Text Streaming for Better Accuracy:
- If recognition accuracy is poor despite other adjustments, try disabling streaming mode
- This will add approximately 500ms of latency but may significantly improve accuracy
- In your configuration file, set
speech2text.streamingtofalse:
"speech2text": { "streaming": false, ... }
- Restart the Yova service after making this change:
sudo systemctl restart yova.service
Additional Recommendations:
- Speak clearly and at a consistent volume
- Minimize background noise when giving commands
- Use consistent phrasing for voice commands
- Consider adjusting microphone sensitivity if commands are too quiet or loud
- Test recognition in different acoustic environments
To ensure Yova runs correctly as a system service, you must configure ALSA with a global /etc/asound.conf file. This allows audio access for background services (not just your user session).
Check current ALSA config:
cat /etc/asound.confExpected configuration:
pcm.!default {
type plug
slave.pcm "hw:2,0"
slave.rate 16000
}
ctl.!default {
type hw
card 2
}
Note: The card and device numbers (2,0) may vary. Use the numbers from aplay -l output.
Test playback:
# Download test audio file
curl -L -o test_sound.wav https://github.com/jamro/yova/raw/refs/heads/main/yova_shared/assets/test_sound.wav
# Play test sound (replace X,Y with your card,device numbers)
aplay -D "plughw:2,0" test_sound.wavTest recording:
# Record 5 seconds of audio
arecord -D "plughw:2,0" -f S16_LE -c1 -r 16000 -d 5 rec_test.wav
# Play back recorded audio
aplay -D "plughw:2,0" rec_test.wav# Check if service is running
sudo systemctl status yova.service
# Check if service is enabled (starts on boot)
sudo systemctl is-enabled yova.service
# View service logs
sudo journalctl -u yova.service -f# Restart service (after configuration changes)
sudo systemctl restart yova.service
# Start service if stopped
sudo systemctl start yova.service
# Stop service
sudo systemctl stop yova.service