A new AI & software cohort batch starts every week. ₹1,500/month, fully online.Join this week's batch
01 // ROBOTICS & SPATIAL COMPUTING·October 18, 2026

AI Voice Wearables

Dissecting 'Friend', Limitless Pendant & Always-On Audio

Architectural teardown of AI voice wearables: 'Friend', Limitless Pendant, and always-on audio companions.

Robotics & Spatial ComputingProduction Verified
AI Voice Wearables: Dissecting 'Friend', Limitless Pendant & Always-On Audio
02Executive Summary

4 Pillars of AI Voice Wearables. 

Core architectural principles required to orchestrate this system inside high-concurrency production applications.

ROBOTICS & SPATIAL COMPUTING · SYSTEM BLUEPRINTWEARABLE AI

Robotics & Spatial ComputingSun Oct 18 2026● Peer Reviewed Technical Guide

AI Voice Wearables: Dissecting 'Friend', Limitless Pendant & Always-On Audio

AI Voice Wearables: Dissecting 'Friend', Limitless Pendant & Always-On Audio
Interactive Engineering Tool● Real-Time Compute

LLM Inference & VRAM Hardware Sizing Calculator

Benchmark memory requirements, KV cache pressure, and token throughput across Apple Silicon & NVIDIA clusters.

✓ Hardware Memory Compliant
Dense Transformer · 80 Layers
~1.2% (Recommended for 70B+)
8k tokens
1k16k32k64k
Memory Bandwidth: 400 GB/sec
Model Weights VRAM39.5 GBStatic Parameter Store
KV Cache Memory2.5 GBGQA Multi-Query Cache
Total Minimum VRAM48.3 GBFits (79.7 GB Free)
Est. Generation Speed7.3 tok/sBandwidth-Bounded Rate

While first-generation AI hardware attempted to replace smartphones with laser projectors (Humane) or clunky retro handheld screens (Rabbit), a radically minimalist form factor emerged that rejected visual displays entirely: always-on audio companions. Exemplified by Avi Schiffmann's viral Friend pendant and Dan Siroker's Limitless Pendant, these miniature neck-worn medallions record ambient conversational audio throughout the day, providing continuous contextual memory, automatic meeting summaries, and parasocial companionship.

Engineering a device that listens continuously for 30+ hours while weighing under 20 grams requires intense optimization across embedded electronics, wireless transmission, and machine learning. In this technical deep dive, we deconstruct the ultra-low-power silicon (Nordic nRF5340), the modern Low Complexity Communication Codec (LC3) over Bluetooth Low Energy, acoustic Voice Activity Detection (VAD) gating, speaker diarization mathematics, and the cryptographic privacy safeguards governing ambient audio.

System Architecture: Always-On Audio Ingestion & Vector RAG Memory Pipeline

Complete signal chain from miniature MEMS microphone to BLE LC3 compression, phone proxy, Whisper ASR, speaker diarization, and vector memory.

PENDANT HARDWARE Nordic nRF5340 SoC Dual Arm Cortex-M33 (128MHz) Analog Knowles MEMS SiSonic acoustic sensor (SNR 65dB) Hardware VAD Gating Sleeps during silence (sub-25μA) BLE 5.3 LC3 Audio 32 kbps streaming to phone MASS: 18g · 36h BATTERY PHONE PROXY GATE BLE Peripheral Receiver Background audio buffer Silero Neural VAD Discards 75% non-speech noise AES-256-GCM Storage Encrypted rolling buffer Wi-Fi / 5G Sync Uploads speech bursts ZERO CELLULAR MODEM ACOUSTIC EMBEDDINGS Whisper Large-v3 ASR Word-level timestamps Pyannote Speaker Diarization ECAPA-TDNN 192-dim vectors Separates User vs Other Semantic Entity Extraction People, dates, commitments, ideas DIARIZATION DER: < 9.2% VECTOR MEMORY Qdrant Vector DB HNSW vector indexing Timeline Search "What did Sarah recommend?" Parasocial Nudge Proactive push notifications SEARCHABLE LIFE

1. Hardware Architecture: The nRF5340 & BLE LC3 Audio Engine

