Swype, T9, Dasher, and iTap: Predictive Text Decoding

by

A friend recently showed me the Swype interface on his phone. It lets you drag your fingers across a soft keyboard roughly indicating the keys you intend to type:

Swype Text Input Interface

Swype Text Input Interface

Given my fat fingers and the dimunitive keyboard, the only way Swype can work is with what the Wikipedia calls predictive text. The predictive part is easy — that’s just a noisy channel model, though with a continuous (in theory) real-time input we’ll call “motion”. Let’s pretend for the moment we’re doing one word at a time, so that we have

p(word|motion) prop-to p(motion|word) p(word)

The source model p(word) is our old friend the language model. The trick here is to make the LM adaptive so that it learns about you as it goes. This is the same technology required for dictation systems. Then we need a channel model that describes which motions are likely given a word, p(motion|word). I don’t do much continous estimation, but I do know that both position and velocity (and probably acceleration) are important. Everything could get quantized like in most speech recognizers with numerical differentiation estimating velocity and acceleration, or with something like a Kalman filter, if you want to get fancy. I’d guess a simple model like an HMM would work for the channel model given a quantized motion, or you could get fancier and directly use a conditional model like a CRF. Either way, you need to be able to do real-time decoding using the CPU on a phone, which I’m guessing is a serious engineering challenge.

Swype was invented by Cliff Kushler, the co-inventor of T9 predictive text interface for phones, which itself is very similar to iTap. Predictive text entry for Japanese, especially kana (syllabic) to kanji (ideographic) conversion, has been in the field for years.

My favorite predictive text interface by far is David MacKay’s Dasher, which animates the arithmetic coding process, thus reducing text entry to a kind of driving game. It’d work for any language with an orthographic order on characters or words.

One Response to “Swype, T9, Dasher, and iTap: Predictive Text Decoding”

  1. ketrina Says:

    if you like swype you must to see this,
    i see it in another blog, comapy that call Dasur they heave SlideIT and the SlideIT give you same options like swype, you can to try it on your computer or in your pda i must to say that is work wonderfull
    see it here in action :

    or you can download the demo:
    http://dasur.co.il/Product/SlideIT/SlideIT.php

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s