2. TTS引擎:TTS引擎將文本轉換為聲音并輸出到音頻設備中,Agent將根據該引擎輸出的聲音控制動畫的口型變化 (C:/PROGRAM FILES/ COMMON FILES/SPEECH ENGINES /MICROSOFT/TTS)。
![]()
3. Agent角色數據文件:存儲有角色信息(提示信息框的格式、命令、圖片、聲音文件等);用戶也可以用角色編輯器(ACE.EXE)編輯自己的角色數據文件(C:/WINNT/MSAgent/ CHARS/MERLIN.ACS;C:/WINNT/ SRCHASST/CHARS/COURTNEY.ACS,/EARL.ACS,/ROVER.ACS)。
4. 語音識別引擎(SPEECH ENGINE):處理用戶從音頻設備中傳入的語音命令,以進行語音輸入/輸出處理(控制面板→聲音、語音和音頻設備→語音)。
Agen的基本屬性
CHARacters:其類型為IAgentCHARACTEREX,取得角色句柄;
CHARacter:CHARACTERS的一個屬性,通過CHARACTERID取得角色句柄;
CHARacterid:代表特定的角色動畫,如MERLIN、GINIE、ROVER等Windows 2000、Office2000以及以上版本所提供的四種角色動畫,其擴展名為.ACS或者.ACG;
Show:控制角色動畫的顯示,參數Speed為整形變量,代表顯示的速度;
Hide:隱藏動畫角色,參數CHARacterid,指定隱藏的對象;
Moveto:移動動畫角色到指定位置,參數(X,Y)為指定的位置;
Play:控制角色執行指定的動畫,參數Animation表示動畫名稱,存儲于角色數據文件里;
Speak:通過TTS引擎和語音識別引擎讀指定文本,目前不支持中文。參數為指定的文本內容,同時可以在文本中通過加標記TAG控制文本閱讀時的語氣、強調字符串、停頓時間、閱讀的速度;語氣標記‘/CHR=WHISFER(NORMAL/MONOTONE’,強調字符串‘/EMP/強調字符’,停頓時間’/PAU=停頓時間(以毫秒為單位)/’,閱讀速度’/SPD=速度/’,另外還有其它是一種標記,可以找Microsoft網站查找,每一分離的字符串都用雙引號加以表示;
Languageid:指定語言種類,整形變量,0X409代表美式英語,0X804代表中文。
角色動畫實例
預備工作已經完成,現在我們就立即來著手在應用成程序中做一個角色動畫效果(注:本文為了便于演示,應用程序僅包括一個窗口,編程工具采用VFP7.0)。
進入討論組討論。
1. 安裝Agent控件:選擇菜單工具“選項”,在ActiveX列表框中選擇Microsoft Aent Control 2.0,安裝在工具面板上。
2. 新建一應用程序,僅需一個表單,如圖2。

圖2 表單設計樣式
3. 調用角色數據:
載入動畫角色
ThisForm.Olecontrol1.Characters.Load("merlin", "merlin.ACS")
oChar = ThisForm.Olecontrol1.Characters("merlin")
oChar.MoveTo(RAND()*600, RAND()*600)
oChar.Show
*將角色數據文件中的動畫名稱加入動畫文件列表框,有許多動畫在文件中不能找到,因此通過載入動畫名稱讓用戶選擇。
For Each cAnimName in oChar.AnimationNames
ThisForm.AnimNames.AddItem(cAnimName)
ochar.play(canimname)*可能有的動畫循環播放,因此有的動畫可能無法顯示。
EndFor
開場介紹
ochar.languageid=0x409
oChar.Speak("Hello /emp/there!Hey, /pau=600/all you boys and girls.Greetings, and felicitations.")
oChar.Speak("Welcome to DevCon, my friends.")
進入討論組討論。
播放指定的角色動畫
OChar.Play(ThisForm.lbxAnimNames.DisplayValue)
閱讀指定文本
oChar.languageid=0x409*指定語言種類,0X409代表美式英語
oChar.Speak(ThisForm.txtSpeak.Value')
![]()
由于TTS引擎不支持中文,因此假如要閱讀中文,可以按如下方法:
將要閱讀的漢語文本通過錄音制作成WAV文件,如SNDFILE.WAV
oChar.languageid=0x804;//指定語言種類,0X804代表中文
oChar.speak(‘你好!’,’SNDFILE.WAV’);//SNDFILE.WAV及為制作的聲音文件
停止循環播放的動畫
oChar.Stop
卸載動畫角色
With ThisForm
.Olecontrol1.Characters.Unload("merlin")
.AnimNames.Clear
Endwith
加載閱讀文本,也可以直接輸入內容
Cfile=Getfile()
Nhandle=Fopen(Cfile)
Hend=Fseek(Nhandle,0,2)
If Hend<=0
Messagebox("文件無法打開!",16,"提示窗口")
Return
Else
=Fseek(Nhandle,0,0)
Cstring=Fread(Nhandle,Hend)
=Fclose(Nhandle)
Endif
Thisform.Txtspeak.Value=Cstring
進入討論組討論。
綜合演示
Ochar.Languageid=0x409
With Ochar
.Play("Greet")
.Play("Restpose")
.Speak("Hello!")
.Play("Announce")
.Speak("I Am Merlin.")
.Play("Pleased")
![]()
.Speak("It Is Nice To Meet You!")
.Moveto(250,500)
.Speak("Now,Here Is A Magic Trick.")
.Play("Domagic1")
.Play("Domagic2")
.Play("Pleased")
.Play("Restpose")
.Speak("Thank You!")
.Play("Wave")
.Speak("Goodbye")
.Play("Hide")
Endwith
關閉表單
Thisform.Release
綜合演示效果如圖3。

進入討論組討論。
- u盤無法識別怎么辦,小編告訴你U盤無法識別怎
- usb無線網卡怎么用,小編告訴你安裝教程
- usb調試在哪,小編告訴你usb調試在哪
- 優盤不顯示,小編告訴你優盤不顯示怎么辦
- 低級格式化,小編告訴你硬盤怎么低級格式化
- 分區表丟失,小編告訴你分區表丟失如何修復
- 進入bios,小編告訴你戴爾筆記本進入bios設置u
- 怎么刷bios,小編告訴你華碩怎么刷bios
- 讀卡器怎么用,小編告訴你如何使用讀卡器
- bios升級,小編告訴你華碩主板bios怎么升級
主站蜘蛛池模板:
英德市|
巨鹿县|
澄迈县|
沅陵县|
神池县|
玛多县|
平乡县|
镇康县|
乌鲁木齐县|
婺源县|
新河县|
禄劝|
鸡泽县|
通辽市|
合川市|
栾川县|
扬州市|
新疆|
灵川县|
神池县|
昭平县|
南澳县|
东乡族自治县|
山阴县|
民权县|
大姚县|
浏阳市|
灯塔市|
汽车|
尖扎县|
晴隆县|
宝清县|
莱阳市|
徐汇区|
宁河县|
普兰县|
三河市|
烟台市|
曲沃县|
海南省|
林甸县|