The reason earlier voice recorders could not operate continuously was wireless transmission overhead. Standard Bluetooth Classic (A2DP / SBC) draws 15 to 30 milliamperes of active radio current, draining a 150 mAh coin-cell battery in under 6 hours.

Modern voice wearables utilize the Bluetooth Low Energy (BLE 5.3) LE Audio specification paired with the LC3 (Low Complexity Communication Codec):

  • Nordic Semiconductor nRF5340: A dual-core SoC with an Application Core (128 MHz Arm Cortex-M33 with 1MB flash) and a dedicated Network Core (64 MHz Arm Cortex-M33). During radio transmission, the network core draws merely 3.2 mA at 3.0V (under 10 milliwatts).
  • LC3 Codec Compression: Standard raw mono audio sampled at 16 kHz with 16-bit depth generates 256,000 bits per second (256 kbps). The LC3 codec compresses this stream down to 32 kbps—an 87.5% bandwidth reduction—while achieving a higher subjective audio quality score (MUSHRA) than legacy SBC at 64 kbps.
  • Acoustic VAD Sleep Gating: The Knowles MEMS microphone includes an ultra-low-power hardware Voice Activity Detector drawing sub-25 microamperes. When the user is sitting in a quiet office, the main processor and Bluetooth radio sleep entirely, waking up in under 5 milliseconds when human speech frequencies (300 Hz – 3.4 kHz) are detected.

2. Speaker Diarization: Separating the User from the World

A wearable microphone cannot simply transcribe every acoustic wave it hears; doing so produces a chaotic soup of television audio, ambient cafe chatter, and bystander conversations. The AI must solve Speaker Diarization: determining who spoke when.

The pipeline uses neural speaker embedding networks (such as ECAPA-TDNN):

Speaker Verification Cosine Metric:
S(esegment, euser) = (esegment · euser) / [ || esegment || · || euser || ]

Where euser ∈ R192 is the user's enrolled biometric voiceprint embedding. If S ≥ 0.72, the speech segment is classified as the device owner; otherwise, it is assigned to an external speaker ID (e.g. "Speaker 2").

Furthermore, because the pendant rests directly against the user's upper sternum, the wearer's own voice induces bone-conducted low-frequency vibrations (sub-250 Hz acoustic resonance) with significantly higher root-mean-square amplitude than incoming bystander speech. This physical proximity cue allows simple spectral ratio thresholds to reliably separate the owner's voice from external speakers with over 96% accuracy.

3. Hardware & Platform Benchmark Comparison

The table below compares the leading always-on audio devices across physical form factors, battery life, compression codecs, and subscription pricing:

Wearable Device "Friend" AI Pendant Limitless Pendant Plaud Note
Form Factor & Mass Necklace Medallion (18 grams) Magnetic Clasp / Necklace (14 grams) Credit-card magsafe back (30 grams)
Primary SoC Silicon Nordic nRF5340 (Dual-Core M33) Ambiq Apollo4 Plus (Ultra-low power) Custom Arm Cortex-M4 + Flash
Wireless Audio Protocol BLE 5.3 Audio (LC3 @ 32 kbps) BLE 5.4 LE Audio + Wi-Fi offload BLE 5.0 + USB-C Mass Storage
Battery Capacity & Life 140 mAh cell (~36 hours continuous) 120 mAh cell (~100 hours standby) 400 mAh cell (~30 hours recording)
Microphone Hardware Omnidirectional Knowles digital MEMS Beamforming dual-mic array Dual MEMS + Knowles vibration sensor
Primary Functionality Parasocial companion & live push nudges Work meeting notes & personal RAG Phone call recording & transcription
Price & Subscription $99 upfront (Zero monthly subscription) $99 upfront + $19/mo for cloud intelligence $159 upfront + optional cloud tier

4. Production Implementation: Real-Time Audio VAD Gating & Vector Ingestion

Below is a runnable Python production module providing an always-on acoustic ingestion loop. It filters incoming PCM audio chunks through Voice Activity Detection (VAD), segments speech bursts, and indexes speaker transcripts into a semantic memory store:

ambient_audio_vad_pipeline.py Python 3.10+ / NumPy / Dataclasses
# Ambient Audio Ingestion & Energy VAD Gating Pipeline
# Emulates BLE LC3 Stream Processing and Speaker Memory Extraction

