Xomnia’s class of junior data scientists create SlackAI, an AI powered chatbot that can simulate your online presence in a meeting. The smart bot participates in a meeting, analyses what is being said and answers in the user’s own voice, helping employees work more efficiently.
“Before I started working here, I developed my code mainly in Jupyter Notebooks. I’ve come a long way since then” – Floor, a junior data scientist at Xomnia’s development program.
Why do employees need an AI enabled chatbot?
The way that we work is changing. Between the years 2005 and 2019, statistics show that the size of remote workforce working online has grown by 140%.
Along came 2020, drastically bringing this trend forward. Many employees worldwide had to move their entire office lives to their homes, spending hours every day in back-to-back online meetings, which require more concentration than meetings in-person. Many of employees found themselves also sharing their workspace with their flat mates, family, or children, with the need to interact with their surroundings while on the clock.
With this backdrop, it is essential to have a technology that allows employees to be away from an online meeting for a few minutes without having to distract the meeting's flow repeatedly. Luckily, Xomnia’s most recent class of junior data scientists created a potentially game changing artificially intelligent chatbot, which can help employees multitask during an online meeting.
SlackAI: The conversational AI chatbot
During a one-year development program with Xomnia, our students enrolled in weekly trainings, and got the opportunity to exchange their diverse knowledge and experience in the classroom. As a capstone project, they collaborated to create SlackAI, a conversational AI chatbot that can simulate one’s presence online in a three-step process summarized below:
The chatbot starts by recording the meeting and translating it to text. This is done using a speech recognition library, which provides several speech-to-text solutions. Since Google’s speech recognition was found to be the best tool, it is used as the main model. However, in case of internet connection problems, the bot falls back to using Sphinx, which is an open source speech recognition toolkit that also works offline.
SlackAI processes what is said and then determines if a response is needed, and if
so, what it should be. This is done by a logic that only answers when the participant’s name is mentioned and there is either a question or a direct order.
If a response is needed, a pre-trained transformer model that can generate text is used to give an answer. SlackAI uses a fine-tuned GPT-2 model that generates data that is representative of actual online meetings. Finally, the model uses the context of the conversation in generating a response.
Unlike most other AI powered chatbots, SlackAI is designed to respond with its user’s own voice. This is done using open-source solution Real-Time Voice Cloning.
The input for this model consists of two parts: the response text that needs to be spoken out loud, and a small sample of the user’s voice. An encoder transforms a voice sample into a speaker embedding, after which a synthesizer takes the response text and combines it with the speaker embedding. It is then transformed into a log-mel spectrogram, which is an image that represents the audio. Lastly, another network, called the vocoder, transforms the spectrogram to an actual audio file that is played in the online meeting.
A preview of SlackAI
The final result of SlackAI is shown in the video below. Since the chatbot is still in its early days, their remains room for improvement. For instance, processing and response times should be improved to ensure a seamless experience during actual meetings. Also, the bot needs to become compatible with more languages, to be used on a global scale.
However, we believe that SlackAI will be the seed for a very useful and relevant AI powered chatbot, that will optimize the experience of remote workers, and help define the future of the workplace.