Update:
Windows users, please check more or less updated manual here:
https://sites.google.com/site/opiatefuchs/home/pocketsphinxandroiddemo
I know you waited for the instruction for a long time, here it is. Cudos to Matthew Cooper who wrote this. These instruction should work on any GNU/Linux distributuion, for example on Fedora or Ubuntu. This is also written for phones have OS 2.2 or higher. Previous OS requires a different path to the sdcard, so it will be easy to adapt this guide.
Download and build pocketsphinx
To run pocketsphinx download the following from http://cmusphinx.sourceforge.net/wiki/download/
sphinxbase-0.8
pocketsphinx-0.8
Then download PocketSphinxDemo archive from
PocketsphinxAndroidDemo – snapshot
Unzip all three folders into a place where you will remember to find them. It is necessary to unzip both pocketsphinx and sphinxbase folders into the same parent directory and rename them to just “sphinxbase” and “pocketsphinx” without version information.
Open up the terminal and type:
sudo -i
followed by your password. This will give you root access.
You will need swig later, so let’s install it. You need swig 1.3, for now we do not support newer swig like 2.0:
apt-get install swig
or
yum install swig
On Windows install swig according to the following document:
http://www.swig.org/Doc1.3/Windows.html
Now, cd into sphinxbase and run the following commands from command line:
./configure
make
make install
cd into pocketsphinx and type:
./configure
make
make install
On Windows you do not need to compile Sphinxbase, just unpack it.
Now cd into PocketSphinxDemo/jni folder
Open the Android.mk file, found in the jni folder, and change the SPHINX_PATH(line #5) to the parent folder holding pocketsphinx and sphinxbase.
from command line type:
the-path-to-your-ndk-folder/ndk-build -B
Of course, substitude the real path to your ndk folder for the-path-to-your-ndk-folder
Eclipse
Now open Eclipse and import the PocketSphinxDemo.
In the Navigator View look for PocketSphinxDemo project. Right click on it and select properties. The properties screen will pop up and you will need to select Builders. In the Builders screen you will see SWIG and NDK build.
Click on NDK build and edit.
In the edit screen change the field Location to point to your ndk-folder you have on your machine. Click on the Refresh tab and select “The project containing the selected resource”
Click on the Build Options tab and deselect “Specify working set of relevant resources”
Apply changes and exit the configuration for NDK build.
Click on SWIG and edit.
You will not need to change the Location since downloaded swig at the start of the tutorial.
In the refresh tab select “The folder containing the selected resource”
In the Build Options tab deselect “Specifiy working set of relevant resources”
Apply changes and exit the configuration for SWIG.
Phone
Connect to your android phone and create the edu.cmu.pocketsphinx folder at
/mnt/sdcard
You can do this by opening terminal command and typing:
adb shell
In shell type:
mkdir /mnt/sdcard/edu.cmu.pocketsphinx
now cd into the edu.cmu.pocketsphinx folder that is located on your phone and create the following folder structure:
edu.cmu.pocketsphinx
|
----> hmm
| |
| ----> en_US
| |
| ----> hub4wsj_sc_8k
|
----> lm
|
-----> en_US
Now type quit to leave adb shell.
While still in terminal you will need to push files from your computer onto the phone.
cd into pocketsphinx/model/hmm/en_US/ and type:
adb push ./hub4wsj_sc_8k /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k
Now cd into pocketsphinx/model/lm/ in your and type:
adb push ./en_US /mnt/sdcard/edu.cmu.pocketsphinx/lm/en_US
Now open the RecognizerTask.java found in
/src/edu/cmu/pocketsphinx/demo
There are declared paths to a structure that is not valid on a 2.2 phone. We will need to change the paths so that they work correctly. Here is my code for the section.
pocketsphinx.setLogfile("/mnt/sdcard/edu.cmu.pocketsphinx/pocketsphinx.log");
Config c = new Config();
/*
* In 2.2 and above we can use getExternalFilesDir() or whatever it's called
*/
c.setString("-hmm", "/mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k");
c.setString("-dict", "/mnt/sdcard/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.dic");
c.setString("-lm", "/mnt/sdcard/edu.cmu.pocketsphinx/lm/en_US/hub4.5000.DMP");
c.setString("-rawlogdir", "/mnt/sdcard/edu.cmu.pocketsphinx"); // Only use it to store the audio
If your model is different, you will have to use different paths, for example fo rthe mandarin model
c.setString("-hmm", "/sdcard/Android/data/edu.cmu.pocketsphinx/hmm/zh/tdt_sc_8k");
c.setString("-dict", "/sdcard/Android/data/edu.cmu.pocketsphinx/lm/zh_TW/mandarin_notone.dic");
c.setString("-lm", "/sdcard/Android/data/edu.cmu.pocketsphinx/lm/zh_TW/gigatdt.5000.DMP");
Now build and run the project.

Posts
where i change the SPHINX_PATH(line #5) to the parent folder holding pocketsphinx and sphinxbase.means in swig file or pocketsphinxdemo file?
from using command line type how can i write
the-path-to-your-ndk-folder/ndk-build -B.?????????????
I got this error.pls help me its urgent for me
root@divya-desktop:/home/divya/cmusphinx/android-ndk-r7# ndk-build
ndk-build: command not found
February 16, 2012 @ 8:32 am
Hi Fred…
I have build the application successfully and even trained the acoustic model as per my own voice but still the recognition accuracy is around 20%.I am using Samsung Galaxy android phone to run pocketsphinx application.
Any help appreciated.
March 5, 2012 @ 8:41 am
@Ashwani. Hi, i’ve been trying to run this demo for months, my setting:
-ubuntu 11.10 64 bits ia32-libs installed
-jdk 7u3 32bits
-eclipse Indigo 32 bits
-android sdk revision 16
-android ndk revision 7b (been looking for r4 but no success, besides not sure it’ll work with my sdk)
-pocketsphinx & sphinxbase… I just download it from the links above
Could you please tell me the setting you are using? or any othe rtip you can see from that… at this point i’ve been able to get to the “eclipse” part… almost by brute force… but it wont build correctly…even less when I’m able to run it the application stops unexpected right from the first line… static {
System.loadLibrary(”pocketsphinx_jni”);
}
To be honest I’m just trying to create a VAD and not very concerned about teh accuracy of it… so ANY hel will be appreciated… thanks in advance
March 9, 2012 @ 12:18 pm
Can we use this appication on other mobile like nokia phone?
March 16, 2012 @ 10:15 am
Great resource. Demo working fine after copying /pocketsphinx-extra/model/hmm/en_US/hub4_wsj_sc_3s_8k.cd_semi_5000 to /mnt/sdcard/edu.cmu.pocketsphinx/hmm/en_US/hub4wsj_sc_8k.
Accuracy in my case is higher than my expectation.
April 18, 2012 @ 9:23 am
Can you help me with Android 2.2 platform?
I have installed the PocketSphinxDemo and when it try to recognize speech, application is closing.
You said that we need to change the paths in RecognizerTask.java.
Could you say what exactly should we paste in paths?
April 24, 2012 @ 7:29 pm