使用自訂詞彙改善語音辨識 - Amazon Lex

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用自訂詞彙改善語音辨識

您可以透過以特定語言建立自訂詞彙,向 Amazon Lex V2 提供有關如何處理與機器人音訊交談的詳細資訊。自訂字彙是您希望 Amazon Lex V2 在音訊輸入中辨識的特定片語清單。這些通常是 Amazon Lex V2 無法辨識的適當名詞或特定於網域的字詞。

例如,假設您有技術支援機器人。您可以將「備份」添加到自定義詞彙中,以幫助機器人將音頻正確轉錄為「備份」,即使音頻聽起來像「收拾」。自定義詞彙還可以幫助識別音頻中罕見的單詞,例如金融服務的「償付能力」或適當的名詞,例如「Cognito」或「Monitron」。

自訂詞彙基礎

  • 自定義詞彙適用於將音頻輸入到機器人的轉錄。您必須提供範例語彙,才能辨識意圖或槽值。

  • 自訂字彙是特定語言所獨有的。您必須為每種語言個別設定自訂字彙。自訂詞彙僅支援英文 (英國) 和英文 (美國) 語言。

  • Amazon Lex V2 支援的客服中心整合功能可使用自訂字彙。Amazon Lex V2 主控台中的測試視窗支援在 2022 年 7 月 31 日或之後建置的所有 Amazon Lex V2 機器人的自訂字彙。如果您在測試視窗中遇到自訂字彙問題,請重新建置機器人,然後再試一次。

Amazon Lex V2 使用自訂字彙來引出意圖和插槽。相同的自訂字彙檔案用於意圖和插槽。您可以在新增插槽類型時,選擇性地關閉插槽的自訂詞彙功能。

引出意圖 — 您可以創建自定義詞彙來引出意圖。當您的機器人確定用戶的意圖時,這些短語用於轉錄。例如,如果您在自訂字彙中設定了「備份」一詞,Amazon Lex V2 會將使用者輸入的內容轉錄為「可以請您備份我的相片嗎?」 -即使音頻聽起來像「你能收拾我的照片。」 您可以透過設定 0、1、2 或 3 的權重來指定每個片語的提升程度。您也可以透過新增displayAs欄位,為最終語音轉換文字輸出中的片語指定替代表示法。

用於在意圖引出期間改善轉錄的自定義詞彙短語不會影響引出插槽時的轉錄。如需建立自訂字彙以引出意圖的詳細資訊,請參閱。創建引出意圖和插槽的自定義詞彙

引出自定義插槽 — 您可以使用自定義詞彙來提高音頻對話的插槽識別。若要提升 Amazon Lex V2 機器人辨識插槽值的能力,請建立自訂位置並將插槽值新增至自訂插槽,然後選擇「使用位置值作為自訂詞彙」。插槽值的範例包括產品名稱、型錄或適當名詞。您不應在自訂詞彙中使用常見的字詞或片語,例如「yes」和「no」。

新增插槽值之後,當機器人期待自訂插槽的輸入時,這些值會用於改善位置辨識度。引出意圖時,這些值不用於轉錄。如需詳細資訊,請參閱新增插槽類型

建立自訂字彙的最佳作法

引出意圖

  • 自訂詞彙最適合用來將特定字組或詞組設成目標。只有在 Amazon Lex V2 無法輕易辨識的情況下,才能在自訂字彙中新增單字。

  • 根據字詞在轉錄中無法辨識的頻率,以及單字在輸入中的罕見程度,來決定要提供字詞的權重。難以發音的單詞需要更高的權重。

  • 使用代表性的測試集來確定權重是否合適。您可以開啟交談記錄中的音訊記錄來收集音訊測試集。

  • 避免在自定義詞彙中使用「on」,「it」,「to」,「是」,「否」之類的短詞。

