Skip to content

CHEERBOT is a special chatbot with whom you can text-chat, voice chat. It will cheer you up if you're sad and make you happier if you're happy.

License

Notifications You must be signed in to change notification settings

Chintan2108/CHEERBOT-Your-Emotional-Companion

Repository files navigation

CHEERBOT-Your-Emotional-Companion

Affiliations

Charotar University of Science and Technology

Jan 2017 - April 2018

Summary

Cheerbot is a special kind of chatbot that can talk to you with voice or texts. It is your emotional companion - it will cheer you up if you are sad and add to your happiness otherwise. The main objective of creating this project was to attempt and help fight loneliness and depression in this monotonous world. A lot of us feel depressed at times, feel vulnerable and scared of talking out loud to another person. This is a sincere attempt to try and help in such a scenario - talk to Cheerbot. It will understand you, and try to determine your emotional state based on the keywords you speak, the pitch of your voice and even your facial contours as well as expressions. If you are sad the Cheerbot will try to crack jokes in an honest attempt to make you laugh.

Gitter

Modules

Built With/Libraries Used/Tools & Technology

  • Google Text to Speech
  • Google Speech to Text
  • PyAudio
  • NLTK
  • Numpy, PyWave

Emotion Detection based on Text Analysis

If the user chooses to text-chat with Cheerbot, the input of the user will be analysed for keywords that particularly indicate a sad or unhappy emotional state with the help of tokenization and word embeddings. If the user's input is flagged as sad or unhappy, the Cheerbot will come up with confronting replies and mildly funny responses that can make the user feel better. It will also try to get the user to stay and talk if the user leaves in a distressed state. In other cases the Cheerbot will usually come up with funny and witty responses.

Emotion Detection based on Voice Pitch

If the user chooses to voice-chat with the Cheerbot, the speech will be converted to text and the text analysis will be carried to determine the emotional state of the user. Moreover, the voice pitch of the user will also be analysed. Usually, when a person is sad, their voice tone and pitch are really low as compared to when a person is happy or elated. Keeping this in mind, chunk-by-chunk frequency is extracted of the user's voice and pitch analysis is done. On combining both these analyses, if the user's input is flagged as sad or unhappy, the Cheerbot will come up with confronting replies with a warm voice pitch and mildly funny responses with gentle chuckles that can make the user feel better. It will also try to get the user to stay and talk if the user leaves in a distressed state. In other cases the Cheerbot will usually come up with funny and witty responses.

Emotion Detection based on Facial Expression

If the user chooses to have a video chat with the Cheerbot, a happy animation of a character of the user's choice serves as the Cheerbot on the other side. In this case, apart from the text and voice analysis, the person's facial expressions and facial contour patterns will be analysed to determine if the user is sad. Based on the analyses of text, audio and video, if the user's input is flagged as sad or unhappy, Cheerbot will come up with confronting replies and mildly funny replies that can make the user feel better. It will also try to get the user to stay and talk if the user leaves in a distressed state. This will be in conjunction with the cheerful expressions in the animated character as well as confronting and happy voice pitch of the Cheerbot. In other cases, the Cheerbot will usually come up with funny and witty responses.

Application Development (GUI) and Deployment

Currently the code is completely bare of a GUI and hence there is no medium to use this and to provide this to people around the world. A single page web application, which is responsive and can run well on mobile and laptops is proposed, which shall be deployed on Google Cloud Platform with the entire backend of Cheerbot.

Contribution

Please feel free to raise issues and fix any existing ones. Further details can be found in our code of conduct.

While making a PR, please make sure you:

  • Always start your PR description with "Fixes #issue_number", if you're fixing an issue.
  • Briefly mention the purpose of the PR, along with the tools/libraries you have used. It would be great if you could be version specific.
  • Briefly mention what logic you used to implement the changes/upgrades.
  • Provide in-code review comments on GitHub to highlight specific LOC if deemed necessary.
  • Please provide snapshots if deemed necessary.
  • Update readme if required.

Credits

Please cite this work as:

Maniyar, C. B., Bhatt, C. M., Pandit, T. N., & Yadav, D. H. (2019). CHEERBOT: A Step Ahead of Conventional ChatBot. In Next-Generation Wireless Networks Meet Advanced Machine Learning Applications (pp. 306-322). IGI Global.

About

CHEERBOT is a special chatbot with whom you can text-chat, voice chat. It will cheer you up if you're sad and make you happier if you're happy.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •