Loading session...

AI Roundtable Open Debate · 5 models

What do you think of this? is this the best recipe for capturing breathing using phone sonar without the clicking artifact and reject noise and being invariant across devices? ### Practical recipe - 48 kHz sample rate; ZC sequence modulated to 18–21 kHz, frame length ~10–40 ms (integer samples), looped continuously. - Cyclic cross-correlation per frame → CIR; track tap phases; clutter-remove static taps; band-pass for breathing. - Startup calibration: direct-path measurement for latency sync + equalization → handles model variance. - Drop the low edge to 17–18 kHz only if you need weaker-speaker phones; accept slight audibility risk to kids/pets.

Answer: The recipe is a strong foundational skeleton, but incomplete for real-world deployment without vital DSP and hardware fixes. (All 5 models agreed)

Model Responses

Gemini 3.6 Flash

Answer: The proposed recipe provides an excellent physical and algorithmic foundation, but calling it the best complete recipe requires adding continuous clock-drift compensation, OS audio processing bypass, phase-coherent frame boundaries, and slow-time adaptive clutter extraction.

The consensus across models reinforces that the core architecture—Zadoff-Chu sequences in the 18–21 kHz band, cyclic correlation for CIR generation, and phase tracking—is the gold standard for acoustic breathing detection. However, deploying this successfully in the wild without artifacts or device failures requires crucial additions that the four-bullet recipe omits. First, resolving the clicking artifact requires more than continuous looping of integer-sample frames. To guarantee zero click or buzz, the carrier phase must be perfectly continuous across the loop boundary (meaning every transmitted frequency component must be an integer multiple of the frame rate). Additionally, initial stream fade-in/out and drive-level capping are required to prevent non-linear speaker intermodulation distortion, which folds ultrasound back down into the human audible range. Second, achieving cross-device invariance requires active session management beyond a startup calibration. Smartphone clocks drift relative to sample rates (ppm offsets), causing the direct path to walk across range bins; continuous phase tracking of the direct path is required as a baseline reference. Furthermore, the pipeline must explicitly bypass system audio processing (requesting unprocessed/measurement mode input on Android and iOS) to prevent hardware echo cancellation or automatic gain control from destroying the CIR phase. Finally, noise rejection and clutter removal must be refined. Deleting static taps destroys vital respiration data because static reflections and micro-movements share the same range bins. Instead of removing static taps entirely, the system should apply slow-time filtering across individual taps combined with static vector subtraction, isolating the small rotating breathing vector from the large static background.

Grok 4.5

Answer: It is a strong, literature-aligned baseline for phone sonar breathing sensing, but not the best complete recipe—phase continuity, adaptive clutter rejection, and clock/geometry invariance still need explicit treatment beyond what you listed.

The other models reinforce rather than overturn this stance. Gemini is somewhat more optimistic about production readiness, yet still concedes the need for adaptive clutter filtering. GPT-5.6 Sol, Claude Fable 5, and Kimi K3 land in essentially the same place I did: the skeleton (ZC, 48 kHz, 18–21 kHz, cyclic CIR, phase tracking, startup direct-path EQ) is correct and matches the successful LLAP/C-FMCW lineage, but the four bullets as written leave critical failure modes unaddressed. Clicking is not solved by “integer samples + loop continuously.” All three detailed critiques correctly insist on phase-continuous construction (every spectral line an integer multiple of the frame rate, or raised-cosine cross-fade), constant envelope, start/stop ramps, and explicit control of speaker drive level to limit intermodulation that folds energy into the audible band. Without those, residual ticks and buzz remain. Device invariance is likewise under-specified by a one-shot calibration. Continuous direct-path phase/timing referencing is required to track clock drift and resampler walk; the unprocessed audio path (UNPROCESSED / measurement mode) must be requested and verified because AEC/AGC/NS will otherwise mangle the CIR; EQ must be regularized and slowly adaptive rather than a static inverse; and band selection should be probed per device instead of hard-coded. These points, especially as articulated by Claude and GPT, sharpen my original concern about clock/geometry invariance without changing the conclusion. On the DSP side, “clutter-remove static taps + band-pass” remains necessary but insufficient. Static and dynamic energy share delay bins, so per-tap slow-time high-pass / mean removal (or MTI/RLS), static-vector circle fitting, multi-tap SNR-weighted selection, motion gating (ideally IMU-aided), and an adaptive physiological band are the practical upgrades that turn a lab demo into something robust. I already flagged adaptive clutter and phase continuity; the round simply supplies more concrete mechanisms. Thus I keep the same headline: excellent baseline, not yet the best complete recipe. The additions that would push it over the line are seamless phase-coherent synthesis, continuous direct-path referencing, OS-DSP bypass, per-tap slow-time processing with motion gating, and per-device band/gain probing—precisely the gaps the stronger critiques identify.

