EuroPython 2018

Real-time transcription and sentiment analysis of audio streams

Speaker(s) Aaron Bassett

In this training session, we’re going to learn how to create a virtual rapporteur. A digital assistant who can join any conference call; record it and provide participants with real-time insights into the overall tone of the call. Once the call is complete, we’ll look at how we can use the call recording to provide participants with a text transcript as well as meta information about the call such as the most talked about concepts, keywords and entities.


Creating our conference

  • What is Hug
  • Creating a conference line with Hug & Nexmo
  • Running our Hug server

Adding our bot and recording the call

  • Creating our bot API endpoint

Sending our audio to IBM Watson

  • Introducing Tornado
  • Handling a WebSocket Connection
  • Using on_message to proxy data to IBM Watson

Performing our sentiment analysis

  • Sending our transcription to the tone analyser service

Displaying in the browser

  • Demo

Fetching our recording

  • Downloading the mp3 with requests
  • Sending the mp3 to be transcribed

Using the Natural Language Understanding API

  • Sending our transcription to the NLU API
  • Saving the response

Pulling it all together

  • Final Demo

Attendees: you should be familiar with Python and the command line. You will also need to sign-up for a free Nexmo and IBM Watson account to access their APIs.

We’ll be coding the application in Python and JavaScript, with the Hug, Tornado frameworks; so a knowledge of both languages would be beneficial but is not required. We will be making heavy use of several APIs, so experience with REST and WebSockets will help.

in on Monday 23 July at 09:30 See schedule
in on Monday 23 July at 11:15 See schedule


  1. Gravatar
    I've given this workshop at PyCon Nove where I had attendees approached me before the workshop to express how much they were looking forward to it as it was so highly recommended after PyCon SK.

    The workshop completely booked out, and not only was there a waiting list but there was a queue of people waiting the corridor in the hope that there would be no-shows.

    After the workshop, an attendee said it was there favourite workshop they had attended as it was full of actual code they could use straight away, not just basic examples or theory.
    — Aaron Bassett,

New comment