Talking Google Analytics dashboards via R, Shiny and Text-to-Speech APIs

YouTube Workshop video

The whole 40min workshop is available below, which talks through this GitHub repo.

A demo of the speech it creates can be heard in this audio snippet:

I’ve also cut out shorter snippets that focus on concepts if you want to skip in and out:

Going further

Whilst this proof of concept is a bit of fun to demonstrate how these APIs can work together via the R libraries googleAnalyticsR and googleLanguageR, I hope the applications can go beyond this demo.

Accessibility is an obvious first application, giving those that have trouble seeing another way to experience dashboard plots. Equally, the speech-to-text API offer a way to control reports without needing a dashboard. Often these services can also help enhance all users by letting them experience reports in other mediums such as by phone or in the car, and may help breathe life into stale dashboards that have a habit of slowly being ignored over time.

The Translation APIs also allow internationalisation of reports be it in speech or text, the demo Shiny app of googleLanguageR demonstrates talking in several languages.

Possibily the most advanced but potentially most powerful application uses the Natural Language API to parse out meaning, entities and sentiment from text. For instance, grading user generated content and then creating data reports on the fly that may address their concerns.

Another interesting application may be how text/speech enabled apps can interact with other robots, such as Alexa or Google Home. As more and more apps become voice enabled, voice and computer generated speech could become a universal translator between systems that would take heavy coding otherwise.


Anyhow, I hope the video is of some use. I’m creating more video content these days as I think it helps see how a workflow happens in real life, along with all the umms and errs and mistakes that happen to everyone :) If you have any video requests do let me know, otherwise you can keep track of any new videos on my YouTube channel.