android 離線語言識別

要做一個在android上離線語言識別功能。搜索了一下只有Sphinx比較適合,資料也有。Sphinx庫的編譯和使用方法在網上比較多的資料都是源自http://ucla.jamesyxu.com/?p=118這個老外寫的,但是時間較早2011年的。這個編譯是在linux下的,windows下的可以參考http://gaebolg.blog.163.com/blog/static/19826906820136232810723/。目前2015在官網http://cmusphinx.sourceforge.net/wiki/tutorialandroid上的的編譯和使用方法已經太不一樣。


最後,我並沒有編譯,而是在Android平臺使用PocketSphinx做離線語音識別,小範圍語音99%識別率 這篇文章中找到了可以直接使用的APK源碼,裏邊已經包含了Sphinx 編譯出來的庫文件,文章裏也說了製作語言模型的方法。直接使用該源碼和製作出適合自己的語言模型就達到目的了。


對於製作語言模型的方法,這裏要說一下。按照博客裏說的方法是不完全的。我在windows下製作語言模型並沒有成功,查看到評論裏Tinux的回覆,原來是字符編碼的問題。


原來語言模型裏的test.lm和test.dic文件,他們的字符編碼和換行符有要求,字符編碼需要是UTF-8,換行符需要是\n(即0x0A)。Unix 系統裏,每行結尾只有“<換行>”,即“\n”;Windows系統裏面,每行結尾是“<換行><回車 >”,即“\n\r”;Mac系統裏,每行結尾是“<回車>”。根據Tinux的回覆中方法,我的解決辦法是在linux裏編輯,裏邊換行是0x0A。中文通過在mandarin_notone.dic文件中搜索並拷貝生成command.txt和test.dic。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章