Ääniagentin käyttö laitteessa
Yksi putkisto, kolme muistibudjettia.
Paikallinen ääniagentti ei ole yksi malli . Se on putki neljä: äänen toiminnan havaitseminen, puhe-to-text, kielimalli, ja teksti-to-speech, kytkettynä yhteen kääntyvä tila kone. Putkijohto on sama puhelimessa ja kannettavalla tietokoneella. Mitä muutoksia on mikä malli menee kussakin ruutuun , ja että ...
Numero, josta pitää kiinni, on koko silmukka, ei yksi malli: puhenäkö (STT) + vastausten sukupolvi (LLM) + puheen synteesi (TTS) Kaikki mahtuu sen sisään ~1.2 GB iPhonessa, ~1.5 GB galaksissa S23, ja alla ~4 GB on Mac Kunnon juttutuokiolla.
Ydinkirjasto: Putkisto on kannettava osa.
speech-core:ssä on analoginen C++-tilakone: neljä vaihetta ovat rajapintoja, jotka liität minkä tahansa backendin päälle asennettavaan ONNX, LiteRT CoreML/MLX tai jopa pilvi API . Sama putki johtaa 270M-työkalusoittimen puhelimeen ja Gemma 4 -aivoihin Mac.
Yksi silmukka, neljä vaihetta. Wake sana, AEC, ja parantaminen ovat valinnaisia pre-VAD vaiheet; LLM... työkalupuhelut ovat mitä antaa sen toimia, ei vain vastata.
Orkesteri on VoicePipeline in speech-core . Se omistaa turn havaitseminen, keskeytys, keskusteluhistoria, työkalun kutsumisen silmukka, ja puheen jonottaminen . Mutta ei malleja omasta. Jokainen vaihe on vaihdettavissa takana liitäntä (VADInterface, STTInterface, LLMInterface, TTSInterface) että olet takaisin ONNX Runtime, LiteRT, CoreML/MLX - speech-swift sisarus), tai jopa pilvi API. Kevyempiä tiloja on liian Echo (VAD → STT → TTS) ja TranscribeOnly (VAD → STT → teksti).
Matkapuhelin: NPU-ensin ja koko silmukka sopii ~1,5 GB:ään.
Puhelimessa rajoitteena on muisti, akku ja lämpö. Oikea kohde on neuroprosessoriyksikkö (NPU): Applen Neural Engine on iOS, NNAPI / Hexagon on Android. Se toimii kvantitatiivisesti muuntajien murto-osana tehosta CPU tai GPU ja jättää CPU
Miksi? NPU - Ei, ei... CPU tai GPU? NPU on kiinteä-toimintoinen datavirta moottori rakennettu yhteen tehtävään . Matala-tarkkuus moninkertaistaa-kertyvät, että hermoverkot on valmistettu. Se pitää painot päällä-siru SRAM aivan laskentayksikön vieressä ja ohittaa ohje noutaa / decode ja laaja yleiskäyttöinen datapaatit, jotka polttavat suurimman osan CPU tai GPUMoving data maksaa paljon enemmän kuin tekee matematiikan, joten pitää molemmat paikalliset on voitto: samat matmulit ajaa murto-osa wattia ei lämpö kuristaminen, ei akku viemäri, ja CPU Hän pysyy vapaana kaikesta muusta.
Mobiiliputki on pieni, kvantitatiivinen, NPU-ystävällinen malli: Silero VAD, Parakeet-EOU 120M (kevyet streaming STT with inline end-out-out-putterance), FunctionGemma 270M (työkaluja kutsuvat aivot) ja Kokoro-82M tai Supertonic-3 äänen osalta.
| Vaihe · malli | iPhone 16 Pro (CoreML / ANE) | Galaksi 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 = seinän aika - äänisekuntit (alempi = nopeampi; < 1.0 on reaaliaikaista nopeampi). Huippumuisti on eristyksissä.
Jokainen vaihe tyhjentää reaaliajassa. Lastattu yhdessä elävän agentin, asukas työ setti on ~1.2 GB iPhonessa sekä ~1.5 GB Galaxy S23:llä Ero on lähes kaikki LLM: FunctionGemma ilu 236 MB ANE vs. 611 MB S23 CPU. iOS on jo käynnissä NPU (eli 0.04 RTF STT ja 128 tok/s LLM); Android on CPU-reaaliaikainen tänään, kun NNAPI / Hexagon delegaatiot ovat hyvä puoli, ei ennakkoedellytys.
Kokeile. Examples/iOSEchoDemo käyttää Parakeet + Silero+ Kokoro:ää täydellisenä kaikusilmukkana iPhonella; Android-puoli asuu speech-android , kääriä sama putki. ( Examples/iOSBenchmark on valjaat takana iPhone numerot yllä.)
Työpöytä: Todellinen LLM, joka ajaa konetta ... vielä alle 4 GB.
Mac rajoite rentoutuu: yhtenäinen muisti, joka on jaettu CPU ja Metal GPU välillä. Samat neljä vaihetta, isommat mallit ja ratkaisevalla tavalla oikeat chat-aivot 270M:n työkalusoittimen sijaan, ja koko silmukka mahtuu edelleen ~4 GB:ään.
LLM on aivot, ja se on se, jossa mallin koko lakkaa olemasta valinnainen. Testauksen jälkeen kaksi mallia ansaitsi työn: FunctionGemma 270M matkapuhelimessa (tarpeeksi työkalupuhelun lähettämiseen, kaikki puhelimen puolella toimivan agentin tarpeet) ja Gemma 4 E2B/E4B (4-bit MLX) työpöydällä (aito multi-turn keskustelu ja päättely, joka pitää, samalla pysyä kevyt). sub-1B chat pää näyttää vapaa jalanjäljellä, mutta wobbles todellinen multi-käännös, joten se ei tehdä leikkaus. Hyppy, että merkitystä ei ole. 0.27B → 0.8B; se FunctionGemma Työkalupuhelut → Gemma 4-Keskustelua.
Loput pinosta nousee myös: työpöydällä vaihtaa kevyt Parakeet-EOU Parakeet-TDT (täydellinen monikielinen), ja TTS pysyy päällä Supertonic-3 kaikkialla nopea, 44.1 kHz, vakaa. Hyppäämme tarkoituksella raskaamman TTS-mallin ohi; kloonaus ei ole riittävän luotettava istuakseen aina päällä olevan aineen sisällä.
| Vaihe | Matkapuhelin | Työpöytä (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 |
| Vaihe · malli | 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 = seinän äänisekuntia (alempi = nopeampi); LLM Rivi on dekoodauksen läpisyöttö. Huippumuisti on mallia kohti yksinään . Koko silmukka on ladattu yhteen ~3.6 GB (hyvin alle 4 GB): CoreML STT/TTS/VAD painot ovat muisti-kartoitus, joten ne eivät pinota kuten yksittäiset huiput olisi.
Yksi putkisto, joka vastaa budjettia.
VAD → STT → LLM → TTS on kaikkialla samanlainen. Kaikki mielenkiintoinen sopii jokaiseen vaiheeseen laitteen kiihdyttimen ja muistin kanssa.
Akku ja lämpövoimat poimivat mallit. ANE tekee iOS tehokkaasti vapaa CPU-viisas; Android on CPU-reaaliaika tänään NPU tulevana.
Koko silmukka sopii ~4 GB:ään ja että budjetti ostaa Gemma 4 päättely, joka ajaa koneen äänen, plus monikielinen Parakeet-TDT.
Äänen ja keskustelun tila ei koskaan jätä laitteen ... havaintoa, päättelyä ja synteesiä kaikki käynnissä metalli edessäsi.
