Maskinoversettelse · Engelsk original
Blog·
På-forråd
July 7, 2026

Kjører en stemmeagent på device
En rørledning, tre minnebudsjetter.

En lokal taleagent er ikke én modell - det er en rørledning på fire: taleaktivitetsdeteksjon, tale-til-tekst, en språkmodell og tekst-til-speech, koblet sammen av en turn-takende tilstand maskin. Rørledningen er den samme på en telefon og på en bærbar datamaskin. Hva endringer er hvilken modell går i hver boks, og det er bestemt av to tall: hvor mye minne du har, og hvilken akselerator du mater.

Antallet som skal holdes på er hele sløyfen, ikke én modell: speech perception (STT) + svargenerasjon (LLM) + talesyntese (TTS) alle passer inn i den - ~1.2 GB på iPhone, ~1,5 GB på en Galaxy S23, og under ~4 GB på Mac med en reell chat-hjerne.

Kjernebibliotek: Rørledningen er den bærbare delen.

Orkesteret bor i speech-core som ren C++ tilstandsmaskin som er modell-agnostisk: de fire trinnene er grensesnitt du kobler til alle motorer i - på-device ONNX, LiteRT, CoreML/MLX Eller til og med en sky API - så den samme rørledningen kjører en 270M verktøy-samtaler på en telefon og en Gemma 4 Hjernen 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

Ett sløyfe, fire stadier. Et våkeord, AEC og forbedring er valgfrie pre-VAD-trinn; LLMs verktøysamtaler er det som lar det fungere, ikke bare svare.

Orkesteret er VoicePipeline i speech-core . Det eier turdetektering, avbrudd, konversasjonshistorie, verktøy-kalleløkken og tale queuing - men ingen modeller av sin egen. Hvert trinn kan byttes bak en grensesnitt (VADInterface, STTInterface, LLMInterface, TTSInterface), som du tilbake med ONNX Runtime, LiteRT og CoreML/MLX (via den speech-swift søsken), eller til og med en sky API. Lysere moduser eksisterer også - Echo (VAD → STT → TTS) og TranscribeOnly (VAD → STT → tekst).

Mobile: NPU-første, og hele sløyfen passer i ~ 1,5 GB.

På en telefon er begrensningen minne, batteri og termiske - ikke råberegning. Det rette målet er neurale prosesseringsenheten (NPU): Apples Neural Engine på iOS, NNAPI / Hexagon på Android. Det kjører kvantiserte transformatorer i en brøkdel av kraften i CPU eller GPU og forlater CPU gratis for lyd og UI.

Hvorfor NPU og ikke CPU eller GPU- En NPU er en fast funksjon datastrømsmotor bygget for en jobb - lav-presisjon multiplisering-akkumulerer at nevrale nett er laget av. Den holder vekter i on-chip SRAM rett ved siden av beregningsenhetene og hopper over instruksjonshent/dekode og brede generelle databaner som brenner det meste av en CPU eller GPU energi. Flytting av data koster langt mer enn å gjøre matematikken, så å holde begge lokale er seieren: de samme matmullene kjører på en brøkdel av wattene - ingen termisk trottling, ingen batteri drenering, og CPU Hold deg fri for alt annet.

Så den mobile rørledningen er liten, kvantisert, NPU-vennlige modeller: Silero VAD, Parakeet-EOU 120M (lysvektsstrøming STT med innvendig ende-av-skjæring), FunctionGemma 270M (verktøy-kalling hjernen), og Kokoro-82M eller Supertonic-3 for stemme. Målt på enheten:

Stage · modelliPhone 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 = vegg-tid ̊ lyd-sekunder (lavere = raskere; < 1.0 er raskere enn sanntid). Peak minne er per modell i isolasjon.

Hvert trinn rydder sanntid. Lastet sammen for en levende agent, er det bosatte arbeidssettet ~1.2 GB på iPhone og ~1.5 GB på Galaxy S23 Gapet er nesten alt LLM: FunctionGemma is 236 MB på ANE versus 611 MB på S23 CPU. iOS allerede kjører på NPU (Det er 0.04 RTF STT og 128 TOK/S LLM); Android er CPU-real-time i dag, med NNAPI/Hexagon delegater som opp, ikke en forutsetning.

Prøv det: Examples/iOSEchoDemo kjører Parakeet + Silero+ Kokoro som en full ekko sløyfe på en iPhone; Android side lever i speech-android Innpakning av samme rørledning. ( Examples/iOSBenchmark er selen bak iPhone tallene ovenfor.)

Skrivebord: En ekte LLM som driver maskinen - fortsatt under 4 GB.

På en Mac avslapper begrensningen: forent minne delt mellom CPU og Metal GPU. Samme fire etapper, større modeller og avgjørende en ekte chat-hjerne i stedet for en 270M verktøy-caller - og hele sløyfen passer fortsatt i ~4 GB.

LLM er hjernen, og det er der modellstørrelsen stopper å være valgfri. Etter testing fikk to modeller jobben: FunctionGemma 270M på mobil (men å sende ut et verktøysamtale, alle en telefon-side agent behov) og Gemma 4 E2B/E4B (4-bit MLX) på desktop (genuine multi-turn samtale og resonnement som holder opp, mens du holder lys). Den fristende midten - en kompakt sub-1B chathodet - ser gratis på fotavtrykk, men wobbles på ekte multi-turn, så det gjorde ikke kuttet. Hoppet som betyr noe er ikke 0.27B → 0.8B; det er FunctionGemma Værktøjssamtaler Gemma 4 samtale.

Resten av stabelen trapper også opp: desktop bytter den lette Parakeet-EOU for Parakeet-TDT (full flerspråklig), og TTS forblir på Supertonic-3 overalt - rask, 44,1 kHz, stabil. Vi hopper over den tyngre nullshot-kloning TTS modeller på hensikt; kloning er ikke pålitelig nok til å sitte inne i et alltid-på-middel.

Stage Mobile Skrivebord (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
Stage · modellMac · 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 = veggen ® lyd sekunder (lavere = raskere); LLM raden er dekode gjennomstrøms. Peak minne er per modell alene - lastet sammen hele sløyfen er sambolig i ~3.6 GB (brønn under 4 GB): CoreML STT/TTS/VAD vekter er minnekartlagt, så de ikke stable den måten de isolerte toppene ville.

Takeaways

En pipeline som passer til budsjettet.

Rørledningsportene; modellene ikke

VAD → STT → LLM → TTS er identisk overalt. Alt interessant passer hvert trinn til enhetens akselerator og minne.

Mobil: NCU-første, ~1.2-1,5 GB

Batteri og termer velger modellene. ANE gjør iOS effektivt gratis CPU-vis; Android er CPU-real-time i dag med NPU hovedrom som skal skje.

Desktop: en ekte hjerne, fortsatt ~ 4 GB

Hele sløyfen passer i ~4 GB, og det budsjettet kjøper Gemma 4 resonnement som driver maskinen med stemme pluss flerspråklig parakeet-TDTD.

Alt er lokalt

Lyd- og samtaletilstand forlater aldri enheten - oppfatning, resonnement og syntese alle kjører på metallet foran deg.

Where next

Fortsett å lese.