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

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

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

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

例如,假設您有技術支援機器人。您可以將「備份」新增至自訂詞彙,以協助機器人將音訊正確轉錄為「備份」,即使音訊聽起來像「封裝」。自訂詞彙也有助於辨識音訊中罕見的單字,例如金融服務的「解析」或適當的名詞,例如「Cognito」或「Monitron」。

自訂詞彙基本概念

  • 自訂詞彙適用於將音訊輸入轉錄至機器人。您必須提供範例表達用語,才能辨識意圖或槽值。

  • 自訂詞彙對於特定語言來說是唯一的。您必須為每個語言獨立設定自訂詞彙。以下語言支援自訂詞彙:英文 (英國)、英文 (美國)、韓文 (韓國)、義大利文 (義大利)、德文 (德國)、法文 (加拿大)、法文 (法國)、西班牙文 (西班牙)、西班牙文 (美國)、日文 (日本)、國語 (PRC)、瑞典文 (瑞典)、海灣阿拉伯文 (阿拉伯聯合大公國)、印地文 (印度)、荷蘭文 (荷蘭)、挪威文 (挪威)、波蘭文 (波蘭)、芬蘭文 (芬蘭)、葡萄牙文 (葡萄牙)、葡萄牙文 (巴西)、加泰羅尼亞文 (西班牙)。

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

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

引出意圖 – 您可以建立自訂詞彙來引出意圖。當您的機器人判斷使用者的意圖時,這些片語會用來轉錄。例如,如果您在自訂詞彙中設定「備份」一詞,Amazon Lex V2 會將使用者輸入轉錄為「您可以備份我的相片嗎?」,即使音訊聽起來像是「可以封裝我的相片。」 您可以透過將權重設定為 0、1、2 或 3 來指定每個片語的提升程度。您也可以新增displayAs欄位,為最終語音中的片語指定文字輸出的替代表示法。

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

引出自訂槽 – 您可以使用自訂詞彙來改善音訊對話的槽辨識。若要改善 Amazon Lex V2 機器人辨識槽值的能力,請建立自訂槽並將槽值新增至自訂槽,然後選擇使用槽值做為自訂詞彙。槽值的範例包括產品名稱、目錄或適當的名詞。您不應該在自訂詞彙中使用常見的單字或片語,例如「是」和「否」。

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

建立自訂詞彙的最佳實務

引出意圖

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

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

  • 使用代表性測試集來判斷權重是否適當。您可以在對話日誌中開啟音訊記錄,以收集音訊測試集。

  • 避免在自訂詞彙中使用短字,例如 "on"、"it"、"to"、"yes"、"no"。

引出自訂插槽

  • 將值新增至您預期可辨識的自訂槽類型。新增自訂槽類型的所有可能槽值,無論槽值有多常見或多罕見。

  • 只有在自訂槽類型包含目錄值或實體清單,例如產品名稱或互惠金時,才啟用 選項。

  • 如果槽類型用於擷取一般片語,例如「是」、「否」、「不知道」、「可能」或一般單字,例如「一」、「二」、「三」,請停用選項。

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

輸入縮寫或其他單字,其字母應個別發音為以句點和空格分隔的單一字母。請勿使用個別字母,除非它們是片語的一部分,例如「J. P.Morgan」或「A. W. S.」。 您可以使用大寫或小寫字母來定義縮寫。

建立自訂詞彙以引出意圖和槽

您可以使用 Amazon Lex V2 主控台來建立和管理自訂詞彙,也可以使用 Amazon Lex V2 API 操作。透過主控台建立自訂詞彙有 2 種方式:

在主控台中匯入自訂詞彙:
  1. 在 https://https://console.aws.amazon.com/lexv2/home 開啟 Amazon Lex V2 主控台

  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:輸入清單包含重複itemIds。

    • RESOURCE_ALREADY_EXISTS: 項目的指定片語已存在於您的自訂詞彙中。

    • INTERNAL_SERVER_FAILURE:處理請求時,後端發生錯誤。這可能表示服務中斷或其他問題。

建立自訂詞彙檔案

自訂詞彙檔案是以標籤分隔的值清單,其中包含要辨識的片語、要提升的權重,以及將取代語音文字記錄中片語displayAs的欄位。當具有較高提升值的片語出現在音訊輸入中時,更有可能使用它們。

自訂詞彙檔案必須命名為 CustomVocabulary.tsv,且必須在 zip 檔案中壓縮,才能匯入。zip 檔案的大小必須小於 300 MB。自訂詞彙中的片語數目上限為 500。

  • 應該辨識的片語 1-4 個單字。用空格分隔片語中的單字。您無法在 檔案中有重複的片語。片語欄位為必要欄位。

  • weight – 字詞辨識提升的程度。值為整數 0、1、2 或 3。如果您未指定權重,預設值為 1。根據轉錄中無法辨識字詞的頻率,以及輸入中字詞的罕見程度,決定權重。權重 0 表示不會套用提升,而且項目只會用於使用 displayAs 欄位執行取代。

  • 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