Pass \n to espeak

Samuel Thibault samuel.thibault at ens-lyon.org
Sat Sep 15 16:16:49 EDT 2012


Hello,

I have noticed that with espeakup the speech tends to avoid any kind
of pause between lines, even if the line ends with a comma. Worse, the
prosody ends the phrase at the end of line, even if there is no period.
This is simply because espeakup currently "eats" \n and does not pass
them to espeak, and instead use them as speech separators.  I have
obtained way better result by passing '\n' to espeak, as attached patch
does (but I don't seem to be able to push it to
git at github.com:williamh/espeakup.git

Samuel

commit b84dd1d8addefd550e170c5c7b521cf9c7924597
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date:   Sat Sep 15 22:10:14 2012 +0200

    Also pass \n to espeak, for proper pause etc.
    
    Signed-off-by: Samuel Thibault <samuel.thibault at ens-lyon.org>

diff --git a/softsynth.c b/softsynth.c
index 9c5af80..e6be4a0 100644
--- a/softsynth.c
+++ b/softsynth.c
@@ -167,7 +167,7 @@ static void process_buffer(struct synth_t *s, char *buf, ssize_t length)
 	start = 0;
 	end = 0;
 	while (start < length) {
-		while ((buf[end] < 0 || buf[end] >= ' ') && end < length)
+		while ((buf[end] < 0 || buf[end] >= ' ' || buf[end] == '\n') && end < length)
 			end++;
 		if (end != start) {
 			txtLen = end - start;



More information about the Speakup mailing list