Discussion:
espeakup release coming soon
William Hubbs
2016-03-06 18:54:59 UTC
Permalink
Hey all,

sorry I haven't been around a lot, Gentoo and now a new job have been
taking a lot of my time, but I haven't forgotten about this project.

I want to do a new espeakup release, hopefully in the next few days, so,
I need to know if there are any patches that we need. Can folks take a
look at it and let me know if anything is missing?

Thanks,

William

https://github.com/williamh/espeakup
Jude DaShiell
2016-03-06 19:22:40 UTC
Permalink
Would it be possible to have espeakup not use a sound card directly but
go through pulseaudio when pulseaudio is installed? I'm asking since
the best pair of speakers I have is usb and espeakup cannot use them. I
can get vlc to use the usb speakers but not espeakup.
Date: Sun, 6 Mar 2016 13:54:59
Reply-To: Speakup is a screen review system for Linux.
Subject: espeakup release coming soon
Hey all,
sorry I haven't been around a lot, Gentoo and now a new job have been
taking a lot of my time, but I haven't forgotten about this project.
I want to do a new espeakup release, hopefully in the next few days, so,
I need to know if there are any patches that we need. Can folks take a
look at it and let me know if anything is missing?
Thanks,
William
https://github.com/williamh/espeakup
_______________________________________________
Speakup mailing list
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup
--
William Hubbs
2016-03-06 19:38:22 UTC
Permalink
Espeakup doesn't have any audio code in it; it uses espeak's audio
support. In order to do this, you should look at configuring espeak to
use pulseaudio.

Thanks,

William
Post by Jude DaShiell
Would it be possible to have espeakup not use a sound card directly but
go through pulseaudio when pulseaudio is installed? I'm asking since
the best pair of speakers I have is usb and espeakup cannot use them. I
can get vlc to use the usb speakers but not espeakup.
Date: Sun, 6 Mar 2016 13:54:59
Reply-To: Speakup is a screen review system for Linux.
Subject: espeakup release coming soon
Hey all,
sorry I haven't been around a lot, Gentoo and now a new job have been
taking a lot of my time, but I haven't forgotten about this project.
I want to do a new espeakup release, hopefully in the next few days, so,
I need to know if there are any patches that we need. Can folks take a
look at it and let me know if anything is missing?
Thanks,
William
https://github.com/williamh/espeakup
_______________________________________________
Speakup mailing list
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup
--
_______________________________________________
Speakup mailing list
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup
Samuel Thibault
2016-07-20 23:35:31 UTC
Permalink
Hello,

currently espeakup uses daemon() to do the daemonizing stuff.
Unfortunately, daemon() does things not very appropriately, and there
is notably a delay between the parent exit()ing and the child writing
the pid file. The attached patch reimplements it properly, espeakup then
notably plays much more nicely with systemd.

Samuel
Chris Brannon
2016-07-21 00:07:26 UTC
Permalink
Post by Samuel Thibault
currently espeakup uses daemon() to do the daemonizing stuff.
Unfortunately, daemon() does things not very appropriately, and there
is notably a delay between the parent exit()ing and the child writing
the pid file.
Why not just use the -d option when starting espeakup?
This causes it to stay in the foreground. No pid file is written, etc.
The long option name is --debug. I'd argue that that is a bit of a
misnomer, since all it really does is cause espeakup to stay in the
foreground. Maybe it should have been called --dontfork instead.
I thought systemd preferred non-forking daemons?
Anyway, -d is what I use to run espeakup under runit, and it has worked
well in practice for over a year.

-- Chris
Samuel Thibault
2016-07-21 07:37:27 UTC
Permalink
Post by Chris Brannon
Post by Samuel Thibault
currently espeakup uses daemon() to do the daemonizing stuff.
Unfortunately, daemon() does things not very appropriately, and there
is notably a delay between the parent exit()ing and the child writing
the pid file.
Why not just use the -d option when starting espeakup?
Because at some point we need to fix bugs, not walk away from them.

