1. 程式人生 > >zedboard —pocketsphinx-5prealpha最新版庫移植至zedboard(七)

zedboard —pocketsphinx-5prealpha最新版庫移植至zedboard(七)

庫檔案的下載

之前移植了pocketsphinx-0.8的語音識別庫,這個庫比較老了,所以重新移植一下最新版的庫pocketsphinx-5prealpha。庫檔案的下載地址見:傳送門 本文只下載了pocketsphinx-5prealpha.tar和sphinxbase-5prealpha.tar庫檔案,需要訓練庫的可自行下載。

pocketsphinx-5prealpha庫的交叉編譯

最新版庫的移植可參考之前0.8版本的移植教程(傳送門),不過在配置sphinxbase-5prealpha庫時,也報了一些錯誤。 使用./configure --prefix=/home/ubuntu/sphinx --exec-prefix=/home/ubuntu/sphinx --host=arm-linux --target=arm CC=arm-xilinx-linux-gnueabi-gcc LDFLAGS="-L/usr/local/arm-alsa/lib" CPPFLAGS="-I/usr/local/arm-alsa/include " 指令的路徑參考0.8版本的移植教程。配置時,報瞭如下錯誤:

Could not link test program to Python. Maybe the main Python library has been
  installed in some non-standard library path. If so, pass it to configure,
  via the LDFLAGS environment variable.
  Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
  ============================================================================
   ERROR!
   You probably have to install the development version of the Python package
   for your distribution.  The exact name of this package varies among them.
  ============================================================================

在這裡插入圖片描述 解決方法; 網上說是需要依賴一些python 的檔案,配置的時候沒找到,需要安裝新版的python庫;不過如果我們不需要python的相關功能時,可以把python的一些功能個遮蔽掉,加入引數–without-python即可。使用如下命令即可:

./configure --prefix=/home/ubuntu/sphinx --exec-prefix=/home/ubuntu/sphinx --host=arm-linux --target=arm CC=arm-xilinx-linux-gnueabi-gcc LDFLAGS="-L/usr/local/arm-alsa/lib" CPPFLAGS="-I/usr/local/arm-alsa/include " --without-python 之後執行sudo make install 時,又報了以下錯誤: libtool: line 8962: arm-xilinx-linux-gnueabi-gcc: command not found 在這裡插入圖片描述

解決方法; 網上說環境變數不對,可以修改環境變數,把指令的路徑配置正確;不過也有個簡單的解決方法,在指令的前面加上自己指令的絕對路徑。把./configure 中引數 CC=arm-xilinx-linux-gnueabi-gcc改為絕對路徑,我的arm-xilinx-linux-gnueabi-gcc是在路徑:/opt/Xilinx/SDK/2015.4/gnu/arm/lin/bin/下,改成CC=/opt/Xilinx/SDK/2015.4/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-gcc 。路徑換成自己指令的絕對路徑即可。 清理剛才編譯的錯誤內容,重新編譯。

    make clean

執行

./configure --prefix=/home/ubuntu/sphinx --exec-prefix=/home/ubuntu/sphinx --host=arm-linux --target=arm CC=/opt/Xilinx/SDK/2015.4/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-gcc LDFLAGS="-L/usr/local/arm-alsa/lib"  CPPFLAGS="-I/usr/local/arm-alsa/include "   --without-python
make
sudo make install 

pocketsphinx-5prealpha庫同上交叉編譯即可。 最後安裝完成的最新pocketsphinx-5prealpha庫簡單測試了一下,發現語音識別特別靈敏,有一點聲音就會觸發識別,誤識別率挺高。