Re: [css3-speech] voice-volume

On 11 May 2011, at 04:23, fantasai wrote:
> I think 'linear' is somewhat misleading, since the normal
> 0-100 scale /could/ be linear. (I think 'absolute' would be a better  
> keyword
> because 'absolute 0' is absolutely silent, but I'm open to  
> suggestions.)


The 'relative' keyword is used somewhere else, with a totally  
different meaning (e.g. the syntax "+5" can denote an absolute value,  
but it may also express a relative change based on another; usually- 
inherited; value).

I can't think of anything better than "linear".
"force-linear" maybe? (although it feels far too verbose, I'd rather  
use a single keyword)

> x-soft
>    The minimum audible level. Equivalent to '0'.
> soft
>    Equivalent to '25'.
> medium
>    The listener's preferred volume level. Equivalent to '50'.
> loud
>    Equivalent to '75'.
> x-loud
>    The maximum tolerable level. Equivalent to '100'.

'x-soft' must correspond to 'silent' when expressed on the "linear"  
scale, so your suggestion doesn't work. To be compatible with SSML, we  
need to allow the 'linear' keyword with named values as well (I must  
update the draft, actually).

So, 'medium' doesn't necessarily mean "preferred" => it always stands  
for '50', but when the 'linear' keyword is used it may correspond to a  
numerical value exactly halfway between silence (0) and full volume  
(100) on a linear amplitude scale (which may be louder or softer than  
the user's preferred volume level).

The way I see it, the 5 enumerated values are "shortcuts" to the 5  
defined points on the numerical scale, so I prefer to define the  
actual meaning of the values (which depends on the 'linear' keyword)  
in the <number> section only.

> <number>
>    Any number between '0' and '100' inclusive, representing  
> monotonically
>    non-decreasing volume levels with the levels '0', '25', '50',  
> '75' and
>    '100' anchored by the volume levels defined for their respective  
> keywords.
>    Note that the resulting scale need not be linear.

See my remark above. I suggest swapping the level of indirection  
(enumerated named values are simply shortcuts to well-defined points  
on the numerical scale). As a result, the <number> doesn't need to  
reference named values, it works the other way around.
Note that the initial 'voice-volume' value is 'medium', which means  
"user preferred value" (otherwise it would be 'medium linear' or  
'linear medium' ;) ).

> <percentage>
>    Percentage values are calculated relative to the inherited value,  
> and
>    are then clipped to the range '0' through '100'.

Yes, percentages manipulate the inherited numerical value, regardless  
of whether the 'linear' keyword was used.

> linear
>    When present, the 'linear' keyword indicates that the <number>  
> represents
>    a value on the linear volume scale between 'silent' and 'x-loud'.

That's not true, it is still the range 'x-soft' to 'x-loud', but 'x- 
soft' now means "silent" :)
(as per my other remarks above)

I'm about to commit prose improvements and fixes to clarify this issue.

> CSS2 has some good recommendations and examples after the value  
> definitions.
> I suggest copying those into the spec and modifying as necessary  
> instead of
> jamming a long note into one of the definitions.

The CSS 2 'font-size' property is expressed very differently, with  
enumerated named values not individually expanded:

http://www.w3.org/TR/CSS2/fonts.html#propdef-font-size

This contrasts with the Aural appendix:

http://www.w3.org/TR/CSS21/aural.html#propdef-volume

Could you please point to a CSS 2 property definition that exemplifies  
good editorial practice? Thanks.

> Do add '50' to the list of values the listener should be able to  
> set. :)

Right, we can be more explicit here too.

> Also you should use
>  [<number> && linear?]
> instead of
>  [<number> linear?]
> since that allows the keyword and the number to swap places, which  
> is customary
> in CSS syntax where not ambiguous:
>  voice-volume: 20 linear;
>  voice-volume: linear 20;

Ok.

The "relative" keyword is mandatory for pitch values expressed in Hz  
or semitone units. Would you advice to break down <relative-change>  
into separate fields, and to allow the keyword on either left or right  
of the actual numerical value ?

http://dev.w3.org/csswg/css3-speech/#voice-pitch

> For cues, do we really need 'silent'? Why wouldn't the author just  
> remove the
> cue, replacing with a rest if necessary?

User stylesheets must be able to silence audio cues with "!important"  
rules. I agree that the use-case is limited (one would normally  
specify "none" to completely remove a cue), but we need to be  
consistent with voice volume.

Thanks ! :)
Dan

Received on Wednesday, 11 May 2011 07:06:38 UTC