AI算法測試——語音識別(ASR)模型評估指標探索

2020-08-30 軟體測試開發技術棧



如上圖,我們通過微信發送了一段語音,在對語音進行轉文字時。語音識別引擎首先會將把這段語音進行分幀(切分成若干小段),然後利用聲學模型將提取的每一幀的聲學特徵識別為一個個「狀態」,多個狀態會組合成一個音素(語音中的最小的單位),音素構成了諸多同音字,再利用 語言模型 從諸多同音字中挑選出可以使 語義完整的字(例如 不會把「吃飯」識別成「痴泛」),最後將文本展示出來。


語音識別(ASR) 過程

自動語音識別技術(Automatic Speech Recognition)是一種將人的語音轉換為文本的技術。


所謂語音識別,就是將一段語音信號轉換成相對應的文本信息,系統主要包含特徵提取、聲學模型,語言模型以及字典與解碼四大部分。


此外為了更有效地提取特徵往往還需要對所採集到的聲音信號進行濾波、分幀等音頻數據預處理工作,將需要分析的音頻信號從原始信號中合適地提取出來。


特徵提取工作將聲音信號從時域轉換到頻域,為聲學模型提供合適的特徵向量


聲學模型中再根據聲學特性計算每一個特徵向量在聲學特徵上的得分,而語言模型則根據語言學相關的理論,計算該聲音信號對應可能詞組序列的概率。


最後根據已有的字典,對詞組序列進行解碼,得到最後可能的文本表示。

其中大致過程梳理如下(為方便理解忽略部分嚴謹性):

預處理:

  • 首尾端的靜音切除,降低幹擾,靜音切除的操作一般稱為VAD。
  • 聲音分幀,也就是把聲音切開成一小段一小段,每小段稱為一幀,使用移動窗函數來實現,不是簡單的切開,各幀之間一般是有交疊的。

特徵提取:主要算法有線性預測倒譜係數(LPCC)和Mel 倒譜係數(MFCC),目的是把每一幀波形變成一個包含聲音信息的多維向量。

聲學模型(AM):通過對語音數據進行訓練獲得,輸入是特徵向量,輸出為音素信息。

字典:字或者詞與音素的對應, 簡單來說, 中文就是拼音和漢字的對應,英文就是音標與單詞的對應。

語言模型(LM):通過對大量文本信息進行訓練,得到單個字或者詞相互關聯的概率。

解碼:就是通過聲學模型,字典,語言模型對提取特徵後的音頻數據進行文字輸出。


語音識別流程的示例(為方便理解忽略部分嚴謹性):

語音信號

今天又是美好的一天呀

特徵提取

今天又是美好的一天呀 → [[123456],[],[]]

聲學模型

[[123456],[],[]] → j i n t i a n y o u s h i m e i h a o d e y i t i a n

字典

今:j īn ; 進:j ìn ; 天:t i ān; 填:t i án ; 又:y òu; 佑:y òu;是:sh ì; 美:m ěi ; 妹:m èi; 好:h ǎo; 的:d e; 一:y ī; 甜:t i án;

語言模型(概率)

今天:0.7456; 又:0.6524;是:0.9301;又是:0.6012;美好:0.7621,沒好:0.5049,的:0.9871,;一:0.9123,天:0.6785,一天:0.9043;呀:0.7849,壓:0.4356

輸出文字

今天又是美好的一天呀



語音識別(ASR) 評估指標

句錯誤率(SER)

識別錯誤的句子個數 除以總的句子個數,即為SER。

計算公式

SER = 錯誤句數 / 總句數 * 100%

可以理解為以下幾種情況會導致句子錯誤:

  • 由於字多而導致句子不對。如:你好呀。被識別為:你丫 好呀。
  • 由於字少而導致句子不對。如:你好呀。被識別為:你好。
  • 由於字不對應而導致句子不對。如:你好呀。被識別為:你好丫。


句正確率(S.Corr)

識別正確的句子個數 除以總的句子個數,即為S.Corr。

計算公式

S.Corr = 1 - SER = 正確句數 / 總句數 * 100%


字錯誤率(WER/CER)

為了使識別出來的詞序列(實際識別結果)和標準的詞序列(期望識別結果)之間保持一致,需要進行替換、刪除或者插入某些詞,這些插入、替換或刪除的詞的總個數,除以標準的詞序列中詞的總個數的百分比,即為WER。