GPT-5.6 Sol

Answer: This remains a strong architecture-level baseline, but it is not yet the best click-free, noise-robust, cross-device recipe because seamless waveform construction, continuous clock/phase correction, audio-pipeline control, adaptive clutter processing, and motion rejection must be explicit.

The other answers reinforce rather than change my position. ZC-based matched filtering, complex CIR phase tracking, and a 10–40 ms update interval are sensible foundations, but textbook CAZAC properties apply to the complex sequence; a real, band-limited, carrier-modulated phone waveform must be evaluated using its actual emitted reference. The sequence period must also exceed the relevant channel delay spread to avoid circular range ambiguity. “Integer samples” and continuous looping do not alone prevent clicks. Construct the waveform on FFT-bin-aligned frequencies so its value and carrier phase match exactly at the boundary, use uninterrupted ring-buffer playback, and apply a smooth envelope only at startup and shutdown. Keep drive level conservative and measure audible intermodulation products, since a digitally ultrasonic waveform can still generate audible distortion in a nonlinear phone speaker. Startup calibration corrects bulk latency and coarse frequency response, but cannot create true device invariance. Request the least-processed audio path and verify whether AGC, AEC, noise suppression, or sample-rate conversion remains active. Track the direct path continuously to estimate common phase rotation, range-bin drift, dropped frames, and playback/capture clock mismatch; adapt gain and usable bandwidth when orientation, cases, or hand occlusion alter the response. “Clutter-remove static taps” should mean slow-time complex background subtraction, not deleting nominally static delay bins, because breathing is often a tiny modulation superimposed on a large static reflection in the same bin. Add dynamic tap selection, phase unwrapping or static-vector/circle correction, coherent multi-tap combining, and a gross-motion detector that gates unreliable intervals. A fixed breathing-band filter cannot reliably reject body motion, fans, speech leakage, or changing multipath by itself. A stronger practical recipe would therefore add: FFT-bin-aligned periodic excitation with fade-in/out; calibration using the actually emitted waveform; continuous direct-path clock/phase tracking; per-device band and level probing; adaptive per-tap clutter filtering and SNR-based selection; motion-quality gating; and optional sub-band hopping when ultrasonic interference is detected. Lowering the edge to 17–18 kHz is a defensible fallback, but it should be selected from measured device response and audible-distortion tests rather than used globally.

Claude Fable 5

Answer: The recipe remains a strong literature-aligned skeleton but not the best complete solution — the round confirmed my view that click-free playback, session-long device invariance, and real-world noise rejection all require specifics the recipe omits (phase-coherent loop construction, DSP-bypass capture, continuous clock/phase tracking, per-tap slow-time filtering, and motion rejection).

