Homelab Academy / Modules
Guided practice + break/fix + lab gate.
Module: Module 4: Local Voice Assistant
Activity type: Lab (Practice)
Objective: Given a voice request, the learner can draw the local Assist pipeline stages, instrument one test per stage, and isolate faults to mic, wake, STT, intent/action, TTS, or playback.
Test the voice chain one layer at a time. Do not run full wake→action until layers 1–10 pass.
Record raw mic audio (arecord/Audacity/Phone). Confirm intelligible, not clipped.
# Example if ALSA device exists on the satellite/host:
arecord -l
arecord -d 5 -f cd /tmp/voice-raw.wav
aplay /tmp/voice-raw.wav
ls -l /tmp/voice-raw.wav
# Record with Voice Recorder / Audacity; save to Desktop\voice-raw.wav
Get-Item $HOME\Desktop\voice-raw.wav | Format-List Name, Length, LastWriteTime
Wake word: 10 attempts at fixed distance → record detections / misses.
False activations: 10 unrelated phrases → record false wakes.
VAD/endpointing: confirm start/end do not chop words (inspect recording or pipeline debug).
STT alone: submit the same audio/phrase to configured STT; save transcript text in workbook.
Assist text path: paste that exact transcript into HA Assist; record intent + target entity.
Action alone: call the HA service manually; confirm entity changes.
TTS alone: synthesize a fixed phrase; confirm audio file/stream exists.
Playback alone: play a known WAV/MP3 on the target speaker.
aplay /usr/share/sounds/alsa/Front_Center.wav 2>/dev/null || ffplay -autoexit -nodisp /tmp/test.wav
Full pipeline only after 1–9 pass. Time wake→action latency; log failures by layer.
Mute mic; confirm wake fails. Unmute. Play TTS with speaker unplugged; confirm synthesis may succeed while playback fails, record both.
All boxes must be true before the next class unlocks. If you fail: feedback → targeted review → new practice → reassess.