了解自動語音辨識目錄查閱服務

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2016-11-28

Microsoft Exchange Server 2010 整合通訊 (UM) 提供使用自動語音辨識 (ASR) 的語音使用者介面 (VUI)。這是一種電話介面,可讓來電者使用語音輸入來瀏覽功能表系統並存取其信箱。ASR 可讓來電者使用語音輸入而非複頻式訊號 (DTMF,也稱為按鍵式) 輸入,以瀏覽 UM 自動語音應答功能表。ASR 還可讓已啟用 UM 的使用者存取他們的信箱。本主題討論如何在 Exchange 2010 整合通訊中使用 ASR,以及如何搭配 ASR 使用文法檔案。

目錄

文法檔案概觀

預設的文法檔案

自訂文法檔案

產生文法

自訂文法檔案

詳細資訊

文法檔案概觀

語音文法檔案包含 UCMA 在使用文法檔案時會嘗試辨識的字與片語。文法檔案會定義使用者在檢閱其郵件或行事曆,或 UCMA 在來電者搜尋目錄時辨識出的人員名稱時,可以使用的命令。語音文法檔案是先以一個副檔名為 .grxml 的檔案的形式所產生的,然後處理成副檔名為 .cfg 的編譯形式,之後再載入至 UCMA 中。因爲 .cfg 檔案會載入至 Microsoft Exchange 整合通訊服務的記憶體中,所以 .cfg 檔案不會建立及儲存到磁碟。下圖顯示來電者如何使用文法檔案。

文法檔案概觀

注意事項附註:
如果想要尋找與 .cfg 檔對應的 .grxml 檔,請查看事件記錄檔中的事件 ID 1040 或 1041。該事件會指出用來產生特定 .cfg 檔的 .grxml 檔。

預設的文法檔案

在安裝整合通訊伺服器角色時,系統會將許多檔案複製到伺服器。這些檔案包括預設文法檔案,ASR 會使用這些檔案來啟用 VUI。根據預設,這些文法檔案會安裝在 <Program Files>\Microsoft\ Exchange Server\V14\UnifiedMessaging\grammars*\<language>* 資料夾中。不過,當整合通訊伺服器使用這些文法檔案時,MicrosoftExchange 整合通訊服務會將它們載入並編譯成 .cfg 檔。

預設的文法檔案包括下列檔案:

  • Calendar.grxml

  • Common.grxml

  • Contacts.grxml

  • Email.grxml

  • Mainmenu.grxml

自訂文法檔案

在安裝整合通訊伺服器角色時,以及在 Active Directory 目錄服務中建立 UM 物件時,還有當 Microsoft Exchange 整合通訊服務依排定的時間 (一天一次) 執行文法產生工作時,都會建立數個自訂文法檔案。這些文法檔案包含 Active Directory 中的使用者名稱與其他物件,例如通訊群組清單。針對每個名稱會提供額外資料,例如電子郵件別名。此資料可讓名稱與唯一的物件產生關聯。

當 MicrosoftExchange 整合通訊服務依排定的時間執行文法產生工作時,會建立下列文法檔案:

  • Gal.grxml

  • <DialPlanGUID>.grxml

  • <AddressListGUID>.grxml

  • DistributionList.grxml

    注意事項附註:
    來電者可能無法立即接通已啟用 UM 的使用者。您必須等到下次排程的文法產生工作發生,或是手動執行 galgrammargenerator.exe,將已啟用 UM 的使用者名稱包含在文法檔中。

當整合通訊伺服器建立語音文法檔案時,會檢查許多目錄物件,以判斷應將哪些名稱新增至語音文法檔案。它所處理的物件類型會以要建立的文法範圍為基礎。不過,對這些所有物件來說,如果 Exchange 2010 通訊清單隱藏物件,或該物件的 msExchHideFromAddressLists 屬性設為 true,則整合通訊不會將該物件新增至文法。

  • 對於全域通訊清單文法檔案,整合通訊會考量下列項目:

    • 擁有郵件功能的使用者

    • 擁有郵件功能的連絡人

  • 對於撥號對應表文法檔案,整合通訊會考量下列項目:

    • 指定之撥號對應表中已啟用 UM 的使用者
  • 對於通訊群組清單文法檔案,整合通訊會考量下列項目:

    • 通訊清單中可見的通訊群組清單

在執行 Exchange 2010 的電腦上安裝信箱伺服器角色時,會建立預設的全域通訊清單。在整合通訊伺服器角色安裝之後,就會根據設定的語音文法篩選器建立全域通訊清單的文法檔案。如果在您的 Exchange 2010 組織中建立自訂的通訊清單或通訊群組清單,將會針對您建立的每個自訂通訊清單或通訊群組清單建立其他的文法檔案。

