PocketSphinx (and Flite)

PocketSphinx is one of Carnegie Mellon University's open source large vocabulary, speaker-independent continuous speech recognition engine. CMU Pocketsphinx is the lightweight version of Sphinx-4 the main open source ASR system used in ILA and is optimized for mobile and low-performance hardware like the Raspberry Pi or Android.

List of requested packages:

  • Sphinx Base V0.4.99 : sphinxbase-0.4.99-latest.tar.gz → 5prealpha
  • Pocket Sphinx : pocketsphinx-0.5.99-latest.tar.gz → 5prealpha
  • uniMRCP V1.3.0 : unimrcp-1.3.0.tar.gz
  • uniMRCP deps V1.3.0 : unimrcp-deps-1.3.0.tar.gz
  • Asterisk 11 : asterisk-11-current.tar.gz
  • Asterisk uniMRCP V1.3.1 : asterisk-unimrcp-1.3.1.tar.gz
  • Flite V2.0.0 : flite-2.0.0-release.tar

Build the uniMRCP with PocketSphinx and Flite:

Follow the uniMRCP documented steps : https://code.google.com/p/unimrcp/wiki/PocketSphinxPlugin

  • On Debian add: python, python-dev, swig.
  • Compile SphinxBase (configure + make)
  • Compile PocketSphinx (configure + make)
  • Compile Flite (configure CFLAGS=“-fPIC” + make)
  • Compile unimrcp-deps if not already done (script build-dep-libs.sh)
  • Patch the uniMRCP with the files (in patchs/asterisk-unimrcp CVS module)
    • unimrcp/configure.ac
    • unimrcp/plugins/Makefile.am
    • unimrcp/plugins/mrcp-pocketsphinx (directory)
    • unimrcp/plugins/mrcp-flite (directory)
    • unimrcp/build/acmacros/*.m4
  • Change directory to unimrcp, and execute the bootstrap
  • Compile mrcp-pocketsphinx with :
    • ./configure –enable-pocketsphinx-plugin –with-pocketsphinx=/datas/voicebrowser/pocketsphinx-5prealpha –with-sphinxbase=/datas/voicebrowser/sphinxbase-5prealpha
  • Compile mrcp-flite with :
    • ./configure –enable-flite-plugin –with-flite=/datas/voicebrowser/flite-2.0.0-release CFLAGS=“-fPIC”

Installation and configuration:

Over the uniMRCP standard installation, create those directories if necessary in /usr/local/unimrcp

  • /bin : copy the binaries unimrcpserver and unimrcpclient from unimrcp-x.x.x/platforms/*.
  • /plugin : copy the libraries generated from unimrcp-x.x.x/plugins/*/.libs/*/so to this directory.
  • /conf : add the pocketsphinx.xml from mrcp-pocketsphinx/conf and unimrcpserver.xml configuration files (from patchs/asterisk-unimrcp CVS module).
  • /var : create only.
  • /data : Copy the models and the dictionaies.

UniMRCP Server executable help line:

root@borja:~# /usr/local/unimrcp/bin/unimrcpserver --help

 * Copyright 2008-2014 Arsen Chaloyan
 *
 * Licensed under the Apache License, Version 2.0 (the License);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.


Usage:

  unimrcpserver [options]

  Available options:

   -r [--root-dir] path     : Set the path to the project root directory.

   -c [--dir-layout] path   : Set the path to the dir layout config file.
                              (takes the precedence over --root-dir option)

   -l [--log-prio] priority : Set the log priority.
                              (0-emergency, ..., 7-debug)

   -o [--log-output] mode   : Set the log output mode.
                              (0-none, 1-console only, 2-file only, 3-both)

   -d [--daemon]            : Run as a daemon.

   -v [--version]           : Show the version.

   -h [--help]              : Show the help.

Start the uniMRCP server:

For debugging :

/usr/local/unimrcp/bin/unimrcpserver -r /usr/local/unimrcp/

Run as a daemon:

/usr/local/unimrcp/bin/unimrcpserver -r /usr/local/unimrcp/ -d