?? overview of sapi bordern 隨筆.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>OverView of SAPI :: Bordern 隨筆</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.blogbus.com/blogbus/blog/rdf.php?blogid=8946" >
<BASE HREF="http://www.blogbus.com/blogbus/blog/">
<STYLE TYPE="TEXT/CSS">
A{
color:#4A664D;
text-decoration:none;
}
SELECT {
BACKGROUND-COLOR: #ffffff;
COLOR: #000000;
FONT-FAMILY: MS Shell Dlg,Tahoma, sans-serif;
FONT-SIZE: 9pt ;
border: 0px #CCCCCC double;
}
INPUT {
color: #333333;
background-color: #FFFFFF;
border: 1px #CCCCCC double;
FONT-FAMILY: MS Shell Dlg,Tahoma, sans-serif;
FONT-SIZE: 9pt;
}
TEXTAREA {
BACKGROUND-COLOR: #ffffff;
COLOR: #000000;
FONT-FAMILY: MS Shell Dlg,Tahoma, sans-serif;
FONT-SIZE: 9pt ;
border: 1px #CCCCCC double;
overflow: auto;
}
OPTION {
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #F3F3F3;
COLOR: #51485f;
}
FORM {
FONT-FAMILY: MS Shell Dlg,tahoma;
font-style: normal;
line-height: normal;
font-weight: normal;
}
body{
}
td,body{
font-size:9pt;
color:#666666;
font-family: Verdana,Helvetica,Arial;
}
.calendar{
background-color:#A0A0A0;
}
.week{
font-size:9px;
background-color: #EFEFEF;
}
.day{
background-color: #FFF;
}
.today{
font-size:9px;
background-color:#CCFF99
}
.time{
font-size:10px;
color: #990033;
}
.diaryTitleBg{
vertical-align: top;
padding:3px;
border:dotted 1px #DDDDDD;
color:#000000;
font-weight:bold;
}
.diaryTime{
font-weight:normal;
}
.diaryBody{
padding:4px;
border-right:dotted 1px #DDDDDD;
border-left:dotted 1px #DDDDDD;
}
.postBy{
padding:3px;
border:dotted 1px #DDDDDD;
}
.blogname{
width:750px;
color:#FFFFFF;
text-align:left;
font-weight:bold;
font-size:20px;
}
.blogdescr{
width:750px;
color:#FFFFFF;
font-size:12px;
text-align:left;
}
.bar{
padding:1px;
border:dotted 1px #006666;
background-color:#339900;
color:#FFF;
/* font-weight:bold; */
}
.barBody{
padding:3px;
border-left:dotted 1px #006666;
border-right:dotted 1px #006666;
border-bottom:dotted 1px #006666;
}
.nav{
border:solid 1px #DDDDDD;
text-align:left;
width:750px;
}
.cmtBody{
padding:3px;
border:solid 1px #DDDDDD;
}
.recmtBody{
padding:3px;
border:solid 1px #DDDDDD;
background-color:#EFEFEF;
}
.cmtPost{
padding:2px;
border-left:solid 1px #DDDDDD;
border-right:solid 1px #DDDDDD;
border-bottom:solid 1px #DDDDDD;
}
.calendar_h{
font-weight:bold;
background-color:#339900;
color:#FFFFFF;
}
.c_a{
color:#0099CC;
font-weight:bold;
font-style: italic;
}
.quote{
width:80%;
background:#EFEFEF;
color:#000000;
}
</style>
<script language="javascript" type="text/javascript">
function OpenComments (c) {
window.open(c,
'comments',
'width=480,height=480,scrollbars=yes,status=yes');
}
function OpenTrackback (c) {
window.open(c,
'trackback',
'width=480,height=480,scrollbars=yes,status=yes');
}
</script>
</head>
<body style='margin-top:12px'>
<center>
<table border='0' bgcolor='#006666' cellspacing='1' cellpadding='4' style='width:750px;height:100px'>
<tr>
<td style='background:url(./images/spring_top2.jpg)' valign='top'>
<div><a href='http://bordern.blogbus.com' class='blogname'>
Bordern 隨筆</a>
</div>
<div class='blogdescr'>
邊看、邊做、邊想、邊寫
</div>
</td>
</tr>
</table>
<br>
<div class='nav'>
<a href='diary.php?diaryid=118711'><<<XML Schema For TTS</a> | <a href='http://bordern.blogbus.com'>首頁</a> | <a href='diary.php?diaryid=118723'>第一次看立體電影>>></a>
</div>
<br>
<div style='text-align:left;WIDTH:750px;'><!-- name='mainFrame' -->
<div style='width:530px;padding-left:0;FLOAT:left;'>
<div class='diaryTitleBg'>
OverView of SAPI
</div>
<div class='diaryTime'>
時間:2004-03-11
</div>
<div class='diaryBody'>
<STRONG><FONT color=#3366cc>
<DIV><FONT size=2> 不知道blogbus什么時候才能恢復正常,我暫且把這些寫在信箱里吧。</FONT></DIV>
<DIV><FONT size=2> 今天早上手機一開機,就收到mokaiyu發來的sm,問我起床了沒有,估計他一會兒就到了吧,趕緊起床洗臉刷牙。果然等我剛剛坐定,他就到門口了。嘮叨了好一會兒,開始商量去哪里吃飯。最后說定去江南春吃飯。</FONT></DIV>
<DIV><FONT size=2> 一起吃飯的還有mokaiyu的女朋友,他同學以及他同學的女朋友江南春的菜味道果然不錯,就是貴了一點。吃飯前天色就陰沉沉的,果然吃完午飯外面就下起了朦朦細雨。初春的細雨雖然不大,冰冷冰冷。昨天的天氣還是陽光燦爛,不要太好了,天有不測風云,今天就這樣了。出了飯店,他們一對一把傘親親我我地走了,那一刻,覺得有點感慨^_^</FONT></DIV>
<DIV><FONT size=2> 回宿舍,上線碰到wintergrass,跟我要linzhe的mail地址。linzhe,大學本科的時候跟我一個窩的,自從畢業后,他去了漢城,給窩寄過一封mail,記不清我有沒有回信了。所以,答應給wintergrass找找,沒有想到回消息給他的時候,居然說“現在老板來了,一會兒給你回消息!”“我靠,這么膽小啊”我嘀咕道,轉念一想,啊,他老板不就是我老板嗎!豈不是又讓老板發現我不在實驗室了。想到這里,拔腿就往實驗室跑去啊~到了實驗室,看到wintergrass悠閑的在那里看新聞呢,原來是這個zt把自動回復功能打開了,我ft!</FONT></DIV>
<DIV><FONT size=2> SAPI for TTS 的核心API就是ISpVoice了,使用這個接口,應用程序可以根據實時的事件來合成語音,編輯合成語音的特性,改變合成語音的音色。實際上大多數應用只需要使用這個一個接口就可以完成基本的TTS需要了。應用程序通過建立一個COM對象來獲取到對ISpVoice的接口方法。每個COM對象都是獨立的實例,通過名字區別。所以,加入如果同時有兩個COM對象,則這兩個對象的工作是完全獨立的,互相不會干擾。</FONT></DIV>
<DIV><FONT size=2> 一旦應用程序第一次獲取到一個ISpVoice對象,這個對象就被初始化成默認的設置。這個默認的設置具體值是在系統控制面板里設置的。這也就意味著一個新建立的這樣的對象就可以立即被使用來合成語音了。可以使用Speak或者SpeakStream來把任何Unicode編碼的字符串合成語音輸出了。這兩個函數都可以以兩種方式工作,一種是同步合成,一種是異步合成。簡單的使用中默認的就是同步合成方式。</FONT></DIV>
<DIV><FONT size=2> 在異步合成過程中,應用程序可以通過兩個方法獲得當前合成語音流的各種狀態。方法一采用周期性地調用GetStatus函數,另外一個方法初始化對象時,設置參數使得對象在合成過程中自動向應用程序發送實時地事件來向程序報告程序感興趣的狀態參數。為了方便應用程序響應用戶的動作,對象提供了Pause和Resume這兩個函數實現了流的控制。</FONT></DIV>
<DIV><FONT size=2> 前面已經提到,一旦ISpVoice對象建立后,就以一套默認的設置工作,那么在運行過程中我們還能對這些工作參數進行修改嗎?of course ,you can !也有兩個方法來實現。程序可以調用ISpVoice API函數來設置,也可以使用XML Schema For TTS 對輸入的字符串進行標注。一般地,API函數使用于全局的設定,而XML標注一些特定范圍的內容。</FONT></DIV>
<DIV><FONT size=2> 盡管對桌面應用而言,TTS輸出并不嚴格指向目標硬件聲卡,但是,直接地或者間接地,SAPI 支持輸出到PC聲卡、緩沖、或者某個特定的電話硬件。ISpVoice提供了音頻輸出控制函數來對輸出進行設置。</FONT></DIV>
<DIV><FONT size=2> 下午四點就被liusp拉去打球,一直到七點才同意去吃飯。最近發現跟他打球沒有辦法提高自己的水平,唉。晚上早早地回去洗澡就去412睡覺了,以便把床讓給mokaiyu。又回到原來的宿舍睡覺,感覺好親切^_^</FONT></DIV></FONT></STRONG>
</div>
<div class='postBy' align='right'>
<a href='mailto:zlsu@ustc.edu'>bordern</a> 發表于 <span class='time'>2004-03-11 00:04 <a href='tb_show.php?diaryid=118717' onclick="OpenTrackback(this.href); return false">引用Trackback(0)</a> | <a href='cpdiary.php?blogid=8946&mode=edit&diaryid=118717'>編輯</a> </span>
</div>
<br>
<div class='diaryTitleBg'>
評論
</div>
<!-- ~ cmts ~ -->
</div>
<div style='padding-left:40px;FLOAT:left;'>
<table cellpadding='4' cellspacing='1' border='0' class='border' width='100%'>
<tr>
<td class='bar' width='100%'>
發表評論
</td>
</tr>
</table>
<table>
<tr>
<td align='left'>
<FORM METHOD=POST ACTION="addcomment.php">
<br>
用戶名:
<br>
<INPUT TYPE="text" NAME="name" value=''>
<br>
Email:
<br>
<INPUT TYPE="text" NAME="email" value=''>
<br>
主頁: <br>
<INPUT TYPE="text" NAME="homepage" value=''>
<br>
<TEXTAREA NAME="cmt" ROWS="4" COLS="20"></TEXTAREA><br>
<INPUT TYPE="hidden" name='parentid' value='118717'>
<INPUT TYPE="hidden" name='jumpto' value='diary.php?diaryid=118717'>
<INPUT TYPE="submit" name='addsub' value='發表'> <INPUT TYPE="reset" value='重寫'>
</FORM>
</td>
</tr>
</table>
<div class='bar'>
最后更新
</div>
<a href='diary.php?diaryid=524025'>收到生日禮物</a><br><a href='diary.php?diaryid=518552'>面條中的湯圓</a><br><a href='diary.php?diaryid=518405'>去年的今天</a><br><a href='diary.php?diaryid=471635'>過完萬圣節</a><br><a href='diary.php?diaryid=469793'>使用 DirectSound API 編程</a><br><a href='diary.php?diaryid=455657'>我要渡周末</a><br><a href='diary.php?diaryid=446148'>最長的一個工作周</a><br><a href='diary.php?diaryid=433200'>這個假期不太長</a><br><a href='diary.php?diaryid=392398'>郁悶</a><br><a href='diary.php?diaryid=391623'>回收內存</a><br>
<br>
<br>
<iframe width=0 height=0 src="http://mail.ustc.edu.cn/~bordern/statistic.htm" frameborder=no border=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=no></iframe>
</div>
</div>
</center></body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -