共用方式為


定型及測試資料集

在自訂語音專案中,您可以上傳資料集來進行定型、質化檢查和量化測量。 本文涵蓋可用於自訂語音的定型和測試資料類型。

您用來測試和定型自訂模型的文字和音訊,應該包含您想讓模型辨識的各種不同說話者與案例組合範例。 當您收集自訂模型測試與定型的資料時,請考量下列因素:

  • 包含文字和音訊資料,涵蓋使用者在與模型互動時要採用的口說語句類型。 例如,執行升溫與降溫的模型必須針對可能要求此類變更的人員,實行相關語句訓練。
  • 包含要讓模型辨識的所有語音變異數。 許多因素可能會改變語音,包括口音、方言、語言混合、年齡、性別、音高、重音等級和當日時間。
  • 包含在不同環境下 (例如,室內、戶外、道路雜音) 已使用模型的樣本。
  • 使用生產系統會用的硬體裝置來錄製音訊。 若模型需要識別在品質各異裝置上錄製的語音,則您提供用來定型模型的音訊資料也必須代表這些不同的情節。
  • 讓資料集保持多元且代表專案需求。 您可以稍後將更多資料新增至模型。
  • 僅包含模型需要轉譯的資料。 包含不在您自訂模型辨識需求中的資料,可能會損害整體辨識品質。

資料類型

下表列出已接受的資料類型、應使用每個資料類型的時機,以及建議的數量。 建立模型時無須使用每種資料類型。 資料需求會根據您建立的是測試或定型模型而有所差異。

資料類型 用於測試 建議用於測試 用於定型 建議用於訓練
僅限音訊 是 (視覺檢查) 5 個以上的音訊檔案 是 (en-US 的預覽) 1 至 100 小時的音訊
音訊 + 人工標記的轉錄內容 是 (正確性評估) 0.5 至 5 小時的音訊 Yes 1 至 100 小時的音訊
純文字 No 不適用 Yes 1 至 200 MB 的相關文字
結構化文字 No 不適用 Yes 最多 10 個類別,其中包含最多 4,000 個項目與 50,000 個定型句子
發音 No 不適用 Yes 1 KB 至 1 MB 的發音文字
顯示格式 No 不適用 Yes ITN 最多 200 行,重寫最多 1,000 行,粗話篩選最多 1,000 行

純文字或結構化文字定型的作業通常會在數分鐘內完成。

提示

請先從純文字資料或結構化文字資料開始。 此資料可提升特殊字詞和片語的辨識能力。 用文字來定型的速度遠高於用音訊來定型 (幾分鐘與幾天的差別)。

從小型的樣本資料集開始,該資料集會比對用到模型的語言、聲場與硬體。 代表性資料的小型資料集,可能會在您投注心力收集較大型資料集進行定型前顯現問題。 如需範例自訂語音資料,請參閱此 GitHub 存放庫

若您要使用音訊資料來定型自訂模型,請選擇具有專用硬體的語音資源區域來定型音訊資料。 如需詳細資訊,請參閱區域資料表中的註腳。 在具有自訂語音訓練專用硬體的區域中,語音服務最多使用 100 小時的音訊訓練資料,且每天可處理大約 10 小時的資料。 定型模型之後,如有需要,您可使用 Models_CopyTo REST API 將模型複製到另一個區域。

根據案例考慮資料集

針對案例子集定型的模型,唯有在該案例中方可展現理想執行成效。 請小心選擇資料,該資料代表您需要讓自訂模型辨識的完整案例範圍。 下表顯示一些語音辨識案例需要考慮的資料集:

案例 純文字資料和結構化文字資料 音訊 + 人工標記的轉錄內容 具有發音的新字組
話務中心 話務中心活動相關的行銷文件、網站、產品評論 人工轉錄的話務中心通話 發音模棱兩可的字詞 (請參閱上一節中的 Xbox 範例)
語音助理 使用各種命令和實體組合的句子清單 將語音說話命令記錄到裝置,轉錄為文字 具有獨特發音的名稱 (電影、歌曲、產品)
聽寫 書面輸入,例如即時訊息或電子郵件 類似於上述範例 類似於上述範例
影片隱藏式輔助字幕 電視節目劇本、電影、行銷內容、影片摘要 確切的影片轉錄內容 類似於上述範例

