Our life, and the present times were my inspiration. After the COVID 19 outbreak, millions of kids, forced into seclusion with school closures, were faced with loneliness, boredom, and stress. Those with both parents working suddenly had almost no one to talk to. That’s why I built CAYA, the Computed Automated Youth Advisor.
What it does
CAYA uses Machine Learning to act as an online counselor and friend to the millions of kids who have no one to talk to. It learns while the program is running by using a data set composed of conversational text inspired by child psychology papers. Though CAYA is not always perfect, it can offer great advice or just act as a friend to kids who feel lonely. CAYA also promotes children to talk through their worries.
How I built it
I built this app with ReactJS, Brain.js, and the web-text-to-speech API. I created a training set to understand the context of the conversation and what the user is trying to say in Brain.js. I used new CSS features to animate a human-looking face that could blink and move its lips. I also looked at real psychology papers to train my neural net. Finally I experimented with the text-to-speech API to create a personality and a tone that kids will feel comfortable with.
Challenges I ran into
I ran into many challenges in the process of building this project:
Synthesizing text into speech and changing the voice Adding personality to the bot, animating the face Training the neural net, deciding how many hidden layers and iterations we should have Making CAYA conversational and carrying context throughout the conversation.
Accomplishments that I'm proud of
Overcoming the challenges I listed above is something I take pride in. However, what gives me most joy is that I was able to create a full machine learning program with new technologies and a low error rate in a little more than a day. I am also proud that I could construct a complex face using CSS.
What I learned
CAYA was a personal learning process too. I learned several things while building her. On the coding front I learned how to use the web-text-to-speech API so my web app could talk. I also learned about how a neural network trains and works, what an LSTM (Long Short Term Memory network) is, and how to get good results from the neural network. But I learned more than coding. While reading the psychology papers in order to train CAYA I was able to learn much about child and youth psychology that I hope to be able to use more in helping my generation deal with issues that surround us.
What's next for Computer Automated Youth Advisor
There are still definitely things that can be improved. I think what would make the CAYA a lot better is smoother conversation with more training, and able to understand the context more(understand what the user is talking about).