iLab Project

Clone this repo:


  1. 00d72a0 First commit by miada ยท 3 years, 9 months ago master


This project consists of a python client that interacts with the IBM Watson Speech To Text service through its WebSockets interface. The client streams audio to the STT service and receives recognition hypotheses in real time. It can run N simultaneous recognition sessions


Create the file .env and populate it with:

BLUEMIX_USERNAME=<insert Bluemix username>
BLUEMIX_PASSWORD=<insert Bluemix password>

There are some dependencies that need to be installed for this script to work. In order to interact with the STT service via WebSockets it is necessary to install the 'twisted' and 'autobahn' libraries. An updated version of these libraries can be installed by typing:

$ pip install twisted

$ pip install autobahn

In order to you token based authentication it is necessary to install the requests library

$ pip install requests

In order to read credentials from .env file

$ pip install -U python-dotenv

If you need to upgrade your existing versions of twisted or autobhan you can type

$ pip install twisted --upgrade

$ pip install autobahn --upgrade

Sometimes you may need to install some additional dependencies, check the following commands:

$ pip install pyOpenSSL

$ apt-get install build-essential python-dev

Finally, the version 0.10.3 of Autobahn comes with a bug/typo that you need to fix by changing 'taxio' to 'txaio' in /usr/local/lib/python2.7/dist-packages/autobahn/websocket/


The example below will run the default 10 WAV files through the WebSockets interface of the Speech To Text (STT) service and will dump the recognition hypotheses to a file under the "./output" directory.

$ python ./ -model en-US_BroadbandModel

The example below performs the same task much faster by opening 10 simultaneous recognition sessions (WebSocket connections) against the STT service.

$ python ./ -credentials <username>:<password> -model en-US_BroadbandModel -threads 10


To see the list of available options type:

$ python -h


This script has been created by Daniel Bolanos in order to facilitate and promote the utilization of the IBM Watson Speech To Text service.