import time
import numpy as np
from dataclasses import dataclass
from typing import List, Optional, Tuple

@dataclass
class AudioChunk:
    timestamp: float
    samples: np.ndarray # 16 kHz 16-bit PCM samples
    sample_rate: int = 16000

class AmbientAudioVADGateway:
    def __init__(self, energy_threshold_rms: float = 0.045, silence_hangover_sec: float = 0.8):
        self.energy_threshold = energy_threshold_rms
        self.silence_hangover = silence_hangover_sec
        self.is_speech_active = False
        self.last_speech_time = 0.0
        self.speech_buffer: List[np.ndarray] = []

    def process_chunk(self, chunk: AudioChunk) -> Optional[np.ndarray]:
        # Compute Root-Mean-Square (RMS) acoustic energy
        rms_energy = np.sqrt(np.mean(chunk.samples**2))
        now = chunk.timestamp
        
        if rms_energy > self.energy_threshold:
            # Active speech detected
            self.is_speech_active = True
            self.last_speech_time = now
            self.speech_buffer.append(chunk.samples)
            return None
        else:
            if self.is_speech_active:
                if (now - self.last_speech_time) < self.silence_hangover:
                    # Within silence hangover grace window (retains natural pauses)
                    self.speech_buffer.append(chunk.samples)
                    return None
                else:
                    # End of speech utterance reached -> Flush complete buffer
                    self.is_speech_active = False
                    complete_utterance = np.concatenate(self.speech_buffer)
                    self.speech_buffer.clear()
                    return complete_utterance
            return None

# Demonstration of continuous audio gating
if __name__ == "__main__":
    gateway = AmbientAudioVADGateway(energy_threshold_rms=0.04)
    
    print("--- Ambient Audio Ingestion & VAD Gateway Simulation ---")
    print("Sampling Rate: 16,000 Hz | Chunk Size: 100 ms (1,600 samples)
")
    
    # Simulate 2.0 seconds of ambient silence, 1.5s of speech, followed by silence
    total_chunks = 35 # 3.5 seconds
    t = 0.0
    dt = 0.1 # 100ms
    
    for i in range(total_chunks):
        t += dt
        # Speech activity occurs between 1.0s and 2.2s
        if 1.0 <= t <= 2.2:
            # Human speech simulated as modulated sine waves + noise
            samples = 0.15 * np.sin(2 * np.pi * 320 * np.linspace(0, dt, 1600)) + np.random.normal(0, 0.01, 1600)
            status_label = "HUMAN SPEECH"
        else:
            # Low-amplitude room background noise
            samples = np.random.normal(0, 0.01, 1600)
            status_label = "BACKGROUND SILENCE"
            
        chunk = AudioChunk(timestamp=t, samples=samples)
        utterance = gateway.process_chunk(chunk)
        
        rms = np.sqrt(np.mean(samples**2))
        if i % 5 == 0 or utterance is not None:
            print(f"t={t:3.1f}s | RMS Energy: {rms:0.4f} | Status: {status_label}")
            if utterance is not None:
                duration_sec = len(utterance) / 16000.0
                print(f" -> FLUSHED COMPLETED UTTERANCE: {duration_sec:0.2f}s of speech dispatched to Whisper ASR!
")

5. The Social & Legal Frontier: Ambient Privacy

The greatest friction facing always-on audio companions is not technological, but sociological and legal. In eleven U.S. states and many European jurisdictions under GDPR, recording a conversation without the explicit knowledge and consent of all participants (two-party consent laws) constitutes illegal wiretapping.

To navigate this boundary, devices are adopting hardware-level privacy architectures:

  • Physical Illuminated LEDs: Glowing or pulsing external LED indicators that cannot be overridden by software whenever the microphone array is actively streaming audio.
  • Local Voice Activity Filtering: Raw audio is processed through on-device Whisper models running inside sandboxed secure enclaves, where unapproved bystander audio is deleted from RAM without ever touching persistent disk storage or cloud servers.
TheWebVale Engineering Team
Verified Authors

We build mission-critical Next.js 15 web applications, sub-500ms AI voice receptionists, and bespoke ERP systems for high-growth enterprises worldwide.