語音辨識

已完成

備註

有關更多詳細信息,請參閱 文本和圖像 選項卡!

語音辨識,也稱為語音轉文字,可讓應用程式將口語轉換為書面文字。 從聲波到文字的旅程涉及六個協調階段:捕獲音訊、準備特徵、建模聲學模式、應用語言規則、解碼最可能的單字以及完善最終輸出。

音訊擷取:將類比音訊轉換為數位音訊

當麥克風將聲波轉換為數位訊號時,語音辨識就開始了。 系統每秒對類比音訊進行數千次取樣 (對於語音應用,通常為每秒 16,000 個樣本 (16 kHz),並將每次測量值儲存為數值。

音頻波形圖。

備註

為什麼取樣率很重要:

  • 更高的速率(例如音樂的 44.1 kHz)可以捕捉更多細節,但需要更多處理。
  • 語音辨識在 8 kHz 至 16 kHz 之間平衡清晰度和效率。
  • 背景噪音、麥克風品質以及與揚聲器的距離直接影響下游精度。

在進入下一階段之前,系統通常會應用基本濾波器來消除嗡嗡聲、咔嗒聲或其他可能使模型感到困惑的背景噪音。

預處理:提取有意義的特徵

原始音訊樣本包含太多資訊,無法進行有效的模式辨識。 預處理將波形轉換為緊湊的表示,突出語音特徵,同時丟棄絕對音量等不相關的細節。

梅爾頻率倒頻譜係數 (MFCC)

MFCC 是語音辨識中最常見的特徵擷取技術。 它透過強調語音能量集中的頻率並壓縮不太重要的範圍來模仿人耳感知聲音的方式。

MFCC 的運作方式:

  1. 音訊分割成幀:將訊號分割成重疊的 20-30 毫秒視窗。
  2. 應用傅立葉變換: 將每個幀從時域轉換為頻域,揭示存在哪些音高。
  3. 對應至梅爾比例:調整頻率區間以符合人類的聽覺靈敏度,因為我們對低頻比高頻更加敏感。
  4. 提取係數: 計算一小組數字(通常是 13 個係數),以總結每個幀的光譜形狀。

MFCC 功能對應的圖表。

結果是一系列特徵向量 (每框架一個),無需存儲每個樣本即可擷取音頻的聲音。 這些向量成為聲學建模的輸入。

向量是按列提取的,每個向量代表每個時間範圍的 13 個 MFCC 特徵係數值:

Frame 1: [ -113.2,  45.3,  12.1,  -3.4,  7.8,  ... ]  # 13 coefficients
Frame 2: [ -112.8,  44.7,  11.8,  -3.1,  7.5,  ... ]
Frame 3: [ -110.5,  43.9,  11.5,  -2.9,  7.3,  ... ]

聲學建模:辨識音素

聲學模型學習音訊特徵和 音素之間的關係,音素是區分單字的最小聲音單位。 英語使用大約 44 個音素;例如,「貓」一詞由三個音素組成:/k/、/æ/ 和 /t/。

從特徵到音素

現代聲學模型使用 變壓器架構,這是一種擅長序列任務的深度學習網路。 轉換器處理 MFCC 特徵向量並預測每個時刻最有可能出現的音素。

Transformer 模型透過以下方式實現有效的音素預測:

  • 注意力機制: 該模型檢查周圍的框架以解決歧義。 例如,音素 /t/ 在“top”的開頭和“bat”的結尾聽起來不同。
  • 並行處理: 與舊的循環模型不同,變壓器同時分析多個幀,從而提高速度和準確性。
  • 情境化預測: 網路了解到某些音素序列在自然語音中經常出現。

聲學建模的輸出是對每個音訊框架中的音素進行的機率分佈。 例如,第 42 幀可能顯示 /æ/ 的 80% 置信度,/ɛ/ 的置信度為 15%,其他音素的置信度為 5%。

備註

音素是特定於語言的。 在英語音素上訓練的模型在不重新訓練的情況下無法識別普通話聲調。

語言建模:預測單詞序列

僅靠音素預測並不能保證準確的轉錄。 聲學模型可能會混淆「他們的」和「那裡」,因為它們共用相同的音素。 語言模型透過應用詞彙、文法和常見單字模式的知識來解決歧義。 模型指導詞序預測的一些方式包括:

  • 統計模式:模型知道「天氣很好」在訓練資料中出現的頻率高於「無論很好」。
  • 內容感知:在聽到「我需要」後,模型會期望像「去」或「完成」這樣的動詞,而不是像「桌子」這樣的名詞。
  • 領域適配: 根據醫學或法律術語訓練的自訂語言模型可提高特殊案例的準確性。

解碼:選擇最佳的文字假設

解碼演算法會搜尋數百萬個可能的單字序列,以找到最符合聲學和語言模型預測的轉錄。 此階段平衡了兩個相互競爭的目標:忠實於音訊訊號,同時產生可讀、語法正確的文字。

波束搜索解碼:

最常見的技術是 波束搜索,在處理每個音頻幀時會維護得分最高的部分轉錄的候選列表(“波束”)。 在每一步中,它都會用下一個最可能的詞來擴展每個假設,修剪低分路徑,並只保留最佳候選者。

針對三秒鐘的表達,解碼器可能會評估數千種假設,然後再選擇「請在星期五之前傳送報告」,而不是「請在星期五發送報告購買」等候選項目。

謹慎

解碼是計算密集型的。 即時應用程式透過限制波束寬度和假設深度來平衡準確性和延遲。

後處理:細化輸出

解碼器會產生原始文本,通常需要在呈現前進行清理。 後處理會套用格式規則和更正,以提高可讀性和準確性。

常見的後處理任務:

  • 大寫: 將「你好,我的名字是山姆」轉換為「你好,我的名字是山姆」。
  • 標點符號恢復: 根據韻律和語法添加句點、逗號和問號。
  • 數字格式: 將「一千二十三」改為「1,023」。
  • 褻瀆過濾: 在政策要求時遮蓋或刪除不適當的字詞。
  • 反向文字正規化: 將「下午三點」等口語形式轉換為「下午三點」。
  • 置信度評分: 在醫療轉錄等關鍵應用程式中標記低置信度單字以供人工審查。

Azure Speech 會回傳最終的轉錄,並附帶字數級時間戳和信心分數等元資料,讓您的應用程式能標示不確定的段落或觸發備援行為。

管線如何協同運作

每個階段都建立在前一個階段的基礎上:

  1. 音訊擷取提供 原始訊號。
  2. 前置處理 會擷取出可突顯語音模式的 MFCC 特徵。
  3. 聲學建模 使用 Transformer 網路預測音素機率。
  4. 語言模型利用 詞彙和語法知識。
  5. 解碼 搜尋最佳單字序列。
  6. 後處理格式化文字以便於人類讀者閱讀。

透過分離關注點,現代語音辨識系統在語言、口音和聲學條件下實現了高精度。 當轉錄品質不足時,您通常可以將問題追溯到一個階段,即音訊擷取不佳、語言模型訓練不足或過於激進的後處理,並相應地進行調整。