Latest Publications

espeak-gui 0.2

Yesterday I did a first release of espeak-gui, so while I’m still in practice I’ve decided to get out a second one!

The main changes are fixing a crash bug and… internationalization support. So, if you like this project but you’re not a coder, now you’ve got a way to contribute: translating it into your language (come on, it only has a few strings! :)).

The new version is already in my PPA: espeak-gui_0.2-0ubuntu1~ppa1_all.deb. A tarball is also available, and the installation instructions are the following:

$ wget -c http://launchpad.net/espeak-gui/trunk/0.2/+download/espeak-gui-0.2.tar.gz
$ tar -xzvf espeak-gui-0.2.tar.gz; cd espeak-gui-0.2
$ python setup.py build
$ sudo python setup.py install

In case you didn’t already have the previous version, you’ll also need to install the python-espeak module, for which there are also .deb’s (i386, amd64) or the manual installation option like explained in my previous post:

$ bzr get lp:python-espeak
$ cd python-espeak
$ python setup.py build
$ sudo python setup.py install

Here are the contents of the NEWS file:

2010-01-02: Version 0.2
-----------------------

 - Fixed a crash happening when there was no voice language set in
   gconf (LP: 502253). [Reported by Rugby471]
 - Added a "Plain text" filter to the Open/Save dialogues.
 - Added internationalization support.
 - Added a manpage and a gconf schemas file.
 - A couple little user interface improvements.

Translations: Catalan.

Introducing espeak-gui

I’m joining the hype of presenting little new projects there seems to be those days, unleashing the first version of espeak-gui, a graphical interface to let the computer read out text.

Why, when, who?

The project started almost a year ago when, out of curiosity on what writing Python bindings for C/C++ libraries is like, I started python-espeak, bindings for the espeak speech synthesizer (which, by the way, comes installed by default on Ubuntu and many other distributions).

It turned out that writing bindings isn’t as funny as I thought so they haven’t advanced much since then, but the basic functionality was there and I felt the need for some application using those bindings, so that’s how I started espeak-gui.

Some months later, in true Free Software spirit, someone else -interested in an application like this for personal usage- found my code on Launchpad and got in touch with me, providing me with quite some nice patches. Thank you, Joe Burmeister! However, I didn’t do any more work on it, as I’ve been busy with other projects (eg. Zeitgeist), and development stalled there.

Now, another half a year later, I’ve finally got back to this and decided it’s time I push it out into the wild. So, after cleaning it up a bit more and implementing some new feature, here you have espeak-gui!

(The bindings aren’t really encouraged for widespread usage at this point and I’ll probably end up rewriting them using SWIG or something else; however, if you’re interested in using them please get in touch with me).

Where do I get it?

If you’re using Ubuntu or Debian, you can find a packages for python-espeak and espeak-gui in my PPA.

For users of other distributions, you can install them manually after installing the needed dependencies (most importantly, libespeak-dev).

For the Python bindings for espeak:

$ bzr get lp:python-espeak
$ cd python-espeak
$ python setup.py build
# python setup.py install

And for the GUI:

$ wget -c http://launchpad.net/espeak-gui/trunk/0.1/+download/espeak-gui-0.1.tar.gz
$ tar -xzvf espeak-gui-0.1.tar.gz
$ cd espeak-gui-0.1
# python setup.py install

[Update: A new version is out, see espeak-gui 0.2 for details.]

I have several ideas on how to continue improving it and I think I’ll slowly continue doing so (or maybe not so slowly if I get positive feedback on this :)). Also, patches are always welcome!

Using it

Once installed, you’ll find espeak-gui under Applications -> Sound and Video (maybe Accessibility would be a better place?), or you can run it from the command line like this:

espeak [ <file 1> <file 2> ... ]

No sound problem with Wolfenstein: Enemy Territory

I don’t really play much, but of the few games I know Wolfenstein: Enemy Territory is probably the one with which I’ve spend the most time so far. By featuring multiple player roles (soldier, engineer, medic, etc.) and, even while being multiplayer, nice objective-based scenarios, it provides for much better experience that many other more popular shooters. And best of all, it’s completely free of cost, has native support for GNU/Linux and a portion of it’s source code is open!

But it’s not to advertise this game that I’m writing about it, but because I want to write down some solution to the “no sound problem” which you’re likely to find if you try it out, and so that I can remember about the fixes in the future. So, here’s the different things you can try; if one of them fails just go to the next one, and let’s hope that at least the last one does the trick!

1. Install the “oss-compat” package.
As easy as that! Although this alone has never fixed the problem with me, it often does together with solution 2 (described just below), and maybe in your case it may be all you’re missing.

2. A bit of command-line magic
The next one, which seems to be the most successful option, is trying to execute the following line before running Enemy Territory:

echo "et.x86 0 0 direct" | sudo tee /proc/asound/card0/pcm0p/oss

If after doing this the sound works, you can make the change permanent by adding that line to your /etc/rc.local/, for example by running:

sudo sed -i "s:^exit 0:echo 'et.x86 0 0 direct' > /proc/asound/card0/pcm0p/oss\nexit 0:" /etc/rc.local

3. Let’s call the artillery

Hopefully you’ll be enjoying an Enemy Territory game with the sound of explosions and shots in your ears, but if the previous solutions didn’t do the trick do not despair, there’s still hope. I’ve found a different solution in this thread and it consists in the following:

a) Download this script: wolfsp-sdl-sound.sh (original download link, alternative download link), created by Pyry Haulos.

b) Open it with a text editor and customize it to match your configuration: change the line «GAME_PATH=”/home/games/enemy-territory”» to point to the location of your Enemy Territory installation (most likely «GAME_PATH=”/usr/local/games/enemy-territor”»); in case your directory with the game files isn’t called «enemy-territory» like in the example you’ll also need to adapt the GAME_DIR variable.

c) Save this file somewhere on your computer, make it executable if needed (you can do this by right clicking on it, selecting “Properties” and under the “Permissions” tab of the dialogue that will show up checking the box to allow execution of the file). Done, now whenever you want to run the game just start it by running this file.

I hope this is useful for someone out there :).

GPL: Not here

GPL: Not in this garage

Zeitgeist Hackfest (II)

gnome-sponsored-badgeSo here we are at the Zeitgeist Hackfest and there’s quite some stuff going on.

From the engine side we are implementing a new database and API which does a clean cut between what is event logging and what is repository functionality. What this means for Zeitgeist is that we won’t do annotations anymore and that the basic information Zeitgeist has about items will be about those at the time of the event – for anything else there is Tracker (I tried out the new version from git yesterday and it really rocks, it’s nothing like 0.6).

We are also implementing focus tracking and the algorithms for the fancy stuff (contextual relevancy over time, focus time of documents/applications, etc).

Seif, Markus and Ivan at the blackboard

Blackboards saved us a lot of time. In the image: Seif Lotfy, Ivan Frade (Tracker) and Markus Korn.

The User Interface team also has some quite nice design ideas. For the non-developers out there, there’ll be something (alpha-quality!) to try out soon.