如需協助判斷用以解決問題的資料集,請參閱下表:

使用案例 資料類型
改善業界專屬詞彙和文法的辨識準確度,例如醫療術語或 IT 專業術語。 純文字或結構化文字資料
定義包含非標準發音 (例如產品名稱或縮略字) 單字或詞彙的語音和顯示形式。 結構化文字中的發音資料或注音發音
改善說話樣式、重音或特定背景雜訊的辨識精確度。 音訊 + 人工標記的轉錄內容

用於定型或測試的音訊 + 人工標記的轉錄內容資料

您可以針對定型測試用途,使用音訊和人工標記的轉錄內容資料。 您必須提供人工標記的轉錄內容 (逐字) 以進行比較:

  • 改進聲場層面,例如輕微口音、說話風格和背景雜音。
  • 測量 Microsoft 語音轉換文字在處理音訊檔案時的正確性。

如需支援使用音訊資料進行定型的基本模型清單,請參閱語言支援。 即使基本模型可支援使用音訊資料進行定型,服務仍可能只會使用部分的音訊。 而服務仍會使用所有轉錄內容。

重要

如果基本模型不支援使用音訊資料進行自訂,則定型時只會使用轉譯文字。 如果您切換至支援使用音訊資料自訂的基本模型,定型時間可能會從數小時增加到數天。 當您切換的基本模型所在區域中沒有進行定型的專用硬體時,定型時間的變化最明顯。 如果不需要音訊資料,您應該將其移除以減少定型時間。

如果音訊來自目標使用案例,則具有人工標記的轉錄內容的音訊可提供最大的正確性改善。 範例必須涵蓋完整語音範圍。 例如,零售商店的話務中心在夏季會接到大多數關於泳裝和太陽鏡的電話。 確保您的範例包含您想要偵測的完整語音範圍。

請考慮下列詳細資料:

  • 如果音訊對於人類來說也難以理解,則使用音訊進行定型將會帶來最多的好處。 在多數情況下,您應該僅使用相關的文字來開始定型。
  • 如果您是採用最常使用的語言之一,例如美式英文,則通常不需要使用音訊資料進行定型。 針對這類語言,在大部分情況下,基本模型均可提供良好的辨識結果,因此使用相關文字進行定型可能已足夠。
  • 自訂語音只能擷取字組內容以減少替代錯誤,而不是插入或刪除錯誤。
  • 避免包含轉錄內容錯誤的範例,但確實包含各種音效品質。
  • 避免與您問題網域無關的句子。 不相關的句子可能會傷害您的模型。
  • 當文字記錄品質不一時,您可以複製非常好的句子 (例如包含關鍵字組的絕佳轉錄內容) 來提高其權重。
  • 語音服務會自動使用轉錄來改善網域特定字組和片語的辨識,如同將其新增為相關文字一樣。
  • 定型作業可能需要數天的時間才能完成。 若要改善定型的速度,請務必在具有定型專用硬體的區域中建立您的語音服務訂用帳戶。

改善辨識需要大型訓練資料集。 一般而言,我們建議您提供 1 至 100 小時的音訊逐字轉錄 (對於不收取訓練費用的較舊模型,最多 20 小時)。 然而,即使只有 30 分鐘的時間,也有助於改進辨識結果。 雖然建立人工標記的轉錄內容可能需要一段時間,但辨識的改善只能與您提供的資料一樣好。 請您務必上傳高品質的文字記錄。

