Author: Lukas Carvajal
An iOS app with an animated panda that says knock-knock jokes out-loud and requires the user to talk back to it.
- While entertaining a 9-year-old at a kids party (filled with adults and no kids), I ran into an issue where I could not tell more than 2-3 knock-knock jokes.
- When I started looking up some, the 9-year-old wanted to hear about 100 more and I was getting tired.
- The 9-year-old wanted to practice telling the new knock-knock jokes she learned.
The 9-year-old had an iPhone so I thought I'd develop an iOS app.
My goal was really to build something that engaged kids in conversation rather than having them tap at a screen or hear a knock-knock joke said outloud the boring way ChatGPT does.
- Trains a large language model using responses to knock knock jokes using SFCustomLanguageModelData. For example, 'I dunapo' is a hilarious response to a knock knock joke that normally doesn't get detected by the speech framework.
- AVFAudio - plays audio files
- Speech - speech-to-text, captures laughter loudness, and synthesizes speech when audio file isn't available
- Mixpanel - event tracking
- Knock knock jokes
- Riddles (coming soon)
- Dad jokes (coming soon)
- Create a
Keys.plist
file in theResources
folder - Add the key
mixpanelProjectToken
with the Mixpanel project token - Create a
Resources/knockKnockJokeData.json
file and populate it with an array of JSON joke objects in the form{"id":1001,"phrases":["Knock, knock.","Who's there?","Tank.","Tank who?","You’re welcome."]}
- Run the app
- Add support riddles and dad jokes
- Allow user to practice telling jokes to the panda
- Add fun dancing panda animations (requested by 9-year-old)