Inspiration
While one of our members was learning a language using Anki, (a flashcard study-type application) he was frustrated with not having the ability to apply the words he learned in a conversational context. He noticed that, while it did help him learn the individual words while they were on the flashcards, it didn't help him as much as he'd have liked it to when it came to using or understanding any of those words in regular speech. The idea was then that, by seeing these words actually contextualized in the language, a user could better understand both the usage of the individual words that they are practicing and the general structure and patterns of the language.
What it does
Our project was made with the purpose of better assisting a person to learn a new language in mind. Our project is an an add-on to the preexisting app Anki. The app itself can be used to create custom sets of flashcards with information typed on them. Our project takes the words that the user has been tested on already in the past (via the app's base functionality) and, using a few of the words being practiced at a time, plus some basic words and some of the user's known words, generates a basic sentence. The user can then see those words being used in the language rather than simply a single word at a time in isolation.
How we built it
Anki is open source and uses python for add-ons. We also used Qt as an application window framework. Finally the Gemini 1.5 Pro model was used for sentence generation and translation.
Challenges we ran into
The first challenge we faced was the lack of sufficient documentation on programming an Anki add-on. Additionally, Anki uses an outdated Python environment, so when applying the AI portion to our add-on we ran into many issues with packages.
Accomplishments that we're proud of
That we were able to get something close to our original design and get there with the horrendous documentation.
What we learned
We learned how to use the PyQt UI with Anki and the Gemini API.
What's next for Anki Language Learning Addon
One feature that we would like to include is for the user to have the ability to rate their level of confidence for each word present in the sentences (which is a feature in the base app, when viewing cards individually). Another feature that we would like to implement is for the words being tested to be highlighted to help differentiate them from the rest of the sentence.
Log in or sign up for Devpost to join the conversation.