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