Installation

We recommend that you use the Docker image for running this project because it handles the system binaries install in a repeatable way.

Docker

Installing Docker

First make sure that you have docker installed on your machine. Here’s some steps to do that on Ubuntu:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update

This will add the docker repository to your package manager lists. Make sure that the package that is the candidate to be installed is the newly added one and not the ubuntu package via this command:

apt-cache policy docker-ce

If this has worked correctly you’ll see an output such as this:

docker-ce:
  Installed: (none)
  Candidate: 18.06.1~ce~3-0~ubuntu
  Version table:
 *** 18.06.1~ce~3-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
        100 /var/lib/dpkg/status
     18.06.0~ce~3-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
     18.03.1~ce-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages

Note that there is no package installed but the candidate for installation is from the Docker repository which is what we want.

Now install Docker with this command:

sudo apt-get install -y docker-ce

If the install has been successful then you should be able to see the Docker process running. Check with this command

sudo systemctl status docker

In a successful case the output should look like this:

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-10-15 16:52:50 AEDT; 25min ago
     Docs: https://docs.docker.com
 Main PID: 9841 (dockerd)
    Tasks: 41
   Memory: 52.4M
      CPU: 9.557s
   CGroup: /system.slice/docker.service
           ├─9841 /usr/bin/dockerd -H fd://
           └─9868 docker-containerd --config /var/run/docker/containerd/containerd.toml

If you wish to not use sudo to invoke Docker, add your user to the Docker group with the following command:

sudo usermod -aG docker ${USER}

Note that you may have to log out and back in again for this to work

Then verify that the install has been successful via running a real container:

docker run hello-world

Running this container

To run this project with the docker container you will have to do the following Build the container:

docker build -t persephone-web-api:dev .

Run it:

docker run -p 8080:8080/tcp persephone-web-api:dev

If this has succeeded you should be able to access the API at the port you just specified.

Direct install

The upstream Persephone package requires some binaries to be installed and available on the path. You will need to make sure that these are installed first.

System packages

There are some 3rd party requirements that have to be installed in order for the upstream Persephone library to function. These packages can be found in the file “bootstrap.sh”.

Required:

Optional

  • Kaldi (for pitch features support)

The web API application

The web API itself is a python application which requires Python 3.5. We have not currently tested this package with other implementations such as PyPy.

Currently you will need to set up a virtualenvironment and install package requirements. The easiest and most reliable way to do this is as follows:

pipenv install

At this point you should have the packages required to run this API server.

(Note that the Docker image is an automated version of this direct install along with installation of system binaries)