Voice-agent draaien op het apparaat
Eén pijplijn, drie geheugenbudgetten.
Een lokale spraakagent is niet één model . . Het is een pijplijn van vier: spraak activiteit detectie, spraak-naar-tekst, een taalmodel, en tekst-naar-spraak, bedraad door een turn-taking staat machine. De pijplijn is hetzelfde op een telefoon en op een laptop. Wat verandert is welk model gaat in elke doos , en dat is besloten door twee nummers: hoeveel geheugen je hebt, en welke activeer je feeding.
Het nummer waarop je je moet houden is de hele lus, niet één model: speechperceptie (STT) + antwoordgeneratie (LLM) + spraaksynthese (TTS) alle passen er in ~1.2 GB op iPhone, ~1.5 GB op een Galaxy S23 en onder ~4 GB op een Mac met een echte chathern.
Kernbibliotheek: De pijpleiding is het draagbare deel.
Orkestratie leeft in speech-core als een pure C++ staat machine die model-agnostisch is: de vier stadia zijn interfaces die u een backend in . . on-device ONNX, LiteRT, CoreML/MLXof zelfs een wolk API Dus dezelfde pijpleiding loopt een 270M gereedschap-beller op een telefoon en een Gemma 4 hersenen op a Mac.
Een lus, vier fasen. Een wake woord, AEC, en versterking zijn optionele voor-VAD stappen; de LLM tool calls zijn wat laat het handelen, niet alleen antwoord.
De orkestmeester is VoicePipeline in speech-core . Het is eigenaar van draaidetectie, onderbreking, gesprek geschiedenis, de tool-calling loop, en spraak wachtrij, maar geen modellen van zijn eigen. interface (VADInterface, STTInterface, LLMInterface, TTSInterface) dat u terug met ONNX Runtime, LiteRT en CoreML/MLX (via de speech-swift broer of zus), of zelfs een cloud API. Lichtere modi bestaan ook Echo (VAD → STT → TTS) en TranscribeOnly (VAD → STT → tekst).
Mobiel: NPU-eerste, en de hele lus past in ~1,5 GB.
Op een telefoon is de beperking geheugen, batterij, en thermische apparatuur niet rauw berekenen. Het juiste doel is de neurale verwerkingseenheid (NPU): Apple's Neural Engine op iOS, NNAPI / Hexagon op Android. Het draait gequantiseerde transformatoren op een fractie van het vermogen van de CPU of GPU en laat de CPU vrij voor audio en UI.
Waarom... NPU en niet de CPU of GPU♪ An NPU is een vaste-functie dataflow motor gebouwd voor een taak . . de lage-precisie vermenigvuldig-accumuleren dat neurale netten zijn gemaakt van. Het houdt gewichten in op-chip SRAM direct naast de rekeneenheden en slaat de instructie fetch/decode en brede algemeen-doeldatapaden die het meeste van een brand CPUof GPUVerhuizen van gegevens kost veel meer dan het doen van de wiskunde, dus het houden van beide lokale is de overwinning: dezelfde matmuls draaien op een fractie van de watt . . geen thermische thorottling, geen batterij afvoer, en de CPU Blijft vrij voor al het andere.
De mobiele pijpleiding is dus klein, quantized, NPU-vriendelijke modellen: Silero VAD, Parakeet-EOU 120M (lichtgewicht streaming STT met inline einde-van-toettering), FunctionGemma 270M (de tool-calling hersenen), en Kokoro-82M of Supertonic-3 voor spraak. Gemeten op apparaat:
| Stage · model | iPhone 16 Pro (CoreML / ANE) | Galaxy S23 (LiteRT / ONNX, CPU) |
|---|---|---|
| STT · Parakeet-EOU 120M | 0.04 RTF · 297 MB | 0.21 RTF · 232 MB |
| STT · Omnilingual 300M | 0.28 RTF · 495 MB | 0.15 RTF · 831 MB |
| TTS · Kokoro-82M | 0.08 RTF · 676 MB | 0.53 RTF · 640 MB |
| TTS · Supertonic-3 99M | 0.15 RTF · 956 MB | 0.34 RTF · 832 MB |
| LLM · FunctionGemma 270M | 128 tok/s · 236 MB | 118 tok/s · 611 MB |
RTF = wand-tijd .. audio-seconden (lager = sneller; <1.0 is sneller dan real time). Piekgeheugen is per model geïsoleerd.
Elke fase clears real time. Samengeladen voor een live agent, de resident working set is ~1.2 GB op de iPhone en 1.5 GB op de Galaxy S23 De kloof is bijna alles. LLM: FunctionGemma is 236 MB on the ANE versus 611 MB op de S23 CPU. iOS al loopt op de NPU (dat is de 0.04 RTF STT en 128 tok/s LLM); Android is CPU-real-time vandaag, met NNAPI/Hexagon afgevaardigden als opwaartse, geen voorwaarde.
Probeer het: Examples/iOSEchoDemo draait Parakeet + Silero+Kokoro als een volledige echolus op een iPhone; de Android-kant woont in speech-android , die dezelfde pijpleiding afdichten. ( Examples/iOSBenchmark is het harnas achter de iPhone nummers hierboven.)
Bureaublad: Een echte LLM die de machine voortstuwt nog steeds onder 4 GB.
Op een Mac ontspant de beperking: verenigd geheugen gedeeld tussen CPU en Metal GPU. Dezelfde vier fasen, grotere modellen, en cruciaal een echte chat brein in plaats van een 270M gereedschapsoproep en de hele lus past nog steeds in ~4 GB.
De LLM is het brein, en het is waar modelgrootte stopt met optioneel zijn. Na het testen, twee modellen verdiende de baan: FunctionGemma 270M op mobiel (genoeg om een tool call uit te zenden, alle telefoon-side agent nodig heeft) en Gemma 4 E2B/E4B (4-bit MLX) op desktop (echte multi-turn conversation en redeneren dat houdt omhoog, terwijl het blijven licht). sub-1B chat kop 0.27B → 0.8B; het FunctionGemma Hulpmiddelen aanroepen → Gemma 4- Een gesprek.
De rest van de stack stapt ook omhoog: desktop swaps de lichtgewicht Parakeet-EOU voor Parakeet-TDT (volledig meertalig), en TTS blijft aan Supertonic-3 Overal snel, 44.1 kHz, stabiel. We slaan de zwaardere zero-shot-cloning TTS modellen bewust over; klonen is niet betrouwbaar genoeg om binnen een altijd-on agent te zitten.
| Fase | Mobiel | Bureaublad (Mac / MLX) |
|---|---|---|
| VAD | Silero v6.2.1 | Silero v6.2.1 |
| STT | Parakeet-EOU (streaming) | Parakeet-TDT (multilingual) |
| LLM | FunctionGemma 270M | Gemma 4 E2B/E4B |
| TTS | Kokoro-82M / Supertonic-3 | Supertonic-3 |
| Resident set | iPhone ~1.2 GB · S23 ~1.5 GB | ~3.6 GB |
| Stage · model | Mac · M5 Pro (4-bit MLX / CoreML) |
|---|---|
| VAD · Silero v6.2.1 | sub-ms / chunk |
| STT · Parakeet-TDT | 0.04 RTF · 1.3 GB |
| LLM · Gemma 4 E2B | 214 tok/s · 2.9 GB |
| TTS · Supertonic-3 | 0.03 RTF · 0.9 GB |
RTF = wand-/audio-seconden (lager = sneller); de LLM rij is decoderingsdoorvoer. Piekgeheugen is per model alleen geladen de hele lus is co-resident in ~3.6 GB (wel onder 4 GB): de CoreML STT/TTS/VAD gewichten zijn geheugen-map, zodat ze niet de manier waarop de geïsoleerde pieken zouden stapelen.
Een pijpleiding, afgestemd op het budget.
VAD → STT → LLM → TTS Alles wat interessant is, komt overeen met de acceleratie en het geheugen van het apparaat.
Batterij en warmte kiezen de modellen. De AN maakt iOS effectief vrij CPU-wise; Android is CPU-real-time vandaag met NPU hoofdruimte die komt.
De hele lus past in ~4 GB, en dat budget koopt Gemma 4 redenering die de machine per stem drijft, plus meertalige Parakeet-TDT.
Audio en conversatie staat nooit verlaten het apparaat .. perceptie, redeneren, en synthese alle draaien op het metaal voor je.