WER是語音識別領域的關鍵性評估指標,WER越低表示效果越好。

  • WER(Word Error Rate),詞錯誤率,但一般稱為字錯誤率。
  • CER(Character Error Rate),字符錯誤率,中文一般用CER來表示 字錯誤率。

為什麼存在這兩種表示方式,原因如下:

英文: Today   2個字符

通俗點的解釋就是:

  • 英文,最小單元是單詞,語音識別應該用&34;(WER)。
  • 中文,最小單元是字符,語音識別應該用「字符錯誤率」(CER)。

計算公式

WER = (S + D + I ) / N = (S + D + I ) / (S + D + C) * 100%

公式註解

S: 替換的字數,如 你好呀。被識別為:你好丫。D: 刪除的字數,如 你好呀。被識別為:你好。 I: 插入的字數,如 你好呀。被識別為:你丫 好呀。  ​C: 正確的字數.​N: 為(S替換 + D刪除 + C正確)的字數,需要注意的是這並不等於原句總字數或者識別結果字數。


同時,在計算公式中因為有插入字數的計算,所以理論上WER/CER存在大於100%的可能。但實際場景,特別是大樣本量的時候,基本太不可能出現。,否則就太差了,不可能被商用。


字準確率(W.Acc)

字準確率(Word Accuracy),就是1-字錯誤率的結果。

計算公式

W.Acc = 1 - WER(或CER) = (N - D - S - I) / N = (C - I) / (S + D + C) * 100%

公式註解

S: 替換的字數,如 你好呀。被識別為:你好丫。​D: 刪除的字數,如 你好呀。被識別為:你好。 ​I: 插入的字數,如 你好呀。被識別為:你丫 好呀。  ​C: 正確的字數.​N: 為(S替換 + D刪除 + C正確)的字數,需要注意的是這並不等於原句總字數或者識別結果字數。


字正確率(W.Corr)

字正確率(Word Correct),通常說的某某ASR識別率(識別正確率) 達到97%,就是指的字正確率,計算中忽略了插入的字數。

計算公式

W.Corr = ( N - D - S ) / N = C/ (S + D + C) * 100%

公式註解

S: 替換的字數,如 你好呀。被識別為:你好丫。​D: 刪除的字數,如 你好呀。被識別為:你好。 ​I: 插入的字數,如 你好呀。被識別為:你丫 好呀。  ​C: 正確的字數.​N: 為(S替換 + D刪除 + C正確)的字數,需要注意的是這並不等於原句總字數或者識別結果字數。



語音識別(ASR)評估指標計算示例

識別結果僅存在刪除(D)情況

示例:​語音輸入: 今 天 又 是 美 好 的 一 天 呀​文本輸出: 今 天 又 是 美 好  ​

ASR 各指標計算結果,如下:

SER(句錯誤率) = 1 / 1 * 100%= 100 %​S.Corr(句正確率) = 1 - 1 * 100% = 0 %​WER/CER(字錯誤率) = (S + D + I ) / (S + D + C)  = (0 + 4 + 0) / (0 + 4 + 6)  = 40 %​W.Acc(字準確率) = (C - I) / (S + D + C) = (6 - 0) / (0 + 4 + 6)  = 60 %​W.Corr(字正確率) = C/ (S + D + C) = 6 / (0 + 4 + 6) = 60 %    


識別結果僅存在刪除(S)、替換(D)的情況

示例:​語音輸入: 今 天 又 是 美 好 的 一 天 呀​文本輸出: 今 天 有 是 美 好  ​

ASR 各指標計算結果,如下:

SER(句錯誤率) = (1 / 1) * 100%= 100 %​S.Corr(句正確率) = (1 - 1) * 100% = 0 %​WER/CER(字錯誤率) = (S + D + I ) / (S + D + C)  * 100% = (1 + 4 + 1) / (1 + 4 + 5) * 100% = 50 %​W.Acc(字準確率) = (C - I) / (S + D + C) * 100% = (5 - 0) / (1 + 4 + 5) * 100% = 50 %​W.Corr(字正確率) = C/ (S + D + C) * 100% = 5 / (1 + 4 + 5) * 100% = 50 %    


識別結果存在刪除(S)、替換(D)、插入(I)的情況

示例:​語音輸入: 今 天 又 是     美 好 的 一 天 呀​文本輸出: 今 天 有 是 更 美 好  ​

ASR 各指標計算結果,如下:

SER(句錯誤率) = (1 / 1) * 100%= 100 %​S.Corr(句正確率) = (1 - 1) * 100% = 0 %​WER/CER(字錯誤率) = (S + D + I ) / (S + D + C) * 100% = (1 + 4 + 1) / (1 + 4 + 5) * 100% = 60 %​W.Acc(字準確率) = (C - I) / (S + D + C) * 100% = (5 - 1) / (1 + 4 + 5)  * 100% = 40 %​W.Corr(字正確率) = C / (S + D + C) * 100% = 5 / (1 + 4 + 5) * 100% = 50 %    


識別結果字數小於語料字數,且全錯的情況

示例:​語音輸入: 今 天 又 是 美 好 的 一 天 呀​文本輸出: 上 山 打 老 虎 ​

ASR 各指標計算結果,如下:

SER(句錯誤率) = (1 / 1) * 100%= 100 %​S.Corr(句正確率) = (1 - 1) * 100% = 0 %​WER/CER(字錯誤率) = (S + D + I ) / (S + D + C) * 100% = (5 + 5 + 0) / (5 + 5 + 0) * 100% = 100 %​W.Acc(字準確率) = (C - I) / (S + D + C) * 100% = (0 - 0) / (5 + 5 + 0) * 100% = 0 %​W.Corr(字正確率) = C / (S + D + C) * 100% = 0 / (5 + 5 + 0) * 100% = 0 %    


識別結果字數大於語料字數,且全錯的情況

示例:​語音輸入: 今 天 又 是 美 好 的 一 天 呀​文本輸出: 景 甜 有 時 妹 號 得 億 田 丫 上 山 打 老 虎 ​

ASR 各指標計算結果,如下:

SER(句錯誤率) = (1 / 1) * 100%= 100 %​S.Corr(句正確率) = (1 - 1) * 100% = 0 %​WER/CER(字錯誤率) = (S + D + I ) / (S + D + C) * 100% = (10 + 0 + 5) / (10 + 0 + 0) * 100% = 150 %​W.Acc(字準確率) = (C - I) / (S + D + C) * 100% = (0 - 5) / (10 + 0 + 0) * 100% = -50 %​W.Corr(字正確率) = C / (S + D + C) * 100% = 0 / (10 + 0 + 0) * 100% = 0 %    