若您建立包含像是特定部門中所有收件者的通訊清單,稍後又於此部門中加入新的使用者,則在您執行 Update-AddressList Cmdlet 之前,該收件者都不會納入為通訊清單的成員。

若您建立包含像是特定部門中所有收件者的通訊清單,然後變更通訊清單的成員資格,則您必須執行 Update-AddressList Cmdlet,才會產生整合通訊名稱語音文法。這能確保文法在產生或更新時,將會包含目前位於通訊清單中的所有收件者。當您執行 Update-AddressList Cmdlet 時,將會包含收件者所屬之每個通訊清單中的每位收件者。

若已啟用 UM 的使用者在產生文法之前並未加上通訊清單成員的戳記,則該使用者將無法新增為成員。下一次產生文法時 (不論是依定義的排程或是您在執行 galgrammargenerator.exe 時手動進行),已啟用 UM 的使用者都將無法新增至通訊清單的文法中。因此搜尋目錄時,將無法使用他們的名稱。

注意事項附註:
如果要為某通訊群組清單產生文法檔案,就不能隱藏該通訊群組清單。

當您首次建立 UM 撥號對應表時,不會建立任何文法檔案。然而,當整合通訊伺服器第一次加入撥號對應表時,便會在適當的語言資料夾下,為 UM 撥號對應表建立單一文法檔案。然後會篩選 UM 撥號對應表語音文法檔案,以只包含與該撥號對應表關聯且已啟用 UM 的使用者。在編譯之後,這些物件的文法檔案會使用所代表物件的 GUID 來命名,例如 2da514a1-06f4-44a1-9ce5-610854f7d2ee.grxml 或對應的 .cfg 檔。

UM 撥號對應表、全域通訊清單、通訊清單以及通訊群組清單的文法檔案在建立時,會在本機整合通訊伺服器上的特定語言資料夾中建立。所使用的語言資料夾是根據 UM 撥號對應表上設定的預設語言來選擇。例如,如果撥號對應表上的預設語言設定爲美國英文 (en-US),則文法檔案將在 <Program Files>\Microsoft\ Exchange Server\V14\UnifiedMessaging\grammars\en 資料夾中建立。建立文法檔案之後,便會根據整合通訊伺服器上設定的排程進行更新。

如需詳細資訊,請參閱下列主題:

產生文法

通常,預設的文法產生排程可以符合您的需求。然而,您有時候必須在排定的文法產生工作執行之前,手動產生文法檔案或更新現有的文法檔案。您也可以變更預設的文法產生排程。

在下列情況中會進行文法產生工作:

  • 將整合通訊伺服器新增至 UM 撥號對應表,而後依排定的間隔每天進行。

  • 當您執行 galgrammargenerator.exe 命令以手動更新或建立文法檔案時。

所建立的文法檔案會在排定的文法產生工作執行時進行更新。若要顯示 UM 伺服器的預設文法產生排程,請在 Exchange 管理命令介面中使用下列 Cmdlet:

(Get-UMServer $env:COMPUTERNAME).GrammarGenerationSchedule

如需 Get-UMServer Cmdlet 的詳細資訊,請參閱 Get-UMServer

根據預設,文法產生會在 UM 伺服器之 GrammarGenerationSchedule 參數所指定的時間每日發生。依預設,已經定義排程,每天都會在上午 2:00 時進行文法產生工作。不過,您可以使用命令介面中的 Set-UMserver Cmdlet,來變更和控制文法產生排程。沒有任何圖形化使用者介面可用以控制文法產生器排程。此排程只能使用命令介面中的 Set-UMserver Cmdlet 來控制。如需如何使用 Set-UMServer Cmdlet 變更語音顯示名稱的詳細資訊,請參閱 Set-UMServer

根據預設,文法產生排程設為每天在 UM 伺服器的本機時間上午 2:00 執行一次。開始執行之後,無論是否在作用中期間所排定的結束時間之前完成,文法產生工作都會持續執行,直到完成為止。如果正在進行文法產生工作,就不會執行其他文法產生工作。雖然您可以設定其他排程時間,但文法產生工作將不會在先前已排定之文法產生期間的一小時內執行。因為文法產生工作會使用大量的系統資源,所以建議您設定所有文法產生排程,以便在離峰時間執行文法產生工作。不過,您可以安排在多部 UM 伺服器上進行文法產生排程,例如 Umserver1 在上午 2:00 開始、Umserver2 在上午 2:30 開始,而 Umserver3 在上午 3:00 開始。這樣有助於讓文法產生工作對 Active Directory 網域控制站造成的影響降至最低。

注意事項附註:
將會在 %ExchangeRoot%\UnifiedMessaging\temp 資料夾中建立名為 UMSpeechGrammar.log 的記錄檔。此記錄檔包含在所有 UM 伺服器上建立或更新之文法檔案的相關資訊。這個檔案會在每次執行排定的文法產生工作時遭覆寫。

