Osmopet poster
Osmopet brochure PDF (warning: large file)
Osmopet is a speech-to-speech translation system designed to run on Nokia N800s or N810s using Maemo OS2008. There are three main components:
PocketSphinx - used for speech recognition
GoogleTranslate - used for translation
Flite - used for speech synthesis
These are preliminary build instructions. The complete source and binaries will be added the APT repository at phone.cs.berkeley.edu soon.
Install PocketSphinx - for the moment, this is accomplished by un-tarring the sphinx libraries tarball in your /usr/local/lib directory
Install the OSSAudio plugin for GStreamer - this is used to access the audio hardware
apt-get install gstreamer0.10-plugins-good-extra
Install Flite - this is used to synthesize
apt-get install flite
Install the Jalimo JVM - this is needed to run Java code for the Google Translate portion and for the user interface:
installing Jalimo
Install the binaries - for the moment, this is accomplished by un-zipping the binaries zip in the directory where you want to run it
Go to the directory where you unzipped the binaries and type:
./run_osmopet.sh
You probably will not want to attempt this, as the setup required to get this to build under scratchbox is very tricky.
If you decide to try it anyway, you will need to do a few things:
Checkout and build sphinxbase and pocketsphinx 0.5. Instructions about it are here
Robust Group Tutorial. You will probably want to get an older version that you know works, so I recommend using
svn -r 8248 co https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/sphinxbase
svn -r 8248 co https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/pocketsphinx
-
Lastly, you can try building the source using the build scripts called build.sh found in the source code directories. Chances are, you will probably have to fiddle a bit with your library paths to get it to build.
NOTE: You cannot run osmopet under scratchbox because of the half-assed implementation of Jalimo, but you can build it under scratchbox then run it on the N800/N810. Also note that if you wish to do any development, the partial implementation of JNI in Jalimo does not allow you to create VMs or access the VM from spawned threads; thus, I have designed the current implementation so the program is started in Java and the VM is passed via JNI native function calls to the main C thread. This allows C to call back to the Java and vice-versa; unfortunately none of the spawned threads (such as the gstreamer event handler buses) are able to directly interact with the VM.