https://github.com/linux-speakup/espeakup/pull/50

commit 078010fc609df08b1a837c26c7db72f71a450660
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Mon Aug 15 23:41:52 2022 +0200

    set_punctuation: Fix punctuation levels values
    
    They do not actually follow the espeak values (and have no reason to,
    anyway).

diff --git a/src/espeak.c b/src/espeak.c
index 135c6b5..b3e96a5 100644
--- a/src/espeak.c
+++ b/src/espeak.c
@@ -108,12 +108,31 @@ static espeak_ERROR set_punctuation(struct synth_t *s, int punct,
                                     enum adjust_t adj)
 {
 	espeak_ERROR rc;
+	espeak_PUNCT_TYPE espeak_punct;
 
 	if (adj == ADJ_DEC)
 		punct = -punct;
 	if (adj != ADJ_SET)
 		punct += s->punct;
-	rc = espeak_SetParameter(espeakPUNCTUATION, punct, 0);
+
+	switch (punct) {
+		case 0:
+			espeak_punct = espeakPUNCT_NONE;
+			break;
+		case 1:
+			espeak_punct = espeakPUNCT_SOME;
+			break;
+		case 2:
+			/* XXX: approximation */
+			espeak_punct = espeakPUNCT_SOME;
+			break;
+		case 3:
+		default:
+			espeak_punct = espeakPUNCT_ALL;
+			break;
+	}
+
+	rc = espeak_SetParameter(espeakPUNCTUATION, espeak_punct, 0);
 	if (rc == EE_OK)
 		s->punct = punct;
 	return rc;
