We now describe five other AFL statements used to change speech-space variables. In the descriptions, point denotes any expression that evaluates to a point in the speech space, name is a variable that may contain a point in the speech space, and dimension is the name of a dimension in speech space.
Statement initialize-speech-space must be executed before any operations are performed on speech-space variables. It assigns default initial values to AFL variables *current-speech-state* and *global-speech-state*.
Statements
[displaymath5546]
and
[displaymath5547]
assign point to *current-speech-state* and *global-speech-state* respectively. Assignment statement local-set-state synchronizes implicitly with events on the speech component, i.e., execution of the assignment waits until all prior speech events have completed. This synchronization is necessary, since in general the host computer controlling the audio formatter executes instructions much faster than the speech synthesizer.
The two statements given above are conventional assignment statements, but they are only used to change the two AFL state variables.
Languages like [tex2html_wrap5554] and PostScript provide for the application of a global scaling to a rendering. The speech space provides similar functionality. The speech component uses a final filter with the scale factor for each dimension initially set to unity, and execution of
[displaymath5548]
changes the final scale factor for dimension dimension to value. As an example of its use, interrupting an audio rendering and executing
[displaymath5549]
and then resuming causes speech to be heard twice as fast. Since the final scaling is applied to the result of applying user-defined audio-rendering rules, the relative changes in state effected by rendering rules are preserved.