AI產(chǎn)品經(jīng)理需了解的技術(shù)知識(shí):語音識(shí)別技術(shù)(2)
本文章主要介紹了語音識(shí)別技術(shù)語的算法包括動(dòng)態(tài)時(shí)間調(diào)整、隱馬爾可夫模型、BP神經(jīng)網(wǎng)絡(luò),目的是幫助PM了解語音技術(shù)方面的知識(shí),有助于語音類相關(guān)產(chǎn)品的設(shè)計(jì)~
語音信號(hào)是一種短時(shí)平穩(wěn)信號(hào),即時(shí)變的,十分復(fù)雜,同時(shí)也攜帶了很多有用信息,包括個(gè)人信息、語義等。因此特征參數(shù)提取的準(zhǔn)確率,直接影響語音識(shí)別結(jié)果的好壞。
信號(hào)的預(yù)處理就是為了保障特征參數(shù)提取準(zhǔn)確性的前期工作,這部分的介紹見上一篇文章?:AI產(chǎn)品經(jīng)理需了解的技術(shù)知識(shí):語音識(shí)別技術(shù)(1)。
語音識(shí)別算法
語音識(shí)別系統(tǒng)的本質(zhì)是模式識(shí)別系統(tǒng),而語音識(shí)別的過程就是根據(jù)模式匹配原則,按照一定的相似度法則,使未知的模型和模型庫中的某一個(gè)參考模型獲得最大匹配度的過程。
常見的語音識(shí)別算法主要有:模版匹配法,如動(dòng)態(tài)時(shí)間規(guī)整(DTW);隨機(jī)模型法,如隱馬爾可夫模型(HMM);基于人工神經(jīng)網(wǎng)絡(luò)(ANN)的算法。
1. 動(dòng)態(tài)時(shí)間規(guī)整
在孤立詞識(shí)別中,最為簡單有效的方法就是采用DTW算法,這個(gè)方法解決了相同詞但發(fā)音長短不同時(shí)的匹配問題。
首先,孤立詞是什么?
我個(gè)人的理解就像是自然語言處理中的分詞,即把一段文字劃分為若干單詞去模板庫匹配。區(qū)別在于:一個(gè)是文字,一個(gè)是語音。
文字是依據(jù)句法、語法、語義劃分,而語音則是通過端點(diǎn)檢測(cè)算法確定語音的起點(diǎn)和終點(diǎn)(端點(diǎn)檢測(cè)算法見上一篇文章)。
其次,得到孤立詞后,會(huì)出現(xiàn)一個(gè)問題,如A同學(xué)“你好”中的“你”字發(fā)音拖長,B同學(xué)“再見”的“再”字的發(fā)音很短。那么該如何匹配到參考褲中的“你好”和“再見”呢?
這個(gè)例子就好比下圖(手手工示意圖,大家看看就好):
很顯然,對(duì)于說話速度差異的限制,不符合實(shí)際語音的發(fā)展情況,需要一種更加符合實(shí)際情況的語音時(shí)間規(guī)整方法。DTW就是通過把時(shí)間序列進(jìn)行延伸和錯(cuò)單,來計(jì)算兩個(gè)時(shí)間序列之間的相似性。
2. 隱馬爾可夫模型(HMM)
隱馬爾可夫模型是一種統(tǒng)計(jì)模型,在語音識(shí)別、自然語言處理問題廣泛應(yīng)用。語音信號(hào)可看作一個(gè)可觀察序列,微觀上它在足夠小時(shí)間段上的特性近似于穩(wěn)定,宏觀上可看作一次從相對(duì)穩(wěn)定的某一特性過渡到另一特性,如:A->B->C->D。
假設(shè)產(chǎn)生一個(gè)語音時(shí),分別經(jīng)歷4個(gè)狀態(tài),分別是A-?>B->B-C-D-A-D。所有的狀態(tài)可以看作是x=狀態(tài),y=時(shí)間的矩陣Q[4][6],通過概率算法,計(jì)算出在4096(4*4*4*4*4*4)種情況中的最佳路徑ABBCDAD。
3. 人工神經(jīng)網(wǎng)絡(luò)(ANN)
人工神經(jīng)網(wǎng)絡(luò)是計(jì)算智能中的重要部分之一,是有大量簡單的基本元件-神經(jīng)元相互連接,模擬人的大腦神經(jīng)處理信息的方式,進(jìn)行信息并行處理和非線性變換的復(fù)雜網(wǎng)絡(luò)系統(tǒng)。
基于ANN的語音識(shí)別系統(tǒng)通常由神經(jīng)元、訓(xùn)練算法、網(wǎng)絡(luò)結(jié)構(gòu)三大要素構(gòu)成,具有高速的信息處理能力,并且有著較強(qiáng)的適應(yīng)和自動(dòng)調(diào)節(jié)能力,在訓(xùn)練過程中能不斷調(diào)整自身的參數(shù)權(quán)值和拓?fù)浣Y(jié)構(gòu),這也是AI產(chǎn)品與傳統(tǒng)互聯(lián)網(wǎng)產(chǎn)品的的區(qū)別。
下面以BP神經(jīng)網(wǎng)路為例:
(1)什么是BP神經(jīng)網(wǎng)絡(luò)?
人工神經(jīng)元是對(duì)人或者其他生物的神經(jīng)元細(xì)胞的若干基本特性的抽象和模擬,生物神經(jīng)元主要由細(xì)胞體、樹突、軸突組成,樹突和軸突負(fù)責(zé)傳入和傳出信息,興奮性的沖動(dòng)沿著樹突抵達(dá)細(xì)胞體,在細(xì)胞膜上累積形成興奮性電位。
相反,抑制性沖動(dòng)到達(dá)細(xì)胞膜則形成抑制性電位,兩個(gè)電位進(jìn)行累加,若代數(shù)和超過閾值,則神經(jīng)元產(chǎn)生沖動(dòng)。
模仿生物神經(jīng)元產(chǎn)生沖動(dòng)的過程,可以建立一個(gè)人工神經(jīng)元數(shù)學(xué)模型,包括輸入向量、輸出值、激發(fā)函數(shù)、閾值、權(quán)值(神經(jīng)元與其他神經(jīng)元的連接強(qiáng)度)。神經(jīng)元?jiǎng)t是一個(gè)計(jì)算和儲(chǔ)存單元,將計(jì)算結(jié)果暫存并傳遞給下一個(gè)神經(jīng)元。
(2)BP神經(jīng)網(wǎng)絡(luò)是如何學(xué)習(xí)的?
BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程由兩部分組成,分別是正向傳播和反向傳播。
- 正向傳播時(shí),輸入信息從輸入層經(jīng)處理后傳向輸出層,每一層神經(jīng)元只對(duì)下一層的神經(jīng)元的狀態(tài)有影響。如果在輸出層得不到期望的輸出,則進(jìn)入反向傳播。
- 反向傳播時(shí),誤差信號(hào)從輸入層向輸入層傳播并沿途調(diào)整各層間的權(quán)值。經(jīng)過不斷的迭代,最后將誤差盡可能降低。
如圖所示:
人工神經(jīng)網(wǎng)絡(luò)通常是針對(duì)靜態(tài)模式設(shè)計(jì)的,語音信號(hào)是一個(gè)時(shí)變信號(hào),而且它的時(shí)變特性也是語音理解的一個(gè)重要特征——由于發(fā)音快慢節(jié)奏不一樣,發(fā)音時(shí)音節(jié)長短不會(huì)完全相同。
而大多數(shù)神經(jīng)網(wǎng)絡(luò)輸入結(jié)構(gòu)是固定的,采用BP算法,識(shí)別率并不是很高,通常需要將人工神經(jīng)額網(wǎng)絡(luò)做一些必要的修正。
本文由 @豬不會(huì)飛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
我們公司也要做一個(gè)新的AI產(chǎn)品,可以加您請(qǐng)教一下嘛
app產(chǎn)品想轉(zhuǎn)ai,可以請(qǐng)教您么?
我們公司最近想做個(gè)ai產(chǎn)品。可以請(qǐng)教你嗎?
可以互相學(xué)習(xí)哈~