Simon/Development Environment

From KDE UserBase Wiki

If you finish this tutorial, you will get a fully functional Simon version and the coresponding source files which you of course can modify freely.

To publish your changes, please get in touch with a Simon developer to receive write access to the public git repository.

Windows

The following tutorial will describe how to install everything needed to get started on developing on Simon.

KDE

Please set up the emerge environment by following the tutorial on techbase.

Backend

You need at least one of the backends below for a working Simon installation

SPHINX

At this point, there are no detailed installation instructions for SPHINX on Windows as the setup is sadly very complicated.

If you still want to give it a try, you'll need a current Python setup in your path, as well as SphinxBase, Pocketsphinx and SphinxTrain from http://cmusphinx.sourceforge.net/wiki/download.

HTK & Julius

  1. Register at http://htk.eng.cam.ac.uk/register.shtml (free)
  2. Download the latest windows binary version from "http://htk.eng.cam.ac.uk/ftp/software/%22. The file will be named "htk-3.x-windows-binary.zip". At the moment the latest binary release for windows is the version 3.3. It can be found at this direct link: "http://htk.eng.cam.ac.uk/ftp/software/htk-3.3-windows-binary.zip%22
  3. This archive contains a folder "htk". Copy the contents of this folder to "C:\KDE\bin".
  4. You can now delete the archive.
  5. This concludes the installation of the HTK.
  1. Download the latest windows binary version of Julius from &quothttp://julius.sourceforge.jp/en_index.php".
  2. The downloaded ZIP archive contains a folder "bin". Copy the contents of that folder to "C:\KDE\bin".
  3. You can now delete the archive.
  4. This concludes the installation of Julius.

Simon

In a KDE shell (see the KDE section above) simply run "emerge simon" to build and install Simon.

Julius

Download the latest version of Julius from their homepage and install it by copying the executables to the "bin" subfolder of your KDE installation folder.

Linux

This guide will assume that you are using Ubuntu Linux or OpenSUSE. If you use a different distribution you will have to look up the correct name of the packages yourself and install them on your own.

If you already installed the binary version of Simon, please remove it!

Debian based Systems:
sudo dpkg -r simon

Requirements

You will need a couple of packages before getting to work. Install them using the following command:

Debian based Systems:
sudo apt-get install git build-essential cmake gettext kdeartwork libqwt-dev \
kdelibs5-dev libxtst-dev libqt4-sql-sqlite libphonon-dev libattica0.4 libattica-dev zlib1g-dev \
libasound2-dev julius libpocketsphinx-dev libpocketsphinx3 sphinxtrain libsphinxbase-dev \
libsphinxbase3
RPM based Systems:
sudo zypper in git-core gcc gettext-tools gettext-runtime libkde4-devel \
libqt4-sql-sqlite libqt4-multimedia libqt4-phonon-devel libattica-devel libattica0 zlib-devel \
pocketsphinx sphinxbase sphinxtrain

If you use a different language than english we recommend installing the appropriate kde-l10n package. You can list all available translation using the following command:

Debian based Systems:
apt-cache search kde-l10n

Choose your translation and install it.

Debian based Systems:
sudo apt-get install kde-l10n-<countrycode>

You also need Qwt 6. Up do date distributions have packages ((K)Ubuntu since 11.10). Older versions of Qwt are not supported. You can find the latest version on the projects sourceforge site.

Compiling

Now check out a current copy of Simon from Git using the following command:

git clone git://anongit.kde.org/simon simonsource

This will create a new directory called simonsource in your current working directory containing the Simon source code.

You can now make your changes. If you want to compile and install your new Simon version, just call the build-script in the simonsource directory:

Ubuntu:
./build_ubuntu.sh
Other distributions:
./build.sh

You now have compiled and installed Simon. Please continue to install HTK on page Installation > Linux > HTK installation.

Building in a custom prefix

This is how Frederik thinks kde applications should be built (works for me TM). Your milage may vary.

Needed: the packages as listed above.

Goal: install Simon in a custom directory and make it run from there without interfering with the rest of the system.

I have a directory "~/simon". There I have:

~/simon/simonsource
~/simon/build
~/simon/install

Howto (copy and paste this in a shell):

mkdir ~/simon
cd ~/simon
git clone git://anongit.kde.org/simon simonsource
mkdir build
cd build
cmake ../simonsource -DCMAKE_INSTALL_PREFIX=~/simon/install
make
make install

Script to set up the environment (put this in a file "simonenv" and in a shell run "source simonenv"):

echo "Setting up Simon env..."
export SIMONPATH=~/simon/install    #adjust to the path you want to use
export PATH=$SIMONPATH/bin:$PATH
export LD_LIBRARY_PATH=$SIMONPATH/lib64:/usr/lib/x86_64-linux-gnu   # this is on a 64 bit kubuntu
export KDEDIR=$SIMONPATH
export KDEDIRS=$KDEDIR
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4:$KDEDIR/lib64
export XDG_DATA_DIRS=$SIMONPATH/share:XDG_DATA_DIRS
kbuildsycoca4


Backends

You need one of the two backends listed below for Simon to be functional.

SPHINX

Download the latest versions of SphinxBase, Pocketsphinx and SphinxTrain from the CMU SPHINX homepage and install them. It is likely, that your distribution also provides packages for SPHINX. If that is the case, it is usually preferable to install those instead of compiling SPHINX from source.

HTK & Julius

Register at http://htk.eng.cam.ac.uk/register.shtml (free) and download the latest source version of the HTK from "http://htk.eng.cam.ac.uk/ftp/software/%22. Compile and install it. Then, download the latest version of Julius from their homepage and install it.

Mac OS X

Except for CMU SPHINX, all dependencies for Simon can be found and installed through MacPorts.

Set up MacPorts and install qt4-mac-sqlite3-plugin kde4-runtime git and qwt-devel. This will pull in a whole range of dependencies.

Clone Simon master:

git clone git://anongit.kde.org/simon simonsource

And run the following script in the new folder "simonsource":

./build_ubuntu.sh
# (yes, the Ubuntu script is appropriate for Mac OS X)


Backends

You need one of the two backends listed below for Simon to be functional.

SPHINX

Download the latest development versions of SphinxBase, Pocketsphinx and SphinxTrain from their SVN (you can find them on the CMU SPHINX homepage, the latest released versions 0.8 will not work) and install them. You need to rebuild Simon after you installed them.

Install dependencies:

sudo port install swig swig-python

Install SPHINX:

for i in sphinxbase pocketsphinx sphinxtrain; do 
  cd $i
  ./autogen.sh --prefix=/opt || die
  make                       || die
  sudo make install          || die
  cd -
done

HTK & Julius

Register at [1] (free) and download the latest source version of the HTK from [2]. Compile and install it.

Then, download the latest version of Julius from MacPorts.