[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

rfc on voices tutorial [long]

Since it seems to have come up several times in the past, and since the
answer is usually not very newbie friendly, I have written a tutorial on
how to change voices in emacspeak.  I would like comments on accuracy,
content, style, etc.

I was going to post this to the www, but I think it would be easier to
implement changes and additions if I send it to the list.

After changes and corrections are made, I will post it to my web space
so that when the question comes up, it will be easy to point someone in
the right direction.

Also, I was not able to figure out how to change the default voice used
i.e. Harry vs. Paul.  I tried:

(setq outloud-default-voice-string "`v2")

in my .emacs file.  I also tried to eval it in the scratch buffer.  I
have tried 'Harry instead of v2 as well.  Where am I going wrong?  I did
not see anywhere this setting can be changed in the customize, and could
find no answers in the archive.

Thanks for your time in these matters,


/* -- begin tutorial -- */

How to configure Via Voice voices in emacspeak

Robert D.Crawford
Created on 02.17.2006



This document is an answer to a question that has cropped up on the
emacspeak list in the past, and I am sure it will come up again. This
document will guide the reader through the changing of a font voice in

When I installed Via Voice support under emacspeak, I found some voices
to be a little hard to understand. In looking for documentation I found
that there really was none. Through some trial-and-error, some searching
of the emacspeak list archive, and some reading of the source code, I
have figured out enough to make the short tutorial.

Feel free to send any additions or corrections to the address above.

What this document assumes

I assume that you are somewhat familiar with emacs. If you do not
understand the C-x keystroke or the M-x command-name conventions, you
will be able to use this document, but you will have to do the things I
say with no understanding of why.

I also assume that you are using Via Voice. I assume that the same
things can be done with other tts engines, but I have no experience with
them. I only have experience with one other tts engine, flite. Flite is
a free tts, but it does not support multiple voices.

Also, it is beyond the scope of this document to explain how to install
emacs, emacspeak, via voice, or any other software involved in getting
your computer up and running with a spoken interface. Those things are
explained quite well elsewhere.

One final note... You might want to read this document all the way
through once before doing anything. Not that you will not be able to
back out of any changes that I mention, but it might make things easier
for all parties involved.

Changing a voice personality

Group personalities vs. Individual voice personalities

For lack of a better way to explain this, I refer to the way font voices
are handled as group and individual voices.

As one might assume, group personalities are composed of individual
personalities. By arranging things in this way, it is unnecessary to
adjust individual voices. All one has to do is to change one setting
that will affect many individual voice settings.

This is not to say that you cannot adjust individual voices. It is quite
possible to do so, it might just not be the preferred way to do things.

Finding out where the voice personality is defined

Using myself as an example, I will show you how to change the settings
for personality groups.  When I installed Via Voice, the personality
used for unvisited URLs was very low. Think James Earl Jones... only
with more bass. I found it very distracting to read through a document
where the voice would go suddenly from normal speech to this low bassy

The first thing I did was to find out how the voice was defined. Under
Customize, invoked via M-x emacspeak-customize, There is an item with
the label:

Voice Fonts group

Under this group, there are many settings. The one I wanted was:

Emacspeak W3m Anchor Personality 

So I adjusted this setting (more on the setting later).

With more use, I found that there are too many voices to change
individually. There had to be a better way That was when I discovered
group settings

There are seven main group distinctions. They are

   bolden and animate

There are a few more such as indentation and punctuation settings, but I
think they affect things less for the average user.

In addition to the above settings, for most there are also medium and
extra groups. For example: bolden, medium bolden, and extra bolden.

To find in what group the personality you want to change is, you have to
do a bit of searching. I knew that what I wanted was a bold face, and
was in w3m, so I ran these commands:

M-x apropos RETURN

and then, at the prompt, I entered


The resulting output can be searched for bold or w3m via C-s for
incremental search.

I did assume, however, that the setting must be in bolden, as that just
made sense. Knowing this, I instead ran the apropos command and searched
for bolden.

The output from the apropos command looks like this:

Variable: (not documented)
Plist: emacspeak-buffer-menu-buffer-face emacspeak-info-title-1-face
emacspeak-info-title-2-face emacspeak-info-title-3-face
emacspeak-info-title-4-face emacspeak-widget-button-personality
emacspeak-w3m-anchor-personality emacspeak-w3m-bold-personality



Now that I had confirmed that w3m's bold and anchor personalities were
defined as a part of the list voice-bolden, I was ready to change the
voice more to my liking.

Steps to change the group voice personality

If you are not familiar with the emacs customize facility, I suggest
that you get that way.  Customize is an incredibly powerful interface to
all things emacs. Most of the changes that you would ever want to make
can be accessed from here.

As a shortcut to the emacspeak area of customization, enter the

M-x emacspeak-customize

then do an incremental search via C-s for voice. You should come to a
line that reads:

Voice Fonts group: Go to Group 

Now, go to the group and do a search for bolden. This should bring you
to a line that reads:

Voice Bolden Settings: Show

Move point to show and select it with return. If you go down,
line-by-line, you will see that the following has been exposed:

Family: Value Menu Unspecified
Average Pitch: Value Menu Number: 4
Pitch Range: Value Menu Number: 5
Stress: Value Menu Number: 1
Richness: Value Menu Unspecified
Punctuation Mode : Value Menu Unspecified
   State: this option is unchanged from its standard setting.

Do not pay attention to the numbers at the end of the lines. These are
my settings and will not likely be the same.

Now, this particular group is good to use, as the voice for buttons is
also a part of the bolden group. Go to the line that reads

Average Pitch: Value Menu Number: 

and go to the end of the line, usually done with C-e C-e. If you move
one space forward, then you will hear the number this is set to. Hit C-d
to delete the number and change it to something else.  I believe any
number in the range of 0 to 8 inclusive will work.

After changing the setting move down to the line that reads:

State: this option is unchanged from its standard setting.

and hit C-a to go to the beginning of the line. Then hit TAB to go to
the State button. The voice that you hear is the voice that bolden is
currently set to. Hit RETURN and at the prompt, enter set. Then, hit C-a
again and TAB to go to the State button. Did you notice the change in
the voice?

The only way to adjust these voices is buy trial-and-error. Make
adjustments and figure out what the various fields do. Adjust these to
your liking. After you are satisfied, hit M-< (that is Meta and
less-than) to go to the top of the page. From there, hit TAB until the
voice tells you Save for future sessions Select this option with the
RETURN key and you are finished.

Note that some applications, such as w3m must be restarted for these
changes to take effect.

I would advise setting the number to something at the far ends of the
range first. It is good to know what the particular setting does... how
it affects the voice.

Steps for changing individual voice personalities

So, you are happy with the group setting for bolden but you want one
voice in the group changed.  Not a problem. If you scroll further into
the voice customization area, you will see many individual voice
settings. One such setting is:

Emacspeak Info Title 1 Face: Hide Value Menu : 

This is another good one to make adjustments to. If you open an info
file in a seccond buffer, you can switch back and forth between them and
hear your changes.

Notice that there is a string at the end of the line that reads:


Here is the breakdown:

   acss - this stands for aural cascading style sheet
   a4 - this is the average pitch
   p5 - this is the pitch range
   s1 - this is the stress

Change these settings just like before:

 1. Move point to the end of the line. This will put point just after
    the colon, and before the text field.

 2. move point forward until it is over the number you wish to change

 3. delete the old value you wish to change and enter a new value

 4. go to the line at the bottom with the State button

 5. C-a and TAB to get to the beginning of the line and then to the
    State button

 6. Hit RETURN and enter the option set

 7. Switch to the info window, if one is open, or open one. Go to a node
    and read the first line of the node.

 8. Switch back to the Customize buffer and, if you are satisfied with
    the setting, go to the top of the buffer and select the button for
    Save for future sessions


/* -- end tutorial -- */

Robert D. Crawford                                      rdc1x@comcast.net

You will engage in a profitable business activity.

To unsubscribe from the emacspeak list or change your address on the
emacspeak list send mail to "emacspeak-request@cs.vassar.edu" with a
subject of "unsubscribe" or "help"

Emacspeak Files | Subscribe | Unsubscribe | Search