Skip to main content

Version 3 · · on-device, Apple silicon

Easy-to-read live captions, now in twenty-nine languages.

Live Linguist is a real-time, on-device caption simplifier. It rewrites live speech into easy-to-read language in the same language — German into simpler German, not into English. v3 takes the same idea from twenty languages to twenty-nine, and every one of them clears the ship gate.

macOS app · Apple silicon · v1.1.28 · 11 MB .dmg — the signed, notarized v3 build, hosted on Cloudflare. Downloads directly, no GitHub account needed.

Requires an Apple silicon Mac. Live Linguist runs entirely on-device and needs an Apple silicon (M-series) Mac. Tested so far on Apple M1 (16 GB), M2 (96 GB), M3 (128 GB), and A18 Pro (8 GB).

What’s new in v3

  • 29 languages, up from 20 — eight new locales (Ukrainian, Romanian, Bulgarian, Polish, Croatian, Norwegian, Hungarian, Czech), and Simplified Chinese now ships after a script-aware language-ID fix.
  • All 29 clear the ship gate. The 21 run-2 languages hold steady, the eight new locales pass decisively, and the fine-tuned models beat stock Qwen3 on SARI and register compliance across the board.
  • Still one multilingual fine-tune per size: Qwen3 0.6B (live) and Qwen3 1.7B (quality), 4-bit.
  • Retrained on a ~74,000-pair supervised dataset spanning 29 locales, evaluated on held-out tests at ~200 sentences each.
  • Training moved from local MLX to trl + peft on a Modal B200 (~30 GPU-minutes), with recipe parity verified against the prior runs — the shipping artifact is still on-device 4-bit MLX.

See it in action

Live, on-device, in real time

Live Linguist running in French — the verbatim transcript alongside easy-language captions, generated on-device in real time.

In easy language

This tool listens to people talking. It shows the words on screen. It also writes the words in an easier way.

The easy words are in the same language. German stays German. The tool does not change it to English.

Before, the tool knew four languages. Then it knew twenty. Now it knows twenty-nine.

This helps people who are learning a language. It also helps people who find hard words difficult to read.

Everything runs on your own Mac. Your words are not sent away.

Why easy language

Comprehensible input, kept in the target language

We believe in-language simplification is the right kind of help, and the reason is pedagogical. Stephen Krashen’s Input Hypothesis holds that we acquire language through comprehensible input — language we can understand that sits just beyond our current level, often written as “i+1”. Input that is too hard is noise; input that is too easy teaches nothing new.

Easy-language simplification lowers complexity while keeping the learner immersed in the target language. A learner in a German lecture receives German they can actually follow — shorter sentences, common words, one idea at a time — and keeps building acquisition from real target-language input. An English translation would make the sentence comprehensible too, but it removes the German exposure entirely, which is the thing the learner came for.

Translation answers “what did they say?” Simplification answers “what did they say, in words I can learn from?” Only the second keeps the learner inside the language they are trying to acquire.

The same property carries a parallel accessibility value. Easy-language standards — Leichte Sprache, FALC, Lectura Fácil, Selkokieli, and the pan-European Easy-to-Read framework — were developed so that people with cognitive disabilities and low-literacy readers can take part in public and everyday life. A tool that produces compliant easy language serves those readers directly, in their own language. v3 extends that reach to twenty-nine of them.

This is the project’s rationale, grounded in second-language-acquisition theory and established accessibility standards. It is not a clinical claim about learning outcomes.

Origins & acknowledgments

Built for a French–Moroccan virtual exchange

Live Linguist began as the AI component of an AI-supported international virtual exchange between the French program at Kennesaw State University and Université Hassan II Casablanca in Morocco. The idea: let novice second-semester French students hold real, real-time video conversations with more advanced Moroccan peers — without the language gap shutting the conversation down.

The pedagogical brief is exactly the rationale above. Alongside a verbatim transcript, the tool produces a second, simplified transcript that brings higher-proficiency spoken French — up to CEFR C2 — down to a beginner-appropriate CEFR A1–B2 level, in French. That is comprehensible input kept in the target language, not a translation into English — the same principle Live Linguist now applies across all twenty-nine v3 languages.

