Kør en voice agent on- device
En rørledning, tre hukommelsesbudgetter.
En lokal voice agent er ikke en model - det er en pipeline af fire: voice activity detection, speech-to- tekst, en sprogmodel, og text- to- tale, der er forbundet sammen af en turn-take state maskine. Rørledningen er den samme på en telefon og på en laptop. hvilken model der skal i hver kasseOg det afgøres af to tal: hvor meget hukommelse du har, og hvilken accelerator du fodrer.
Det tal, der skal holdes fast i, er hele løkken, ikke én model: taleopfattelse (STT) + svargenerering (LLM) + talesyntese (TTS) alle passer ind i det - ~1.2 GB på iPhone, ~1.5 GB på en Galaxy S23, og under ~4 GB på a Mac med en rigtig chathjerne.
Hovedbibliotek: Rørledningen er den bærbare del.
Orchestration lever i speech-core som en ren C++ tilstand maskine, der er model- agnostic: de fire faser er grænseflader, du sætter enhver motor i - on- enhed ONNX, LiteRT, CoreML/MLX, eller endda en sky API - så den samme rørledning kører en 270M tool- ringer på en telefon og en Gemma 4 hjerne på en Mac.
En løkke, fire faser. Et vågne ord, AEC, og ekstraudstyr er valgfri præ-VAD trin; LLM "s værktøj opkald er hvad lade det handle, ikke bare besvare.
Orkesteret er VoicePipeline til speech-core . Det ejer tur detektion, afbrydelse, samtale historie, værktøj-ring loop, og tale kø - men ingen modeller af sin egen. Hver fase er swappable bag en grænseflade (VADInterface, STTInterface, LLMInterface, TTSInterface) at du vender tilbage med ONNX Runtime, LiteRT og CoreML / MLX (via speech-swift søskende), eller endda en sky API. Lightere tilstande findes også - Echo (VAD → STT → TTS) og TranscribeOnly (VAD → STT → tekst).
Mobil: NPU- først, og hele sløjfen passer i ~ 1,5 GB.
På en telefon er begrænsningen hukommelse, batteri og termometer - ikke rå computer. Det rigtige mål er den neurale processor enhed (NPU): Apples Neural Engine om iOS, NNAPI / Hexagon on AndroidDet kører kvantificerede transformere til en brøkdel af kraften i CPU eller GPU og forlader CPU gratis for lyd og UI.
Hvorfor NPU og ikke CPU eller GPU? NPU er en fixed- function dataflow motor bygget til et job - den lave-præcision multiplum-akkumulere, at neurale net er lavet af. Det holder vægte i on- chip SRAM lige ved siden af de computerenheder og springer instruktionen hente / afkode og brede generelle datapater, der brænder det meste af en CPUeller GPU's energi. Flytning af data koster langt mere end at gøre matematik, så holde begge lokale er win: de samme matrikler kører på en brøkdel af watt - ingen termisk gasgivning, ingen batteri afløb, og CPU forbliver fri for alt andet.
Så den mobile rørledning er lille, kvantiseret, NPU- venlige modeller: Silero VAD, Parakeet- EOU 120M (letvægts streaming STT med inline ende- of- ytterance), FunctionGemma 270M (værktøjerne-kalder hjerne), og Kokoro-82M eller Supertonic-3 for stemme. Målt på enheden:
| Fase · 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 = wall- time ekskl. lyd- sekunder (lavere = hurtigere; < 1.0 er hurtigere end i realtid). Peak hukommelse er per- model i isolation.
Hver fase rydder realtid. Indskrevet sammen for en levende agent, den residente arbejdssæt er ~ 1.2 GB på iPhone og ~ 1.5 GB på Galaxy S23 - kløften er næsten alle LLM: FunctionGemma er 236 MB på ANE versus 611 MB på S23 CPU. iOS allerede kører på NPU (Det er den 0.04 RTF STT og 128 tok / s LLM); Android er CPU- real- tid i dag, med NNAPI / Hexagon delegerede som hovedet, ikke en forudsætning.
Prøv det: Examples/iOSEchoDemo kører Parakeet + Silero plus Kokoro som en fuld ekko løkke på en iPhone; Android side bor i speech-android , indpakning af den samme rørledning ( Examples/iOSBenchmark er selen bag iPhone numre ovenfor.)
Desktop: En rigtig LLM, der driver maskinen - stadig under 4 GB.
På en Mac Begrænsningen slapper: samlet hukommelse deles mellem CPU og a Metal GPU. Samme fire stadier, større modeller, og afgørende en rigtig chat hjerne i stedet for en 270M tool- caller - og hele sløjfen stadig passer i ~4 GB.
LLM er hjernen, og det er her modelstørrelse stopper med at være valgfri. Efter test, to modeller tjente jobbet: FunctionGemma 270M på mobil (nok til at udsende et værktøj opkald, alle en telefonside agent behov) og Gemma 4 E2B / E4B (4- bit MLX) på skrivebordet (ægte multi-turn samtale og ræsonnement, der holder op, mens opholder sig lys). sub-1B chat head - ser gratis på fodaftryk, men wobbles på ægte multi-turn, så det ikke gøre snittet. Det spring, der betyder noget er ikke 0.27B → 0.8B; det er FunctionGemma's tool- calls → Gemma 4 Det er en samtale.
Resten af stakken træder også op: desktop swaps letvægts Parakeet- EOU for Parakeet- TDT (fuld flersproget), og TTS bliver på Supertonic-3 overalt - hurtigt, 44.1 kHz, stabil. Vi springer de tungere zero-shot-kloning TTS modeller med vilje; kloning er ikke pålidelig nok til at sidde inde i en always-on agent.
| Fase | Mobil | Desktop (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 |
| Fase · 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 = væg- audio- sekunder (lavere = hurtigere); LLM række er afkodning gennemløb. Peak hukommelse er per model alene - indlæst sammen hele loop er co-resident i ~3.6 GB (godt under 4 GB): CoreML STT /TTS/VAD vægte er memorial- kortlagt, så de ikke stable den måde, de isolerede toppe ville.
En rørledning, der matcher budgettet.
VAD → STT → LLM © TTS er identisk overalt. Alt interessant er at matche hver fase til enhedens accelerator og hukommelse.
Batteri og termometer vælger modellerne. ANE gør iOS effektivt gratis CPU- wise; Android er CPU- real- tid i dag med NPU headroom til at komme.
Hele sløjfen passer i ~ 4 GB, og at budgettet køber Gemma 4 ræsonnement, der driver maskinen med stemme, plus flersprogede Parakeet- TDT.
Lyd og samtale stat aldrig forlade enheden - opfattelse, ræsonnement, og syntese alle køre på metal foran dig.
