This is slightly reformatted from what was posted to the Emacspeak mailing list as separate message.
- Emacspeak defines a number of voice overlays such as
voice-lightenthat can be applied to a given voice to change what it sounds like.
- Voice overlays are defined in terms of Aural CSS (ACSS) to keep them independent of a specific TTS engine.
- For each such overlay there is a corresponding
<overlay-name>-settingsvariable that can be customized via custom.
- The numbers in
voice-bolden-settings as an example:
nil) show up as "unspecified" in the customize interface.
- Do not directly customize
voice-boldenand friends, instead customize the corresponding
voice-bolden-settings, since that ensures that all voices that are defined in terms of
voice-boldenget correctly updated.
- Discovering what to customize:
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. A recent update I implemented last weekend makes
this more useful, so make sure you do a CVS update; earlier this
command used to display the ACSS setting --- now it displays the
abstract name. Describe-variable on these names should tell you
what to customize; so as an example:
Put point on a comment line, and hit
you will hear
Personality emacspeak-voice-lock-comment-personality Face font-lock-comment-delimiter-face
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.
How It All Works
Here is a brief explanation of the connection between
voice-bolden and its associated
- Voice settings are initially in
voice-bolden-settingswhich is a list of numbers.
- That list of numbers needs to be translated to appropriate device-specific codes to send to the TTS engine.
- You do not want to do this translation each time you speak something.
- So when
voice-boldenis defined, the definition happens in two steps:
- The list of settings is stored away in
- A corresponding voice-name is generated ---
acss-a<n>-p<n>-r<n>-s<n>and the corresponding control codes to send to the device are stored away in a hash-table keyed by the above symbol.
voice-boldenis assigned the above symbol.
What this gives is:
- The ability to customize the voice via custom by editting
the list of numbers in
- When that list is editted,
voice-boldenis arranged to be updated automatically.
Other Useful Commands
In addition, commands
emacspeak-wizards-generate-voice-sampler can be
useful in generating a buffer that shows what the various ACSS
settings sound like.
emacspeak-wizards-voice-sampler can be used
to apply a specific voice to a region of text while experimenting
with the various settings.