TTS Events Explanation
来源:互联网 发布:png软件图标 编辑:程序博客网 时间:2024/06/01 17:04
TTS Events Explanation
TTS事件说明
Events are structures that pass information from the TTS engine back to the application.
事件是把消息从TTS引擎返回到应用程序的结构。
When the audio data is output, SAPI fires corresponding events.
当音频数据是输出时,SAPI fire 相应的事件。
Applications react to audio output as it occurs.
当它发生时,应用程序对音频输出作出反应。
Examples of reactions include animating a face appropriately as viseme events are received, or highlighting text as it is spoken.
反应的例子包含当口型事件被接收时活泼的脸或者当说话时,高亮文本。
See the sample application, TTSApp, for an example of each.
Applications call ISpEventSource::SetInterest to inform SAPI about the types of events that they are interested in receiving.
应用程序调用ISpEventSource::SetInterest 来通知SAPI我们想接收的事件类型。
Applications can also call this through ISpVoice, because it inherits fromISpEventSource.
应用程序也能通过ISpVoice调用ISpEventSource::SetInterest ,因为ISpVoice是从ISpEventSource继承的。
Applications can then call ISpEventSource::GetEvents to retrieve fired events from SAPI.
应用程序然后调用ISpEventSource::GetEvents从SAPI检索fired事件。
The following is a set of event types generated by TTS engines (this is a subset of theSPEVENTENUM enumeration):
下面是由TTS引擎产生的事件类型集合。(这是SPEVENTENUM枚举的子集)
typedef enum SPEVENTENUM{ //--- TTS engine SPEI_START_INPUT_STREAM = 1, SPEI_END_INPUT_STREAM = 2, SPEI_VOICE_CHANGE = 3, // LPARAM_IS_TOKEN SPEI_TTS_BOOKMARK = 4, // LPARAM_IS_STRING SPEI_WORD_BOUNDARY = 5, SPEI_PHONEME = 6, SPEI_SENTENCE_BOUNDARY = 7, SPEI_VISEME = 8, SPEI_TTS_AUDIO_LEVEL = 9} SPEVENTENUM;
The SPEVENT structure contains varying information depending on which of these event types it represents.
SPEVENT结构包含了多种信息,取决于它代表哪种事件类型。
typedef struct SPEVENT{ WORD eEventId; WORD elParamType; ULONG ulStreamNum; ULONGLONG ullAudioStreamOffset; WPARAM wParam; LPARAM lParam;} SPEVENT;
You can analyze the various fields of the SPEVENT structure for the event types they correspond to.
你可以分析SPEVENT结构的各字段,为它们对应的事件类型。
For all event types, ulStreamNum corresponds to the stream number returned usingISpVoice::Speak orISpVoice::SpeakStream.
对于所有的事件类型,ulStreamNum对应流数目,由ISpVoice::Speak或ISpVoice::SpeakStream返回。
The SPEI_START_INPUT_STREAM event indicates that the output object has begun receiving output for a specific stream number.
SPEI_START_INPUT_STREAM事件表明输出对象已经开始接收特定流数目的输出。
The rest of the fields are not of interest to this event type.
剩下的字段对SPEI_START_INPUT_STREAM这一事件类型没有兴趣。
The SPEI_END_INPUT_STREAM event indicates that the output object has finished receiving output for a specific stream number.
SPEI_END_INPUT_STREAM 表明输出对象已经结束接收特地流数目的输出。
The rest of the fields are not of interest to this event type.
The SPEI_VOICE_CHANGE event indicates that the voice responsible for speaking the input text (or stream) has changed because of a <Voice> XML tag.
SPEI_VOICE_CHANGE 事件表明说输入文本或流的声音由于<Voice>XML标签已经改变。
It is fired at the beginning of each Speak call.
SPEI_VOICE_CHANGE fired在每次Speak方法调用的时候。
For more information on using object tokens, see theObject Tokens and Registry Settings white paper.
SPEVENT Field
Voice Change event
eEventId
SPEI_VOICE_CHANGE
elParamType
SPET_LPARAM_IS_TOKEN
wParam
lParam
Object token of the new voice.
The SPEI_TTS_BOOKMARK event indicates that the speak stream has reached a bookmark.
SPEI_TTS_BOOKMARK 事件表明说话流已经到达了书签。
Bookmarks can be inserted into the input text using the <Bookmark> XML tag.
书签可以使用<Bookmark>XML标签插入输入文本。
SPEVENT Field
Bookmark event
eEventId
SPEI_TTS_BOOKMARK
elParamType
SPET_LPARAM_IS_STRING
wParam
Value of the bookmark string when converted to a long (_wtol(...) can be used).
lParam
Null-terminated copy of the bookmark string.
The SPEI_WORD_BOUNDARY event indicates that it has reached the beginning of a word.
SPEI_WORD_BOUNDARY 表明一个新单词开始。
SPEVENT Field
Word Boundary event
eEventId
SPEI_WORD_BOUNDARY
elParamType
SPET_LPARAM_IS_UNKNOWN
wParam
Character offset at the beginning of the word being synthesized.
lParam
Character length of the word in the current input stream being synthesized.
The SPEI_SENTENCE_BOUNDARY event indicates that the speak stream has reached the beginning of a sentence.
SPEI_SENTENCE_BOUNDARY 表明说话流到达了一个新句子。
SPEVENT Field
Sentence Boundary event
eEventId
SPEI_SENTENCE_BOUNDARY
elParamType
SPET_LPARAM_IS_UNKNOWN
wParam
Character offset at the beginning of the sentence being synthesized.
lParam
Character length of the sentence in the current input stream being synthesized.
The SPEI_PHONEME event indicates that the speak stream has reached the phoneme.
SPEI_PHONEME事件表明说话流到达了音素、音位。
SPEVENT Field
Phoneme event
eEventId
SPEI_PHONEME
elParamType
SPET_LPARAM_IS_UNKNOWN
wParam
The high word is the duration, in milliseconds, of the current phoneme. The low word is the PhoneID of the next phoneme.
lParam
The low word is the PhoneID of the current phoneme. The high word is the SPVFEATURE value associated with the current phoneme.
The SAPI 5 American English phoneme set can be foundhere. The SAPI 5 Chinese phoneme set can be foundhere. The SAPI 5 Japanese phoneme set can be foundhere.
SPVFEATURE contains two flags: SPVFEATURE_STRESSED and SPVFEATURE_EMPHASIS.
SPVFEATURE_STRESSED means that the phoneme is stressed relative to the other phonemes of a word (stress is usually associated with the vowel of a stressed syllable重读音的元音). SPVFEATURE_EMPHASIS means that the phoneme is part of an emphasized word. That is, stress is a syllabic phenomenon within a word, and emphasis is a word-level phenomenon within a sentence.
The SPEI_VISEME event indicates that it has reached the viseme.
SPEVENT Field
Viseme event
eEventId
SPEI_VISEME
elParamType
SPET_LPARAM_IS_UNKNOWN
wParam
The high word is the duration, in milliseconds, of the current viseme. The low word is the code for the next viseme.
lParam
The low word is the code of the current viseme. The high word is the SPVFEATURE value associated with the current viseme (and phoneme).
See SPVISEMES for a listing of the SAPI 5 viseme set.
The SPEI_TTS_AUDIO_LEVEL event indicates the audio has reached the level of the synthesis at any given point.
SPEVENT Field
Audio Level event
eEventId
SPEI_TTS_AUDIO_LEVEL
elParamType
SPET_LPARAM_IS_UNDEFINED
wParam
TTS audio level (ULONG).
lParam
NULL
For an example of how to use TTS events in an application, see theText-to-Speech Tutorial.
- TTS Events Explanation
- TTS
- tts
- TTS
- TTS
- TTS
- EVENTS
- Events
- HSB explanation
- mtu explanation
- C Error Explanation
- explanation from the Sun
- Word type explanation
- MySpace worm explanation
- some important explanation
- Plain Explanation of "memory_order"
- C++ virtual function explanation
- Elasticsearch scoring detailed explanation
- Dynamics CRM 2011 编程系列(25):插件的依赖注入
- 每日一练
- php安装程序的版本选择
- 《Effective C++》条款03:两个成员函数如果只是常量性不同可以被重载
- Dynamics CRM 2011 编程系列(22):用插件调用Web Service
- TTS Events Explanation
- Dynamics CRM 2011 编程系列(23):用插件调用WCF
- Short URL implement
- 日期格式参考extjs api文档中的Date类型
- Android界面基本属性
- windows开机出现‘应用程序正常初始化(0xc0000044)失败’进不了系统
- 各国插座标准
- The listenersupports no services
- Dynamics CRM 2011 编程系列(30):使用ASP.NET Ajax技术的自定义页面