在下列情況中,您可以等待下一個排定的文法產生工作反映出變更,或者您可以使用 galgrammargenerator.exe 命令強制進行更新。

  • 完成新的 UM 伺服器角色安裝並為使用者啟用整合通訊時

  • 建立 UM 撥號對應表、UM 自動語音應答、自訂通訊清單或自訂通訊群組清單時

  • 建立已啟用 UM 的使用者時

  • 如果您變更 UM 撥號對應表或 UM 自動語音應答

注意事項附註:
Outlook 語音存取使用者在您完成新的整合通訊伺服器角色安裝並為使用者啟用 UM 後,立即使用含 ASR 的目錄搜尋功能,以嘗試尋找已啟用 UM 的使用者時,來電者會聽到系統提示說:「抱歉,我無法幫忙。」然後就中斷連線。發生此情況的原因是尚未產生全域通訊清單的文法檔案。使用 galgrammargenerator.exe 命令可建立全域通訊清單的必要文法檔案。

每次自動執行 Microsoft Exchange 整合通訊服務時,或當您手動執行 galgrammargenerator.exe 程式來強制更新文法檔案時,就會覆寫每一個文法檔案。如此當來電者使用 ASR,就能確保以省時的方式,從目錄搜尋中存取剛啟用 UM 的使用者。您可以使用 galgrammargenerator.exe 強制更新,或者產生或覆寫整合通訊所使用的文法檔案 (如果檔案已損毀的話)。例如,當您第一次啟用使用者的整合通訊功能時,在排定的文法產生工作執行之前,使用 ASR 執行目錄搜尋的來電者看不到那些使用者。若要確定來電者能夠看見最近才啟用 UM 的新使用者,請執行 galgrammargenerator.exe 程式以強制建立或更新 .grxml 檔案,以及編譯適當的 .cfg 檔,如此來電者便可使用 ASR 來瀏覽功能表系統,或使用 ASR 來尋找使用者。如需詳細步驟,請參閱更新 UM 伺服器上的語音文法檔案

當 UM 伺服器已加入撥號對應表,且有一或多個已啟用語音的自動語音應答與撥號對應表關聯時,Galgrammargenerator.exe 也相當有用。根據預設,撥打至已啟用語音之自動語音應答的來電者,僅能連絡到與撥號對應表關聯且已啟用 UM 的使用者。在使用語音輸入將來電者轉接至已啟用 UM 的使用者之前,必須先產生文法檔案。當伺服器加入撥號對應表時不會自動產生文法檔案。而是在下一次排定產生文法時產生。除非排程已變更,否則文法產生工作會根據預設排程 (每天當地時間上午 2:00) 進行。

如果您想要在建立自動語音應答之後,立即讓已啟用 UM 的使用者可供來自已啟用語音之自動語音應答內的目錄搜尋使用,您必須使用帶有 –d 選項的 galgrammargenerator.exe,產生自動語音應答所需的文法檔案。

未啟用語音功能的自動語音應答並不需要文法檔案。這是因為當啟用每位使用者的整合通訊功能時,會新增 DTMF 對應至 Active Directory。DTMF 對應讓來電者能夠在電話鍵台上,輸入對應至使用者名稱或電子郵件別名的字母。

不過,將不會針對未啟用 UM 的使用者自動建立 DTMF 對應。您可以使用帶有 -u 選項的 galgrammargenerator.exe,針對擁有郵件功能但未啟用 UM 的所有使用者產生 DTMF 對應。這可讓擁有郵件功能但未啟用 UM 的使用者,在來電者利用 DTMF 輸入來輸入其名稱或電子郵件別名時,可從自動語音應答連絡到該使用者。如需 DTMF 介面的詳細資訊,請參閱了解 DTMF 介面

下表列出 galgrammargenerator.exe 的參數與參數說明。

Galgrammargenerator.exe 與參數

參數 描述

-d <dialplan>

建立文法檔案,其中只包含指定之 UM 撥號對應表中已啟用 UM 的使用者名稱。

-g

產生文法檔案。

-l

產生通訊群組清單的文法檔案。

-o

產生記錄檔。路徑可為絕對路徑,例如 C:\Logfiles。依預設,UM 伺服器也會自動在 \UnifiedMessaging\Temp 資料夾中建立一個記錄檔。

-p

將所有產生的文法預先載入至 Microsoft Speech Server 平台。

-s <UMserver>

針對指定之 UM 伺服器所屬的每個 UM 撥號對應表建立文法檔案。

-u

為已啟用 UM 和未啟用 UM 的使用者建立或更新 DTMF 對應。

