Red Hat Bugzilla – Bug 506624
espeak hangs and APIs hangs as well
Last modified: 2009-07-11 13:31:53 EDT
Description of problem:
espeak hangs while processing text.
Version-Release number of selected component (if applicable):
run test program attached or enter ;espeak hi; over and over until it hangs
Steps to Reproduce:
1.compile program and run, it will hang on different lines.
of run 'espeak hello' over and over again
it speaks some lines the hangs
speak all input line with no hangs
I have written a sample program using the espeak APIs.
Both sample and the espeak program will hang. not always
on the same line.
Here is another test:
while [ 1 ]; do espeak hi ; date;done
It may run for 20 times or just 2 but it will hang.
Hmm... I've tested this on two Fedora 11 machines (i386 and x86_64) quite a few times, and am unable to replicate the problem (also using the while  snippet above; it runs a few hundred times before I manually kill it with ^C)... Nevertheless, espeak has been updated to 1.40 upstream, so I'll update the Fedora package.
Is there any console output when espeak hangs on your system? Is it possible that some other application (skype, arts, etc) is perhaps locking the sound device during calls to espeak?
Finally, have you tried reading a large text file with espeak to see if that hangs? e.g. try:
$ espeak -f /usr/share/doc/espeak-1.39/License.txt
That should read the entire file. If that doesn't hang mid-read, it is very probable that something else is locking the sound card.
I have 1.40 source installed and still have the same problem.
Tested your example" 'espeak -f /usr/share/doc/espeak-1.39/License.txt' an about that also hangs about the third line. No other sound processes are running.
I am beginning to think it is my very Linux unfriendly Fujitsu Lifebook laptop??
I will try it on another laptop I have and let you know.
It works OK on my Acer Aspire running FC10, so I guess it is a problem with the drivers for my Fujitsu laptop?? Don't think I can help debug the problem so I will close this bug.
I found this link about this problem in Ubunutu.
It recommends this and it appears to work correctly.
Espeak is behaving oddly, hanging or cutting off some words. (Launchpad).
Workaround: pipe its output to aplay:
espeak "hello" --stdout | aplay
Also this comment:
Re: Known Jaunty Jackalope bugs with workarounds
ATI driver with new Ubuntu 9.04 will give a delay when maximizing or minimizing windows. That's due to a patch that was removed from Xorg for the sake of intel cards. Go figure...make ubuntu less compatible with 40% of the cards in the market (ATI) in order to make it compatible with 10% of the cards? Anyways, here's the steps to fix it.
1. Open synaptic
2. Menu: Settings -> Repositories
3. Click the tab: Third Party Software
4. Click the button "Add" then enter "deb http://ppa.launchpad.net/ubuntu-x-swat/xserver-no-backfill/ubuntu jaunty main", then click ok
5. Click the button "Add" again then enter "deb-src http://ppa.launchpad.net/ubuntu-x-swat/xserver-no-backfill/ubuntu jaunty main", then click ok
6. Click "Close"
7. Click "Reload"
8. Click "Mark All Upgrades"
9. Click "Apply"
10. Logout and log back in.
So I guess it is a driver problem?
I doubt that Ubuntu's ATI video driver issue is affecting us here, since my laptop is a Toshiba x86_64 with an ATI Radeon HD 3400, running the default driver that comes with Fedora, and it works fine (read: doesn't interfere with audio drivers).
My guess would be that (like you said) there is some strange incompatibility between pulseaudio, portaudio (the lib that espeak uses to produce audio; currently it has no direct pulseaudio support) and alsa on your system. If the "pipe espeak to aplay" workaround doesn't work for you (or if you want to test that theory), you could try running espeak using pasuspender:
$ pasuspender espeak "hello"
If that doesn't work fine, it's not pulseaudio, and it is most probably a alsa driver-related problem.
I can't find pasuspender on my system.
The pipe to aplay worked.
Your system is a 64 bit cpu, so the drivers would be different than my 32 bit pc, right??
I don't like using the work around but I'm not smart enough to fix it the right way.
I'm reoping this, as I am about to push a new update to eSpeak which is compiled against pulseaudio instead of portaudio, which I believe will solve this problem.
espeak-1.40.02-2.fc11 has been submitted as an update for Fedora 11.
espeak-1.40.02-2.fc10 has been submitted as an update for Fedora 10.
Appears to have fixed the problem. I force installed on my FC10 system.
The link goes to a FC11 rpm file but it installed OK.
Thanks for the fix and your time.
espeak-1.40.02-2.fc11 has been pushed to the Fedora 11 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update espeak'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-7205
espeak-1.40.02-2.fc10 has been pushed to the Fedora 10 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update espeak'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F10/FEDORA-2009-7250
espeak-1.40.02-2.fc10 has been pushed to the Fedora 10 stable repository. If problems still persist, please make note of it in this bug report.
espeak-1.40.02-2.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report.