Important: Inside Macintosh: Sound is deprecated as of Mac OS X v10.5. For new audio development in Mac OS X, use Core Audio. See the Audio page in the ADC Reference Library.
Speech Version Information Records
By calling theGetSpeechInfo
function with thesoSynthType
selector, you can obtain a speech version information record, which provides information about the speech synthesizer currently being used. TheSpeechVersionInfo
data type defines a speech version information record.
TYPE SpeechVersionInfo = RECORD synthType: OSType; {general synthesizer type} synthSubType: OSType; {specific synthesizer type} synthManufacturer: OSType; {synthesizer creator ID} synthFlags: LongInt; {synthesizer feature flags} synthVersion: NumVersion; {synthesizer version number} END;
Field Description
synthType
- The general type of the synthesizer. For the current version of the Speech Manager, this field always contains the value
kTextToSpeechSynthType
, indicating that the synthesizer converts text into speech.synthSubType
- The specific type of the synthesizer. Currently, no specific types of synthesizer are defined. If you define a new type of synthesizer, you should register the four-character code for your type with Developer Technical Support.
synthManufacturer
- A unique identification of a synthesizer engine. If you develop synthesizers, then you should register a different four-character code for each synthesizer you develop with Developer Technical Support. The
creatorID
field of the voice specification record and thesynthCreator
field of a speech extension data record should each be set to the value stored in this field for the desired synthesizer.synthFlags
- A set of flags indicating which synthesizer features are activated. The following constants define the bits in this field whose meanings are defined for all synthesizers:
CONST kNoEndingProsody = 1; kNoSpeechInterrupt = 2; kPreflightThenPause = 4;
- The
kNoEndingProsody
flag bit is used to control whether or not the speech synthesizer automatically applies ending prosody, the speech tone and cadence that normally occur at the end of a statement. Under normal circumstances (for example, when the flag bit is not set), ending prosody is applied to the speech when the end of thetextBuf
data is reached. This default behavior can be disabled by setting thekNoEndingProsody
flag bit.- Some synthesizers do not speak until the
kNoEndingProsody
flag bit is reset, or they encounter a period in the text, ortextBuf
is full.- The
kNoSpeechInterrupt
flag bit is used to control the behavior ofSpeakBuffer
when called on a speech channel that is still busy. When the flag bit is not set,SpeakBuffer
behaves similarly toSpeakString
andSpeakText
. Any speech currently being produced on the specified speech channel is immediately interrupted, and then the new text buffer is spoken. When thekNoSpeechInterrupt
flag bit is set, however, a request to speak on a channel that is still busy processing a prior text buffer will result in an error. The new buffer is ignored and the errorsynthNotReady
is returned. If the prior text buffer has been fully processed, the new buffer is spoken normally. One way of achieving continuous speech without using callback procedures is to continually callSpeakBuffer
with thekNoSpeechInterrupt
flag bit set until the function returnsnoErr
. The function will then execute as soon as the first text buffer has been processed.- The
kPreflightThenPause
flag bit is used to minimize the latency experienced when the speech synthesizer is attempting to speak. Ordinarily, whenever a call toSpeakString
,SpeakText
, orSpeakBuffer
is made, the speech synthesizer must perform a certain amount of initial processing before speech output is heard. This startup latency can vary from a few milliseconds to several seconds depending upon which speech synthesizer is being used. Recognizing that larger startup delays might be detrimental to certain applications, a mechanism is provided to allow the synthesizer to perform any necessary computations at noncritical times. Once the computations have been completed, the speech is able to start instantly. When thekPreflightThenPause
flag bit is set, the speech synthesizer will process the input text as necessary to the point where it is ready to begin producing speech output. At this point, the synthesizer will enter a paused state and return to the caller. When the application is ready to produce speech, it should call theContinueSpeech
function to begin speaking.synthVersion
- The version number of the synthesizer.