Samuel
Chris Brannon
2016-07-21 08:03:59 UTC
Permalink
Post by Samuel Thibault
Post by Chris Brannon
Why not just use the -d option when starting espeakup?
Because at some point we need to fix bugs, not walk away from them.
Ok, that's a good point.
Your patch looks reasonable to me.
It does not apply to the current master branch for espeakup.
I would be happy to do the work of merging it and sending a pull request
to WilliamH on github, acknowledging you as the source of the patch.
That's just busy work.
Anyway, let me know if you want me to do that or if you'd rather do the
busy work yourself.

-- Chris
Samuel Thibault
2016-07-21 08:13:21 UTC
Permalink
Post by Chris Brannon
Anyway, let me know if you want me to do that or if you'd rather do the
busy work yourself.
Please do :)

Samuel
Mark Peveto
2016-07-21 15:00:15 UTC
Permalink
Samuel,
I've got the patch saved in my home directory. I have the current version of espeakup installed, but not the current version of espeak. What, if
anything, do I need to do with the patch at this point? How do I run it? Would updating to the current espeak be advisable? I'm assuming so, but I
don't wanna just assume.

Everything happens after coffee!

Mark Peveto
Registered Linux user number 600552
Sent from sonar using alpine 2.20.13
Post by Samuel Thibault
Hello,
currently espeakup uses daemon() to do the daemonizing stuff.
Unfortunately, daemon() does things not very appropriately, and there
is notably a delay between the parent exit()ing and the child writing
the pid file. The attached patch reimplements it properly, espeakup then
notably plays much more nicely with systemd.
Samuel
Samuel Thibault
2016-07-21 15:07:32 UTC
Permalink
Hello,
What, if anything, do I need to do with the patch at this point?
Well, what do you want to do?
I you don't have any issue with espeakup startup, you don't need the
patch :)

Samuel
Mark Peveto
2016-07-21 16:27:06 UTC
Permalink
What i have an issue with is this. In trying to get console speech in manjaro based distros, the newest version of espeak won't work well with
espeakup. I'm wondering if the pach would help?

Everything happens after coffee!

Mark Peveto
Registered Linux user number 600552
Sent from sonar using alpine 2.20.13
Post by Samuel Thibault
Hello,
What, if anything, do I need to do with the patch at this point?
Well, what do you want to do?
I you don't have any issue with espeakup startup, you don't need the
patch :)
Samuel
_______________________________________________
Speakup mailing list
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup
Chris Brannon
2016-07-21 16:33:49 UTC
Permalink
Post by Mark Peveto
What i have an issue with is this. In trying to get console speech in
manjaro based distros, the newest version of espeak won't work well
with
espeakup. I'm wondering if the pach would help?
If you're talking about espeak-ng, no it won't. The problem is in their
audio code. I've found at least some of the issues, and I'm working
with them to get them fixed.

-- Chris
Samuel Thibault
2016-07-21 16:34:10 UTC
Permalink
Post by Mark Peveto
What i have an issue with is this. In trying to get console speech in manjaro based distros, the newest version of espeak won't work well with
espeakup. I'm wondering if the pach would help?
It can't help, it has nothing to do with espeak :)

Samuel
Samuel Thibault
2016-03-06 19:37:17 UTC
Permalink
Hello,
Post by William Hubbs
I want to do a new espeakup release, hopefully in the next few days, so,
I need to know if there are any patches that we need. Can folks take a
look at it and let me know if anything is missing?
Good idea to ask :)

We have a few patches in Debian:

- keystrokes uses interpret-as="characters" when the kernel reports just
one character. This allows to use espeak's internationalized spelling of
letters, instead of having to maintain spelling ourself in speakup.
- pidfile makes espeakup write the pidfile only after it is really
finished starting. We need this to properly report that the daemon
hasn't actually started when it failed to e.g. open voices.
- voice fixes using language names as espeakup parameter instead of
voice names, just like the espeak program does.