The exchange and its proposal — “Language Education and Intercultural Connections with AI-Supported International Virtual Exchanges,” submitted to the French in Higher Education Grant Program of the Albertine Foundation — were conceived and written by the language faculty named below. Version 1 generalized that single French use case into a four-language, on-device release; version 2 took it to twenty; version 3 generalizes it again, to twenty-nine languages on the same model line.

The people who conceived it

The pedagogical concept, curriculum design, and the cross-institutional exchange were developed by:

Kennesaw State University

Department of World Languages and Cultures

  • Dr. Abigail Alexander — Associate Professor of French; Director of the World Languages Resource Collection. Project coordinator; conceived and has led the KSU–Hassan II virtual exchange since fall 2023.
  • Dr. Noëlle Lively — Senior Lecturer of French and Coordinator of French. Curriculum design and exchange coordination.
  • Dr. Federica Santini — Chair, Department of World Languages and Cultures.
  • Brooke Reed — Program Manager, World Languages Resource Collection. Coordinated student testers.

Université Hassan II Casablanca

Casablanca, Morocco

  • Dr. Meriem Hachimi — Associate Professor of French. Co-coordinates the exchange and Moroccan student participation.
  • Dr. Abdelhadi Samadi — Associate Dean for Research and Cooperation. Partner-institution authorization.

Technical & LLM development. Dylan Goldblatt, Ph.D. — AI Strategist and Applied Researcher, KSU Office of Research — designed and built Live Linguist end to end: the fine-tuned easy-language Qwen3 models, the supervised dataset and deterministic register validators, the on-device macOS application, and the CEFR-level caption adaptation. He maintains the models and infrastructure beyond the grant period.

The models

Two specialist simplifiers, now across twenty-nine languages

v3 keeps the same two-model family and trains a single multilingual fine-tune at each size, so one model covers all twenty-nine languages. We fine-tuned Qwen3 into dedicated easy-language simplifiers and quantized them to 4-bit so they run on-device on Apple silicon via MLX. The size choice is still the latency/quality trade-off: a small one for live captioning, a larger one when quality matters more than speed. Run 3 was trained with trl + peft on a Modal B200 in about thirty GPU-minutes, with hyperparameters and final loss matched to the earlier MLX runs.

Qwen3 0.6B · live

4-bit · ~331 MB · lowest latency

The everyday driver for real-time captions, where each segment must be simplified inside a tight budget — now across every supported language.

Qwen3-0.6B-EasyLanguage-4bit →

Qwen3 1.7B · quality

4-bit · ~934 MB · highest quality

The higher-fidelity option: stronger SARI and higher register compliance when a few extra milliseconds are acceptable. It is the reference model behind the figures below.

Qwen3-1.7B-EasyLanguage-4bit →

What the effect looks like

A disfluent spoken German sentence, simplified into Leichte Sprache — short sentences, one idea each, filler removed:

Input · spoken German

“also der Termin wurde leider verschoben weil der Arzt krank war”

Output · Leichte Sprache

“Der Termin wurde verschoben. Der Arzt war krank.”

The languages

Twenty-nine languages, each in its own easy-language register

Each language targets an established easy-language register, with its own sentence-length rule and grammar checks. Where a country has a distinct national standard — Germany’s Leichte Sprache, Finland’s Selkokieli, Sweden’s Lättläst, Japan’s Yasashii Nihongo — we use it. Where one is not clearly established, we map to Inclusion Europe’s “Information for All” Easy-to-Read (ETR) framework, the pan-European standard for easy-to-read text, or to ISO 24495-1 plain language as a floor. The eight languages added in v3 all map to the ETR framework.

The twenty-nine languages enabled in v3, each with its easy-language register and per-sentence length cap. Caps are in words unless marked. CJK scripts use a character cap instead.
Language Register Standard / framework Sentence cap
GermanLeichte SpracheNetzwerk Leichte Sprache; DIN SPEC 33429≤ 12 words
FrenchFALCUNAPEI; European Easy-to-Read≤ 15 words
SpanishLectura FácilUNE 153101:2018 EX; Plena Inclusión≤ 15 words
EnglishEasy / Plain EnglishUS federal plain-language≤ 18 words
ItalianEasy to ReadInclusion Europe ETR (Informazioni per tutti)≤ 12 words
Portuguese (PT)Leitura FácilInclusion Europe ETR; IFLA≤ 15 words
Portuguese (BR)Leitura FácilInclusion Europe ETR≤ 12 words
DutchMakkelijk LezenInclusion Europe ETR≤ 12 words
SwedishLättlästMyndigheten för tillgängliga medier (MTM)≤ 12 words
DanishLetlæstInclusion Europe ETR≤ 12 words
FinnishSelkokieliSelkokeskus≤ 10 words
EstonianLihtsasti loetavInclusion Europe ETR≤ 12 words
SlovakĽahko čitateľnéInclusion Europe ETR≤ 12 words
RussianЛёгкое чтениеInclusion Europe ETR≤ 12 words
TurkishKolay Anlaşılır BilgiInclusion Europe ETR≤ 12 words
ArabicEasy-to-Read (RTL)Inclusion Europe ETR≤ 12 words
HindiEasy-to-ReadInclusion Europe ETR≤ 12 words
Korean읽기 쉬운 정보Inclusion Europe ETR≤ 12 words
VietnamesePlain languageISO 24495-1:2023≤ 14 words
UkrainianЛегка мова (Easy-to-Read)Inclusion Europe ETR≤ 15 words
RomanianEasy-to-ReadInclusion Europe ETR≤ 12 words
BulgarianЛесен за четенеInclusion Europe ETR≤ 12 words
PolishTekst łatwy do czytaniaInclusion Europe ETR≤ 12 words
CroatianLako za čitanjeInclusion Europe ETR≤ 12 words
Norwegian (Bokmål)LettlestInclusion Europe ETR≤ 12 words
HungarianKönnyen érthetőInclusion Europe ETR≤ 12 words
CzechSnadné čteníInclusion Europe ETR≤ 12 words
Japaneseやさしい日本語Yasashii Nihongo≤ 40 chars
Simplified ChineseEasy-to-Read (plain)ISO 24495-1:2023≤ 25 chars

Simplified Chinese (zh-CN) was held back in v2 over a language-ID artifact; it ships in v3 — see Results. Standard confidence varies by language: national standards (de, fi, sv, ja) are well established; ETR mappings are our best-supported interpretation where a dominant national easy-language standard is not clearly documented.

Results

Specialist models beat vanilla Qwen3 — in every language

We evaluated on held-out test sets of ~200 sentences per language, comparing each fine-tuned model against the stock Qwen3 4-bit model of the same size. The fine-tuned models win on simplification quality and, more decisively, on reliability: stock Qwen3 frequently ignores the easy-language register or copies a prompt example, while the fine-tuned models follow the rules almost every time. All 29 languages clear the ship gate — the 21 run-2 languages hold steady, the 8 new locales pass decisively, and Simplified Chinese ships for the first time.

SARI (higher is better)
The standard simplification-quality metric (Xu et al., 2016). It rewards words the model correctly keeps, adds, and deletes relative to references — a single score for “how good is this simplification?”
Register compliance (higher is better)
The share of outputs that actually follow the target register’s rules (sentence length, simple grammar, and the other deterministic checks for that language).
Language ID (LID) (higher is better)
The share of outputs that stay in the target language — the simplification must not drift into another language. The ship gate combines a high in-language rate with SARI and compliance; every language clears it.
Horizontal bar chart of SARI scores, fine-tuned EasyLanguage versus stock Qwen3-1.7B, for twenty-seven languages that use whitespace-delimited scripts. The fine-tuned model scores higher in every language. Top scores include Vietnamese 62.5, English 62.4, French 62.0, Spanish 61.7 and Portuguese-PT 61.2, against stock scores in the low-to-mid 50s; German rises from 41.9 to 51.1 and Norwegian from 41.4 to 54.3.
Simplification quality (SARI), Qwen3-1.7B, across twenty-seven whitespace-delimited languages. The fine-tuned model scores higher than stock Qwen3 in every language shown. Japanese and Simplified Chinese are excluded here because SARI is whitespace-tokenized and meaningless for scripts without spaces between words — those are judged on chrF, compliance, and LID instead.
Horizontal bar chart of register-compliance percentages, fine-tuned versus stock Qwen3-1.7B, across all twenty-nine languages. The fine-tuned model follows the easy-language rules in roughly 84 to 100 percent of outputs, most at 96 percent or higher, while the stock model complies in roughly 32 to 96 percent of outputs.
Register compliance, Qwen3-1.7B, all twenty-nine languages. Fine-tuned models follow the easy-language rules far more often than stock Qwen3 in every language — most at 96–100%. The lowest case (Hindi, 84%) still clears stock by a wide margin and passes the gate.

