Rularea unui agent de voce pe dispozitiv
o conductă, trei bugete de memorie.
Un agent de voce local nu este un model de patru: detectarea activității vocale, vorbire-text, un model de limbă, și text-to-speech, conectat împreună de o mașină de stat turn-taking. Conducta este la fel pe un telefon și pe un laptop. Ce schimbări este care modelul merge în fiecare cutie , și că se decide prin două numere: cât de mult memorie aveți, și care accelerat de hrănire.
Numărul pe care trebuie să-l țineți este întreaga buclă, nu este un model: percepția vorbirii (TTS) + generarea răspunsului (LLM) + sinteza vorbirii (TTS) toate se potrivesc în interiorul acesteia ~1.2 GB pe iPhone, ~1.5 GB pe o galaxie S23 și sub ~4 GB pe un Mac cu un creier real de chat.
Bibliotecă centrală: Conducta este partea portabilă.
Orchestrarea trăiește în speech-core ca un pur C++ mașină de stat care este model-agnostic: cele patru etape sunt interfețe pe care le conectați orice backend în ONNX, LiteRT, CoreML/MLX Sau chiar un nor. API Deci, aceeași conductă ruleaza o 270M instrument de apelant pe un telefon și un Gemma 4 creier pe o Mac.
O buclă, patru etape. Un cuvânt de trezire, AEC, și îmbunătățirea sunt pași opționali înainte de VAD; apelurile instrument LLM
Orchestra este VoicePipeline în speech-core . Detine detectarea turn, intrerupere, istoria conversatiei, bucla de chemare instrument, si vorbirea queuing . Dar nici un model al său. Fiecare etapă este swappable în spatele unui interfață (VADInterface, STTInterface, LLMInterface, TTSInterface) cu care te-ai întors ONNX Runtime, LiteRT, CoreML/MLX (prin speech-swift frate), sau chiar un nor API. Modurile mai uşoare există prea Echo (VAD → STT → TTS) și TranscribeOnly (VAD → STT → text).
Mobil: NPU-primul, și întreaga buclă se potrivește în ~1,5 GB.
La un telefon, constrângerea este memorie, baterie, și termice nu calcul brut. Obiectivul corect este unitatea de procesare neurală (NPU): Apple's Neural Engine on iOS, NNAPI / Hexagon on Android. Acesta rulează transformatoare cuantice la o fracțiune din puterea CPU sau GPU și lasă CPU gratuit pentru audio și UI.
De ce NPU şi nu CPU sau GPU¶An¶ NPU este un motor cu flux de date cu funcție fixă construit pentru un singur loc de muncă CPUS-au GPU În mișcare de date costă mult mai mult decât a face matematica, astfel că păstrarea ambele locale este câștigul: același Mattmuls rula la o fracțiune din CPU rămâne liber pentru orice altceva.
Astfel, conducta mobilă este mică, cuantizată, modelele NPU-friendly: Silero VAD, Parakeet-EOU 120M (sTT cu streaming ușor în greutate cu capăt-inline de-puterance), FunctionGemma 270M (creierul care face apel la instrumente), și Kokoro-82M sau Supertonic-3 pentru voce. Măsurat pe dispozitiv:
| Etapa · 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 = perete-timp ا audio-secunde (mai mici = mai rapide; <1.0 este mai rapid decât în timp real). Memoria maximă este per model în izolare.
Fiecare etapă e liberă în timp real. ~1.2 GB pe iPhone şi ~1.5 GB pe Galaxy S23 Decalajul este aproape tot LLM: FunctionGemma este 236 MB pe ANE versus 611 MB pe S23 CPU. iOS deja rulează pe NPU (care este 0.04 RTF STT și 128 Tok/s LLM); Android este procesor-real-timp astăzi, cu delegați NNAPI/Hexagon ca fiind cu susul în jos, nu o condiție prealabilă.
Încearcă: Examples/iOSEchoDemo ruleaza Parakeet + Silero+Kokoro ca o buclă ecou complet pe un iPhone; partea Android trăiește în speech-android , ambalaj aceeași conductă. ( Examples/iOSBenchmark este hamul din spatele numerelor de iPhone de mai sus.)
Birou: Un LLM real care conduce masina bază 4 GB.
Pe o Mac se relaxează constrângerile: memoria unificată împărţită între CPU şi a Metal GPU Aceleaşi patru etape, modele mai mari, şi crucial un creier de chat real în loc de un 270M instrument-caller 4 GB.
LLM este creierul, și este de unde dimensiunea modelului nu mai este opțională. După testare, două modele a câștigat locul de muncă: FunctionGemma 270M pe mobil (suficient pentru a emite un apel instrumental, toate de care are nevoie un agent telefonic) și Gemma 4 E2B/E4B (4-bit MLX) pe desktop (conversație reală multi-turn și raționament care ține în sus, în timp ce stau lumina). Tentatoare mijloc sub-1B chat head pare gratuit pe amprenta, dar se clatină pe reale multi-turn, așa că nu a făcut tăietura. Saltul care contează este nu 0.27B → 0.8B; it FunctionGemma Apeluri de instrumente → Gemma 4 Conversaţie.
Restul treptelor stack-ului de asemenea: desktop swaps the weight Parakeet-EOU for Parakeet-TDT (full multilingve), and TTS stays on Supertonic-3 everywhere . 44.1 kHz, stabil. Sărim peste modelele mai grele de clonare zero-shot TTS pe scop; clonarea nu este suficient de fiabilă pentru a sta în interiorul unui agent permanent.
| Etape | 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 |
| Etapa · 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 = perete bază audio-secunde (mai mici = mai rapide); LLM rândul este decodat prinput. Memoria maximă este pe model singur 3.6 GB (well sub 4 GB): CoreML STT/TTS/VAD Greutățile sunt cartografiate în memorie, astfel încât acestea să nu stiva modul în care vârfurile izolate ar fi.
O conductă, egalată cu bugetul.
VAD → STT → LLM - TTS este identic peste tot. Tot ce este interesant se potriveste fiecare etapă cu acceleratorul și memoria dispozitivului.
Bateriile și termometrele aleg modelele. ANE face iOS efectiv gratuit CPU-înțelept; Android este CPU-real-time astăzi cu NPU headroom pentru a veni.
Întreaga buclă se potrivește în ~4 GB, și că bugetul cumpără Gemma 4 raționament care conduce mașina de voce, plus multilingv Parakeet-TDT.
Audio și starea conversației nu lăsați niciodată dispozitivul
