Audacity VAMP plugin for Deep Speech

(Mathias Rav) #1

I’ve created a VAMP plugin suitable for use with Audacity on Linux to run Deep Speech on a selected stretch of audio.

This can be used as a friendly frontend to Deep Speech and makes it easy to preview Deep Speech results on processed audio.

It requires the VAMP SDK to be installed into /usr/include/vamp-sdk and it requires a recent version of GCC supporting C++14.

(Lissyx) #2

Looks awesome! I have a question though, it seems like you rely on the Python bindings within your C++ codebase? If so, is there any reason not to use the C++ lib?

(Mathias Rav) #3

Indeed, the plugin relies on a Python script (via fork/exec in C++) that uses the Python bindings. When I started working on the plugin I didn’t know about the C++ library.

Now that I’ve tried to get the C++ library working I see I need to setup my computer to build Tensorflow and Deep Speech; that’s not nearly as convenient as simply running pip install to fetch and install a prebuilt wheel.

After downloading and extracting the pre-built native_client binaries, I get an error when running deepspeech because I don’t have installed (only

$ ./deepspeech --help
./deepspeech: error while loading shared libraries: cannot open shared object file: No such file or directory
$ pacman -Qo /usr/lib/*
/usr/lib/ is owned by sox 14.4.2-2
/usr/lib/ is owned by sox 14.4.2-2

Do you know which Linux distro the pre-built binaries are built for? It doesn’t seem to be specified in the README for native_client.

(Lissyx) #4

We’re building that on some ubuntu 14.04 that’s why we have the dependency against sox 2. Someone on github issues contributed an AUR package that does links against sox3 :-). Technically you don’t need to rebuild everything, only the deepspeech binary links against sox but libdeepspeech does not requires sox :slight_smile:

(Lissyx) #5

@rav Here’s the ArchLinux package:

(Mathias Rav) #6

@lissyx Thanks for the hint that libdeepspeech itself doesn’t need sox! I’ve updated my plugin to use the C++ library instead. That made the implementation about 200 lines shorter :slight_smile: