● Offline AI keyboard · Free

Type Sing Khmer.
Get ខ្មែរ.

Akkhara reads the way you already chat (nh jg tv sala rean) and writes correct Khmer script: ខ្ញុំចង់ទៅសាលារៀន. On your phone and your computer, without internet.

Android · Windows · Mac · iOS soon 🔒 Nothing you type leaves your device
You type
Akkhara suggests
1 
2 
3 
4 
5 
Inserted
Enter inserts the highlighted one · real model outputs
Download

One keyboard, every screen

All versions use the same AI model, built into the app. Free and open source.

Android Available

A full keyboard: Sing Khmer, ខ្មែរ (NiDA) and English, emoji, clipboard, dictionary.

Download APK Android 8.0+ · ~50 MB

Windows New

A real keyboard next to English. Win + Space → Akkhara, type in any app.

Download Setup.exe Windows 10 / 11 · Intel/AMD · ~23 MB

Mac New

A real keyboard in Input Sources. Ctrl + Space → Akkhara, type in any app.

Install (one line) .zip macOS 13.3+ · Apple M-series · ~23 MB

iPhone Soon

The iOS keyboard needs an Apple Developer account to reach the App Store. Help make it happen →

Support iOS App Store · after funding
How it works

Chat the way you always do

Sing Khmer has no standard spelling: knhom, knh and nh all mean ខ្ញុំ. Akkhara reads the whole sentence, so short words get the right meaning from their neighbours.

Type Latin letters

Your Latin stays underlined. Nothing changes until you choose.

The AI writes Khmer

A small model (18 MB) on your device writes the Khmer letter by letter and keeps the 5 best sentences, in about 10 ms.

Pick and keep typing

Enter or tap inserts it. English words like bro or game stay English; names can be kept as typed.

nh jg tv sala reanខ្ញុំចង់ទៅសាលារៀន
b pg lvol ot torn tomne te oបងកំពុងរវល់អត់ទាន់ទំនេរទេអូន
sok sbay ot broសុខសប្បាយអត់ bro
tos jol CGតោះចូល CG
b ng oបងនិងអូន
nh ng tvខ្ញុំនឹងទៅ
nv ngនៅហ្នឹង

Real outputs of akkhara-mini. The last three: the same ng, three meanings, chosen from context.

The name

អក្ខរៈ · Akkhara

Akkhara comes from the Pali word akkhara: a letter, the written sign of a sound. In Khmer it lives on in words about writing: អក្ខរាវិរុទ្ធ (correct spelling) and អក្ខរកម្ម (literacy).

That is the whole idea: you type the sounds with Latin letters, Akkhara gives them back in អក្សរខ្មែរ, Khmer script, spelled correctly.

Akkhara logo
អក្ខរៈ
Akkhara
letter · script · made by Ing Muyleang
Docs

How the model works

Akkhara is a small AI model that translates Sing Khmer (Khmer written with Latin letters, as in chat) into Khmer script, one whole sentence at a time.

Figure 1. akkhara-mini: letter tokens, T5 encoder with 6 layers, decoder with 3 layers writing one Khmer letter per step, beam search and top-5 suggestions

1 · The data

398,000 pairs of Sing Khmer → Khmer. Khmer sentences from Wikipedia and the web, romanized the many ways people really type (knhom / knh / nh), plus real chat checked by native speakers, 846 topic spellings, 134 Cambodian ministry, bank and university names, and common English chat words kept as English.

2 · The model

akkhara-mini: a character-level T5 encoder–decoder with 18 million parameters (6 + 3 layers). The encoder reads every Latin letter of the sentence; the decoder writes the Khmer one letter at a time and a beam search keeps the 5 best sentences.

3 · On your device

Exported to ONNX and shrunk to 8-bit (18.5 MB). It runs inside the keyboard with ONNX Runtime on Android, Windows and Mac: about 10 ms per key, no internet. Long text is cut into 6-word pieces and finished pieces are cached.

Context

Short chat words have several meanings. ng is និង, នឹង or ហ្នឹង; yt is YouTube or យឺត. Because the model reads the whole sentence, it picks the right one (80 of 86 context tests).

Abbreviations

mptc, rupp, cadt, istad, aba stay as typed at #1, and the full Khmer name is offered at #2: ក្រសួងប្រៃសណីយ៍និងទូរគមនាគមន៍.

A bigger model too

akkhara-byt5-small (300M parameters) is the most accurate on formal text (CER 3.7%). It runs in the web demo; the phone and PC use the small one.

Figure 2. Inside akkhara-mini: encoder block, decoder block, and akkhara-mini compared with akkhara-byt5-small Figure 3. Making 398,849 training pairs with the romanizer, live typing with chunks, cache, re-ranking and rules, and the offline keyboards
Accuracy

Measured on real chat

Tested on sentences typed and checked by native speakers, and on 7,800 held-out sentences.

85%real chat, right at #1
92%right answer in the top-5
49/52ministry, bank & university names
~10 msper key on a phone, offline
Benchmark of the Akkhara models on the same tests
Docs · Windows

Install, update, uninstall: never a restart

Setup adds Akkhara to your keyboards. Choose the folder or keep the default.

Setup steps: welcome, choose folder, add to keyboards, how to type Win + Space to switch, then type Sing Khmer Install, use, update, uninstall, install again: no restart

Update

Start menu → Akkhara → Check for updates, or the weekly check if you ticked it in Setup. It compares your version with the newest GitHub release and installs it over the old one. Or simply run a newer Setup.exe. Only this check goes online; the keyboard itself never does.

Uninstall

Settings → Apps → Installed apps → Akkhara Keyboard → Uninstall. Akkhara is removed from your keyboard list, unregistered, and its folder and update check are deleted.

Why no restart?

Open apps keep the keyboard file loaded, so Windows cannot delete it at once. Setup moves such files to Windows' Temp folder (allowed even while in use); Windows deletes them at your next normal restart. You can install again any time.

Docs · Mac

Mac keyboard: one line to install

Apple M-series Mac, macOS 13.3 or newer. Open Terminal (⌘ + Space → "Terminal") and paste:

curl -fsSL https://raw.githubusercontent.com/MuyleangIng/akkhara-desktop/main/mac-ime/get.sh | bash
Install with one line, choose Akkhara in the menu bar, type in any app

Switch and type

Menu bar input menu → Akkhara (icon អ), or Ctrl + Space. Type nh jg tv sala rean: Enter inserts, ↑ ↓ choose, Esc keeps the Latin. Not in the menu? System Settings → Keyboard → Input Sources → Edit… → + → Khmer → Akkhara.

Update, uninstall

Update: run the same line again; it always takes the newest release. Uninstall: the same line with | bash -s uninstall at the end. No admin password, no restart, nothing left behind.

Why Terminal?

The app is not signed by Apple yet (that needs the paid Apple Developer account), so macOS blocks a zip opened from the browser. Files downloaded by Terminal are not blocked. Prefer the zip? Unzip it and run bash install.sh inside.

Open source

Open models, open code

Use the models in your own apps, read the code, or help with real Sing Khmer spellings.

Sister projects
Support Akkhara

Help bring Akkhara to iPhone and the app stores

Akkhara is free and made by one person. Publishing on the stores costs money every year; your support pays for it.

iPhone keyboard on the App StoreApple Developer Program, every year
$99 / year
Android on Google PlayGoogle Play developer account, one time
$25
Signed Windows installerno more "Windows protected your PC" warning
later

Every donation goes to these accounts first. Thank you 🙏

Donate with ABA Bank
008 072 001
Account name: ING MUYLEANG
Open ABA Mobile → Transfer → ABA account → paste the number. Any amount helps.