← Kenzy Research
Paper 02 · Multi-node audio

Who answers? Choosing the right speaker when two devices hear the same wake word.

Put a voice assistant in every room and, eventually, two of them hear you at once — both wake, both answer, both spend a full pipeline for one wanted reply. This is the reproducible experiment record behind Kenzy's wake-word arbitration: what commodity microphones actually do to your signal, why loudness is a property of the device as much as the distance — and the honest limit we measured, that automatic gain control flattens distance so thoroughly that past a few feet, "the nearest device" is decided by which way you're facing.

Authors
The Kenzy Project — open-source voice-assistant research group
Published
August 23, 2026
Type
Engineering report — live lab trials on commodity hardware; not peer-reviewed
Reproducibility
Under $100 in hardware; driver, fault-injection tooling, and arbitration code are open source (§3, Appendix C)
Correspondence
github.com/lnxusr1/kenzy · kenzy.ai
Abstract

A self-hosted voice assistant with a device in every room faces a problem single-speaker products never do: when two microphones are within earshot, both hear the same wake word, both run a full recognition pipeline, and the user gets two overlapping answers. We study how to choose exactly one device to answer — cheaply, without a central clock, on mismatched consumer hardware — and to make the losing devices genuinely silent, since a false start reads as a malfunction.

We show first that the decision is nearly free architecturally: co-audible devices fire their wake events 6–150 ms apart, and a natural-feeling assistant already holds ~400 ms of silence after a wake before it chimes, so an arbitration window fits inside that hold at zero added latency. The hard part is which device to pick. Testing a wake-loudness heuristic on commodity USB speakerphones, we find that automatic gain control (AGC) turns absolute loudness into partly a property of the device, not the distance: between different models a fixed 3–6 dB front-end offset can beat proximity, and the intuitive "margin over the noise floor" metric chiefly measures whose noise suppression is more aggressive.

On a matched, identically-configured pair, wake loudness ranks cleanly and reliably picks a genuinely nearer device (50/50 trials at a 3 ft vs 6 ft separation). But a controlled distance sweep shows AGC compresses the distance signal to ~50% of its inverse-square value at a 2× range ratio and erases it by ~4 ft — while talker aim alone is worth ~1.5–3.75 dB, as much as a 2× change in distance. The result is a pick that is consistent but geometry-blind: a nearby device answers, reliably, but not guaranteed the nearest one. We argue this is acceptable product behavior and a clean boundary — a true "answer on my nearest device" feature needs a signal AGC cannot erase (in-room presence sensing). Throughout, we document why the apparatus was harder than the acoustics: several instruments produced clean, plausible numbers that were pure measurement artifact.

Keywords: wake-word arbitration · multi-node voice · automatic gain control · microphone signal · dBFS / noise floor · device selection · commodity hardware · measurement methodology

Key findings at a glance

1. The free lunch. Two devices that hear one wake word fire within 6–150 ms of each other — and a voice assistant already holds ~400 ms of silence after a wake before it chimes. That silence is exactly where arbitration can live, at zero added latency, if the losers can be made truly silent.

2. The uncomfortable finding. On commodity microphones, absolute loudness is partly a property of the device, not the distance. Automatic gain control lifts a quiet, far device to the same level as a loud, near one — so the naïve "loudest mic wins" can hand the turn to the wrong room.

3. The honest limit. On matched devices, loudness ranks cleanly and the pick is reliable close-up (< ~3 ft). Past that, gain control has compressed the distance signal into the ~1–4 dB that aim and room contribute — so the choice is consistent but geometry-blind: a nearby device answers, just not guaranteed the nearest one. That's fine UX, and it's why a truly "nearest" pick needs a signal gain control can't erase.

01Introduction: the two-butlers problem

A voice assistant with a device in every room has a coordination problem the single-speaker products never face: put two microphones in earshot of each other and, sooner or later, both hear the same "Hey Kenzy." Both wake. Both transcribe, identify the speaker, call the model, synthesize speech. You get two overlapping answers — and you paid for two full pipelines to get one you wanted.

