Maskinoversættelse · Engelsk original
Blog·
On- enhed
July 7, 2026

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.

On-device voice-agent pipelineMicrophone audio passes an optional wake-word gate, echo cancellation, and enhancement, then voice activity detection, speech-to-text (perception), a language model with tool calls (generation), and text-to-speech (synthesis) back to the speaker. The synthesized audio feeds back as the echo-cancellation reference.wake word · AEC · enhance (opt.)tools?Audiomic inVADturn gateSTTperceptionLLMgenerationTTSsynthesisAudiospeakerAEC reference

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 · modeliPhone 16 Pro (CoreML / ANE)Galaxy S23 (LiteRT / ONNX, CPU)
STT · Parakeet-EOU 120M0.04 RTF · 297 MB0.21 RTF · 232 MB
STT · Omnilingual 300M0.28 RTF · 495 MB0.15 RTF · 831 MB
TTS · Kokoro-82M0.08 RTF · 676 MB0.53 RTF · 640 MB
TTS · Supertonic-3 99M0.15 RTF · 956 MB0.34 RTF · 832 MB
LLM · FunctionGemma 270M128 tok/s · 236 MB118 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.

FaseMobilDesktop (Mac / MLX)
VADSilero v6.2.1Silero v6.2.1
STTParakeet-EOU (streaming)Parakeet-TDT (multilingual)
LLMFunctionGemma 270MGemma 4 E2B/E4B
TTSKokoro-82M / Supertonic-3Supertonic-3
Resident setiPhone ~1.2 GB · S23 ~1.5 GB~3.6 GB
Fase · modelMac · M5 Pro (4- bit MLX / CoreML)
VAD · Silero v6.2.1sub-ms / chunk
STT · Parakeet-TDT0.04 RTF · 1.3 GB
LLM · Gemma 4 E2B214 tok/s · 2.9 GB
TTS · Supertonic-30.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.

Takeaways

En rørledning, der matcher budgettet.

Rørledningen havne; modellerne ikke

VAD → STT → LLM © TTS er identisk overalt. Alt interessant er at matche hver fase til enhedens accelerator og hukommelse.

Mobil: NPU- first, ~ 1,2-1,5 GB

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.

Desktop: en rigtig hjerne, stadig ~ 4 GB

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.

Det hele er lokalt

Lyd og samtale stat aldrig forlade enheden - opfattelse, ræsonnement, og syntese alle køre på metal foran dig.

Where next

Læs videre.