Try it out: talk to on the McHacks Cisco Spark!


Mental health is becoming an important issue in the workplace. According to Statistics Canada, 17% of Canadians require mental health resources in 2012, and over 600,000 had unmet needs for treatment. Unfortunately, almost a third of Canadians reported that their needs for mental health resources were unmet or only partially met.

This is especially important for employers: the Globe and Mail reports that 20-25% of employees in a company's workforce could be dealing with mental health issues. The loss of productivity from lack of treatment costs Canadian employers over $20 billion every year in lost productivity.

The Canadian Mental Health Association recommends people with mental illnesses to learn more about their mental health, and to connect with others with mental illness to share their experiences. However, CMHA also mention that it's tough to start the discussion, so we decided to help employees easily find mental health resources from the one source they interact with and trusts everyday: their company Cisco Spark chat.

We designed the bot to help make all employees comfortable when talking to PsychBot: young workers may be more comfortable with text messaging, and it's more private, so text chat is the primary interface for PsychBot. However, IBM Watson researchers note that people emphasizes better with computers when they can converse like humans, so we added a speech interface so that people would find the bot more friendly and would trust it with sensitive issues.

What it does

PsychBot is a chatbot that can be used for help with general psychological problems. You can talk to the PsychBot using text or even voice calls. PsychBot will answer your questions, and it can optionally add you to a Room with others with the same challenges so that you can talk with others going through the same journey.

How we built it

PsychBot was built on, using Node.js/Javascript. We used the Cisco Spark API for the basic chat box and voice calls. Then we used the Nuance Nina Knowledge (NiK) API to analyse the text or speech and then reply accordingly in an appropriate manner, using the Canadian Mental Health Association (CMHA) database.

For the voice recognition and response functionality, we connected the Cisco Spark Browser API with the Bing Speech API.

Challenges we ran into

  • Nuance Nina sometimes provided too much context in answers: we developed an algorithm to find the most concise answer from the API’s responses, and to shorten too long explanations to the first and most important sentence.
  • Most articles on mental health online aren’t in formats suitable for importing into Nuance Nina, so we developed custom scripts and procedures to help us extract plain text from articles into .json files.
  • Cisco Spark’s API is geared towards text-only chatbots and user-to-user phone calls, not user-to-bot phone calls, so we had to use a few workarounds to play and receive audio programmatically from the Browser SDK.

Accomplishments that we're proud of

  • Importing the different mental health articles from the CHMA website into a specific JSON format.
  • Building a useful chatbot that can provide a positive impact for employees’ mental health and thus their productivity Integrating multiple new APIs in under 24 hours
  • Creating the first third-party Cisco Spark chatbot to support both text and voice input

What we learned

  • Designing a bot’s interactions so that people would feel comfortable when discussing a sensitive topic
  • Integrating Nuance’s Nina fact response platform with Cisco Spark’s bot API to answer questions
  • Working with, Node.js, chatbot technology, and Web Audio/WebRTC

What's next for PsychBot

  • Additional resources to answer more specific questions
  • Help recommend additional resources (online or offline) for treatment
  • Periodic proactive monitoring to reach out to those who may be at risk of mental illness

Built With

Share this project: