1 語音識別基礎
1.1 聲音特性
聲音是由物體振動產生的聲波。是通過介質傳播並能被人或動物聽覺器官所感知的波動現象。最初發出振動的物體叫聲源。聲音以波的形式振動傳播。聲音是聲波通過任何介質傳播形成的運動。
頻率:是每秒經過一給定點的聲波數量,它的測量單位為赫茲,1千赫或1000赫表示每秒經過一給定點的聲波有1000個周期,1兆赫就是每秒鍾有1,000,000個周期,等等。
音節:就是聽覺能夠自然察覺到的最小語音單位,音節有聲母、韻母、聲調三部分組成。一個漢字的讀音就是一個音節,一個英文單詞可能有一個或多個音節構成,並且按照音節的不同,可以分為不同的種類。
音素:它是從音節中分析出來的最小語音單位,語音分析到音素就不能再分了。比如,“她穿紅衣服”是5個音節,而“紅”又可進一步分為3個音素--h,o,ng。音素的分析需要一定的語音知識,但是,如果我們讀的慢一點是還可以體會到的。
音位:是指能夠區分意義的音素,比如bian,pian,bu,pu就是靠b,p兩個音素來區分的,所以b,p就是兩個音位,普通話的音位系統有元音音素10個(a,o,e,i,u,v,-i,-i,er,-e等),輔音音素22個(b,p,m,f,d,t,n,l,j,q,x,g,k,h,z,c,s,zh,ch,sh,r,ng)。
人耳能聽到的音頻范圍:20HZ--20KHZ。人說話的聲音頻率:300HZ--3.4KHZ。樂器的音頻范圍:20HZ--20KHZ。
1.2 語音時域特性
語音信號有時變特性,是一個非平穩的隨機過程。但在一個短時間范圍內其特性基本 保持不變,即語音的“短時平穩性”。
在時域,語音信號可以直接用它的時間波形表示出來。其中,清音段類似於白噪聲,具有較高的頻率,但振幅很小,沒有明顯的周期性;而濁音都具有明顯的周期性,且幅值較大,頻率相對較低。語音信號的這些時域特征可以通過短時能量、短時過零率等方法來分析。
1.2.1 短時能量
由於語音信號的能量隨時間而變化,清音和濁音之間的能量差別相當顯著。因此,對短時能量和短時平均幅度進行分析,可以描述語音的這種特征變化情況。
定義n時刻某語音信號的短時平均能量為:
式中,N為窗長,可見短時能量為一幀樣點值的加權平方和。特殊地,當窗函數為矩形窗時,有
1.2.2 短時幅度
短時能量的一個主要問題是對信號電平值過於敏感。由於需要計算信號樣值的平方和,在定點實現時很容易產生溢出。為了克服這個缺點,可以定義一個短時平均幅度函數來衡量語音幅度的變化:
上式可以理解為w(n)對|x(n)|的線性濾波運算,實現框圖如下。與短時能量比較,短時平均幅度相當於用絕對值之后代替了平方和,簡化了運算。
1.2.3 短時過零率
短時平均過零率是語音信號時域分析中的一種特征參數。它是指每幀內信號通過零值的次數。
①對有時間橫軸的連續語音信號,可以觀察到語音的時域波形通過橫軸的情況。
②在離散時間語音信號情況下,如果相鄰的采樣具有不同的代數符號就稱為發生了過零,因此可以計算過零的次數。
單位時間內過零的次數就稱為過零率。一段長時間內的過零率稱為平均過零率。如果是正弦信號,其平均過零率就是信號頻率的兩倍除以采樣頻率,而采樣頻率是固定的。因此過零率在一定程度上可以反映信號的頻率信息。短時平均過零率的定義為:
1.3 語音頻域特性 1.3.1 信號分類
根據式
計算信號能量(作用在單位電阻上的電壓信號 釋放的能量)可以將信號分為:
功率信號:能量無限,不能用能量表示,所以用平均功率表示;
能量信號:能量有限,平均功率為0;
1.3.2 頻譜
功率信號的頻譜(離散):
含義: 周期功率信號幅值(頻率為f0)經過傅里葉級數展開,被多個離散倍頻nf0表征,各頻點的幅值C(nf0)也即該頻點的貢獻權系數。
1.3.3 功率譜密度
功率信號的功率譜密度(連續):
含義:
將信號的功率按照頻點貢獻鋪在頻譜之上;
因其能量是無窮的,所以不能把能量鋪上去,只能用有限的功率;
對功率譜密度進行積分,能得到局部頻段承載的功率;
相比功率信號的頻譜突出各頻點對功率信號的信號幅值的貢獻,功率譜密度突出各頻點對功率信號的功率的貢獻。
1.3.4 頻譜密度
能量信號的頻譜密度(連續):
含義:
通過傅里葉變換將能量信號轉換到連續頻域上;
但因能量有限,不能使用離散貢獻頻點權系數(幾乎為0),只能使用頻譜密度來表征。
1.3.5 能量譜密度
能量信號的能量譜密度(連續):
含義:
將信號能量鋪在頻譜之上;
對能量譜密度進行局部積分,能得到局部頻段承載的能量;
相比能量信號的頻譜密度突出連續頻點對功率信號的信號幅值的貢獻,能量譜密度突出連續頻點對能量信號的能量的貢獻。
(AI大語音:語音信號時間上有限,且幅值有限,即是能量有限,頻率為0,應該是能量信號,不能計算功率譜。我們實際上做了一個假設,把語音分幀,每一幀都是某一個周期信號的一個周期,所以它是周期信號,周期信號就是功率信號。也就是在未分幀之前的確是能量信號。分幀后在做FFT的時候又在負無窮到正無窮上進行了周期擴長,所以才是功率信號。)
1.4 語音識別過程
所謂語音識別,就是將一段語音信號轉換成相對應的文本信息,系統主要包含特征提取、聲學模型,語言模型以及字典與解碼四大部分,此外為了更有效地提取特征往往還需要對所采集到的聲音信號進行濾波、分幀等音頻數據預處理工作,將需要分析的音頻信號從原始信號中合適地提取出來;特征提取工作將聲音信號從時域轉換到頻域,為聲學模型提供合適的特征向量;聲學模型中再根據聲學特性計算每一個特征向量在聲學特征上的得分;而語言模型則根據語言學相關的理論,計算該聲音信號對應可能詞組序列的概率;最后根據已有的字典,對詞組序列進行解碼,得到最后可能的文本表示。
預處理:1. 首尾端的靜音切除,降低對后續步驟造成的干擾,靜音切除的操作一般稱為VAD。2. 聲音分幀,也就是把聲音切開成一小段一小段,每小段稱為一幀,使用移動窗函數來實現,不是簡單的切開,各幀之間一般是有交疊的。
特征提取:主要算法有線性預測倒譜系數(LPCC)和Mel 倒譜系數(MFCC),目的是把每一幀波形變成一個包含聲音信息的多維向量。
聲學模型(AM):通過對語音數據進行訓練獲得,輸入是特征向量,輸出為音素信息。
字典:字或者詞與音素的對應, 簡單來說, 中文就是拼音和漢字的對應,英文就是音標與單詞的對應。
語言模型(LM):通過對大量文本信息進行訓練,得到單個字或者詞相互關聯的概率。
解碼:就是通過聲學模型,字典,語言模型對提取特征后的音頻數據進行文字輸出。
語音識別流程的舉例(只是形象表述,不是真實數據和過程):
1. 語音信號:PCM文件等(我是機器人)
2. 特征提取:提取特征向量[1 2 3 4 56 0 ...]
3. 聲學模型:[1 2 3 4 56 0]-> w o s i j i q i r n
4. 字典:窩:w o;我:w o;是:s i;機:j i;器:q i;人:r n;級:j i;忍:r n;
5. 語言模型:我:0.0786, 是:0.0546,我是:0.0898,機器:0.0967,機器人:0.6785;
6. 輸出文字:我是機器人;
附錄(魔鬼寫手)
——————
淺談則止,細致入微AI大道理
掃描下方“AI大道理”,選擇“關注”公眾號
歡迎加入!
▼下期預告▼
AI大語音——預處理
往期精彩回顧▼