共用方式為


語音輸入支援

[Microsoft 代理程式在 Windows 7 中已被取代,且在後續版本的 Windows 中可能無法使用。]

除了支援滑鼠和鍵盤互動之外,Microsoft Agent 還包含語音輸入的直接支援。 由於 Microsoft Agent 對語音輸入的支援是以 Microsoft SAPI (語音應用程式開發介面) 為基礎,因此您可以使用 Microsoft Agent 搭配語音辨識命令和控制引擎,其中包含 SAPI 所需的支援。 如需語音引擎需求的詳細資訊,請參閱 語音引擎支援需求

Microsoft 提供可與 Microsoft Agent 搭配使用的命令和控制語音辨識引擎。 如需詳細資訊,請參閱 語音引擎選取

使用者可以按下並按住推播接聽熱鍵來起始語音輸入。 在此接聽模式中,如果語音引擎收到語音輸入的開頭,它會保留開啟的音訊通道,直到偵測到語句的結尾為止。 不過,當未接收輸入時,它不會封鎖音訊輸出。 這可讓使用者在按住按鍵時發出多個語音命令,而且當使用者沒有說話時,字元可以回應。

一旦使用者釋放接聽金鑰,接聽模式就會逾時。 使用者可以使用進階字元選項來調整此模式的逾時。 您無法從用戶端應用程式程式碼設定這個逾時。

如果字元嘗試在使用者說話時說話,字元的聽覺輸出會失敗,但文字仍會顯示在其文字方塊中。 如果按下接聽按鍵時字元具有音訊通道,伺服器會在處理 Speak 方法中的文字之後,自動將控制權傳回給使用者。 會播放選擇性 MIDI 音調來提示使用者開始說話。 這可讓使用者提供輸入,即使驅動字元的應用程式無法在其輸出中提供邏輯暫停也一樣。

您也可以使用 Listen 方法來起始語音輸入。 呼叫這個方法會開啟預先定義時段的語音辨識。 如果此間隔內沒有輸入,Microsoft Agent 會自動關閉語音辨識引擎,並釋放音訊通道。 這可避免封鎖音訊裝置的輸入或輸出,並將語音辨識在開啟時所使用的處理器額外負荷降到最低。 您也可以使用 Listen 方法來關閉語音輸入。 不過,請注意,由於語音辨識引擎以非同步方式運作,因此效果可能不是立即的。 因此,即使您的程式碼稱為Listen關閉語音輸入,也可以接收Command事件。

為了支援語音輸入,您可以定義文法、您想要語音辨識引擎接聽的一組文字,並將其比對為Commands集合中Command語音設定。 您可以在文法中包含選擇性和替代字組和重複的序列。 請注意,除非其中一個用戶端已成功載入語音引擎,或已為其其中一個Command物件撰寫Voice,否則 Agent 不會啟用接聽熱鍵。

無論使用者按下接聽熱鍵或用戶端應用程式呼叫 Listen 方法以起始語音輸入,語音辨識引擎都會嘗試比對語句的輸入與已定義的命令文法,並將資訊傳回伺服器。 伺服器接著會使用 Command 事件通知用戶端應用程式, (IAgentNotifySink::Command) ;如果有任何) 、信賴分數,以及每個相符專案的相符文字,則傳回 UserInput 物件,其中包含最佳比對的命令識別碼和下兩個替代比對專案 (。

伺服器也會在用戶端應用程式將語音輸入與其中一個提供的命令相符時通知用戶端應用程式。 當命令識別碼為 Null時,您仍會取得信賴分數和文字比對。 當處於接聽模式時,伺服器會自動播放指派給字元接 狀態的動畫。 然後,當實際偵測到語句時,伺服器會播放字元的 聽覺 狀態動畫。 在語句結束之前,伺服器會讓字元維持在狀態中。 這會提供適當的社交意見反應,以提示使用者輸入。

如果使用者停用進階字元選項中的語音輸入,則也會停用接聽熱鍵。 同樣地,在停用語音輸入時嘗試呼叫 Listen 方法會導致方法失敗。