This work supports Kenzy, an open-source, local-first, whole-home voice assistant whose rooms each run their own listening device, or node (kenzy.ai). Commercial assistants solve co-audible wake in the cloud with proprietary arbitration; a self-hosted stack has no such luxury, and — as far as we could find — no documented open equivalent. In a real multi-node household the failure mode is worse than doubled: with three devices in adjacent rooms, one room's transcriber can hallucinate an answer out of another room's spoken reply bleeding through. So the question is narrow and concrete: when several devices hear one wake word, how do you pick exactly one to answer — cheaply, without a central clock, on mismatched consumer hardware — and make the rest genuinely silent?

A constraint that shapes everything
A loser that chimes and then goes quiet is a worse experience than a duplicate answer — a false start reads as a malfunction. So the losing devices can't merely stop talking; they must never make a sound. That single requirement rules out a lot of otherwise-tidy designs.

Contributions. This paper: (1) shows that co-audible arbitration is essentially free in latency terms, fitting inside an existing post-wake hold (§4); (2) documents, with measurements, what commodity microphones do to a wake signal — cross-model level offsets and an AGC-driven failure of the obvious "margin over noise floor" metric (§5); (3) isolates the true device-versus-position contribution to loudness with a unit-swap design (§6); (4) quantifies how much of the distance signal survives AGC, and how large the confounding aim term is (§7–§8); and (5) records the measurement methodology at length, because several plausible instruments turned out to measure themselves rather than the physics (§10).

02Background and terminology

This section defines the vocabulary used throughout; every term also appears, expanded, in the Glossary.

A node is one room's listening device — here, a commodity USB speakerphone attached to a small single-board computer. A wake word ("Hey Kenzy") is the spoken phrase that makes a node begin recording and running the pipeline; two nodes are co-audible when both can hear the same utterance. Arbitration is the act of choosing which co-audible node answers.

Loudness is measured in dBFS (decibels relative to digital full scale — 0 dBFS is the loudest a digital signal can be; normal speech sits well below, so values are negative and "louder" means "closer to 0"). A node's noise floor is the residual level it transmits in silence; margin over the noise floor is how far a phrase rises above it. Nearly all consumer microphones apply automatic gain control (AGC) — they continuously raise or lower input gain toward a target loudness — which is the central antagonist of this study: it lifts quiet, distant speech and holds loud, near speech down, compressing exactly the distance signal arbitration wants to read. Physics says a doubling of distance should drop level by ~6 dB (the inverse-square law); AGC fights that. A separate confound is aim — which way the talker is facing — worth several dB independent of distance.

Each node reports an evidence trio for a wake, measured on-device from the audio just before the wake fired (the only audio that still contains the phrase): the phrase's loudness (dBFS), its margin over that node's noise floor, and the wake detector's peak wake score (its confidence, 0–1). The winner is chosen from those three quantities.

03Methodology

3.1 · Apparatus

The rig is two USB speakerphones, each on its own Raspberry-Pi-class single-board computer running the full assistant node software, reporting to one server. We ran two hardware configurations deliberately. We began with a mismatched exploration across three commodity models — a Kaysuda SP300U, an EMEET OfficeCore M1A, and a NUROUM A05U — to see what a real heterogeneous household does. When the difference in their automatic gain control (the M1A's hot front-end against the others') turned out to dominate the very signal we were trying to read, we rebuilt the rig as a matched pair — two identical NUROUM A05U units (~$35 each) with capture gain pinned identical — and it is the matched pair that produced every quantitative result in this paper. All three are commodity USB speakerphones; their specifications, the AGC and noise-suppression features that matter here, and a note on how much these behaviors vary between models are in Appendix A.

3.2 · Measurement

All measurements ride the assistant's own logs: every arbitration decision records the full evidence trio for every participating node, so a dataset accumulates with zero extra instrumentation. Reported quantities are the signed level gap between nodes (dBFS), the co-wake yield (the fraction of utterances that woke both nodes and thus produced a usable trial), and the winner. Trial counts are stated per result (n ranging from 10-trial paired controls to 50-trial confirmations).

3.3 · The unit-swap design