引出一個自訂欄位

  • 將值新增至您預期可辨識的自訂槽類型。為自訂插槽類型新增所有可能的插槽值,無論插槽值有多普遍或稀有。

  • 僅當自訂槽類型包含目錄值或實體 (例如產品名稱或共同基金) 清單時,才啟用此選項。

  • 如果插槽類型用於擷取一般詞組,例如「是」、「否」、「我不知道」、「也許」或「一」、「二」、「三」等一般字詞,請停用此選項。

  • 將插槽值和同義詞的數量限制為 500 或更少,以獲得最佳效能。

輸入首字母縮寫或其他單字,其字母應該以單一字母的形式發音,並以句點和空格分隔。除非它們是短語的一部分,否則不要使用個別字母,例如「J·P· 摩根」或「A.W. S.」 您可以使用大寫或小寫字母來定義縮寫。

創建引出意圖和插槽的自定義詞彙

您可以使用 Amazon Lex V2 主控台建立和管理自訂詞彙,也可以使用 Amazon Lex V2 API 操作。有兩種方法可以通過控制台創建自定義詞彙:

在控制台中導入自定義詞彙:
  1. 打開亞馬遜萊克斯 V2 控制台 https://console.aws.amazon.com/lexv2/home

  2. 從機器人列表中,選擇要添加自定義詞彙的機器人。

  3. 在機器人詳細資料頁面的 [新增語言] 區段中,選擇 [檢視語言]。

  4. 從語言清單中,選擇您要新增自訂字彙的語言。

直接通過控制台創建新的自定義詞彙:
  1. 在語言詳細資訊頁面的「自訂詞彙」區段中,按一下「立」。這將打開一個沒有自定義詞彙的編輯窗口。

  2. 視需要新增詞組DisplayAs、和重量的輸入。您可以透過更新項目的欄位或從清單中刪除項目,進一步對新增的項目進行內嵌編輯。

  3. 點擊保存請注意:新的自定義詞彙僅在您單擊「保存」後保存在您的機器人中。

  4. 您可以繼續在此頁面中進行內嵌編輯,完成後按一下「儲存」。

  5. 此頁面還允許您從右上角的下拉菜單中導入,導出和刪除自定義詞彙文件。

