一、PocketSphinx-Android DNK环境搭建
基于Pocketsphinx_Android语音识别实际上就是一个通过jni编程调用微软写的sphinx和pocketsphinx函数库(这两个库都是C语言写的),然后通过声学模型分析录入的语音,根据分析出的特性在数据字典中寻找匹配的文字。主要用到的知识应该就是jni交叉语言编程,其实质也就是通过NDK,借助这两个函数库编译出最终的.so文件。(当然,这其中也包括用到swig将c 接口转java 并生成java类,这个我不太懂就不说了)最终的android程序也就是要通过这个.so文件去实现识别功能,android终究是linux的程序,它还是要依托linux下的共享函数库即.so文件而不是windows下的.dll文件。
1.Android DNK环境搭建
(1)安装配置Cygwin
Cygwin相当于Windows下的Linux环境,因为使用因为使用 NDK、PocketSphinx 需要编译源码之类的 Linux 操作。
a.双击Cygwin Setup.exe,网络下载所需要的库和工具
Install from Internet->Root Directory setting->Next->Direct Connection
->选择下载网站->点击需要下载的工具和库(可以多选,并且基本都是选择
文件)
注:需要下载的文件:autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gdb、pcre、pcre-devel、gawk、make、libtool、swig(选择 1.3.40-1,不是 2.0.9-1,不然后期编译不能通过!)如果后期编译出错,看错误,少什么文件再来下载。
注意:swig-1.3.40安装
安装swig(You need swig 1.3, for now we do not support newer swig like 2.0,老外说这个不支持2.0以上的版本,下载swig-1.3.40)
swig-1.3.40:http://sourceforge.net/projects/swig/files/swig/swig-1.3.40/ 解压到相应目录,例如我放在:E:\software\Tools\swigwin-1.3.40
(1)设置电脑上的环境变量,右键我的电脑-属性-高级系统设置-环境变量,在PATH中添加swig的存放目录。打开cgywin安装swig,cd进去存放目录
(2)打开cygwin终端:执行cd /cygdrive/e/software/Tools/swigwin-1.3.40
(3)依次执行"./autogen.sh" "./configure " "make" "make install"
(4)输入swig -version能查看相应版本表示已安装成功.
b.等待下载完全后。打开Cygwin Terminal,在命令行中分别执行gcc --version、g++ --version、make --version、gdb --version依次显示相应的版本信息则说明Cygwin安装成功.注意如果出现找不到情况版本或命令情况,说明Cygwin有些文件没有安装正确,需重新运行Cygwin.exe下载器安装。
参考资料:
http://gaebolg.blog.163.com/blog/static/19826906820136232810723/
http://blog.csdn.net/pengchua/article/details/7582949
/------------------------------------------------------------------------------------------------/
(2)配置Android NDK
首先、将android-ndk-r10c-windows-x86.exe拷贝到D:\Android,并双击解压得到其路径D:\Android\android-ndk-r10c,一般来说无需特别配置。
其次、打开 cygwin/etc/profile(修改环境变量),如下地方:cygdrive 后边是盘符,然后就是路径了,注意最后的冒号修改。
第三、打开Cygwin终端,输入ndk-build或者输入命令cd /cygdrive/d/android-ndk-r10c以检验NDK环境变量是否安装正确,以下情况说明ndk-build命令正常。
2.测试NDK环境是否安装成功
(1)选择 NDK 自带的例子 hello-jni,假设位于D:\Android\android-ndk-r10c\hello-jni(根据你具体的安装位置而定);
(2)运行 Cygwin,输入命令 cd /cygdrive/d/android-ndk-r10c/samples/hello-jni,进入到 D:\Android\android-ndk-r10c\hello-jni目录;
(3)输入 ndk-build,执行成功后,它会自动生成一个 libs 目录,把编译生成的 .so 文件放在里面。(ndk-build 是调用 NDK 的编译程序);
(4)此时去 hello-jni 的 libs 目录下看有没有生成的 .so 文件,如果有,那么 NDK 配置成功。
![](http://img.e-com-net.com/image/info5/d37126ac74f5497bbc4e95580a5452b6.jpg)
![一、PocketSphinx-Android DNK环境搭建_第6张图片](http://img.e-com-net.com/image/info5/0ed04a2446c54d35a99d0553e6c71753.png)
/-------------------------------------------------------------------------------------------------/
3.相关工具下载
(1)官方下载 Cygwin:http://cygwin.com/install.html
(2)官方下载android-ndk-r10c-windows-x86.exe:
http://developer.android.com/tools/sdk/ndk/index.html#download
参考资料:
http://gaebolg.blog.163.com/blog/static/19826906820136232810723/(重要参考)
http://www.eoeandroid.com/thread-298033-1-1.html[本地语音识别技术]
http://ucla.jamesyxu.com/?p=118
http://leiwuluan.iteye.com/blog/1287305
http://blog.csdn.net/aaaeee2011/article/details/12884117