1.8 KiB
created | layout | layout_old | redirect_to | tags | title | toc | updated | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
2009-02-22 00:53:11 +0100 | redirect | default | https://blog.mbirth.de/archives/2009/02/22/festival-text-to-speech.html |
|
festival Text-To-Speech | false | 2009-02-22 00:54:41 +0100 |
Simultaneous playback
The festival
text-to-speech synthesizer seems to use normal ALSA playback instead of PulseAudio. This leads to it
failing when there's already something playing. E.g. if you're listening to music with Rhythmbox, festival fails
with this message:
Linux: can't open /dev/dsp
To make it use PulseAudio, we can re-route the audio through the pacat
utility as proposed on this bugreport.
Just add these few lines to your /usr/share/festival/init.scm
:
(Parameter.set 'Audio_Command "pacat --channels=1 --rate=$SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'raw)
Note: I had to use raw
as the required format since the snd
from the bugreport gave me loud noise instead of
speech. raw
works fine.
Announcing system errors
On fedorabook.com I
found this little script which will read every new line from /var/log/messages
:
{% highlight bash %} #!/bin/bash tail -0f /var/log/messages | sed "s/^[^:]:[^:]:[^:]: //" | while read LINE #tail -0f /var/log/syslog | sed "s/^[^:]:[^:]:[^:]: //" | while read LINE #tail -0f /var/log/auth.log | sed "s/^[^:]:[^:]:[^:]: //" | while read LINE #tail -0f /var/log/user.log | sed "s/^[^:]:[^:]:[^:]: //" | while read LINE do echo $LINE echo $LINE | festival --tts sleep 0.75 done {% endhighlight %}