A single "equidistant" placement cannot separate a device effect (some units are hotter) from a positional effect (one spot is better aimed or closer than it looks), because hand-placing two devices "the same distance" by eye hides a bias you can't see. We therefore run each equidistant test twice, swapping only the units between the two spots. A term that rides the unit is a device offset; a term that rides the spot is positional. Solving the two signed gaps algebraically yields each in isolation (§6).

3.4 · Trial protocol

Trial validity is a protocol, not a timer. The pipeline takes ~25 s to fully answer, so a trial started on a fixed sleep measures the previous trial's replies; every trial instead waits for both nodes' logs to fall quiet before starting. A run must be stationary — geometry is set, locked, and measured; nudging a device mid-series to "force a result" makes the sample uninterpretable (three runs were discarded for exactly this). Where a state-machine question needed determinism rather than realism, we used scripted fault injection — forcing which node "hears" what — instead of hoping the acoustics cooperated. The protocol, and the instrument bugs it was built to defeat, are detailed in §10 and Appendix A.

04Result: the architectural free lunch

The enabling measurement: when co-audible nodes hear the same phrase, their wake events arrive 6–150 ms apart. Meanwhile, a natural-feeling assistant already inserts a brief hold after the wake word — Kenzy holds its "ready" chime ~400 ms so you can speak in one breath. The arbitration window fits inside that hold: collect every node's claim for 250 ms, pick a winner, and stop the losers ~100 ms before any chime would have played. No added latency for the winner, and the losers never emit a sound.

Each node announces its claim with the evidence trio defined in §2, and the winner is chosen from those numbers. Simple — until you look at what the numbers actually mean.

05Result: what consumer microphones do to your signal

This is the section anyone building a multi-microphone system needs, whatever they're building. We started with deliberately mismatched hardware — different speakerphone models — and every intuitive metric turned out to be compromised.

Loudness is partly a device constant

The sharpest result came from putting the quieter device right next to the talker and the louder one several feet away. The far device still won most trials on raw loudness. One speakerphone's hot automatic-gain-control front end runs 3–6 dB hotter than the other's more heavily suppressed one — and at household distances, that fixed offset beats proximity. Between different models, absolute level is as much a fact about the hardware as about where you're standing. The saving grace is that the offset is stable — which is what makes it correctable (compare each device to its own history, not to an absolute).

"Margin over the noise floor" sounds right and measures wrong

The obvious fix for level offsets is a gain-invariant metric — margin above each device's own noise floor, which should cancel any front-end gain. It is gain-invariant, and in a first clean run it even ranked correctly. But it divides by the device's transmitted noise floor, and an aggressive noise-suppressor drives that floor artificially tiny — inflating its margin regardless of distance. In one series the losing device had the better margin in all four trials.

The artifact, quantified
Measured margins over floor: 61–64 dB on the heavily-suppressed unit vs. 42–44 dB on a normal-floor unit — the suppressor's near-silent transmitted floor inflates the ratio. "Margin over floor" was largely measuring whose noise suppression is more aggressive — a pure DSP artifact — not who was closer. A metric can be mathematically principled and still measure the wrong thing.

(The wake-detector score, for the record, is not a distance proxy at all — winner and loser scores overlap freely; a 0.36 beat a 0.80. Usable only as a last tiebreak.)

06Result: does the loudest device win the right turn?

Mismatched hardware muddies everything, so we rebuilt the rig as a matched pair — two identical speakerphones with capture gain pinned identical — to ask the clean question. It immediately taught a lesson: matched hardware is not matched configuration. The two units had been calibrated separately and carried different wake-detection thresholds; one silently rejected marginal phrases before they were ever logged, halving the co-wake yield and mimicking a hardware defect. Equalize the detection config first — always.

With that fixed, the clean control (identical config, 12 trials):

12/12
The louder device won every trial — zero flips, zero ties
~2 dB
Consistent winner→loser gap (mean 1.99, range 1.3–3.7)
100%
Co-wake yield after equalizing detection config (from 50%)
0.3 dB
Residual unit-to-unit offset — negligible; the units are genuinely matched

That last number needed care to earn. A single "equidistant" test would have reported a ~1.8 dB device offset — but hand-placing two devices "the same distance" by eye hides a bias you can't see. Running it twice under the unit-swap design (§3.3), swapping only the units between the two spots, lets you separate a device term (rides the unit) from a positional term (rides the spot) algebraically:

