本文主要是實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的命令詞識(shí)別程序,算法核心一是提取音頻特征,二是用DTW算法進(jìn)行匹配。當(dāng)然,這樣的代碼肯定不能用于商業(yè)化,大家做出來玩玩娛樂一下還是不錯(cuò)的。
轉(zhuǎn)載請(qǐng)保留本文鏈接,謝謝。
設(shè)計(jì)思路
就算是個(gè)小東西,我們也要先明確思路再做。音頻識(shí)別,困難不小,其中提取特征的難度在我聽歌識(shí)曲那篇文章里能看得出來。而語音識(shí)別難度更大,因?yàn)橐魳房偸枪潭ǖ?,而人類說話常常是變化的。比如說一個(gè)“芝麻開門”,有的人就會(huì)說成“芝麻---開門”,有的人會(huì)說成“芝麻開門--”。而且在錄音時(shí)說話的時(shí)間也不一樣,可能很緊迫的一開始錄音就說話了,也可能不緊不慢的快要錄音結(jié)束了才把這四個(gè)字說出來。這樣難度就大了。
算法流程:
特征提取
和之前的聽歌識(shí)曲一樣,同樣是將一秒鐘分成40塊,對(duì)每一塊進(jìn)行傅里葉變換,然后取模長(zhǎng)。只是這不像之前聽歌識(shí)曲中進(jìn)一步進(jìn)行提取峰值,而是直接當(dāng)做特征值。
看不懂我在說什么的朋友可以看看下面的源代碼,或者看聽歌識(shí)曲