音訊檔案在錄製的開頭和結尾可能會無聲。 可能的話,請在每個範例檔案的語音前後至少包含半秒鐘的無聲內容。 低錄音音量或有背景雜訊干擾的音訊雖然沒有幫助,但也應該不會限制或降低您的自訂模型成效。 在收集音訊樣本之前,請務必先升級麥克風和處理硬體的訊號。

重要

如需關於準備人工標記轉錄內容最佳做法的詳細資訊,請參閱具有音訊的人工標記轉錄內容

自訂語音專案需要具有這些屬性的音訊檔案:

重要

這些是音訊 + 人工標記的文字記錄定型和測試的需求。 它們與僅用於音訊定型和測試的不同之處。 如果您要只使用音訊定型和測試,請參閱本節

屬性
File format RIFF (WAV)
採樣速率 8,000 Hz 或 16,000 Hz
通道 1 (mono)
每個音訊的長度上限 兩小時 (測試) / 40 秒 (訓練)

使用音訊進行訓練時,每個檔案的音訊長度上限為 40 秒 (對於 Whisper 自訂最多為 30 秒)。 針對超過 40 秒的音訊檔案,則只使用對應的轉錄檔案中的文字進行訓練。 如果所有音訊檔案都超過 40 秒,則會導致訓練失敗。
樣本格式 PCM,16 位元
封存格式 .zip
zip 大小上限 2 GB 或 10,000 個檔案

用於定型的純文字資料

您可以新增相關文字的純文字句子,以改善網域特定字組和片語的辨識。 相關的文字句子可以減少與誤認常用字組和網域特定字組相關的替代錯誤,方法是在內容中顯示。 網域特定字組可能是不常用或虛構字組,但其發音必須簡單好辨識。

在單一文字檔中提供網域相關的句子。 請使用更接近預期口說表達語句的文字資料。 表達語句不需要完整無缺或語法正確,但必須精確反映預期模型要辨別的口說輸入內容。 請盡可能將每個句子或關鍵字控制在分別的行上。 若要增加產品名稱等字詞的權重,請新增數個包含該字詞的句子。 但不要複製太多次 - 這樣可能會影響整體辨識率。

注意

避免包含噪音的相關文字句子,例如無法辨識的字元或文字。

請使用此表格以確保純文字資料集檔案格式正確:

屬性
文字編碼 UTF-8 BOM
每一行的表達語句數目 1
檔案大小上限 200 MB

您也必須遵守下列限制:

  • 字元、單字或單字群組請避免重複超過三次。 例如,不要使用「aaaa」、「yeah yeah yeah yeah」或「that's it that's it that's it that's it」。重複太多的話,語音服務可能會遺漏幾行。
  • 請勿使用上述特殊字元或 UTF-8 字元 U+00A1
  • URI 會遭到拒絕。
  • 有些語言,例如日文或韓文,匯入大量文字資料可能需要很長時間或可能逾時。請考慮將資料集分割成多個文字檔,每個文字檔最多 20,000 行。

用於定型的結構化資料

注意

用於定型的結構化文字資料處於公開預覽階段。

當您的資料在特定語句中遵循特定模式時 (只有清單中的單字或片語不同),可使用結構化文字資料。 您可以使用 Markdown 格式的結構化文字來定義項目清單以及字組的拼音發音,以簡化定型資料的建立,並在自訂語言模型內增進模型化品質。 接著您可在定型表達語句中參考這些清單。

預期的表達語句通常會遵循特定模式。 其中一個常見的模式,在於表達語句只有清單中的單字或片語不同。 這種模式的範例可能是:

  • 「我有個關於 product 的問題」,其中 product 為潛在產品的清單。
  • 「建立 object color」,其中 object 為幾何圖形的清單,color 為色彩清單。

如需使用結構化文字進行定型的支援基底模型和地區設定清單,請參閱語言支援。 您必須將最新的基本模型用於這些地區設定。 對於不支援使用結構化文字進行定型的地區設定,此服務會在使用純文字資料進行定型的過程中,採用未參考任何類別的所有定型句子。

