This past week I had the privilege of attending the Tapestry conference in Athens, Georgia. This was a terrific event and a chance for me to catch up with many wonderful people in the data visualization and Tableau community. The agenda was packed with three keynote speakers and five short stories. As part of the afternoon session, there was a "Demo Showcase and Poster Session" where people highlighted projects they have been working on.
During the opening reception at Tapestry, Tara Walker, a member of the Tableau Public team, asked me if I could present in the Demo Showcase. So I quickly found Tableau Zen Master Allan Walker and we decided to showcase some of the things we have been working on together. Our project started out as a late night email that I sent him showing him gesture functions using the built-in webcam on the computer to control slide presentations and Tableau visualizations. This was a combination of Tableau, gesture.js and reveal.js. A demonstration of this project is posted here. Allan and I continued talking about other ways to integrate full sensory visualization exploration into Tableau and we have been exploring this idea over the past few months.
That same evening, I had two different conversations with Tara Walker and Jason Gorfine. In both conversations, the topic of speech recognition came up, more specifically controlling visualizations with speech. Since Allan and I were showcasing our work the next day, I wondered if I could quickly add voice control to our work. So I went back to my hotel room at 11:30pm that evening and started building this for our showcase the next day.
Allan had already built out a prototype of the Superstore data using the Tableau Public Javascript API. We were using Leap Motion devices for the gesture control. I found another Javascript library called annyang.js. This library is very small and easy to install. It was just a matter of connecting up with the Tableau Public Javascript API.
Today, I decided to add text-to-speech to the visualization and post this on the blog. I started with speak.js. I had some issues getting this to work the way I wanted it to, but after some time, I was able to get it to work. However, the voice quality seemed limited compared to other libraries, so I switched over to a different Javascript library called responsivevoice.js. Besides being a cleaner voice generation, it also has built-in UK English female accent (among others).
The voice control requires the Chrome browser and a microphone or webcam on your computer, which you will have to grant access to at the top of your browser. I have set this up over an SSL link so that permission is only granted once and the connection is secure.
Click here to explore the visualization and try speaking these terms:
And since my birthday is on Tuesday I added a little Easter Egg.
Also, if you are interested in learning more about what Allan and I have been working on, check out his recent post here.
If you have any questions feel free to email me at Jeff@DataPlusScience.com