Microsoft Agent 是微軟早期提供的動畫角色技術,支持角色顯示、語音合成 (TTS) 與語音識別 (SR)。經典角色包括 Genie、Merlin、Robby、Peedy。雖已停止維護,但在舊系統維護或教學演示中仍有參考價值。
需安裝以下組件(現多整合於 Windows XP/Server 2003,新版系統需手動安裝):
下載地址:https://microsoft.com/products/msagent/downloads.htm(已歸檔)。
Agent 以 COM 組件形式提供,需用 AxImp.exe 生成互操作程序集:
AxImp agentctl.dll
// 生成 AxAgentObjects.dll 和 AgentObjects.dll
引用這兩個 DLL 後即可在 C# 中使用。
using AgentObjects;
using AxAgentObjects;
private AxAgent axAgent;
private IAgentCtlCharacterEx character;
private void LoadCharacter()
{
axAgent = new AxAgent();
this.Controls.Add(axAgent);
// 加載角色文件
axAgent.Characters.Load("Genie", @"C:\Windows\Msagent\chars\Genie.acs");
character = axAgent.Characters["Genie"];
// 設置語言 (0x409 = 美式英語)
character.LanguageID = 0x409;
// 顯示角色並播放動畫
character.Show(null);
character.Play("Announce");
}
// 直接說話(帶氣泡字幕)
character.Speak("Welcome to C# TTS Demo!", null);
// 或使用 TTS 引擎直接合成(無角色)
// 需引用 SpeechLib (SAPI 5.x)
using SpeechLib;
SpVoice voice = new SpVoice();
voice.Speak("純語音合成", SpeechVoiceSpeakFlags.SVSFlagsAsync);
原文提供了完整表單代碼,包含:
character.Speakcharacter.Play("GestureRight") 等| 問題 | 說明 |
|---|---|
| Windows 10/11 不兼容 | Agent 組件已移除,需從舊系統拷貝註冊或使用虛擬機 |
| 中文 TTS 支持弱 | SAPI 4.x 中文引擎稀缺,建議改用 SAPI 5.x + Microsoft Huihui/Liya |
| 無法靜默部署 | 需用戶手動安裝運行庫,不適合現代分發 |
Microsoft Agent 曾是桌面應用增加拟人化交互的利器,但隨著技術演進已退出歷史舞台。理解其 COM 互操作、角色動畫與 TTS 協作模式,有助於掌握早期 Windows 多媒體編程精髓。新項目請直接採用現代 TTS 方案。