Intelligent speech topic (III): Pan speech recognition
語音識別ASR(Auto Speech Recognition)負(fù)責(zé)將輸入的語音信號轉(zhuǎn)化為文本識別結(jié)果。
ASR拿到的語音信號一般是經(jīng)過VAD處理后的語音,音頻中的靜默、非語音的端頭和端尾部分應(yīng)當(dāng)已經(jīng)被切割掉。(語音開頭和結(jié)尾處的靜默語音是一定程度上能提升語音識別率的,尤其針對短句子。)
語音信號首先進(jìn)行特征提取,將語音信息進(jìn)行數(shù)字量化,聲學(xué)模型描述出語音的單個發(fā)音特點,發(fā)音詞典和語言模型描述出發(fā)音之間的關(guān)系,之后解碼器基于這兩個模型組合的所有可能組合,找到最優(yōu)解,給出最終的識別結(jié)果。
ASR功能劃分核心模塊按功能劃分為以上部分,而語音信號中的從提取信息的數(shù)據(jù)流上分為以下部分。
語音信息流整個語音識別的過程可以概況為兩個核心學(xué)科的綜合應(yīng)用,一個是聲學(xué),一個是語言學(xué)。
語音識別中的聲學(xué)之前大量的篇章講了語音信號處理,基于聲學(xué)場景,增強(qiáng)我們需要識別的聲音,抑制我們不需要識別的聲音,怎么現(xiàn)在這里又要講聲學(xué),有什么區(qū)別嗎?
當(dāng)然有的,信號處理的聲學(xué)我們關(guān)注的是空間、聲源、噪音的相互影響,關(guān)注的是環(huán)境層面的聲學(xué);而語音識別中的聲學(xué),關(guān)注的是語音和語言中的聲學(xué),覆蓋的是目標(biāo)語言的聲學(xué)特點。
我們的每一個發(fā)音稱為“音素”,是語音中的最小單位,比如普通話發(fā)音中的元音,輔音。聲學(xué)模型通過將語音分幀,主要處理發(fā)音相關(guān)的工作,模型包含發(fā)聲的基本音素狀態(tài)和概率,覆蓋了目標(biāo)語言中的聲學(xué)特點,識別語音中最小的“音素”,再由多個音素組成單詞,再由單詞組成文本句子。
“Hello”聲學(xué)處理示意圖同樣的一句話,不同人、不同年紀(jì)、性別、口音、語速、音調(diào)產(chǎn)生的語音都是不同的,不同場景下安靜的,嘈雜,遠(yuǎn)距離的語音也是不同的。同一句“Hello”,不同的人,不同場景下經(jīng)過聲學(xué)處理得到的特征信息,“音素”差異是非常大的,人也很難聽清楚你說的到底是Hello還是Hallo,這也就是聲學(xué)處理的一大難點。
聲學(xué)部分作為語音識別的入口,需要盡可能的覆蓋各種差異性語音,盡量采集多種場景,安靜的,嘈雜的,遠(yuǎn)距離的發(fā)聲語料生成聲學(xué)模型,同時我們在做產(chǎn)品定位的時候一定要弄清楚應(yīng)用的場景。一方面是用戶群體,人員結(jié)構(gòu),口音等要求,例如兒童類語音產(chǎn)品大多需要針對兒童發(fā)音特點進(jìn)行定制;另一方面是噪音疊加場景,距離等要求,例如車載ASR引擎供應(yīng)商一般會疊加不同車速,車窗狀態(tài)的胎噪、風(fēng)噪等噪音數(shù)據(jù)進(jìn)行ASR的訓(xùn)練。
不同語種、方言、場景之間可能發(fā)音上都有很大的差異,如果不能兼容,這時就需要考慮單獨針對語言或者口音定制,例如不同的方言會用不同的聲學(xué)模型,在提高精度的同時降低計算量。
語音識別中的語言學(xué)ASR語言學(xué)部分同樣重要,ASR解碼器部分通過語言模型和發(fā)音詞典,在各種發(fā)音之間給出最有可能的文本識別結(jié)果。不同的語言,發(fā)音方式不同,詞匯不同,句型語法也存在差異。
例如漢語是一個單音節(jié),多聲調(diào)的語言,只有400多個無調(diào)音節(jié),帶調(diào)音節(jié)也只有1600多個,但常用的漢字卻有40000多,一音多字和一字多音的情況非常普遍。英語是多音節(jié),比如說good morning,Good有兩個音節(jié),morning也有兩個音節(jié),也不會有分詞的問題,所以整體上英文的識別難度比中文要低。漢語識別難點針對漢語普通話,語言學(xué)中影響ASR識別率的主要兩個點:
分詞:不同的分詞方式,會導(dǎo)致不同的識別結(jié)果。例如“等/幾首/需要/提前/多久?”和“登機(jī)/手續(xù)/要/提前/多久?”,雖說前句從語義上來說不太合理,但是后一句明顯也只有針對登機(jī)相關(guān)的場景才會這么說。同音字:一天下課,老師匆匆走進(jìn)教室說:“來兩個人,我要班花。”大家覺得很好玩,尤其是男生們,很興奮,表現(xiàn)十分積極,經(jīng)過一番周折終于選出了兩個很漂亮的女生,老師大手一揮:“走,和我到教務(wù)處搬花。”從上可以看出,語音識別需要結(jié)合語義場景和上下文才能達(dá)到一個最佳的效果,這是語言學(xué)應(yīng)當(dāng)解決的問題,我們一定要知道語音交互時的主題和領(lǐng)域是什么,才不至于對牛彈琴。從產(chǎn)品應(yīng)用層面,行業(yè)內(nèi)的解決方案:
針對各個垂直領(lǐng)域,通用、金融、醫(yī)療、稅務(wù)、車載等等區(qū)分不同的ASR,同時支持定制語言模型,額外收費。產(chǎn)品經(jīng)理梳理出需要的業(yè)務(wù)場景,尋找最優(yōu)的ASR方案。語音交互的業(yè)務(wù)流程中,例如有屏的語音交互場景,能夠限定或者知道用戶接下來會說什么,大概交互范圍是什么。ASR能夠支持個性化熱詞表,200-1000詞條的不等規(guī)模,應(yīng)用中通過上傳對應(yīng)的詞組和句式,定向的提升語音識別率。將ASR和NLP相結(jié)合,通過NLP語義和上下文理解,加權(quán)給出最終的識別結(jié)果。目前運算量和資源消耗都比較大,大多只做少量的糾正,無法達(dá)到完全的上下文理解。整個語音識別基于統(tǒng)計結(jié)果,基于上下文,沒有100%的正確,也沒有萬能的ASR,離開測試集,別說識別率。各個廠商對外宣傳的97%的識別率,使用新聞播音的語音測試可以有95%的識別率,而網(wǎng)絡(luò)課程中針對編程、高數(shù)等領(lǐng)域的識別只有75%(老師通常帶口音)。
即使相同的語言,不同的地域也會體現(xiàn)差異:對應(yīng)發(fā)音的變化、詞匯的變化和語法的變化,方言的支持通常意味著獨立的ASR。有時候市場上可能會有類似的要求,“我要產(chǎn)品能夠同時支持普通話、粵語、四川話、臺灣話、上海話等等,最好能夠自適應(yīng),用戶不管用什么方言自動識別出來。”這個從目前的技術(shù)現(xiàn)狀來說,無法通過單一的識別引擎做到。
方言和地域差異針對英文有美國英語、加拿大英語、UK英語、澳洲英語、印度英語等等,上圖右方的是Google 針對不同英語對應(yīng)的ASR識別引擎。
針對漢語有八大語系(方言),北方語系、吳語系、湘語系、贛語系、客家語系、閩南語系、閩東語系和粵語。
1、北方方言以北京話為代表,包括長江以北,鎮(zhèn)江以上九江以下的沿江地帶,四川、云南 、貴州和湖北、湖南兩省的西北部,廣西西部、北部一帶。使用人口占漢族總?cè)藬?shù)的70 %以上。2、吳方言以蘇州話和上海話為代表,主要包括江蘇省長江以南、鎮(zhèn)江以東部分(鎮(zhèn)江不在內(nèi))及長江以北靖江(除西南角新橋、東興等鄉(xiāng))、南通(縣城金沙鎮(zhèn)及周圍鄉(xiāng)村)、海門(北部包場等12鄉(xiāng))、啟東,浙江省大部分,上海市。使用人口占漢族總?cè)藬?shù)的8.4%左右。3、湘方言以長沙話為代表。分布在湖南省大部分地區(qū)。使用人口占漢族總?cè)藬?shù)的5%左右。4、贛方言贛方言 以南昌話為代表。主要分布在江西?。|部沿江地帶和南部除外)和湖北省東南一帶。使用人口占漢族總?cè)藬?shù)的2.4%左右。5、客家方言客家方言是以梅州市區(qū)(梅江區(qū)、梅縣區(qū))梅城口音的梅州話為代表。主要分布在廣東省東部、南部和北部,廣西省東南部,福建省西部,江西省南部,及湖南、四川的少數(shù)地區(qū)。使用人口占漢族總?cè)藬?shù)的4%左右。6、閩東方言閩東方言以福州話為代表,分布在福建省北部和臺灣省的一部分,通行于福建東部的福州十邑,寧德市和南平市部分地區(qū),三明尤溪縣,臺灣地區(qū)的馬祖列島等地。使用人口占漢族總?cè)藬?shù)的1.2%左右。7、閩南方言閩南方言以廈門話為代表。分布在福建省南部,廣東省東部和海南島的一部分,以及臺灣省的大部分。南洋華僑也有不少人說閩南方言。使用人口占漢族總?cè)藬?shù)的3%左右。8、粵方言粵方言以廣州話為代表。分布在廣東省大部分地區(qū)和廣西省東南部。南洋及其他一些國家的華僑,大多數(shù)都說粵方言。使用人口占漢族總?cè)藬?shù)的5%左右。這些差異都會在聲學(xué)模型、語言模型、發(fā)音詞典中體現(xiàn)。例如:四川話屬于北方語系,發(fā)音和普通話相似度很高,專有的四川話詞匯也比較少,所以大多普通話的ASR在加入了帶口音的數(shù)據(jù)之后能夠較好的支持四川話。而單獨的四川話識別引擎,語言模型可能和普通話差異不大,聲學(xué)模型和發(fā)音詞典則是完全只針對四川本地發(fā)音特點的支持,數(shù)據(jù)規(guī)模和成本等綜合考慮,通常這類方言識別引擎的成熟度是弱于普通話的。
粵語這類發(fā)音有很大差異的語言則無法在普通話引擎中做兼容,帶口音的普通話識別,方言的識別是兩個不同的命題。
前面把主要的聲學(xué)、語言學(xué)相關(guān)介紹之后,我們能夠?qū)SR的實現(xiàn)有了一個基本的了解,同時以上部分關(guān)注的都是對于識別率的影響,而除了識別率,ASR的處理耗時對于語音交互的體驗影響也非常大。當(dāng)音頻輸入之后,ASR基于音頻給出識別結(jié)果,處理的耗時同音頻長度正相關(guān),語音越長耗時越長。衡量ASR或者識別引擎的耗時,我們通常使用RTF指標(biāo),這個指標(biāo)越小對應(yīng)的耗時性能越好。
識別的耗時/語音長度 = 實時率(RTF),體現(xiàn)ASR的處理性能:800/1200 = 0.67曾經(jīng)傳統(tǒng)的語音識別方式都是等用戶說完話,然后對應(yīng)的語音上傳給ASR引擎進(jìn)行識別,這就導(dǎo)致了語音交互的時延和用戶說話的長短強(qiáng)相關(guān),體驗相對較差。在最近幾年由于算力和算法的持續(xù)提升,云端ASR服務(wù)能夠支持更多的計算量,云端引擎都會支持流式語音識別。即我們對設(shè)備說話的時候,引擎可以在開始說話第一個音傳入引擎之時就進(jìn)行識別,不斷的輸出識別結(jié)果,不斷的校準(zhǔn),當(dāng)用戶說完之后,VAD 檢測到用戶說話結(jié)束再由ASR輸出流式識別結(jié)果。
ASR耗時示例流式識別示例https:// ** .zhihu.com/video/這樣做到了邊聽邊識別,語音識別的時延只和最小單元的處理時間有關(guān)(RTF小于1的情況下,ASR處理時延可以穩(wěn)定在一定區(qū)間),開始說話即有響應(yīng),結(jié)合ASR結(jié)果文本回顯的的可視化效果,能夠明顯改善語音交互體驗。(進(jìn)一步的,我們還可以做到邊聽便理解,提升整個語音交互體驗,在后續(xù)章節(jié)詳細(xì)展開)
以上部分介紹了ASR的基本原理,聲學(xué)和語言學(xué)對于識別率的影響,不同方言的影響,時延對于交互體驗的影響,在產(chǎn)品應(yīng)用過程中需要根據(jù)實際的需求、場景進(jìn)行分析和定義,達(dá)到最優(yōu)的產(chǎn)品化語音識別效果。如果有對于技術(shù)細(xì)節(jié)想了解的更清楚的同學(xué)可以參考我之前的文章。
JimmyChen:語音交互(一)—— 語音識別本章的標(biāo)題稱為泛語音識別,因為我想進(jìn)一步展開話題討論下語音識別還能做什么。從本質(zhì)上來說,語音識別為一種模式識別技術(shù),輸入相應(yīng)的音頻而得到期望的文本、符號、狀態(tài)和模式,ASR是一個廣義上的應(yīng)用不應(yīng)該只局限于獲得文本,在音頻當(dāng)中我們還能夠獲得更多有價值的信息。
語音識別的泛應(yīng)用語音識別的泛應(yīng)用,從聲學(xué)和語言學(xué)上找到特征,可以是純粹的聲學(xué)特征,也可以是結(jié)合在一起的文本特征,主要包含喚醒詞識別、命令詞識別、語種識別、聲紋識別、關(guān)鍵事件監(jiān)測等等應(yīng)用。
喚醒詞識別、命令詞識別:可以理解為語音識別的簡化版,本質(zhì)都是做關(guān)鍵字識別(Key Word Spoting),基于輕量化的聲學(xué)模型,以及個位數(shù)級別的喚醒詞(語言模型),期望低功耗的快速響應(yīng),完成設(shè)備從休眠到等待語音指令狀態(tài)的快速切換,喚醒設(shè)備。關(guān)鍵事件檢測:識別聲音特征,檢測音頻流當(dāng)中的特殊事件,用來獲取環(huán)境相關(guān)事件信息,未來可以進(jìn)一步的補充用戶交互的環(huán)境信息。例如嬰兒啼哭,狗叫,警報聲等關(guān)鍵事件,攔截喊麥、嬌喘、 ** 、A ** R等違法違規(guī)音頻。語種識別:在做ASR之前能夠判斷用戶是用的哪一種語言類型,再調(diào)用指定的ASR進(jìn)行識別。目前的成熟度較低,除非語言的本身差異性較大,同時需要判斷的語言類型少,否則通常都需要1分種左右的語音才能準(zhǔn)確判定。產(chǎn)品上如果確實需要類似的需求,可以考慮同時接多個不同語種的ASR引擎,將不同引擎的ASR結(jié)果再并行多語言NLP處理,基于語義輸出對應(yīng)語言的結(jié)果。(成本較高)特征識別:情緒識別,識別聲音特征中的性別、年齡、情緒等等元素,謊言識別等等,除了性別識別準(zhǔn)確率較高,其余部分目前主要處于研究階段,未達(dá)到可以產(chǎn)品化的成熟度。最后單說目前應(yīng)用較多的聲紋識別(支付寶和微信都已開通聲紋鎖,大家可以體驗),基于人在講話時使用的發(fā)聲器官在尺寸和形態(tài)方面每個人的差異很大,所以任何兩個人的聲紋圖譜都有差異。不同人的聲音在頻譜圖中共振峰的分布情況不同,聲紋識別正是通過比對兩段語音的說話人在相同音素上的發(fā)聲來判斷是否為同一個人。識別聲音特征,進(jìn)行1:1和1:N的說話人聲紋特征識別,用于身份校驗或者身份辨別。
聲紋識別聲紋識別主要包含聲紋注冊和聲紋識別兩個核心部分。
聲紋注冊:用戶通過長語音注冊,識別引擎提取聲紋特征并保存聲紋數(shù)據(jù)庫。聲紋識別:用戶提供語音,識別引擎提取聲紋特征比對聲紋數(shù)據(jù)庫,給出識別結(jié)果。基于提供識別的語音文本和注冊的文本是否相同,分為文本無關(guān)和文本相關(guān)兩種常見?;诒葘r是做1:1比對,還是1:N檢索,分為1:1和1:N兩種不同的應(yīng)用場景。文本相關(guān)場景:注冊文本同驗證文本相同的情況,準(zhǔn)確性更高,針對高安全場景。文本無關(guān)場景:注冊文本和驗證文本不同的情況,自由度更高,針對個性化場景。1:1的場景在開卡、開戶、注冊、登錄、解鎖、支付等多場景下,進(jìn)行聲紋比對,確保身份認(rèn)證安全。1:N的場景在個性化推薦、門禁、考勤等場景下,進(jìn)行聲紋檢索,根據(jù)用戶畫像精準(zhǔn)匹配身份,實現(xiàn)業(yè)務(wù)效果。聲紋識別視具體應(yīng)用場景,提出不同的安全性要求,通常支付類和鎖類應(yīng)用需要更高的安全級別。主要采用活體檢測,隨機(jī)驗證文本,抵御錄音重放攻擊。采用針對人工語音的非自然檢測模型識別波形拼接、語音合成等攻擊方式。
當(dāng)我們要采用語音相關(guān)的技術(shù)方案時,基于我們的語音交互場景,需要使用不同的語音技術(shù)。如果制定選型標(biāo)準(zhǔn),我們應(yīng)該關(guān)注那些語音指標(biāo),哪些是會對我們的產(chǎn)品造成明確影響的,羅列以下供大家參考:
主要指標(biāo)希望通過此文能夠讓大家對泛語音識別有更好的了解。
Disclaimer: This article is transferred from other platforms and does not represent the views and positions of this site. If there is infringement or objection, please contact us to delete. thank you! |