I'm maintaining my position, and notably every other model converged on essentially the same three gaps I identified: (1) integer-sample frames alone don't kill clicks — you need phase continuity across the loop boundary plus start/stop ramps plus attention to speaker nonlinearity; (2) one-shot startup calibration doesn't deliver device invariance — clock drift, OS audio DSP (AEC/AGC/noise suppression), and thermal changes require continuous direct-path tracking; (3) 'clutter-remove static taps + band-pass' is insufficient in real rooms. Only Gemini 3.6 Flash rated the recipe as near-production-grade, and even it conceded the clutter handling must be upgraded to adaptive filtering — which is the core of the critique, not a footnote. That said, the other responses sharpened several points I'd fold into a final recipe without changing my stance. Kimi K3's construction — synthesize the ZC directly on occupied FFT bins of an N-point grid so the frame is periodic by construction, with band edges on bin centers — is the cleanest concrete fix for the click problem; it's the constructive version of my 'every spectral component must be an integer multiple of the frame rate' requirement. Kimi's point about per-tap slow-time high-pass filtering rather than tap deletion is also the right formulation: static and dynamic paths share delay bins, so deleting 'static taps' can delete the breathing signal itself. GPT-5.6 Sol's IMU fusion for phone/body motion disambiguation and its adaptive sub-band capability probe (many earpieces roll off hard above ~19–20 kHz) are practical additions I'd endorse, as is Kimi's widening of the breathing band for infants (~1 Hz). One refinement worth emphasizing that the round surfaced: real-valued, band-limited modulation of a complex ZC sequence degrades its textbook cyclic-autocorrelation properties (GPT-5.6 Sol's point). This means the 'ideal CAZAC' argument for ZC is partially aspirational after passband construction, and the actual correlation sidelobe behavior should be measured on the emitted waveform, not assumed. So the verdict stands: the recipe is a correct skeleton — 48 kHz, 18–21 kHz ZC, cyclic correlation to CIR, phase tracking, startup EQ — but 'best' requires the hardening layer the field actually demands: bin-aligned phase-coherent synthesis with ramps, UNPROCESSED/measurement-mode capture with per-device verification, continuous direct-path phase and clock-drift compensation, per-tap slow-time clutter filtering with dynamic tap selection, drive-level caps or IM-product detection for nonlinearity, adaptive band selection (and optionally hopping against ultrasonic interferers), a wider adaptive breathing band, and IMU-gated motion rejection. No other model's argument moved me off this; rather, the convergence across four independent critiques strengthens it.

Kimi K3

Answer: I maintain my round-1 verdict — this is the right architecture class but not a sufficient 'best recipe' — and the round-2 responses reinforce rather than overturn it, with the only dissenting claim (Gemini's, that integer-sample looping eliminates clicks) resting on a technical error.

Three of the four other models (Grok 4.5, GPT-5.6 Sol, Claude Fable 5) independently converge on exactly the gaps I flagged: phase-continuous loop construction beyond integer sample counts, disabling/verifying OS audio DSP, clock-drift compensation via continuous direct-path tracking rather than one-shot calibration, slow-time per-tap clutter handling instead of static-tap deletion, and explicit motion-artifact treatment. That cross-model convergence on omissions none of us coordinated on is strong evidence these are real field-killers, not nitpicks. Gemini's dissent deserves direct rebuttal because it is the only answer claiming the click problem is already solved. 'Integer sample counts + looping' guarantees a seamless loop only if the entire waveform is periodic with the frame — but a time-domain ZC is spectrally flat, so confining it to 18–21 kHz requires filtering, and any non-cyclic filter (or an upconversion carrier whose cycles-per-frame is not an integer) breaks that periodicity and recreates boundary transients. The click-free property holds only under the construction I specified: synthesize on the DFT bin grid with bin-aligned band edges, so the periodic extension equals the original signal. Gemini's answer doesn't address this at all, so it doesn't refute the objection — it just assumes it away. Several contributions sharpen my position without changing it. Claude's static-vector point gives concrete mechanism to my 'per-tap filtering, not tap deletion' critique: each complex tap is a large static phasor plus a small breathing-driven rotating component, so raw phase is nonlinearly distorted and needs circle-fitting or dynamic-component extraction (LLAP-style) — and worse, the breathing tap IS quasi-static, so 'clutter-remove static taps' as literally written can delete the signal. Grok's ppm-level clock-skew → range-walk observation strengthens the case that direct-path tracking must be continuous, not startup-only. GPT-5.6 adds two real refinements I endorse: a real-valued passband ZC does not retain textbook CAZAC behavior (so the passband construction must be specified and tested, not assumed), and equalization must be regularized and power-limited because inverting a deep hardware notch manufactures distortion rather than signal. Its IMU-fusion point also fills a gap I under-weighted: gross body motion is 10–100× chest displacement, and no breathing band-pass survives that — you need gating/segmentation, not just better filtering. On the 17–18 kHz tradeoff, I note Grok, GPT-5.6, and Claude all independently prefer per-device band probing over a global choice, which is strictly better than the recipe's binary fallback and consistent with my calibration-centric view. My core position is therefore unchanged: the skeleton is best-in-class, but 'best recipe' status depends on items the four bullets omit, and nothing in this round provided a reason to soften that.

Final Summary

While the AI Roundtable unanimously praised the proposed Zadoff-Chu and continuous cyclic correlation framework as a top-tier acoustic sensing skeleton, all five models concluded that it is incomplete for production deployment. Claude Fable 5, Kimi K3, and GPT-5.6 Sol emphasized that integer frame lengths alone won't eliminate clicking without explicit DFT bin-alignment and speaker drive caps, while Grok 4.5 and Gemini 3.6 Flash highlighted that device invariance breaks down without continuous clock-drift tracking and OS audio DSP bypass. Ultimately, the Roundtable agreed the core architecture is sound, but demands per-tap slow-time filtering, driver level limits, and motion-quality gating to become a truly bulletproof recipe.

All 5 models agreed