Table 1 · Equidistant + unit-swap — the advantage followed the spot, not the unit
RunSigned level gapWinner
Equidistant, as placed−1.81 dBDevice A · 11/12
Equidistant, units swapped+1.22 dB (flipped)Device B · 11/12

The hot side followed the location, not the hardware. Solving the two gaps: the device offset is ≈0.3 dB (negligible), and the positional/aim asymmetry is ≈1.5 dB. At these ranges an inch of distance is ~0.2 dB — but talker aim is worth ~1.5 dB. "Equidistant to the eye" quietly carries about 1.5 dB of aim bias. Hold onto that number; it's the whole story of the next section.

07Result: how gain control eats distance

If loudness is going to pick the nearer device, we need to know how much of the true distance signal actually survives the microphone's automatic gain control. So we fixed one device at 6 ft and swept the other inward, measuring the level gap at each stop against the ideal an inverse-square law would predict.

Figure 1 · Automatic gain control compresses distance — but doesn't erase it

One device fixed at 6 ft, the other swept inward. Ideal = what inverse-square predicts; measured = the level gap actually observed. The shaded band is the signal AGC swallows.

0 5 10 15 20 level gap (dB) 6 in 18 in 2 ft 3 ft ~6 ft distance of the near device (far device fixed at 6 ft) +18 +8.2 +6.4 +3.0 ~0 ideal (inverse-square) measured gap
Figure 1. The far device sits pinned near −37 dBFS whether it's 2 ft or 6 ft away — its gain control rides the input up to a target. The near device only breaks out of that target inside ~2–3 ft. The surviving signal is ~50% of inverse-square at a 2× distance ratio, rising to ~83% at extreme proximity — enough to pick the nearer device close-up, and gone by ~4 ft.

And distance isn't even the largest term at conversational range. Re-aiming a single device — same spot, same distance, just turned to face the talker — moved its level +3.75 dB and flipped the outcome. Aim is worth as much as a 2× change in distance. In a real home, aim is uncontrolled: people don't face a chosen device. So the direction you happen to be turned routinely swamps the distance signal the arbitration is trying to read.

08Result: the honest limit — consistent, but geometry-blind

Put it together and the product truth is precise. We ran two large confirmations (n≈50 each):

Table 2 · Two 50-trial confirmations — clear separation vs. hand-"equidistant"
PlacementLevel gapResultReading
Near / far (3 ft vs 6 ft)+4.85 dBnearer won 50/50clean, reliable pick
Hand-"equidistant" (~3 ft each)−2.12 dBone side won 47/47consistent, but geometry-blind

When one device is genuinely closer, loudness picks it every time — the near-device level was stable to 0.29 dB over 50 trials. But when two devices are at conversational distance, "equal to the eye" carries that ~2 dB of aim/position residual, and it produces a firm, repeatable winner that is not necessarily the nearer device. The coin-toss intuition is wrong: the behavior isn't random, it's deterministic and blind. A genuine 50/50 needs the gap below ~1 dB — finer than hand placement resolves.

Loudness reliably picks a nearby device — and reliably cannot guarantee the nearest one, once gain control has flattened the distance beneath aim and room.
A reassuring null
We also checked whether a device reads a different level right after it has just spoken (gain settled or clamped) versus from cold idle — a plausible source of bias. Over 10 paired trials the difference was −0.09 dB (statistically zero) with zero missed wakes. On this hardware, having just answered doesn't bias the next decision.

09Discussion: implications for arbitration design

A pick that is consistent but geometry-blind is a perfectly good product outcome: some nearby device heard you, and either can answer. It also draws a clean design boundary. Wake loudness is a correct tiebreaker, and it is decisive exactly where it matters most — when you are talking directly to a device up close. But a true "answer on my nearest device / follow me around the house" feature needs a signal gain control can't erase — in-room presence sensing — layered on top. Loudness alone can't be that signal, and now we have the numbers that say why.

