Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

jouke (587)


Jouke has been programming Perl since 1997 and started using Perl to write programs to make life and communication easier for disabled people early 2001. Take a look at his website [] for more information.

Journal of jouke (587)

Monday January 16, 2006
06:27 AM

Not much

I haven't been doing much of what I've been doing in the past years: no pVoice development whatsoever. Since my iBook broke down, I haven't found the energy to get any further. That's a shame, but on the positive side, the 4 month break seems to have brought new ideas and motivation to pick it up again really soon.

Last month I started a podcast on Assistive Technology. It's still rather clumsy as I have to figure out how to set up a show. In case you're interested, you can find it at

And I've started blogging somewhere else. That doesn't mean I won't be blogging here anymore. I announced months ago that this journal will only be about pVoice related items, and I felt the urge to write about more personal things lately, so I started a blog at Just in case you're interested...

Monday October 24, 2005
03:38 AM


In case you missed it, last week was the first Euro OSCON in Amsterdam. I had a great time there. Of course it helped that I saw a great many people who I already knew, but I also got to knew some interesting new people.

One of the people I had the pleasure to meet was Fernando Botelho. He recently wrote an article for MAKE Magazine [] called "Let There Be Speech", about how to build a $200 computer for blind kids. He is visually impaired himself, so who would be more into the subject than him? We decided to keep in touch and see how we can help each other. We might be targetting a slightly different audience (he targets people who are/work with blind kids, I target people who can't speak), but there may be enough synergy to work together.

I also presented my talk "pVoice: Open Source Assistive Technology", which was well received I think. The presentation didn't exactly go as planned and I hopelessly ran out of time (as usual), but that may also have been caused by the many questions people asked. All in all I just hope that it had the desired effect: getting more people interested in creating "open" Assistive Technology.
I at least hope that it have this effect, because I'm feeling less motivated in the last 12 months being some kind of "one crying in the wilderness" being one of the very few working in this area and getting hardly any help.

Like I mentioned in my presentation: people keep telling me that pVoice is such a great thing, that it's such a nice example of Open Source. Well, I think it's a bad example of Open Source. One of the reasons why people make their projects Open Source is to attract more developers. At least, it was one of my motivations. And except lots of response from people who downloaded it and thank me for giving away the software for free (which is of course nice to hear), I could have made it closed source and still have given it away for free. But that wasn't the idea.

I've now worked on pVoice for almost 5 years. If you consider the sourcecode, it's not all that impressive. It's not a sexy piece of software, and it isn't supposed to be. Nevertheless, it has the looks of a professional piece of software, and people are really using it. And most important of all, it helps people.

Now, enough ranting about not getting any help. Don't worry that I'll quit working on it any time soon. I recently started to port pVoice to OS X and Linux, and although there's quite some tweaking to be done to get it to the level of releasing a version on those platforms, it might convince people to help out. Working only on Windows for the past years may have been the reason why I couldn't get anyone else interested to work on it (so it may all have been my fault).

I'll see how it goes. I originally thought that my Euro OSCON presentation would have been the last talk about pVoice I would do, but having seen the theme of next year's YAPC::Europe ("The Accessibility Of Perl") it may be that this conference may be the perfect opportunity to give one last talk about pVoice. But then it will be over I think. I've talked about pVoice on every conference I've attended (YAPC::Europe 2001 until Euro OSCON 2005) and if (perl) people still haven't heard about it, there's nothing I can do about it I think...

Sunday September 18, 2005
11:36 AM


I'm quite disappointed. I didn't manage to finish the pVoice import, nor the export, or actually, I didn't finish anything today. It's one of these days where you realise that everything goes wrong. It happens.

04:12 AM

A wasted day...

Yesterday I was working on the import/export routines in pVoice. It all seemed so simple, and yet my test scripts kept segfaulting.

After 6 hours I understood that I was trying to import/export to and from an old datafile, and hit a problem I had run into earlier. Very frustrating. I put away everything and hopefully I'll finish everything today...

Wednesday September 14, 2005
02:33 AM

First patch...

Last weekend I received the first patch for pVoice from Mattia Barbon. Finally someone else than just me is actually doing something with the code. It's just a minor patch, but it's a start which makes me very happy.

Work and personal issues have been keeping me from working on pVoice in the past months. I hardly did anything, so I decided I had to make some changes in the plans for the 2.2 release. It's been over a year (even more than 1.5 years) since 2.1 was released, and until I finish 2.2 I can't really release any plugins. I have so many ideas and so many unfinished pieces of code on my harddrive that should really become plugins for pVoice, but until I manage to release 2.2 it's all pretty much worthless vapourware.

Next month I will be speaking about pVoice and other Open Source Assistive Technology at Euro OSCON, and I feel that I can't really show up there without at least a newer release of pVoice than what I presented at OSCON last year. The way it looks now, I have a whole weekend (woohoo) to work on pVoice related stuff, and my goal is to have a complete working 2.2 version of pVoice for windows by Sunday night (really, there's not that much to do anymore, I just need to have a quiet place and time to work on it)

