home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Developer CD v1.2
/
amidev_cd_12.iso
/
inc&ad2.0
/
text_autodocs
/
narrator.doc
< prev
next >
Wrap
Text File
|
1992-09-01
|
13KB
|
436 lines
TABLE OF CONTENTS
narrator.device/AbortIO
narrator.device/OpenDevice
narrator.device/CMD_FLUSH
narrator.device/CMD_READ
narrator.device/CMD_RESET
narrator.device/CMD_START
narrator.device/CMD_STOP
narrator.device/CMD_WRITE
narrator.device/CloseDevice
narrator.device/AbortIO narrator.device/AbortIO
NAME
AbortIO - Abort an IO request
SYNOPSIS
AbortIO(IORequest)
A1
FUNCTION
Exec library call to abort a specified READ or WRITE request.
The IORequest may be in the queue or currently active. If
currently active, the request is immediately stopped and then
removed.
INPUTS
Pointer to the IORequest block to be aborted.
RESULTS
io_Error field in the IORequest block set to #IOERR_ABORTED.
SEE ALSO
narrator.device/CloseDevice narrator.device/CloseDevice
NAME
CloseDevice - terminates access to the narrator device
SYNOPSIS
CloseDevice(IORequest)
A1
FUNCTION
Close invalidates the IO_UNIT and IO_DEVICE fields in the
IORequest block, preventing subsequent IO until another
OpenDevice. CloseDevice also reduces the open count. If
the count goes to 0 and the expunge bit is set, the device
is expunged. If the open count goes to zero and the delayed
expunge bit is not set, CloseDevice sets the expunge bit.
INPUTS
A valid IORequest block with its io_Message structure, and
io_Device and io_Unit fields properly initialized. These
fields are initialized by OpenDevice.
RESULTS
CloseDevice invalidates the unit and device pointers in the
IORequest block.
SEE ALSO
narrator.device/CMD_FLUSH narrator.device/CMD_FLUSH
NAME
CMD_FLUSH - Aborts all inprogress and queued requests
SYNOPSIS
Standard device command.
FUNCTION
Aborts all inprogress and queued speech requests.
INPUTS
Valid IORequest block with the io_Command field set to CMD_FLUSH.
A valid IORequest block is one with its io_Message structure, and
io_Device and io_Unit fields properly initialized. The easiest
way to insure proper initialization is to make a copy of the
IORequest block after a successful OpenDevice call.
RESULTS
io_Error in IORequest block set to 0
SEE ALSO
Exec input/output documentation.
narrator.device/CMD_Read narrator.device/CMD_Read
NAME
CMD_READ - Query the narrator device for mouth shape or other
synchronization events.
SYNOPSIS
Standard device command.
FUNCTION
Currently, there are three events which the user can inquire
about from the narrator device. These are: mouth shape changes,
start of word, and start of syllable. Each read request returns
information about any or all of these events as determined by
the bits set in the sync field of the read IORequest block. In
the case of mouth shape changes, each shape returned is guaranteed
to be different from the previously returned shape to allow
updating to be done only when necessary. Each read request is
associated with a write request by information contained in the
IORequest block used to open the device. Since the first field
in the read IORequest block is a write IORequest structure, this
association is easily made by copying the write IORequest block
(after the OpenDevice call) into the voice field of the read
IORequest block. If there is no write in progress or in the
device input queue with the same pseudo unit number as the read
request, the read will be returned to the user with an error. This
is also how the user knows that the write request has finished and
that s/he should not issue any more reads. Note that in this case
the mouth shapes may not be different from previously returned values.
INPUTS
mouth_rb IORequest block with the voice field (a narrator_rb
structure) copied from the associated write request with the
following fields modified:
io_Message - Pointer to message port for read request
io_Command - CMD_READ
io_Error - Clear before issuing first read
width - 0
height - 0
RESULTS
As long as the speech is in progress, each read returns the
following information in the mouth_rb IORequest block.
If mouth shape changes are requested the following fields are
modified:
width - Contains mouth width value in arbitrary units
height - Contains mouth height value in arbitrary units
shape - Compressed form of mouth shapes (internal use only)
****** NEW FOR V37 NARRATOR
If word synchronization is requested:
sync - Bit NDB_WORDSYNC is set
If syllable synchronization is requested:
sync - Bit NDB_SYLSYNC is set
Note that any or all of the above fields can be set and it is
the user's responsibility to check for all possibilities.
SEE ALSO
CMD_WRITE
Exec input/output documentation.
narrator.device/CMD_RESET narrator.device/CMD_RESET
NAME
CMD_RESET - Reset the device to a known state
SYNOPSIS
Standard device command.
FUNCTION
Resets the device as though it has just be initialized.
Aborts all read/write requests whether active of enqueued.
Restarts device if it has been stopped.
INPUTS
Valid IORequest block with the io_Command field set to CMD_RESET.
A valid IORequest block is one with its io_Message structure, and
io_Device and io_Unit fields properly initialized. The easiest
way to insure proper initialization is to make a copy of the
IORequest block after a successful OpenDevice call.
RESULTS
SEE ALSO
Exec input/output documentation.
narrator.device/CMD_START narrator.device/CMD_START
NAME
CMD_START - Restarts the device after a CMD_STOP command
SYNOPSIS
Standard device command.
FUNCTION
CMD_START restarts the currently active speech (if any) and
allows queued requests to start.
INPUTS
Valid IORequest block with the io_Command field set to CMD_START
A valid IORequest block is one with its io_Message structure, and
io_Device and io_Unit fields properly initialized. The easiest
way to insure proper initialization is to make a copy of the
IORequest block after a successful OpenDevice call.
RESULTS
io_Error set to 0.
SEE ALSO
Exec input/output documentation.
narrator.device/CMD_STOP narrator.device/CMD_STOP
NAME
CMD_STOP - Stops the device.
SYNOPSIS
Standard device command.
FUNCTION
CMD_STOP halts the currently active speech (if any) and prevents
any queued requests from starting.
INPUTS
Valid IORequest block with the io_Command field set to CMD_STOP.
A valid IORequest block is one with its io_Message structure, and
io_Device and io_Unit fields properly initialized. The easiest
way to insure proper initialization is to make a copy of the
IORequest block after a successful OpenDevice call.
RESULTS
io_Error set to 0.
SEE ALSO
Exec input/output documentation.
narrator.device/CMD_WRITE narrator.device/CMD_WRITE
NAME
CMD_WRITE - Send speech request to the narrator device
SYNOPSIS
Standard device command.
FUNCTION
Sends a phonetic string to the narrator device to be spoken
and, optionally, is used to direct the narrator device to
return mouth shape changes, and word and syllable sync events
in response to read requests from the user. The phonetic string
consists of ASCII characters representing the individual phonemes.
Refer to the narrator device chapter of the libraries and devices
volume of the ROM Kernel Manual for detailed information.
INPUTS
User IORequest block (struct narrator_rb as defined in .h file).
The OpenDevice call will initialize the IORequest block to a
"standard male" voice. If you want to change any parms, do so
after the OpenDevice call and before the DoIO (or SendIO/WaitIO).
For a complete description of the narrator_rb structure, see the
narrator.h or .i include file. Note that the OpenDevice call does
not initialize all the fields needed by the narrator device. The
IORequest fields which must be set by the user before issuing the
write request are:
io_Command - Set to CMD_WRITE
io_Data - Pointer to phonetic string
io_Length - Length of phonetic string
ch_masks - Array of audio channel selection masks (see audio
device documentation for description of this field)
nm_masks - Number of audio channel selection masks
****** NEW FOR V37 NARRATOR
flags - The bit NDB_NEWIORB must be set in the flags field if
any of the new features of the V37 narrator are used
In addition to producing synthetic speech, the narrator device
also provides features for synchronizing the speech to animation
or other user defined events. There are three types of events
that the user can request. They are mouth shape changes, start of
new word, and start of new syllable. Mouth shape changes are
requested by setting the mouths field of the IORequest block to a
non-zero value. Word and syllable sync events are requested by
setting the NDB_WORDSYNC and/or NDB_SYLSYNC bits in the flags field
of the IORequest block. Note that word and syllable sync only work
in V37 and later versions of the narrator device.
RESULTS
The narrator device range checks and performs other validity
checks for all input parms. If any input is in error, the device
sets the io_Error field of the IORequest block to an appropriate
value (see include files for error codes). If everything is in
order, the narrator device will produce the speech and clear the
io_Error field. The io_Actual field is set to the length of the
input string that was actually processed. If the return code
indicates a phoneme error (ND_PhonErr), io_Actual is the NEGATIVE
of the position in the input string where the error occured.
SEE ALSO
Read command.
Audio device documentation.
Exec input/output documentation.
narrator.device/OpenDevice narrator.device/OpenDevice
NAME
OpenDevice - opens the narrator device.
SYNOPSIS
error = OpenDevice("narrator.device", unit, IORequest, flags);
D0 A0 D0 A1 D1
FUNCTION
The OpenDevice routine grants access to the narrator device.
OpenDevice checks the unit number, and if non-zero, returns an
error (ND_UnitErr). If this is the first time the driver has
been opened, OpenDevice will attempt to open the audio device
and allocate the driver's static buffers. If either of these
operations fail, an error is returned. See the .h and .i
include files for possible error return codes. Next, OpenDevice
(done for all opens, not just the first one) initializes various
fields in the user's IORequest block (see below). If users wish
to use non-default values for these parms, the values must be set
after the open is done. OpenDevice also assigns a pseudo unit
number to the IORB for use in synchronizing read and write requests.
See the read command for more details. Finally, OpenDevice stores
the device node pointer in the IORequest block and clears the
delayed expunge bit.
***** NEW FOR V37 NARRATOR *****
Several new fields in the IORequest block have been added for V37
narrator. These fields are initialized when the device is opened
if the NDB_NEWIORB bit is set in the flags field of the user's
IORequest block. Note that NDB_NEWIORB is set in the IORequest
block, NOT in the "flags" input parm to the OpenDevice call.
INPUTS
device - "narrator.device"
unit - 0
IORequest - Pointer to the user's IORequest block
flags - 0
RESULTS
The narrator device will initialize the IORequest block as follows
(assume IORB points to the IOrequest block):
IORB->rate = 150; /* Speaking rate in words/minute */
IORB->pitch = 110; /* Baseline pitch in Hertz */
IORB->mode = NATURALF0; /* Pitch (F0) mode */
IORB->sex = MALE; /* Sex of voice */
IORB->volume = 64 /* Volume, full on */
IORB->sampfreq = 22200 /* Audio sampling freq */
IORB->mouths = 0 /* Don't generate sync events */
and if the NDB_NEWIORB bit is set:
IORB->F0enthusiasm = 0 /* F0 excursion factor */
IORB->F0perturb = 32 /* F0 perturbation (in 32nds) */
IORB->F1adj = 0 /* F1 adjustment in ±5% steps */
IORB->F2adj = 0 /* F2 adjustment in ±5% steps */
IORB->F3adj = 0 /* F3 adjustment in ±5% steps */
IORB->A1adj = 0 /* A1 adjustment in decibels */
IORB->A2adj = 0 /* A2 adjustment in decibels */
IORB->A3adj = 0 /* A3 adjustment in decibels */
IORB->articulate = 100 /* Transition time multiplier */
IORB->centralize = 0 /* Degree of vowel centralization */
IORB->centphon = "" /* Pointer to central ASCII phon */
IORB->AVbias = 0 /* AV bias */
IORB->AFbias = 0 /* AF bias */
IORB->priority = 100 /* Priority while speaking */
SEE ALSO
The include files contain the complete IORequest block definition,
default settings, and error return codes.
Exec input/output documentation.