本文主要是實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的命令詞識(shí)別程序,算法核心一是提取音頻特征,二是用DTW算法進(jìn)行匹配。當(dāng)然,這樣的代碼肯定不能用于商業(yè)化,大家做出來(lái)玩玩娛樂(lè)一下還是不錯(cuò)的。

轉(zhuǎn)載請(qǐng)保留本文鏈接,謝謝。


設(shè)計(jì)思路

就算是個(gè)小東西,我們也要先明確思路再做。音頻識(shí)別,困難不小,其中提取特征的難度在我聽(tīng)歌識(shí)曲那篇文章里能看得出來(lái)。而語(yǔ)音識(shí)別難度更大,因?yàn)橐魳?lè)總是固定的,而人類說(shuō)話常常是變化的。比如說(shuō)一個(gè)“芝麻開(kāi)門”,有的人就會(huì)說(shuō)成“芝麻---開(kāi)門”,有的人會(huì)說(shuō)成“芝麻開(kāi)門--”。而且在錄音時(shí)說(shuō)話的時(shí)間也不一樣,可能很緊迫的一開(kāi)始錄音就說(shuō)話了,也可能不緊不慢的快要錄音結(jié)束了才把這四個(gè)字說(shuō)出來(lái)。這樣難度就大了。

算法流程:


特征提取

和之前的聽(tīng)歌識(shí)曲一樣,同樣是將一秒鐘分成40塊,對(duì)每一塊進(jìn)行傅里葉變換,然后取模長(zhǎng)。只是這不像之前聽(tīng)歌識(shí)曲中進(jìn)一步進(jìn)行提取峰值,而是直接當(dāng)做特征值。
看不懂我在說(shuō)什么的朋友可以看看下面的源代碼,或者看聽(tīng)歌識(shí)曲