After that, I can finally work on the plugin for homecontrol, and other plugins like pStory (formerly a seperate application to listen to books) and pMusic (a mediaplayer). I'm also thinking about ways to use Skype from pVoice, but the useability aspect may be a reason not to start working on it. After all, does the person on the other side of the connection really want to wait minutes until the pVoice user has built a sentence to reply to what he just said? I think not. On the other hand, does someone with a disability really want to be limited to email or instant messaging? We all would want to communicate by speech every now and then (even geeks like us).

If you have any ideas on how to implement some kind of telephony application for typical pVoice users, you're more than welcome to comment on this....

Wednesday August 17, 2005
06:26 AM

[OS X] Porting notes

I decided to take the "easy way out" while getting AAC::Pvoice::Bitmap to work. That class uses Image::Magick to convert, resize and annotate images for pVoice. However, I wasn't able to get Image::Magick 6.x to work on OS X (and according to what I've found on Google, I'm not the only one).

Therefore I reverted back to an older version of this class that didn't use Image::Magick, but simply Wx::Image. That of course results in less fileformats to be supported, but at least it works.

Two other things I ran into, are:
    I used this flag for the dialog windows, to make sure they always stayed on top of the main pVoice window. That worked fine under MSWin32, however, its side-effect on non-Win32 platforms is that when you launch another window from any dialog created with this flag, that launched window never gets the focus. The preferences window launches a Wx::ColourDialog for example, and because the Preferences window always 'Stays On Top', you can never select a colour from the ColourDialog. It turns out that wxWidgets now has a wxFRAME_FLOAT_ON_PARENT flag, that is supposed to Do What I Mean.
  • SetBackgroundColour on buttons
    The preferences window allows the user to modify the appearance of the application by changing colours and fonts. Therefore I had a number of buttons on which I set the current colour and when the user clicked it, the ColourDialog popped up. On Windows (and GTK) this works fine: you do a $button->SetBackgroundColour($colour), don't put any text on it, and you have a colourful button. However, on OS X this results in an empty, standard-coloured button, with a coloured background around the button itself. That wasn't the plan. Don't know yet how I'll work around it.
  • Speech::Synthesis
    Since I released the 0.03 version of Speech::Synthesis, I modified pVoice to use this module for all Text To Speech related tasks. Therefore the Pvoice::TTS module (part of the pVoice sources) is now obsolete. The S::S module supports MSAgent, SAPI4 and SAPI5 on Win32, Mac::Speech on OS X and Festival (Festival::Client::Async) on all platforms.

More to come later...

Thursday July 21, 2005
03:36 AM

Want to help?

More developers are still welcome...You can work on your favorite OS (that is to say, OS X and Windows are the current platforms, other platforms shouldn't give too much problems) subscribe to the pvoice-dev mailinglist if you're interested.

12:10 AM

[OS X] Language and Region Codes - solved

I asked my question about Language an Region codes on apples speech-dev list and got this answer from Mike Blaguszewski from Cepstral.

It's strange that Apple uses these numeric constants for this. Everywhere else in Apple's internationalization code, it uses ISO letter codes (like en_US, nl_BE etc).

Anyway, this problem is solved.

I'm going to write a wrapper module for the available Speech synthesis modules that are on CPAN, to provide one consistent API. The first release of this module (later this week) will provide some basic functions, like information about installed voices, selection of voices and a 'Speak' method to pronounce the text. I will add things like setting the Pitch and other attributes later. There already is a module that was planning to do something like this (Speech::Synthesizer), but that module only supports Festival, hasn't been updated in years, and the author doesn't respond to any emails. Therefore, my module will be called Speech::Synthesis. Almost the same name, but this module will wrap Mac::Speech, Win32::SAPI4 and Win32::SAPI5 at first, and I will add Festival later (once I have a Linux machine set up again)

Wednesday July 20, 2005
05:51 AM

[OS X] Language and Region codes ???

This totally puzzles me. I wrote about the language and regioncodes of the installed voices on my iBook. They all returned '0', and I assumed that this meant 'unknown'. That turns out not to be true.

I downloaded and installed Acapela Multimedia HQ TTS [] this morning, and now I have all of their available TTS languages installed. Simply querying the Language and region for each installed voice returns a strange list, and I can't find a complete list of all codes anywhere, so help is greatly appreciated. This is the list I have so far:

Language                   Region
0  English                 0  both UK and US
1  French                  1  France
2  German                  3  Germany
3  Italian                 4  Italy
4  Dutch                   5  Netherlands
5  Swedish                 6  Belgium
6  Spanish                 7  Sweden
9  Norwegian               8  Spain
34 Belgian Dutch (Flemish) 12 Norway

Does anyone have a complete list of these codes and their meaning?

12:54 AM

[OS X] Text To Speech: done

Yesterday I managed to finish the Text to Speech support on OS X. That really wasn't hard. I think the more difficult matters are ahead of me now: image handling (which simply crashes at the moment) and the Preferences dialog (which has all kinds of things that don't work as expected).

All in all I'm surprised how easy it was so far to get started. Most things simply work. I guess it's the wxWidgets/wxPerl people to thank for that.

So hopefully I can report tonight that the image handling works...

Now I wonder where the people have gone that said in the past "Sure I would like to help with pVoice development...but it's a Win32 only thing, and I don't use Windows". To those people I'd like to say: if you're still willing to help, contact me! All you need is to check out the latest sources of AAC::Pvoice from cvs (and of course the pVoice sources itself). It's not that hard...