版權(quán)聲明:本文為elecdog原創(chuàng)文章,可以轉(zhuǎn)載,但必須在明確位置注明出處!謝謝合作。
關(guān)于語音識別,國內(nèi)已經(jīng)有比較好的公司推出相關(guān)的服務(wù)了,比如百度免費(fèi)的離在線融合語音識別以及訊飛收費(fèi)的在線和離線語音識別服務(wù)。這里不作過多介紹,需要的同學(xué)可以直接去官網(wǎng)閱讀接入文檔。這里要介紹的是一個(gè)離線語音識別的開源項(xiàng)目——CMU PocketSpinnx,在安卓開發(fā)中的使用。在智能家居 APP 開發(fā)中常需要在沒法聯(lián)網(wǎng)的設(shè)備識別一些比較簡單的命令詞,百度的離在線融合語音識別識別率還不錯(cuò),不過在設(shè)備連接局域網(wǎng)的情況下仍然優(yōu)先使用在線識別,導(dǎo)致識別時(shí)間太長或者轉(zhuǎn)換不過來,訊飛離線語音識別沒有使用過,因?yàn)槭鞘召M(fèi)的,而且對于個(gè)人開發(fā)者價(jià)格也不便宜,相比較之下,PocketSpinnx則是完全離線的語音識別,只要按照要求部署項(xiàng)目,識別率也差強(qiáng)人意。
首先我們可以通過 PocketSpinnx 官網(wǎng)的介紹來了解該離線語音識別項(xiàng)目的工作原理,能夠加深對項(xiàng)目使用的理解。下面我們一步一步來把PocketSpinnx的離線語音識別功能引入到我們自己的項(xiàng)目中來。
獲取語言模型
首先我們需要把想要識別的命令詞編寫成命令集,打開 Sublime Text 新建 txt 文件,編碼采用 utf-8,每一行寫一個(gè)命令詞,如圖所示: