Friday night: make one lamp answer to you syllabus
Find the second that went missing
You have one number and it is too big. A single number tells you to be unhappy; it does not tell you what to change. Four numbers do.
You cannot fix what you have not split
Take a timestamp at five points: when your silence detector fires, when the audio finishes uploading, when the transcript comes back, when the intent resolves, and when the HTTP call returns. Four gaps fall out of that, and one of them is almost certainly most of your total.
One gap will not appear in your logs at all — between your HTTP call returning and the relay actually moving. That one comes from the recording you made last lesson: total measured in the room, minus total measured in code.
Timestamp the five points
Add a monotonic clock reading at each boundary and print the four gaps after every command. Use time.perf_counter(), not time.time() — a wall clock can be adjusted underneath you mid-measurement.
Run ten commands. Watch how much the transcription leg varies between runs; that spread matters more than its average, because the slow runs are the ones people remember.
A worked split
One run from a laptop on home Wi-Fi, hosted transcription, Shelly plug on the same LAN. Yours will differ — that is the point of measuring it — but the shape is common.
Name the slowest leg
Write down which leg owned the largest share. Capture, transcribe, decide, or actuate — one word.
How much of the total was it?
That leg's share of your end-to-end number, as a percentage. This is the figure that decides whether the next lesson is worth doing on your setup.
Where would you spend the next hour?
Your split comes back: VAD hold 750 ms, upload 130 ms, transcription 900 ms, intent 0.3 ms, actuation 20 ms. You have one hour.