STT nepodporovaného jazyka na iPhone – 2. díl
Autor: Pavel Stančík · 2026-10-04
V prvním díle jsem popsal, proč si nemohu jednoduše zapnout Apple Intelligence a diktovat deník česky, a jak jsem se dostal k modelu Whisper. Teď se podíváme na otázku, kterou jsem si měl položit hned na začátku: kde má vlastně ta inteligence běžet?
Telefon, nebo cloud?
Nejjednodušší cesta k mentorovi nálad vede přes externí službu. Pošlu text do cloudu velkého jazykového modelu a za chvíli dostanu odpověď. Pro vývojáře je to pohodlné a modely tam bývají výkonnější. Jenže deník je to nejosobnější, co do aplikace můžete napsat. Jsou v něm vztahy, starosti, zdravotní stavy i věci, které nikomu nahlas neříkáte. Proto mi od začátku záleželo na tom, aby co nejvíc zůstalo přímo v telefonu, a kde se bez serveru neobejdu, aby běžel v rámci EU.
Model přímo v zařízení
Tato varianta má mnoho výhod, zápisy neopouštějí telefon, funguje to i bez připojení a bez průběžných poplatků za volání API. Bohužel má i nevýhody, které jsou stále velmi bolestné, model zabírá stovky megabajtů, které se musí stáhnout a uložit a telefon má omezenou paměť i výkon, což omezuje velikost modelu, který lze použít.
Externí služba
Tady na výhodou, že můžete použít výkonnější modely a tím pádem zmenšit velikost aplikace převažují nevýhody, při kterých data opouštějí telefon a jste závislí na připojení, poplatcích a bezpečném uložneí API klíče.
Apple Intelligence: pro nepodporovaný jazyk slepá ulička
Pro uživatele s angličtinou nebo němčinou by byla odpověď snadná: využít to, co Apple do telefonu už zabudoval. Apple Intelligence běží z velké části přímo v zařízení a SpeechTranscriber úplně. Nic nestahuji a nic neplatím. Čeština ale mezi podporovanými jazyky není, a tak se musím postarat sám.
Neznamená to však, že se nápadu vzdávám. Aplikace prostě musí umět dvě cesty. Pokud telefon podporovaný jazyk má, použije výbavu od Applu. Pokud ne, stáhne si vlastní model a poradí si sám.
Takže jsem zkusil:
- SmolLM2 1.7B (HuggingFace, ~1050 MB) - Inference ale nefungovala: v swift-transformers 0.1.24 chybí TextGenerationPipeline
- SmolLM2-360M-Instruct 8bit (CoreML, 388 MB) - Na A15 produkoval nesmysly.
- Qwen2.5-0.5B-Instruct 4bit (286 MB) - Vybrán kvůli lepší češtině, ale na A15 mu to taky nešlo.
Nyní tedy zatím jako jediné možnost je buď analýzu přepsaného hlasu nemít, a nebo si zapnout přístup k externí LLM a analýzu využít externě. Uživatel se může rozhodnout sám. K té externí analýza pak nabízím EU LLM Mistral a nebo OpenAI, uživatel si dodá svůj vlastní klíč. A nebo využije naše předplatné a získá tak náš OpenAI model na našem serveru.
Jak to vypadá v praxi
Všechno začíná na zápěstí. Otevřu aplikaci na hodinkách, namluvím zápis a spustím zpracování. Hodinky nahrávku předají iPhonu, který ji přepíše na text. Protože model běží na pozadí, funguje to i se zamčeným telefonem v kapse.
Přepsaný text se spojí s údaji z hodinek a kalendáře. Výsledkem je strukturovaná odpověď a ikona, která se zobrazí v náhledu zápisu. Vidím ji v iPhonu i na hodinkách.
První spuštění je pomalé, další už ne
Při úplně prvním použití si aplikace stáhne model a připraví ho pro konkrétní telefon. To trvá řádově minuty a hodinky mezitím ukazují stav „Zpracovává se“. Potom se model načte do paměti za pět sekund. Příprava se ale někdy musí zopakovat, třeba po aktualizaci iOS nebo aplikace, a pak se zase chvíli čeká.
V příštím díle: čeština jako „malý“ jazyk, co zatím nefunguje a kam se výsledky dál ubírají.