feat: Raspberry Pi 5 kitchen satellite — Wyoming voice satellite with ReSpeaker pHAT
Add full Pi 5 satellite setup with ReSpeaker 2-Mics pHAT for kitchen voice control via Wyoming protocol. Includes satellite_wrapper.py that monkey-patches WakeStreamingSatellite to fix three compounding bugs: - TTS echo suppression: mutes wake word detection while speaker plays - Server writer race fix: checks _writer before streaming, re-arms on None - Streaming timeout: auto-recovers after 30s if pipeline hangs - Error recovery: resets streaming state on server Error events Also includes Pi 5 hardware workarounds (wm8960 overlay, stereo-only audio wrappers, ALSA mixer calibration) and deploy.sh with fast iteration commands (--push-wrapper, --test-logs). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -116,7 +116,28 @@ check_images() {
|
||||
Place 320x240 PNGs in ${ILLUSTRATIONS_DIR}/ or use --regen-images to generate placeholders."
|
||||
fi
|
||||
|
||||
log_ok "All ${#REQUIRED_IMAGES[@]} illustrations present in illustrations/"
|
||||
# Resize any images that aren't 320x240
|
||||
local resized=0
|
||||
for name in "${REQUIRED_IMAGES[@]}"; do
|
||||
local img_path="${ILLUSTRATIONS_DIR}/${name}.png"
|
||||
local dims
|
||||
dims=$("${PYTHON}" -c "from PIL import Image; im=Image.open('${img_path}'); print(f'{im.width}x{im.height}')")
|
||||
if [[ "$dims" != "320x240" ]]; then
|
||||
log_warn "${name}.png is ${dims}, resizing to 320x240..."
|
||||
"${PYTHON}" -c "
|
||||
from PIL import Image
|
||||
im = Image.open('${img_path}')
|
||||
im = im.resize((320, 240), Image.LANCZOS)
|
||||
im.save('${img_path}')
|
||||
"
|
||||
resized=$((resized + 1))
|
||||
fi
|
||||
done
|
||||
if [[ $resized -gt 0 ]]; then
|
||||
log_ok "Resized ${resized} image(s) to 320x240"
|
||||
fi
|
||||
|
||||
log_ok "All ${#REQUIRED_IMAGES[@]} illustrations present and 320x240"
|
||||
for name in "${REQUIRED_IMAGES[@]}"; do
|
||||
local size
|
||||
size=$(wc -c < "${ILLUSTRATIONS_DIR}/${name}.png" | tr -d ' ')
|
||||
@@ -208,10 +229,8 @@ if $REGEN_IMAGES; then
|
||||
generate_faces
|
||||
fi
|
||||
|
||||
# Check existing images if deploying with --images-only (or always before deploy)
|
||||
if $IMAGES_ONLY; then
|
||||
check_images
|
||||
fi
|
||||
# Check existing images (verify present + resize if not 320x240)
|
||||
check_images
|
||||
|
||||
# Validate only
|
||||
if $VALIDATE_ONLY; then
|
||||
|
||||
Reference in New Issue
Block a user