Explore the different technologies that enable MIVOR to talk, listen, understand and visualize your responses.


MIVOR's voice is enabled by meSpeak.js, an open-source text-to-speech JavaScript library. meSpeak.js uses the HTML5 Web Audio API’s basic synthesis tools to synthesize speech without the use of any prerecorded sound.

The questions MIVOR asks, and the responses MIVOR makes are pulled for a matrix of potential conversation paths predetermined by WINTR. The length and complexity of the conversations is limited only by these seeded conversation “nodes”.

MIVOR Listens

The HTML5 Web Speech API, currently only available in recent versions of Google Chrome, is the heart of MIVOR’s ability to listen to what the user is saying. The API converts real speech into text, which we can then interpret with code. It’s still young and has difficulty with some words and phrases. The limitations of the API, as implemented in Chrome, are such that many words are misheard, or simply not noticed. We have noticed this to be especially true for short phrases and single words.

When the Web Speech API does return some useful data, the text is analyzed in a couple of different ways. For some questions MIVOR is simply looking for specific words. Most of the time, however, MIVOR is looking for a certain sentiment, as opposed to a word. Using a list of over 10,000 words, each rated by their general sentiment, MIVOR is able to detect whether the phrases you respond with are positive or negative, and to affect the visualization accordingly.

MIVOR Understands

MIVOR analyzes the general sentiment of phrases using database of words that started with AFINN-111. Using Python's Natural Language Toolkit and WordNet, this list was extended to over 10,000 words by averaging synonym values. The integer value of each word translates to a positive or negative sentiment, and the overall sentiment of the phrase is calculated with a sentiment analysis algorithm. Edit the phrase below to see it in action.

It’s not really that great outside

MIVOR traverses a tree-like node system to progress through the conversation. Try out this text-based version to get a glimpse of how it walks through the tree.

MIVOR Visualizes

Based on upon the general sentiment of your responses, MIVOR creates a cumulative visualization of your general state of mind. The visualization is created in Scalable Vector Graphics (SVG) using the Two.js Javascript library. Animations are driven by the tween.js library.