As freshmen spring admits, we wanted to challenge ourselves by learning about and using artificial intelligence in our project. As we all had trouble waking up for the 10 am check-in yesterday, we quickly realized we could combine our passion for AI with an alarm system.
What it does
AlarmBot is an alarm system that converses with the user using artificial intelligence. It allows you to set multiple alarms by specifying the date and time.
How we built it
We used Xcode and coded using Swift. We implemented the Speech Kit, Apple's API for speech recognition. We then use Google's DialogFlow to construct a conversation with the user using artificial intelligence. We also implemented an alarm system using a local notification that will prompt the app to begin the conversation.
Challenges we ran into
One of the challenges we ran into was learning how to use DialogFlow. The AI console required a lot of keyword combinations to trigger the flow of the conversations. However, once we figured this and the Speech Kit, we had trouble integrated both parts into the alarm system. We wanted the text from the speech kit to trigger a keyword search using the DialogFlow API.
Additionally, throughout the project, we referenced a lot of material posted online; however, much of the content was coded in the older version of Swift. Thus, converting the syntax into the newer version was a challenge.
Accomplishments that we're proud of
We figured out how to combine the Speech Kit and the DialogFlow API using various global variables.
What we learned
We learned the importance of using DeveloperTools that help explain the functionality of each method. This allowed us to quickly move forward in our code and connect two different APIs.
What's next for AlarmBot
Our next step would be to live stream the conversation so the user would not have to manually start and stop the recordings of the speech. Following that, we would want to use machine learning so that the bot could learn conversational patterns of the user and change its diction and tone.