相關焦點

  • 目前換臉技術識別人臉的模型是不能更換的
    把常見的人臉辨識任務都分解成單一任務來評估效果,比如面部定位算法識別輪廓、識別鼻子嘴巴以及識別上半臉圖片。抽取特徵並實現分類。面部信息和識別結果一起獲取損失函數。從相似的面部特徵樣本中找到最相似的特徵圖像和用於輸出特徵圖像進行預測。臉部特徵圖像輸入模型學習,然後把特徵圖像放到svm目標函數中。特徵選擇。
  • AI大廠算法測試心得:人臉識別關鍵指標有哪些?
    對於開發者而言,面對多種算法,如何進一步了解算法性能至關重要。因此,本文將從算法原理、應用場景、關鍵指標一一進行介紹。人臉識別算法原理簡述在介紹關鍵性能指標之前,我們需要釐清人臉識別的技術原理。【了解這些指標,你也能評價算法】在理想狀態下,人臉識別準確率越高越好,但算法在產品化時會受到逆光、暗光、強光、識別角度等諸多實際因素的影響。因此,脫離使用場景單獨考量算法的識別準確率參考價值不大。那麼我們又該如何合理且有效的判斷一款算法呢?
  • 一文搞懂分類算法中常用的評估指標
    分類算法的評估指標有很多種,選擇使用哪一種評估指標,應該根據實際情況來進行選擇,而不能一概而定。可以將不同模型對同一數據集的ROC曲線繪製在同一笛卡爾坐標系中,ROC曲線越靠近左上角,說明其對應模型越可靠。也可以通過ROC曲線下面的面積(Area Under Curve, AUC)來評價模型,AUC越大,模型越可靠。
  • 猿桌會 | 語音識別技術分享
    雷鋒網AI研習社訊:近日,雲從科技在語音識別技術上取得重大突破,在全球最大的開源語音識別數據集Librispeech上刷新了世界紀錄,錯詞率(Worderrorrate,WER)降到了2.97%,將Librispeech的WER指標提升了25%,超過阿里、百度、約翰霍普金斯大學等企業及高校,大幅刷新原先記錄。
  • 語音轉文字是怎麼進行數據算法測試的?讓 AI晶片來告訴你
    短語序列的概率我們通過微信發送語音,並將語音轉換為文本,語音識別引擎將首先對語音進行分幀(將其分成幾個片段),然後使用聲學模型將從每個幀中提取的聲學特徵識別為「狀態」,並將多個狀態組合成一個音素(語音中的最小單位),該音素構成許多同音字,然後使用語言模型從許多同音字中選擇能夠使語義完整的單詞
  • 關於開展中文語音識別和語音合成基礎服務可信評估的通知
    2019年,中國人工智慧產業發展聯盟AIIA(以下簡稱「聯盟」)評估組開展了中文語音識別和語音合成可信評估系列工作,立項討論並發布相應評估規範,共有四家企業參與首輪中文語音合成可信評估並獲得證書,在質量基準度、定製相似度和場景表現力都表現突出,總體在7分以上(滿分10分)。
  • 要玩VoLTE,先搞定語音質量評估與測試
    主觀評價方法比較繁雜,為了排除偶然因素,減少評價波動方差,需要參與評價的評聽人數量較多(一般40人以上)。但是由於人是語音的最終接受者,這種評價方法是語音質量的真實反映。   客觀評估是指用機器自動判別語音質量.它從原理上又可分為兩類評價方式:基於輸入輸出方式的主動式評估和基於輸出方式的被動式評估。
  • 什麼是邊緣計算(Edge AI)?
    為了實現這些目標,邊緣計算可以在雲上靠深度學習生成數據,而在數據原點——即設備本身(邊緣)執行模型的推斷和預測。以工廠的工業機器人為例。AI技術可以在這裡以人類無法企及的速度,對來自監控攝像頭和傳感器的大量多模態數據進行可視化和評估,可以用它來檢測生產線上人類可能忽略的故障數據。這類物聯網結構可以存儲生產線上產生的大量數據,並通過機器學習進行分析。它們也是能夠提高工廠智能化程度的AI模型的核心。
  • AI產品經理需要了解的語音交互評價指標
    2、語音喚醒相關的指標先需要介紹下語音喚醒(Voice Trigger,VT)的相關信息。(1)語音喚醒的需求背景近場識別時,比如使用語音輸入法時,用戶可以按住手機上siri的語音按鈕,直接說話(結束之後鬆開);近場情況下信噪比(Signal to Noise Ratio, SNR)比較高,信號清晰,簡單算法也能做到有效可靠。
  • 語音識別算法(ASR)指標評估之編輯距離下WER計算圖解
    編輯距離為 3,其中1次替換錯誤(S),1次刪除錯誤(D),1次插入錯誤(I)。),縱軸為hyp(預測序列)。[1...j])進行比較,然後得出相應位置levenST[1,j]上的最少轉換步驟數,即編輯距離,如果兩個字母相等,則在從此位置的左(i ,j-1)+1,上(i -1,j)+1,左上(i -1,j-1)+0 三個數中獲取最小的值寫入(因左、上的值不可能低於左上的值,所以可以直接去左上的值);若不等,則在從此位置的左(i ,j-1),上(i -1,j),左上(i -1,j-1)三個位置中獲取最小的值再加上
  • Facebook最新語音算法曝光!自監督語音識別,錯誤率低至2.43%
    智東西11月6日消息,Facebook近日公開自動語音識別(ASR)領域的wave2vec機器學習算法細節,可以使用原始音頻作為訓練數據並提高準確性。wave2vec於今年年初問世,經過一年打磨,Facebook基於wav2vec的模型實現了2.43%的單詞錯誤率,準確率高於Deep Speech 2、監督遷移學習(Supervised Transfer Learning)等主流算法。以下是外媒相關報導的原文編譯。
  • 探境科技發布基於AI降噪算法的語音識別解決方案
    探境科技發布基於AI降噪算法的語音識別解決方案 探境科技 發表於 2019-12-29 10:25:55 AI晶片創企探境科技發布用於語音識別降噪的高計算強度神經網絡(HONN),並提出了增強識別一體化的端到端識別流程
  • ...解讀全新聲學模型與算法:2016年語音識別的重大進步丨硬創公開課
    2016 年語音識別領域有著不小的進展,其主要體現在模型方面的突破:Deep CNN 模型大熱,百度把 Deep CNN 應用於語音識別聲學建模中,將其與基於 LSTM 和 CTC 的端對端語音識別技術相結合,大大提升了語音識別能力;微軟則是把 ResNet 應用於語音識別,在產業標準 Switchboard 語音識別基準測試中,實現了詞錯率(WER)低至 5.9% 的新突破
  • 如何測試AI模型
    它已經啟動並運行了,你想控制它不會被自動部署的新版本模型破壞。在這種情況下,有一個純粹的黑盒方案:加載測試數據集,並驗證它是否有一個可接受的輸出(例如,將其與預部署階段的結果進行比較)。請記住:這不是關於精確匹配,而是關於最佳建議值。所以,你需要注意可接受的離散率。驗證部署的ML函數是否正確處理數據(即+/-反轉)。
  • 語音識別算法有哪些_語音識別特徵提取方法
    語音識別算法有哪些_語音識別特徵提取方法 網絡整理 發表於 2020-04-01 09:24:49   語音識別算法有哪些   本文列舉了幾種不同的語音識別算法
  • 谷歌實時多語言語音識別研究成果;AI算法診斷90%小兒急性闌尾炎
    然而問題在於,並非所有語言都具有大量可用的語料庫,這也就使得通過訓練來支撐的這些系統的難以獲得巨大數據量的模型。同時,這也正是谷歌研究人員正在探索將知識從數據豐富的語言應用於數據稀缺的語言的技術的原因。其以多語言語音解析器的形式取得研究成果,該解析器通過學習多種語言的轉錄從而實現研究突破。
  • 谷歌再獲語音識別新進展:利用序列轉導來實現多人語音識別和說話人...
    近日,他們又將多人語音識別和說話人分類問題融合在了同一個網絡模型中,在模型性能上取得了重大的突破。對於自動理解人類音頻的任務來說,識別「誰說了什麼」(或稱「說話人分類」)是一個關鍵的步驟。例如,在一段醫生和患者的對話中,醫生問:「你按時服用心臟病藥物了嗎?」患回答道:「Yes」。這與醫生反問患者「Yes?」的意義是有本質區別的。
  • 應用、算法、晶片,「三位一體」淺析語音識別
    雲知聲提供物聯網人工智慧技術,通過與格力等公司合作,把自己的語音識別技術集成到終端家電產品中,另外,雲知聲發布的『Pandora』語音中控方案,能夠大幅縮短產品智能化周期。啟英泰倫結合自己強大的硬體(終端智能語音識別晶片CI1006)及算法(深度學習語音識別引擎)優勢,提供離線與在線的整套語音識別方案,並在物聯網各個領域有廣泛的布局。
  • 語音識別開源工具PyTorch-Kaldi:兼顧Kaldi效率與PyTorch靈活性
    在長期的探索中,一次次重大的技術突破逐漸讓語音識別技術進入我們的日常生活。今天的 ASR 技術水平是前所未有的。高性能的語音識別給我們帶來了更多的生活體驗,我們擁有了可以對話的智能數字助手;它也在逐步改善相關領域的生產力水平。和很多偉大技術的應用一樣,語音識別技術的背後也是很多模塊的組合。對其實現流程的改進往往會從一定程度上節省開發成本,並且加快技術迭代的速度。
  • 從聲學模型算法總結2016年語音識別的重大進步丨硬創公開課
    直到 2006 年 Hinton 提出深度置信網絡(DBN),促使了深度神經網絡(DNN)研究的復甦。2009 年,Hinton 將 DNN 應用於語音的聲學建模,在 TIMIT 上獲得了當時最好的結果。2011 年底,微軟研究院的俞棟、鄧力兩位老師又把 DNN 技術應用在了大詞彙量連續語音識別任務上,大大降低了語音識別錯誤率。從此以後基於 DNN 聲學模型技術的研究變得異常火熱。