Monday, July 13, 2009

The Future of Kttsd

As you may or may not know, Kttsd is in the middle of some changes. Before Gary Cramblitt (aka phantomsdad) left the project, he made (and documented very well) a design to make kttsd basically just wrap speech-dispatcher. This design has many advantages, it simplifies kttsd code quite a bit, adds new functuonality, and makes kttsd better able to focus on what it does well, which I see as being the voice for KDE applications/desktop/platform. Kttsd has always been very good at filtering things like notifications (I use it to listen to irc and have for ages), and at providing an interface to an otherwise obscure sub-system (speech). However I also think there is definitely room for improvement =) And here's where you come in dear blog reader.

I'm considering changing up the ui a bit, to try to bring it into this century. The job list/control tab is somewhat dated, and it has always seemed a bit cumbersome to me. I'm considering making the job list more of a log of what has come in from what apps, with an easy to see view of what the filters did to the text for easy tweaking of filters (I seem to spend a bit of time each week trying to tweak the filters in one way or another). Other requests that have come on have been the ability to dynamically switch the current voice being used. So I'm thinking what if we make the jobs tab be more of a log and add a new tab for real-time speech control (change the current voice to male/female, language, pitch, speed, etc. all in realtime. Opinions anyone?

If we do the above we could also easily have a menu in kttsmgr's system tray icon to choose the voice, adjust speed/pitch, etc. on the fly also. So from you I'd like some feedback about which features you currently use in kttsd (talker chooser filter?, string replacer filter? easy (or not) access to festival/espeak/other speech system?) and what you'd like to see kttsd allow you to do in the future.

Thanks for reading and I hope next time to have some pretty pictures of a nice interface =)


Niels said...

Some years ago, someone suggested renaming kttsd to Kitty -- KDE Is Talking To You. I thought that was a great idea.

mat69 said...

To be honest I haven't used Kttsd in ages -- the voices I had just were not bearable for me especially when speaking in German.

But what would probably be useful would be to have different voices for different contexts e.g. one voice for warnings, errors or maybe even on a contact base like when you get a new kontact message when depending on the contact a different voice would be used (maybe that is possible now, though as mentioned haven't used it in quite a while).

Anonymous said...

My desired features;

Save as .wav (or any other audio format)

So I could record and listen to books later, currently it takes a lot of meddling to get it to do that, and it stops short after a few paragraphs (which is VERY annoying)

Another suggestion would be to get it to Welcome the user;

"Good morning, Dante, today is the 14th of July. You have 1 appointment and 4 new messages."

"Dante, there is a new Email from Joel"

"There appears to be a problem"

"There appears to be email from an unidentified person."

etc, etc, etc.

PhantomsDad said...

Niels makes a good suggestion. KTTSD needs a catchier name and Kitty is as good as any.

Nice to see some new ideas enlivening ktts. Jeremy deserves our thanks.

- PhantomsDad (former maintainer of KTTSD)

JPWhiting said...

thanks for all the feedback, I'd love to get all this in as soon as I can. I think a name change will definitely be in order with all that's changing in the interface (and internals too!) Niels, any idea where that name was mentioned/suggested first?


Niels said...

It was suggested here:

Damai Ria said...

can me link exchange to your blog?

Job Engineer & Engineering Job Indonesia

Anonymous said...

"Kitty" is taken.
It is a graphical and video pod cast client.ond

Niels said...

A unique name isn't crucial -- there are other examples of duplicate names, eg. Gentoo. Kttsd and the program you mention don't seem to overlap in functionality, so I see no real problem here.