Results in numbers

Held-out test, ~200 sentences per language. Fine-tuned (ft) versus stock Qwen3 4-bit, greedy decoding. SARI shown for both sizes; register compliance and LID for the 1.7B model. All twenty-nine languages pass the ship gate.
Lang 0.6B SARI
ft / stock
1.7B SARI
ft / stock
1.7B compliance
ft / stock
1.7B LID
German47.6 / 33.051.1 / 41.91.00 / 0.601.00
French58.0 / 33.362.0 / 54.10.99 / 0.611.00
Spanish59.5 / 36.661.7 / 56.90.99 / 0.610.99
English61.0 / 32.562.4 / 52.01.00 / 0.681.00
Vietnamese60.2 / 41.362.5 / 57.30.86 / 0.511.00
Portuguese (PT)58.2 / 39.061.2 / 54.30.96 / 0.821.00
Portuguese (BR)55.3 / 37.557.8 / 56.90.89 / 0.321.00
Italian54.0 / 49.256.2 / 49.50.89 / 0.481.00
Danish53.7 / 35.655.6 / 49.20.98 / 0.810.99
Dutch51.7 / 39.055.1 / 51.80.94 / 0.450.98
Swedish53.6 / 40.255.0 / 49.50.96 / 0.890.97
Hindi51.9 / 35.254.5 / 49.20.84 / 0.600.97
Russian51.1 / 41.154.5 / 51.00.97 / 0.721.00
Norwegian51.8 / 30.054.3 / 41.40.99 / 0.950.99
Romanian51.7 / 40.853.7 / 48.11.00 / 0.931.00
Croatian51.3 / 33.953.5 / 45.40.99 / 0.850.99
Ukrainian52.1 / 39.653.1 / 51.80.99 / 0.880.99
Bulgarian50.8 / 34.252.7 / 51.70.97 / 0.730.99
Arabic 50.0 / 50.152.1 / 51.00.98 / 0.681.00
Polish50.6 / 36.951.5 / 44.50.99 / 0.821.00
Slovak51.2 / 40.651.5 / 46.90.96 / 0.810.99
Hungarian49.7 / 38.650.7 / 49.80.99 / 0.811.00
Finnish49.9 / 35.250.6 / 47.20.99 / 0.911.00
Turkish50.5 / 31.750.6 / 46.40.99 / 0.851.00
Czech49.4 / 39.550.4 / 48.60.99 / 0.811.00
Korean49.2 / 43.850.1 / 46.50.97 / 0.881.00
Estonian47.6 / 30.548.4 / 45.60.99 / 0.730.99
Japanese — / —— / —0.98 / 0.931.00
Simplified Chinese — / —— / —0.99 / 0.940.99

SARI = Xu et al. (2016). Compliance is the validator pass rate; LID is the in-language rate.  Arabic ships on the 1.7B quality model, where it clears stock on SARI, compliance, and LID; at 0.6B its SARI is roughly level with stock.  Japanese and Simplified Chinese SARI is whitespace-tokenized and not meaningful for scripts without word spaces — they ship on chrF, compliance, and LID (chrF ≈ 45 for Japanese and ≈ 54 for Chinese on the 1.7B ft).

Simplified Chinese now ships. In v2, zh-CN simplified well (chrF ≈ 54) but its automatic language-ID landed just under the gate: the detector mislabels short Han-script text as Korean or Vietnamese. v3 adds a script-aware Han check — a fix to the detector, not a model change — and zh-CN now clears the gate with chrF ≈ 54 vs 42 stock, compliance 0.99, and LID 0.99 on the 1.7B model.

Steady where it was, strong where it’s new. Across the 21 languages carried from v2, mean SARI barely moved (+0.15 at 0.6B, −0.35 at 1.7B) — the models held their quality while the dataset and language count grew. The 8 new locales all land in the same range as the established ones.

The dataset

How the training data was built

