TTS Events Explanation

The Microsoft.com Speech website Microsoft Speech SDK

SAPI 5.1

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 from ISpEventSource.

应用程序也能通过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 the SPEVENTENUM 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 using ISpVoice::Speak or ISpVoice::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 the Object 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 found here. The SAPI 5 Chinese phoneme set can be found here. The SAPI 5 Japanese phoneme set can be found here.

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 the Text-to-Speech Tutorial.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
08-10
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值