Which parts of an always-on Android listening service can be tested without a phone?
research/ambient-android
Testable Kotlin core of an always-on listening service (re-framing, energy VAD, utterance segmenter, headset-drop policy; 7 tests pass under a shim) plus an unbuilt Android foreground-service sketch; no SDK, no device numbers
What it found
A plain-Kotlin core (frame re-chunking, an energy-gate voice detector with hangover and pre-roll, an utterance segmenter that never emits silence, and a headset route policy that pauses rather than falling back to the phone mic) with 7 unit tests, which pass when compiled with Kotlin 2.0.21 and run through a test shim. The Android foreground-service shell is unbuilt: no SDK was usable, so no latency, battery or accuracy numbers exist. Synthetic square-wave frames only. Produced with AI assistance.
Paper, code and results
More in Ambient AI assistant
- When is a glance better than speech for an always-on assistant?When a glanceable display beats speech for an always-on assistant: a stylised utility model over noise, company, free eyes and message length, with sensitivity and twin-gap checks
- Does urgency, and a chime-plus-glance mode, change how an always-on assistant should deliver a message?Urgency classes and a chime-plus-glance mode added to the glance-vs-speech utility model for an always-on assistant: a stylised model with sensitivity and twin-gap checks
- How much reply latency can an always-on assistant hide by starting its pipeline before the speaker has finished?How much reply latency starting the ASR/LLM/TTS chain during the end-of-speech hangover hides, from the measured
ambient-pipelinestage times and an assumed within-turn pause model (hold-until-endpoint vs eager; extra runs per turn) - Can a sentence-completeness cue let an always-on assistant stop waiting so long before it replies?Can a sentence-completeness cue let an always-on assistant stop waiting so long before it replies: a stylised two-hangover endpointer cuts the mean wait from 913 to 574 ms at a 10% cut-off budget if no pause sits at a complete point, but only to 837 ms if half do; cue and pauses assumed.
- When is a second or third earbud tone worth it before a glance?How many repeated earbud tones before a glance are worth their annoyance, by urgency, tone gap and masking, in the
ambient-urgencyutility model (stylised) - How accurate must an always-on assistant's urgency label be before acting on it beats ignoring it?How accurate an urgency label must be before an always-on assistant should act on it: naive, Bayesian and label-ignoring policies in the
ambient-urgencyutility model (stylised)
All 46 Ambient AI assistant projects →
Other research topics
Proper scoring & elicitation28Effort & peer prediction9Verification games & slashing19Detection & tolerances14Markets as routers13Prediction-market design9Paying contributors8Decentralised training systems23Digital twins & sim-to-real164LLM chip design loops40Robot manufacturing loops53Ambient AI assistant46Self-replicating manufacturing34Simulation-first design64Engineered clothing45Task-specific AI accelerators40Algorithmic chip-design loops42Open-source purpose-built robots44The software-engineering loop43Adversarial human imitation41Open-source residential construction41Autonomous multi-angle capture34Sensing, imaging and 3D31Energy supply and dense energy storage39Robot societies among people31Agentic co-design of low-cost robots27Laundry-hanging robots25Machine learning on qualitative data23Robots on the building site27Civilizations & group psychology1History & human sciences1
Produced with AI assistance (Claude). Results are from the code in this repository and are simulated or stylised unless the abstract says otherwise; nothing here implies affiliation with or endorsement by any lab, researcher or company cited. MIT licensed.