离线语音识别Android下PocketSphinx离线语音识别必看

Android 下PocketSphinx离线语音识别必看,最近在研究Adroid下离线语音识别程序,从网上搜多到了几篇不错的网页,通过Pockethix可以实现想要的功能。我是按照《Widow下使用PocketShix实现Adroid离线语音识别Part.1配置环境、运行PocketShixAdroidDemo》的文章一步一步的操作的.对于Adroi...
最近在研究Android 下离线语音识别程序,从网上搜多到了几篇不错的网页,通过Pocketsphinx可以实现想要的功能。我是按照《Windows 下使用 PocketSphinx 实现 Android 离线语音识别 Part.1 配置环境、运行 PocketSphinxAndroidDemo》的文章一步一步的操作的.对于Android和PocketSphinx 都是零基础,中间遇到了各种各样的问题,解决这些问题话费了太多的时间,再此将遇到的问题和解决方法和大家共享希望能给别人带来帮助。由于文章都是针对解决遇到的问题,显得有点凌乱,遇到问题时可以把本文作文参考。方法/步骤1Cygwin 下载版本问题Cygwin 是windows下android的模拟环境。根据自己的操作系统下载32位或者64位的安装程序。本人开始是在64位操作系统下实验的,但是遇到问题始终解决不了,最后换了32位系统下实验成功的。这个后面会提到所遇到的问题。步骤阅读2Cygwin 下载安装问题上面下载的SETUP只是一个下载器,电脑需要联网,从网络上下载需要安装的组建,具体方法可以搜索Cywin安装配置。需要下载的文件: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,不然后期编译不能通过!) 这是别人的文章中提到的。强烈建议每次只选1~2项进行安装,否则下载失败的话就得全部从新下载。下载安装完以后,打开 Cygwin,在命令行下输入 gcc --version,g++ --version,make --version,gdb --version,依次显示信息,则安装正确;如果显示 -base: ***:未找到命令,则表示你还有相应的东西没有安装。解决方法从新运行SETUP下载相应的组建。步骤阅读3Cygwin 下载网址选择问题下载时可能会遇到这种情况,下载快结束的时候提示,“安装未完成,再试?”从新下载安装还会提示同样的问题。这个问题是由于我们下载时选择的网址和第一次选择的网址不一样造成的。我曾经把安装的CYWIN全部删除在运行SETUP,然后换一个网址下载安装还是会提示错误,最后没办法只能用第一次使用的网址下载,速度很慢 很慢 很慢 。。。。。建议始终选择图中高亮的网址,这个下载速度还可以。步骤阅读4ROOT 时找不到passwd 文件修改 cygwin/etc/passwd 文件中的 500:513 为 0:0,获得 root 权限但是我在安装结束后在cygwin/etc/下就没找到PASSWD文件。解决方法: 打开 Cygwin,在命令行下输入$ mkpasswd -l>/etc/passwd ( 注意-l  是英文字母L的小写 不是数字1)$ mkgroup -l>/etc/group (-l 同上)5ROOT 权限失败当安装完成以后,看是不是真正的root,只需要看命令提示符是不是“#”,普通用户的是“$”。”将Administrator替换成root,这个只是改名而已,真正关键部分是红色数字部分,那个才是权限控制,将500和513都改成0,这样才能获取真正的root权限按照上面的修改之后,发现还是$ 普通用户一枚。解决方法:Administrator 是个误导, 在你的passwd 中有Administrator 相关的一段,但是修改这个不起作用。(文章作者应该是用Administrator 用户登陆的,你需要修改你登陆的账户)看好你登陆电脑时显示的名字都修改成ROOT另外还需要在cygwin的home目录下面建立目录root。从新运行Cygwin命令提示符该就会显示 # 了步骤阅读6配置 Android NDK 问题。打开 cygwin/etc/profile,修改如下地方:cygdrive 后边是盘符,然后就是路径了,注意最后的冒号步骤阅读7打开 Cygwin,输入 ndk-build,出现如下信息,代表配置正常:步骤阅读8我又失败了,内牛满面啊。。。好像所有的问题我都遇上了 解决方法:将cygwin/home//.bash_profile 文件后面添加NDK=/cygdrive// 例如 NDK=/cygdrive/d/android-ndk-r10Export NDK 注意:NDK这个名字可以自己定义,不过最好还是和文章中一致,面的后面自己还的动脑经分析问题。 注意 需要在你电脑上设备环境变量变量名 :NDK变量值 :d/android-ndk-r10      根据的自己的NDK 目录设置Cygwin中输入 $NDK 会返回d/android-ndk-r10  这样的信息Cygwin中输入ndk-build 不成功应该输入  $NDK/ndk-build 如果还不行,可以自己搜索配置NDK环境变量步骤阅读9编译sphinxbase时   ./autogen.sh 始终提示错误下载了sphinxbase-0.7 解压,修改文件夹名字为sphinxbase Cygwin命令输入./autogen.sh  提示错误****:not found 此类为题比较简单,运行前面的SETUP 找到相应项下载安装即可解决。之后这里又出现了很多问题,都是某些函数出错,折腾了好几天,最后换了32位系统的电脑,从新走过,sphinxbase   顺利通过!!!!!!!!!!!10pocketsphinx 编译问题./autogen.sh    ./configure  都顺利通过,但是make的时候就报错了error: command \'gcc\' failed with exit status 1Makefile:501: recipe for target `pymod-build-stamp\' failedmake[1]: *** [pymod-build-stamp] Error 1make[1]:Leaving directory `/home/username/Installs/pocketsphinx-0.6/pocketsphinx/python\'Makefile:360: recipe for target `all-recursive\' failedmake: *** [all-recursive] Error 1 解决方法:Pocketsphinx /python/setup.py, 找到libraries=[\'pocketsphinx\', \'sphinxbase\'],添加iconv修改后libraries=[\'pocketsphinx\', \'sphinxbase\', \'iconv\'],然后从新make11Cygwin 下,进入 pocketsphinx/swig 文件夹,make:注:这里会出错,提示 jni.h 或者 jni_md.h 不存在,不用理会,我们需要那几个文件已经生成了,这里我也一直没理解。步骤阅读12把这个swig/edu 文件夹,复制到 PocketSphinxAndroidDemo 中的 jni 文件夹下修改PocketSphinxAndroidDemo/jni/Android.mk 文件,SPHINX_PATH:=/cygdrive/d/sphinx   注意这里说明一下,我们下载sphinxbaese  pocketsphinx  PocketSphinxAndroidDemo都解压在d/sphinx 下了,这里你需要根据你自己的情况设置,这三个文件要放在同一个目录下。 同样在 Android.mk 文件中,搜索 LOCAL_STATIC_LIBRARIES,把后边的单词顺序改为 pocketsphinx sphinxlm sphinxfeat sphinxfe sphinxutil 打开 Cygwin,进入 PocketSphinxAndroidDemo 的 jni 文件夹,执行 ndk-build,没错的话 OK !!13再此注意,最好不要用记事本打开,记事本打开显示的内容密密麻麻,也不分段落,很容易修改错了,我在这里就折腾了好几次。最好使用ULtraedit等软件打开 至此pocketsphinx 三个文件应该都能编译过了,剩下的内容是在Eclipse中去设置和编译了。14如果帮到了您,请顺手投票,让更多人可以搜索的本文。  END注意事项部分图片来自于网络

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/xz6A8QqdX0.html

(0)

相关推荐