Barista is an open-source framework for concurrent speech processing.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake
egs
src Changed remaining floats to BaseFloats. Added kaldi-types.h to common… Mar 19, 2014
tools
.gitignore Updates .gitignore to support new build system. Mar 13, 2014
CMakeLists.txt Improved version check for Kaldi. Mar 18, 2014
LICENSE
README.md
configure

README.md

barista

Barista is an open-source framework for concurrent speech processing developed and maintained by the Signal Analysis and Interpretation Lab (SAIL) at USC.

Supported Operating Systems

  • Linux
  • Mac OS X

Supported Compilers

  • g++ >= 4.7 [g++-4.8 recommended]

We need a recent C++ compiler since barista relies on C++11 features. When C++11 support is activated, clang does not support linking with libstdc++. The only option is to link with libc++ which moves the stuff under std::tr1 namespace to std namespace. Since Kaldi and OpenFst use some stuff from std::tr1 namespace, they have to be linked with libstdc++. Hence, barista can not link against Kaldi and OpenFst using clang with C++11 support. Support for clang will be added if/when this issue is resolved.

Installing g++-4.8 on Ubuntu 12.04 LTS using apt-get:

add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install g++-4.8

Installing g++-4.8 on Mac OS X using Homebrew:

brew tap homebrew/versions
brew update
brew install gcc48

Dependencies

Barista depends on Kaldi (and its dependencies including portaudio), libcppa, GraphViz and Boost.

Before installing barista, make sure you have CMake, git, svn, aclocal, libtoolize (or glibtoolize), zlib, libatlas, Boost and GraphViz (>= 2.30) installed on your system. If you are missing any of these tools, you can use a package manager to install them.

Installing missing packages on Ubuntu 12.04 LTS using apt-get:

apt-get install build-essential git subversion cmake automake libtool
apt-get install zlib1g-dev libatlas-dev libatlas-base-dev libboost-all-dev

# This PPA has a recent GraphViz package (>=2.30) for Ubuntu 12.04
sudo add-apt-repository ppa:xba/graphviz
apt-get update
# If you have problems installing GraphViz, see below
apt-get install libgraphviz4 graphviz libgraphviz-dev graphviz-dev

Installing missing packages on Mac OS X using Homebrew:

brew install cmake automake libtool boost graphviz

We provide a Makefile for installing Kaldi, libcppa and GraphViz under barista/tools directory. We recommend installing Kaldi and libcppa using this makefile. If for some reason you cannot install GraphViz (>=2.30) using the system package manager, you can install it using this Makefile.

If you already have a recent version of Kaldi trunk (revision >= 3755) installed at another location, you may skip installing Kaldi and provide this location to barista configure script using --with-kaldi option. Barista links against the static versions of standard Kaldi libraries, the optional kaldi-online library and the portaudio library installed by Kaldi. If you choose to use an existing Kaldi installation, make sure you have the static versions of those libraries installed.

Similarly, if you already have a libcppa V0.8.1 installation that was compiled with g++ >= 4.7 (clang is not supported) with --disable-context-switching and --build-static flags, you may skip installing libcppa and provide this location to barista configure script using --with-libcppa option. Barista links against the libcppa_static library. If you choose to use an existing libcppa installation, make sure you have the static version of the library installed.

cd barista
make -C tools -j 4 kaldi                # 4 jobs will be run in parallel
make -C tools -j 4 libcppa CXX=g++-4.8  # g++ >= 4.7 required for libcppa
make -C tools -j 4 graphviz             # if not already installed

We use checkmarks to avoid reinstalling things that were already successfully installed in case one of the later installation steps fails. If you want to rerun earlier steps, say for reinstalling with a different compiler, don't forget to call the relevant clean target first. For instance, for rebuilding Kaldi:

make -C tools kaldi/clean
make -C tools -j 4 kaldi

Installation

./configure --prefix=`pwd` --with-compiler=g++-4.8
make -j 4
make install

Above given configuration will build barista under barista/build/g++-4.8 and install everything under barista root directory. If you omit the --prefix option, barista will be installed under /usr/local/. If the default compiler on your system is g++ >= 4.7, --with-compiler flag is not needed. If you want to build with a Kaldi or libcppa installation that is not under barista/tools, you can use --with-kaldi and --with-libcppa options to specify custom paths. Similarly, if you have Boost or GraphViz installed at a non-standard location, you can use --with-boost and --with-graphviz options to specify those. By default configure will search standard system folders for Boost and GraphViz. Finally, if you have ATLAS installed at a non-standard location, you can use --with-atlas option (Linux only). See ./configure --help for a list of supported command line options.

If above given instructions fail for some reason, you might need to edit barista/CMakeLists.txt to match your setup. You will likely need to copy some flags from Kaldi Makefiles. See barista/CMakeLists.txt for details.

Upgrade

To upgrade your barista installation:

git pull                                # stop here if already up-to-date
make -C tools -j 4 kaldi                # upgrades Kaldi if necessary
make -C tools -j 4 libcppa CXX=g++-4.8  # upgrades libcppa if necessary
./configure --prefix=`pwd` --with-compiler=g++-4.8
make -j 4
make install

The calls for upgrading Kaldi and libcppa will not do anything unless they need to be upgraded to a newer version to support new barista functionality.