This is the repository for all the code used during the development of my Master's Thesis ("The Virtual Suspect Meets Alexa: Designing a Brand New Natural Language Interaction"). The focus of this work was to design a Natural Language Interaction with the Virtual Suspect, using an Alexa Skill to achieve that goal. If you're curious, you can read the Extended Abstract here, or the full Dissertation here.
In terms of code, this work is composed of 4 essential parts:
-
An essential part of every Alexa Skill, the Interaction Model parses the users' questions in a way that the Virtual Suspect's query system can process.
-
The Skill Service
A Lambda function that takes the information from the Interaction Model and transforms it into Virtual Suspect queries, as well as all the error verifications and a lot of the internal logic.
-
The Virtual Suspect Response Model
One of the two components inherited from the original Virtual Suspect prototype, this module contains all the Virtual Suspect logic, the Knowledge Base, the Query Engine, the lying components, and everything that makes it tick.
-
The Natural Language Generator
The other component inherited from the original prototype, this module transforms the responses from the Virtual Suspect into actual sentences.
You can add this Skill to your Alexa by searching for "Virtual Suspect Demo" in your Alexa Store.
Before you start interacting with the Virtual Suspect, I recommend that you read this document, containing all the information and context required to interrogate the Suspect.
You can find the Skill at these links:
- US: https://www.amazon.com/dp/B08FZMVS7H
- UK: https://www.amazon.co.uk/dp/B08FZMVS7H
- CA: https://www.amazon.ca/dp/B08FZMVS7H
- AU: https://www.amazon.com.au/dp/B08FZMVS7H
- IN: https://www.amazon.in/dp/B08FZMVS7H
Disclaimer: this is just a prototype developed as part of a dissertation and not a fully-fledged voice game. It has some limitations and shortcomings that may sometimes lead to an imperfect experience. Despite this, we were still able to obtain good User Experience results, and it's still possible to have decent conversations with the Suspect. Some of these limitations include:
- An unintuitive lying algorithm (which was outside the scope of my work)
- An inability to understand questions outside of the conversation domain
Thank you for your patience!
If you have any questions you can contact me at gms_baptista@sapo.pt