使用 ListCustomVocabularyItems API 來檢視自訂字彙項目:
  1. 使用此ListCustomVocabularyItems作業可檢視自訂字彙項目。請求主體將如下所示:

    { "maxResults": number, "nextToken": "string" }
  2. 請注意,maxResultsnextToken是請求主體的可選字段。

  3. 來自ListCustomVocabularyItems操作的響應如下所示:

    { "botId": "string", "botVersion": "string", "localeId": "string", "customVocabularyItems": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
使用 BatchCreateCustomVocabularyItem API 建立新的自訂字彙項目:
  1. 如果您的機器人地區設定尚未建立自訂字彙,請依照步驟使StartImport用建立自訂字彙。

  2. 建立自訂字彙之後,使用此BatchCreateCustomVocabularyItem作業建立新的自訂字彙項目。請求主體將如下所示:

    { "customVocabularyItemList": [ { "phrase": "string", "weight": number, "displayAs": "string" } ] }
  3. 請注意,weightdisplayAs是請求主體的可選字段。

  4. 來自BatchCreateCustomVocabularyItem意志的響應如下所示:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  5. 由於這是一個批處理操作,如果其中一個項目無法創建請求將不會失敗。錯誤清單會包含該特定項目作業失敗原因的相關資訊。資源清單將包含已成功建立的所有項目。

  6. 對於BatchCreateCustomVocabularyItem,您可以期望看到以下類型的錯誤:

    • RESOURCE_DOES_NOT_EXIST:自定義詞彙不存在。在呼叫此作業之前,請遵循建立自訂字彙的步驟。

    • DUPLICATE_INPUT:輸入列表包含重複的短語。

    • RESOURCE_ALREADY_EXISTS:該條目的給定短語已存在於您的自定義詞彙中。

    • INTERNAL_SERVER_FAILURE:處理您的請求時後端出現錯誤。這可能表示服務中斷或其他問題。

使用 BatchDeleteCustomVocabularyItem API 刪除現有的自訂字彙項目:
  1. 如果您的機器人的語言環境尚未建立自訂字彙,請依照使用建立自訂字彙StartImport來建立字彙的步驟。

  2. 建立自訂字彙之後,使用此BatchDeleteCustomVocabularyItem作業刪除現有的自訂字彙項目。請求主體將如下所示:

    { "customVocabularyItemList": [ { "itemId": "string" } ] }
  3. 來自BatchDeleteCustomVocabularyItem意志的響應如下所示:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  4. 由於這是一個批處理操作,如果其中一個項目無法刪除,請求將不會失敗。錯誤清單會包含該特定項目作業失敗原因的相關資訊。資源清單將包含已成功刪除的所有項目。

  5. 對於BatchDeleteCustomVocabularyItem,您可以期望看到以下類型的錯誤:

    • RESOURCE_DOES_NOT_EXIST:您嘗試刪除的自定義詞彙條目不存在。

    • INTERNAL_SERVER_FAILURE:處理您的請求時後端出現錯誤。這可能表示服務中斷或其他問題。

使用 BatchUpdateCustomVocabularyItem API 更新現有的自訂字彙項目:
  1. 如果您的機器人的語言環境尚未建立自訂字彙,請依照使用建立自訂字彙StartImport來建立自訂字彙的步驟進行操作。

  2. 建立自訂字彙之後,使用此BatchUpdateCustomVocabularyItem作業更新現有的自訂字彙項目。請求主體將如下所示:

    { "customVocabularyItemList": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  3. 請注意,weightdisplayAs是請求主體的可選字段。

  4. 來自BatchUpdateCustomVocabularyItem意志的響應如下所示:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  5. 由於這是一個批處理操作,如果其中一個項目無法刪除,請求將不會失敗。錯誤清單會包含該特定項目作業失敗原因的相關資訊。資源清單將包含所有已成功更新的項目。

  6. 對於BatchUpdateCustomVocabularyItem,您可以期望看到以下類型的錯誤:

    • RESOURCE_DOES_NOT_EXIST:您嘗試更新的自定義詞彙條目不存在。

    • DUPLICATE_INPUT:輸入清單包含重複的項目 MID。

    • RESOURCE_ALREADY_EXISTS:該條目的給定短語已存在於您的自定義詞彙中。

    • INTERNAL_SERVER_FAILURE:處理您的請求時後端出現錯誤。這可能表示服務中斷或其他問題。

建立自訂字彙檔

自訂字彙檔案是以 Tab 字元分隔的值清單,其中包含要辨識的片語、提供增強功能的權重,以及用來取代語音記錄中片語的displayAs欄位。具有較高提升值的短語出現在音頻輸入中時,更有可能使用它們。

自訂字彙檔案必須命名CustomVocabulary.tsv,且必須先以 zip 檔案壓縮,才能匯入該檔案。壓縮檔案的大小必須小於 300 MB。自定義詞彙中的短語數量上限為 500。

  • 短語 1—4 個應該被識別的單詞。用空格分隔片語中的單詞。檔案中不能有重複的片語。片語欄位為必填欄位。

  • weight — 提升片語辨識度的程度。該值是一個整數 0、1、2 或 3。如果未指定線寬,預設值為 1。根據轉錄中無法識別單詞的頻率以及單詞在輸入中的罕見程度來決定權重。權重 0 表示不會套用任何提升,且該項目將僅用於使用displayAs欄位執行替換。

  • DisplayAS — 定義您希望片語在轉錄輸出中的外觀方式。這是自訂字彙中的可選欄位。

自訂字彙檔案必須包含標題列,其中標題為「片語」、「重量」和「DisplayAs」。標題可以是任何順序,但必須遵循上述命名法。

下列範例為自訂字彙檔案。用於分隔片語,權重和顯示所需的製表符由文本「[TAB]」表示。如果您使用此範例,請以定位字元取代文字。

phrase[TAB]weight[TAB]displayAs Newcastle[TAB]2 Hobart[TAB]2[TAB]Hobart, Australia U. Dub[TAB]1[TAB]University of Washington, Seattle W. S. U.[TAB]3 Issaquah Kennewick