注意事項附註:
如果擁有信箱功能的使用者或擁有郵件功能的連絡人,其電子郵件別名中有無效的字元,則您執行 galgrammargenerator.exe /u command 來為使用者建立 DTMF 對應時,命令不會順利完成,而且整合通訊會報告錯誤。若要確定所有信箱使用者和擁有郵件功能的連絡人,其電子郵件地址中都沒有無效的字元,請使用 Get-User 指令程式來檢視所有使用者。Get-User 指令程式會執行使用者屬性的驗證檢查。若任何欄位具有無效的字元,則會產生識別收件者與包含該無效字元之欄位的錯誤。

-x

定義以 XML 格式使用的語音篩選器清單。

注意事項附註:
預設語音文法篩選器清單 (SpeechGrammarFilterList.xml) 是安裝在已安裝整合通訊伺服器角色之每部伺服器的 <Program Files>\Microsoft\ Exchange Server\V14\Bin 資料夾中。每部 UM 伺服器上的語音篩選器清單檔內容必須相同。語音文法篩選器清單包含數個規則,可指定比對顯示名稱的輸入模式以及定義相符名稱轉換的輸出模式。如果名稱符合模式,則會在語音文法中以從關聯的輸出模式產生的名稱取代該名稱。如果名稱不符合模式,則該名稱會原封不動傳遞至語音文法。如果名稱有兩種以上不同的說法,則會拒絕將名稱插入語音文法中。建議您不要手動修改 SpeechGrammarFilterList.xml 檔。

自訂文法檔案

目前只提供英文版的 ASR,而且包含英文的預先錄製提示與文字轉語音 (TTS) 支援。雖然英文語言套件中包含 ASR 支援,但因為有時使用者的名稱很難發音、來電者的發音與錯誤的名稱比對,或來電者說出使用者名稱的形式與存在於語音文法中的名稱不同,所以語音辨識很難找出已啟用 UM 的正確使用者。然而,新增其他 UM 語言套件並不能解決這個問題。

注意事項附註:
因爲預設會啟用美國英文的 ASR,所以會在每部整合通訊伺服器上建立名爲 \grammars\en 的資料夾。會為整合通訊伺服上安裝的每個語言套件建立一個資料夾。

整合通訊使用兩個 Active Directory 屬性來產生要與 ASR 文法檔一起使用的名稱:顯示名稱 (displayName) 和語音顯示名稱 (msDS-PhoneticName)。依預設,當來電者說出其名稱時,整合通訊會使用 displayName 屬性來辨識使用者的名稱。如果使用者的名稱容易發音,則這種方式效果很好。不過,有時候使用者的名稱不易發音。為協助整合通訊尋找其名稱不易發音的使用者,建議您為 ASR 無法辨識其名稱的使用者提供語音顯示名稱,藉以設定整合通訊系統。不過,若要提供語音顯示名稱,您必須預測 UCMA 辨識名稱特定拼法的方式,才能提供語音名稱的正確發音。

注意事項附註:
依預設,UM 伺服器會嘗試將語音顯示名稱 (若有的話) 以及顯示名稱插入至語音文法檔案中。

例如,顯示名稱 "Kweku Ako-Adjei" 的語音顯示名稱會被指定為 "Quaykoo Akoo Oddjay",而 UM 會將其插入至語音文法檔案中。但是缺點是無法大規模為使用者建立語音名稱。針對 ASR 無法正確辨識其名稱的每位使用者建立和測試語音顯示名稱十分耗時,尤其是在大型企業的環境中更是如此。

若要新增或變更已啟用 UM 之使用者的語音顯示名稱,必須使用 ADSI 編輯器 (AdsiEdit.msc) 或命令介面中的 Set-User Cmdlet。您無法使用 [Active Directory 使用者及電腦] 或 Exchange 管理主控台來變更使用者的語音顯示名稱。如需如何使用 Set-User Cmdlet 變更語音顯示名稱的詳細資訊,請參閱 Set-User

PhoneticDisplayName 參數可指定顯示名稱的語音讀法。顯示名稱是使用 DisplayName 參數來指定。如果對於 UM 伺服器而言,某個顯示名稱不容易發音或辨識,您可以使用 PhoneticDisplayName 參數來指定一個語音版本。如果您指定一個值,可讓 ASR 用以辨識使用者的名稱,及讓 TTS 引擎用以發出使用者名稱的音。如果您不指定值,則 UM 伺服器會使用 DisplayName 參數。此參數值的最大長度為 255 個字元。

如需 ADSI 編輯的詳細資訊,請參閱 Adsiedit 概觀

詳細資訊

更新 UM 伺服器上的語音文法檔案

了解統一訊息撥號對應表

了解整合通訊自動語音應答

 © 2010 Microsoft Corporation. 著作權所有,並保留一切權利。