对象与接口的不同:
对象:能暴露任何数量的接口。
接口:多个不同的接口可以暴露同一个接口。
一个接口就是一组执行特定操作的方法。
GUID:
是一个128位的结构,然而,GUID在创建时必须保证不能出现两个相同的GUID。实际上使用时,用CoCreateInstance,可以不用创建GUID结构。
IspVoice接口的CLSID是CLSID_IspVoice
接口函数:
speechSDK::speak
既可以同步(在语音播放完成之后返回)也可以异步(语音播放开始就返回,语音播放在后台处理)
SPF_ASYNC:异步播放
SPF_DEFAULT:同步播放
此时,可以调用GetStatus方法来获取实时状态信息
在使用的时候我曾出现的问题:
刚开始出现的问题,在使用了异步表示时,也没有声音输出。
----->>>>主要是因为在speak后直接Release()释放了资源。应当在销毁的时候再释放IspVoice的资源。
IspLexion
作用:用于访问词典。
当一个对象被创建,它包含用户词典和所有应用词汇系统中注册。
下面的列显示了这类实现接口
SpLexion
SpCompressedLexicon
SpUncompressedLexcon
下面这个API是在使用用户词典的时候应用的。我会在后续的文章中具体介绍使用的方法。
AddPronunciation ------->>>> 增加单词的发音和词性用户词典
GetGeneration --------->>>> 获取生成标识符
GetGenerationChnage -------->>>> 得到一个单词列表已经改变了当前的和指定替代的词
GetWords -------- >>>> 所有词典中的单词列表
GetPronuncations -------->>>>> 发音和单词的词性
RemorePronunciation -------->>>> 删除用户词典的一句话