Two engineering consequences follow. First, the level offset between models is stable, so it is correctable: compare each node against its own rolling history rather than against an absolute or against a differently-tuned neighbor. Second, gain-normalized metrics must be validated, not assumed — "margin over noise floor" is mathematically gain-invariant and still wrong, because the denominator is itself a DSP artifact. The safe design uses raw loudness on matched, identically configured nodes as a close-range tiebreaker, treats the wake score as a last resort only, and defers the "nearest device" ambition to a presence layer.

10Methodological lessons: measuring physics, not the apparatus

Most of the real work here wasn't acoustics — it was building an apparatus that measures physics instead of measuring itself. Two early instruments produced clean, plausible numbers that were pure artifact (a silence window that sampled the wrong slice of audio; a "level" that measured a forced wake's empty pre-roll). Both looked like real device behavior. The fix each time was a more honest measurement, not a cleverer theory.

  • Trial validity is a protocol, not a sleep. The pipeline takes ~25 s to answer; a trial started on a fixed timer measures the previous trial's replies. Every trial waits for both devices' logs to fall quiet before starting.
  • A run must be stationary. Three runs were spoiled by nudging a device mid-series "to force a result" — the winner and the levels lurched trial to trial and the sample became uninterpretable. You set a geometry, lock it, and measure what it does; you cannot push the hardware toward the answer you want.
  • Determinism beats realism for state-machine bugs. Scripted fault injection — forcing which device "hears" what — surfaced an ordering bug (a claim landing before the window closed) that acoustic testing never produced.
  • Silent compatibility reads as failure. When an older device quietly spoke a pre-arbitration protocol, it looked like a hardware fault for a day; one loud diagnostic at join time turned the next occurrence into a single log line.

11Limitations and threats to validity

  • One hardware family. The exact numbers — the 3–6 dB cross-model offset, the AGC compression curve, the ~1.5 dB aim term — are specific to the commodity speakerphones tested. A different gain-control design could compress distance more or less. The signal findings (level offsets between models, AGC turning loudness into a device property, "margin over floor" measuring suppression aggressiveness) are what any multi-microphone builder should expect to meet; the constants are not portable.
  • Two nodes, not many. Trials were run with a co-audible pair. The arbitration window and evidence protocol are designed for N nodes, but the acoustic measurements here do not characterize three-or-more overlapping devices, cross-room bleed, or reverberant open-plan spaces.
  • Hand-placed geometry. "Equidistant" placements carry ~1.5 dB of unavoidable aim/position bias — which is itself one of the paper's findings, but it also means sub-1 dB separations cannot be staged by hand. A motorized or acoustically-surveyed rig would tighten the near-tie regime we could only bound, not resolve.
  • Quiet-room conditions. Trials were run without competing household noise, music, or multiple simultaneous talkers. Real ambient noise interacts with AGC and noise suppression and would move the constants.
  • Single talker, controlled utterance. One person spoke the wake word; we did not vary voice, vocal effort across a population, or accent. The level statistics are within-session stable (0.29 dB over 50 trials) but not characterized across speakers.
  • Point-in-time firmware and software. Speakerphone DSP behavior can change with firmware; the arbitration implementation is a moving open-source target. Results are tied to the builds on the bench at the time of the trials.
  • Scope is device selection, not recognition quality. This study measures which node answers, not transcription accuracy, speaker identification, or end-to-end latency — those are the subject of Paper 01 and other work.

12Conclusion

Choosing which of several co-audible voice nodes answers a shared wake word is, in latency terms, nearly free: the wake events land within 6–150 ms of each other and fit inside the ~400 ms hold an assistant already takes before it chimes, so the losers can be silenced before they ever make a sound. The hard part is choosing correctly, and the measured answer is a boundary rather than a victory. On matched, identically-configured hardware, wake loudness reliably picks a genuinely nearer device up close — but automatic gain control compresses the distance signal to nothing by ~4 ft, and talker aim alone is worth as much as a 2× change in distance, so at conversational range the pick is firm, repeatable, and blind to geometry. That is acceptable product behavior and a clean line: loudness is the right close-range tiebreaker on matched nodes, and a genuine "nearest device" feature must be built on a signal gain control cannot erase — in-room presence sensing. The most transferable lesson may be methodological: several principled instruments measured themselves rather than the room, and only a more honest measurement — never a cleverer theory — told them apart.

GGlossary