結構化文字檔案的副檔名應為 .md。 檔案大小上限為 200 MB,且文字編碼必須是 UTF-8 BOM。 Markdown 的語法與 Language Understanding 模型中的語法相同,特別是清單實體和範例表達語句。 如需完整 Markdown 語法的詳細資訊,請參閱 Language Understanding Markdown

以下是可支援 Markdown 格式的重要詳細資料:

屬性 說明 限制
@list 範例句子中可參考的項目清單。 最多 20 個清單。 每個清單最多 35000 個項目。
speech:phoneticlexicon 根據通用音素集合的拼音發音清單。 發音會針對出現在清單或定型句子中的每個實例進行調整。 假如您有一個聽起來像是 "cat" 的字,而且您想要將發音調整為 "k ae t",則可以將 - cat/k ae t 新增至 speech:phoneticlexicon 清單。 最多 15000 個項目。 每個字組最多兩個發音數。
#ExampleSentences 井號 (#) 用於分隔範例句子的區段。 區段標題只能包含字母、數字和底線。 範例句子應反映模型預期的語音範圍。 定型句子可以使用左右大括弧 ({@list name}) 來參照 @list 底下的項目。 您可以在相同的定型句子中參考多個清單,或是完全不參考。 檔案大小上限為 200 MB。
// 批註遵循雙斜線 (//) 格式。 不適用

以下是結構化文字檔的範例:

// This is a comment because it follows a double slash (`//`).

// Here are three separate lists of items that can be referenced in an example sentence. You can have up to 10 of these.
@ list food =
- pizza
- burger
- ice cream
- soda

@ list pet =
- cat
- dog
- fish

@ list sports =
- soccer
- tennis
- cricket
- basketball
- baseball
- football

// List of phonetic pronunciations
@ speech:phoneticlexicon
- cat/k ae t
- fish/f ih sh

// Here are two sections of training sentences. 
#TrainingSentences_Section1
- you can include sentences without a class reference
- what {@pet} do you have
- I like eating {@food} and playing {@sports}
- my {@pet} likes {@food}

#TrainingSentences_Section2
- you can include more sentences without a class reference
- or more sentences that have a class reference like {@pet} 

用於定型的發音資料

專門或獨創的字組可能會有獨特的發音。 如果字組可以分為較小的字組來發音,則系統就能辨識這些字組。 例如,若要辨識 “Xbox”,請發音 “X box”。 這種方法不會提高整體精確度,但可以改善這個關鍵字和其他關鍵字的辨識。

您可以提供自訂發音檔案來改善辨識。 請勿使用自訂發音檔案來改變常見單字的發音。 如需支援自訂發音的語言清單,請參閱語言支援

注意

除了結構化文字訓練資料以外,您可以任何其他訓練資料集來搭配發音檔案使用。 發音資料若要搭配結構化文字使用,就必須位於結構化文字檔案內。

口語形式是拼出的語音順序。可以由字母、單字、音節或全部三種的組合構成。 此表格包含一些範例:

辨識的顯示形式 口語形式
3CPO three c p o
CNTK c n t k
IEEE i triple e

您以單一文字檔提供發音。 包含口語語句,以及每個語句的自訂發音。 檔案中的每個資料列都應該以辨識的格式、定位字元,以及空格分隔的注音序列開始。

3CPO    three c p o
CNTK    c n t k
IEEE    i triple e

請參閱下表,以確保您的發音資料集檔案有效且格式正確。

屬性
文字編碼 UTF-8 BOM (英文也支援 ANSI)
每行的發音數 1
檔案大小上限 1 MB (免費層 1 KB)

用於訓練或測試的音訊資料

音訊資料最適合用於測試 Microsoft 的基準語音轉換文字模型或自訂模型的正確性。 請記得,音訊資料是用來檢查特定模型效能方面的語音正確性。 若您想要量化模型的正確性,請使用音訊 + 人工標記的轉錄內容

注意

