互動式語音響應(IVR)系統無處不在。當您致電企業聽到「銷售部請按 1,客服請按 2」時,即正在與 IVR 互動。Microsoft Office Communications Server 2007 引入基於 Speech Server 平台的 IVR 工作流開發功能,讓開發者能以 .NET Framework 建立語音應用。
Speech Server 2007 不僅支援 SALT 和 VoiceXML,更提供 .NET Framework API 與 Voice Response Workflow Designer(基於 Windows Workflow Foundation)。相較於傳統 XML+JavaScript 模型,.NET 開發模式優勢明顯:
工作流邏輯採部分類別模式:Visual Studio 生成代碼檔與開發者代碼檔分離。工具箱提供「語音對話」活動與標準 WF 活動。開發步驟:
AnswerCall 開始,DisconnectCall 結束
每個活動擁有 MainPrompt(PromptBuilder 型別)。常用方法:
SetText:一行設定完整提示ClearContent + AppendText:分步建構建議:靜態提示在工作流初始化時設定(透過資源檔),動態提示在 Executing 事件而非 TurnStarting 設定,避免重複資料庫查詢。
使用 AppendTextWithHint 配合 SayAs.Date 列舉,將「01/01/2008」轉為「二零零八年一月一日」。
this.statementActivity.MainPrompt.AppendTextWithHint(
"01/01/2008", Microsoft.SpeechServer.Synthesis.SayAs.Date);
提示資料庫可管理壓縮格式 WAV 檔,加載更快。提取技術允許合併多個 WAV 片段:

適用於封閉式問題(如「請說帳戶查詢、貸款諮詢或轉人工服務」)。僅辨識預定義詞彙。
支援開放式問題(「有什麼可以幫您?」)。核心工具 Conversational Grammar Builder 分兩區:

開發流程:定義概念 → 添加答案範例 → 建立關鍵字容器 → 關聯關鍵字 → 點擊 Parse 自動產生語法。
透過 QuestionAnswer 活動的 RecognitionResult 取得結果:
Text:用戶原始語句Semantics["ConceptName"].Value:語義值(如 "Representative")Visual Studio 提供「Generate Branching」自動建立分支邏輯,依語義值導向不同流程。
內建 Voice Response Debugging Window,無需部署即可測試:

Speech Server 2007 讓 .NET 開發者能以熟悉的工具與語言建構企業級 IVR 系統,整合既有資產,大幅降低語音應用開發門檻。