Aim
The direction the talker is facing relative to a device. Measured here as worth ~1.5–3.75 dB of level — as much as a 2× change in distance — and uncontrolled in a real home.
Arbitration
Choosing which of several co-audible nodes answers a shared wake word, and silencing the rest before they make a sound.
Automatic gain control (AGC)
A microphone front-end that continuously adjusts input gain toward a target loudness. It lifts quiet, distant speech and holds loud, near speech down — compressing the very distance signal arbitration wants to read.
Co-audible
Two or more nodes able to hear the same utterance, so they wake together.
Co-wake yield
The fraction of test utterances that actually woke both nodes, producing a usable head-to-head trial. Halved by mismatched wake thresholds until the detection config was equalized.
dBFS
Decibels relative to digital full scale. 0 dBFS is the maximum a digital signal can represent; speech sits well below, so values are negative and "louder" means "closer to 0."
Evidence trio
The three per-wake quantities each node reports for arbitration: phrase loudness (dBFS), margin over its own noise floor, and the wake detector's peak score.
Inverse-square law
The physical rule that sound level falls by ~6 dB per doubling of distance. AGC works against it, which is why measured level gaps fall short of the inverse-square ideal (Figure 1).
Level gap
The signed difference in measured loudness (dBFS) between two nodes for the same utterance. The raw quantity arbitration ranks on.
Margin over the noise floor
How far a phrase rises above a node's own residual silence level. Intended as a gain-invariant metric; found to chiefly measure how aggressive a device's noise suppression is (§5).
Node
One room's listening device — a commodity USB speakerphone on a single-board computer, running the assistant's node software.
Noise floor
The residual level a microphone transmits in silence. Heavy noise suppression drives it artificially low (measured 42–44 dB vs 61–64 dB between the two models tested).
Presence sensing
In-room occupancy detection independent of the audio signal (e.g. radar/mmWave). Proposed as the layer a true "nearest device" feature needs, because it is not erased by AGC.
Wake score
The wake detector's peak confidence (0–1) for a phrase. Not a distance proxy — winner and loser scores overlap freely — so usable only as a last-resort tiebreak.
Wake word
The spoken trigger phrase ("Hey Kenzy") that starts a node recording and running the pipeline.

AAppendix A · Apparatus and trial protocol

Table 3 · Hardware used (the whole program ran for under $100)
DeviceRole in this studyRelevant features
NUROUM A05U ×2 (~$35 ea)Matched pair — every quantitative result (Fig. 1, Tables 1–2, the null test); capture gain pinned identicalUSB-C/USB-A, no Bluetooth; onboard AGC; hardware AEC; native 48 kHz mono capture; host-visible capture-volume control
Kaysuda SP300U (~$42)Mismatched-phase member (§5)Aggressive noise suppression → near-silent transmitted floor between phrases; onboard AGC; no capture-volume control
EMEET OfficeCore M1A (~$60)Mismatched-phase member (§5) — its hot AGC motivated the matched pairHot AGC front-end (~3–6 dB hotter than the SP300U); native 16 kHz capture; no capture-volume control
Single-board computers ×2One per node (Raspberry-Pi-class)Run the assistant node software
Server host + USB talker speakerArbitration decision + evidence logging; a separate USB speaker plays synthesized wake phrases as the talkerTalker never shares a node's USB bus — contention starves capture
Hardware varies — the findings transfer, the constants don't
The three speakerphones behave differently in exactly the ways that matter: the M1A's AGC runs 3–6 dB hotter than the SP300U's, the SP300U's heavy suppression drives its transmitted floor to near-silence, and only the A05U (and, among untested candidates, some others) exposes a host-settable capture gain. AGC is nearly universal in this device class, but its aggressiveness — how completely it flattens near/far level differences — varies by model, as do suppression depth and the resulting floor. This variation is not a footnote to the study; it is the reason a mismatched pair could not answer the ranking question and the rig was standardized on two identical A05U units. The numeric constants reported here (the 3–6 dB offset, Figure 1's compression curve, the ~1.5 dB aim term) are specific to these units and were measured with a synthesized talker; a different gain-control design could compress distance more or less. A same-model fleet — as most real deployments are — collapses the cross-model offset by construction, which is why matched hardware, not mismatched, produced the headline numbers.

