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.
Portuguese translation (pt) done, just pending approval. Very usual strings, i mean, very simple translation work. Just take 5 min of your day. Now that i’ve translated it, let me try it :-P!
Keep up the good work!
Why don’t you join the forces and merge with gespeaker?
http://code.google.com/p/gespeaker/
Thanks, I made it say “ffffffuuuuuuuuuuuuuuuuuuuuuuuuu” am still laughing
@ Tobias:
Basically, because I don’t really see a point for it.
First of all, the way Gespeaker and espeak-gui work under the hood is different. Gespeaker calls the “espeak” binary in a subprocess (ie., basically the same as if you’d call it from the terminal) and tells it to save the read text into a temporary file, which it then opens and plays. The later, uses libespeak to talk directly to eSpeak and let it read the text in real time.
The way Gespeaker does it has the advantage that it’s more straightforward to implement and that it can easily provide stuff like the “pause” option, which espeak’s API doesn’t provide (however, I think I’ll be able to implement “pause” functionality anyway). On the other hand, the way espeak-gui does it is technically the better way to do it (though I’ve noticed that sometimes stuff like changing the language doesn’t work 100%, but I hope that will get fixed once I rewrite the python-espeak bindings), and once the infrastructure is done it’ll be available for any other Python project who also wants to use espeak.
With this, one portion of the code is already incompatible. What remains is the GUI, and in this regards I *personally* don’t really like Gespeaker’s one. Writing the GUI isn’t really a big effort in Python, so I prefer to continue with my own instead of restructuring Gespeaker’s one to my will and having to replace its backend to use python-espeak. They are both little projects and there’s not much code that could be reused.
However, after saying all this, if the developer of Gespeaker wants to cooperate in some way I’m open to talking with him about it.
@ Daniel:
Thanks! Your help (and of all other translators) is very much appreciated :).
@ Adel:
Heh. I’m glad it’s useful to you, even if only to make you laugh :).
Nice app!
Though i don’t like the icon of it.
@ Halan:
Heh, yeah. I’d be great if someone could provide me with a better icon!
[…] A new version is out, see espeak-gui 0.2 for […]
Hi,
I saw that the GUI (v0.02) is wandering in to 10.04, so thought I’d give it a try on my 10.04 test rig. I can’t get the
$ bzr get lp:python-espeak
to work – Firstly I am told You have not informed bzr of your Launchpad ID, and you must do this to write to Launchpad or access private data. See “bzr help launchpad-login”.When I use
$ bzr launchpad-login phillw
I get bzr: ERROR: The user phillw has not registered any SSH keys with Launchpad.See
I do have a launch pad account, so am unsure as to what I am doing wrong (never used bzr before and had to apt-get it !!)
If you’d be kind enough to tell me what I am doing wrong – lol
Regards,
Phill.
@ phillw:
Try:
$ bzr get http://bazaar.launchpad.net/~rainct/python-espeak/trunk
It looks like lp: only works if you’re authenticated with Launchpad, which requires you to create an SSH key and upload the public part of it to Launchpad (in case you are interested, this is explained at https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair#Linux/Cygwin, but the above command should work just fine without doing any of this).
Hi, well it went and did something (got a file)
Branched 16 revision(s).
– but
cd python-espeak
reports back so such directory &locate python-espeak
reports back nothing found.Sorry to bother you.. I’d like to get it working as I’ve said I’d give it a try out on the unbuntu Assistive Technology & Accessibility for them, as I have 10.04.
Thanks,
Phill.
@ phillw:
Oh. With that command the directory is called “trunk” instead of “python-espeak” :).
Hi, well I cd’d okay to the dierctory, but
sudo python setup.py build
started off well, then …running build
running build_py
building ‘espeak.core’ extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c espeak/espeakmodulecore.cpp -o build/temp.linux-i686-2.6/espeak/espeakmodulecore.o
cc1plus: warning: command line option “-Wstrict-prototypes” is valid for Ada/C/ObjC but not for C++
espeak/espeakmodulecore.cpp:21:20: error: Python.h: No such file or directory
espeak/espeakmodulecore.cpp:22:30: error: espeak/speak_lib.h: No such file or directory
espeak/espeakmodulecore.cpp:25: error: expected initializer before ‘*’ token
espeak/espeakmodulecore.cpp:26: error: expected initializer before ‘*’ token
espeak/espeakmodulecore.cpp:30: error: ‘espeak_EVENT_TYPE’ was not declared in this scope
espeak/espeakmodulecore.cpp:30: error: expected primary-expression before ‘int’
espeak/espeakmodulecore.cpp:30: error: expected primary-expression before ‘int’
espeak/espeakmodulecore.cpp:30: error: initializer expression list treated as compound expression
espeak/espeakmodulecore.cpp:31: error: expected ‘,’ or ‘;’ before ‘{’ token
espeak/espeakmodulecore.cpp:30: warning: ‘DoCallback’ defined but not used
error: command ‘gcc’ failed with exit status 1
Which doesn’t look too happy.
phillw@piglet:~/trunk$ ls -l
reports backdrwxr-xr-x 4 phillw phillw 4096 2010-01-24 00:26 build
-rw-r–r– 1 phillw phillw 35068 2010-01-24 00:03 COPYING
drwxr-xr-x 2 phillw phillw 4096 2010-01-24 00:03 debian
drwxr-xr-x 2 phillw phillw 4096 2010-01-24 00:03 espeak
-rw-r–r– 1 phillw phillw 532 2010-01-24 00:03 setup.py
If you need anymore information, please ask.
Regards,
Phill.
@ phillw:
You’re missing two build dependencies: python-dev and libespeak-dev.
Got the two build dependencies … (python 2.6.4 it has put on for python dev)
I now get …
phillw@piglet:~/trunk$ python setup.py build
running build
running build_ext
building ‘espeak.core’ extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c espeak/espeakmodulecore.cpp -o build/tempg++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.6/espeak/espeakmodulecore.o -lespeak -o build/lib.linux-i686-2.6/espeak/core.so
.linux-i686-2.6/espeak/espeakmodulecore.o
cc1plus: warning: command line option “-Wstrict-prototypes” is valid for Ada/C/ObjC but not for C++
espeak/espeakmodulecore.cpp: In function ‘PyObject* espeak_set_voice(PyObject*, PyObject*, PyObject*)’:
espeak/espeakmodulecore.cpp:181: warning: deprecated conversion from string constant to ‘char*’
espeak/espeakmodulecore.cpp:181: warning: deprecated conversion from string constant to ‘char*’
espeak/espeakmodulecore.cpp:181: warning: deprecated conversion from string constant to ‘char*’
espeak/espeakmodulecore.cpp:181: warning: deprecated conversion from string constant to ‘char*’
espeak/espeakmodulecore.cpp:181: warning: deprecated conversion from string constant to ‘char*’
g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.6/espeak/espeakmodulecore.o -lespeak -o build/lib.linux-i686-2.6/espeak/core.so
Thanks for bearing with me !!
Phill.
@ phillw:
I don’t see any fatal error there. Try continuing with “sudo python setup.py install”.
Back again :-\
$ wget -c http://launchpad.net/espeak-gui/trunk/0.2/+download/espeak-gui-0.2.tar.gz
seemed to go well, various files downloaded and moved to directory /home/phillw/trunk/espeak-gui-0.2$ tar -xzvf espeak-gui-0.2.tar.gz; cd espeak-gui-0.2
However
phillw@piglet:~/trunk/espeak-gui-0.2$ python setup.py build
reports backTraceback (most recent call last):
File “setup.py”, line 7, in
from DistUtilsExtra.command import *
ImportError: No module named DistUtilsExtra.command
On the plus side, not too many commands to go !!
Regards,
Phill.
Oh, P.S.
phillw@piglet:~/trunk$ sudo python setup.py install
didn’t report any errors.Hi, have you got any further tracing the error reported January 24, 2010 at 20:49 – Thanks,
Phill.
@ phillw:
Sorry, seems like I missed that comment. You just need to install python-distutils-extra.
KEWL !! – It works. I started it from the command line (couldn’t see it the menu system any where, but I can always add it). When I started it from terminal I got bt_audio_service_open: connect() failed: Connection refused (111)
Repeated four times.
I look forward to having a ‘play’ with it.
Thanks for all the help in getting it set up,
Phill.
@ phillw:
Uhm, try running it with “aoss” (ie. “aoss espeak-gui” instead of just “espeak-gui”; you’ll need to install the alsa-oss package first).
Installed alsa-oss, invoking as this
phillw@piglet:~/trunk/espeak-gui-0.2$ aoss ./espeak-gui
Same error message. Repeated the four times.
Phill.
Oh, by the way, I put a mention in on the Ubuntu Assistive Technology forum, it’s over here –> http://ubuntuforums.org/showthread.php?t=1064210&page=2
@ phillw:
Thanks for the publicity :).
So is it working now for you? If so I think you can ignore those messages for now. It’s some problem with eSpeak and PulseAudio…
Yes, it is working fine. Now that it is in the Ubuntu Repositry, I will wait and see if anyone has a problem getting it from there. I removed the whole of the ~trunk directory after using Synaptic to get it – It’s all still working :-) (Still the same error message), all the files seems to have installed okay (e.g. the man entry has been made) – So, it looks good to go !!
Nice Application. Now, for your next trick … getting it to read a web page using the Rule508 rules for image & table descriptions – I’m coding a web-site to that set of rules, we do really need a Ubuntu (Debian) Web-Page reader, so, if you ever feel the urge … you can test it out on the site I’ve written :-D
Kind Regards,
Phill.
Phill.
@ phillw:
Any pointers on where I can read more about that?
XHTML Strict, requires the alt tag for images (it is a ‘may have’ in other variants) For Tables, head over to http://www.w3.org/TR/xhtml2/mod-tables.html Specifically http://www.w3.org/TR/xhtml2/mod-tables.html#non-visual-rendering
I’m using the ‘scope’ variant and not the ‘headers / id’ variant. I haven’t put a summary into my tables, as the title of the table is explanation enough and I’ve had enough ‘fun’ keeping the XHTML Strict Certification whilst building and echo’ing the various table commands needed and meaningful alt tags in PHP from a MySQL database !!!
Rule508 can be found over here –> http://www.hisoftware.com/uaccess/Index.html
The logic of how the reader would parse a table seems straight forward enough, but I’m not a proficient enough coder to even attempt such a thing !!
If you’re using FireFox as a browser, there is an add-on called Web Developer, that will give you checking by w3c of css and (x)html etc. It also includes a tester for Rul508. (aka “Cynthia Says” as it browses the web page like an aural browser would & checks to see if the things required are there) – It’s quite a bit to take on board at first, but does not actually mean a whole lot of re-writing if you’re using XHTML-Strict to begin with.
If there’s anything else I can do to further help you, please feel free to e-mail me.
Regards,
Phill.
Hi,
sorry not been back to you — There was a project called FireVox that worked with the FireFox browser. Very sadly, it appears to have lapsed support with FF 3.6, and non forthcoming. However, the guy who did it all has all the code available to any who wish to use it. Don’t know if you and friends would be interested in that sort of project.
If you head over to the Assistive Technology Forum they would be more than happy to up-date you, else I can put you onto the mailing list for things like Orca so you can see what is currently going on & where things are heading.
People interested in such things are always welcome.
Phill.
eSpeak is great. With eSpeak, I create the phonemes for my pronunciation dictionaries.