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

Re: rfc on voices tutorial [long]



(FYI, changing cc to the list, since I like such things to be
archived)


Responses inlined below:

>>>>> "Robert" == Robert D Crawford <rdc1x@xxxxxxxxxxx> writes:
    The ACSS settings are 
average-pitch pitch-range richness and stress 
The voice names are made up from these settings so
    acss-a1-p2-s3-r3 tells you what the settings are.

    

Things like voice-bolden and friends are all overlays and
designed to cascade.

    Robert> Now, I notice that there are overlays called "voice
    Robert> lock overlay.  Does this overlay only affect the

These were just defined as utility overlays since I couldn't come
up with a concrete name for them like bolden.

    Robert> noted dimension, and if this is the case, then it
    Robert> must be applied at the end of the process, right?

Since overlays  cascade, they can be applied in any order,

Of course if two overlays end up setting the same param the
latter one wins.

    Robert> This is the cascading part, right?
See above.

    Robert> 
    Robert> As a bit of an aside, the first overlay I came to in
    Robert> the customize buffer says that it sets dimension 0 to
    Robert> 8.  I thought dimension 0 was for the family.
probably a documentation bug -- dimension 0 is family.

    Robert> 
    >> 2) For each such overlay there is a corresponding
    >> <overlay-name>-settings variable that can be customized
    >> via custom.
    Robert> 
    Robert> So, we have voice-bolden-settings that contain the
    Robert> particular settings that will apply to a voice.  The
    Robert> variable voice-bolden is just a list of the
    Robert> particular voices that voice-bolden-settings gets
    Robert> applied to.  Therefore, on my system I have no voice
    Robert> settings applied to gnus level 1 citations, so I
    Robert> could use a cons in my .emacs file to add that to my
    Robert> voice-bolden list, right?

Not exactly. A robust way to do this, so that it also becomes
available through custom is to add the following line:

(voice-setup-map-face '<face-name> '<voice>)
where <voice> is something like voice-bolden or whatever else you
want.
This will define a corresponding personality to use for this
face, and set up the customization bits.

    Robert> 
    >> Unset values (nil) show up as "unspecified" in the
    >> customize interface.
    Robert> 
    Robert> I seemed to have a bit of a problem setting
You should be able to hit enter and set them Note that family
values are things like 'paul and tab will give you available
choices.

    Robert> unspecified variables.  Any time I tried to change
    Robert> the field I was told that it was read-only.  I have
    Robert> not had a chance to read the customize docs.  Is this
    Robert> something that is covered in there?
    Robert> 

Customize has a bizarre bug in that often hitting tab ends up
navigating to the character before the button rather than landing
on it. When that happens you get the above error.

    >>
> 4) 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.
    Robert> 
    Robert> Given my question a few paragraphs up, it seems that
    Robert> I might not understand the voice-bolden variable as I
    Robert> think.
    Robert> 
Let's try again.

0)    You have acss settings in voice-bolden-settings which is a list
      of numbers.

1)    That list of numbers needs to be translated to appropriate
      device-specific codes to send to the TTS engine.

2)    You do not want to do this translation *each* time you
      speak something.

3)    So when voice-bolden is defined, the definition happens in
      two steps:

A)    The list of settings is stored away in
voice-bolden-settings,
B)      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 keyed by the above symbol.

C)      Finally, voice-bolden is assigned the above symbol.

What this gives is:

0)   The ability to customize the voice via custom by editting
     the list of numbers in voice-bolden-settings

2)   When that list is editted, voice-bolden is arranged to be
     updated automatically

    >>
> 5) 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.
    Robert> 
    Robert> Wow!  How did I miss that one.  Seems as if I went
    Robert> from Texas to New York via Los Angeles.

It is generally useful to look at what is there in
emacspeak-wizards -- and every command there is documented in the
online info pages. What's more, looking at the code there will
teach you lots of useful emacs tricks no one will ever tell you
about.

    Robert> 

-- 
Best Regards,
--raman

      
Email:  raman@xxxxxxxxxxx
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@xxxxxxxxxxx
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 

-- 
Best Regards,
--raman

      
Email:  raman@xxxxxxxxxxx
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@xxxxxxxxxxx
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 

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


Emacspeak Files | Subscribe | Unsubscribe | Search