Samuel
William Hubbs
2016-03-06 22:02:49 UTC
Permalink
Hi,

do you know who wrote these patches? I would like to make sure I give
proper credit in the logs.

Thanks,

William
Post by Samuel Thibault
Hello,
Post by William Hubbs
I want to do a new espeakup release, hopefully in the next few days, so,
I need to know if there are any patches that we need. Can folks take a
look at it and let me know if anything is missing?
Good idea to ask :)
- keystrokes uses interpret-as="characters" when the kernel reports just
one character. This allows to use espeak's internationalized spelling of
letters, instead of having to maintain spelling ourself in speakup.
- pidfile makes espeakup write the pidfile only after it is really
finished starting. We need this to properly report that the daemon
hasn't actually started when it failed to e.g. open voices.
- voice fixes using language names as espeakup parameter instead of
voice names, just like the espeak program does.
Samuel
Fix spelling keystrokes and char-by-char echo.
--- espeakup-0.71.orig/synth.c
+++ espeakup-0.71/synth.c
@@ -121,7 +121,29 @@
{
espeak_ERROR rc;
- rc = espeak_Synth(s->buf, s->len + 1, 0, POS_CHARACTER, 0, 0, NULL,
- NULL);
+ if (s->len == 1)
+ {
+ char *buf;
+ int n;
+ n = asprintf(&buf, "<say-as interpret-as=\"characters\">%c</say-as>", s->buf[0]);
+ if (n == -1)
+ {
+ /* D'oh. Not much to do on allocation failure.
+ * Perhaps espeak will happen to say the character */
+ rc = espeak_Synth(s->buf, s->len + 1, 0, POS_CHARACTER, 0, 0, NULL,
+ NULL);
+ }
+ else
+ {
+ rc = espeak_Synth(buf, n + 1, 0, POS_CHARACTER, 0, espeakSSML, NULL,
+ NULL);
+ free(buf);
+ }
+ }
+ else
+ {
+ rc = espeak_Synth(s->buf, s->len + 1, 0, POS_CHARACTER, 0, 0, NULL,
+ NULL);
+ }
return rc;
}
Create pidfile after espeakup is really ready.
--- espeakup-0.71.orig/espeakup.c
+++ espeakup-0.71/espeakup.c
@@ -118,12 +118,6 @@
if (!debug) {
/* become a daemon */
daemon(0, 1);
-
- /* write our pid file. */
- if (create_pid_file() < 0) {
- perror("Unable to create pid file");
- return 2;
- }
}
/* initialize espeak */
@@ -147,6 +141,14 @@
return 4;
}
+ if (!debug) {
+ /* We are now ready, write our pid file. */
+ if (create_pid_file() < 0) {
+ perror("Unable to create pid file");
+ return 2;
+ }
+ }
+
/* run the main loop */
main_loop(&s);
--- a/synth.c
+++ b/synth.c
@@ -91,6 +91,13 @@ espeak_ERROR set_voice(struct synth_t *
espeak_ERROR rc;
rc = espeak_SetVoiceByName(voice);
+ if (rc != EE_OK)
+ {
+ espeak_VOICE voice_select;
+ memset(&voice_select, 0, sizeof(voice_select));
+ voice_select.languages = voice;
+ rc = espeak_SetVoiceByProperties(&voice_select);
+ }
if (rc == EE_OK)
strcpy(s->voice, voice);
return rc;
_______________________________________________
Speakup mailing list
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup
Samuel Thibault
2016-03-07 16:49:33 UTC
Permalink
Post by William Hubbs
do you know who wrote these patches? I would like to make sure I give
proper credit in the logs.
I did for all of them :)

Samuel
William Hubbs
2016-07-25 16:51:24 UTC
Permalink
Hi all,

this is just a quick update to let you know that I have encorporated all
of the patches I have into espeakup and the release will happen later
today.

Thanks,

William

Loading...