The models were fine-tuned on a supervised dataset of sentence-to-easy-language pairs. v3 expands it to 29 locales — roughly 74,000 training pairs (73,972 train, up from 56,654 in v2), with ~200 held-out test sentences per language. It combines two sources:

  • Grounding in real simplifications. German pairs are grounded in German4All, a corpus of German Wikipedia text aligned to multiple simplification levels.
  • Synthetic spoken-style data. To cover the live-captioning use case — disfluent, conversational input — and the new languages, we generated pairs in a spoken style with a teacher model (Claude, Anthropic) across everyday domains (lectures, meetings, medical, civic, travel, and more), then quality-controlled them.

Every pair passed the same deterministic validators the application uses at runtime: per-sentence length caps, simple-grammar checks, source anchoring, number fidelity, an anti-parroting check, and a wrong-language guard. Pairs that failed the register rules were rejected, so the training signal reflects the standard rather than just “shorter text.”

live-linguist-easylanguage-sft on Hugging Face →

Run it locally

Everything stays on your Mac

Download Live Linguist for macOS Apple silicon · v1.1.28 · 11 MB .dmg · direct download

Live Linguist is a macOS application that runs the whole pipeline — audio capture, speech recognition, and simplification — on-device on Apple silicon. Nothing is sent to a server. The models above are the simplification stage. The download above is the signed, notarized v3 build (v1.1.28), hosted on Cloudflare so it downloads directly without a GitHub account.

Prefer to build from source, or want the latest unreleased changes? At a high level:

  1. Clone the application repository and follow its README build instructions (macOS 14.4+, Xcode 16+).
  2. Download the easy-language models from Hugging Face (the live 0.6B for low latency, or the quality 1.7B).
  3. Pick a language and an audio source, and read the simplified captions alongside the verbatim transcript.

Model coverage vs. app coverage. All twenty-nine registers are validated and published on the models. The current macOS app routes the four founding languages — German, French, Spanish, English — end to end; the other twenty-five are rolling into the app as their speech-recognition locale and language packs are wired up. A language that isn’t yet wired falls back to the stock model, byte-identical to before.

Full, current setup steps live in the repository’s README:

github.com/ngoldbla/live-linguist →

Provenance, licenses & limitations

What this is built on — and what it is not

Provenance & licenses

  • Base model: Qwen3 (0.6B and 1.7B), by Alibaba — Apache-2.0.
  • Source data: German4All — MIT; derived from German Wikipedia, which is CC BY-SA.
  • Synthetic teacher data: generated with Claude (Anthropic). Review the relevant model and data licenses before redistribution.
  • Training: run 3 fine-tunes were trained with trl + peft on a Modal B200, then merged and quantized to 4-bit MLX for on-device inference.
  • Standards: easy-language registers follow national standards where established (Leichte Sprache, Selkokieli, Lättläst, Yasashii Nihongo, …) and Inclusion Europe’s “Information for All” Easy-to-Read framework or ISO 24495-1 plain language otherwise.

Limitations — please read

  • Twenty-nine languages, varying maturity. v3 covers twenty-nine languages, but data volume, standard confidence, and compliance differ across them. The four founding languages are the most mature.
  • Small models. These are 0.6B and 1.7B parameter models. They make mistakes, and the smaller one makes more of them.
  • Mostly-synthetic data. Much of the training data is model-generated. It can carry the teacher model’s biases and errors despite validator QC.
  • Standards are an interpretation. For many languages — including all eight added in v3 — we map to the pan-European Easy-to-Read framework; this is one faithful interpretation, not a certified national standard.
  • Not for high-stakes use. Do not rely on these outputs for medical, legal, financial, or safety-critical communication. They are an aid, not an authority.
  • Easy language is an approximation. Compliance with a register’s rules is measured automatically; it does not guarantee a certified human-reviewed easy-language text.

Roadmap

v3 ships twenty-nine languages on the model side and four in the live app, with the remaining registers being wired into the application next. Simplified Chinese, held in v2, now clears the gate and ships. The application’s model catalog is being re-pinned to the v3 revisions, and speech-recognition wiring for the eight new locales is in progress. Additional languages stay on the same model line and easy-language-register approach.

Live Linguist

Base model Qwen3 (Apache-2.0). Source data German4All (MIT; German Wikipedia, CC BY-SA). Synthetic teacher data generated with Claude (Anthropic). Run-3 fine-tunes trained with trl + peft on Modal (B200). Evaluation: held-out test, ~200 sentences per language; SARI per Xu et al. (2016); 29 of 29 languages ship. ndgold.com