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 http://podcast.openassistive.org/.
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 http://myspecialkids.blogspot.com/. Just in case you're interested...
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 [makezine.com] 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...
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.
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...
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....
More to come later...
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)..so.. subscribe to the pvoice-dev mailinglist if you're interested.
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)
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 [acapela-group.com] 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:
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?
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...