File espeak-ng-add-piper-support.patch of Package espeak-ng
From 84c977f828b162917e1c0732fcb64effb77439b0 Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
Date: Sun, 12 Jan 2025 19:14:31 +0000
Subject: [PATCH] Add espeak_TextToPhonemesWithTerminator
This variant of espeak_TextToPhonemes also returns the clause terminator
for the text.
---
src/include/espeak-ng/speak_lib.h | 6 ++++++
src/libespeak-ng/speech.c | 9 +++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/include/espeak-ng/speak_lib.h b/src/include/espeak-ng/speak_lib.h
index 9c0e2739bd..9ec4cafbed 100644
--- a/src/include/espeak-ng/speak_lib.h
+++ b/src/include/espeak-ng/speak_lib.h
@@ -541,6 +541,12 @@ ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode,
*/
+#ifdef __cplusplus
+extern "C"
+#endif
+ESPEAK_API const char *espeak_TextToPhonemesWithTerminator(const void **textptr, int textmode, int phonememode, int *terminator);
+/* Version of espeak_TextToPhonemes that also returns the clause terminator (e.g., CLAUSE_INTONATION_FULL_STOP) */
+
#ifdef __cplusplus
extern "C"
#endif
diff --git a/src/libespeak-ng/speech.c b/src/libespeak-ng/speech.c
index 9f90d10543..4c108a6073 100644
--- a/src/libespeak-ng/speech.c
+++ b/src/libespeak-ng/speech.c
@@ -850,7 +850,7 @@ ESPEAK_API void espeak_SetPhonemeTrace(int phonememode, FILE *stream)
f_trans = stderr;
}
-ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, int phonememode)
+ESPEAK_API const char* espeak_TextToPhonemesWithTerminator(const void** textptr, int textmode, int phonememode, int* terminator)
{
/* phoneme_mode
bit 1: 0=eSpeak's ascii phoneme names, 1= International Phonetic Alphabet (as UTF-8 characters).
@@ -864,12 +864,17 @@ ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode,
if (text_decoder_decode_string_multibyte(p_decoder, *textptr, translator->encoding, textmode) != ENS_OK)
return NULL;
- TranslateClause(translator, NULL, NULL);
+ TranslateClauseWithTerminator(translator, NULL, NULL, terminator);
*textptr = text_decoder_get_buffer(p_decoder);
return GetTranslatedPhonemeString(phonememode);
}
+ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, int phonememode)
+{
+ return espeak_TextToPhonemesWithTerminator(textptr, textmode, phonememode, NULL);
+}
+
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_Cancel(void)
{
#if USE_ASYNC