用於訓練的音訊資料只能在 en-US 的地區設定中取得預覽版。 其他地區設定若要使用音訊資料進行訓練,還必須提供人工標記的文字記錄

自訂語音專案需要具有這些屬性的音訊檔案:

重要

這些是僅限音訊定型和測試的需求。 它們與音訊 + 人工標記的文字記錄定型和測試不同。 如果您要使用音訊 + 人工標記的文字記錄定型和測試,請參閱本節

屬性
File format RIFF (WAV)
採樣速率 8,000 Hz 或 16,000 Hz
通道 1 (mono)
每個音訊的長度上限 兩小時
樣本格式 PCM,16 位元
封存格式 .zip
封存大小上限 2 GB 或 10,000 個檔案

注意

當您上傳定型和測試資料時,.zip 檔案大小不可超過 2 GB。 若您需要更多資料來進行定型,請將資料分割成數個 .zip 檔案並分別上傳。 稍後,您可選擇從多個資料集進行定型。 不過,您僅能從單一資料集進行測試。

使用 SoX 來驗證音訊屬性,或將現有音訊轉換成適當格式。 以下是幾個 SoX 命令範例:

活動 SoX 命令
檢查音訊檔案格式。 sox --i <filename>
將音訊檔案轉換成單一通道 16 位元、16 KHz。 sox <input> -b 16 -e signed-integer -c 1 -r 16k -t wav <output>.wav

自訂定型的顯示文字格式設定資料

深入了解準備顯示文字格式設定資料使用語音轉換文字的顯示文字格式設定

自動語音辨識輸出顯示格式對於下游工作至關重要,且單一尺寸並非適用於所有情況。 新增自訂顯示格式規則可讓使用者定義自己的語彙到顯示格式規則,以改善 Microsoft Azure 自訂語音服務的語音辨識服務品質。

它可讓您完全自訂顯示輸出,例如新增重寫規則以大寫和重新制訂特定單字、新增輸出中的粗話字詞和遮罩、為特定模式 (如數字、日期、電子郵件地址) 定義進階 ITN 規則;或保留一些片語並使其不受任何顯示流程的影響。

例如:

自訂格式設定 顯示文字
我的 contoso 財務編號是 8BEV3
將「Contoso」改為大寫 (透過 #rewrite 規則)
格式化財務編號 (透過 #itn 規則)
我的 Contoso 財務編號是 8B-EV-3

如需使用結構化文字進行定型的支援基底模型和地區設定清單,請參閱語言支援。 顯示格式檔案的副檔名應為 .md。 檔案大小上限為 10 MB,且文字編碼必須是 UTF-8 BOM。 如需自訂顯示格式規則的詳細資訊,請參閱顯示格式化規則最佳做法。

屬性 說明 限制
#ITN 反轉文字正規化規則的清單,可定義特定顯示圖樣,例如數字、地址和日期。 最多 200 行
#rewrite 重寫配對的清單,因大寫和拼字更正等原因取代特定字詞。 最多 1,000 行
#profanity 不需要的字詞清單,將在顯示和遮罩輸出中將其遮罩為 ******,位於 Microsoft 內建粗話清單的上方。 最多 1,000 行
#test 單元測試案例清單,用來驗證顯示規則是否如預期運作,包括語彙格式輸入和預期的顯示格式輸出。 檔案大小上限為 10 MB

以下是顯示格式檔案的範例:

// this is a comment line
// each section must start with a '#' character
#itn
// list of ITN pattern rules, one rule for each line
\d-\d-\d
\d-\l-\l-\d
#rewrite
// list of rewrite rules, each rule has two phrases, separated by a tab character
old phrase	new phrase
# profanity
// list of profanity phrases to be tagged/removed/masked, one line one phrase
fakeprofanity
#test
// list of test cases, each test case has two sentences, input lexical and expected display output
// the two sentences are separated by a tab character
// the expected sentence is the display output of DPP+CDPP models
Mask the fakeprofanity word	Mask the ************* word

下一步