Protocol summary. (1) Equalize wake-detection thresholds across nodes before any trial — matched hardware is not matched configuration. (2) Set a geometry and lock it; a run must be stationary. (3) Start each trial only after both nodes' logs fall quiet (the pipeline takes ~25 s), never on a fixed timer. (4) For any state-machine question, force which node "hears" what via scripted fault injection rather than relying on acoustics. (5) For any equidistant claim, run the placement twice with the units swapped between spots, and separate the device and positional terms algebraically (§3.3, §6).

Two instruments that measured themselves
A silence-window measurement that sampled the wrong slice of audio, and a "level" that measured a forced wake's empty pre-roll, each produced clean, plausible numbers that were pure artifact. Both were caught only by cross-checking against a more direct measurement — the standing hazard of any self-instrumenting rig.

BAppendix B · Measurements

Table 4 · Cross-model signal artifacts (mismatched exploration)
FindingMeasurementConsequence
Front-end level offsetEMEET M1A ~3–6 dB hotter than Kaysuda SP300UFixed offset beats proximity at household range
Margin over floor (DSP artifact)SP300U 61–64 dB vs A05U 42–44 dBMeasures suppression aggressiveness, not distance
Wake score (winner vs loser)overlap freely — 0.36 beat 0.80Not a distance proxy; last-resort tiebreak only
Table 5 · Distance sweep, aim, and null tests (matched pair — two NUROUM A05U)
TestMeasurementReading
AGC distance sweep (near device)+18 / +8.2 / +6.4 / +3.0 / ~0 dB at 6 in / 18 in / 2 ft / 3 ft / 6 ft~50% of inverse-square at 2× ratio; gone by ~4 ft
Far device, pinned by AGC≈ −37 dBFS at 2 ft and 6 ft alikeGain rides input up to a target
Re-aim a single device+3.75 dB, outcome flippedAim ≈ a 2× distance change
Device vs positional (unit-swap)device ≈ 0.3 dB · position/aim ≈ 1.5 dB"Equidistant to the eye" hides ~1.5 dB
Near-device level stability0.29 dB over 50 trialsWithin-session loudness is stable
Post-speech vs cold-idle (null)−0.09 dB over 10 paired trials, 0 missed wakesHaving just answered doesn't bias the next pick

CAppendix C · Reproducibility & cost

Every number here traces to a live, re-runnable trial on hardware anyone can buy: two USB speakerphones at about $35 each and a pair of Raspberry Pis. The measurement rides the assistant's own logs — each arbitration decision records the full evidence for every participating device, so the dataset accumulates with zero extra instrumentation — and the trial driver, fault-injection tooling, and the arbitration implementation itself are all in the open-source project. The whole program of experiments in this write-up was run for well under $100.

Where this generalizes, and where it doesn't
The signal findings — level offsets between models, gain control turning loudness into a device property, "margin over floor" measuring noise-suppression aggressiveness — are the parts anyone building a multi-microphone system should expect to meet. The exact numbers are specific to the speakerphones tested; a different gain-control design could compress distance more or less. The method is built to be re-pointed at new hardware, which is the next thing on the bench.

RReferences

  1. The Kenzy Project. Kenzy — an open, local-first, whole-home voice assistant (node software, arbitration implementation, and trial tooling). kenzy.ai · github.com/lnxusr1/kenzy
  2. Kenzy Research. Paper 01 — can local AI answer as fast as the cloud? (the recognition pipeline whose latency this arbitration protects). research.kenzy.ai/local-llm-benchmark.html
  3. dBFS and digital audio levels — background on decibels relative to full scale, the unit used for every loudness figure here.
  4. Automatic gain control and the inverse-square law — the two physical behaviors this study measures in tension: AGC's target-seeking gain vs. the ~6 dB-per-doubling fall-off of sound level with distance.

Kenzy is an open-source, local-first, whole-home voice assistant — kenzy.ai · source. This is an engineering report from live lab trials: measured on the commodity hardware described, honest about its limits, and written so the experiments can be reproduced and challenged. Product and hardware names belong to their respective owners.