Barista is an open-source framework for concurrent speech processing developed and maintained by the Signal Analysis and Interpretation Lab (SAIL) at USC.
- Linux
- Mac OS X
- 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
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
./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.
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.