环境配置:
树莓派B+ , ubuntu 14.04, ROS, wiringPi, vs1003B, 讯飞在线语音识别库
系统功能:
通过vs1003的麦克风采集声音,然后将声音转码为讯飞要求的pcm格式,然后在树莓派中调用讯飞提供的在线命令识别API,完成语音识别功能.
碰到的问题:
开始时从网上找了比较流行的arm-linux-gcc 4.4.3版本的交叉编译器,在PC上所有代码和库都能编译通过.
将交叉编译器交给讯飞开发人员后,他们免费提供了在线的命令识别动态库.
将自己代码和讯飞语音库等编译通过,但是运行时发现找不到libmsc.so库. 通过ldd命令,可以看到找不到libmsc.so的提示.
解决的过程:
在网上搜索了很多帖子,大多是让修改LD_LIBRARY_PATH或者/etc/ld.so.conf文件,然后运行sudo ldconfig -v命令,但是依然无法找到.
后来怀疑是我的树莓派B+运行的 arm-linux-gnueabihf 4.6.3版本的编译器,与提供给讯飞的编译器不一致,可能是库不一致,导致的问题.
本来打算自己用crosstool-ng生成一个交叉编译器,但是考虑到时间成本,后来还是在网上搜到了树莓派本身提供的交叉编译器.
可以参考帖子:
http://www.cnblogs.com/emouse/archive/2013/06/07/3124063.html
或者从CSDN下载:
http://download.csdn.net/detail/canyue102/6725615
验证:
后来我在PC上自己用树莓派提供的交叉编译器和自己在网上找到的4.4.3的编译器,分别自己生成了2个动态库,在树莓派上运行发现,的确,用树莓派提供的交叉编译器,可以被
在树莓派上编译生成的程序找到,4.4.3的则无法找到.