8 Voice Lock

See http://tvraman.github.io/emacspeak/blog/voice-lock-refreshed.html for a high-level overview of how Emacspeak Voice-Lock has evolved over the years.

  1. Emacspeak defines a number of voice overlays such as ‘voice-bolden’, and ‘voice-lighten’ that can be applied to a given voice to change what it sounds like.
  2. Voice overlays are defined in terms of Aural CSS (ACSS) to keep them independent of a specific TTS engine.
  3. For each such overlay there is a corresponding ‘<overlay-name>-settings’ variable that can be customized via custom.
  4. The numbers in ‘voice-bolden-settings as an example’:
SettingValue
familynil
average-pitch1
pitch-range6
stress6
richnessnil
punctuationnil

Unset values (‘nil’) show up as “unspecified” in the customize interface.

  1. Do not directly customize ‘voice-bolden’ and friends, instead customize the corresponding ‘voice-bolden-settings’, since that ensures that all voices that are defined in terms of ‘voice-bolden’ get correctly updated.
  2. Discovering what to customize:

Command ‘emacspeak-show-personality-at-point’ (bound by default to C-e M-v) will show you the value of properties personality and face at point. Describe-variable on these names should tell you what to customize; so as an example:

Put point on a comment line, and hit ‘C-e M-v’: you will hear

Personality emacspeak-voice-lock-comment-personality
Face font-lock-comment-delimiter-face

Describe-variable of ‘emacspeak-voice-lock-comment-personality’ gives:

emacspeak-voice-lock-comment-personality's value is acss-p0-s0-all

Documentation:
Personality used for font-lock-comment-face
This personality uses  voice-monotone whose  effect can be changed globally by customizing voice-monotone-settings.


8.1 How It All Works

Here is a brief explanation of the connection between ‘voice-bolden’ and its associated ‘voice-bolden-settings’.

  1. Voice settings are initially in ‘voice-bolden-settings’ which is a list of numbers.
  2. That list of numbers needs to be translated to appropriate device-specific codes to send to the TTS engine.
  3. You do not want to do this translation each time you speak something.
  4. So when ‘voice-bolden’ is defined, the definition happens in two steps:

8.2 What this gives

  1. The ability to customize the voice via custom by editing the list of numbers in ‘voice-bolden-settings’
  2. When that list is edited, ‘voice-bolden’ is arranged to be updated automatically.

The following additional commands from module See emacspeak-wizards, are useful when designing aural styles.

  1. emacspeak-wizards-generate-voice-sampler

    Generate a buffer containing text that demonstrates the effect of various aural settings.

  2. emacspeak-wizards-voice-sampler

    Applied specified aural style to text in current region.


This document was generated on August 4, 2026 using texi2any.