OverView of SAPI :: Bordern 随笔

来源: BlogBus 原始链接: http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=118717 存档链接: https://web.archive.org/web/20040818214215id_/http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=118717


Bordern 随笔 边看、边做、边想、边写 <<<XML Schema For TTS | 首页 | 第一次看立体电影>>> OverView of SAPI 时间:2004-03-11 不知道blogbus什么时候才能恢复正常,我暂且把这些写在信箱里吧。 今天早上手机一开机,就收到mokaiyu发来的sm,问我起床了没有,估计他一会儿就到了吧,赶紧起床洗脸刷牙。果然等我刚刚坐定,他就到门口了。唠叨了好一会儿,开始商量去哪里吃饭。最后说定去江南春吃饭。 一起吃饭的还有mokaiyu的女朋友,他同学以及他同学的女朋友江南春的菜味道果然不错,就是贵了一点。吃饭前天色就阴沉沉的,果然吃完午饭外面就下起了朦朦细雨。初春的细雨虽然不大,冰冷冰冷。昨天的天气还是阳光灿烂,不要太好了,天有不测风云,今天就这样了。出了饭店,他们一对一把伞亲亲我我地走了,那一刻,觉得有点感慨^^ 回宿舍,上线碰到wintergrass,跟我要linzhe的mail地址。linzhe,大学本科的时候跟我一个窝的,自从毕业后,他去了汉城,给窝寄过一封mail,记不清我有没有回信了。所以,答应给wintergrass找找,没有想到回消息给他的时候,居然说“现在老板来了,一会儿给你回消息!”“我靠,这么胆小啊”我嘀咕道,转念一想,啊,他老板不就是我老板吗!岂不是又让老板发现我不在实验室了。想到这里,拔腿就往实验室跑去啊~到了实验室,看到wintergrass悠闲的在那里看新闻呢,原来是这个zt把自动回复功能打开了,我ft! SAPI for TTS 的核心API就是ISpVoice了,使用这个接口,应用程序可以根据实时的事件来合成语音,编辑合成语音的特性,改变合成语音的音色。实际上大多数应用只需要使用这个一个接口就可以完成基本的TTS需要了。应用程序通过建立一个COM对象来获取到对ISpVoice的接口方法。每个COM对象都是独立的实例,通过名字区别。所以,加入如果同时有两个COM对象,则这两个对象的工作是完全独立的,互相不会干扰。 一旦应用程序第一次获取到一个ISpVoice对象,这个对象就被初始化成默认的设置。这个默认的设置具体值是在系统控制面板里设置的。这也就意味着一个新建立的这样的对象就可以立即被使用来合成语音了。可以使用Speak或者SpeakStream来把任何Unicode编码的字符串合成语音输出了。这两个函数都可以以两种方式工作,一种是同步合成,一种是异步合成。简单的使用中默认的就是同步合成方式。 在异步合成过程中,应用程序可以通过两个方法获得当前合成语音流的各种状态。方法一采用周期性地调用GetStatus函数,另外一个方法初始化对象时,设置参数使得对象在合成过程中自动向应用程序发送实时地事件来向程序报告程序感兴趣的状态参数。为了方便应用程序响应用户的动作,对象提供了Pause和Resume这两个函数实现了流的控制。 前面已经提到,一旦ISpVoice对象建立后,就以一套默认的设置工作,那么在运行过程中我们还能对这些工作参数进行修改吗?of course ,you can !也有两个方法来实现。程序可以调用ISpVoice API函数来设置,也可以使用XML Schema For TTS 对输入的字符串进行标注。一般地,API函数使用于全局的设定,而XML标注一些特定范围的内容。 尽管对桌面应用而言,TTS输出并不严格指向目标硬件声卡,但是,直接地或者间接地,SAPI 支持输出到PC声卡、缓冲、或者某个特定的电话硬件。ISpVoice提供了音频输出控制函数来对输出进行设置。 下午四点就被liusp拉去打球,一直到七点才同意去吃饭。最近发现跟他打球没有办法提高自己的水平,唉。晚上早早地回去洗澡就去412睡觉了,以便把床让给mokaiyu。又回到原来的宿舍睡觉,感觉好亲切^^ bordern 发表于 2004-03-11 00:04 引用Trackback(0) | 编辑 评论 发表评论 最后更新 MCI的使用 VC中标注控件属性修改 孤单的暑假 离别的日子 参加同学婚宴 旧地重吃^_^ 首访独一处 再吃散伙饭 第一次吃小尾羊 不属于自己的散伙饭