First release of Tegaki
Today I’m releasing Tegaki 0.1. Tegaki is an ongoing project which aims to develop a free and open-source modern implementation of handwriting recognition software, that is suitable for both the desktop and mobile devices, and that is designed from the ground up to work well with Chinese and Japanese.

Screencast video: ogg or youtube.
This release features desktop and SCIM integration. However, the main “innovation” brought to you by this release is the user interface. It uses two drawing areas for continuous writing. The user can eventually fix recognition errors by choosing alternative candidates or editing characters. Since a video is worth a thousand words, see the screencast above. This interface is largely inspired from the Nintendo DS game “Kanji Sono Mama Rakubiki Jiten” (漢字そのまま楽引辞典).
Tegaki is designed to be able to use several recognition engines. However so far it only supports Zinnia, which is the only recognition engine that I know with acceptable recognition accuracy and good performance on mobile devices. One challenge of the project in the future will be to create a new recognition engine that can yield better results than Zinnia.
A take that I have on this project is to use Python whenever this is possible and only use C or C++ when performance is critical, like in recognition engines. Compared to Tomoe, which implements everything in C and provides bindings for several languages, this means less reusability of the components but I hope this will make the project go forward faster.
There are still a lot of things that can be done in various areas but I really wanted to release the code I’ve put together so far because I think it can already be useful to end-users. By the way, Maemo supports both pygtk and SCIM through third-party projects, thus Tegaki is just a few Debian packages away from being available on Maemo.
For further details:
http://tegaki.sourceforge.net/
February 16th, 2009 at 6:40 pm
That’s great news! Sadly, I can’t get it to run. I installed all the packages and Zinnia, but when I open tegaki in SCIM it says it has no models or recognizers installed.
February 16th, 2009 at 7:36 pm
Ok, so you’re almost done installing Tegaki.
1) Did you install Zinnia bindings for Python? If so you should be able to do “import zinnia” in Python, like so:
$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import zinnia
>>>
The bindings are available in the python/ directory of the zinnia source. If you encounter problems compiling the bindings, the following bug report may help you:
http://sourceforge.net/tracker/index.php?func=detail&aid=2589496&group_id=232651&atid=1086998
If you did install the python bindings, one problem may be that the zinnia Python module cannot dynamically load the zinnia library. Check that /usr/local/lib is in the list of loadable paths.
$ cat /etc/ld.so.conf.d/i486-linux-gnu.conf
# Multiarch support
/lib/i486-linux-gnu
/usr/lib/i486-linux-gnu
/usr/local/lib
Run this after modifying the file:
$ sudo ldconfig
2) Did you install a model? You need to install tegaki-zinnia-japanese and/or tegaki-zinnia-simplified-chinese, depending on your needs.
If you’re running Ubuntu Intrepid, there exist unofficial packages:
http://blog.lidaobing.info/2009/02/tagaki-01-is-ready-for-ubuntu-810.html
February 16th, 2009 at 9:12 pm
Yeah, I forgot the python bindings. And i did run into that compile error, so thanks for your help! It’s working great now. Lack of a good IME-Pad (for lack of a better term) in Linux was one of the reasons some of my friends continue to use Windows. This really is a great program!
June 21st, 2009 at 12:49 am
Is there any package available already for n810?
I tried to compile it by myself, which works … but I cant load it, bcz of python-gtk-something missing …
did you already successfully compile it on one of those devices?
Regards
fred
July 4th, 2009 at 8:11 am
I’ll try to prepare Debian packages for the device when I get some time.
Did you install python2.5-gtk2 ?
July 4th, 2009 at 12:50 pm
yes i did …
indeed i cant even get it to run on my debian-desktop … everything compiles fine, but whenever i try to start it in scim nothing happens … runnin “tegaki-recognize” on console doesnt work … it gives me following error:
Traceback (most recent call last):
File “/usr/bin/tegaki-recognize”, line 111, in
TegakiRecognize(options.hide).run()
File “/usr/bin/tegaki-recognize”, line 41, in __init__
self._create_window()
File “/usr/bin/tegaki-recognize”, line 63, in _create_window
rw = SmartRecognizerWidget()
File “/usr/lib/python2.5/site-packages/tegakigtk/recognizer.py”, line 320, in __init__
RecognizerWidgetBase.__init__(self)
File “/usr/lib/python2.5/site-packages/tegakigtk/recognizer.py”, line 50, in __init__
self._load_preferences()
File “/usr/lib/python2.5/site-packages/tegakigtk/recognizer.py”, line 57, in _load_preferences
self.set_selected_model(pm["GENERAL"]["SELECTED_MODEL"])
File “/usr/lib/python2.5/site-packages/tegakigtk/recognizer.py”, line 216, in set_selected_model
r_name, model_name, meta = Recognizer.get_all_available_models()[i]
TypeError: unbound method get_all_available_models() must be called with Recognizer instance as first argument (got nothing instead)
what am I missing? I know it seems there is some argument missing … but which one?
regards
fred
July 6th, 2009 at 5:09 am
What is your Python version? You can get it with “python -V”.
Also note that Debian (sid) has packages for Tegaki already, so you may want to use them instead of installing Tegaki by hand.
tegaki-recognizer should work without argument.
July 6th, 2009 at 8:55 am
thanks for your answer …
python version is 2.5.4
i did also try the sid-packages first … but same problem, whenever I click on tegaki in scim, nothing happens, and if I start tegaki-recognizer it gives me the same error …
if I am comment out the part where tegakigtk/recognizer.py searches for the recognizers and models, tegaki loads … but of course without any models … so the problem seems to be there …
zinna and tegaki python bindings are also ok … can load them from within python shell …
really cant see what I am missing here …
July 6th, 2009 at 2:13 pm
Then I don’t know. Your error messages contains:
TypeError: unbound method get_all_available_models() must be called with Recognizer instance as first argument (got nothing instead)
I don’t understand why because get_all_available_models is defined as a static method (with a decorator) and thus it doesn’t need an instance. I think that your Python version has a bug with static methods or decorators.
Can you use the project discussion group for further discussion? Thank you!