{ CAPS_STOP, .u.s = {"[:dv ap 100]" } },
        { RATE, .u.n = {"[:ra %d]", 7, 0, 9, 150, 25, NULL } },
        { PITCH, .u.n = {"[:dv ap %d]", 100, 0, 100, 0, 0, NULL } },
+       { INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
        { VOL, .u.n = {"[:dv gv %d]", 13, 0, 16, 0, 5, NULL } },
        { PUNCT, .u.n = {"[:pu %c]", 0, 0, 2, 0, 0, "nsa" } },
        { VOICE, .u.n = {"[:n%c]", 0, 0, 9, 0, 0, "phfdburwkv" } },
        __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute pitch_attribute =
        __ATTR(pitch, 0644, spk_var_show, spk_var_store);
+static struct kobj_attribute inflection_attribute =
+       __ATTR(inflection, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute punct_attribute =
        __ATTR(punct, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute rate_attribute =
        &caps_start_attribute.attr,
        &caps_stop_attribute.attr,
        &pitch_attribute.attr,
+       &inflection_attribute.attr,
        &punct_attribute.attr,
        &rate_attribute.attr,
        &voice_attribute.attr,
 
        { CAPS_STOP, .u.s = {"[:dv ap 100]" } },
        { RATE, .u.n = {"[:ra %d]", 9, 0, 18, 150, 25, NULL } },
        { PITCH, .u.n = {"[:dv ap %d]", 80, 0, 100, 20, 0, NULL } },
+       { INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
        { VOL, .u.n = {"[:vo se %d]", 5, 0, 9, 5, 10, NULL } },
        { PUNCT, .u.n = {"[:pu %c]", 0, 0, 2, 0, 0, "nsa" } },
        { VOICE, .u.n = {"[:n%c]", 0, 0, 9, 0, 0, "phfdburwkv" } },
        __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute pitch_attribute =
        __ATTR(pitch, 0644, spk_var_show, spk_var_store);
+static struct kobj_attribute inflection_attribute =
+       __ATTR(inflection, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute punct_attribute =
        __ATTR(punct, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute rate_attribute =
        &caps_start_attribute.attr,
        &caps_stop_attribute.attr,
        &pitch_attribute.attr,
+       &inflection_attribute.attr,
        &punct_attribute.attr,
        &rate_attribute.attr,
        &voice_attribute.attr,
 
        { CAPS_START, .u.s = {"[:dv ap 160] " } },
        { CAPS_STOP, .u.s = {"[:dv ap 100 ] " } },
        { RATE, .u.n = {"[:ra %d] ", 180, 75, 650, 0, 0, NULL } },
-       { PITCH, .u.n = {"[:dv ap %d] ", 122, 50, 350, 0, 0, NULL } },
+       { INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
        { VOL, .u.n = {"[:dv g5 %d] ", 86, 60, 86, 0, 0, NULL } },
        { PUNCT, .u.n = {"[:pu %c] ", 0, 0, 2, 0, 0, "nsa" } },
        { VOICE, .u.n = {"[:n%c] ", 0, 0, 9, 0, 0, "phfdburwkv" } },
        __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute pitch_attribute =
        __ATTR(pitch, 0644, spk_var_show, spk_var_store);
+static struct kobj_attribute inflection_attribute =
+       __ATTR(inflection, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute punct_attribute =
        __ATTR(punct, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute rate_attribute =
        &caps_start_attribute.attr,
        &caps_stop_attribute.attr,
        &pitch_attribute.attr,
+       &inflection_attribute.attr,
        &punct_attribute.attr,
        &rate_attribute.attr,
        &voice_attribute.attr,
 
        { PAUSE, .u.s = {"PAUSE\n"} },
        { RATE, .u.n = {"RATE %d\n", 8, 1, 16, 0, 0, NULL } },
        { PITCH, .u.n = {"PITCH %d\n", 8, 0, 16, 0, 0, NULL } },
+       { INFLECTION, .u.n = {"INFLECTION %d\n", 8, 0, 16, 0, 0, NULL } },
        { VOL, .u.n = {"VOL %d\n", 8, 0, 16, 0, 0, NULL } },
        { TONE, .u.n = {"TONE %d\n", 8, 0, 16, 0, 0, NULL } },
        { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
        __ATTR(caps_stop, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute pitch_attribute =
        __ATTR(pitch, 0644, spk_var_show, spk_var_store);
+static struct kobj_attribute inflection_attribute =
+       __ATTR(inflection, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute rate_attribute =
        __ATTR(rate, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute tone_attribute =
        &caps_start_attribute.attr,
        &caps_stop_attribute.attr,
        &pitch_attribute.attr,
+       &inflection_attribute.attr,
        &rate_attribute.attr,
        &tone_attribute.attr,
        &vol_attribute.attr,
 
        { PAUSE, .u.n = {"\x01P" } },
        { RATE, .u.n = {"\x01%ds", 2, 0, 9, 0, 0, NULL } },
        { PITCH, .u.n = {"\x01%dp", 5, 0, 9, 0, 0, NULL } },
+       { INFLECTION, .u.n = {"\x01%dr", 5, 0, 9, 0, 0, NULL } },
        { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
        { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },
        { PUNCT, .u.n = {"\x01%db", 0, 0, 2, 0, 0, NULL } },
        __ATTR(freq, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute pitch_attribute =
        __ATTR(pitch, 0644, spk_var_show, spk_var_store);
+static struct kobj_attribute inflection_attribute =
+       __ATTR(inflection, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute punct_attribute =
        __ATTR(punct, 0644, spk_var_show, spk_var_store);
 static struct kobj_attribute rate_attribute =
        &freq_attribute.attr,
 /*     &lang_attribute.attr, */
        &pitch_attribute.attr,
+       &inflection_attribute.attr,
        &punct_attribute.attr,
        &rate_attribute.attr,
        &tone_attribute.attr,
 
        SAY_CONTROL, SAY_WORD_CTL, NO_INTERRUPT, KEY_ECHO,
        SPELL_DELAY, PUNC_LEVEL, READING_PUNC,
        ATTRIB_BLEEP, BLEEPS,
-       RATE, PITCH, VOL, TONE, PUNCT, VOICE, FREQUENCY, LANG, DIRECT, PAUSE,
+       RATE, PITCH, INFLECTION, VOL, TONE, PUNCT, VOICE, FREQUENCY, LANG,
+       DIRECT, PAUSE,
        CAPS_START, CAPS_STOP, CHARTAB,
        MAXVARS
 };
 
 full_time
 jiffy_delta
 pitch
+inflection
 punct
 rate
 tone
 writable by root only, and some are writable by everyone.  Unless you
 know what you are doing, you should probably leave the ones that are
 writable by root only alone.  Most of the names are self explanatory.
-Vol for controlling volume, pitch for pitch, rate for controlling speaking
-rate, etc.  If you find one you aren't sure about, you can post a query
-on the Speakup list.
+Vol for controlling volume, pitch for pitch, inflection for pitch range, rate
+for controlling speaking rate, etc.  If you find one you aren't sure about, you
+can post a query on the Speakup list.
 
 6.  Changing Synthesizers
 
 
 Contact:       speakup@linux-speakup.org
 Description:   Gets or sets the pitch of the synthesizer. The range is 0-9.
 
+What:          /sys/accessibility/speakup/soft/inflection
+KernelVersion: 5.8
+Contact:       speakup@linux-speakup.org
+Description:   Gets or sets the inflection of the synthesizer, i.e. the pitch
+               range. The range is 0-9.
+
 What:          /sys/accessibility/speakup/soft/punct
 KernelVersion: 2.6
 Contact:       speakup@linux-speakup.org
 
        { "bell_pos", BELL_POS, VAR_NUM, &spk_bell_pos, NULL },
        { "rate", RATE, VAR_NUM, NULL, NULL },
        { "pitch", PITCH, VAR_NUM, NULL, NULL },
+       { "inflection", INFLECTION, VAR_NUM, NULL, NULL },
        { "vol", VOL, VAR_NUM, NULL, NULL },
        { "tone", TONE, VAR_NUM, NULL, NULL },
        { "punct", PUNCT, VAR_NUM, NULL, NULL   },