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.
- Google Text to Speech
- Google Speech to Text
- PyAudio
- NLTK
- Numpy, PyWave
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.
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.
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.
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.
Please feel free to raise issues and fix any existing ones. Further details can be found in our code of conduct.
- 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.
- Co-Contributor: Tejas Pandit
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.