diff --git a/src/calibre/utils/tts/piper.cpp b/src/calibre/utils/tts/piper.cpp index 75fb98bd27..c5851b7343 100644 --- a/src/calibre/utils/tts/piper.cpp +++ b/src/calibre/utils/tts/piper.cpp @@ -57,6 +57,7 @@ static float current_length_scale = 1; static float current_noise_scale = 1; static float current_noise_w = 1; static float current_sentence_delay = 0; +static bool current_normalize_volume = true; std::unique_ptr session; std::queue> phoneme_id_queue; std::vector chunk_samples; @@ -231,6 +232,7 @@ set_voice(PyObject *self, PyObject *args) { G(noise_scale, current_noise_scale, (float)PyFloat_AsDouble); G(noise_w, current_noise_w, (float)PyFloat_AsDouble); G(sentence_delay, current_sentence_delay, (float)PyFloat_AsDouble); + G(normalize_volume, current_normalize_volume, PyObject_IsTrue); #undef G PyObject *map = PyObject_GetAttrString(cfg, "phoneme_id_map"); diff --git a/src/calibre/utils/tts/piper.py b/src/calibre/utils/tts/piper.py index 74291238c8..26d1fd2276 100644 --- a/src/calibre/utils/tts/piper.py +++ b/src/calibre/utils/tts/piper.py @@ -28,6 +28,7 @@ class VoiceConfig(NamedTuple): noise_w: float num_speakers: int sentence_delay: float = 0 + normalize_volume: bool = False def translate_voice_config(x: Any) -> VoiceConfig: